fix: enforce strict SKU ascending sort and display both serial and batch numbers
This commit is contained in:
@ -233,9 +233,9 @@
|
|||||||
<el-table-column prop="name" label="名称" min-width="90" show-overflow-tooltip />
|
<el-table-column prop="name" label="名称" min-width="90" show-overflow-tooltip />
|
||||||
|
|
||||||
<el-table-column prop="sku" label="SKU" width="110" show-overflow-tooltip />
|
<el-table-column prop="sku" label="SKU" width="110" show-overflow-tooltip />
|
||||||
<el-table-column label="序列号/批次" min-width="140" show-overflow-tooltip>
|
<el-table-column label="序列号/批次" min-width="150" show-overflow-tooltip>
|
||||||
<template #default="scope">
|
<template #default="{ row }">
|
||||||
{{ scope.row.serial_number || scope.row.batch_no || '-' }}
|
<span>{{ row.serial_number || row.batch_number || row.batch_no || '-' }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
@ -504,6 +504,13 @@ const syncData = async () => {
|
|||||||
if (res.semis) res.semis.forEach((i: any) => { const item = processItem(i, 'semi'); if (item) list.push(item) })
|
if (res.semis) res.semis.forEach((i: any) => { const item = processItem(i, 'semi'); if (item) list.push(item) })
|
||||||
if (res.products) res.products.forEach((i: any) => { const item = processItem(i, 'product'); if (item) list.push(item) })
|
if (res.products) res.products.forEach((i: any) => { const item = processItem(i, 'product'); if (item) list.push(item) })
|
||||||
|
|
||||||
|
// ★ 强制按 SKU 数字+字符串升序排序
|
||||||
|
list.sort((a, b) => {
|
||||||
|
const skuA = a.sku || '';
|
||||||
|
const skuB = b.sku || '';
|
||||||
|
return skuA.localeCompare(skuB, undefined, { numeric: true, sensitivity: 'base' });
|
||||||
|
});
|
||||||
|
|
||||||
// 静默更新数据(不触发loading)
|
// 静默更新数据(不触发loading)
|
||||||
allData.value = list
|
allData.value = list
|
||||||
await fetchBorrowedQuantities(list)
|
await fetchBorrowedQuantities(list)
|
||||||
@ -759,6 +766,13 @@ const loadData = async () => {
|
|||||||
if (res.semis) res.semis.forEach((i: any) => processItem(i, 'semi'))
|
if (res.semis) res.semis.forEach((i: any) => processItem(i, 'semi'))
|
||||||
if (res.products) res.products.forEach((i: any) => processItem(i, 'product'))
|
if (res.products) res.products.forEach((i: any) => processItem(i, 'product'))
|
||||||
|
|
||||||
|
// ★ 强制按 SKU 数字+字符串升序排序
|
||||||
|
list.sort((a, b) => {
|
||||||
|
const skuA = a.sku || '';
|
||||||
|
const skuB = b.sku || '';
|
||||||
|
return skuA.localeCompare(skuB, undefined, { numeric: true, sensitivity: 'base' });
|
||||||
|
});
|
||||||
|
|
||||||
allData.value = list
|
allData.value = list
|
||||||
await fetchBorrowedQuantities(list)
|
await fetchBorrowedQuantities(list)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user