ci-plus 1.1.8 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.ts CHANGED
@@ -8,7 +8,7 @@ console.log('D: ', Fn);
8
8
  export default {
9
9
  install: (app: App) => {
10
10
  // 注册所有组件
11
- console.log('注册所有ci-plus组件1.1.3: ');
11
+ console.log('注册所有ci-plus组件1.2.0: ');
12
12
  for (const c in components) {
13
13
  app.use(components[c]);
14
14
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ci-plus",
3
- "version": "1.1.8",
3
+ "version": "1.2.0",
4
4
  "description": "ci组件库",
5
5
  "main": "./index.ts",
6
6
  "scripts": {
@@ -21,7 +21,8 @@
21
21
  "sortablejs": "^1.15.1",
22
22
  "vite-plugin-svg-icons": "^2.0.1",
23
23
  "jsbarcode": "^3.11.6",
24
- "dayjs": "^1.11.9"
24
+ "dayjs": "^1.11.9",
25
+ "vue-draggable-plus": "^0.4.0"
25
26
  },
26
27
  "devDependencies": {},
27
28
  "peerDependencies": {},
@@ -30,10 +30,11 @@
30
30
  defineOptions({ name: 'ci-seeFile' })
31
31
  import { ref, watch } from 'vue'
32
32
  import axios from 'axios'
33
+ import apis from '../utils/baseApi'
33
34
  import { ElMessage } from 'element-plus'
34
35
 
35
36
  interface Props {
36
- url?: string[] // 传入要显示的附件地址数组
37
+ url: string[] // 传入要显示的附件地址数组
37
38
  baseUrl?: string // 图片展示的基础路径
38
39
  }
39
40
 
@@ -76,12 +77,13 @@ const fileArr = (url: string, pathArr: string[]) => {
76
77
  }
77
78
  }
78
79
  }
79
-
80
+ const { storageModule } = apis
81
+ let fileURL = new URL(storageModule).origin + '/' // 附件的地址前缀
80
82
  const emits = defineEmits(['onClick'])
81
83
  const pathArr = ref<any[]>([])
82
84
  // 对数组中的每个字符串应用处理函数
83
85
  // @ts-ignore
84
- pathArr.value = setFilePath(props.url, props.baseUrl || 'http://10.20.72.231:9999/')
86
+ pathArr.value = setFilePath(props.url, props.baseUrl || fileURL)
85
87
 
86
88
  // 监听props.url的变化
87
89
  watch(
@@ -89,7 +91,7 @@ watch(
89
91
  (newVal) => {
90
92
  // 对新值进行处理
91
93
  // @ts-ignore
92
- pathArr.value = setFilePath(newVal, props.baseUrl || 'http://10.20.72.231:9999/')
94
+ pathArr.value = setFilePath(newVal, props.baseUrl || fileURL)
93
95
  },
94
96
  {
95
97
  immediate: true, // 是否立即执行
@@ -190,11 +190,13 @@
190
190
  <td colspan="2">{{ item.r3c2 }}</td>
191
191
  </tr>
192
192
  <tr>
193
- <td>客户名称</td>
193
+ <!-- 供应商 -->
194
+ <td>{{ item.r4c1 }}</td>
194
195
  <td colspan="2">{{ item.r4c2 }}</td>
195
196
  </tr>
196
197
  <tr>
197
- <td>流转批号</td>
198
+ <!-- 材料厂商 -->
199
+ <td>{{ item.r5c1 }}</td>
198
200
  <td colspan="2">{{ item.r5c2 }}</td>
199
201
  <td colspan="2" class="content">
200
202
  {{ item.r5c4 }}
@@ -232,6 +234,11 @@
232
234
  {{ item.r9c4 }}
233
235
  </td>
234
236
  </tr>
237
+ <tr>
238
+ <!-- 批次号 -->
239
+ <td>{{ item.r10c1 }}</td>
240
+ <td colspan="3">{{ item.r10c2 }}</td>
241
+ </tr>
235
242
  <tr>
236
243
  <td>备注</td>
237
244
  <td colspan="3">{{ item.r12c2 }}</td>
@@ -417,11 +424,13 @@
417
424
  <td colspan="2">{{ item.r3c2 }}</td>
418
425
  </tr>
419
426
  <tr>
420
- <td>客户名称</td>
427
+ <!-- 供应商 -->
428
+ <td>{{ item.r4c1 }}</td>
421
429
  <td colspan="2">{{ item.r4c2 }}</td>
422
430
  </tr>
423
431
  <tr>
424
- <td>流转批号</td>
432
+ <!-- 材料厂商 -->
433
+ <td>{{ item.r5c1 }}</td>
425
434
  <td colspan="2">{{ item.r5c2 }}</td>
426
435
  <td colspan="2" class="content">
427
436
  {{ item.r5c4 }}
@@ -472,15 +481,21 @@
472
481
  </td>
473
482
  </tr>
474
483
  <tr>
475
- <td>备注</td>
484
+ <!-- 批次号 -->
485
+ <td>{{ item.r12c1 }}</td>
476
486
  <td colspan="3">{{ item.r12c2 }}</td>
477
487
  </tr>
488
+ <tr>
489
+ <!-- 备注 -->
490
+ <td>{{ item.r13c1 }}</td>
491
+ <td colspan="3">{{ item.r13c2 }}</td>
492
+ </tr>
478
493
  <tr>
479
494
  <td colspan="4">
480
495
  <div class="b2bcode" style="margin: 1px">
481
496
  <bar-code
482
497
  :key="item + new Date()"
483
- :value="item.r13c1"
498
+ :value="item.r14c1"
484
499
  :maxWidth="myWidth"
485
500
  :newClass="index"
486
501
  ></bar-code>
@@ -531,7 +546,7 @@
531
546
  <td colspan="2">{{ item.r3c2 }}</td>
532
547
  </tr>
533
548
  <tr>
534
- <td>流转批号</td>
549
+ <td>批次号</td>
535
550
  <td colspan="2">{{ item.r4c2 }}</td>
536
551
  </tr>
537
552
  <tr>
@@ -1125,7 +1140,7 @@
1125
1140
  <td colspan="2">{{ item.r3c2 }}</td>
1126
1141
  </tr>
1127
1142
  <tr>
1128
- <td>流转批号</td>
1143
+ <td>批次号</td>
1129
1144
  <td colspan="2">{{ item.r4c2 }}</td>
1130
1145
  </tr>
1131
1146
  <tr>
@@ -1,44 +1,7 @@
1
- <!-- @format -->
2
-
3
1
  <template>
4
2
  <div style="display: flex; align-items: center; justify-content: center">
5
3
  <span>{{ text }}</span>
6
-
7
4
  <div class="myporpove" id="myinputs">
8
- <!-- <el-button @click.stop="handleButtonClick"> </el-button> -->
9
-
10
- <!-- <el-popover
11
- ref="popover"
12
- :title="text"
13
- content="这是一段内容,这是一段内容。"
14
- :visible="visible"
15
- >
16
- <template #reference>
17
- <div style="width: 23px; height: 16px">
18
- <svg-icon
19
- name="mysearch"
20
- size="15"
21
- :color="value ? '#2C93FF' : ''"
22
- @click="toggle"
23
- />
24
- </div>
25
- </template>
26
- <el-select
27
- v-model="operator"
28
- class="m-2 input-select"
29
- placeholder="请选择查询类型"
30
- size="default"
31
- clearable
32
- >
33
- <el-option
34
- v-for="item in options"
35
- :key="item.value"
36
- :label="item.label"
37
- :value="item.value"
38
- />
39
- </el-select>
40
- </el-popover> -->
41
-
42
5
  <header-popover
43
6
  :popperStyle="PopperStyle"
44
7
  :trigger="trigger"
@@ -172,11 +135,10 @@
172
135
  <script setup lang="ts">
173
136
  defineOptions({ name: 'ci-headerInput' })
174
137
  import SvgIcon from '@/components/SvgIcon.vue'
175
- import { computed, ref, watch, toRefs } from 'vue'
138
+ import { computed, ref, watch } from 'vue'
176
139
  import lodash from 'lodash'
177
140
  import headerPopover from './utils/headerPopover.vue'
178
141
  import { TooltipTriggerType } from 'element-plus'
179
- const popover = ref()
180
142
 
181
143
  // 定义 props 的类型
182
144
  interface SelectConfig {
@@ -440,17 +402,19 @@ if (props.type !== 'date') {
440
402
  watch(operator, (newVal, oldVal) => {
441
403
  console.log('operator.value: ', newVal, oldVal)
442
404
  if (newVal == 'between' || oldVal == 'between') {
405
+ console.log('重置value的值')
443
406
  value.value = ''
444
407
  }
445
408
  })
446
409
 
447
410
  // 返回面板数据
448
411
  const confirm = (closeF?: Function) => {
449
- if (props.selectConfig.selectMultiple) {
450
- operator.value = 'in'
412
+ // 下拉列表框选值的时候处理最终值
413
+ if (props.type === 'select' && props.selectConfig.selectMultiple) {
414
+ operator.value = 'in' // 多选
451
415
  value.value = selectValue.value?.join(',') || ''
452
- } else {
453
- operator.value = '='
416
+ } else if (props.type === 'select' && !props.selectConfig.selectMultiple) {
417
+ operator.value = '=' // 单选
454
418
  value.value = selectValue.value
455
419
  }
456
420
  // 将当前参数的值放到对象中
@@ -469,6 +433,13 @@ const confirm = (closeF?: Function) => {
469
433
 
470
434
  // 清除按钮:清空输入框和发送请求
471
435
  const clear = () => {
436
+ // 如果是select下拉框,就清空select的值
437
+ if (props.type === 'select' && props.selectConfig.selectMultiple) {
438
+ selectValue.value = []
439
+ } else if (props.type === 'select' && !props.selectConfig.selectMultiple) {
440
+ selectValue.value = void 0
441
+ }
442
+
472
443
  value.value = void 0
473
444
  confirm()
474
445
  }
@@ -478,67 +449,7 @@ const close = () => {}
478
449
  const open = () => {
479
450
  emits('open')
480
451
  }
481
- /*
482
- const handleShow = () => {
483
- console.log('打开')
484
- visible.value = true
485
- document.addEventListener('mousedown', handleDocumentClick)
486
- }
487
- const handleHide = () => {
488
- console.log('关闭')
489
- visible.value = false
490
- document.removeEventListener('mousedown', handleDocumentClick)
491
- }
492
-
493
- const handleDocumentClick = (e: any) => {
494
- // 查找所有的class名称为 is-light 的元素
495
- // const el1 = document.querySelector('.is-light')
496
- // console.log('el1: ', el1)
497
-
498
- const elements = document.querySelectorAll('[id^="el-popper-container-"]')
499
- console.log('elements: ', elements)
500
-
501
- if (elements && elements.length > 0) {
502
- for (let i = 0; i < elements.length; i++) {
503
- const element = elements[i]
504
- console.log('element: ', element)
505
- if (element?.contains(e.target)) {
506
- return
507
- }
508
- }
509
- }
510
-
511
- // 通过自定义属性 aria-label 查找元素
512
- const el = document.querySelector(`[aria-label="${props.text}"]`)
513
- console.dir('el: ', el)
514
- // 获取 el 的class为.is-light的兄弟元素
515
- const el2 = el?.parentElement?.querySelector('.el-select__popper')
516
- console.dir('el2: ', el2)
517
- console.log('是否包含: ', el?.contains(e.target))
518
- // 获取class为 porpove的元素;
519
-
520
- // 判断点击的元素是否是是e的子元素
521
- if (el?.contains(e.target)) {
522
- return
523
- }
524
- if (!popover.value.$el.contains(e.target)) {
525
- console.log(22222)
526
- handleHide()
527
- }
528
- }
529
452
 
530
- const visible = ref(false)
531
- // const toggle = () => {
532
- // console.log('visible', visible.value)
533
- // if (visible.value) {
534
- // // visible.value = false
535
- // } else {
536
- // visible.value = true
537
- // document.addEventListener('mousedown', handleDocumentClick)
538
- // lodash.debounce(() => handleShow(), 500)
539
- // }
540
- // }
541
- */
542
453
  // 排序
543
454
  const orderChangtop = (val: string) => {
544
455
  console.log('升序', ordersVal.value)
@@ -5,34 +5,59 @@
5
5
  * @版本 : 1.0.0
6
6
  * @创建时间 : 创建时间 2024-01-05 13:17:56
7
7
  */
8
- import { store } from '@ice/stark-data'
9
- const apis = store.get('APIs')['1.1.1']
8
+ // import { store } from '@ice/stark-data'
9
+ // const apis = store.get('APIs')['1.1.1']
10
+ // export default apis
10
11
 
11
- export default apis
12
- /***
13
- {
14
- "toolingBasic": "http://10.20.72.231:8002/api/ToolingBasicCenter/toolingBasic/v1.1.1/",
15
- "equipModule": "http://10.20.72.231:8514/api/DeviceBasicCenter/deviceBasic/v1.1.1/",
16
- "produceModule": "http://10.20.72.231:8553/api/ProduceModule/produceModule/v1.1.1/",
17
- "customerModule": "http://10.20.72.231:8512/api/CustomerModule/customerModule/v1.1.1/",
18
- "measureModule": "http://10.20.72.231:8001/api/MeasureBasicCenter/measureBasic/v1.1.1/",
19
- "technology": "http://10.20.72.231:9877/api/Technology/bomModule/v1.1.1/",
20
- "storageModule": "http://10.20.72.231:9999/api/WarehouseModule/warehouseModule/v1.1.1/",
21
- "deviceModule": "http://10.20.72.231:8516/api/DeviceModule/deviceModule/v1.1.1/",
22
- "warehouseInspection": "http://10.20.72.231:9875/api/InspectionManagement/warehouseInspection/v1.1.1/",
23
- "abnormityManagement": "http://10.20.72.231:8517/api/AbnormityManagement/abnormityManagement/v1.1.1/",
24
- "userBasicCenter": "http://10.20.72.231:9002/api/UserBasicCenter/userbasic/v1.1.1/",
25
- "schedulingModule": "http://10.20.72.231:9003/api/SchedulingModule/schedulingModule/v1.1.1/",
26
- "fileModule": "http://10.20.72.231:9877/api/Technology/fileModule/v1.1.1/",
27
- "OAMModule": "http://10.20.72.231:8510/api/OAM/sys_code_set/v1.1.1/",
28
- "dailyPlan": "http://10.20.72.231:8519/api/SchedulingModule/dailyPlan/v1.1.1/",
29
- "materialModule": "http://10.20.72.231:8765/api/ProductCenter/productCenter/v1.1.1/",
30
- "middleWarehouse": "http://10.20.72.231:9999/api/MiddleWarehouse/middleWarehouse/v1.1.1/",
31
- "unqualified": "http://10.20.72.231:9998/api/NonconformityBasic/nonconformityBasic/v1.1.1/",
32
- "auditCenter": "http://10.20.72.231:9601/api/AuditCenter/basicModule/v1.1.1/",
33
- "qualityManagement": "http://10.20.72.231:8369/api/QualityManagement/quality/v1.1.1/",
34
- "finishedStorage": "http://10.20.72.231:8368/api/FinishedProductStorage/finishedProductStorage/v1.1.1/",
35
- "login": "http://10.23.181.13:8098/mes-auth-service/mes/api/v1/auth/login/",
36
- "userInfo": "http://10.23.181.13:8098/mes/mvc/"
12
+ import axios from 'axios'
13
+ axios.defaults.withCredentials = true
14
+
15
+ interface IApi {
16
+ [key: string]: string
37
17
  }
38
- */
18
+ const type = import.meta.env.VITE_API_PARAMS // 判断当前环境
19
+ const baseApi =
20
+ type === 'getApiDev'
21
+ ? import.meta.env.VITE_BASE_URL
22
+ : import.meta.env.VITE_BASE_URL + ':' + import.meta.env.VITE_PORT_AXIOS
23
+ const getUrl = async (): Promise<IApi> => {
24
+ return new Promise((resolve, reject) => {
25
+ let urldev = `${baseApi}:8510/api/OAM/sys_code_set/v1.1.1/query_function_config_get/`
26
+ let urlPro = `${baseApi}/logapi/OAM/api/OAM/sys_code_set/v1.1.1/query_function_config_get/`
27
+ let apiurl = type === 'getApiDev' ? urldev : urlPro
28
+ try {
29
+ axios
30
+ .get(apiurl, {
31
+ params: { function_code: type || 'getApiPro' },
32
+ })
33
+ .then((res) => {
34
+ if (
35
+ res.data.code === 200 &&
36
+ res.data.data &&
37
+ res.data.data.all_choices &&
38
+ res.data.data.all_choices.length > 0
39
+ ) {
40
+ // console.log('接口配置: ', res.data.data.all_choices)
41
+ resolve(
42
+ res.data.data.all_choices.reduce((acc: any, cur: any) => {
43
+ acc[cur.label] = baseApi + cur.value
44
+ return acc
45
+ }, {}),
46
+ )
47
+ } else {
48
+ console.error('没获取到接口数据: ', res.data.msg)
49
+ reject(res.data.msg)
50
+ }
51
+ })
52
+ .catch((error) => {
53
+ console.error(error)
54
+ reject(error)
55
+ })
56
+ } catch (error) {
57
+ console.log('error: ', error)
58
+ }
59
+ })
60
+ }
61
+ const apis = await getUrl()
62
+ export default apis
63
+
@@ -7,8 +7,8 @@
7
7
  */
8
8
  // import { scan_card_code_get } from '@/api/InventoryBatch'
9
9
  import { ElMessage } from 'element-plus'
10
- import { setDate } from './Dayjs'
11
- import apis from './baseApi'
10
+ import { setDate } from '@/utils/Dayjs'
11
+ import apis from '@/utils/baseApi'
12
12
  import axios from 'axios'
13
13
  const { storageModule } = apis
14
14
  let baseUrls = new URL(storageModule).origin + '/' // 图片的地址前缀
@@ -48,23 +48,27 @@ export const cardPrint = (
48
48
  r2c2: item.material_code, // 物料编码
49
49
  r2c4: baseUrls + item.qr_code_path, // 二维码地址
50
50
  r3c2: item.material_model, // 产品型号
51
- r4c2: item.center_data[0].customer_name, // 客户名称
52
- r5c2: item.flow_lot_number
53
- ? item.flow_lot_number
54
- : item.center_data[0].b2b_batch_number, // 流转批次号:存在就用流转批次号,不存在用批次序列号
51
+ r4c1: '供应商', // 供应商/生产厂商
52
+ r4c2: item.center_data[0]?.supplier_name,
53
+ r5c1: '材料厂商',
54
+ r5c2: item.center_data[0]?.material_manufacturer,
55
55
  r5c4: item.card_code, // 标识卡号
56
56
  r6c2: item.process_name, // 本工序
57
57
  r6c4: item.next_process_name, // 下工序
58
58
  r7c2: item.current_inventory, // 本箱数量
59
- r7c4: '', // 操作工/自检员
60
- r8c2: '', // 巡检员
59
+ r7c4: item.opt_user_name, // 操作工/自检员
60
+ r8c2: item.center_data[0]?.inspector, // 检验员
61
61
  r8c4: setDate(item.product_date), // 生产日期
62
62
  r9c2: item.value, // 规值
63
63
  r9c4: item.material_model, // 规格
64
+ r10c1: '批次号',
65
+ r10c2: item.flow_lot_number
66
+ ? item.flow_lot_number
67
+ : item.center_data[0]?.b2b_batch_number, // 流转批次号:存在就用流转批次号,不存在用批次序列号
64
68
  r12c2: item.remark, // 备注
65
69
  r13c1: item.flow_lot_number
66
70
  ? item.flow_lot_number
67
- : item.center_data[0].b2b_batch_number, //条形码文本:流转批次号存在就用流转批次号,不存在用批次序列号
71
+ : item.center_data[0]?.b2b_batch_number || '', //条形码文本:流转批次号存在就用流转批次号,不存在用批次序列号
68
72
  }
69
73
  }
70
74
  // 为尚工厂-(产品标识卡\尾料标识卡)
@@ -82,12 +86,12 @@ export const cardPrint = (
82
86
  ? item.material_type + '/' + item.material_name
83
87
  : item.material_name,
84
88
  r2c1: '分布场所代号',
85
- r2c2: item.center_data[0].store_code,
89
+ r2c2: item.center_data[0]?.store_code,
86
90
  r2c4: baseUrls + item.qr_code_path, // 二维码地址
87
91
  r3c1: '客户名称',
88
- r3c2: item.center_data[0].customer_name,
92
+ r3c2: item.center_data[0]?.customer_name,
89
93
  r4c1: '供应商',
90
- r4c2: item.center_data[0].supplier_name,
94
+ r4c2: item.center_data[0]?.supplier_name,
91
95
  r5c1: '产品型号',
92
96
  r5c2: item.material_model,
93
97
  r5c4: item.card_code, // 标识卡号
@@ -96,13 +100,13 @@ export const cardPrint = (
96
100
  r6c3: '库位',
97
101
  r6c4: item.next_process_code,
98
102
  r7c1: '材料炉号',
99
- r7c2: item.center_data[0].material_heat_number,
103
+ r7c2: item.center_data[0]?.material_heat_number,
100
104
  r7c3: '收货人员',
101
- r7c4: item.center_data[0].consignee,
105
+ r7c4: item.center_data[0]?.consignee,
102
106
  r8c1: '材料厂家',
103
- r8c2: item.center_data[0].material_manufacturer, // 材料厂家
107
+ r8c2: item.center_data[0]?.material_manufacturer, // 材料厂家
104
108
  r8c3: '材料牌号',
105
- r8c4: item.center_data[0].material_mark,
109
+ r8c4: item.center_data[0]?.material_mark,
106
110
  r9c1: '抽检结果', // (无)
107
111
  r9c2: '',
108
112
  r9c3: '单重',
@@ -114,14 +118,14 @@ export const cardPrint = (
114
118
  r11c1: '总箱数',
115
119
  r11c2: item.total_row,
116
120
  r11c3: '本批数量',
117
- r11c4: item.center_data[0].batch_count,
121
+ r11c4: item.center_data[0]?.batch_count,
118
122
  r12c1: '件数规格',
119
- r12c2: item.center_data[0].case_count_str,
123
+ r12c2: item.center_data[0]?.case_count_str,
120
124
  r12c3: '生产日期',
121
125
  r12c4: setDate(item.product_date),
122
126
  r13c1: '备注', // 备注
123
127
  r13c2: item.remark, // 备注
124
- r14c1: item.center_data[0].b2b_batch_number, //条形码文本
128
+ r14c1: item.center_data[0]?.b2b_batch_number || '', //条形码文本
125
129
  }
126
130
  }
127
131
  // 成品工厂-尾料标识卡(为尚无尾料标识卡,使用为尚的成品标识卡)
@@ -135,26 +139,31 @@ export const cardPrint = (
135
139
  r2c2: item.material_code, // 物料编码
136
140
  r2c4: baseUrls + item.qr_code_path, // 二维码地址
137
141
  r3c2: item.material_model, // 产品型号
138
- r4c2: item.center_data[0].customer_name, // 客户名称
139
- r5c2: item.flow_lot_number
140
- ? item.flow_lot_number
141
- : item.center_data[0].b2b_batch_number, // 流转批次号:存在就用流转批次号,不存在用批次序列号
142
+ r4c1: '供应商', // 供应商/生产厂商
143
+ r4c2: item.center_data[0]?.supplier_name,
144
+ r5c1: '材料厂商',
145
+ r5c2: item.center_data[0]?.material_manufacturer,
142
146
  r5c4: item.card_code, // 标识卡号
143
- r6c2: '', // 尾料原因
147
+ r6c2: item.center_data[0]?.tail_reason, // 尾料原因
144
148
  r7c2: item.process_name, // 本工序
145
149
  r7c4: item.next_process_code, // 下工序
146
150
  r8c2: item.current_inventory, // 本箱数量
147
- r8c4: '', // 操作工/自检员
148
- r9c2: '', // 检检员
149
- r9c4: setDate(''), // 生产日期
150
- r10c2: setDate(''), // 检查日期
151
+ r8c4: item.opt_user_name, // 操作工/自检员
152
+ r9c2: item.center_data[0]?.inspector, // 检验员
153
+ r9c4: setDate(item.product_date), // 生产日期
154
+ r10c2: setDate(item.center_data[0]?.inspect_time), // 检查日期
151
155
  r10c4: item.material_model, // 规格
152
156
  r11c2: '', // 游隙/尺寸
153
157
  r11c4: item.value, // 规值
154
- r12c2: item.remark, // 备注
155
- r13c1: item.flow_lot_number
158
+ r12c1: '批次号', // 批次号
159
+ r12c2: item.flow_lot_number
160
+ ? item.flow_lot_number
161
+ : item.center_data[0]?.b2b_batch_number, // 流转批次号:存在就用流转批次号,不存在用批次序列号
162
+ r13c1: '备注',
163
+ r13c2: item.remark,
164
+ r14c1: item.flow_lot_number
156
165
  ? item.flow_lot_number
157
- : item.center_data[0].b2b_batch_number, //条形码文本:流转批次号存在就用流转批次号,不存在用批次序列号
166
+ : item.center_data[0]?.b2b_batch_number || '', //条形码文本:流转批次号存在就用流转批次号,不存在用批次序列号
158
167
  }
159
168
  }
160
169
  // 成品工厂-责废标识卡
@@ -191,7 +200,7 @@ export const cardPrint = (
191
200
  r2c2: item.material_code, // 物料编码
192
201
  r2c4: baseUrls + item.qr_code_path, // 二维码地址
193
202
  r3c2: item.material_model, // 产品型号
194
- r4c2: item.center_data[0].flow_lot_number, // 流转批次号
203
+ r4c2: item.center_data[0]?.flow_lot_number, // 流转批次号
195
204
  r5c2: item.storage_scrap_count, // 责废总数
196
205
  r5c4: item.card_code, // 标识卡号
197
206
  r6c2: item.process_name, // 工序
@@ -214,7 +223,7 @@ export const cardPrint = (
214
223
  r12c1: '其他', // 渲染数组第5及以后行的'建'
215
224
  r12c2: badStr, // 渲染数组第5及以后行的'值'
216
225
  r13c2: item.remark, // 备注
217
- r14c1: item.center_data[0].b2b_batch_number, //条形码文本
226
+ r14c1: item.center_data[0]?.b2b_batch_number || '', //条形码文本
218
227
  }
219
228
  }
220
229
  // 为尚工厂-责废标识卡
@@ -296,7 +305,7 @@ export const cardPrint = (
296
305
  r14c2: badStr, // 渲染数组第2及以后行的'值'
297
306
  r15c1: '备注', // 备注
298
307
  r15c2: item.remark, //条形码文本
299
- r16c1: item.center_data[0].b2b_batch_number, // 条形码文本
308
+ r16c1: item.center_data[0]?.b2b_batch_number || '', // 条形码文本
300
309
  }
301
310
  }
302
311
  // 成品工厂-返工标识卡
@@ -336,7 +345,7 @@ export const cardPrint = (
336
345
  r2c4: baseUrls + item.qr_code_path, // 二维码地址
337
346
  r3c1: '产品型号',
338
347
  r3c2: item.material_model,
339
- r4c1: '流转批次号',
348
+ r4c1: '批次号',
340
349
  r4c2: item.flow_lot_number,
341
350
  r5c1: '返工总数',
342
351
  r5c2: item.rework_count,
@@ -366,7 +375,7 @@ export const cardPrint = (
366
375
  r11c2: badStr, // 渲染数组不良项目的'值'
367
376
  r13c1: '备注',
368
377
  r13c2: item.remark, // 备注
369
- r14c1: item.center_data[0].b2b_batch_number, //条形码文本
378
+ r14c1: item.center_data[0]?.b2b_batch_number || '', //条形码文本
370
379
  }
371
380
  }
372
381
  // 为尚工厂-返工标识卡
@@ -444,7 +453,7 @@ export const cardPrint = (
444
453
  r13c2: badStr, // 渲染数组不良项目的'值'
445
454
  r14c1: '备注',
446
455
  r14c2: item.remark, // 备注
447
- r15c1: item.center_data[0].b2b_batch_number, //条形码文本
456
+ r15c1: item.center_data[0]?.b2b_batch_number || '', //条形码文本
448
457
  }
449
458
  }
450
459
  // 成品工厂-装配标识卡(为尚工厂无装配标识卡)
@@ -574,7 +583,7 @@ export const cardPrint = (
574
583
  r11c2: badStr, // 渲染数组第3行的'值'
575
584
  r13c1: '备注',
576
585
  r13c2: item.remark, // 备注
577
- r14c1: item.center_data[0]?.b2b_batch_number, //条形码文本
586
+ r14c1: item.center_data[0]?.b2b_batch_number || '', //条形码文本
578
587
  }
579
588
  }
580
589
  // 为尚工厂-料废标识卡
@@ -652,7 +661,50 @@ export const cardPrint = (
652
661
  r13c2: badStr, // 渲染数组不良项目的'值'
653
662
  r14c1: '备注',
654
663
  r14c2: item.remark, // 备注
655
- r15c1: item.center_data[0].b2b_batch_number, //条形码文本
664
+ r15c1: item.center_data[0]?.b2b_batch_number || '', //条形码文本
665
+ }
666
+ }
667
+ // (成品工厂-为尚工厂)-账物卡
668
+ else if (item.card_state == 'ZHANGWU') {
669
+ // 如果有不良项目,就循环获取其中值
670
+ // 获取 badList[4] 以后项的 value 拼接成字符串
671
+ obj = {
672
+ card_state: item.card_state,
673
+ factoryType: item.is_finished_goods, // 工厂类型:1:为尚工厂 | 2:成品工厂
674
+ r1c2: '账物卡',
675
+ r1c3: '文件编号',
676
+ r1c4: item.material_type, // 文件编号
677
+ r2c1: '名称/类型',
678
+ r2c2: item.material_name
679
+ ? item.material_name + '/' + item.material_type
680
+ : item.material_type,
681
+ r2c4: baseUrls + item.qr_code_path, // 二维码地址
682
+ r3c1: '产品型号',
683
+ r3c2: item.material_model,
684
+ r4c1: '材料编码',
685
+ r4c2: item.material_code,
686
+ r5c1: '批号',
687
+ r5c2: item.flow_lot_number
688
+ ? item.flow_lot_number
689
+ : item.center_data[0]?.b2b_batch_number,
690
+ r5c4: item.card_code, // 标识卡号
691
+ r6c1: '规值',
692
+ r6c2: item.center_data[0]?.value,
693
+ r6c3: '供应商',
694
+ r6c4: item.center_data[0]?.supplier_name,
695
+ data: [
696
+ {
697
+ opt_time: setDate(item.opt_time), // 日期
698
+ sr: item.record_type === 1 ? item.inventory : '', // 收入
699
+ fc: item.record_type === 2 ? item.inventory : '', // 发出
700
+ balance_count: item.balance_count, //结转
701
+ remark: item.remark, // 签字/备注
702
+ },
703
+ ],
704
+
705
+ r14c1: item.flow_lot_number
706
+ ? item.flow_lot_number
707
+ : item.center_data[0]?.b2b_batch_number || '', //条形码文本
656
708
  }
657
709
  }
658
710
 
@@ -684,6 +736,3 @@ export function setCardList(rowList: any) {
684
736
 
685
737
  return cParams
686
738
  }
687
-
688
- export default cardPrint
689
-
package/vite.config.ts CHANGED
@@ -9,6 +9,7 @@ export default defineConfig({
9
9
  environment: 'happy-dom'
10
10
  },
11
11
  build: {
12
+ target: 'ESNext',
12
13
  //压缩
13
14
  //minify: false,
14
15
  rollupOptions: {