cnhis-design-vue 0.3.3-beta → 0.3.6-beta

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 (81) hide show
  1. package/env.d.ts +2 -0
  2. package/es/big-table/index.css +1 -0
  3. package/es/big-table/index.js +116 -74
  4. package/es/button-print/index.css +1 -0
  5. package/es/drag-layout/index.css +2 -1
  6. package/es/drag-layout/index.js +33 -58
  7. package/es/grid/index.css +2 -1
  8. package/es/grid/index.js +2 -3
  9. package/es/index.css +2 -1
  10. package/es/index.js +152 -135
  11. package/package.json +5 -2
  12. package/packages/big-table/index.ts +17 -0
  13. package/packages/big-table/src/BigTable.vue +2511 -0
  14. package/packages/big-table/src/assets/iconfont/iconfont.less +21 -0
  15. package/packages/big-table/src/assets/iconfont/iconfont.ttf +0 -0
  16. package/packages/big-table/src/assets/img/failure.png +0 -0
  17. package/packages/big-table/src/assets/img/icon-asc.png +0 -0
  18. package/packages/big-table/src/assets/img/icon-desc.png +0 -0
  19. package/packages/big-table/src/assets/img/no-permission.png +0 -0
  20. package/packages/big-table/src/assets/img/nodata.png +0 -0
  21. package/packages/big-table/src/assets/img/notfound.png +0 -0
  22. package/packages/big-table/src/assets/img/qr.png +0 -0
  23. package/packages/big-table/src/assets/img/video_default_cover.png +0 -0
  24. package/packages/big-table/src/assets/img/xb_big.png +0 -0
  25. package/packages/big-table/src/assets/img/xb_small.png +0 -0
  26. package/packages/big-table/src/assets/style/table-base.less +275 -0
  27. package/packages/big-table/src/assets/style/table-global.less +167 -0
  28. package/packages/big-table/src/bigTableEmits.ts +46 -0
  29. package/packages/big-table/src/bigTableProps.ts +125 -0
  30. package/packages/big-table/src/bigTableState.ts +62 -0
  31. package/packages/big-table/src/components/NoData.vue +90 -0
  32. package/packages/big-table/src/components/SvgIcon.vue +49 -0
  33. package/packages/big-table/src/components/TextOverTooltip.vue +110 -0
  34. package/packages/big-table/src/components/edit-form/EditForm.vue +426 -0
  35. package/packages/big-table/src/components/edit-form/edit-component/edit-date-picker/edit-date-picker.vue +66 -0
  36. package/packages/big-table/src/components/edit-form/edit-component/edit-digital/edit-digital.vue +60 -0
  37. package/packages/big-table/src/components/edit-form/edit-component/edit-input/edit-input.vue +38 -0
  38. package/packages/big-table/src/components/edit-form/edit-component/edit-input-password/edit-input-password.vue +89 -0
  39. package/packages/big-table/src/components/edit-form/edit-component/edit-month-picker/edit-month-picker.vue +38 -0
  40. package/packages/big-table/src/components/edit-form/edit-component/edit-search/edit-search.vue +63 -0
  41. package/packages/big-table/src/components/edit-form/edit-component/edit-search-more/edit-search-more.vue +69 -0
  42. package/packages/big-table/src/components/edit-form/edit-component/edit-select/edit-select.vue +51 -0
  43. package/packages/big-table/src/components/edit-form/edit-component/edit-select-multiple/edit-select-multiple.vue +60 -0
  44. package/packages/big-table/src/components/edit-form/edit-component/edit-textarea/edit-textarea.vue +34 -0
  45. package/packages/big-table/src/components/edit-form/edit-component/edit-time-picker/edit-time-picker.vue +42 -0
  46. package/packages/big-table/src/components/edit-form/edit-component/editFormProps.ts +91 -0
  47. package/packages/big-table/src/components/edit-form/edit-component/register-com.ts +18 -0
  48. package/packages/big-table/src/components/edit-form/hooks/useConfigData.ts +79 -0
  49. package/packages/big-table/src/components/edit-form/hooks/useDateType.ts +184 -0
  50. package/packages/big-table/src/components/edit-form/hooks/useFormCommon.ts +373 -0
  51. package/packages/big-table/src/components/edit-form/hooks/useItemDefault.ts +638 -0
  52. package/packages/big-table/src/components/edit-form/hooks/useSearch.ts +910 -0
  53. package/packages/big-table/src/components/edit-form/hooks/useValidateRules.ts +387 -0
  54. package/packages/big-table/src/components/edit-form/interface.ts +53 -0
  55. package/packages/big-table/src/components/edit-form/types.ts +3 -0
  56. package/packages/big-table/src/components/edit-form/utils.ts +247 -0
  57. package/packages/big-table/src/hooks/useBatchEditing.ts +574 -0
  58. package/packages/big-table/src/hooks/useFormat.ts +612 -0
  59. package/packages/big-table/src/hooks/useNestTable.ts +109 -0
  60. package/packages/big-table/src/hooks/useTableParse.ts +169 -0
  61. package/packages/big-table/src/utils.ts +705 -0
  62. package/packages/button-print/index.ts +15 -0
  63. package/packages/button-print/src/ButtonPrint.vue +697 -0
  64. package/packages/button-print/src/components/IdentityVerification.vue +149 -0
  65. package/packages/button-print/src/interfaces.ts +19 -0
  66. package/packages/button-print/src/utils/crypto.js +25 -0
  67. package/packages/button-print/src/utils/print.es.min.js +1 -0
  68. package/packages/drag-layout/index.ts +15 -0
  69. package/packages/drag-layout/src/DragFormLeftItem.vue +131 -0
  70. package/packages/drag-layout/src/DragFormRightItem.vue +277 -0
  71. package/packages/drag-layout/src/DragLayout.vue +712 -0
  72. package/packages/grid/index.ts +17 -0
  73. package/packages/grid/src/Grid.tsx +22 -0
  74. package/packages/grid/src/hooks.ts +168 -0
  75. package/packages/index.ts +36 -0
  76. package/src/component/svg/index.vue +49 -0
  77. package/src/core/create.ts +5 -0
  78. package/src/global/variable.ts +2 -0
  79. package/src/utils/clickoutside.ts +80 -0
  80. package/src/utils/crypto.js +25 -0
  81. package/src/utils/vexutils.ts +811 -0
