扫码货位:先弹窗显示识别内容,点击搜索后请求后端查询

This commit is contained in:
97694732@qq.com 2026-06-04 17:31:53 +08:00
parent 008a49e59a
commit 48839d8fc5

View File

@ -1546,51 +1546,68 @@ export default {
const whCode = scanned.substring(0, sepIdx).trim()
const locCode = scanned.substring(sepIdx + 2).trim()
if (whCode && locCode) {
//
const whIdx = this.popupWarehouseList.findIndex(w => {
const code = (w.code || '').toLowerCase()
const name = (w.name || '').toLowerCase()
const search = whCode.toLowerCase()
return code === search || name === search || code.includes(search)
})
if (whIdx !== -1) {
// ,
await this.loadPopupLocations(this.popupWarehouseList[whIdx].id, false, locCode)
this.popupActiveWhIndex = whIdx
this.popupSelectedWh = this.popupWarehouseList[whIdx]
// ,
if (this.popupLocationList.length > 0) {
this.popupSelectedLoc = this.popupLocationList[0]
this.popupLocationSearch = ''
uni.showToast({ title: '已匹配仓库' + whCode + ' 货位:' + this.popupLocationList[0].code, icon: 'success' })
} else {
uni.showToast({ title: '已切换仓库' + whCode + ',但未找到货位' + locCode, icon: 'none' })
//
uni.showModal({
title: '扫码结果',
content: '仓库编码:' + whCode + '\n货位号' + locCode + '\n\n点击"搜索"查询货位',
confirmText: '搜索',
cancelText: '取消',
success: async (modalRes) => {
if (!modalRes.confirm) return
//
const whIdx = this.popupWarehouseList.findIndex(w => {
const code = (w.code || '').toLowerCase()
const name = (w.name || '').toLowerCase()
const search = whCode.toLowerCase()
return code === search || name === search || code.includes(search)
})
if (whIdx !== -1) {
// ,
await this.loadPopupLocations(this.popupWarehouseList[whIdx].id, false, locCode)
this.popupActiveWhIndex = whIdx
this.popupSelectedWh = this.popupWarehouseList[whIdx]
// ,
if (this.popupLocationList.length > 0) {
this.popupSelectedLoc = this.popupLocationList[0]
this.popupLocationSearch = ''
uni.showToast({ title: '已匹配仓库' + whCode + ' 货位:' + this.popupLocationList[0].code, icon: 'success' })
} else {
uni.showToast({ title: '已切换仓库' + whCode + ',但未找到货位' + locCode, icon: 'none' })
}
} else {
uni.showToast({ title: '未找到仓库: ' + whCode, icon: 'none' })
}
}
return
}
})
return
}
}
//
let matched = null
for (const loc of this.popupAllLocationList) {
const code = (loc.code || '').toLowerCase()
const name = (loc.name || '').toLowerCase()
const search = scanned.toLowerCase()
if (code === search || name === search ||
code.includes(search) || search.includes(code)) {
matched = loc
break
// ##
uni.showModal({
title: '扫码结果',
content: '条码内容:' + scanned + '\n\n点击"搜索"在当前仓库中查询货位',
confirmText: '搜索',
cancelText: '取消',
success: async (modalRes) => {
if (!modalRes.confirm) return
const search = scanned.toLowerCase()
const matched = this.popupAllLocationList.find(l => {
const code = (l.code || '').toLowerCase()
const name = (l.name || '').toLowerCase()
return code === search || name === search ||
code.includes(search) || search.includes(code)
})
if (matched) {
this.popupSelectedLoc = matched
this.popupLocationSearch = ''
this.popupLocationList = [...this.popupAllLocationList]
uni.showToast({ title: '已选中货位: ' + matched.code, icon: 'success' })
} else {
uni.showToast({ title: '未找到匹配货位', icon: 'none' })
}
}
}
if (matched) {
this.popupSelectedLoc = matched
this.popupLocationSearch = ''
this.popupLocationList = [...this.popupAllLocationList]
uni.showToast({ title: '已选中货位: ' + matched.code, icon: 'success' })
} else {
uni.showToast({ title: '未找到匹配货位', icon: 'none' })
}
})
},
fail: () => {}
})