就记录下,条形码解析写的很糟糕,好多地方可以封装函数的,所以有点乱,直接复制过去还能用的,UCC条码只能解析包装代码,通过包装代码获取型号是调后台接口,然后上面是自己写的各种时间格式转YY-MM-DD的函数,写的low但能用。
import { getUCCModel } from '@/api/distributionSheet'
export function formateSData (d) {
return d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate() + ' ' + d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds()
}
export function formateData (d) {
let m = ''
if ((d.getMonth() + 1).toString().length === 1) {
m = '0' + (d.getMonth() + 1)
} else {
m = d.getMonth() + 1
}
let day = ''
if (d.getDate().toString().length === 1) {
day = '0' + d.getDate()
} else {
day = d.getDate()
}
return d.getFullYear() + '-' + m + '-' + day
}
export function getYJDate (n) {
const date = new Date(new Date('20' + n.slice(0, 2) + '/1/1').getTime() + 24 * 60 * 60 * 1000 * (parseInt(n.slice(2)) - 1))
return formateData(date)
}
export function getYMDDate (n) {
const data = '20' + n.slice(0, 2) + '-' + n.slice(2, 4) + '-' + n.slice(4)
return data
}
export function getMYDate (n) {
const date = new Date(new Date('20' + n.slice(2) + '/' + (parseInt(n.slice(0, 2)) + 1)) - 24 * 60 * 60 * 1000)
return formateData(date)
}
export function getMDYDate (n) {
const data = '20' + n.slice(4) + '-' + n.slice(0, 2) + '-' + n.slice(2, 4)
return data
}
export async function getUccModel (query) {
await getUCCModel(query.ItemModel).then(res => {
query.ItemModel = res.data.rows
}).catch(err => {
this.$message.error(err.response.data)
})
}
export function barcodeAnalysis (barcode, scanData) {
console.log(barcode)
const barCode = barcode
console.log(barCode)
if (/\+/ig.test(barCode) === false) {
if (barCode.slice(0, 2) === '01') {
if (barCode.length > 16) {
console.log('这是UCC全码')
console.log(barCode.slice(2, 16), '包装代码')
scanData.ItemModel = ''
scanData.ItemModel = barCode.slice(2, 16)
getUccModel(scanData)
const barCode1 = barCode.slice(16)
if (barCode1.slice(0, 2) === '11') {
scanData.ManufactureDt = ''
scanData.ManufactureDt = getYMDDate(barCode1.slice(2, 8))
console.log(scanData.ManufactureDt, '生产日期')
const barCode2 = barCode1.slice(8)
if (barCode2.slice(0, 2) === '17') {
scanData.DisabledDatetime = ''
scanData.DisabledDatetime = getYMDDate(barCode2.slice(2, 8))
console.log(scanData.DisabledDatetime, '失效日期')
const barCode3 = barCode2.slice(8)
if (barCode3.slice(0, 2) === '10') {
const index = barCode3.indexOf('21')
if (index === -1) {
scanData.LotCode = ''
scanData.LotCode = barCode3.slice(2, index)
console.log(scanData.LotCode, '批号')
} else {
scanData.Serial = ''
scanData.Serial = barCode3.slice(index + 2)
console.log(scanData.Serial, '序列号')
scanData.LotCode = ''
scanData.LotCode = barCode3.slice(2, index)
console.log(scanData.LotCode, '批号')
}
} else if (barCode3.slice(0, 2) === '21') {
scanData.Serial = ''
scanData.Serial = barCode3.slice(2)
console.log(scanData.Serial, '序列号')
}
} else if (barCode3.slice(0, 2) === '10') {
const index = barCode3.indexOf('21')
if (index === -1) {
scanData.LotCode = ''
scanData.LotCode = barCode3.slice(2, index)
console.log(scanData.LotCode, '批号')
} else {
scanData.Serial = ''
scanData.Serial = barCode3.slice(index + 2)
console.log(scanData.Serial, '序列号')
scanData.LotCode = ''
scanData.LotCode = barCode3.slice(2, index)
console.log(scanData.LotCode, '批号')
}
} else if (barCode3.slice(0, 2) === '21') {
scanData.Serial = ''
scanData.Serial = barCode3.slice(2)
console.log(scanData.Serial, '序列号')
}
} else if (barCode1.slice(0, 2) === '17') {
scanData.DisabledDatetime = ''
scanData.DisabledDatetime = getYMDDate(barCode1.slice(2, 8))
console.log(scanData.DisabledDatetime, '失效日期')
const barCode4 = barCode1.slice(8)
if (barCode4.slice(0, 2) === '10') {
const index = barCode4.indexOf('21')
if (index === -1) {
scanData.LotCode = ''
scanData.LotCode = barCode4.slice(2, index)
console.log(scanData.LotCode, '批号')
} else {
scanData.Serial = ''
scanData.Serial = barCode4.slice(index + 2)
console.log(scanData.Serial, '序列号')
scanData.LotCode = ''
scanData.LotCode = barCode4.slice(2, index)
console.log(scanData.LotCode, '批号')
}
} else if (barCode4.slice(0, 2) === '21') {
scanData.Serial = ''
scanData.Serial = barCode4.slice(2)
console.log(scanData.Serial, '序列号')
}
} else if (barCode1.slice(0, 2) === '10') {
scanData.LotCode = ''
scanData.LotCode = barCode1.slice(-16, -8)
console.log(scanData.LotCode, '批号')
scanData.DisabledDatetime = ''
scanData.DisabledDatetime = getYMDDate(barCode1.slice(-6))
console.log(scanData.DisabledDatetime, '失效日期')
} else if (barCode1.slice(0, 2) === '21') {
scanData.Serial = ''
scanData.Serial = barCode1.slice(2)
console.log(scanData.Serial, '序列号')
}
} else {
console.log('这是UCC主码')
scanData.ItemModel = ''
scanData.ItemModel = barCode.slice(2, 16)
getUccModel(scanData)
console.log(barCode.slice(2, 16), '包装代码')
}
} else {
console.log('这是UCC副码')
const barCode1 = barCode
if (barCode1.slice(0, 2) === '11') {
scanData.ManufactureDt = ''
scanData.ManufactureDt = getYMDDate(barCode1.slice(2, 8))
console.log(scanData.ManufactureDt, '生产日期')
const barCode2 = barCode1.slice(8)
if (barCode2.slice(0, 2) === '17') {
scanData.DisabledDatetime = ''
scanData.DisabledDatetime = getYMDDate(barCode2.slice(2, 8))
console.log(scanData.DisabledDatetime, '失效日期')
const barCode3 = barCode2.slice(8)
if (barCode3.slice(0, 2) === '10') {
const index = barCode3.indexOf('21')
if (index === -1) {
scanData.LotCode = ''
scanData.LotCode = barCode3.slice(2, index)
console.log(scanData.LotCode, '批号')
} else {
scanData.Serial = ''
scanData.Serial = barCode3.slice(index)
console.log(scanData.Serial, '序列号')
scanData.LotCode = ''
scanData.LotCode = barCode3.slice(2, index)
console.log(scanData.LotCode, '批号')
}
} else if (barCode3.slice(0, 2) === '21') {
scanData.Serial = ''
scanData.Serial = barCode3.slice(2)
console.log(scanData.Serial, '序列号')
}
} else if (barCode3.slice(0, 2) === '10') {
const index = barCode3.indexOf('21')
if (index === -1) {
scanData.LotCode = ''
scanData.LotCode = barCode3.slice(2, index + 2)
console.log(scanData.LotCode, '批号')
} else {
scanData.Serial = ''
scanData.Serial = barCode3.slice(index + 2)
console.log(scanData.Serial, '序列号')
scanData.LotCode = ''
scanData.LotCode = barCode3.slice(2, index)
console.log(scanData.LotCode, '批号')
}
} else if (barCode3.slice(0, 2) === '21') {
scanData.Serial = ''
scanData.Serial = barCode3.slice(2)
console.log(scanData.Serial, '序列号')
}
} else if (barCode1.slice(0, 2) === '17') {
scanData.DisabledDatetime = ''
scanData.DisabledDatetime = getYMDDate(barCode1.slice(2, 8))
console.log(scanData.DisabledDatetime, '失效日期')
const barCode4 = barCode1.slice(8)
if (barCode4.slice(0, 2) === '10') {
const index = barCode4.indexOf('21')
if (index === -1) {
scanData.LotCode = ''
scanData.LotCode = barCode4.slice(2, index)
console.log(scanData.LotCode, '批号')
} else {
scanData.Serial = ''
scanData.Serial = barCode4.slice(index + 2)
console.log(scanData.Serial, '序列号')
scanData.LotCode = ''
scanData.LotCode = barCode4.slice(2, index)
console.log(scanData.LotCode, '批号')
}
} else if (barCode4.slice(0, 2) === '21') {
scanData.Serial = ''
scanData.Serial = barCode4.slice(2)
console.log(scanData.Serial, '序列号')
}
} else if (barCode1.slice(0, 2) === '10') {
scanData.LotCode = ''
scanData.LotCode = barCode1.slice(-16, -8)
console.log(scanData.LotCode, '批号')
scanData.DisabledDatetime = ''
scanData.DisabledDatetime = getYMDDate(barCode1.slice(-6))
console.log(scanData.DisabledDatetime, '失效日期')
} else if (barCode1.slice(0, 2) === '21') {
scanData.Serial = ''
scanData.Serial = barCode1.slice(2)
console.log(scanData.Serial, '序列号')
}
}
} else {
console.log('这是HIBC码')
if (barCode.slice(1, 2) === '$') {
console.log('这是HIBC副码')
if (barCode.slice(2, 3) === '$') {
if (barCode.slice(3, 4) === '8') {
if (barCode.slice(5, 6) === '2') {
console.log(barCode.slice(12, -2), '批号')
} else if (barCode.slice(5, 6) === '3') {
console.log(barCode.slice(13, -2), '批号')
} else if (barCode.slice(5, 6) === '4') {
console.log(barCode.slice(15, -2), '批号')
} else if (barCode.slice(5, 6) === '5') {
console.log(barCode.slice(12, -2), '批号')
} else if (barCode.slice(6, 7) === '6') {
console.log(barCode.slice(14, -2), '批号')
} else if (barCode.slice(6, 7) === '7') {
console.log(barCode.slice(8, -2), '批号')
}
} else if (barCode.slice(3, 4) === '9') {
if (barCode.slice(9, 10) === '2') {
console.log(getMDYDate(barCode.slice(10, 16)), '失效日期')
scanData.DisabledDatetime = ''
scanData.DisabledDatetime = getMDYDate(barCode.slice(10, 16))
console.log(barCode.slice(16, -2), '批号')
scanData.LotCode = ''
scanData.LotCode = barCode.slice(16, -2)
} else if (barCode.slice(9, 10) === '3') {
console.log(getYMDDate(barCode.slice(10, 16)), '失效日期')
scanData.DisabledDatetime = ''
scanData.DisabledDatetime = getYMDDate(barCode.slice(10, 16))
console.log(barCode.slice(16, -2), '批号')
scanData.LotCode = ''
scanData.LotCode = barCode.slice(16, -2)
} else if (barCode.slice(9, 10) === '4') {
console.log(barCode.slice(18, -2), '批号')
} else if (barCode.slice(9, 10) === '5') {
console.log(getYJDate(barCode.slice(10, 15)), '失效日期')
scanData.DisabledDatetime = ''
scanData.DisabledDatetime = getYJDate(barCode.slice(10, 15))
console.log(barCode.slice(15, -2), '批号')
scanData.LotCode = ''
scanData.LotCode = barCode.slice(15, -2)
} else if (barCode.slice(9, 10) === '6') {
console.log(barCode.slice(17, -2), '批号')
} else if (barCode.slice(9, 10) === '7') {
console.log(barCode.slice(11, -2), '批号')
} else {
console.log(getMYDate(barCode.slice(9, 13)), '失效日期')
scanData.DisabledDatetime = ''
scanData.DisabledDatetime = getMYDate(barCode.slice(9, 13))
console.log(barCode.slice(13, -2), '批号')
scanData.LotCode = ''
scanData.LotCode = barCode.slice(13, -2)
}
} else {
if (barCode.slice(3, 4) === '2') {
console.log(barCode.slice(10, -2), '批号')
} else if (barCode.slice(3, 4) === '3') {
console.log(barCode.slice(10, -2), '批号')
} else if (barCode.slice(3, 4) === '4') {
console.log(barCode.slice(12, -2), '批号')
} else if (barCode.slice(3, 4) === '5') {
console.log(barCode.slice(9, -2), '批号')
} else if (barCode.slice(3, 4) === '6') {
console.log(barCode.slice(11, -2), '批号')
} else if (barCode.slice(3, 4) === '7') {
console.log(barCode.slice(4, -2), '批号')
}
}
} else {
}
} else {
console.log('这是HIBC主码')
console.log(barCode.slice(5, -2), '型号')
scanData.ItemModel = ''
scanData.ItemModel = barCode.slice(5, -2)
}
}
console.log(scanData)
return scanData
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)