n20-common-lib 3.0.86 → 3.0.87

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.
Files changed (34) hide show
  1. package/package.json +1 -1
  2. package/src/assets/css/table.scss +11 -0
  3. package/src/assets/css/v3/table.scss +19 -0
  4. package/src/components/ApprovalButtons/index.vue +42 -23
  5. package/src/components/ApprovalButtons/selectSpr.vue +15 -0
  6. package/src/components/ApprovalButtons/showAppOpi.vue +5 -1
  7. package/src/components/ApprovalButtons/showOtherAttrNew.vue +40 -41
  8. package/src/components/ApprovalCard/index.vue +21 -5
  9. package/src/components/ApprovalRecord/approvalImgPro/index.vue +23 -3
  10. package/src/components/ApprovalRecord/index.vue +7 -2
  11. package/src/components/FileUploadTable/index.vue +4 -3
  12. package/src/components/HandlingAdvice/index.vue +97 -70
  13. package/src/components/InputNumber/README.md +112 -0
  14. package/src/components/TablePro/index.vue +12 -1
  15. package/src/components/TableProOperateColumn/OperateBtns.vue +25 -5
  16. package/src/components/TableProOperateColumn/childrenOperateBtn.vue +83 -25
  17. package/src/components/Tabs/index.vue +3 -3
  18. package/src/components/TertiaryTab/index.vue +2 -2
  19. package/src/components/Upload/uploadMsg.vue +2 -0
  20. package/src/components/v3/SecondaryTab/index.vue +3 -3
  21. package/src/components/v3/TablePro/index.vue +39 -6
  22. package/src/index.js +3 -0
  23. package/src/plugins/Sign/signV3/InfosecNetSignCNGAgent.min.js +4112 -1
  24. package/src/plugins/Sign/signV3/sign.js +23 -11
  25. package/style/index.css +1 -1
  26. package/theme/blue.css +1 -1
  27. package/theme/cctcRed.css +1 -1
  28. package/theme/green.css +1 -1
  29. package/theme/lightBlue.css +1 -1
  30. package/theme/orange.css +1 -1
  31. package/theme/purple.css +1 -1
  32. package/theme/red.css +1 -1
  33. package/theme/yellow.css +1 -1
  34. package/src/assets/css/table copy.scss +0 -234
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n20-common-lib",
3
- "version": "3.0.86",
3
+ "version": "3.0.87",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -242,3 +242,14 @@ th.vxe-header--column {
242
242
  text-overflow: ellipsis;
243
243
  white-space: nowrap;
244
244
  }
245
+ // badge图章样式
246
+ .table-operate-btns__wrapper {
247
+ .el-badge__content {
248
+ position: absolute;
249
+ top: 6px;
250
+ right: 15px;
251
+ font-size: 10px;
252
+ height: 12px;
253
+ line-height: 12px;
254
+ }
255
+ }
@@ -287,6 +287,14 @@
287
287
  align-items: center;
288
288
  gap: 4px;
289
289
  white-space: nowrap;
290
+ .el-badge__content {
291
+ position: absolute;
292
+ top: 0;
293
+ right: 0;
294
+ font-size: 10px;
295
+ height: 12px;
296
+ line-height: 12px;
297
+ }
290
298
  }
291
299
 
292
300
  .hover-btns-more {
@@ -520,4 +528,15 @@
520
528
  text-overflow: ellipsis;
521
529
  white-space: nowrap;
522
530
  }
531
+
532
+ .table-operate-btns__wrapper {
533
+ .el-badge__content {
534
+ position: absolute;
535
+ top: 6px;
536
+ right: 15px;
537
+ font-size: 10px;
538
+ height: 12px;
539
+ line-height: 12px;
540
+ }
541
+ }
523
542
  }
@@ -5,7 +5,7 @@
5
5
  <ExpandablePane
6
6
  v-if="taskId && showBtn && authList.includes('isShowOtherAtt')"
7
7
  title="自定义项"
8
- :default-expand="false"
8
+ :default-expand="otherExpand"
9
9
  >
10
10
  <el-form ref="approveBtnGroup" label-position="right" :label-width="_lang === 'zh' ? '12em' : '12em'">
11
11
  <div
@@ -221,7 +221,7 @@
221
221
  <carboncopy-prop
222
222
  type="addtask"
223
223
  :carbon-copy-list="addTaskList"
