1. [最適化] 日付の書式設定、0埋め
改前:
formatDate(val){
let d = new Date(val)
let month = (d.getMonth() +1).toString()
let day = (d.getDate()).toString()
let year = d.getFullYear()
if(month.length < 2) month = '0' + month // todo
if(day.length < 2) day = '0' + day
return [year, month, day].join('-')
},
改后:
month = mouth.padStart(2, '0')
2. [欠点] タイマ関数を記述する場合、
タイマの最初のパラメータは関数の結果ではなく関数である必要があり、this.handleqQuery の戻り値は関数ではないため、このメソッドはエラーを報告します。
改前:
onLoop() {
// 测试60s执行一次
this.timer = setInterval(this.handleqQuery, 300000) // todo
},
改后:
onLoop() {
// 测试60s执行一次
this.timer = setInterval(()=>{
this.handleqQuery()
}, 300000)
},
3. [最適化] キーマッチングにより目標値を取得
改前:
let color = '';
switch (item.type){
case '0':
color = '#C6CBD8' //灰色
break
case '1':
color = '#67B662' //绿色
break
case '2':
color = ' #5AB9ED' //蓝色
break
case '5':
color = '#FFE329' // 黄色
break
case '3':
color = '#E03523' //红色
break
case '4':
color = '#E03523' //红色
break
}
改后:
const colorList = new Map()
.set('0','#C6CBD8')
.set('1', '#67B662')
.set('2', '#5AB9ED')
.set('5', '#FFE329')
.set('3', '#E03523')
.set('4', '#E03523')
const color = colorList.get(item.type)
4. 冗長な 3 点式
改前:
this.berthMatStatus = batteryWorkShop.stgTyp.matStatus === "1" ? true : false
改后:
this.berthMatStatus = batteryWorkShop.stgTyp.matStatus === "1"
5. 複数の項目を出力する場合は問題が発生しやすいため、entrys.next() を呼び出して配列を走査し、個別に出力します。
詳細 1: アセンブリ配列が事前定義された直接プッシュから printTasksMap.set(key, value) に変更されます。
//改之前:
if(item.printModeCode === '2003'){
list2003.push(item)
return
}
//改之后:
const tasks = printTasksMap.get(item.printModeCode) || []
tasks.push(item)
printTasksMap.set(item.printModeCode, tasks)
詳細 2: 配列を直接接続する代わりに、印刷用に配列のentrys.next().valueを取得します。
//改之前:
this.$print(printList.get('3006'), {
data: list3006}, {
copies: list3006[0].printQty
})
//改之后:
const entries = printTasksMap.entries()
this.doPrint(entries)
this.doPrint = (entries) => {
// 手动调用next方法进行遍历
const data = entries.next().value
if (data) {
const [key, value] = data
this.$print(printList.get(key), {
data: value}, {
copies: value[0].printQty
}).then(() => {
this.doPrint(entries)
})
}
}
全文:
// 多个打印模板,定义对应关系
const printList = new Map()
.set('1000', '20221020154236111')
.set('1001', '20221024210454724')
.set('1002', '20221027105631695')
.set('1003', '20221028145650927')
.set('1004', '20221025151021223')
改之前:
this.callPrinter = (para) => {
let list2003 = []
let list2006 = []
let list3003 = []
let list3006 = []
// 1001、1004模板左上角显示序号
let len1001 = para.filter(item => {
return item.printModeCode === '1001'
}).length
let len1004 = para.filter(item => {
return item.printModeCode === '1004'
}).length
let num1001 = 0
let num1004 = 0
para.forEach((item,index) => {
// 市场配件部包装作业单左上角显示序号
if(item.printModeCode === '1001'){
num1001 = num1001 + 1
item.sequence = len1001 + '-' + num1001
}
if(item.printModeCode === '1004'){
num1004 = num1004 + 1
item.sequence = '' + len1004 + '-' + num1004
}
if(item.printModeCode === '2003'){
list2003.push(item)
return
}else if(item.printModeCode === '2006'){
list2006.push(item)
return
}else if(item.printModeCode === '3003'){
list3003.push(item)
return
}else if(item.printModeCode === '3006'){
list3006.push(item)
return
}else{
this.$print(printList.get(item.printModeCode), {
data: [item]}, {
copies: item.printQty
})
}
})
if(list2003.length > 0){
this.$print(printList.get('2003'), {
data: list2003}, {
copies: list2003[0].printQty
})
}
if(list2006.length > 0){
this.$print(printList.get('2006'), {
data: list2006}, {
copies: list2006[0].printQty
})
}
if(list3003.length > 0){
this.$print(printList.get('3003'), {
data: list3003}, {
copies: list3003[0].printQty
})
}
if(list3006.length > 0){
this.$print(printList.get('3006'), {
data: list3006}, {
copies: list3006[0].printQty
})
}
}
改之后:
this.callPrinter = (para) => {
// 1001、1004模板左上角显示序号
let len1001 = para.filter(item => {
return item.printModeCode === '1001'
}).length
let len1004 = para.filter(item => {
return item.printModeCode === '1004'
}).length
let num1001 = 0
let num1004 = 0
const printTasksMap = new Map()
para.forEach((item) => {
item.lackNum = Number(item.matQty) - Number(item.finishQty)
item.newStartTime = new Date().format("yyyy-MM-dd HH:mm:ss")
// 市场配件部包装作业单左上角显示序号
if(item.printModeCode === '1001'){
num1001 = num1001 + 1
item.sequence = len1001 + '-' + num1001
}
if(item.printModeCode === '1004'){
num1004 = num1004 + 1
item.sequence = '' + len1004 + '-' + num1004
}
// 按打印标签号组装map,值为该标签所有打印项组成的数组
const tasks = printTasksMap.get(item.printModeCode) || []
tasks.push(item)
printTasksMap.set(item.printModeCode, tasks)
})
const entries = printTasksMap.entries()
console.log('entries',entries)
this.doPrint(entries)
}
this.doPrint = (entries) => {
// 手动调用next方法进行遍历
const data = entries.next().value
if (data) {
const [key, value] = data
this.$print(printList.get(key), {
data: value}, {
copies: value[0].printQty
}).then(() => {
this.doPrint(entries)
})
}
}