feat(实时库存): 添加库存变化筛选功能

在实时库存表中增加筛选功能,支持按全部、库存增加或库存减少三种条件筛选记录。当选择非全部选项时,会自动获取差值数据用于筛选,提升用户查看特定库存变化的效率。
master
huangjinysf 2 months ago
parent 24268d7d2b
commit e0896c336a

@ -3,6 +3,16 @@
<div class="table-header">
<h3>实时库存表</h3>
<div class="table-actions">
<el-select
v-model="inventoryFilter"
placeholder="选择筛选条件"
style="width: 120px; margin-right: 15px;"
@change="handleFilterChange"
>
<el-option label="全部" value="all" />
<el-option label="库存增加" value="increase" />
<el-option label="库存减少" value="decrease" />
</el-select>
<el-switch
v-model="showDifference"
active-text="显示库存变化"
@ -199,6 +209,62 @@ const activeCells = ref(new Set()) // 存储当前激活的单元格键值
let clickTimeoutId = null; //
const DBL_CLICK_DELAY = 250; //
//
const inventoryFilter = ref('all'); // all-increase-decrease-
//
const getFilteredRecords = () => {
if (!records.value.length) {
return [];
}
switch (inventoryFilter.value) {
case 'increase':
//
if (!differenceRecords.value.length) {
return [];
}
const increaseKeys = new Set(
differenceRecords.value
.filter(diff => diff.difference > 0)
.map(diff => `${diff.specification}-${diff.model}-${diff.wire_disc || ''}`)
);
return records.value.filter(record => {
const key = `${record.specification}-${record.model}-${record.wire_disc || ''}`;
return increaseKeys.has(key);
});
case 'decrease':
//
if (!differenceRecords.value.length) {
return [];
}
const decreaseKeys = new Set(
differenceRecords.value
.filter(diff => diff.difference < 0)
.map(diff => `${diff.specification}-${diff.model}-${diff.wire_disc || ''}`)
);
return records.value.filter(record => {
const key = `${record.specification}-${record.model}-${record.wire_disc || ''}`;
return decreaseKeys.has(key);
});
case 'all':
default:
//
return records.value;
}
};
//
const handleFilterChange = () => {
console.log('筛选条件变化:', inventoryFilter.value);
// ""
if (inventoryFilter.value !== 'all' && !differenceRecords.value.length) {
console.log('需要获取差值数据以进行筛选');
fetchDifferenceData();
}
};
// WMS
const wmsDialogVisible = ref(false)
const currentWmsModel = ref('')
@ -248,21 +314,25 @@ const dynamicColumns = computed(() => {
//
const tableData = computed(() => {
console.log('计算表格数据, records.value:', records.value);
console.log('计算表格数据, records.value:', records.value, 'inventoryFilter.value:', inventoryFilter.value);
if (!records.value.length) {
console.log('records为空返回空数组');
// 使
const filteredRecords = getFilteredRecords();
console.log('过滤后的记录数量:', filteredRecords.length);
if (!filteredRecords.length) {
console.log('过滤后的records为空返回空数组');
return [];
}
//
const specifications = [...new Set(records.value.map(item => item.specification))]
const specifications = [...new Set(filteredRecords.map(item => item.specification))]
.sort((a, b) => parseFloat(a) - parseFloat(b)); // "0.800"
console.log('获取到的规格列表:', specifications);
// model::wire_disc
const combinations = [...new Set(records.value.map(item => {
const combinations = [...new Set(filteredRecords.map(item => {
if (item.wire_disc && item.wire_disc.trim() !== '') {
return `${item.model}::${item.wire_disc}`;
} else {
@ -289,7 +359,7 @@ const tableData = computed(() => {
}
//
const record = records.value.find(r => {
const record = filteredRecords.find(r => {
const specMatch = r.specification === specification;
const modelMatch = r.model === model;
const wireDiscMatch = hasWireDisc

Loading…
Cancel
Save