Fixiaobai
2023-10-13 e8308ddac0ba4a1f406e8f63d7e6b6f2541cb770
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
import getLodop from '@/util/lodop'
import { getYearAndMonth } from '@/util/date'
const f = (name, printInfo) => {
  const theOne = printInfo.qualityLabelPrintConfigDetail.find((e) => {
    return e.caption === name
  })
  return theOne ? theOne.defaultValue || '' : null
}
export const goPrintUtil = async (printInfo) => {
  return new Promise((resolve, reject) => {
    const data = {
      partNoAfter: f('零件号', printInfo),
      stockQuantityAfter: f('长度', printInfo),
      examiner: f('检验员', printInfo),
      prodName: f('产品名称', printInfo),
      partModel: f('规格型号', printInfo),
      sn: f('SN号', printInfo),
      partFamilyNo: f('零件族编号', printInfo),
      date: f('日期', printInfo),
      barcode: f('条形码', printInfo),
      qrcode: f('二维码', printInfo),
      mainTitle: f('标签名称', printInfo), // 产品合格证
      subTitle: f('公司名称', printInfo) // 中天射频电缆有限公司
    }
    const LODOP = getLodop()
    switch (printInfo.labelDesc) {
      case '1/2馈线合格证':
        if (printInfo.markFlag) {
          LODOP.SET_LICENSES(
            '南通市鑫阳软件开发有限公司',
            '60F8E5078AE17DEB340C94BC7E83CAFF',
            '',
            ''
          )
          LODOP.PRINT_INITA(0, -1, 500, 300, '')
          LODOP.SET_PRINT_PAGESIZE(0, 1000, 600, '')
          LODOP.SET_PRINT_MODE('PRINT_NOCOLLATE', 1)
          if (data.prodName !== null) {
            LODOP.ADD_PRINT_TEXT(102, 5, 87, 20, '产品名称:')
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10)
            LODOP.SET_PRINT_STYLEA(0, 'Alignment', 2)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
            LODOP.ADD_PRINT_TEXT(102, 80, 355, 17, data.prodName)
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
          }
          if (data.partModel !== null) {
            LODOP.ADD_PRINT_TEXT(118, 5, 87, 20, '规格型号:')
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10)
            LODOP.SET_PRINT_STYLEA(0, 'Alignment', 2)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
            LODOP.ADD_PRINT_TEXT(118, 80, 180, 17, data.partModel)
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
          }
          if (data.qrcode !== null) {
            LODOP.ADD_PRINT_BARCODE(9, 270, 115, 160, 'QRCode', data.qrcode)
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10)
            LODOP.SET_PRINT_STYLEA(0, 'QRCodeVersion', 7)
            LODOP.SET_PRINT_STYLEA(0, 'QRCodeErrorLevel', 'L')
          }
          if (data.partNoAfter !== null) {
            LODOP.ADD_PRINT_TEXT(134, 17, 87, 20, '零件号:')
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
            LODOP.ADD_PRINT_TEXT(134, 80, 180, 17, data.partNoAfter)
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
          }
          if (data.sn !== null) {
            LODOP.ADD_PRINT_TEXT(150, 17, 53, 20, 'SN号:')
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
            LODOP.ADD_PRINT_TEXT(150, 50, 180, 20, data.sn)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
          }
          if (data.partFamilyNo !== null) {
            LODOP.ADD_PRINT_TEXT(150, 145, 180, 20, data.partFamilyNo)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
          }
 
          if (data.date !== null) {
            LODOP.ADD_PRINT_TEXT(118, 241, 53, 20, '日期:')
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
            LODOP.ADD_PRINT_TEXT(118, 288, 80, 20, data.date)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
          }
          if (data.examiner !== null) {
            LODOP.ADD_PRINT_TEXT(134, 241, 64, 20, '检验员:')
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
            LODOP.ADD_PRINT_TEXT(134, 290, 80, 20, data.examiner)
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 12)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
          }
          if (data.stockQuantityAfter !== null) {
            LODOP.ADD_PRINT_TEXT(150, 241, 53, 20, '长度:')
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
            LODOP.ADD_PRINT_TEXT(
              150,
              288,
              80,
              16,
              data.stockQuantityAfter != null && data.stockQuantityAfter != ''
                ? Number(data.stockQuantityAfter) * 1000 + 'm'
                : ''
            )
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 12)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
          }
          if (data.barcode !== null) {
            LODOP.ADD_PRINT_BARCODE(167, 20, 368, 29, 'Code39', data.barcode)
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 8)
            LODOP.SET_PRINT_STYLEA(0, 'ShowBarText', 0)
          }
 
          // 两个线加个年月--markFlag
          LODOP.ADD_PRINT_LINE(205, 20, 205, 180, 0, 2)
          LODOP.ADD_PRINT_LINE(205, 214, 205, 374, 0, 2)
          LODOP.ADD_PRINT_TEXT(198, 180, 34, 15, getYearAndMonth())
          LODOP.SET_PRINT_STYLEA(0, 'Alignment', 2)
          LODOP.ADD_PRINT_LINE(213, 20, 213, 374, 0, 2)
 
          if (data.mainTitle !== null) {
            LODOP.ADD_PRINT_TEXT(28, 133, 100, 20, data.mainTitle)
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 13)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
          }
          if (data.subTitle !== null) {
            LODOP.ADD_PRINT_TEXT(56, 102, 177, 20, data.subTitle)
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 11)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
          }
          LODOP.ADD_PRINT_IMAGE(
            9,
            0,
            105,
            41,
            '<img src="/img/certificatelogo.png"/>'
          )
          LODOP.SET_PRINT_STYLEA(0, 'Stretch', 2)
          if (
            data.stockQuantityAfter != null &&
            data.stockQuantityAfter != '' &&
            Number(data.stockQuantityAfter) * 1000 == 200
          ) {
          } else {
            LODOP.ADD_PRINT_RECT(0, 0, 370, 223, 0, 7)
          }
        } else {
          LODOP.SET_LICENSES(
            '南通市鑫阳软件开发有限公司',
            '60F8E5078AE17DEB340C94BC7E83CAFF',
            '',
            ''
          )
          LODOP.PRINT_INITA(0, -1, 500, 300, '')
          LODOP.SET_PRINT_PAGESIZE(0, 1000, 600, '')
          LODOP.SET_PRINT_MODE('PRINT_NOCOLLATE', 1)
 
          if (data.prodName !== null) {
            LODOP.ADD_PRINT_TEXT(106, 5, 87, 20, '产品名称:')
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10)
            LODOP.SET_PRINT_STYLEA(0, 'Alignment', 2)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
            LODOP.ADD_PRINT_TEXT(106, 80, 355, 17, data.prodName)
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
          }
          if (data.partModel !== null) {
            LODOP.ADD_PRINT_TEXT(126, 5, 87, 20, '规格型号:')
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10)
            LODOP.SET_PRINT_STYLEA(0, 'Alignment', 2)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
            LODOP.ADD_PRINT_TEXT(126, 80, 180, 17, data.partModel)
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
          }
          if (data.qrcode !== null) {
            LODOP.ADD_PRINT_BARCODE(9, 270, 115, 160, 'QRCode', data.qrcode)
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10)
            LODOP.SET_PRINT_STYLEA(0, 'QRCodeVersion', 7)
            LODOP.SET_PRINT_STYLEA(0, 'QRCodeErrorLevel', 'L')
          }
 
          if (data.partNoAfter !== null) {
            LODOP.ADD_PRINT_TEXT(146, 17, 87, 20, '零件号:')
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
            LODOP.ADD_PRINT_TEXT(146, 80, 180, 17, data.partNoAfter)
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
          }
          if (data.sn !== null) {
            LODOP.ADD_PRINT_TEXT(166, 17, 53, 20, 'SN号:')
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
            LODOP.ADD_PRINT_TEXT(166, 50, 180, 20, data.sn)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
          }
          if (data.partFamilyNo !== null) {
            LODOP.ADD_PRINT_TEXT(166, 145, 180, 20, data.partFamilyNo)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
          }
          if (data.date !== null) {
            LODOP.ADD_PRINT_TEXT(126, 241, 53, 20, '日期:')
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
            LODOP.ADD_PRINT_TEXT(126, 288, 80, 20, data.date)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
          }
          if (data.examiner !== null) {
            LODOP.ADD_PRINT_TEXT(146, 241, 64, 20, '检验员:')
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
            LODOP.ADD_PRINT_TEXT(146, 290, 80, 20, data.examiner)
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 12)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
          }
          if (data.stockQuantityAfter !== null) {
            LODOP.ADD_PRINT_TEXT(166, 241, 53, 20, '长度:')
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
            LODOP.ADD_PRINT_TEXT(
              166,
              288,
              80,
              16,
              data.stockQuantityAfter != null && data.stockQuantityAfter != ''
                ? Number(data.stockQuantityAfter) * 1000 + 'm'
                : ''
            )
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 12)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
          }
          if (data.barcode !== null) {
            LODOP.ADD_PRINT_BARCODE(187, 20, 368, 29, 'Code39', data.barcode)
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 8)
            LODOP.SET_PRINT_STYLEA(0, 'ShowBarText', 0)
          }
          if (data.mainTitle !== null) {
            LODOP.ADD_PRINT_TEXT(28, 133, 100, 20, data.mainTitle)
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 13)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
          }
          if (data.subTitle !== null) {
            LODOP.ADD_PRINT_TEXT(56, 102, 177, 20, data.subTitle)
            LODOP.SET_PRINT_STYLEA(0, 'FontSize', 11)
            LODOP.SET_PRINT_STYLEA(0, 'Bold', 1)
          }
          LODOP.ADD_PRINT_IMAGE(
            9,
            0,
            105,
            41,
            '<img src="/img/certificatelogo.png"/>'
          )
          LODOP.SET_PRINT_STYLEA(0, 'Stretch', 2)
          if (
            data.stockQuantityAfter != null &&
            data.stockQuantityAfter != '' &&
            Number(data.stockQuantityAfter) * 1000 == 200
          ) {
          } else {
            LODOP.ADD_PRINT_RECT(0, 0, 370, 223, 0, 7)
          }
        }
        LODOP.PRINT()
        // LODOP.PREVIEW()
        resolve()
        break
      case 2:
        break
      default:
        this.$message.warning('暂无此类标签描述的打印配置,请联系管理员')
        reject(new Error())
    }
  })
}