224
- @close="setAddtaskV = false"
224
+ @close="setAddtaskClose"
225
225
  @confirm="setAddtaskOk"
226
226
  />
227
227
  </cl-dialog>
@@ -454,6 +454,10 @@ export default {
454
454
  beforeDiscard: {
455
455
  type: Function,
456
456
  default: undefined
457
+ },
458
+ otherExpand: {
459
+ type: Boolean,
460
+ default: true
457
461
  }
458
462
  },
459
463
  data() {
@@ -579,27 +583,8 @@ export default {
579
583
  noMsg: true
580
584
  }
581
585
  )
582
- // addTaskTip 是否给出加签提示
583
- if (res.code === 200 && res.data && res.data.addTaskTip) {
584
- this.$confirm('请确定是否向后加签', $lc('提示'), {
585
- confirmButtonText: $lc('确定'),
586
- cancelButtonText: $lc('取消'),
587
- type: 'warning'
588
- }).then(() => {
589
- // 如果返回正常 且有返回值 且showNextEgwOutgoingNodeName跟showNextNodeAssignee有一个为true
590
- if (
591
- res.code === 200 &&
592
- res.data &&
593
- (res.data.showNextEgwOutgoingNodeName || res.data.showNextNodeAssignee)
594
- ) {
595
- this.setSpr = true
596
- this.selectSprList = res.data
597
- } else {
598
- this.checkFlowFn()
599
- }
600
- })
601
- } else {
602
- // 如果返回正常 且有返回值 且showNextEgwOutgoingNodeName跟showNextNodeAssignee有一个为true
586
+ // 处理请求结果:showNextEgwOutgoingNodeName 或 showNextNodeAssignee 有一个为 true 时显示加签列表
587
+ const handleResult = () => {
603
588
  if (
604
589
  res.code === 200 &&
605
590
  res.data &&
@@ -608,9 +593,18 @@ export default {
608
593
  this.setSpr = true
609
594
  this.selectSprList = res.data
610
595
  } else {
596
+ this.nextEgwOutgoingNodeId = undefined
597
+ this.nextNodeApproveUnos = undefined
611
598
  this.checkFlowFn()
612
599
  }
613
600
  }
601
+ // addTaskTip 需要加签时,直接弹出加签弹窗选择被加签人
602
+ if (res.code === 200 && res.data && res.data.addTaskTip) {
603
+ this._pendingAddTaskTip = handleResult
604
+ this.setAddtaskV = true
605
+ } else {
606
+ handleResult()
607
+ }
614
608
  } catch (error) {
615
609
  console.log(error)
616
610
  this.checkFlowFn()
@@ -1143,6 +1137,14 @@ export default {
1143
1137
 
1144
1138
  this.setCarboncopyV = false
1145
1139
  },
1140
+ setAddtaskClose() {
1141
+ this.setAddtaskV = false
1142
+ if (this._pendingAddTaskTip) {
1143
+ const callback = this._pendingAddTaskTip
1144
+ this._pendingAddTaskTip = null
1145
+ callback()
1146
+ }
1147
+ },
1146
1148
  setAddtaskOk(list) {
1147
1149
  this.addTaskList = list
1148
1150
  if (this.addTaskList.length > 0 && !this.addTaskType) {
@@ -1154,6 +1156,23 @@ export default {
1154
1156
  }
1155
1157
 
1156
1158
  this.setAddtaskV = false
1159
+
1160
+ // 加签提示场景:未选择被加签人时,弹窗确认是否向后加签
1161
+ if (this._pendingAddTaskTip) {
1162
+ const callback = this._pendingAddTaskTip
1163
+ this._pendingAddTaskTip = null
1164
+ if (this.addTaskList.length === 0) {
1165
+ this.$confirm('请检查是否向后加签', $lc('提示'), {
1166
+ confirmButtonText: $lc('确定'),
1167
+ cancelButtonText: $lc('取消'),
1168
+ type: 'warning'
1169
+ }).then(() => {
1170
+ callback()
1171
+ }).catch(() => {})
1172
+ } else {
1173
+ callback()
1174
+ }
1175
+ }
1157
1176
  },
1158
1177
  getFileDtos(fileList) {
1159
1178
  return fileList.map((file) => {
@@ -106,7 +106,22 @@ export default {
106
106
  this.selectCheck = this.selectSprList?.showNextNodeAssignee || false
107
107
  },
108
108
  personChange(list) {
109
+ const { nextNodeAssigneeMinnum: min = 0, nextNodeAssigneeMaxnum: max = 0 } = this.selectSprList || {}
110
+
111
+ // 校验最大值
112
+ if (max && list.length > max) {
113
+ this.$message.warning(`审批人数需小于或等于 ${max} 个`)
114
+ return
115
+ }
116
+
117
+ // 更新当前选中
109
118
  this.personList = list
119
+
120
+ // 校验最小值(仅提示,不强制拦截)
121
+ if (min && list.length < min) {
122
+ this.$message.info(`审批人数需大于或等于 ${min} 个`)
123
+ return
124
+ }
110
125
  },
111
126
  closeFn(item) {
112
127
  this.selectSprList = {
@@ -7,7 +7,8 @@
7
7
  clearable
8
8
  :multiple="multiple"
9
9
  collapse-tags
10
- :placeholder="'常用审批意见,选择后将自动填充至下方输入框,您可在此基础上修改' | $lc"
10
+ :placeholder="'
11
+ ,选择后将自动填充至下方输入框,您可在此基础上修改' | $lc"
11
12
  @change="changeFn"
12
13
  >
13
14
  <el-option v-for="(item, i) in approveMsgList" :key="i" :label="item.suggestion" :value="item.suggestion" />
@@ -77,6 +78,8 @@
77
78
  placeholder="请输入"
78
79
  size="normal"
79
80
  clearable
81
+ maxlength="500"
82
+ show-word-limit
80
83
  @change="row.appNoType = 'add'"
81
84
  />
82
85
  </vxe-column>
@@ -106,6 +109,7 @@ import ClTablePro from '../TablePro/index.vue'
106
109
  import { $lc } from '../../utils/i18n/index'
107
110
  import axios from '../../utils/axios'
108
111
  export default {
112
+ name: 'ShowAppOpi',
109
113
  components: {
110
114
  clSecondaryTab,
111
115
  ClDialog,
@@ -1,33 +1,13 @@
1
1
  <template>
2
- <div
3
- class="w-100p flex-box"
4
- style="
5
- flex-wrap: wrap;
6
- display: grid;
7
- grid-template-columns: repeat(2, 1fr);
8
- gap: 16px;
9
- padding: 0;
10
- overflow-x: hidden;
11
- "
12
- >
13
- <div v-for="(item, i) in otherAttData" :key="i" class="flex-box flex-v" style="width: 100%; padding: 0 20px">
2
+ <div class="w-100p">
3
+ <div v-for="(item, i) in otherAttData" :key="i" class="flex-box m-l-m m-r-m">
14
4
  <el-form-item
15
5
  class="m-r-ss m-b-s"
16
- :label-width="labelWidth"
17
6
  :class="item.cfgHasRemark === '1' ? 'flex-auto' : 'flex-1'"
18
7
  :label="item.cfgName"
19
8
  >
20
9
  <span slot="label">
21
- <span
22
- v-title="item.cfgName"
23
- style="
24
- display: inline-block;
25
- white-space: nowrap;
26
- overflow: hidden;
27
- text-overflow: ellipsis;
28
- "
29
- :style="{ maxWidth: labelWidth }"
30
- >
10
+ <span style="display: inline-block; white-space: wrap">
31
11
  <span v-if="required" style="color: red">*</span>
32
12
  {{ item.cfgName }}
33
13
  </span>
@@ -61,20 +41,10 @@
61
41
  >
62
42
  <el-option v-for="(row, i) in JSON.parse(item.cfgJson)" :key="i" :label="row.value" :value="row.code" />
63
43
  </el-select>
64
- <el-radio-group
65
- v-if="item.cfgType === '22'"
66
- v-model="item.cfgVal"
67
- class="input-w"
68
- @change="(val) => changeFn(val, item)"
69
- >
44
+ <el-radio-group v-if="item.cfgType === '22'" v-model="item.cfgVal" @change="(val) => changeFn(val, item)">
70
45
  <el-radio v-for="(row, i) in JSON.parse(item.cfgJson)" :key="i" :label="row.code">{{ row.value }}</el-radio>
71
46
  </el-radio-group>
72
- <el-checkbox-group
73
- v-if="item.cfgType === '32'"
74
- v-model="item.checkList"
75
- class="input-w"
76
- @change="(val) => changeFn(val, item)"
77
- >
47
+ <el-checkbox-group v-if="item.cfgType === '32'" v-model="item.checkList" @change="(val) => changeFn(val, item)">
78
48
  <el-checkbox v-for="(row, i) in JSON.parse(item.cfgJson || '[]')" :key="i" :label="row.code">{{
79
49
  row.value
80
50
  }}</el-checkbox>
@@ -93,13 +63,13 @@
93
63
  v-model="item.cfgVal"
94
64
  :type="'textarea'"
95
65
  placeholder="请输入"
96
- class="w-100p m-r-ss m-b-s flex-1"
66
+ class="w-100p m-r-s m-b-s flex-1"
97
67
  clearable
98
68
  />
99
69
  <el-input
100
70
  v-if="item.cfgHasRemark === '1' && !['11', '12'].includes(item.cfgType)"
101
71
  v-model="item.cfgRemark"
102
- class="w-100p m-r-ss m-b-s flex-1"
72
+ class="w-100p m-r-lg m-b-s flex-1"
103
73
  placeholder="请输入备注"
104
74
  />
105
75
  </div>
@@ -109,11 +79,8 @@
109
79
  <script>
110
80
  import axios from '../../utils/axios'
111
81
  export default {
82
+ name: 'ShowOtherAttrNew',
112
83
  props: {
113
- labelWidth: {
114
- type: String,
115
- default: '12em'
116
- },
117
84
  taskId: {
118
85
  type: [String, Number],
119
86
  default: ''
@@ -144,6 +111,34 @@ export default {
144
111
  this.getData(this.otherAttDataA)
145
112
  },
146
113
  methods: {
114
+ setDefaultValue(item) {
115
+ const defaultTypes = ['22', '21', '31', '32']
116
+ // 不满足条件的直接返回
117
+ if (!defaultTypes.includes(item.cfgType) || item.cfgVal) return
118
+
119
+ try {
120
+ // 解析cfgJson,获取默认选项
121
+ const cfgJson = JSON.parse(item.cfgJson || '[]')
122
+ const defaultItems = cfgJson.filter((row) => row.isDefault === '1')
123
+ if (!defaultItems.length) return
124
+ // 获取默认选项的code值
125
+ const defaultCodes = defaultItems.map((row) => row.code)
126
+ if (['22', '21'].includes(item.cfgType)) {
127
+ item.cfgVal = defaultCodes[0]
128
+ item.cfgText = defaultItems[0]?.value
129
+ } else if (['31', '32'].includes(item.cfgType)) {
130
+ item.cfgVal = defaultCodes.join(',')
131
+ item.cfgText = defaultItems.map((row) => row.value).join(',')
132
+ if (item.cfgType === '31') {
133
+ item.selectList = defaultCodes
134
+ } else {
135
+ item.checkList = defaultCodes
136
+ }
137
+ }
138
+ } catch (e) {
139
+ // JSON解析失败时忽略
140
+ }
141
+ },
147
142
  getData(data) {
148
143
  if (data.length) {
149
144
  this.otherAttData = data
@@ -156,6 +151,10 @@ export default {
156
151
  if (['32'].includes(item.cfgType)) {
157
152
  item.checkList = item.checkList ? item.checkList : []
158
153
  }
154
+ if (['31'].includes(item.cfgType)) {
155
+ item.selectList = item.selectList ? item.selectList : []
156
+ }
157
+ this.setDefaultValue(item)
159
158
  return item
160
159
  }) || []
161
160
  }
@@ -192,8 +192,14 @@
192
192
  >{{ '审查意见:' | $lc }} <i class="n20-icon-shouqizhedie f-s-m"></i
193
193
  ></span>
194
194
  <div v-show="showFlowHistoryChild" class="n20-description-bgc p-a-s">
195
- <div v-for="(s, i) in row.flowHistoryCfgs" :key="i">
196
- {{ s.cfgName }}:{{ s.cfgText ? s.cfgText : s.cfgVal }}
195
+ <div
196
+ v-for="(s, i) in row.flowHistoryCfgs"
197
+ :key="i"
198
+ :class="{ 'flex-box': align === 'left-right' }"
199
+ :style="align === 'left-right' ? 'justify-content: space-between' : ''"
200
+ >
201
+ <span>{{ s.cfgName }}:</span
202
+ ><span>{{ s.cfgText ? s.cfgText : s.cfgVal }}{{ s.cfgRemark }}</span>
197
203
  </div>
198
204
  </div>
199
205
  </div>
@@ -266,9 +272,15 @@
266
272
  >{{ '审查意见:' | $lc }}<i class="n20-icon-shouqizhedie f-s-m"></i
267
273
  ></span>
268
274
  <div v-show="showFlowHistory" class="n20-description-bgc p-a-s">
269
- <div v-for="(s, i) in item.flowHistoryCfgs" :key="i" class="p-b-s">
270
- <div>{{ s.cfgName }}:{{ s.cfgText ? s.cfgText : s.cfgVal }}</div>
271
- <div>{{ s.cfgRemark }}</div>
275
+ <div
276
+ v-for="(s, i) in item.flowHistoryCfgs"
277
+ :key="i"
278
+ class="p-b-s"
279
+ :class="{ 'flex-box': align === 'left-right' }"
280
+ :style="align === 'left-right' ? 'justify-content: space-between' : ''"
281
+ >
282
+ <span>{{ s.cfgName }}:{{ s.cfgName }}:</span>
283
+ <span>{{ s.cfgText ? s.cfgText : s.cfgVal }}{{ s.cfgRemark }}</span>
272
284
  </div>
273
285
  </div>
274
286
  </div>
@@ -412,6 +424,10 @@ export default {
412
424
  hideLoading: {
413
425
  type: Boolean,
414
426
  default: false
427
+ },
428
+ align: {
429
+ type: String,
430
+ default: 'left-right'
415
431
  }
416
432
  },
417
433
  data() {
@@ -17,7 +17,7 @@
17
17
  </symbol>
18
18
  </svg>
19
19
  <div ref="activiti-svg-wrap" class="activiti-svg-wrap"></div>
20
- <div class="flex-box activiti-svg-zoom">
20
+ <div class="flex-box activiti-svg-zoom flex-v">
21
21
  <el-button type="text" icon="el-icon-zoom-out" style="font-size: 18px" @click="scaleMinus" />
22
22
  <el-slider
23
23
  v-model="zoomValue"
@@ -32,7 +32,27 @@
32
32
  <span class="m-l-s m-r-s" style="display: inline-block; width: 38px; line-height: 38px">{{
33
33
  zoomValue | zoomFormat
34
34
  }}</span>
35
- <el-button type="text" icon="el-icon-full-screen" style="font-size: 16px" @click="scaleReset" />
35
+ <svg
36
+ style="font-size: 16px; width: 20px; height: 20px"
37
+ @click="scaleReset"
38
+ t="1773296357916"
39
+ class="icon pointer"
40
+ viewBox="0 0 1024 1024"
41
+ version="1.1"
42
+ xmlns="http://www.w3.org/2000/svg"
43
+ p-id="39626"
44
+ width="200"
45
+ height="200"
46
+ >
47
+ <path
48
+ d="M896 85.333333a42.666667 42.666667 0 0 1 42.666667 42.666667v768a42.666667 42.666667 0 0 1-42.666667 42.666667H128a42.666667 42.666667 0 0 1-42.666667-42.666667V128a42.666667 42.666667 0 0 1 42.666667-42.666667h768z m-42.666667 85.333334H170.666667v682.666666h682.666666V170.666667z"
49
+ p-id="39627"
50
+ ></path>
51
+ <path
52
+ d="M751.125333 667.242667h-64.384v-176.234667l0.64-28.970667 1.045334-31.658666c-10.709333 10.688-18.133333 17.706667-22.293334 21.034666l-35.008 28.138667-31.04-38.762667 98.133334-78.122666h52.906666v304.576zM477.589333 637.44c0-11.648 3.114667-20.48 9.386667-26.453333 6.229333-5.973333 15.338667-8.96 27.264-8.96 11.52 0 20.416 3.072 26.666667 9.173333 6.4 6.122667 9.6 14.869333 9.6 26.24 0 10.986667-3.2 19.669333-9.6 26.069333-6.378667 6.250667-15.274667 9.365333-26.666667 9.365334-11.648 0-20.693333-3.050667-27.093333-9.173334-6.378667-6.250667-9.557333-14.997333-9.557334-26.24z m0-172.074667c0-11.648 3.114667-20.48 9.386667-26.453333 6.229333-5.973333 15.338667-8.96 27.264-8.96 11.52 0 20.416 3.050667 26.666667 9.173333 6.4 6.101333 9.6 14.869333 9.6 26.24 0 11.264-3.264 20.010667-9.813334 26.24-6.378667 6.122667-15.189333 9.173333-26.453333 9.173334-11.648 0-20.693333-3.050667-27.093333-9.173334-6.378667-6.08-9.557333-14.848-9.557334-26.24zM385.706667 667.242667h-64.362667v-176.234667l0.618667-28.970667 1.045333-31.658666c-10.709333 10.688-18.133333 17.706667-22.293333 21.034666l-34.986667 28.138667L234.666667 440.789333 332.8 362.666667h52.906667v304.576z"
53
+ p-id="39628"
54
+ ></path>
55
+ </svg>
36
56
  </div>
37
57
  <el-popover ref="title-pop" v-model="msgV" trigger="hover" placement="top">
38
58
  <div class="activiti-msg">
@@ -292,7 +312,7 @@ export default {
292
312
  detailList: assigneeEnd.map((item) => {
293
313
  return {
294
314
  assignee: item.assignee,
295
- optResult: item.optName,
315
+ optResult: item.optResult,
296
316
  suggestion: item.suggestion,
297
317
  endTime: item.endTime
298
318
  }
@@ -21,6 +21,7 @@
21
21
  class="p-a"
22
22
  :proc-inst-id="procInstIdC"
23
23
  style="height: 70vh; overflow: auto"
24
+ :align="align"
24
25
  />
25
26
  </el-dialog>
26
27
  <el-dialog
@@ -35,12 +36,12 @@
35
36
  <approvalImg class="text-c p-a" :proc-inst-id="procInstIdC" style="height: 70vh; overflow: auto" />
36
37
  </el-dialog>
37
38
  </div>
38
- <div v-else-if="approvalMode === 'title'">
39
+ <div v-else>
39
40
  <expandableWrap :title="'审批记录' | $lc">
40
41
  <template slot="tips">
41
42
  <el-button size="mini" plain @click="imgV = true">{{ '流程图查看' | $lc }}</el-button>
42
43
  </template>
43
- <approvalCard :api-prefix="apiPrefix" :proc-inst-id="procInstIdC" />
44
+ <approvalCard :api-prefix="apiPrefix" :proc-inst-id="procInstIdC" :align="align" />
44
45
  <el-dialog
45
46
  v-drag
46
47
  :title="'查看流程' | $lc"
@@ -80,6 +81,10 @@ export default {
80
81
  buttonMode: {
81
82
  type: Boolean,
82
83
  default: true
84
+ },
85
+ align: {
86
+ type: String,
87
+ default: 'left-right'
83
88
  }
84
89
  },
85
90
  data() {
@@ -12,7 +12,7 @@
12
12
  <slot v-if="!readonly && showBatchUpload" name="batch-btn">
13
13
  <el-button size="mini" plain @click="handleBathUpload">{{ '批量上传' | $lc }}</el-button>
14
14
  </slot>
15
- <slot v-if="!readonly && showBatchPrint" name="batch-btn">
15
+ <slot v-if="showBatchPrint" name="batch-btn">
16
16
  <el-button size="mini" plain @click="batchPrint">{{ '批量打印' | $lc }}</el-button>
17
17
  </slot>
18
18
  <slot name="down-btn">
@@ -248,7 +248,7 @@
248
248
  >
249
249
  <div class="flex-column flex-c flex-v" style="height: 100%">
250
250
  <i class="el-icon-s-release" style="font-size: 60px; color: #999"></i>
251
- <span style="margin-top: 16px">
251
+ <span style="margin-top: 16px" class="flex-box flex-c flex-v">
252
252
  {{ '不支持在线预览,请' | $lc
253
253
  }}<el-link type="primary" class="color-primary" @click="downFile(seeRow)">{{ '下载' | $lc }}</el-link
254
254
  >{{ '到本地查看' | $lc }}
@@ -673,7 +673,8 @@ export default {
673
673
  })
674
674
  }
675
675
  if (this.batchPrintMethod) {
676
- return this.batchPrintMethod(this.selectionList)
676
+ this.batchPrintMethod(this.selectionList)
677
+ return
677
678
  }
678
679
  const { code, data } = await axios.post(
679
680
  this.apiPrefix