修改规则
This commit is contained in:
@@ -327,11 +327,28 @@ function handleDelete(ids) {
|
||||
|
||||
function searchProduct(keyword) {
|
||||
productLoading.value = true
|
||||
listProductOptions({ productCode: keyword || undefined, status: '1' }).then(res => {
|
||||
const rows = res.data || res.rows || []
|
||||
const kw = (keyword || '').trim()
|
||||
const base = { status: '1' }
|
||||
// product_code / product_name are separate likes; query both and merge
|
||||
const reqs = kw
|
||||
? [
|
||||
listProductOptions({ ...base, productCode: kw }),
|
||||
listProductOptions({ ...base, productName: kw })
|
||||
]
|
||||
: [listProductOptions(base)]
|
||||
Promise.all(reqs).then(results => {
|
||||
const map = new Map()
|
||||
;[...productOptions.value, ...rows].forEach(p => {
|
||||
if (p && p.productCode) map.set(p.productCode, p)
|
||||
results.forEach(res => {
|
||||
;(res.data || res.rows || []).forEach(p => {
|
||||
if (p && p.productCode) map.set(p.productCode, p)
|
||||
})
|
||||
})
|
||||
// keep already-selected options visible
|
||||
toList(form.value.productCodeList).forEach(code => {
|
||||
if (code && !map.has(code)) {
|
||||
const hit = productOptions.value.find(p => p.productCode === code)
|
||||
map.set(code, hit || { productCode: code, productName: code })
|
||||
}
|
||||
})
|
||||
productOptions.value = Array.from(map.values())
|
||||
}).finally(() => {
|
||||
|
||||
Reference in New Issue
Block a user