|
|
|
@ -286,9 +286,9 @@ function classifyCode(code) {
|
|
|
|
// 以 POS 开头 → B码
|
|
|
|
// 以 POS 开头 → B码
|
|
|
|
if (code.startsWith('POS')) return 'B'
|
|
|
|
if (code.startsWith('POS')) return 'B'
|
|
|
|
// 以 4 开头 → C码
|
|
|
|
// 以 4 开头 → C码
|
|
|
|
if (/^4/.test(code)) return 'C'
|
|
|
|
if (code.startsWith('4')) return 'C'
|
|
|
|
// 以 620 开头 → 排除
|
|
|
|
// 以 620 开头 → 排除
|
|
|
|
if (code.startsWith('620')) return 'IGNORE'
|
|
|
|
if (code.startsWith('620') || code.startsWith('Z0') || code.startsWith('ZO')) return 'IGNORE'
|
|
|
|
// 其余为 A码
|
|
|
|
// 其余为 A码
|
|
|
|
return 'A'
|
|
|
|
return 'A'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -310,30 +310,25 @@ function startScanner() {
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
wsClient.value.on('message', (data) => {
|
|
|
|
wsClient.value.on('message', (data) => {
|
|
|
|
// 服务端返回的 data 可能为字符串或对象
|
|
|
|
// 服务端返回的 data 可能为字符串或对象
|
|
|
|
const raw = typeof data === 'string' ? data : data.sn
|
|
|
|
const code = data.data
|
|
|
|
if (!raw) return
|
|
|
|
console.log(typeof data,'code是什么')
|
|
|
|
|
|
|
|
if (!code) return
|
|
|
|
|
|
|
|
|
|
|
|
// 用分号分割成数组,取第一个值匹配
|
|
|
|
|
|
|
|
const codes = raw.split(';').map(s => s.trim()).filter(Boolean)
|
|
|
|
|
|
|
|
if (codes.length === 0) return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 只取第一个码进行匹配
|
|
|
|
|
|
|
|
const code = codes[0]
|
|
|
|
|
|
|
|
const type = classifyCode(code)
|
|
|
|
const type = classifyCode(code)
|
|
|
|
switch (type) {
|
|
|
|
switch (type) {
|
|
|
|
case 'A':
|
|
|
|
case 'A':
|
|
|
|
form.snCode = code
|
|
|
|
form.snCode = code
|
|
|
|
form.serialNumber = code
|
|
|
|
form.serialNumber = code
|
|
|
|
// ElMessage.success(`识别到A码(SN码): ${code}`)
|
|
|
|
// ElMessage.success(`识别到A码(SN码): ${code}`)
|
|
|
|
break
|
|
|
|
break
|
|
|
|
case 'B':
|
|
|
|
case 'B':
|
|
|
|
bCode.value = code
|
|
|
|
bCode.value = code
|
|
|
|
// ElMessage.success(`识别到B码: ${code}`)
|
|
|
|
//ElMessage.success(`识别到B码: ${code}`)
|
|
|
|
break
|
|
|
|
break
|
|
|
|
case 'C':
|
|
|
|
case 'C':
|
|
|
|
cCode.value = code
|
|
|
|
cCode.value = code
|
|
|
|
// ElMessage.success(`识别到C码: ${code}`)
|
|
|
|
//ElMessage.success(`识别到C码: ${code}`)
|
|
|
|
break
|
|
|
|
break
|
|
|
|
case 'IGNORE':
|
|
|
|
case 'IGNORE':
|
|
|
|
// 620 开头的码忽略
|
|
|
|
// 620 开头的码忽略
|
|
|
|
@ -452,6 +447,7 @@ async function handleInvoke() {
|
|
|
|
${form.snCode}
|
|
|
|
${form.snCode}
|
|
|
|
${form.customerName}
|
|
|
|
${form.customerName}
|
|
|
|
${form.testerName}
|
|
|
|
${form.testerName}
|
|
|
|
|
|
|
|
${form.processStep}
|
|
|
|
BayE168
|
|
|
|
BayE168
|
|
|
|
P
|
|
|
|
P
|
|
|
|
${scanStartTime.value}
|
|
|
|
${scanStartTime.value}
|
|
|
|
@ -465,6 +461,7 @@ ${modelByC}`
|
|
|
|
await saveReportApi({
|
|
|
|
await saveReportApi({
|
|
|
|
message: [ruleContent],
|
|
|
|
message: [ruleContent],
|
|
|
|
sn: form.snCode,
|
|
|
|
sn: form.snCode,
|
|
|
|
|
|
|
|
sku: form.bCode
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
result.value = {
|
|
|
|
result.value = {
|
|
|
|
|