@@ -0,0 +1,574 @@
1
+ import { computed, ref, reactive, watch, onMounted } from 'vue'
2
+ import axios from 'axios'
3
+
4
+ export const useBatchEditing = (props: any, state: any, emit: any, xGrid: any) => {
5
+
6
+ let _batchFieldList: any[] = []
7
+ let _fieldLength: number = 0
8
+
9
+ const allSelectedLength = computed(() => {
10
+ return state.checkedRows?.length;
11
+ })
12
+
13
+ /**
14
+ * 编辑
15
+ */
16
+ watch(
17
+ () => props.isBatchEditing,
18
+ val => {
19
+ if (!val || props.isNestTable) return false;
20
+ if (state.isTree != 0 || !props.isMatchComponent) return false;
21
+ if (!checkOperateCurrentTable()) {
22
+ resetBatchOperationRowStatus();
23
+ return false;
24
+ }
25
+ hideSelectCloumns();
26
+ handleClickBatchEditBtnByInline();
27
+ }
28
+ )
29
+ /**
30
+ * 保存
31
+ */
32
+ watch(
33
+ () => props.isBatchSave,
34
+ val => {
35
+ if (!val || props.isNestTable) return false;
36
+ if (state.isTree != 0 || !props.isMatchComponent) return false;
37
+ if (!checkOperateCurrentTable()) return false;
38
+ handleClickBatchSaveBtnByInline();
39
+ }
40
+ )
41
+ /**
42
+ * 取消
43
+ */
44
+ watch(
45
+ () => props.isBatchCancel,
46
+ val => {
47
+ if (!val || props.isNestTable) return false;
48
+ if (state.isTree != 0 || !props.isMatchComponent) return false;
49
+ if (!checkOperateCurrentTable()) return false;
50
+ handleClickBatchCancelBtnByInline();
51
+ }
52
+ )
53
+
54
+ /**
55
+ * 取消
56
+ */
57
+ watch(
58
+ () => props.isBatchCancel,
59
+ val => {
60
+ if (!val || props.isNestTable) return false;
61
+ if (state.isTree != 0 || !props.isMatchComponent) return false;
62
+ if (!checkOperateCurrentTable()) return false;
63
+ handleClickBatchCancelBtnByInline();
64
+ }
65
+ )
66
+
67
+ /**
68
+ * 校验提交
69
+ */
70
+ watch(
71
+ () => props.batchEditDoneNumber,
72
+ obj => {
73
+ if (!obj || !Object.keys(obj).length || props.isNestTable) return;
74
+ if (state.isTree != 0 || !props.isMatchComponent) return false;
75
+ if (!checkOperateCurrentTable()) return false;
76
+ submitBatchInlineForm(obj);
77
+ }
78
+ )
79
+
80
+ const checkOperateCurrentTable = () => {
81
+ if (props.isNestTable) return false;
82
+ let id = props.inlineEditCurrentOperateBtnId;
83
+ let find = props.btnList?.find((item: any) => {
84
+ return item?.settingObj?.[0]?.obj_id === id;
85
+ });
86
+ return !!find;
87
+ };
88
+
89
+ const setRowStatus = (vxeTable: any, rowIndex: number, value: any) => {
90
+ if (!vxeTable) return false;
91
+
92
+ let tableWrap = [
93
+ vxeTable.querySelector('.vxe-table--main-wrapper'),
94
+ vxeTable.querySelector('.vxe-table--fixed-left-wrapper'),
95
+ vxeTable.querySelector('.vxe-table--fixed-right-wrapper'),
96
+ vxeTable.querySelector('.vxe-table--body-wrapper')
97
+ ].filter(item => item);
98
+
99
+ let rowWrap: any[] = [];
100
+ tableWrap.forEach(table => {
101
+ let row = [...table.querySelectorAll('.vxe-body--row')];
102
+ rowWrap.push(row[rowIndex]);
103
+ });
104
+
105
+ rowWrap = rowWrap.filter(item => item);
106
+
107
+ let height = value ? `${value}px` : value;
108
+ let lineHeight = value ? `${value - 10}px` : value;
109
+
110
+ rowWrap.forEach(wrap => {
111
+ let rowItemWrap = [...wrap.querySelectorAll('.vxe-cell')];
112
+ rowItemWrap.push(...[...wrap.querySelectorAll('.vxe-body--column')]);
113
+ rowItemWrap.forEach(dom => {
114
+ dom.style.setProperty('height', height, 'important');
115
+ dom.style.lineHeight = lineHeight;
116
+ if (height) {
117
+ dom.style.backgroundColor = '#EFF5FF';
118
+ setTimeout(() => {
119
+ dom.title = '';
120
+ }, 1000);
121
+ } else {
122
+ dom.style.backgroundColor = null;
123
+ }
124
+ });
125
+ });
126
+ }
127
+
128
+ /**
129
+ * 重置样式
130
+ * @param {*} isCancel 保存之后
131
+ * @returns
132
+ */
133
+ const resetBatchOperationRowStatus = () => {
134
+ if (state.isTree != 0) return false;
135
+
136
+ const vxeTable = xGrid.value;
137
+ let { tableData } = vxeTable.getTableData();
138
+ vxeTable.clearActived();
139
+ vxeTable.resetColumn();
140
+ tableData.forEach((row: any, index: number) => {
141
+ // row && vxeTable.revertData(row);
142
+ setRowStatus(vxeTable.$el, index, null);
143
+ row['__isInlineEditing'] = false;
144
+ row['__isDisableInlineEdit'] = false;
145
+ });
146
+ }
147
+
148
+ const hideSelectCloumns = () => {
149
+ const vxeTable = xGrid.value
150
+ let findSelectCloumns = vxeTable.getColumns()?.find((item: any) => item.type === state.selectType);
151
+ findSelectCloumns && vxeTable.hideColumn(findSelectCloumns);
152
+ }
153
+
154
+ const checkListFormUnionSettingParamsList = () => {
155
+ if (!props.listFormUnionSetting?.paramsList?.length) {
156
+ (window as any).$message.warning('可编辑行需要设置关联表单字段,设置后请重试!');
157
+ emit('resetInlineEditAll', false);
158
+ emit('triggerSpinning', false);
159
+ return false;
160
+ }
161
+ let find = props.fieldListOriginal?.find((item: any) => item.isEdit == 1);
162
+ if (!find) {
163
+ (window as any).$message.warning('没有设置可编辑字段,请联系管理员');
164
+ emit('resetInlineEditAll', false);
165
+ emit('triggerSpinning', false);
166
+ return false;
167
+ }
168
+ return true;
169
+ }
170
+
171
+ const resetStoreInlineOperationStatus = () => {
172
+ if (state.isTree != 0) return false;
173
+ state.isSaveForm = false;
174
+ }
175
+
176
+ const getInlineOpreateRow = () => {
177
+ const vxeTable = xGrid.value
178
+ if (props.isInlineAdding) {
179
+ let { tableData } = vxeTable.getTableData();
180
+ return {
181
+ row: tableData[0],
182
+ rowIndex: 0
183
+ };
184
+ }
185
+
186
+ if (state.showButtonTop == 0) {
187
+ let { row, index: rowIndex } = state.currentClickBtnInfo || {};
188
+ return {
189
+ row,
190
+ rowIndex
191
+ };
192
+ }
193
+
194
+ let row = props.clickRowData;
195
+ for (var i = 0; i < props.oldtableData.length; i++) {
196
+ let item = props.oldtableData[i];
197
+ if (item[props.primaryKey] === row[props.primaryKey]) break;
198
+ }
199
+
200
+ return {
201
+ row,
202
+ rowIndex: i
203
+ };
204
+ }
205
+
206
+ const setAllRowInlineStatus = (disabled: boolean = false) => {
207
+ const vxeTable = xGrid.value
208
+ let { tableData } = vxeTable.getTableData();
209
+ tableData.forEach((row : any) => {
210
+ row['__isInlineEditing'] = false
211
+ row['__isDisableInlineEdit'] = disabled
212
+ });
213
+ }
214
+
215
+ const recordClickBtnInfo = (row?: any, index?: number) => {
216
+ state.currentClickBtnInfo = {
217
+ row,
218
+ index
219
+ };
220
+ }
221
+
222
+ const resetOperationRowStatus = () => {
223
+ if (state.isTree != 0) return false;
224
+ const vxeTable = xGrid.value
225
+ let { row, rowIndex } = getInlineOpreateRow();
226
+ if (!row) return false;
227
+ if (row?.__isInsertRow) {
228
+ vxeTable.remove(row);
229
+ }
230
+ vxeTable.clearActived().then(() => {
231
+ row && vxeTable.revertData(row);
232
+ setRowStatus(vxeTable.$el, rowIndex, null);
233
+ vxeTable.resetColumn();
234
+ setAllRowInlineStatus();
235
+ recordClickBtnInfo();
236
+ });
237
+ }
238
+
239
+ const handleClickCancelBtnByInline = async () => {
240
+ const vxeTable = xGrid.value
241
+ setRowStatus(vxeTable.$el, 0, null);
242
+ resetStoreInlineOperationStatus();
243
+ await vxeTable.reloadData(state.originFormatList);
244
+ resetOperationRowStatus();
245
+ emit('handleClickBtnByInline', {
246
+ type: 'CANCEL'
247
+ });
248
+ }
249
+
250
+ /**
251
+ * 设置row 为编辑样式
252
+ */
253
+ const getBatchOpreateRows = () => {
254
+ const vxeTable = xGrid.value
255
+ let arr = state.checkedRows;
256
+ let { tableData } = vxeTable.getTableData();
257
+ // 全部行编辑
258
+ if (props.isEditAllRow) {
259
+ arr = tableData;
260
+ }
261
+ // 重置状态时使用
262
+
263
+ arr.forEach((item: any, i: number) => {
264
+ let rowIndex = i;
265
+ if (!props.isEditAllRow) {
266
+ let matchIndex = tableData.findIndex((v: any) => v[props.primaryKey] == item[props.primaryKey]);
267
+ if (matchIndex > -1) {
268
+ rowIndex = matchIndex;
269
+ }
270
+ }
271
+ setRowStatus(vxeTable.$el, rowIndex, '66');
272
+ item['__isInlineEditing'] = true
273
+ });
274
+ }
275
+
276
+ /**
277
+ * 批量编辑
278
+ */
279
+ const handleClickBatchEditBtnByInline = async() => {
280
+ if (!checkListFormUnionSettingParamsList()) {
281
+ handleClickCancelBtnByInline();
282
+ return false;
283
+ }
284
+
285
+ let arr = state.checkedRows;
286
+ const vxeTable = xGrid.value
287
+ let { tableData } = vxeTable.getTableData();
288
+ // 全部行编辑
289
+ if (props.isEditAllRow) {
290
+ arr = tableData;
291
+ }
292
+ await vxeTable.loadData(arr);
293
+
294
+ await props.resetInlineBatchEdit();
295
+
296
+ setAllRowInlineStatus(true);
297
+
298
+ getBatchOpreateRows();
299
+ }
300
+
301
+ /**
302
+ * 处理需要submit的form个数
303
+ */
304
+ const handleEditFormLength = () => {
305
+ let fieldLength = _batchFieldList.length;
306
+ if (!fieldLength) return;
307
+ // 新增
308
+ if (props.isInlineAdding) {
309
+ return fieldLength;
310
+ }
311
+ let rowLen: number | any = allSelectedLength.value;
312
+ const vxeTable = xGrid.value
313
+ let { tableData } = vxeTable.getTableData();
314
+ // 全部行
315
+ if (props.isEditAllRow) {
316
+ rowLen = tableData.length;
317
+ }
318
+ if (!rowLen) return;
319
+ return fieldLength * rowLen;
320
+ }
321
+
322
+ /**
323
+ * 批量保存
324
+ */
325
+ const handleClickBatchSaveBtnByInline = () => {
326
+ if (props.spinning) return false;
327
+ emit('resetBatchEditDoneStatus');
328
+
329
+ let formDom: any = document.querySelectorAll('.js-inlineEditForm');
330
+ let sliceLen = handleEditFormLength();
331
+ // HACK: vxeTable行内编辑时复制的DOM节点,无需触发提交
332
+ formDom = [...formDom].slice(0, sliceLen);
333
+ formDom.forEach((item: any) => {
334
+ item.__vue__.handleSubmitForm();
335
+ });
336
+ }
337
+
338
+ /**
339
+ * 批量取消
340
+ */
341
+ const handleClickBatchCancelBtnByInline = async () => {
342
+ state.isSaveForm = false;
343
+ emit('resetInlineEditAll', false);
344
+ const vxeTable = xGrid.value
345
+ await vxeTable.reloadData(state.originFormatList);
346
+ resetBatchOperationRowStatus();
347
+ }
348
+
349
+ /**
350
+ * 判断每个表单是否校验过
351
+ * @param {*} obj
352
+ * @returns
353
+ */
354
+ const handleIsBatchDoneAll = (obj: any) => {
355
+ let fieldLength = _fieldLength;
356
+ if (!fieldLength) return false;
357
+ for (let key in obj) {
358
+ if (obj[key] < fieldLength) return false;
359
+ }
360
+ return true;
361
+ }
362
+
363
+ /**
364
+ * 处理form
365
+ * @param {*} batchFormData
366
+ * @returns
367
+ */
368
+ const handleSubmitParams = (batchFormData: any) => {
369
+ let arr = [];
370
+ for (let key in batchFormData) {
371
+ // v[this.primaryKey] 可能为数字
372
+ // key 为字符串 用全等匹配不到 改为 ==
373
+ let matchItem = props.oldtableData.find((v: any) => v[props.primaryKey] == key);
374
+ let obj = batchFormData[key];
375
+ if (matchItem) {
376
+ obj = Object.assign({}, obj, {
377
+ [props.primaryKey]: matchItem[props.primaryKey]
378
+ });
379
+ }
380
+ arr.push(obj);
381
+ }
382
+ return arr;
383
+ }
384
+
385
+ const savaForm = (formId: any, params: any) => {
386
+ let url = `/form/editRows/update/${formId}`;
387
+ return axios({
388
+ method: 'post',
389
+ url,
390
+ headers: { 'Content-Type': 'application/json; charset=utf-8' },
391
+ data: params
392
+ });
393
+ }
394
+
395
+ /**
396
+ * 批量提交form
397
+ * @param {*} obj
398
+ * @returns
399
+ */
400
+ const submitBatchInlineForm = (obj: any) => {
401
+ if (props.batchError) {
402
+ props.resetBatchEditRowStatus();
403
+ emit('triggerSpinning', false);
404
+ return;
405
+ }
406
+ let isBatchDoneAll = handleIsBatchDoneAll(obj);
407
+ if (!isBatchDoneAll) {
408
+ props.resetBatchEditRowStatus();
409
+ emit('triggerSpinning', false);
410
+ return;
411
+ }
412
+ let { formId } = props.listFormUnionSetting;
413
+ let params = handleSubmitParams(props.batchFormData);
414
+ if (!formId || !params) {
415
+ props.resetBatchEditRowStatus();
416
+ emit('triggerSpinning', false);
417
+ return;
418
+ }
419
+ if (state.isSaveForm) return false;
420
+ state.isSaveForm = true;
421
+ savaForm(formId, params)
422
+ .then(async ({ data }) => {
423
+ emit('triggerSpinning', false);
424
+ if (data.result !== 'SUCCESS') {
425
+ state.isSaveForm = false;
426
+ (window as any).$message.error(data.resultMsg);
427
+ props.resetBatchEditRowStatus();
428
+ return false;
429
+ }
430
+
431
+ await props.resetInlineBatchEdit();
432
+ handleClickBatchCancelBtnByInline();
433
+ emit('pubTableReload');
434
+ })
435
+ .finally(() => {
436
+ state.isSaveForm = false;
437
+ emit('triggerSpinning', false);
438
+ props.resetBatchEditRowStatus();
439
+ });
440
+ }
441
+
442
+ const formatFieldItem = (fieldItem: any) => {
443
+ return Object.assign({}, fieldItem, {
444
+ elem_width: '12',
445
+ is_show: '1'
446
+ });
447
+ }
448
+
449
+ const handleColumnMap = (batchFieldList: any, paramsList: any) => {
450
+ let { fieldList = [] } = props.columnConfig;
451
+ let editColumnMap: any = {};
452
+ fieldList.forEach((item: any) => {
453
+ if (item.isShow != 1 || item.isEdit != 1) return;
454
+ let matchItem = paramsList.find((v: any) => v.tableField === item.columnName);
455
+ if (!matchItem) return;
456
+ let fieldItem = batchFieldList?.find((field: any) => {
457
+ return field.val_key === matchItem.tableField;
458
+ });
459
+ if (!fieldItem) return;
460
+ fieldItem = formatFieldItem(fieldItem);
461
+ let obj = {
462
+ columnName: item.columnName,
463
+ matchItem,
464
+ fieldItem
465
+ };
466
+ editColumnMap[item.columnName] = obj;
467
+ });
468
+ return editColumnMap;
469
+ }
470
+
471
+ const handleFieldLength = () => {
472
+ let { fieldList = [] } = props.columnConfig;
473
+ let fieldLength = 0;
474
+ fieldList.forEach((item: any) => {
475
+ // table中有column隐藏
476
+ if (item.isShow == 1 && item.isEdit == 1) {
477
+ let matchItem = _batchFieldList.find(v => v.val_key === item.columnName);
478
+ if (matchItem) {
479
+ fieldLength++;
480
+ }
481
+ }
482
+ });
483
+ return fieldLength;
484
+ }
485
+
486
+ const handleRequestedUniqueKey = (id: any) => {
487
+ return axios
488
+ .get('tableList/getPrimaryKey', { params: { tableId: id } })
489
+ .then(({ data }) => {
490
+ let result;
491
+ if (data.result == 'SUCCESS') {
492
+ const { map = {} } = data;
493
+ result = map.primaryKey || undefined;
494
+ } else {
495
+ result = undefined;
496
+ }
497
+ state.cacheUniqueKey[id] = { value: result, status: true };
498
+ return result;
499
+ })
500
+ .catch(err => {
501
+ console.log(err);
502
+ state.cacheUniqueKey[id] = { value: undefined, status: true };
503
+ return undefined;
504
+ });
505
+ }
506
+
507
+ /**
508
+ * 获取编辑的field
509
+ */
510
+ const handleFieldTheUniqueKey = () => {
511
+ return new Promise<void>((resolve, reject) => {
512
+ let { paramsList = [] } = props.listFormUnionSetting || {};
513
+ let { fieldList = [] } = props.inlineEditFormConfig;
514
+ fieldList = JSON.parse(JSON.stringify(fieldList));
515
+ _batchFieldList = [];
516
+ let batchFieldList = fieldList
517
+ .map((item: any) => {
518
+ let matchItem = paramsList.find((v: any) => item.val_key === v.tableField);
519
+ if (matchItem) {
520
+ let NOWORDBOOK = item.wordbook && (item?.wordbook?.type || '') != 'WORDBOOK';
521
+ let id = item.wordbook?.id;
522
+ if (NOWORDBOOK && id && !state.theUniqueKeyListObj[id]) {
523
+ state.theUniqueKeyListObj[id] = id;
524
+ }
525
+ return item;
526
+ }
527
+ return null;
528
+ })
529
+ .filter(Boolean);
530
+ if (!batchFieldList || !batchFieldList.length) return resolve();
531
+ // 缓存行编辑需要的column配置
532
+ state.editColumnMap = handleColumnMap(batchFieldList, paramsList);
533
+ _batchFieldList = batchFieldList;
534
+ _fieldLength = handleFieldLength();
535
+ let keyList = Object.keys(state.theUniqueKeyListObj || {});
536
+ if (!keyList.length) return resolve();
537
+ keyList.forEach(async item => {
538
+ await handleRequestedUniqueKey(item);
539
+ });
540
+ resolve();
541
+ });
542
+ }
543
+
544
+ /**
545
+ * 避免每次点击都查询
546
+ * 初始化查一次 行编辑 表单search用
547
+ */
548
+ // 避免每次点击都查询
549
+ const handleFormTheUniqueKey = async () => {
550
+ emit('initInlineEditFormConfig', { listFormUnionSetting: props.listFormUnionSetting, inlineEditFormConfig: props.inlineEditFormConfig });
551
+ let hasEditRow = props.btnList?.find((item: any) => {
552
+ let trigger_type = item.settingObj && item.settingObj[0]?.trigger_type;
553
+ if (item.isShow == 1 && trigger_type == 'EDIT_ROW') return true;
554
+ return false;
555
+ });
556
+ if (!hasEditRow) return;
557
+ await handleFieldTheUniqueKey();
558
+ }
559
+
560
+ return {
561
+ allSelectedLength,
562
+ checkOperateCurrentTable,
563
+ setRowStatus,
564
+ resetBatchOperationRowStatus,
565
+ checkListFormUnionSettingParamsList,
566
+ handleClickCancelBtnByInline,
567
+ setAllRowInlineStatus,
568
+ hideSelectCloumns,
569
+ handleEditFormLength,
570
+ getInlineOpreateRow,
571
+ resetOperationRowStatus,
572
+ recordClickBtnInfo
573
+ };
574
+ }