cloud-web-corejs 1.0.54-dev.405 → 1.0.54-dev.407
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/package.json +1 -1
- package/src/components/fileLibrary/filterDialog.vue +44 -20
- package/src/components/fileLibrary/index.vue +589 -239
- package/src/components/fileLibrary/mixins/indexMixins.js +3 -0
- package/src/components/obsUpload/mixins.js +3 -3
- package/src/components/xform/form-render/container-item/containerItemMixin.js +376 -2
- package/src/components/xform/form-render/container-item/data-table-mixin.js +2866 -1
- package/src/components/xform/form-render/indexMixin.js +1424 -1249
- package/src/components/xform/utils/util.js +10 -0
- package/src/views/user/wf/wfReport/index.vue +26 -30
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import emitter from
|
|
2
|
-
import i18n, {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import
|
|
6
|
-
import dynamicDialogRender from './dynamicDialogRender.js';
|
|
7
|
-
import VFormRender from '../../../components/xform/form-render/index.vue'
|
|
1
|
+
import emitter from "../../../components/xform/utils/emitter";
|
|
2
|
+
import i18n, { changeLocale } from "../../../components/xform/utils/i18n";
|
|
3
|
+
import Vue from "vue";
|
|
4
|
+
import dynamicDialogRender from "./dynamicDialogRender.js";
|
|
5
|
+
import VFormRender from "../../../components/xform/form-render/index.vue";
|
|
8
6
|
import {
|
|
9
7
|
generateId,
|
|
10
8
|
deepClone,
|
|
@@ -22,8 +20,9 @@ import {
|
|
|
22
20
|
getContainerWidgetByName,
|
|
23
21
|
cloneFormConfigWithoutEventHandler,
|
|
24
22
|
loopHandleWidget,
|
|
25
|
-
traverseAllWidgetsNew,
|
|
26
|
-
|
|
23
|
+
traverseAllWidgetsNew,
|
|
24
|
+
columnFormatMap,
|
|
25
|
+
} from "../../../components/xform/utils/util";
|
|
27
26
|
import {
|
|
28
27
|
containers,
|
|
29
28
|
advancedFields,
|
|
@@ -31,17 +30,17 @@ import {
|
|
|
31
30
|
customFields,
|
|
32
31
|
businessFields,
|
|
33
32
|
hiddenWidgetTypesOfWf,
|
|
34
|
-
freeWidgetTypesOfWf
|
|
35
|
-
} from "../../../components/xform/form-designer/widget-panel/widgetsConfig.js"
|
|
33
|
+
freeWidgetTypesOfWf,
|
|
34
|
+
} from "../../../components/xform/form-designer/widget-panel/widgetsConfig.js";
|
|
36
35
|
import scriptHttpMixin from "../../../components/xform/mixins/scriptHttp";
|
|
37
36
|
import defaultHandleMixin from "../../../components/xform/mixins/defaultHandle";
|
|
38
37
|
import xeUtils from "xe-utils";
|
|
39
|
-
import {extendDeeply} from "@base/utils/index.js";
|
|
40
|
-
import
|
|
41
|
-
import html2Canvas from
|
|
42
|
-
import JsPDF from
|
|
43
|
-
import formulaDialog from
|
|
44
|
-
import baseFormulaDialog from
|
|
38
|
+
import { extendDeeply } from "@base/utils/index.js";
|
|
39
|
+
import "@base/components/xform/utils/directive";
|
|
40
|
+
import html2Canvas from "html2canvas";
|
|
41
|
+
import JsPDF from "jspdf";
|
|
42
|
+
import formulaDialog from "@base/components/xform/form-designer/form-widget/dialog/formulaDialog.vue";
|
|
43
|
+
import baseFormulaDialog from "@base/components/xform/form-designer/form-widget/dialog/baseFormulaDialog.vue";
|
|
45
44
|
|
|
46
45
|
let modules = {};
|
|
47
46
|
const baseRefUtil = {
|
|
@@ -64,66 +63,71 @@ const baseRefUtil = {
|
|
|
64
63
|
runDataSourceRequest,
|
|
65
64
|
getContainerWidgetByName,
|
|
66
65
|
cloneFormConfigWithoutEventHandler,
|
|
67
|
-
dynamicDialogRender
|
|
66
|
+
dynamicDialogRender,
|
|
68
67
|
};
|
|
69
68
|
|
|
70
69
|
modules = {
|
|
71
|
-
componentName:
|
|
70
|
+
componentName: "VFormRender",
|
|
72
71
|
components: {
|
|
73
72
|
formulaDialog,
|
|
74
|
-
baseFormulaDialog
|
|
73
|
+
baseFormulaDialog,
|
|
75
74
|
},
|
|
76
|
-
mixins: [
|
|
75
|
+
mixins: [
|
|
76
|
+
baseRefUtil.emitter,
|
|
77
|
+
baseRefUtil.i18n,
|
|
78
|
+
scriptHttpMixin,
|
|
79
|
+
defaultHandleMixin,
|
|
80
|
+
],
|
|
77
81
|
props: {
|
|
78
82
|
formJson: {
|
|
79
83
|
//prop传入的表单JSON配置
|
|
80
84
|
type: Object,
|
|
81
|
-
default: () => buildDefaultFormJson()
|
|
85
|
+
default: () => buildDefaultFormJson(),
|
|
82
86
|
},
|
|
83
87
|
formData: {
|
|
84
88
|
//prop传入的表单数据
|
|
85
89
|
type: Object,
|
|
86
|
-
default: () => ({})
|
|
90
|
+
default: () => ({}),
|
|
87
91
|
},
|
|
88
92
|
optionData: {
|
|
89
93
|
//prop传入的选项数据
|
|
90
94
|
type: Object,
|
|
91
|
-
default: () => ({})
|
|
95
|
+
default: () => ({}),
|
|
92
96
|
},
|
|
93
97
|
previewState: {
|
|
94
98
|
//是否表单预览状态
|
|
95
99
|
type: Boolean,
|
|
96
|
-
default: false
|
|
100
|
+
default: false,
|
|
97
101
|
},
|
|
98
102
|
disabledMode: {
|
|
99
103
|
type: Boolean,
|
|
100
|
-
default: !1
|
|
104
|
+
default: !1,
|
|
101
105
|
},
|
|
102
106
|
globalDsv: {
|
|
103
107
|
type: Object,
|
|
104
108
|
default: function () {
|
|
105
109
|
return {};
|
|
106
|
-
}
|
|
110
|
+
},
|
|
107
111
|
},
|
|
108
112
|
parentForm: {
|
|
109
113
|
type: Object,
|
|
110
|
-
default: null
|
|
114
|
+
default: null,
|
|
111
115
|
},
|
|
112
116
|
dynamicCreation: {
|
|
113
117
|
type: Boolean,
|
|
114
|
-
default: !1
|
|
118
|
+
default: !1,
|
|
115
119
|
},
|
|
116
120
|
reportTemplate: {
|
|
117
121
|
type: Object,
|
|
118
|
-
default: null
|
|
122
|
+
default: null,
|
|
119
123
|
},
|
|
120
124
|
dataId: {
|
|
121
|
-
type: [Number,String],
|
|
122
|
-
default: null
|
|
125
|
+
type: [Number, String],
|
|
126
|
+
default: null,
|
|
123
127
|
},
|
|
124
128
|
param: {
|
|
125
129
|
type: Object,
|
|
126
|
-
default: null
|
|
130
|
+
default: null,
|
|
127
131
|
},
|
|
128
132
|
},
|
|
129
133
|
provide() {
|
|
@@ -144,7 +148,7 @@ modules = {
|
|
|
144
148
|
},
|
|
145
149
|
globalModel: {
|
|
146
150
|
formModel: this.formDataModel,
|
|
147
|
-
formData: this.currentFormData
|
|
151
|
+
formData: this.currentFormData,
|
|
148
152
|
},
|
|
149
153
|
previewState: this.previewState,
|
|
150
154
|
getReadMode: function () {
|
|
@@ -154,7 +158,7 @@ modules = {
|
|
|
154
158
|
return !1;
|
|
155
159
|
},
|
|
156
160
|
getSubFormName: function () {
|
|
157
|
-
return
|
|
161
|
+
return "";
|
|
158
162
|
},
|
|
159
163
|
doScriptAccess: this.doScriptAccess,
|
|
160
164
|
formHttp: this.formHttp,
|
|
@@ -162,7 +166,7 @@ modules = {
|
|
|
162
166
|
getObjectFieldFlag: () => !1,
|
|
163
167
|
getObjectName: () => "",
|
|
164
168
|
getHasWf: () => this.hasWf,
|
|
165
|
-
hasConfig: this.hasConfig
|
|
169
|
+
hasConfig: this.hasConfig,
|
|
166
170
|
};
|
|
167
171
|
},
|
|
168
172
|
data() {
|
|
@@ -202,12 +206,12 @@ modules = {
|
|
|
202
206
|
wfModifyEnabled: false,
|
|
203
207
|
|
|
204
208
|
fileReferenceDialogOption: null,
|
|
205
|
-
showFileReferenceDialog:false,
|
|
209
|
+
showFileReferenceDialog: false,
|
|
206
210
|
|
|
207
|
-
formulaDialogOption:null,
|
|
208
|
-
formulaDialogVisible:false,
|
|
209
|
-
baseFormulaDialogOption:null,
|
|
210
|
-
baseFormulaDialogVisible:false
|
|
211
|
+
formulaDialogOption: null,
|
|
212
|
+
formulaDialogVisible: false,
|
|
213
|
+
baseFormulaDialogOption: null,
|
|
214
|
+
baseFormulaDialogVisible: false,
|
|
211
215
|
};
|
|
212
216
|
},
|
|
213
217
|
computed: {
|
|
@@ -224,15 +228,15 @@ modules = {
|
|
|
224
228
|
return this.formConfig.labelPosition;
|
|
225
229
|
}
|
|
226
230
|
|
|
227
|
-
return
|
|
231
|
+
return "left";
|
|
228
232
|
},
|
|
229
233
|
|
|
230
234
|
labelWidth() {
|
|
231
235
|
if (!!this.formConfig && !!this.formConfig.labelWidth) {
|
|
232
|
-
return this.formConfig.labelWidth +
|
|
236
|
+
return this.formConfig.labelWidth + "px";
|
|
233
237
|
}
|
|
234
238
|
|
|
235
|
-
return
|
|
239
|
+
return "112px";
|
|
236
240
|
},
|
|
237
241
|
|
|
238
242
|
size() {
|
|
@@ -240,18 +244,20 @@ modules = {
|
|
|
240
244
|
return this.formConfig.size;
|
|
241
245
|
}
|
|
242
246
|
|
|
243
|
-
return
|
|
247
|
+
return "medium";
|
|
244
248
|
},
|
|
245
249
|
|
|
246
250
|
customClass() {
|
|
247
|
-
return !!this.formConfig && !!this.formConfig.customClass
|
|
248
|
-
|
|
251
|
+
return !!this.formConfig && !!this.formConfig.customClass
|
|
252
|
+
? this.formConfig.customClass
|
|
253
|
+
: "";
|
|
254
|
+
},
|
|
249
255
|
},
|
|
250
256
|
watch: {
|
|
251
257
|
//
|
|
252
258
|
},
|
|
253
259
|
async created() {
|
|
254
|
-
this.registerFormToRefList()
|
|
260
|
+
this.registerFormToRefList();
|
|
255
261
|
this.currentFormData = this.formData;
|
|
256
262
|
let formConfig = this.formConfig;
|
|
257
263
|
await this.initUserInfo();
|
|
@@ -266,7 +272,7 @@ modules = {
|
|
|
266
272
|
this.handleCustomEvent(formConfig.formScriptSuccess);
|
|
267
273
|
});
|
|
268
274
|
} else {
|
|
269
|
-
this.hanldeCommonWidget2()
|
|
275
|
+
this.hanldeCommonWidget2(); //处理组件显隐,可编辑
|
|
270
276
|
this.handleShowContent();
|
|
271
277
|
}
|
|
272
278
|
this.handleOnCreated(),
|
|
@@ -283,29 +289,31 @@ modules = {
|
|
|
283
289
|
* @param {Object} data - 原始对象 支持-数组、key-value对象、字符串
|
|
284
290
|
* @param {String} type hump-转驼峰 toLine-转下划线
|
|
285
291
|
*/
|
|
286
|
-
formatHumpLineTransfer(data, type =
|
|
287
|
-
let hump =
|
|
292
|
+
formatHumpLineTransfer(data, type = "hump") {
|
|
293
|
+
let hump = "";
|
|
288
294
|
// 转换对象中的每一个键值为驼峰的递归
|
|
289
295
|
let formatTransferKey = (data) => {
|
|
290
296
|
if (data instanceof Array) {
|
|
291
|
-
data.forEach(item => formatTransferKey(item))
|
|
297
|
+
data.forEach((item) => formatTransferKey(item));
|
|
292
298
|
} else if (data instanceof Object) {
|
|
293
299
|
for (let key in data) {
|
|
294
|
-
hump =
|
|
295
|
-
|
|
300
|
+
hump =
|
|
301
|
+
type === "hump" ? this.formatToHump(key) : this.formatToLine(key);
|
|
302
|
+
data[hump] = data[key];
|
|
296
303
|
if (key !== hump) {
|
|
297
|
-
delete data[key]
|
|
304
|
+
delete data[key];
|
|
298
305
|
}
|
|
299
306
|
if (data[hump] instanceof Object) {
|
|
300
|
-
formatTransferKey(data[hump])
|
|
307
|
+
formatTransferKey(data[hump]);
|
|
301
308
|
}
|
|
302
309
|
}
|
|
303
|
-
} else if (typeof data ===
|
|
304
|
-
data =
|
|
310
|
+
} else if (typeof data === "string") {
|
|
311
|
+
data =
|
|
312
|
+
type === "hump" ? this.formatToHump(data) : this.formatToLine(data);
|
|
305
313
|
}
|
|
306
|
-
}
|
|
307
|
-
formatTransferKey(data)
|
|
308
|
-
return data
|
|
314
|
+
};
|
|
315
|
+
formatTransferKey(data);
|
|
316
|
+
return data;
|
|
309
317
|
},
|
|
310
318
|
|
|
311
319
|
/**
|
|
@@ -313,7 +321,7 @@ modules = {
|
|
|
313
321
|
* @param {String} value 需要转换的值
|
|
314
322
|
*/
|
|
315
323
|
formatToHump(value) {
|
|
316
|
-
return value.replace(/\_(\w)/g, (_, letter) => letter.toUpperCase())
|
|
324
|
+
return value.replace(/\_(\w)/g, (_, letter) => letter.toUpperCase());
|
|
317
325
|
},
|
|
318
326
|
|
|
319
327
|
/**
|
|
@@ -321,74 +329,76 @@ modules = {
|
|
|
321
329
|
* @param {String} value
|
|
322
330
|
*/
|
|
323
331
|
formatToLine(value) {
|
|
324
|
-
return value.replace(/([A-Z])/g, "_$1").toLowerCase()
|
|
332
|
+
return value.replace(/([A-Z])/g, "_$1").toLowerCase();
|
|
325
333
|
},
|
|
326
334
|
|
|
327
335
|
initUserInfo() {
|
|
328
336
|
return this.$http({
|
|
329
|
-
url: USER_PREFIX +
|
|
330
|
-
method:
|
|
337
|
+
url: USER_PREFIX + "/user/currentUser",
|
|
338
|
+
method: "post",
|
|
331
339
|
// isLoading: true,
|
|
332
340
|
// loadingTarget: document.body,
|
|
333
341
|
modalStrictly: true,
|
|
334
|
-
success: res => {
|
|
342
|
+
success: (res) => {
|
|
335
343
|
let userInfo = res.objx;
|
|
336
|
-
let row = this.formatHumpLineTransfer(userInfo, "toLine")
|
|
344
|
+
let row = this.formatHumpLineTransfer(userInfo, "toLine");
|
|
337
345
|
this.userInfo = row;
|
|
338
|
-
}
|
|
346
|
+
},
|
|
339
347
|
});
|
|
340
348
|
},
|
|
341
349
|
initSaleOrgData() {
|
|
342
350
|
if (this.$store.getters.userId) {
|
|
343
351
|
return this.$http({
|
|
344
|
-
url: USER_PREFIX +
|
|
352
|
+
url: USER_PREFIX + "/user/getUserSaleOrg",
|
|
345
353
|
method: `post`,
|
|
346
|
-
data: {id: this.$store.getters.userId},
|
|
354
|
+
data: { id: this.$store.getters.userId },
|
|
347
355
|
// isLoading: true,
|
|
348
356
|
// loadingTarget: document.body,
|
|
349
357
|
modalStrictly: true,
|
|
350
|
-
success: res => {
|
|
358
|
+
success: (res) => {
|
|
351
359
|
let rows = res.objx || [];
|
|
352
360
|
this.userSaleOrgDTOs = rows;
|
|
353
361
|
|
|
354
362
|
let companyCode = this.$store.getters.companyCode;
|
|
355
|
-
let row2s = rows.filter(row => row.companyCode === companyCode)
|
|
363
|
+
let row2s = rows.filter((row) => row.companyCode === companyCode);
|
|
356
364
|
this.userSaleOrgDTO2s = row2s;
|
|
357
|
-
this.defaultUserSaleOrgDTO = row2s.find(item => item.defaults)
|
|
358
|
-
}
|
|
365
|
+
this.defaultUserSaleOrgDTO = row2s.find((item) => item.defaults);
|
|
366
|
+
},
|
|
359
367
|
});
|
|
360
368
|
}
|
|
361
369
|
},
|
|
362
370
|
initUserRoleData() {
|
|
363
371
|
if (this.$store.getters.userId) {
|
|
364
372
|
return this.$http({
|
|
365
|
-
url: USER_PREFIX +
|
|
373
|
+
url: USER_PREFIX + "/user/getUserRole",
|
|
366
374
|
method: `post`,
|
|
367
|
-
data: {id: this.$store.getters.userId},
|
|
375
|
+
data: { id: this.$store.getters.userId },
|
|
368
376
|
// isLoading: true,
|
|
369
377
|
// loadingTarget: document.body,
|
|
370
378
|
modalStrictly: true,
|
|
371
|
-
success: res => {
|
|
379
|
+
success: (res) => {
|
|
372
380
|
let rows = res.objx || [];
|
|
373
381
|
this.userRoleDTOs = rows;
|
|
374
382
|
|
|
375
383
|
let companyCode = this.$store.getters.companyCode;
|
|
376
|
-
this.userRoleDTO2s = rows.filter(
|
|
377
|
-
|
|
384
|
+
this.userRoleDTO2s = rows.filter(
|
|
385
|
+
(row) => row.companyCode === companyCode
|
|
386
|
+
);
|
|
387
|
+
},
|
|
378
388
|
});
|
|
379
389
|
}
|
|
380
390
|
},
|
|
381
391
|
initBdService() {
|
|
382
392
|
return this.$http({
|
|
383
|
-
url: USER_PREFIX +
|
|
393
|
+
url: USER_PREFIX + "/form_develop/getBdService",
|
|
384
394
|
method: `post`,
|
|
385
395
|
data: {},
|
|
386
396
|
// isLoading: true,
|
|
387
397
|
// loadingTarget: document.body,
|
|
388
398
|
modalStrictly: true,
|
|
389
|
-
success: res => {
|
|
399
|
+
success: (res) => {
|
|
390
400
|
this.bdService = res.objx;
|
|
391
|
-
}
|
|
401
|
+
},
|
|
392
402
|
});
|
|
393
403
|
},
|
|
394
404
|
getUserInfo() {
|
|
@@ -404,36 +414,38 @@ modules = {
|
|
|
404
414
|
return this.defaultUserSaleOrgDTO;
|
|
405
415
|
},
|
|
406
416
|
getSaleOrgDTOs() {
|
|
407
|
-
return this.userSaleOrgDTO2s.map(item => {
|
|
417
|
+
return this.userSaleOrgDTO2s.map((item) => {
|
|
408
418
|
return {
|
|
409
419
|
id: item.saleOrgId,
|
|
410
420
|
sn: item.sn,
|
|
411
421
|
name: item.saleOrgName,
|
|
412
422
|
companyCode: item.companyCode,
|
|
413
|
-
companyName: item.companyName
|
|
414
|
-
}
|
|
423
|
+
companyName: item.companyName,
|
|
424
|
+
};
|
|
415
425
|
});
|
|
416
426
|
},
|
|
417
427
|
getRoleDTOs() {
|
|
418
|
-
return this.userRoleDTO2s.map(item => {
|
|
428
|
+
return this.userRoleDTO2s.map((item) => {
|
|
419
429
|
return {
|
|
420
430
|
id: item.roleId,
|
|
421
431
|
code: item.roleCode,
|
|
422
432
|
name: item.roleName,
|
|
423
433
|
companyCode: item.companyCode,
|
|
424
|
-
companyName: item.companyName
|
|
425
|
-
}
|
|
434
|
+
companyName: item.companyName,
|
|
435
|
+
};
|
|
426
436
|
});
|
|
427
437
|
},
|
|
428
438
|
getDefaultSaleOrgDTO() {
|
|
429
439
|
let item = this.defaultUserSaleOrgDTO;
|
|
430
|
-
return item
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
440
|
+
return item
|
|
441
|
+
? {
|
|
442
|
+
id: item.saleOrgId,
|
|
443
|
+
sn: item.sn,
|
|
444
|
+
name: item.saleOrgName,
|
|
445
|
+
companyCode: item.companyCode,
|
|
446
|
+
companyName: item.companyName,
|
|
447
|
+
}
|
|
448
|
+
: null;
|
|
437
449
|
},
|
|
438
450
|
handleShowContent(callback) {
|
|
439
451
|
// this.buildFormModel(!this.formJsonObj ? null : this.formJsonObj.widgetList);
|
|
@@ -441,7 +453,7 @@ modules = {
|
|
|
441
453
|
this.$nextTick(() => {
|
|
442
454
|
this.handleShowHideRule();
|
|
443
455
|
callback && callback();
|
|
444
|
-
})
|
|
456
|
+
});
|
|
445
457
|
},
|
|
446
458
|
hasConfig(widget, configName) {
|
|
447
459
|
if (!widget) return false;
|
|
@@ -461,30 +473,30 @@ modules = {
|
|
|
461
473
|
loopHandleAllWidget(callback) {
|
|
462
474
|
let columnLoopDo = (t, e) => {
|
|
463
475
|
if (t.children && t.children.length) {
|
|
464
|
-
t.children.forEach(item => {
|
|
465
|
-
columnLoopDo(item)
|
|
466
|
-
})
|
|
476
|
+
t.children.forEach((item) => {
|
|
477
|
+
columnLoopDo(item);
|
|
478
|
+
});
|
|
467
479
|
} else {
|
|
468
480
|
if (t.widget) {
|
|
469
|
-
callback && callback(t.widget)
|
|
481
|
+
callback && callback(t.widget);
|
|
470
482
|
}
|
|
471
483
|
if (t.editWidget) {
|
|
472
|
-
callback && callback(t.editWidget)
|
|
484
|
+
callback && callback(t.editWidget);
|
|
473
485
|
}
|
|
474
486
|
if (t.widgetList && t.widgetList.length) {
|
|
475
487
|
loopHandleWidget(t.widgetList, (widget) => {
|
|
476
|
-
callback && callback(widget)
|
|
488
|
+
callback && callback(widget);
|
|
477
489
|
});
|
|
478
490
|
}
|
|
479
491
|
}
|
|
480
|
-
}
|
|
492
|
+
};
|
|
481
493
|
loopHandleWidget(this.formJson.widgetList, (widget, parentWidget) => {
|
|
482
494
|
if (callback) {
|
|
483
|
-
callback(widget)
|
|
495
|
+
callback(widget);
|
|
484
496
|
if (widget.type == "data-table") {
|
|
485
|
-
widget.options.tableColumns.forEach(item => {
|
|
486
|
-
columnLoopDo(item)
|
|
487
|
-
})
|
|
497
|
+
widget.options.tableColumns.forEach((item) => {
|
|
498
|
+
columnLoopDo(item);
|
|
499
|
+
});
|
|
488
500
|
}
|
|
489
501
|
}
|
|
490
502
|
});
|
|
@@ -495,32 +507,37 @@ modules = {
|
|
|
495
507
|
if (widget.type == "data-table") {
|
|
496
508
|
this.handleTableColumnWidget(widget);
|
|
497
509
|
}
|
|
498
|
-
})
|
|
510
|
+
});
|
|
499
511
|
},
|
|
500
512
|
handleTableColumnWidget(widget) {
|
|
501
513
|
//修复data-table旧数据表格列widget与editWidget为空的问题
|
|
502
|
-
if (
|
|
514
|
+
if (
|
|
515
|
+
!widget ||
|
|
516
|
+
widget.type != "data-table" ||
|
|
517
|
+
!widget.options.tableColumns
|
|
518
|
+
)
|
|
519
|
+
return;
|
|
503
520
|
let columnLoopDo = (t, e) => {
|
|
504
521
|
if (t.children && t.children.length) {
|
|
505
522
|
for (let item of t.children) {
|
|
506
|
-
columnLoopDo(item)
|
|
523
|
+
columnLoopDo(item);
|
|
507
524
|
}
|
|
508
525
|
} else {
|
|
509
526
|
let type1 = columnFormatMap[t.formatS];
|
|
510
|
-
if(type1){
|
|
511
|
-
if(!t.widget){
|
|
527
|
+
if (type1) {
|
|
528
|
+
if (!t.widget) {
|
|
512
529
|
let fieldWidget = this.getColumnWidget(t, false);
|
|
513
530
|
t.widget = fieldWidget;
|
|
514
531
|
}
|
|
515
|
-
if (t.widget) t.widget.columnType = t.formatS
|
|
532
|
+
if (t.widget) t.widget.columnType = t.formatS;
|
|
516
533
|
}
|
|
517
534
|
let type2 = columnFormatMap[t.editFormatS];
|
|
518
|
-
if(type2){
|
|
535
|
+
if (type2) {
|
|
519
536
|
if (!t.editWidget) {
|
|
520
537
|
let fieldWidget = this.getColumnWidget(t, true);
|
|
521
538
|
t.editWidget = fieldWidget;
|
|
522
539
|
}
|
|
523
|
-
if (t.editWidget) t.editWidget.columnType = t.editFormatS
|
|
540
|
+
if (t.editWidget) t.editWidget.columnType = t.editFormatS;
|
|
524
541
|
}
|
|
525
542
|
|
|
526
543
|
/* let type1 = columnFormatMap[t.formatS];
|
|
@@ -543,10 +560,10 @@ modules = {
|
|
|
543
560
|
}
|
|
544
561
|
if (t.editWidget) t.editWidget.columnType = t.editFormatS */
|
|
545
562
|
}
|
|
546
|
-
}
|
|
563
|
+
};
|
|
547
564
|
|
|
548
565
|
for (let item of widget.options.tableColumns) {
|
|
549
|
-
columnLoopDo(item)
|
|
566
|
+
columnLoopDo(item);
|
|
550
567
|
}
|
|
551
568
|
/*widget.options.tableColumns.forEach(item => {
|
|
552
569
|
columnLoopDo(item)
|
|
@@ -554,16 +571,16 @@ modules = {
|
|
|
554
571
|
},
|
|
555
572
|
hanldeCommonWidget2() {
|
|
556
573
|
let wfParam = this.wfParam || {};
|
|
557
|
-
let wfInfo = wfParam?.wfInfo
|
|
574
|
+
let wfInfo = wfParam?.wfInfo;
|
|
558
575
|
let taskDefinitionKey = wfInfo?.taskDefinitionKey;
|
|
559
|
-
let toModify = wfInfo?.toModify || false
|
|
576
|
+
let toModify = wfInfo?.toModify || false; //后台返回流程可以修改单据
|
|
560
577
|
|
|
561
578
|
let hasModifyItem = false;
|
|
562
579
|
let saveButton;
|
|
563
580
|
let saveButtonOptions;
|
|
564
581
|
let bdService = this.bdService;
|
|
565
582
|
|
|
566
|
-
let widgetEditOnWf = this.hanldeWfWidgetNew0()
|
|
583
|
+
let widgetEditOnWf = this.hanldeWfWidgetNew0(); //是否有流程时,当前用户特定流程节点是否可全局可编辑
|
|
567
584
|
this.widgetEditOnWf = widgetEditOnWf;
|
|
568
585
|
|
|
569
586
|
traverseAllWidgetsNew(this.formJson.widgetList, (widget) => {
|
|
@@ -576,24 +593,27 @@ modules = {
|
|
|
576
593
|
if (!widgetEditOnWf) {
|
|
577
594
|
//有流程,且不匹配流程节点可编辑表单设置信息
|
|
578
595
|
//设置组件的有流程可编辑,有流程隐藏
|
|
579
|
-
this.hanldeWfWidgetNew1(widget)
|
|
596
|
+
this.hanldeWfWidgetNew1(widget);
|
|
580
597
|
if (wfInfo.taskStep == "9999") {
|
|
581
|
-
this.hanldeWfWidgetItemNew(widget)
|
|
598
|
+
this.hanldeWfWidgetItemNew(widget);
|
|
582
599
|
} else if (toModify) {
|
|
583
600
|
//后台返回流程可以修改单据
|
|
584
601
|
//设置组件的特定流程节点的可编辑,仅显示,隐藏
|
|
585
602
|
if (taskDefinitionKey) {
|
|
586
603
|
// this.hanldeWfWidgetNew2(widget)
|
|
587
|
-
this.hanldeWfWidgetItemNew(widget)
|
|
604
|
+
this.hanldeWfWidgetItemNew(widget);
|
|
588
605
|
}
|
|
589
|
-
if (
|
|
606
|
+
if (
|
|
607
|
+
widget.formItemFlag &&
|
|
608
|
+
!widget.options.hidden &&
|
|
609
|
+
!widget.options.disbaled
|
|
610
|
+
) {
|
|
590
611
|
//存在存在可以编辑输入框框
|
|
591
612
|
hasModifyItem = true;
|
|
592
613
|
}
|
|
593
614
|
}
|
|
594
615
|
}
|
|
595
616
|
}
|
|
596
|
-
|
|
597
617
|
});
|
|
598
618
|
|
|
599
619
|
this.wfModifyEnabled = hasModifyItem;
|
|
@@ -601,13 +621,12 @@ modules = {
|
|
|
601
621
|
getIsSaveAtWfAgree() {
|
|
602
622
|
//流程通过的时候是否可以执行保存
|
|
603
623
|
let wfParam = this.wfParam || {};
|
|
604
|
-
let wfInfo = wfParam?.wfInfo
|
|
624
|
+
let wfInfo = wfParam?.wfInfo;
|
|
605
625
|
let toModify = wfInfo?.toModify;
|
|
606
626
|
let result = false;
|
|
607
627
|
|
|
608
628
|
let formConfig = this.formConfig;
|
|
609
629
|
if (toModify && formConfig.wfAgreenBindSave) {
|
|
610
|
-
|
|
611
630
|
let modelKey = wfInfo.modelKey;
|
|
612
631
|
let modelOrders = wfInfo.orders;
|
|
613
632
|
let companyCode = this.$store.getters.companyCode;
|
|
@@ -615,38 +634,42 @@ modules = {
|
|
|
615
634
|
let taskDefinitionKey = wfInfo.taskDefinitionKey;
|
|
616
635
|
let bdService = this.bdService;
|
|
617
636
|
|
|
618
|
-
let wfConfigData = formConfig.wfAgreeConfigData || []
|
|
637
|
+
let wfConfigData = formConfig.wfAgreeConfigData || [];
|
|
619
638
|
let flag = false;
|
|
620
|
-
wfConfigData.forEach(item => {
|
|
639
|
+
wfConfigData.forEach((item) => {
|
|
621
640
|
let type = item.type;
|
|
622
|
-
let taskStepList = item.taskSteps ? item.taskSteps.split(
|
|
641
|
+
let taskStepList = item.taskSteps ? item.taskSteps.split(",") : [];
|
|
623
642
|
if (taskStepList.includes(taskStep)) {
|
|
624
643
|
let companyCodeStr = item.companyCodes;
|
|
625
|
-
let companyCodes = companyCodeStr
|
|
644
|
+
let companyCodes = companyCodeStr
|
|
645
|
+
? companyCodeStr.split(",").filter((item) => !!item)
|
|
646
|
+
: [];
|
|
626
647
|
let flag1 = !item.serveName || item.serveName == bdService;
|
|
627
648
|
// let flag2 = !item.modelKey || item.modelKey == modelKey;
|
|
628
|
-
let flag2 =
|
|
629
|
-
|
|
649
|
+
let flag2 =
|
|
650
|
+
item.modelOrders === undefined ||
|
|
651
|
+
item.modelOrders === null ||
|
|
652
|
+
item.modelOrders === modelOrders;
|
|
653
|
+
let flag3 =
|
|
654
|
+
!companyCodes.length || companyCodes.includes(companyCode);
|
|
630
655
|
if (flag1 && flag2 && flag3) {
|
|
631
656
|
//可编辑
|
|
632
657
|
result = true;
|
|
633
658
|
}
|
|
634
659
|
}
|
|
635
|
-
})
|
|
660
|
+
});
|
|
636
661
|
return result;
|
|
637
662
|
}
|
|
638
663
|
},
|
|
639
664
|
|
|
640
665
|
hanldeWfWidgetNew0() {
|
|
641
|
-
|
|
642
666
|
let wfParam = this.wfParam || {};
|
|
643
|
-
let wfInfo = wfParam?.wfInfo
|
|
667
|
+
let wfInfo = wfParam?.wfInfo;
|
|
644
668
|
let toModify = wfInfo?.toModify;
|
|
645
669
|
let result = false;
|
|
646
670
|
|
|
647
671
|
let formConfig = this.formConfig;
|
|
648
672
|
if (toModify && formConfig.wfConfigDataEnabled) {
|
|
649
|
-
|
|
650
673
|
let modelKey = wfInfo.modelKey;
|
|
651
674
|
let modelOrders = wfInfo.orders;
|
|
652
675
|
let companyCode = this.$store.getters.companyCode;
|
|
@@ -654,24 +677,30 @@ modules = {
|
|
|
654
677
|
let taskDefinitionKey = wfInfo.taskDefinitionKey;
|
|
655
678
|
let bdService = this.bdService;
|
|
656
679
|
|
|
657
|
-
let wfConfigData = formConfig.wfConfigData || []
|
|
680
|
+
let wfConfigData = formConfig.wfConfigData || [];
|
|
658
681
|
let flag = false;
|
|
659
|
-
wfConfigData.forEach(item => {
|
|
682
|
+
wfConfigData.forEach((item) => {
|
|
660
683
|
let type = item.type;
|
|
661
|
-
let taskStepList = item.taskSteps ? item.taskSteps.split(
|
|
684
|
+
let taskStepList = item.taskSteps ? item.taskSteps.split(",") : [];
|
|
662
685
|
if (taskStepList.includes(taskStep)) {
|
|
663
686
|
let companyCodeStr = item.companyCodes;
|
|
664
|
-
let companyCodes = companyCodeStr
|
|
687
|
+
let companyCodes = companyCodeStr
|
|
688
|
+
? companyCodeStr.split(",").filter((item) => !!item)
|
|
689
|
+
: [];
|
|
665
690
|
let flag1 = !item.serveName || item.serveName == bdService;
|
|
666
691
|
// let flag2 = !item.modelKey || item.modelKey == modelKey;
|
|
667
|
-
let flag2 =
|
|
668
|
-
|
|
692
|
+
let flag2 =
|
|
693
|
+
item.modelOrders === undefined ||
|
|
694
|
+
item.modelOrders === null ||
|
|
695
|
+
item.modelOrders === modelOrders;
|
|
696
|
+
let flag3 =
|
|
697
|
+
!companyCodes.length || companyCodes.includes(companyCode);
|
|
669
698
|
if (flag1 && flag2 && flag3) {
|
|
670
699
|
//可编辑
|
|
671
700
|
result = true;
|
|
672
701
|
}
|
|
673
702
|
}
|
|
674
|
-
})
|
|
703
|
+
});
|
|
675
704
|
return result;
|
|
676
705
|
}
|
|
677
706
|
},
|
|
@@ -679,51 +708,55 @@ modules = {
|
|
|
679
708
|
if (!widget) return false;
|
|
680
709
|
let widgetType = widget.type;
|
|
681
710
|
let sourceType = widget.sourceType;
|
|
682
|
-
let result =
|
|
683
|
-
|
|
711
|
+
let result =
|
|
712
|
+
freeWidgetTypesOfWf.includes(widgetType) ||
|
|
713
|
+
(sourceType && freeWidgetTypesOfWf.includes(sourceType));
|
|
714
|
+
return widget.options.label == "重置" || result;
|
|
684
715
|
},
|
|
685
716
|
getIsHiddenWidgetTypesOfWf(widget) {
|
|
686
717
|
if (!widget) return false;
|
|
687
718
|
let widgetType = widget.type;
|
|
688
719
|
let targetType = widget.targetType;
|
|
689
|
-
let result =
|
|
690
|
-
|
|
720
|
+
let result =
|
|
721
|
+
hiddenWidgetTypesOfWf.includes(widgetType) ||
|
|
722
|
+
(targetType && hiddenWidgetTypesOfWf.includes(targetType));
|
|
723
|
+
return result;
|
|
691
724
|
},
|
|
692
725
|
hanldeWfWidgetNew1(widget) {
|
|
693
726
|
if (!widget) return;
|
|
694
|
-
let flag =
|
|
695
|
-
|
|
696
|
-
|
|
727
|
+
let flag =
|
|
728
|
+
widget.columnType &&
|
|
729
|
+
["editDelete", "removeTreeRow"].includes(widget.columnType);
|
|
730
|
+
if (!flag && this.getIsfreeWidgetTypesOfWf(widget)) return; //过滤掉不受限组件
|
|
731
|
+
if (this.widgetEditOnWf) return; //匹配到流程第一步可编辑,不执行下面禁用隐藏
|
|
697
732
|
let wfParam = this.wfParam || {};
|
|
698
|
-
if (!wfParam.hasWf) return
|
|
733
|
+
if (!wfParam.hasWf) return; //过滤掉没流程
|
|
699
734
|
|
|
700
735
|
if (flag) {
|
|
701
736
|
//数据表格列的删除标识,有流程隐藏
|
|
702
|
-
widget.options.hidden = true
|
|
737
|
+
widget.options.hidden = true;
|
|
703
738
|
} else if (this.getIsHiddenWidgetTypesOfWf(widget)) {
|
|
704
739
|
//有流程隐藏的组件,button
|
|
705
|
-
widget.options.hidden = true
|
|
740
|
+
widget.options.hidden = true;
|
|
706
741
|
} else if (widget.formItemFlag) {
|
|
707
742
|
//有流程禁用,编辑输入框
|
|
708
743
|
widget.options.disabled = true;
|
|
709
744
|
}
|
|
710
|
-
|
|
711
|
-
|
|
712
745
|
},
|
|
713
746
|
hanldeWfWidgetNew2(widget, callback) {
|
|
714
747
|
let hasModifyItem = false;
|
|
715
748
|
let saveButton;
|
|
716
749
|
if (!this.widgetEditOnWf) {
|
|
717
|
-
let flag = this.hanldeWfWidgetItemNew(widget)
|
|
750
|
+
let flag = this.hanldeWfWidgetItemNew(widget);
|
|
718
751
|
if (flag) {
|
|
719
|
-
hasModifyItem = true
|
|
752
|
+
hasModifyItem = true;
|
|
720
753
|
}
|
|
721
754
|
}
|
|
722
755
|
|
|
723
756
|
if (widget?.options?.saveButton) {
|
|
724
757
|
saveButton = widget;
|
|
725
758
|
}
|
|
726
|
-
callback && callback(hasModifyItem, saveButton)
|
|
759
|
+
callback && callback(hasModifyItem, saveButton);
|
|
727
760
|
},
|
|
728
761
|
hanldeWfWidgetItemNew(widget) {
|
|
729
762
|
let hasModifyItem = false;
|
|
@@ -732,7 +765,7 @@ modules = {
|
|
|
732
765
|
|
|
733
766
|
let bdService = this.bdService;
|
|
734
767
|
let wfParam = this.wfParam;
|
|
735
|
-
let wfInfo = wfParam.wfInfo
|
|
768
|
+
let wfInfo = wfParam.wfInfo;
|
|
736
769
|
let modelKey = wfInfo.modelKey;
|
|
737
770
|
let modelOrders = wfInfo.orders;
|
|
738
771
|
let companyCode = this.$store.getters.companyCode;
|
|
@@ -740,21 +773,27 @@ modules = {
|
|
|
740
773
|
|
|
741
774
|
let handleWfConfigData = (widget, columnOptions) => {
|
|
742
775
|
let options = widget?.options || columnOptions;
|
|
743
|
-
if (!options || !options.wfEdit) return
|
|
776
|
+
if (!options || !options.wfEdit) return;
|
|
744
777
|
let wfConfigData = options.wfConfigData || [];
|
|
745
778
|
let flag = false;
|
|
746
779
|
|
|
747
|
-
wfConfigData.forEach(item => {
|
|
780
|
+
wfConfigData.forEach((item) => {
|
|
748
781
|
let type = item.type;
|
|
749
|
-
let taskStepList = item.taskSteps ? item.taskSteps.split(
|
|
782
|
+
let taskStepList = item.taskSteps ? item.taskSteps.split(",") : [];
|
|
750
783
|
if (type && taskStepList.includes(taskStep)) {
|
|
751
784
|
let companyCodeStr = item.companyCodes;
|
|
752
|
-
let companyCodes = companyCodeStr
|
|
785
|
+
let companyCodes = companyCodeStr
|
|
786
|
+
? companyCodeStr.split(",").filter((item) => !!item)
|
|
787
|
+
: [];
|
|
753
788
|
let flag1 = !item.serveName || item.serveName == bdService;
|
|
754
789
|
// let flag2 = !item.modelKey || item.modelKey == modelKey;
|
|
755
790
|
|
|
756
|
-
let flag2 =
|
|
757
|
-
|
|
791
|
+
let flag2 =
|
|
792
|
+
item.modelOrders === undefined ||
|
|
793
|
+
item.modelOrders === null ||
|
|
794
|
+
item.modelOrders === modelOrders;
|
|
795
|
+
let flag3 =
|
|
796
|
+
!companyCodes.length || companyCodes.includes(companyCode);
|
|
758
797
|
if (flag1 && flag2 && flag3) {
|
|
759
798
|
if (type === 1) {
|
|
760
799
|
//可编辑
|
|
@@ -764,7 +803,7 @@ modules = {
|
|
|
764
803
|
// target.setHidden(false);
|
|
765
804
|
options.hidden = false;
|
|
766
805
|
flag = true;
|
|
767
|
-
}/* else if (type === 2) {
|
|
806
|
+
} /* else if (type === 2) {
|
|
768
807
|
//仅显示
|
|
769
808
|
// target.setDisabled && target.setDisabled(true);
|
|
770
809
|
if (options.disabled !== undefined) options.disabled = true;
|
|
@@ -778,19 +817,19 @@ modules = {
|
|
|
778
817
|
}*/
|
|
779
818
|
}
|
|
780
819
|
}
|
|
781
|
-
})
|
|
820
|
+
});
|
|
782
821
|
/*if (flag && e && widget.type == 'baseAttachment') {
|
|
783
822
|
e.initOption();
|
|
784
823
|
}*/
|
|
785
|
-
}
|
|
786
|
-
handleWfConfigData(widget)
|
|
824
|
+
};
|
|
825
|
+
handleWfConfigData(widget);
|
|
787
826
|
return hasModifyItem;
|
|
788
827
|
},
|
|
789
828
|
|
|
790
829
|
hanldeCommonWidget() {
|
|
791
830
|
loopHandleWidget(this.formJson.widgetList, (widget) => {
|
|
792
831
|
//处理组件显隐规则
|
|
793
|
-
this.handleWidgetShowRule(widget)
|
|
832
|
+
this.handleWidgetShowRule(widget);
|
|
794
833
|
});
|
|
795
834
|
},
|
|
796
835
|
handleWidgetShowRule(widget) {
|
|
@@ -800,26 +839,29 @@ modules = {
|
|
|
800
839
|
let companyCode = this.$store.getters.companyCode;
|
|
801
840
|
let bdService = this.bdService;
|
|
802
841
|
let userRoleDTOs = this.userRoleDTOs;
|
|
803
|
-
let userRoleCodes = userRoleDTOs.map(item => item.roleCode);
|
|
842
|
+
let userRoleCodes = userRoleDTOs.map((item) => item.roleCode);
|
|
804
843
|
|
|
805
844
|
let widgetShowRuleConfig = optionModel.widgetShowRuleConfig || [];
|
|
806
845
|
if (widgetShowRuleConfig.length) {
|
|
807
|
-
let item1 = null
|
|
808
|
-
let item2 = null
|
|
809
|
-
let item3 = null
|
|
810
|
-
widgetShowRuleConfig.forEach(item => {
|
|
846
|
+
let item1 = null; //匹配服务+组织
|
|
847
|
+
let item2 = null; //匹配服务
|
|
848
|
+
let item3 = null; //匹配所有服务和组织
|
|
849
|
+
widgetShowRuleConfig.forEach((item) => {
|
|
811
850
|
let serveName = item.serveName ?? null;
|
|
812
851
|
|
|
813
852
|
// let flag1 = item.serveType === 5;//所有组织和服务
|
|
814
|
-
let flag1 = !item.serveName && !item.companyCodes
|
|
853
|
+
let flag1 = !item.serveName && !item.companyCodes; //所有组织和服务
|
|
815
854
|
|
|
816
855
|
//匹配服务名
|
|
817
|
-
let flag2 = serveName === bdService
|
|
856
|
+
let flag2 = serveName === bdService;
|
|
818
857
|
|
|
819
858
|
//匹配组织编码
|
|
820
859
|
let companyCodeStr = item.companyCodes;
|
|
821
|
-
let companyCodes = companyCodeStr
|
|
822
|
-
|
|
860
|
+
let companyCodes = companyCodeStr
|
|
861
|
+
? companyCodeStr.split(",").filter((item) => !!item)
|
|
862
|
+
: [];
|
|
863
|
+
let flag3 =
|
|
864
|
+
!companyCodes.length || companyCodes.includes(companyCode);
|
|
823
865
|
if (flag1) {
|
|
824
866
|
item3 = item;
|
|
825
867
|
} else if (flag2) {
|
|
@@ -828,16 +870,20 @@ modules = {
|
|
|
828
870
|
item1 = item;
|
|
829
871
|
}
|
|
830
872
|
} else {
|
|
831
|
-
item2 = item
|
|
873
|
+
item2 = item;
|
|
832
874
|
}
|
|
833
875
|
}
|
|
834
|
-
})
|
|
876
|
+
});
|
|
835
877
|
let showRuleItem = item1 || item2 || item3 || null;
|
|
836
878
|
if (showRuleItem) {
|
|
837
879
|
//匹配角色
|
|
838
880
|
let roleCodeStr = showRuleItem.roleCodes;
|
|
839
|
-
let roleCodes = roleCodeStr
|
|
840
|
-
|
|
881
|
+
let roleCodes = roleCodeStr
|
|
882
|
+
? roleCodeStr.split(",").filter((item) => !!item)
|
|
883
|
+
: [];
|
|
884
|
+
let flag = userRoleCodes.some((roleCode) =>
|
|
885
|
+
roleCodes.includes(roleCode)
|
|
886
|
+
);
|
|
841
887
|
if (showRuleItem.type == 1) {
|
|
842
888
|
//符合条件的角色显示,否则隐藏
|
|
843
889
|
optionModel.hidden = flag ? false : true;
|
|
@@ -850,7 +896,6 @@ modules = {
|
|
|
850
896
|
}
|
|
851
897
|
return optionModel.hidden;
|
|
852
898
|
}
|
|
853
|
-
|
|
854
899
|
},
|
|
855
900
|
hanldeWfWidget() {
|
|
856
901
|
let wfParam = this.wfParam || {};
|
|
@@ -859,19 +904,26 @@ modules = {
|
|
|
859
904
|
|
|
860
905
|
let toDo2 = (widget, options, e) => {
|
|
861
906
|
// let widget = options ? null : (target.field || target.widget);
|
|
862
|
-
let isWfFlag = options ? true : this.hasConfig(widget,
|
|
907
|
+
let isWfFlag = options ? true : this.hasConfig(widget, "wfFlag");
|
|
863
908
|
let widgetType = widget?.type;
|
|
864
|
-
let enabledByWf = options
|
|
865
|
-
|
|
909
|
+
let enabledByWf = options
|
|
910
|
+
? options.enabledByWf
|
|
911
|
+
: widget?.options?.enabledByWf;
|
|
912
|
+
let hiddenByWf = options
|
|
913
|
+
? options.hiddenByWf
|
|
914
|
+
: widget?.options?.hiddenByWf;
|
|
866
915
|
let widgetName = options ? options.name : widget?.options?.name;
|
|
867
916
|
if (isWfFlag) {
|
|
868
|
-
if (this.hasConfig(widget,
|
|
917
|
+
if (this.hasConfig(widget, "disabled") || !!options) {
|
|
869
918
|
let disabled = null;
|
|
870
919
|
if (!enabledByWf) {
|
|
871
920
|
disabled = true;
|
|
872
921
|
// setDisabled(target,true);
|
|
873
922
|
let onClick = options ? options.onClick : widget.options.onClick;
|
|
874
|
-
if (
|
|
923
|
+
if (
|
|
924
|
+
onClick &&
|
|
925
|
+
onClick.startsWith("this.getFormRef().$baseReload()")
|
|
926
|
+
) {
|
|
875
927
|
// setDisabled(target,false);
|
|
876
928
|
disabled = false;
|
|
877
929
|
}
|
|
@@ -879,7 +931,7 @@ modules = {
|
|
|
879
931
|
// setDisabled(target,false);
|
|
880
932
|
disabled = false;
|
|
881
933
|
}
|
|
882
|
-
if (widgetType ==
|
|
934
|
+
if (widgetType == "reset_button" && enabledByWf === undefined) {
|
|
883
935
|
// setDisabled(target,false)
|
|
884
936
|
disabled = false;
|
|
885
937
|
}
|
|
@@ -896,12 +948,16 @@ modules = {
|
|
|
896
948
|
if (hiddenByWf) {
|
|
897
949
|
// setHidden(target,true);
|
|
898
950
|
// widget.options.hidden = true;
|
|
899
|
-
hidden = true
|
|
951
|
+
hidden = true;
|
|
900
952
|
}
|
|
901
|
-
if (
|
|
953
|
+
if (
|
|
954
|
+
widget &&
|
|
955
|
+
widgetType == "save_button" &&
|
|
956
|
+
hiddenByWf === undefined
|
|
957
|
+
) {
|
|
902
958
|
// setHidden(target,true)
|
|
903
959
|
// widget.options.hidden = true;
|
|
904
|
-
hidden = true
|
|
960
|
+
hidden = true;
|
|
905
961
|
}
|
|
906
962
|
if (hidden !== null) {
|
|
907
963
|
if (options) {
|
|
@@ -915,31 +971,30 @@ modules = {
|
|
|
915
971
|
if (widget?.type == "data-table") {
|
|
916
972
|
let loopDo = (t, e) => {
|
|
917
973
|
if (t.children && t.children.length) {
|
|
918
|
-
t.children.forEach(item => {
|
|
919
|
-
loopDo(item)
|
|
920
|
-
})
|
|
974
|
+
t.children.forEach((item) => {
|
|
975
|
+
loopDo(item);
|
|
976
|
+
});
|
|
921
977
|
} else {
|
|
922
978
|
if (t.columnOption) {
|
|
923
|
-
toDo2(null, t.columnOption)
|
|
979
|
+
toDo2(null, t.columnOption);
|
|
924
980
|
}
|
|
925
981
|
}
|
|
926
|
-
}
|
|
927
|
-
widget.options.tableColumns.forEach(item => {
|
|
928
|
-
loopDo(item)
|
|
982
|
+
};
|
|
983
|
+
widget.options.tableColumns.forEach((item) => {
|
|
984
|
+
loopDo(item);
|
|
929
985
|
loopHandleWidget(item.widgetList, (item1) => {
|
|
930
|
-
toDo2(item1)
|
|
986
|
+
toDo2(item1);
|
|
931
987
|
});
|
|
932
|
-
})
|
|
933
|
-
|
|
988
|
+
});
|
|
934
989
|
}
|
|
935
990
|
/*if (target && widgetType == 'baseAttachment') {
|
|
936
991
|
target.initOption();
|
|
937
992
|
}*/
|
|
938
|
-
}
|
|
993
|
+
};
|
|
939
994
|
|
|
940
995
|
loopHandleWidget(this.formJson.widgetList, (widget) => {
|
|
941
996
|
//有流程,处理禁用状态
|
|
942
|
-
let formItemFlag = widget?.formItemFlag
|
|
997
|
+
let formItemFlag = widget?.formItemFlag;
|
|
943
998
|
if (formItemFlag) {
|
|
944
999
|
widget.options.disabled = true;
|
|
945
1000
|
}
|
|
@@ -949,14 +1004,14 @@ modules = {
|
|
|
949
1004
|
hanldeWfWidget2() {
|
|
950
1005
|
let wfParam = this.wfParam;
|
|
951
1006
|
if (!wfParam.hasWf) return;
|
|
952
|
-
let wfInfo = wfParam.wfInfo
|
|
1007
|
+
let wfInfo = wfParam.wfInfo;
|
|
953
1008
|
let modelKey = wfInfo.modelKey;
|
|
954
1009
|
let companyCode = this.$store.getters.companyCode;
|
|
955
1010
|
let taskStep = (wfInfo.taskStep ?? "") + "";
|
|
956
1011
|
let taskDefinitionKey = wfInfo.taskDefinitionKey;
|
|
957
|
-
if (!taskDefinitionKey) return
|
|
1012
|
+
if (!taskDefinitionKey) return;
|
|
958
1013
|
let toModify = wfInfo.toModify;
|
|
959
|
-
if (!toModify) return
|
|
1014
|
+
if (!toModify) return;
|
|
960
1015
|
|
|
961
1016
|
let hasModifyItem = false;
|
|
962
1017
|
let refList = this.widgetRefList;
|
|
@@ -965,16 +1020,15 @@ modules = {
|
|
|
965
1020
|
let bdService = this.bdService;
|
|
966
1021
|
|
|
967
1022
|
loopHandleWidget(this.formJson.widgetList, (widget) => {
|
|
968
|
-
let flag = this.hanldeWfWidgetItem(widget)
|
|
1023
|
+
let flag = this.hanldeWfWidgetItem(widget);
|
|
969
1024
|
if (!hasModifyItem && flag) {
|
|
970
|
-
hasModifyItem = true
|
|
1025
|
+
hasModifyItem = true;
|
|
971
1026
|
}
|
|
972
1027
|
if (!saveButtonOptions && widget?.options?.saveButton) {
|
|
973
1028
|
saveButtonOptions = widget?.options;
|
|
974
1029
|
}
|
|
975
1030
|
});
|
|
976
1031
|
|
|
977
|
-
|
|
978
1032
|
if (hasModifyItem) {
|
|
979
1033
|
if (saveButtonOptions) {
|
|
980
1034
|
saveButtonOptions.disabled = false;
|
|
@@ -989,25 +1043,28 @@ modules = {
|
|
|
989
1043
|
|
|
990
1044
|
let bdService = this.bdService;
|
|
991
1045
|
let wfParam = this.wfParam;
|
|
992
|
-
let wfInfo = wfParam.wfInfo
|
|
1046
|
+
let wfInfo = wfParam.wfInfo;
|
|
993
1047
|
let modelKey = wfInfo.modelKey;
|
|
994
1048
|
let companyCode = this.$store.getters.companyCode;
|
|
995
1049
|
let taskStep = (wfInfo.taskStep ?? "") + "";
|
|
996
1050
|
|
|
997
1051
|
let handleWfConfigData = (widget, columnOptions) => {
|
|
998
1052
|
let options = widget?.options || columnOptions;
|
|
999
|
-
if (!options || !options.wfEdit) return
|
|
1053
|
+
if (!options || !options.wfEdit) return;
|
|
1000
1054
|
let wfConfigData = options.wfConfigData || [];
|
|
1001
1055
|
let flag = false;
|
|
1002
|
-
wfConfigData.forEach(item => {
|
|
1056
|
+
wfConfigData.forEach((item) => {
|
|
1003
1057
|
let type = item.type;
|
|
1004
|
-
let taskStepList = item.taskSteps ? item.taskSteps.split(
|
|
1058
|
+
let taskStepList = item.taskSteps ? item.taskSteps.split(",") : [];
|
|
1005
1059
|
if (type && taskStepList.includes(taskStep)) {
|
|
1006
1060
|
let companyCodeStr = item.companyCodes;
|
|
1007
|
-
let companyCodes = companyCodeStr
|
|
1061
|
+
let companyCodes = companyCodeStr
|
|
1062
|
+
? companyCodeStr.split(",").filter((item) => !!item)
|
|
1063
|
+
: [];
|
|
1008
1064
|
let flag1 = !item.serveName || item.serveName == bdService;
|
|
1009
1065
|
let flag2 = !item.modelKey || item.modelKey == modelKey;
|
|
1010
|
-
let flag3 =
|
|
1066
|
+
let flag3 =
|
|
1067
|
+
!companyCodes.length || companyCodes.includes(companyCode);
|
|
1011
1068
|
if (flag1 && flag2 && flag3) {
|
|
1012
1069
|
if (type === 1) {
|
|
1013
1070
|
//可编辑
|
|
@@ -1031,31 +1088,31 @@ modules = {
|
|
|
1031
1088
|
}
|
|
1032
1089
|
}
|
|
1033
1090
|
}
|
|
1034
|
-
})
|
|
1091
|
+
});
|
|
1035
1092
|
/*if (flag && e && widget.type == 'baseAttachment') {
|
|
1036
1093
|
e.initOption();
|
|
1037
1094
|
}*/
|
|
1038
|
-
}
|
|
1039
|
-
handleWfConfigData(widget)
|
|
1095
|
+
};
|
|
1096
|
+
handleWfConfigData(widget);
|
|
1040
1097
|
if (widget.type == "data-table") {
|
|
1041
1098
|
let loopDo = (t) => {
|
|
1042
1099
|
if (t.children && t.children.length) {
|
|
1043
|
-
t.children.forEach(item => {
|
|
1044
|
-
loopDo(item)
|
|
1045
|
-
})
|
|
1100
|
+
t.children.forEach((item) => {
|
|
1101
|
+
loopDo(item);
|
|
1102
|
+
});
|
|
1046
1103
|
} else {
|
|
1047
1104
|
if (t.columnOption) {
|
|
1048
|
-
handleWfConfigData(null, t.columnOption)
|
|
1105
|
+
handleWfConfigData(null, t.columnOption);
|
|
1049
1106
|
}
|
|
1050
1107
|
}
|
|
1051
|
-
}
|
|
1108
|
+
};
|
|
1052
1109
|
|
|
1053
|
-
widget.options.tableColumns.forEach(item => {
|
|
1054
|
-
loopDo(item)
|
|
1110
|
+
widget.options.tableColumns.forEach((item) => {
|
|
1111
|
+
loopDo(item);
|
|
1055
1112
|
loopHandleWidget(item.widgetList, (item1) => {
|
|
1056
|
-
handleWfConfigData(item1)
|
|
1113
|
+
handleWfConfigData(item1);
|
|
1057
1114
|
});
|
|
1058
|
-
})
|
|
1115
|
+
});
|
|
1059
1116
|
}
|
|
1060
1117
|
|
|
1061
1118
|
return hasModifyItem;
|
|
@@ -1082,7 +1139,12 @@ modules = {
|
|
|
1082
1139
|
let callback1 = null;
|
|
1083
1140
|
if (formConfig.wfConfig) {
|
|
1084
1141
|
let formData = res.objx;
|
|
1085
|
-
let e = new Function(
|
|
1142
|
+
let e = new Function(
|
|
1143
|
+
"formCode",
|
|
1144
|
+
"dataId",
|
|
1145
|
+
"formData",
|
|
1146
|
+
formConfig.wfConfig
|
|
1147
|
+
);
|
|
1086
1148
|
wfConfig1 = e.call(this, formCode, dataId, formData);
|
|
1087
1149
|
callback1 = wfConfig1?.callback;
|
|
1088
1150
|
delete wfConfig1?.callback;
|
|
@@ -1097,7 +1159,7 @@ modules = {
|
|
|
1097
1159
|
callback: (wfParam) => {
|
|
1098
1160
|
this.setFormData(formData);
|
|
1099
1161
|
|
|
1100
|
-
let {hasWf} = wfParam;
|
|
1162
|
+
let { hasWf } = wfParam;
|
|
1101
1163
|
this.hasWf = hasWf;
|
|
1102
1164
|
this.wfParam = wfParam;
|
|
1103
1165
|
|
|
@@ -1105,7 +1167,7 @@ modules = {
|
|
|
1105
1167
|
this.hanldeWfWidget();
|
|
1106
1168
|
this.hanldeWfWidget2();
|
|
1107
1169
|
}*/
|
|
1108
|
-
this.hanldeCommonWidget2()
|
|
1170
|
+
this.hanldeCommonWidget2(); //处理组件显隐,可编辑
|
|
1109
1171
|
|
|
1110
1172
|
this.showFormContent = true;
|
|
1111
1173
|
this.$nextTick(() => {
|
|
@@ -1114,33 +1176,33 @@ modules = {
|
|
|
1114
1176
|
|
|
1115
1177
|
}*/
|
|
1116
1178
|
setTimeout(() => {
|
|
1117
|
-
callback && callback()
|
|
1118
|
-
callback1 && callback1(wfParam)
|
|
1119
|
-
}, 1000)
|
|
1120
|
-
wfParam.done()
|
|
1121
|
-
})
|
|
1122
|
-
}
|
|
1179
|
+
callback && callback();
|
|
1180
|
+
callback1 && callback1(wfParam);
|
|
1181
|
+
}, 1000);
|
|
1182
|
+
wfParam.done();
|
|
1183
|
+
});
|
|
1184
|
+
},
|
|
1123
1185
|
};
|
|
1124
1186
|
if (formConfig.wfStartBindSave) {
|
|
1125
1187
|
option.onStart = (done) => {
|
|
1126
1188
|
let formRef = this.getFormRef ? this.getFormRef() : this;
|
|
1127
|
-
formRef.validate(valid => {
|
|
1189
|
+
formRef.validate((valid) => {
|
|
1128
1190
|
if (valid) {
|
|
1129
1191
|
done();
|
|
1130
1192
|
}
|
|
1131
1193
|
});
|
|
1132
|
-
}
|
|
1194
|
+
};
|
|
1133
1195
|
option.onBeforeStartSubmit = (done) => {
|
|
1134
1196
|
this.saveDefaultHandle({
|
|
1135
1197
|
config: {
|
|
1136
1198
|
successMsg: false,
|
|
1137
1199
|
isConfirm: false,
|
|
1138
|
-
success: res => {
|
|
1139
|
-
done()
|
|
1200
|
+
success: (res) => {
|
|
1201
|
+
done();
|
|
1140
1202
|
},
|
|
1141
|
-
}
|
|
1142
|
-
})
|
|
1143
|
-
}
|
|
1203
|
+
},
|
|
1204
|
+
});
|
|
1205
|
+
};
|
|
1144
1206
|
}
|
|
1145
1207
|
|
|
1146
1208
|
if (formConfig.wfAgreenBindSave) {
|
|
@@ -1148,7 +1210,7 @@ modules = {
|
|
|
1148
1210
|
option.onClickAgree = (done) => {
|
|
1149
1211
|
if (that.getIsSaveAtWfAgree()) {
|
|
1150
1212
|
let formRef = this.getFormRef ? this.getFormRef() : this;
|
|
1151
|
-
formRef.validate(valid => {
|
|
1213
|
+
formRef.validate((valid) => {
|
|
1152
1214
|
if (valid) {
|
|
1153
1215
|
done();
|
|
1154
1216
|
}
|
|
@@ -1156,37 +1218,40 @@ modules = {
|
|
|
1156
1218
|
} else {
|
|
1157
1219
|
done();
|
|
1158
1220
|
}
|
|
1159
|
-
}
|
|
1221
|
+
};
|
|
1160
1222
|
option.onBeforeAgree = (done) => {
|
|
1161
1223
|
if (that.getIsSaveAtWfAgree()) {
|
|
1162
1224
|
this.saveDefaultHandle({
|
|
1163
1225
|
config: {
|
|
1164
1226
|
successMsg: false,
|
|
1165
1227
|
isConfirm: false,
|
|
1166
|
-
success: res => {
|
|
1167
|
-
done()
|
|
1228
|
+
success: (res) => {
|
|
1229
|
+
done();
|
|
1168
1230
|
},
|
|
1169
|
-
}
|
|
1170
|
-
})
|
|
1231
|
+
},
|
|
1232
|
+
});
|
|
1171
1233
|
} else {
|
|
1172
1234
|
done();
|
|
1173
1235
|
}
|
|
1174
|
-
}
|
|
1236
|
+
};
|
|
1175
1237
|
}
|
|
1176
1238
|
|
|
1177
|
-
let resOption = option
|
|
1239
|
+
let resOption = option;
|
|
1178
1240
|
if (wfConfig1) {
|
|
1179
|
-
resOption = extendDeeply(resOption, wfConfig1)
|
|
1241
|
+
resOption = extendDeeply(resOption, wfConfig1);
|
|
1180
1242
|
}
|
|
1181
1243
|
return resOption;
|
|
1182
|
-
}
|
|
1244
|
+
};
|
|
1183
1245
|
}
|
|
1184
1246
|
|
|
1185
|
-
let formScriptParam = this.handleCustomEvent(
|
|
1247
|
+
let formScriptParam = this.handleCustomEvent(
|
|
1248
|
+
this.formConfig.formScriptParam
|
|
1249
|
+
);
|
|
1186
1250
|
|
|
1187
1251
|
let defaultOption = {
|
|
1188
1252
|
addCreateInfo: true,
|
|
1189
|
-
queryCreateInfo:
|
|
1253
|
+
queryCreateInfo:
|
|
1254
|
+
window.$vueRoot.$store.getters.queryCreateInfo || "0",
|
|
1190
1255
|
};
|
|
1191
1256
|
return this.formHttp({
|
|
1192
1257
|
// url: "/" + reportTemplate.serviceName + "/form_ins/getOne",
|
|
@@ -1197,28 +1262,28 @@ modules = {
|
|
|
1197
1262
|
taBm: entity,
|
|
1198
1263
|
data: {
|
|
1199
1264
|
id: dataId,
|
|
1200
|
-
...formScriptParam
|
|
1201
|
-
}
|
|
1265
|
+
...formScriptParam,
|
|
1266
|
+
},
|
|
1202
1267
|
},
|
|
1203
1268
|
...defaultOption,
|
|
1204
1269
|
sync: false,
|
|
1205
1270
|
wfConfig,
|
|
1206
|
-
success: res => {
|
|
1271
|
+
success: (res) => {
|
|
1207
1272
|
formData = res.objx || {};
|
|
1208
1273
|
// this.currentFormData = res.objx || {};
|
|
1209
1274
|
if (!wfConfig) {
|
|
1210
|
-
this.hanldeCommonWidget2()
|
|
1275
|
+
this.hanldeCommonWidget2(); //处理组件显隐,可编辑
|
|
1211
1276
|
this.setFormData(formData);
|
|
1212
1277
|
this.showFormContent = true;
|
|
1213
1278
|
this.$nextTick(() => {
|
|
1214
1279
|
this.handleShowHideRule();
|
|
1215
|
-
callback && callback()
|
|
1216
|
-
})
|
|
1280
|
+
callback && callback();
|
|
1281
|
+
});
|
|
1217
1282
|
}
|
|
1218
|
-
}
|
|
1283
|
+
},
|
|
1219
1284
|
});
|
|
1220
1285
|
} else {
|
|
1221
|
-
this.hanldeCommonWidget2()
|
|
1286
|
+
this.hanldeCommonWidget2(); //处理组件显隐,可编辑
|
|
1222
1287
|
this.handleShowContent();
|
|
1223
1288
|
}
|
|
1224
1289
|
},
|
|
@@ -1227,142 +1292,156 @@ modules = {
|
|
|
1227
1292
|
let userId = this.$store.getters.userId;
|
|
1228
1293
|
let userSaleOrgDTOs = this.userSaleOrgDTOs;
|
|
1229
1294
|
let userRoleDTOs = this.userRoleDTOs;
|
|
1230
|
-
let saleOrgIds = userSaleOrgDTOs.map(item => item.saleOrgId);
|
|
1231
|
-
let roleIds = userRoleDTOs.map(item => item.roleId);
|
|
1295
|
+
let saleOrgIds = userSaleOrgDTOs.map((item) => item.saleOrgId);
|
|
1296
|
+
let roleIds = userRoleDTOs.map((item) => item.roleId);
|
|
1232
1297
|
let refList = this.widgetRefList;
|
|
1233
1298
|
for (let key in refList) {
|
|
1234
1299
|
let target = refList[key];
|
|
1235
1300
|
let widget = target.field || target.widget;
|
|
1236
1301
|
if (widget?.options?.showRuleEnabled) {
|
|
1237
1302
|
let showRules = widget.options.showRules || [];
|
|
1238
|
-
showRules.forEach(showRule => {
|
|
1239
|
-
let ruleType = showRule.ruleType
|
|
1240
|
-
let isShow = showRule.show
|
|
1241
|
-
let value = showRule.value || []
|
|
1242
|
-
let valIds = value.map(item => item.id)
|
|
1303
|
+
showRules.forEach((showRule) => {
|
|
1304
|
+
let ruleType = showRule.ruleType;
|
|
1305
|
+
let isShow = showRule.show;
|
|
1306
|
+
let value = showRule.value || [];
|
|
1307
|
+
let valIds = value.map((item) => item.id);
|
|
1243
1308
|
if (valIds.length) {
|
|
1244
1309
|
let result = !widget.options.hidden;
|
|
1245
1310
|
if (ruleType == 1) {
|
|
1246
|
-
result = valIds.includes(userId) ? isShow : !isShow
|
|
1311
|
+
result = valIds.includes(userId) ? isShow : !isShow;
|
|
1247
1312
|
} else if (ruleType == 2) {
|
|
1248
|
-
result = saleOrgIds.find(item => valIds.includes(item))
|
|
1313
|
+
result = saleOrgIds.find((item) => valIds.includes(item))
|
|
1314
|
+
? isShow
|
|
1315
|
+
: !isShow;
|
|
1249
1316
|
} else if (ruleType == 3) {
|
|
1250
|
-
result = roleIds.find(item => valIds.includes(item))
|
|
1317
|
+
result = roleIds.find((item) => valIds.includes(item))
|
|
1318
|
+
? isShow
|
|
1319
|
+
: !isShow;
|
|
1251
1320
|
}
|
|
1252
|
-
target.setHidden(!result)
|
|
1321
|
+
target.setHidden(!result);
|
|
1253
1322
|
}
|
|
1254
|
-
})
|
|
1323
|
+
});
|
|
1255
1324
|
}
|
|
1256
1325
|
}
|
|
1257
1326
|
},
|
|
1258
1327
|
initFormObject: function () {
|
|
1259
1328
|
let e = this,
|
|
1260
1329
|
t = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0];
|
|
1261
|
-
(this.formId =
|
|
1262
|
-
|
|
1330
|
+
(this.formId = "vfRender" + baseRefUtil.generateId()),
|
|
1331
|
+
t && !this.dynamicCreation && this.insertCustomStyleAndScriptNode(),
|
|
1263
1332
|
this.addFieldChangeEventHandler(),
|
|
1264
1333
|
this.addFieldValidateEventHandler(),
|
|
1265
1334
|
this.registerFormToRefList(),
|
|
1266
1335
|
// this.handleOnCreated(),
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1336
|
+
this.disabledMode &&
|
|
1337
|
+
this.$nextTick(function () {
|
|
1338
|
+
e.disableForm();
|
|
1339
|
+
});
|
|
1271
1340
|
},
|
|
1272
1341
|
getContainerWidgetName: function (e) {
|
|
1273
|
-
return
|
|
1342
|
+
return "grid" === e.type ? "grid-item" : e.type + "-item";
|
|
1274
1343
|
},
|
|
1275
1344
|
getWidgetName: function (e) {
|
|
1276
|
-
return (e.targetType || e.type) +
|
|
1345
|
+
return (e.targetType || e.type) + "-widget";
|
|
1277
1346
|
},
|
|
1278
1347
|
initLocale: function () {
|
|
1279
|
-
let e = localStorage.getItem(
|
|
1348
|
+
let e = localStorage.getItem("v_form_locale") || "zh-CN";
|
|
1280
1349
|
this.changeLanguage(e);
|
|
1281
1350
|
},
|
|
1282
1351
|
insertCustomStyleAndScriptNode: function () {
|
|
1283
|
-
this.formConfig &&
|
|
1284
|
-
.
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1352
|
+
this.formConfig &&
|
|
1353
|
+
this.formConfig.cssCode &&
|
|
1354
|
+
baseRefUtil.insertCustomCssToHead(
|
|
1355
|
+
this.formConfig.cssCode,
|
|
1356
|
+
this.previewState ? "" : this.formId
|
|
1357
|
+
),
|
|
1358
|
+
this.formConfig &&
|
|
1359
|
+
this.formConfig.functions &&
|
|
1360
|
+
baseRefUtil.insertGlobalFunctionsToHtml(
|
|
1361
|
+
this.formConfig.functions,
|
|
1362
|
+
this.previewState ? "" : this.formId
|
|
1363
|
+
);
|
|
1288
1364
|
},
|
|
1289
1365
|
buildFormModel: function (e) {
|
|
1290
1366
|
let t = this;
|
|
1291
|
-
e
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1367
|
+
e &&
|
|
1368
|
+
e.length > 0 &&
|
|
1369
|
+
e.forEach(function (e) {
|
|
1370
|
+
t.buildDataFromWidget(e);
|
|
1371
|
+
});
|
|
1296
1372
|
},
|
|
1297
1373
|
buildDataFromWidget: function (e) {
|
|
1298
1374
|
let t = this;
|
|
1299
1375
|
let dataId = this.dataId;
|
|
1300
1376
|
let currentFormData = this.currentFormData;
|
|
1301
|
-
let fieldKeyName = this.getFieldKeyName(e)
|
|
1302
|
-
let defaultValue =
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1377
|
+
let fieldKeyName = this.getFieldKeyName(e);
|
|
1378
|
+
let defaultValue =
|
|
1379
|
+
e.options.defaultValue === undefined || e.options.defaultValue === ""
|
|
1380
|
+
? null
|
|
1381
|
+
: e.options.defaultValue;
|
|
1382
|
+
if ("container" === e.category) {
|
|
1383
|
+
if ("vf-dialog" === e.type || "vf-drawer" === e.type);
|
|
1384
|
+
else if ("data-table" === e.type) {
|
|
1385
|
+
if (!!e.widgetList && e.widgetList.length > 0) {
|
|
1307
1386
|
e.widgetList.forEach((childItem) => {
|
|
1308
1387
|
this.buildDataFromWidget(childItem, e);
|
|
1309
1388
|
});
|
|
1310
1389
|
}
|
|
1311
1390
|
let c = currentFormData[fieldKeyName] ?? [];
|
|
1312
1391
|
this.$set(this.formDataModel, fieldKeyName, baseRefUtil.deepClone(c));
|
|
1313
|
-
} else if (
|
|
1314
|
-
if (!!e.widgetList &&
|
|
1392
|
+
} else if ("list-h5" === e.type) {
|
|
1393
|
+
if (!!e.widgetList && e.widgetList.length > 0) {
|
|
1315
1394
|
e.widgetList.forEach((childItem) => {
|
|
1316
1395
|
this.buildDataFromWidget(childItem, e);
|
|
1317
1396
|
});
|
|
1318
1397
|
}
|
|
1319
|
-
} else if (
|
|
1320
|
-
e.cols
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
t.buildDataFromWidget(e);
|
|
1324
|
-
});
|
|
1325
|
-
else if ('table' === e.type)
|
|
1326
|
-
e.rows
|
|
1327
|
-
&& e.rows.length > 0
|
|
1328
|
-
&& e.rows.forEach(function (e) {
|
|
1329
|
-
e.cols
|
|
1330
|
-
&& e.cols.length > 0
|
|
1331
|
-
&& e.cols.forEach(function (e) {
|
|
1398
|
+
} else if ("grid" === e.type)
|
|
1399
|
+
e.cols &&
|
|
1400
|
+
e.cols.length > 0 &&
|
|
1401
|
+
e.cols.forEach(function (e) {
|
|
1332
1402
|
t.buildDataFromWidget(e);
|
|
1333
1403
|
});
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1404
|
+
else if ("table" === e.type)
|
|
1405
|
+
e.rows &&
|
|
1406
|
+
e.rows.length > 0 &&
|
|
1407
|
+
e.rows.forEach(function (e) {
|
|
1408
|
+
e.cols &&
|
|
1409
|
+
e.cols.length > 0 &&
|
|
1410
|
+
e.cols.forEach(function (e) {
|
|
1411
|
+
t.buildDataFromWidget(e);
|
|
1412
|
+
});
|
|
1343
1413
|
});
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1414
|
+
else if ("h5-table" === e.type)
|
|
1415
|
+
e.rows &&
|
|
1416
|
+
e.rows.length > 0 &&
|
|
1417
|
+
e.rows.forEach(function (e) {
|
|
1418
|
+
e.cols &&
|
|
1419
|
+
e.cols.length > 0 &&
|
|
1420
|
+
e.cols.forEach(function (e) {
|
|
1421
|
+
t.buildDataFromWidget(e);
|
|
1422
|
+
});
|
|
1353
1423
|
});
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1424
|
+
else if ("tab" === e.type)
|
|
1425
|
+
e.tabs &&
|
|
1426
|
+
e.tabs.length > 0 &&
|
|
1427
|
+
e.tabs.forEach(function (e) {
|
|
1428
|
+
e.widgetList &&
|
|
1429
|
+
e.widgetList.length > 0 &&
|
|
1430
|
+
e.widgetList.forEach(function (e) {
|
|
1431
|
+
t.buildDataFromWidget(e);
|
|
1432
|
+
});
|
|
1363
1433
|
});
|
|
1364
|
-
|
|
1365
|
-
|
|
1434
|
+
else if ("detail" === e.type)
|
|
1435
|
+
e.panes &&
|
|
1436
|
+
e.panes.length > 0 &&
|
|
1437
|
+
e.panes.forEach(function (e) {
|
|
1438
|
+
e.widgetList &&
|
|
1439
|
+
e.widgetList.length > 0 &&
|
|
1440
|
+
e.widgetList.forEach(function (e) {
|
|
1441
|
+
t.buildDataFromWidget(e);
|
|
1442
|
+
});
|
|
1443
|
+
});
|
|
1444
|
+
else if ("sub-form" === e.type) {
|
|
1366
1445
|
let i = e.options.name;
|
|
1367
1446
|
if (currentFormData.hasOwnProperty(i)) {
|
|
1368
1447
|
let n = currentFormData[i];
|
|
@@ -1371,12 +1450,12 @@ modules = {
|
|
|
1371
1450
|
let o = {};
|
|
1372
1451
|
e.options.showBlankRow
|
|
1373
1452
|
? (e.widgetList.forEach(function (e) {
|
|
1374
|
-
|
|
1375
|
-
|
|
1453
|
+
e.formItemFlag && (o[e.options.name] = defaultValue);
|
|
1454
|
+
}),
|
|
1376
1455
|
this.$set(this.formDataModel, i, [o]))
|
|
1377
1456
|
: this.$set(this.formDataModel, i, []);
|
|
1378
1457
|
}
|
|
1379
|
-
} else if (
|
|
1458
|
+
} else if ("grid-sub-form" === e.type) {
|
|
1380
1459
|
let a = e.options.name;
|
|
1381
1460
|
if (currentFormData.hasOwnProperty(a)) {
|
|
1382
1461
|
let l = currentFormData[a];
|
|
@@ -1390,44 +1469,47 @@ modules = {
|
|
|
1390
1469
|
let d = {};
|
|
1391
1470
|
e.options.showBlankRow
|
|
1392
1471
|
? (s.forEach(function (e) {
|
|
1393
|
-
|
|
1394
|
-
|
|
1472
|
+
d[e.options.name] = defaultValue;
|
|
1473
|
+
}),
|
|
1395
1474
|
this.$set(this.formDataModel, a, [d]))
|
|
1396
1475
|
: this.$set(this.formDataModel, a, []);
|
|
1397
1476
|
}
|
|
1398
|
-
} else if (
|
|
1399
|
-
e.panes
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
t.buildDataFromWidget(e);
|
|
1403
|
-
});
|
|
1404
|
-
} else if ('h5-card' === e.type) {
|
|
1405
|
-
e.panes
|
|
1406
|
-
&& e.panes.length > 0
|
|
1407
|
-
&& e.panes.forEach(function (e) {
|
|
1408
|
-
e.widgetList
|
|
1409
|
-
&& e.widgetList.length > 0
|
|
1410
|
-
&& e.widgetList.forEach(function (e) {
|
|
1477
|
+
} else if ("detail-h5" === e.type) {
|
|
1478
|
+
e.panes &&
|
|
1479
|
+
e.panes.length > 0 &&
|
|
1480
|
+
e.panes.forEach(function (e) {
|
|
1411
1481
|
t.buildDataFromWidget(e);
|
|
1412
1482
|
});
|
|
1413
|
-
|
|
1483
|
+
} else if ("h5-card" === e.type) {
|
|
1484
|
+
e.panes &&
|
|
1485
|
+
e.panes.length > 0 &&
|
|
1486
|
+
e.panes.forEach(function (e) {
|
|
1487
|
+
e.widgetList &&
|
|
1488
|
+
e.widgetList.length > 0 &&
|
|
1489
|
+
e.widgetList.forEach(function (e) {
|
|
1490
|
+
t.buildDataFromWidget(e);
|
|
1491
|
+
});
|
|
1492
|
+
});
|
|
1414
1493
|
} else
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
} else if (
|
|
1422
|
-
|
|
1494
|
+
"grid-col" === e.type || e.type,
|
|
1495
|
+
e.widgetList &&
|
|
1496
|
+
e.widgetList.length > 0 &&
|
|
1497
|
+
e.widgetList.forEach(function (e) {
|
|
1498
|
+
t.buildDataFromWidget(e);
|
|
1499
|
+
});
|
|
1500
|
+
} else if ("vabsearch" === e.type) {
|
|
1423
1501
|
let c = currentFormData[fieldKeyName];
|
|
1424
1502
|
this.$set(this.formDataModel, fieldKeyName, baseRefUtil.deepClone(c));
|
|
1425
1503
|
let vabSearchName = e.options.vabSearchName;
|
|
1426
1504
|
if (vabSearchName) {
|
|
1427
1505
|
let val = currentFormData[vabSearchName] ?? null;
|
|
1428
|
-
this.$set(
|
|
1506
|
+
this.$set(
|
|
1507
|
+
this.formDataModel,
|
|
1508
|
+
vabSearchName,
|
|
1509
|
+
baseRefUtil.deepClone(val)
|
|
1510
|
+
);
|
|
1429
1511
|
}
|
|
1430
|
-
} else if (
|
|
1512
|
+
} else if ("table2-item" === e.type) {
|
|
1431
1513
|
this.$set(this.formDataModel, fieldKeyName, []);
|
|
1432
1514
|
} else if (e.formItemFlag) {
|
|
1433
1515
|
if (dataId || currentFormData.hasOwnProperty(fieldKeyName)) {
|
|
@@ -1440,25 +1522,33 @@ modules = {
|
|
|
1440
1522
|
},
|
|
1441
1523
|
addFieldChangeEventHandler: function () {
|
|
1442
1524
|
let e = this;
|
|
1443
|
-
this.$off(
|
|
1444
|
-
this.$on(
|
|
1445
|
-
e.handleFieldDataChange(t, i, n, o, a),
|
|
1525
|
+
this.$off("fieldChange"),
|
|
1526
|
+
this.$on("fieldChange", function (t, i, n, o, a) {
|
|
1527
|
+
e.handleFieldDataChange(t, i, n, o, a),
|
|
1528
|
+
e.$emit("formChange", t, i, n, e.formDataModel, o, a);
|
|
1446
1529
|
});
|
|
1447
1530
|
},
|
|
1448
1531
|
addFieldValidateEventHandler: function () {
|
|
1449
1532
|
let e = this;
|
|
1450
|
-
this.$off(
|
|
1451
|
-
this.$on(
|
|
1533
|
+
this.$off("fieldValidation"),
|
|
1534
|
+
this.$on("fieldValidation", function (t) {
|
|
1452
1535
|
e.$refs.renderForm.validateField(t);
|
|
1453
1536
|
});
|
|
1454
1537
|
},
|
|
1455
1538
|
registerFormToRefList: function () {
|
|
1456
|
-
this.widgetRefList[
|
|
1539
|
+
this.widgetRefList["v_form_ref"] = this;
|
|
1457
1540
|
},
|
|
1458
1541
|
handleFieldDataChange: function (e, t, i, n, o) {
|
|
1459
1542
|
if (this.formConfig && this.formConfig.onFormDataChange) {
|
|
1460
|
-
let a = new Function(
|
|
1461
|
-
|
|
1543
|
+
let a = new Function(
|
|
1544
|
+
"fieldName",
|
|
1545
|
+
"newValue",
|
|
1546
|
+
"oldValue",
|
|
1547
|
+
"formModel",
|
|
1548
|
+
"subFormName",
|
|
1549
|
+
"subFormRowIndex",
|
|
1550
|
+
this.formConfig.onFormDataChange
|
|
1551
|
+
);
|
|
1462
1552
|
a.call(this, e, t, i, this.formDataModel, n, o);
|
|
1463
1553
|
}
|
|
1464
1554
|
},
|
|
@@ -1469,13 +1559,21 @@ modules = {
|
|
|
1469
1559
|
return {
|
|
1470
1560
|
eventParamNames: ["dataId", "formCode"],
|
|
1471
1561
|
eventParamValues: [dataId, formCode],
|
|
1472
|
-
}
|
|
1562
|
+
};
|
|
1473
1563
|
},
|
|
1474
1564
|
handleCustomEvent(funtionStr, eventParamNames = [], eventParamValues = []) {
|
|
1475
1565
|
if (!this.designState && funtionStr) {
|
|
1476
1566
|
let eventParam = this.getEventParam();
|
|
1477
|
-
var e = new Function(
|
|
1478
|
-
|
|
1567
|
+
var e = new Function(
|
|
1568
|
+
...eventParam.eventParamNames,
|
|
1569
|
+
...eventParamNames,
|
|
1570
|
+
funtionStr
|
|
1571
|
+
);
|
|
1572
|
+
return e.call(
|
|
1573
|
+
this,
|
|
1574
|
+
...eventParam.eventParamValues,
|
|
1575
|
+
...eventParamValues
|
|
1576
|
+
);
|
|
1479
1577
|
}
|
|
1480
1578
|
},
|
|
1481
1579
|
|
|
@@ -1495,12 +1593,17 @@ modules = {
|
|
|
1495
1593
|
},
|
|
1496
1594
|
findWidgetAndSetDisabled: function (e, t) {
|
|
1497
1595
|
let i = this.getWidgetRef(e);
|
|
1498
|
-
i && i.setDisabled
|
|
1596
|
+
i && i.setDisabled
|
|
1597
|
+
? i.setDisabled(t)
|
|
1598
|
+
: this.findWidgetOfSubFormAndSetDisabled(e, t);
|
|
1499
1599
|
},
|
|
1500
1600
|
findWidgetOfSubFormAndSetDisabled: function (e, t) {
|
|
1501
1601
|
let i = this,
|
|
1502
1602
|
n = baseRefUtil.getFieldWidgetByName(this.formJsonObj.widgetList, e);
|
|
1503
|
-
n &&
|
|
1603
|
+
n &&
|
|
1604
|
+
n.options &&
|
|
1605
|
+
n.options.hasOwnProperty("disabled") &&
|
|
1606
|
+
(n.options.disabled = t),
|
|
1504
1607
|
this.findWidgetNameInSubForm(e).forEach(function (e) {
|
|
1505
1608
|
let n = i.getWidgetRef(e);
|
|
1506
1609
|
n && n.setDisabled && n.setDisabled(t);
|
|
@@ -1508,91 +1611,103 @@ modules = {
|
|
|
1508
1611
|
},
|
|
1509
1612
|
findWidgetAndSetHidden: function (e, t) {
|
|
1510
1613
|
let i = this.getWidgetRef(e);
|
|
1511
|
-
i && i.setDisabled
|
|
1614
|
+
i && i.setDisabled
|
|
1615
|
+
? i.setHidden(t)
|
|
1616
|
+
: this.findWidgetOfSubFormAndSetHidden(e, t);
|
|
1512
1617
|
},
|
|
1513
1618
|
findWidgetOfSubFormAndSetHidden: function (e, t) {
|
|
1514
1619
|
let i = this,
|
|
1515
1620
|
n = baseRefUtil.getFieldWidgetByName(this.formJsonObj.widgetList, e);
|
|
1516
|
-
n &&
|
|
1621
|
+
n &&
|
|
1622
|
+
n.options &&
|
|
1623
|
+
n.options.hasOwnProperty("hidden") &&
|
|
1624
|
+
(n.options.hidden = t),
|
|
1517
1625
|
this.findWidgetNameInSubForm(e).forEach(function (e) {
|
|
1518
1626
|
let n = i.getWidgetRef(e);
|
|
1519
1627
|
n && n.setDisabled && n.setHidden(t);
|
|
1520
1628
|
});
|
|
1521
1629
|
},
|
|
1522
1630
|
findWidgetNameInSubForm(widgetName) {
|
|
1523
|
-
let result = []
|
|
1524
|
-
let subFormName = null
|
|
1525
|
-
Object.keys(this.subFormRefList).forEach(sfName => {
|
|
1631
|
+
let result = [];
|
|
1632
|
+
let subFormName = null;
|
|
1633
|
+
Object.keys(this.subFormRefList).forEach((sfName) => {
|
|
1526
1634
|
const fwHandler = (fw) => {
|
|
1527
1635
|
if (fw.options.name === widgetName) {
|
|
1528
|
-
subFormName = sfName
|
|
1636
|
+
subFormName = sfName;
|
|
1529
1637
|
}
|
|
1530
|
-
}
|
|
1638
|
+
};
|
|
1531
1639
|
|
|
1532
|
-
const sfRef = this.subFormRefList[sfName]
|
|
1533
|
-
traverseFieldWidgetsOfContainer(sfRef.widget, fwHandler, true)
|
|
1534
|
-
})
|
|
1640
|
+
const sfRef = this.subFormRefList[sfName];
|
|
1641
|
+
traverseFieldWidgetsOfContainer(sfRef.widget, fwHandler, true);
|
|
1642
|
+
});
|
|
1535
1643
|
|
|
1536
1644
|
if (!!subFormName) {
|
|
1537
|
-
let subFormRef = this.getWidgetRef(subFormName)
|
|
1645
|
+
let subFormRef = this.getWidgetRef(subFormName);
|
|
1538
1646
|
if (!!subFormRef) {
|
|
1539
1647
|
if (subFormRef.widget.type == "data-table") {
|
|
1540
1648
|
let rows = subFormRef.getValue();
|
|
1541
1649
|
if (rows) {
|
|
1542
|
-
rows.forEach(row => {
|
|
1543
|
-
result.push(widgetName +
|
|
1544
|
-
})
|
|
1650
|
+
rows.forEach((row) => {
|
|
1651
|
+
result.push(widgetName + "_" + row._X_ROW_KEY);
|
|
1652
|
+
});
|
|
1545
1653
|
}
|
|
1546
|
-
|
|
1547
1654
|
} else {
|
|
1548
|
-
let rowIds = subFormRef.getRowIdData()
|
|
1549
|
-
if (!!rowIds &&
|
|
1550
|
-
rowIds.forEach(rid => {
|
|
1551
|
-
result.push(widgetName +
|
|
1552
|
-
})
|
|
1655
|
+
let rowIds = subFormRef.getRowIdData();
|
|
1656
|
+
if (!!rowIds && rowIds.length > 0) {
|
|
1657
|
+
rowIds.forEach((rid) => {
|
|
1658
|
+
result.push(widgetName + "@row" + rid);
|
|
1659
|
+
});
|
|
1553
1660
|
}
|
|
1554
1661
|
}
|
|
1555
|
-
|
|
1556
1662
|
}
|
|
1557
1663
|
}
|
|
1558
1664
|
|
|
1559
|
-
return result
|
|
1665
|
+
return result;
|
|
1560
1666
|
},
|
|
1561
1667
|
|
|
1562
1668
|
findFieldWidgetById(fieldId, staticWidgetsIncluded) {
|
|
1563
|
-
return getFieldWidgetById(
|
|
1669
|
+
return getFieldWidgetById(
|
|
1670
|
+
this.formJsonObj.widgetList,
|
|
1671
|
+
fieldId,
|
|
1672
|
+
staticWidgetsIncluded
|
|
1673
|
+
);
|
|
1564
1674
|
},
|
|
1565
1675
|
|
|
1566
1676
|
getSubFormNameOfWidget(widgetName) {
|
|
1567
|
-
let result = []
|
|
1568
|
-
let subFormName = null
|
|
1569
|
-
Object.keys(this.subFormRefList).forEach(sfName => {
|
|
1677
|
+
let result = [];
|
|
1678
|
+
let subFormName = null;
|
|
1679
|
+
Object.keys(this.subFormRefList).forEach((sfName) => {
|
|
1570
1680
|
const fwHandler = (fw) => {
|
|
1571
1681
|
if (fw.options.name === widgetName) {
|
|
1572
|
-
subFormName = sfName
|
|
1682
|
+
subFormName = sfName;
|
|
1573
1683
|
}
|
|
1574
|
-
}
|
|
1684
|
+
};
|
|
1575
1685
|
|
|
1576
|
-
const sfRef = this.subFormRefList[sfName]
|
|
1577
|
-
traverseFieldWidgetsOfContainer(sfRef.widget, fwHandler)
|
|
1578
|
-
})
|
|
1686
|
+
const sfRef = this.subFormRefList[sfName];
|
|
1687
|
+
traverseFieldWidgetsOfContainer(sfRef.widget, fwHandler);
|
|
1688
|
+
});
|
|
1579
1689
|
|
|
1580
|
-
return subFormName
|
|
1690
|
+
return subFormName;
|
|
1581
1691
|
},
|
|
1582
1692
|
|
|
1583
1693
|
changeLanguage: function (e) {
|
|
1584
1694
|
baseRefUtil.changeLocale(e);
|
|
1585
1695
|
},
|
|
1586
1696
|
getLanguageName: function () {
|
|
1587
|
-
return localStorage.getItem(
|
|
1697
|
+
return localStorage.getItem("v_form_locale") || "zh-CN";
|
|
1588
1698
|
},
|
|
1589
1699
|
getNativeForm: function () {
|
|
1590
|
-
return this.$refs[
|
|
1700
|
+
return this.$refs["renderForm"];
|
|
1591
1701
|
},
|
|
1592
1702
|
getWidgetRef: function (e) {
|
|
1593
1703
|
let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1],
|
|
1594
1704
|
i = this.widgetRefList[e];
|
|
1595
|
-
return
|
|
1705
|
+
return (
|
|
1706
|
+
!i &&
|
|
1707
|
+
t &&
|
|
1708
|
+
this.$message.error(this.i18nt("render.hint.refNotFound") + e),
|
|
1709
|
+
i
|
|
1710
|
+
);
|
|
1596
1711
|
},
|
|
1597
1712
|
clearFormDataModel: function () {
|
|
1598
1713
|
for (let e in this.formDataModel) delete this.formDataModel[e];
|
|
@@ -1600,42 +1715,48 @@ modules = {
|
|
|
1600
1715
|
setFormJson: function (e) {
|
|
1601
1716
|
let t = this;
|
|
1602
1717
|
if (e)
|
|
1603
|
-
if (
|
|
1718
|
+
if ("string" === typeof e || e.constructor === Object) {
|
|
1604
1719
|
let i = null;
|
|
1605
|
-
if (
|
|
1606
|
-
|
|
1720
|
+
if (
|
|
1721
|
+
((i = "string" === typeof e ? JSON.parse(e) : e),
|
|
1722
|
+
!i.formConfig || !i.widgetList)
|
|
1723
|
+
)
|
|
1724
|
+
return void this.$message.error("Invalid format of form json.");
|
|
1607
1725
|
this.clearFormDataModel(),
|
|
1608
1726
|
this.buildFormModel(i.widgetList),
|
|
1609
|
-
this.$set(this.formJsonObj,
|
|
1727
|
+
this.$set(this.formJsonObj, "formConfig", i.formConfig),
|
|
1610
1728
|
(this._provided.formConfig = i.formConfig),
|
|
1611
|
-
this.$set(this.formJsonObj,
|
|
1729
|
+
this.$set(this.formJsonObj, "widgetList", i.widgetList),
|
|
1612
1730
|
this.insertCustomStyleAndScriptNode(),
|
|
1613
1731
|
this.$nextTick(function () {
|
|
1614
1732
|
t.initFormObject(!1), t.handleOnMounted();
|
|
1615
1733
|
});
|
|
1616
|
-
} else this.$message.error(
|
|
1734
|
+
} else this.$message.error("Set form json failed.");
|
|
1617
1735
|
},
|
|
1618
1736
|
reloadOptionData: function (e) {
|
|
1619
1737
|
let t = [];
|
|
1620
|
-
e &&
|
|
1621
|
-
|
|
1738
|
+
e && "string" === typeof e
|
|
1739
|
+
? (t = [e])
|
|
1740
|
+
: e && Array.isArray(e) && (t = [...e]),
|
|
1741
|
+
this.broadcast("FieldWidget", "reloadOptionItems", [t]);
|
|
1622
1742
|
},
|
|
1623
1743
|
getFormData: function () {
|
|
1624
1744
|
let e = this,
|
|
1625
1745
|
t = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0];
|
|
1626
1746
|
if (!t) return this.formDataModel;
|
|
1627
|
-
let i = function () {
|
|
1628
|
-
},
|
|
1747
|
+
let i = function () {},
|
|
1629
1748
|
n = new window.Promise(function (e, t) {
|
|
1630
1749
|
i = function (i, n) {
|
|
1631
1750
|
n ? t(n) : e(i);
|
|
1632
1751
|
};
|
|
1633
1752
|
});
|
|
1634
1753
|
return (
|
|
1635
|
-
this.$refs[
|
|
1636
|
-
t
|
|
1754
|
+
this.$refs["renderForm"].validate(function (t) {
|
|
1755
|
+
t
|
|
1756
|
+
? i(e.formDataModel)
|
|
1757
|
+
: i(e.formDataModel, e.i18nt("render.hint.validationFailed"));
|
|
1637
1758
|
}),
|
|
1638
|
-
|
|
1759
|
+
n
|
|
1639
1760
|
);
|
|
1640
1761
|
},
|
|
1641
1762
|
setFormData: function (e) {
|
|
@@ -1643,10 +1764,10 @@ modules = {
|
|
|
1643
1764
|
/*Object.keys(this.formDataModel).forEach(function (i) {
|
|
1644
1765
|
e && e.hasOwnProperty(i) && (t.formDataModel[i] = baseRefUtil.deepClone(e[i]));
|
|
1645
1766
|
});*/
|
|
1646
|
-
Object.assign(t.formDataModel, baseRefUtil.deepClone(e))
|
|
1767
|
+
Object.assign(t.formDataModel, baseRefUtil.deepClone(e));
|
|
1647
1768
|
this.currentFormData = e || {};
|
|
1648
|
-
this.broadcast(
|
|
1649
|
-
this.broadcast(
|
|
1769
|
+
this.broadcast("ContainerItem", "setFormData", this.formDataModel),
|
|
1770
|
+
this.broadcast("FieldWidget", "setFormData", this.formDataModel);
|
|
1650
1771
|
},
|
|
1651
1772
|
getFieldValue: function (e) {
|
|
1652
1773
|
let t = this,
|
|
@@ -1659,7 +1780,7 @@ modules = {
|
|
|
1659
1780
|
let i = t.getWidgetRef(e);
|
|
1660
1781
|
i && i.getValue && n.push(i.getValue());
|
|
1661
1782
|
}),
|
|
1662
|
-
|
|
1783
|
+
n
|
|
1663
1784
|
);
|
|
1664
1785
|
}
|
|
1665
1786
|
},
|
|
@@ -1667,43 +1788,64 @@ modules = {
|
|
|
1667
1788
|
let i = this,
|
|
1668
1789
|
n = this.getWidgetRef(e);
|
|
1669
1790
|
n && n.setValue && n.setValue(t),
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1791
|
+
n ||
|
|
1792
|
+
this.findWidgetNameInSubForm(e).forEach(function (e) {
|
|
1793
|
+
let n = i.getWidgetRef(e);
|
|
1794
|
+
n && n.setValue && n.setValue(t);
|
|
1795
|
+
});
|
|
1675
1796
|
},
|
|
1676
1797
|
getSubFormValues: function (e) {
|
|
1677
|
-
let t =
|
|
1798
|
+
let t =
|
|
1799
|
+
!(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1],
|
|
1678
1800
|
i = this.subFormRefList[e];
|
|
1679
1801
|
return i.getSubFormValues(t);
|
|
1680
1802
|
},
|
|
1681
|
-
setSubFormValues: function (e, t) {
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1803
|
+
setSubFormValues: function (e, t) {},
|
|
1804
|
+
disableForm(ignoreFields) {
|
|
1805
|
+
let wNameList = Object.keys(this.widgetRefList);
|
|
1806
|
+
wNameList.forEach((wName) => {
|
|
1807
|
+
let foundW = this.getWidgetRef(wName);
|
|
1808
|
+
if (!!foundW) {
|
|
1809
|
+
if (ignoreFields && ignoreFields.includes(wName)) {
|
|
1810
|
+
return;
|
|
1811
|
+
}
|
|
1812
|
+
if (!!foundW.widget && foundW.widget.type === "sub-form") {
|
|
1813
|
+
foundW.disableSubForm();
|
|
1814
|
+
} else if (
|
|
1815
|
+
!!foundW.widget &&
|
|
1816
|
+
foundW.widget.type === "grid-sub-form"
|
|
1817
|
+
) {
|
|
1818
|
+
foundW.disableGridSubForm();
|
|
1819
|
+
}else if (!!foundW.widget && foundW.widget.type === "data-table") {
|
|
1820
|
+
foundW.disableGridForm();
|
|
1821
|
+
} else {
|
|
1822
|
+
!!foundW.setDisabled && foundW.setDisabled(true);
|
|
1823
|
+
}
|
|
1824
|
+
}
|
|
1694
1825
|
});
|
|
1695
1826
|
},
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
let
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1827
|
+
|
|
1828
|
+
enableForm(ignoreFields) {
|
|
1829
|
+
let wNameList = Object.keys(this.widgetRefList);
|
|
1830
|
+
wNameList.forEach((wName) => {
|
|
1831
|
+
let foundW = this.getWidgetRef(wName);
|
|
1832
|
+
if (!!foundW) {
|
|
1833
|
+
if (ignoreFields && ignoreFields.includes(wName)) {
|
|
1834
|
+
return;
|
|
1835
|
+
}
|
|
1836
|
+
if (!!foundW.widget && foundW.widget.type === "sub-form") {
|
|
1837
|
+
foundW.enableSubForm();
|
|
1838
|
+
} else if (
|
|
1839
|
+
!!foundW.widget &&
|
|
1840
|
+
foundW.widget.type === "grid-sub-form"
|
|
1841
|
+
) {
|
|
1842
|
+
foundW.enableGridSubForm();
|
|
1843
|
+
}else if (!!foundW.widget && foundW.widget.type === "data-table") {
|
|
1844
|
+
foundW.enableGridForm();
|
|
1845
|
+
} else {
|
|
1846
|
+
!!foundW.setDisabled && foundW.setDisabled(false);
|
|
1847
|
+
}
|
|
1848
|
+
}
|
|
1707
1849
|
});
|
|
1708
1850
|
},
|
|
1709
1851
|
resetForm: function () {
|
|
@@ -1725,60 +1867,64 @@ modules = {
|
|
|
1725
1867
|
this.$refs.renderForm.clearValidate(e);
|
|
1726
1868
|
},
|
|
1727
1869
|
validateForm: function (e) {
|
|
1728
|
-
this.$refs[
|
|
1870
|
+
this.$refs["renderForm"].$baseValidate(function (t) {
|
|
1729
1871
|
e(t);
|
|
1730
1872
|
});
|
|
1731
1873
|
},
|
|
1732
|
-
validateFields: function () {
|
|
1733
|
-
},
|
|
1874
|
+
validateFields: function () {},
|
|
1734
1875
|
disableWidgets: function (e) {
|
|
1735
1876
|
let t = this;
|
|
1736
|
-
e
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1877
|
+
e &&
|
|
1878
|
+
("string" === typeof e
|
|
1879
|
+
? this.findWidgetAndSetDisabled(e, !0)
|
|
1880
|
+
: Array.isArray(e) &&
|
|
1881
|
+
e.forEach(function (e) {
|
|
1882
|
+
t.findWidgetAndSetDisabled(e, !0);
|
|
1883
|
+
}));
|
|
1743
1884
|
},
|
|
1744
1885
|
enableWidgets: function (e) {
|
|
1745
1886
|
let t = this;
|
|
1746
|
-
e
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1887
|
+
e &&
|
|
1888
|
+
("string" === typeof e
|
|
1889
|
+
? this.findWidgetAndSetDisabled(e, !1)
|
|
1890
|
+
: Array.isArray(e) &&
|
|
1891
|
+
e.forEach(function (e) {
|
|
1892
|
+
t.findWidgetAndSetDisabled(e, !1);
|
|
1893
|
+
}));
|
|
1753
1894
|
},
|
|
1754
1895
|
hideWidgets: function (e) {
|
|
1755
1896
|
let t = this;
|
|
1756
|
-
e
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1897
|
+
e &&
|
|
1898
|
+
("string" === typeof e
|
|
1899
|
+
? this.findWidgetAndSetHidden(e, !0)
|
|
1900
|
+
: Array.isArray(e) &&
|
|
1901
|
+
e.forEach(function (e) {
|
|
1902
|
+
t.findWidgetAndSetHidden(e, !0);
|
|
1903
|
+
}));
|
|
1763
1904
|
},
|
|
1764
1905
|
showWidgets: function (e) {
|
|
1765
1906
|
let t = this;
|
|
1766
|
-
e
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1907
|
+
e &&
|
|
1908
|
+
("string" === typeof e
|
|
1909
|
+
? this.findWidgetAndSetHidden(e, !1)
|
|
1910
|
+
: Array.isArray(e) &&
|
|
1911
|
+
e.forEach(function (e) {
|
|
1912
|
+
t.findWidgetAndSetHidden(e, !1);
|
|
1913
|
+
}));
|
|
1773
1914
|
},
|
|
1774
1915
|
getFieldWidgets: function () {
|
|
1775
|
-
let e =
|
|
1776
|
-
|
|
1916
|
+
let e =
|
|
1917
|
+
arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
|
|
1918
|
+
return e
|
|
1919
|
+
? baseRefUtil.getAllFieldWidgets(e)
|
|
1920
|
+
: baseRefUtil.getAllFieldWidgets(this.formJsonObj.widgetList);
|
|
1777
1921
|
},
|
|
1778
1922
|
getContainerWidgets: function () {
|
|
1779
|
-
let e =
|
|
1780
|
-
|
|
1781
|
-
|
|
1923
|
+
let e =
|
|
1924
|
+
arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
|
|
1925
|
+
return e
|
|
1926
|
+
? baseRefUtil.getAllContainerWidgets(e)
|
|
1927
|
+
: baseRefUtil.getAllContainerWidgets(this.formJsonObj.widgetList);
|
|
1782
1928
|
},
|
|
1783
1929
|
addEC: function (e, t) {
|
|
1784
1930
|
this.externalComponents[e] = t;
|
|
@@ -1790,7 +1936,8 @@ modules = {
|
|
|
1790
1936
|
return this.externalComponents[e];
|
|
1791
1937
|
},
|
|
1792
1938
|
setReadMode: function () {
|
|
1793
|
-
let e =
|
|
1939
|
+
let e =
|
|
1940
|
+
!(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0];
|
|
1794
1941
|
this.readModeFlag = e;
|
|
1795
1942
|
},
|
|
1796
1943
|
getReadMode: function () {
|
|
@@ -1801,7 +1948,7 @@ modules = {
|
|
|
1801
1948
|
},
|
|
1802
1949
|
executeDataSource: function (e, t) {
|
|
1803
1950
|
let i = this;
|
|
1804
|
-
return Object(ie[
|
|
1951
|
+
return Object(ie["a"])(
|
|
1805
1952
|
regeneratorRuntime.mark(function n() {
|
|
1806
1953
|
let o, a;
|
|
1807
1954
|
return regeneratorRuntime.wrap(function (n) {
|
|
@@ -1810,16 +1957,16 @@ modules = {
|
|
|
1810
1957
|
case 0:
|
|
1811
1958
|
return (
|
|
1812
1959
|
(o = baseRefUtil.getDSByName(i.formJsonObj.formConfig, e)),
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1960
|
+
(a = new Object({})),
|
|
1961
|
+
baseRefUtil.overwriteObj(a, i.globalDsv),
|
|
1962
|
+
baseRefUtil.overwriteObj(a, t),
|
|
1963
|
+
(n.next = 6),
|
|
1964
|
+
baseRefUtil.runDataSourceRequest(o, a, i, !1, i.$message)
|
|
1818
1965
|
);
|
|
1819
1966
|
case 6:
|
|
1820
|
-
return n.abrupt(
|
|
1967
|
+
return n.abrupt("return", n.sent);
|
|
1821
1968
|
case 7:
|
|
1822
|
-
case
|
|
1969
|
+
case "end":
|
|
1823
1970
|
return n.stop();
|
|
1824
1971
|
}
|
|
1825
1972
|
}, n);
|
|
@@ -1840,10 +1987,12 @@ modules = {
|
|
|
1840
1987
|
},
|
|
1841
1988
|
showDialog: function (e, t) {
|
|
1842
1989
|
let i = baseRefUtil.getContainerWidgetByName(this.widgetList, e);
|
|
1843
|
-
if (e &&
|
|
1990
|
+
if (e && "vf-dialog" === i.type) {
|
|
1844
1991
|
let n = {
|
|
1845
1992
|
widgetList: baseRefUtil.deepClone(i.widgetList),
|
|
1846
|
-
formConfig: baseRefUtil.cloneFormConfigWithoutEventHandler(
|
|
1993
|
+
formConfig: baseRefUtil.cloneFormConfigWithoutEventHandler(
|
|
1994
|
+
this.formConfig
|
|
1995
|
+
),
|
|
1847
1996
|
},
|
|
1848
1997
|
// a = o.a.extend(fe),
|
|
1849
1998
|
a = baseRefUtil.Vue.extend(baseRefUtil.dynamicDialogRender),
|
|
@@ -1854,21 +2003,23 @@ modules = {
|
|
|
1854
2003
|
formData: t || {},
|
|
1855
2004
|
optionData: this.optionData,
|
|
1856
2005
|
globalDsv: this.globalDsv,
|
|
1857
|
-
parentFormRef: this
|
|
2006
|
+
parentFormRef: this,
|
|
1858
2007
|
},
|
|
1859
|
-
components: {VFormRender}
|
|
2008
|
+
components: { VFormRender },
|
|
1860
2009
|
});
|
|
1861
2010
|
document.body.appendChild(l.$mount().$el), l.show();
|
|
1862
2011
|
} else {
|
|
1863
|
-
this.$message.error(this.i18nt(
|
|
2012
|
+
this.$message.error(this.i18nt("render.hint.refNotFound") + e);
|
|
1864
2013
|
}
|
|
1865
2014
|
},
|
|
1866
2015
|
showDrawer: function (e, t) {
|
|
1867
2016
|
let i = baseRefUtil.getContainerWidgetByName(this.widgetList, e);
|
|
1868
|
-
if (i &&
|
|
2017
|
+
if (i && "vf-drawer" === i.type) {
|
|
1869
2018
|
let n = {
|
|
1870
2019
|
widgetList: baseRefUtil.deepClone(i.widgetList),
|
|
1871
|
-
formConfig: baseRefUtil.cloneFormConfigWithoutEventHandler(
|
|
2020
|
+
formConfig: baseRefUtil.cloneFormConfigWithoutEventHandler(
|
|
2021
|
+
this.formConfig
|
|
2022
|
+
),
|
|
1872
2023
|
},
|
|
1873
2024
|
a = o.a.extend(we),
|
|
1874
2025
|
l = new a({
|
|
@@ -1878,14 +2029,13 @@ modules = {
|
|
|
1878
2029
|
formData: t || {},
|
|
1879
2030
|
optionData: this.optionData,
|
|
1880
2031
|
globalDsv: this.globalDsv,
|
|
1881
|
-
parentFormRef: this
|
|
1882
|
-
}
|
|
2032
|
+
parentFormRef: this,
|
|
2033
|
+
},
|
|
1883
2034
|
});
|
|
1884
2035
|
document.body.appendChild(l.$mount().$el), l.show();
|
|
1885
|
-
} else this.$message.error(this.i18nt(
|
|
1886
|
-
},
|
|
1887
|
-
showDialogOrDrawer: function (e) {
|
|
2036
|
+
} else this.$message.error(this.i18nt("render.hint.refNotFound") + e);
|
|
1888
2037
|
},
|
|
2038
|
+
showDialogOrDrawer: function (e) {},
|
|
1889
2039
|
getTableFiledMap(flag) {
|
|
1890
2040
|
let fieldMap = {};
|
|
1891
2041
|
let fJson = this.formJson;
|
|
@@ -1893,22 +2043,22 @@ modules = {
|
|
|
1893
2043
|
grid: "cols",
|
|
1894
2044
|
table: "rows",
|
|
1895
2045
|
"table-cell": "widgetList",
|
|
1896
|
-
|
|
2046
|
+
"h5-table": "rows",
|
|
1897
2047
|
"h5-table-cell": "widgetList",
|
|
1898
2048
|
tab: "tabs",
|
|
1899
2049
|
"tab-pane": "widgetList",
|
|
1900
2050
|
"grid-col": "widgetList",
|
|
1901
2051
|
"vf-box": "widgetList",
|
|
1902
|
-
|
|
1903
|
-
|
|
2052
|
+
card: "widgetList",
|
|
2053
|
+
detail: "panes",
|
|
1904
2054
|
"detail-pane": "widgetList",
|
|
1905
2055
|
"detail-h5": "panes",
|
|
1906
2056
|
"h5-card": "panes",
|
|
1907
2057
|
"h5-card-pane": "widgetList",
|
|
1908
|
-
}
|
|
2058
|
+
};
|
|
1909
2059
|
let loopDo = (widgetList) => {
|
|
1910
2060
|
if (!widgetList) return;
|
|
1911
|
-
widgetList.forEach(widget => {
|
|
2061
|
+
widgetList.forEach((widget) => {
|
|
1912
2062
|
let widgetName = widget.options.name;
|
|
1913
2063
|
let fieldKeyName = this.getFieldKeyName(widget);
|
|
1914
2064
|
if (widget.tableField) {
|
|
@@ -1926,35 +2076,33 @@ modules = {
|
|
|
1926
2076
|
let itemField = itemFieldMap[widget.type];
|
|
1927
2077
|
if (itemField) {
|
|
1928
2078
|
if ("table" == widget.type) {
|
|
1929
|
-
widget[itemField].forEach(item => {
|
|
2079
|
+
widget[itemField].forEach((item) => {
|
|
1930
2080
|
loopDo(item.cols);
|
|
1931
|
-
})
|
|
2081
|
+
});
|
|
1932
2082
|
} else if ("h5-table" == widget.type) {
|
|
1933
|
-
widget[itemField].forEach(item => {
|
|
2083
|
+
widget[itemField].forEach((item) => {
|
|
1934
2084
|
loopDo(item.cols);
|
|
1935
|
-
})
|
|
2085
|
+
});
|
|
1936
2086
|
} else {
|
|
1937
2087
|
loopDo(widget[itemField]);
|
|
1938
2088
|
}
|
|
1939
2089
|
}
|
|
1940
2090
|
}
|
|
1941
2091
|
}
|
|
1942
|
-
})
|
|
1943
|
-
}
|
|
2092
|
+
});
|
|
2093
|
+
};
|
|
1944
2094
|
loopDo(fJson.widgetList);
|
|
1945
2095
|
return fieldMap;
|
|
1946
2096
|
},
|
|
1947
2097
|
getFieldKeyName(widget) {
|
|
1948
2098
|
let o = widget.options.name;
|
|
1949
|
-
return (
|
|
1950
|
-
(widget.options.keyNameEnabled
|
|
1951
|
-
&& widget.options.keyName)
|
|
1952
|
-
|| o
|
|
1953
|
-
);
|
|
2099
|
+
return (widget.options.keyNameEnabled && widget.options.keyName) || o;
|
|
1954
2100
|
},
|
|
1955
2101
|
isVabsearchFlagWidget(widget) {
|
|
1956
2102
|
let type = widget?.type;
|
|
1957
|
-
return
|
|
2103
|
+
return (
|
|
2104
|
+
type == "vabsearch" || type == "singerSearch" || type == "multiSearch"
|
|
2105
|
+
);
|
|
1958
2106
|
},
|
|
1959
2107
|
getFormTemplateTableDTOs() {
|
|
1960
2108
|
let formTemplateTableDTOs = [];
|
|
@@ -1966,24 +2114,24 @@ modules = {
|
|
|
1966
2114
|
grid: "cols",
|
|
1967
2115
|
table: "rows",
|
|
1968
2116
|
"table-cell": "widgetList",
|
|
1969
|
-
|
|
2117
|
+
"h5-table": "rows",
|
|
1970
2118
|
"h5-table-cell": "widgetList",
|
|
1971
2119
|
tab: "tabs",
|
|
1972
2120
|
"tab-pane": "widgetList",
|
|
1973
2121
|
"grid-col": "widgetList",
|
|
1974
2122
|
"vf-box": "widgetList",
|
|
1975
|
-
|
|
1976
|
-
|
|
2123
|
+
card: "widgetList",
|
|
2124
|
+
detail: "panes",
|
|
1977
2125
|
"detail-pane": "widgetList",
|
|
1978
2126
|
"detail-h5": "panes",
|
|
1979
2127
|
"h5-card": "panes",
|
|
1980
2128
|
"h5-card-pane": "widgetList",
|
|
1981
|
-
}
|
|
2129
|
+
};
|
|
1982
2130
|
let loopDo = (widgetList) => {
|
|
1983
2131
|
if (!widgetList) return;
|
|
1984
|
-
widgetList.forEach(widget => {
|
|
2132
|
+
widgetList.forEach((widget) => {
|
|
1985
2133
|
let submitFlag = widget.options.submitFlag || false;
|
|
1986
|
-
if (widget.formItemFlag || widget.type ==
|
|
2134
|
+
if (widget.formItemFlag || widget.type == "data-table") {
|
|
1987
2135
|
if (widget.options.submitFlag === void 0) {
|
|
1988
2136
|
submitFlag = true;
|
|
1989
2137
|
}
|
|
@@ -1992,28 +2140,30 @@ modules = {
|
|
|
1992
2140
|
let uniqueName = widget.options.name;
|
|
1993
2141
|
let widgetName = this.getFieldKeyName(widget);
|
|
1994
2142
|
let entityTableCode = widget.options.entityTableCode;
|
|
1995
|
-
if (
|
|
2143
|
+
if (widget.type == "data-table" || widget.type == "list-h5") {
|
|
1996
2144
|
let isTreeTable = widget.options.isTreeTable || false;
|
|
1997
2145
|
if (submitFlag) {
|
|
1998
|
-
let vailColumns = widget.options.tableColumns.filter(
|
|
2146
|
+
let vailColumns = widget.options.tableColumns.filter(
|
|
2147
|
+
(item) => item.prop && item.label
|
|
2148
|
+
);
|
|
1999
2149
|
let itemFields = [];
|
|
2000
|
-
vailColumns.forEach(item => {
|
|
2001
|
-
if (item.formatS ==
|
|
2150
|
+
vailColumns.forEach((item) => {
|
|
2151
|
+
if (item.formatS == "editSearch") {
|
|
2002
2152
|
itemFields.push({
|
|
2003
2153
|
fieldDesc: item.label + "ID",
|
|
2004
|
-
fieldName: item.prop
|
|
2154
|
+
fieldName: item.prop,
|
|
2005
2155
|
});
|
|
2006
2156
|
let vabSearchName = item?.columnOption?.vabSearchName;
|
|
2007
2157
|
if (vabSearchName) {
|
|
2008
2158
|
itemFields.push({
|
|
2009
2159
|
fieldDesc: item.label,
|
|
2010
|
-
fieldName: vabSearchName
|
|
2160
|
+
fieldName: vabSearchName,
|
|
2011
2161
|
});
|
|
2012
2162
|
}
|
|
2013
2163
|
} else {
|
|
2014
2164
|
itemFields.push({
|
|
2015
2165
|
fieldDesc: item.label,
|
|
2016
|
-
fieldName: item.prop
|
|
2166
|
+
fieldName: item.prop,
|
|
2017
2167
|
});
|
|
2018
2168
|
}
|
|
2019
2169
|
});
|
|
@@ -2026,14 +2176,13 @@ modules = {
|
|
|
2026
2176
|
tableType: 1,
|
|
2027
2177
|
isTreeTable,
|
|
2028
2178
|
uniqueName,
|
|
2029
|
-
formTemplateFieldDTOs: []
|
|
2179
|
+
formTemplateFieldDTOs: [],
|
|
2030
2180
|
};
|
|
2031
2181
|
formTemplateTable.formTemplateFieldDTOs = itemFields;
|
|
2032
2182
|
formTemplateTableDTOs.push(formTemplateTable);
|
|
2033
2183
|
}
|
|
2034
2184
|
}
|
|
2035
|
-
|
|
2036
|
-
} else if (widget.type == 'vabUpload') {
|
|
2185
|
+
} else if (widget.type == "vabUpload") {
|
|
2037
2186
|
if (submitFlag) {
|
|
2038
2187
|
let formTemplateTable = {
|
|
2039
2188
|
tableAlias: widgetName,
|
|
@@ -2044,7 +2193,7 @@ modules = {
|
|
|
2044
2193
|
};
|
|
2045
2194
|
formTemplateTableDTOs.push(formTemplateTable);
|
|
2046
2195
|
}
|
|
2047
|
-
} else if (widget.type ==
|
|
2196
|
+
} else if (widget.type == "project-tag") {
|
|
2048
2197
|
if (submitFlag) {
|
|
2049
2198
|
let formTemplateTable = {
|
|
2050
2199
|
tableAlias: widgetName,
|
|
@@ -2055,7 +2204,7 @@ modules = {
|
|
|
2055
2204
|
};
|
|
2056
2205
|
formTemplateTableDTOs.push(formTemplateTable);
|
|
2057
2206
|
}
|
|
2058
|
-
} else if (widget.type ==
|
|
2207
|
+
} else if (widget.type == "table2") {
|
|
2059
2208
|
if (submitFlag) {
|
|
2060
2209
|
let formTemplateTable = {
|
|
2061
2210
|
tableAlias: widgetName,
|
|
@@ -2070,14 +2219,14 @@ modules = {
|
|
|
2070
2219
|
if (submitFlag) {
|
|
2071
2220
|
fields.push({
|
|
2072
2221
|
fieldDesc: widget.options.label + "ID",
|
|
2073
|
-
fieldName: widgetName
|
|
2074
|
-
})
|
|
2222
|
+
fieldName: widgetName,
|
|
2223
|
+
});
|
|
2075
2224
|
let vabSearchName = widget.options.vabSearchName;
|
|
2076
2225
|
if (vabSearchName) {
|
|
2077
2226
|
fields.push({
|
|
2078
2227
|
fieldDesc: widget.options.label,
|
|
2079
2228
|
fieldName: vabSearchName,
|
|
2080
|
-
name: vabSearchName
|
|
2229
|
+
name: vabSearchName,
|
|
2081
2230
|
});
|
|
2082
2231
|
}
|
|
2083
2232
|
}
|
|
@@ -2086,37 +2235,37 @@ modules = {
|
|
|
2086
2235
|
fields.push({
|
|
2087
2236
|
fieldDesc: widget.options.label,
|
|
2088
2237
|
fieldName: widgetName,
|
|
2089
|
-
name: widget.options.name
|
|
2090
|
-
})
|
|
2238
|
+
name: widget.options.name,
|
|
2239
|
+
});
|
|
2091
2240
|
}
|
|
2092
2241
|
} else {
|
|
2093
2242
|
if (widget.category == "container") {
|
|
2094
2243
|
let itemField = itemFieldMap[widget.type];
|
|
2095
2244
|
if (itemField) {
|
|
2096
2245
|
if ("table" == widget.type) {
|
|
2097
|
-
widget[itemField].forEach(item => {
|
|
2246
|
+
widget[itemField].forEach((item) => {
|
|
2098
2247
|
loopDo(item.cols);
|
|
2099
|
-
})
|
|
2248
|
+
});
|
|
2100
2249
|
} else if ("h5-table" == widget.type) {
|
|
2101
|
-
widget[itemField].forEach(item => {
|
|
2250
|
+
widget[itemField].forEach((item) => {
|
|
2102
2251
|
loopDo(item.cols);
|
|
2103
|
-
})
|
|
2252
|
+
});
|
|
2104
2253
|
} else {
|
|
2105
2254
|
loopDo(widget[itemField]);
|
|
2106
2255
|
}
|
|
2107
2256
|
}
|
|
2108
2257
|
}
|
|
2109
2258
|
}
|
|
2110
|
-
})
|
|
2111
|
-
}
|
|
2259
|
+
});
|
|
2260
|
+
};
|
|
2112
2261
|
loopDo(fJson.widgetList);
|
|
2113
2262
|
if (fields.length) {
|
|
2114
2263
|
let formTemplateTable = {
|
|
2115
2264
|
tableAlias: null,
|
|
2116
2265
|
formCode: formCode,
|
|
2117
2266
|
tableType: 0,
|
|
2118
|
-
formTemplateFieldDTOs: fields
|
|
2119
|
-
}
|
|
2267
|
+
formTemplateFieldDTOs: fields,
|
|
2268
|
+
};
|
|
2120
2269
|
formTemplateTableDTOs.push(formTemplateTable);
|
|
2121
2270
|
}
|
|
2122
2271
|
|
|
@@ -2131,40 +2280,48 @@ modules = {
|
|
|
2131
2280
|
let formConfig = this.formConfig;
|
|
2132
2281
|
return new Promise((resolve, reject) => {
|
|
2133
2282
|
let res = {};
|
|
2134
|
-
this.getFormData()
|
|
2135
|
-
|
|
2136
|
-
let
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
let newFormData = {};
|
|
2142
|
-
formTemplateTableDTOs.forEach(formTemplateTableDTO => {
|
|
2143
|
-
let tableAlias = formTemplateTableDTO.tableType == 0 ? formCode : formTemplateTableDTO.tableAlias;
|
|
2144
|
-
if (formTemplateTableDTO.tableType == 0) {
|
|
2145
|
-
let item = this.$baseLodash.cloneDeep(this.formData);
|
|
2146
|
-
Object.keys(item).forEach(key => {
|
|
2147
|
-
if (Array.isArray(item[key])) {
|
|
2148
|
-
delete item[key];
|
|
2149
|
-
}
|
|
2150
|
-
})
|
|
2151
|
-
formTemplateTableDTO.formTemplateFieldDTOs.forEach(formTemplateFieldDTO => {
|
|
2152
|
-
item[formTemplateFieldDTO.fieldName] = res[formTemplateFieldDTO.fieldName];
|
|
2153
|
-
})
|
|
2154
|
-
newFormData[tableAlias] = item;
|
|
2155
|
-
} else {
|
|
2156
|
-
newFormData[tableAlias] = formDataModel[formTemplateTableDTO.name]
|
|
2283
|
+
this.getFormData()
|
|
2284
|
+
.then((formData, b) => {
|
|
2285
|
+
for (let key in formData) {
|
|
2286
|
+
let tableField = tableFiledMap[key];
|
|
2287
|
+
if (tableField) {
|
|
2288
|
+
res[tableField] = formData[key];
|
|
2289
|
+
}
|
|
2157
2290
|
}
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2291
|
+
let newFormData = {};
|
|
2292
|
+
formTemplateTableDTOs.forEach((formTemplateTableDTO) => {
|
|
2293
|
+
let tableAlias =
|
|
2294
|
+
formTemplateTableDTO.tableType == 0
|
|
2295
|
+
? formCode
|
|
2296
|
+
: formTemplateTableDTO.tableAlias;
|
|
2297
|
+
if (formTemplateTableDTO.tableType == 0) {
|
|
2298
|
+
let item = this.$baseLodash.cloneDeep(this.formData);
|
|
2299
|
+
Object.keys(item).forEach((key) => {
|
|
2300
|
+
if (Array.isArray(item[key])) {
|
|
2301
|
+
delete item[key];
|
|
2302
|
+
}
|
|
2303
|
+
});
|
|
2304
|
+
formTemplateTableDTO.formTemplateFieldDTOs.forEach(
|
|
2305
|
+
(formTemplateFieldDTO) => {
|
|
2306
|
+
item[formTemplateFieldDTO.fieldName] =
|
|
2307
|
+
res[formTemplateFieldDTO.fieldName];
|
|
2308
|
+
}
|
|
2309
|
+
);
|
|
2310
|
+
newFormData[tableAlias] = item;
|
|
2311
|
+
} else {
|
|
2312
|
+
newFormData[tableAlias] =
|
|
2313
|
+
formDataModel[formTemplateTableDTO.name];
|
|
2314
|
+
}
|
|
2315
|
+
});
|
|
2316
|
+
/*if (formConfig.formType === 1) {
|
|
2161
2317
|
newFormData = this.getSysFormData(newFormData);
|
|
2162
2318
|
}*/
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2319
|
+
resolve(newFormData);
|
|
2320
|
+
})
|
|
2321
|
+
.catch((msg) => {
|
|
2322
|
+
reject(msg);
|
|
2323
|
+
});
|
|
2324
|
+
});
|
|
2168
2325
|
},
|
|
2169
2326
|
getSubData2(flag) {
|
|
2170
2327
|
let that = this;
|
|
@@ -2185,61 +2342,79 @@ modules = {
|
|
|
2185
2342
|
}
|
|
2186
2343
|
|
|
2187
2344
|
let newFormData = {};
|
|
2188
|
-
formTemplateTableDTOs.forEach(formTemplateTableDTO => {
|
|
2189
|
-
let tableAlias =
|
|
2345
|
+
formTemplateTableDTOs.forEach((formTemplateTableDTO) => {
|
|
2346
|
+
let tableAlias =
|
|
2347
|
+
formTemplateTableDTO.tableType == 0
|
|
2348
|
+
? formCode
|
|
2349
|
+
: formTemplateTableDTO.tableAlias;
|
|
2190
2350
|
if (formTemplateTableDTO.tableType == 0) {
|
|
2191
2351
|
let item = this.$baseLodash.cloneDeep(this.currentFormData);
|
|
2192
|
-
Object.keys(item).forEach(key => {
|
|
2352
|
+
Object.keys(item).forEach((key) => {
|
|
2193
2353
|
if (Array.isArray(item[key])) {
|
|
2194
2354
|
delete item[key];
|
|
2195
2355
|
}
|
|
2196
|
-
})
|
|
2197
|
-
formTemplateTableDTO.formTemplateFieldDTOs.forEach(
|
|
2198
|
-
|
|
2199
|
-
|
|
2356
|
+
});
|
|
2357
|
+
formTemplateTableDTO.formTemplateFieldDTOs.forEach(
|
|
2358
|
+
(formTemplateFieldDTO) => {
|
|
2359
|
+
item[formTemplateFieldDTO.fieldName] =
|
|
2360
|
+
res[formTemplateFieldDTO.fieldName];
|
|
2361
|
+
}
|
|
2362
|
+
);
|
|
2200
2363
|
newFormData[tableAlias] = item ?? null;
|
|
2201
2364
|
} else {
|
|
2202
2365
|
if (formTemplateTableDTO.isTreeTable) {
|
|
2203
|
-
let tableTarget = this.getWidgetRef(
|
|
2204
|
-
|
|
2366
|
+
let tableTarget = this.getWidgetRef(
|
|
2367
|
+
formTemplateTableDTO.uniqueName
|
|
2368
|
+
);
|
|
2369
|
+
let $grid = tableTarget.getGridTable();
|
|
2205
2370
|
let parentField = $grid.treeConfig.parentField;
|
|
2206
2371
|
let treeTaBm = newFormData.treeTaBm || [];
|
|
2207
2372
|
treeTaBm.push(formTemplateTableDTO.tableAlias);
|
|
2208
2373
|
newFormData.treeTaBm = treeTaBm;
|
|
2209
|
-
let tableDatas = this.$baseLodash.cloneDeep(
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2374
|
+
let tableDatas = this.$baseLodash.cloneDeep(
|
|
2375
|
+
formDataModel[formTemplateTableDTO.name] || []
|
|
2376
|
+
);
|
|
2377
|
+
tableDatas.forEach((tableData) => {
|
|
2378
|
+
if (
|
|
2379
|
+
tableData.id &&
|
|
2380
|
+
tableData.id.startsWith &&
|
|
2381
|
+
tableData.id.startsWith("row_")
|
|
2382
|
+
) {
|
|
2383
|
+
tableData.id = null;
|
|
2213
2384
|
}
|
|
2214
|
-
if (
|
|
2385
|
+
if (
|
|
2386
|
+
tableData[parentField] &&
|
|
2387
|
+
tableData[parentField].startsWith &&
|
|
2388
|
+
tableData[parentField].startsWith("row_")
|
|
2389
|
+
) {
|
|
2215
2390
|
tableData[parentField] = null;
|
|
2216
2391
|
}
|
|
2217
|
-
if (tableData[parentField] === undefined)
|
|
2218
|
-
|
|
2219
|
-
|
|
2392
|
+
if (tableData[parentField] === undefined)
|
|
2393
|
+
tableData[parentField] = null;
|
|
2394
|
+
});
|
|
2395
|
+
tableDatas = tableDatas.filter((item) => {
|
|
2220
2396
|
return item[parentField] === 0 || item[parentField] === null;
|
|
2221
|
-
})
|
|
2397
|
+
});
|
|
2222
2398
|
newFormData[tableAlias] = tableDatas;
|
|
2223
2399
|
} else {
|
|
2224
|
-
newFormData[tableAlias] =
|
|
2400
|
+
newFormData[tableAlias] =
|
|
2401
|
+
formDataModel[formTemplateTableDTO.name] ?? null;
|
|
2225
2402
|
}
|
|
2226
|
-
|
|
2227
2403
|
}
|
|
2228
|
-
|
|
2229
|
-
})
|
|
2404
|
+
});
|
|
2230
2405
|
if (flag) {
|
|
2231
2406
|
newFormData = this.getSysFormData(newFormData);
|
|
2232
2407
|
}
|
|
2233
2408
|
return newFormData;
|
|
2234
2409
|
},
|
|
2235
2410
|
getSysFormData(realFormData) {
|
|
2236
|
-
let formData0 = this.$baseLodash.cloneDeep(realFormData)
|
|
2411
|
+
let formData0 = this.$baseLodash.cloneDeep(realFormData);
|
|
2237
2412
|
let formConfig = this.formConfig;
|
|
2238
|
-
let reportTemplate = this.reportTemplate
|
|
2413
|
+
let reportTemplate = this.reportTemplate;
|
|
2239
2414
|
let formCode = reportTemplate.formCode;
|
|
2240
|
-
let formData = this.$baseLodash.cloneDeep(formData0[formCode])
|
|
2415
|
+
let formData = this.$baseLodash.cloneDeep(formData0[formCode]);
|
|
2241
2416
|
if (formData) {
|
|
2242
|
-
Object.keys(formData0).forEach(key => {
|
|
2417
|
+
Object.keys(formData0).forEach((key) => {
|
|
2243
2418
|
if (key != formCode) {
|
|
2244
2419
|
formData[key] = formData0[key];
|
|
2245
2420
|
}
|
|
@@ -2251,19 +2426,19 @@ modules = {
|
|
|
2251
2426
|
getRealFormData(option) {
|
|
2252
2427
|
let formCode = this.reportTemplate.formCode;
|
|
2253
2428
|
let subData = this.getSubData2();
|
|
2254
|
-
let realFormData = {}
|
|
2429
|
+
let realFormData = {};
|
|
2255
2430
|
if (option) {
|
|
2256
|
-
Object.keys(option).forEach(key => {
|
|
2431
|
+
Object.keys(option).forEach((key) => {
|
|
2257
2432
|
realFormData[option[key]] = subData[key];
|
|
2258
|
-
})
|
|
2433
|
+
});
|
|
2259
2434
|
} else {
|
|
2260
2435
|
realFormData = subData;
|
|
2261
2436
|
}
|
|
2262
2437
|
return realFormData;
|
|
2263
2438
|
},
|
|
2264
2439
|
reloadForm(option) {
|
|
2265
|
-
let target1 = this.$attrs[
|
|
2266
|
-
let target2 = target1?.$attrs[
|
|
2440
|
+
let target1 = this.$attrs["parent-target"];
|
|
2441
|
+
let target2 = target1?.$attrs["parent-target"];
|
|
2267
2442
|
let target = !target2 ? this : target1;
|
|
2268
2443
|
/* if (this.$attrs['reloadDialog'] !== true) {
|
|
2269
2444
|
target = this.$attrs['parent-target'];
|
|
@@ -2278,7 +2453,7 @@ modules = {
|
|
|
2278
2453
|
},
|
|
2279
2454
|
saveForm(callback) {
|
|
2280
2455
|
this.validateForm(() => {
|
|
2281
|
-
this.getSubData().then(formData => {
|
|
2456
|
+
this.getSubData().then((formData) => {
|
|
2282
2457
|
let reportTemplate = this.reportTemplate || {};
|
|
2283
2458
|
let formConfig = this.formConfig;
|
|
2284
2459
|
let realFormData = Object.assign({}, formData);
|
|
@@ -2289,60 +2464,59 @@ modules = {
|
|
|
2289
2464
|
formCode: reportTemplate.formCode,
|
|
2290
2465
|
formVersion: reportTemplate.formVersion,
|
|
2291
2466
|
// insUuid: reportTemplate.insUuid,
|
|
2292
|
-
data: realFormData
|
|
2293
|
-
}
|
|
2467
|
+
data: realFormData,
|
|
2468
|
+
};
|
|
2294
2469
|
|
|
2295
|
-
this.$baseConfirm(
|
|
2470
|
+
this.$baseConfirm("您确定要保存吗?").then(() => {
|
|
2296
2471
|
let saveConfig = formConfig.saveConfig || {};
|
|
2297
2472
|
this.formHttp({
|
|
2298
2473
|
options: saveConfig,
|
|
2299
2474
|
params: reqData,
|
|
2300
2475
|
targetFormTemplate: reportTemplate,
|
|
2301
|
-
success: res => {
|
|
2476
|
+
success: (res) => {
|
|
2302
2477
|
this.$message({
|
|
2303
2478
|
message: res.content,
|
|
2304
|
-
type:
|
|
2479
|
+
type: "success",
|
|
2305
2480
|
duration: 500,
|
|
2306
|
-
onClose: t => {
|
|
2307
|
-
callback && callback(res)
|
|
2308
|
-
this.$parent.$emit(
|
|
2481
|
+
onClose: (t) => {
|
|
2482
|
+
callback && callback(res);
|
|
2483
|
+
this.$parent.$emit("update:object_foreign_id", res.objx);
|
|
2309
2484
|
// this.$parent.$attrs.wfParam.submitCallback();
|
|
2310
|
-
this.$parent.$baseReload()
|
|
2311
|
-
}
|
|
2485
|
+
this.$parent.$baseReload();
|
|
2486
|
+
},
|
|
2312
2487
|
});
|
|
2313
|
-
}
|
|
2314
|
-
})
|
|
2315
|
-
})
|
|
2488
|
+
},
|
|
2489
|
+
});
|
|
2490
|
+
});
|
|
2316
2491
|
});
|
|
2317
|
-
})
|
|
2492
|
+
});
|
|
2318
2493
|
},
|
|
2319
2494
|
submitForm(callback) {
|
|
2320
2495
|
let reportTemplate = this.reportTemplate || {};
|
|
2321
2496
|
let insUuid = reportTemplate.insUuid;
|
|
2322
2497
|
if (insUuid) {
|
|
2323
|
-
this.$baseConfirm(
|
|
2498
|
+
this.$baseConfirm("您确定要提交吗?").then(() => {
|
|
2324
2499
|
this.$http({
|
|
2325
2500
|
url: USER_PREFIX + `/form_ins/submit`,
|
|
2326
2501
|
method: `post`,
|
|
2327
|
-
data: {stringOne: insUuid},
|
|
2502
|
+
data: { stringOne: insUuid },
|
|
2328
2503
|
isLoading: true,
|
|
2329
2504
|
// loadingTarget: document.body,
|
|
2330
2505
|
modalStrictly: true,
|
|
2331
|
-
success: res => {
|
|
2506
|
+
success: (res) => {
|
|
2332
2507
|
this.$message({
|
|
2333
2508
|
message: res.content,
|
|
2334
|
-
type:
|
|
2509
|
+
type: "success",
|
|
2335
2510
|
duration: 500,
|
|
2336
|
-
onClose: t => {
|
|
2511
|
+
onClose: (t) => {
|
|
2337
2512
|
callback && callback(res);
|
|
2338
2513
|
// this.$parent.$attrs.wfParam.submitCallback();
|
|
2339
|
-
this.$parent.$baseReload()
|
|
2340
|
-
}
|
|
2514
|
+
this.$parent.$baseReload();
|
|
2515
|
+
},
|
|
2341
2516
|
});
|
|
2342
|
-
|
|
2343
|
-
}
|
|
2517
|
+
},
|
|
2344
2518
|
});
|
|
2345
|
-
})
|
|
2519
|
+
});
|
|
2346
2520
|
}
|
|
2347
2521
|
},
|
|
2348
2522
|
jumpFormView(row) {
|
|
@@ -2364,10 +2538,16 @@ modules = {
|
|
|
2364
2538
|
return res;
|
|
2365
2539
|
},
|
|
2366
2540
|
getContainerByType(typeName) {
|
|
2367
|
-
let allWidgets = [
|
|
2541
|
+
let allWidgets = [
|
|
2542
|
+
...containers,
|
|
2543
|
+
...basicFields,
|
|
2544
|
+
...advancedFields,
|
|
2545
|
+
...customFields,
|
|
2546
|
+
...businessFields,
|
|
2547
|
+
];
|
|
2368
2548
|
let foundCon = null;
|
|
2369
|
-
allWidgets.forEach(con => {
|
|
2370
|
-
if (!!con.category && !!con.type &&
|
|
2549
|
+
allWidgets.forEach((con) => {
|
|
2550
|
+
if (!!con.category && !!con.type && con.type === typeName) {
|
|
2371
2551
|
foundCon = con;
|
|
2372
2552
|
}
|
|
2373
2553
|
});
|
|
@@ -2375,10 +2555,16 @@ modules = {
|
|
|
2375
2555
|
return foundCon;
|
|
2376
2556
|
},
|
|
2377
2557
|
getFieldWidgetByType(typeName) {
|
|
2378
|
-
let allWidgets = [
|
|
2558
|
+
let allWidgets = [
|
|
2559
|
+
...containers,
|
|
2560
|
+
...basicFields,
|
|
2561
|
+
...advancedFields,
|
|
2562
|
+
...customFields,
|
|
2563
|
+
...businessFields,
|
|
2564
|
+
];
|
|
2379
2565
|
let foundWidget = null;
|
|
2380
|
-
allWidgets.forEach(widget => {
|
|
2381
|
-
if (!!!widget.category && !!widget.type &&
|
|
2566
|
+
allWidgets.forEach((widget) => {
|
|
2567
|
+
if (!!!widget.category && !!widget.type && widget.type === typeName) {
|
|
2382
2568
|
foundWidget = widget;
|
|
2383
2569
|
}
|
|
2384
2570
|
});
|
|
@@ -2387,164 +2573,167 @@ modules = {
|
|
|
2387
2573
|
},
|
|
2388
2574
|
copyNewFieldWidget(origin) {
|
|
2389
2575
|
let newWidget = deepClone(origin);
|
|
2390
|
-
newWidget.type =
|
|
2576
|
+
newWidget.type = newWidget.targetType || newWidget.type;
|
|
2391
2577
|
let tempId = generateId();
|
|
2392
|
-
newWidget.id = newWidget.type.replace(/-/g,
|
|
2393
|
-
return newWidget
|
|
2394
|
-
},
|
|
2395
|
-
getColumnWidget(row, isEdit){
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
}
|
|
2404
|
-
if (row.editColumnOption) {
|
|
2405
|
-
let fieldWidget = this.copyNewFieldWidget(
|
|
2406
|
-
this.getFieldWidgetByType(type)
|
|
2407
|
-
);
|
|
2408
|
-
fieldWidget.options = row.editColumnOption;
|
|
2409
|
-
return fieldWidget
|
|
2410
|
-
}
|
|
2411
|
-
}else{
|
|
2412
|
-
if(row.widget){
|
|
2413
|
-
return row.widget;
|
|
2414
|
-
}
|
|
2415
|
-
if (row.columnOption) {
|
|
2416
|
-
let fieldWidget = this.copyNewFieldWidget(
|
|
2417
|
-
this.getFieldWidgetByType(type)
|
|
2418
|
-
);
|
|
2419
|
-
fieldWidget.options = row.columnOption;
|
|
2420
|
-
return fieldWidget
|
|
2421
|
-
}
|
|
2578
|
+
newWidget.id = newWidget.type.replace(/-/g, "") + tempId;
|
|
2579
|
+
return newWidget;
|
|
2580
|
+
},
|
|
2581
|
+
getColumnWidget(row, isEdit) {
|
|
2582
|
+
//获取
|
|
2583
|
+
let formatS = isEdit ? row.editFormatS : row.formatS;
|
|
2584
|
+
let type = columnFormatMap[formatS];
|
|
2585
|
+
if (!type) return null;
|
|
2586
|
+
if (isEdit) {
|
|
2587
|
+
if (row.editWidget) {
|
|
2588
|
+
return row.editWidget;
|
|
2422
2589
|
}
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
createColumnWidget(row, isEdit){
|
|
2426
|
-
let formatS = isEdit ? row.editFormatS : row.formatS;
|
|
2427
|
-
let type = columnFormatMap[formatS];
|
|
2428
|
-
if(!type)return null;
|
|
2429
|
-
|
|
2430
|
-
let columnSelectedWidget = null;
|
|
2431
|
-
if (type) {
|
|
2432
|
-
columnSelectedWidget = this.copyNewFieldWidget(
|
|
2590
|
+
if (row.editColumnOption) {
|
|
2591
|
+
let fieldWidget = this.copyNewFieldWidget(
|
|
2433
2592
|
this.getFieldWidgetByType(type)
|
|
2434
2593
|
);
|
|
2594
|
+
fieldWidget.options = row.editColumnOption;
|
|
2595
|
+
return fieldWidget;
|
|
2596
|
+
}
|
|
2597
|
+
} else {
|
|
2598
|
+
if (row.widget) {
|
|
2599
|
+
return row.widget;
|
|
2600
|
+
}
|
|
2601
|
+
if (row.columnOption) {
|
|
2602
|
+
let fieldWidget = this.copyNewFieldWidget(
|
|
2603
|
+
this.getFieldWidgetByType(type)
|
|
2604
|
+
);
|
|
2605
|
+
fieldWidget.options = row.columnOption;
|
|
2606
|
+
return fieldWidget;
|
|
2607
|
+
}
|
|
2608
|
+
}
|
|
2609
|
+
return this.createColumnWidget(row, isEdit);
|
|
2610
|
+
},
|
|
2611
|
+
createColumnWidget(row, isEdit) {
|
|
2612
|
+
let formatS = isEdit ? row.editFormatS : row.formatS;
|
|
2613
|
+
let type = columnFormatMap[formatS];
|
|
2614
|
+
if (!type) return null;
|
|
2435
2615
|
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2616
|
+
let columnSelectedWidget = null;
|
|
2617
|
+
if (type) {
|
|
2618
|
+
columnSelectedWidget = this.copyNewFieldWidget(
|
|
2619
|
+
this.getFieldWidgetByType(type)
|
|
2620
|
+
);
|
|
2439
2621
|
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
|
|
2443
|
-
columnSelectedWidget.options.labelHidden = true;
|
|
2444
|
-
columnSelectedWidget.options.hiddenByWf = true;
|
|
2445
|
-
columnSelectedWidget.options.onClick =
|
|
2446
|
-
"let tableParam = this.tableParam;\nlet tableRef = this.getWidgetRef(this.parentWidget.options.name);\ntableRef.deleteRow(tableParam.row,tableParam.rowIndex);";
|
|
2447
|
-
} else if ("editButton" == formatS) {
|
|
2448
|
-
columnSelectedWidget.options.prefixIcon = "el-icon-edit";
|
|
2449
|
-
columnSelectedWidget.options.label = "查看";
|
|
2450
|
-
columnSelectedWidget.options.labelHidden = true;
|
|
2451
|
-
columnSelectedWidget.options.onClick =
|
|
2452
|
-
"let tableParam = this.tableParam;\nlet tableRef = this.getWidgetRef(this.parentWidget.options.name);\ntableRef.openEditDialog(tableParam.row)";
|
|
2453
|
-
} else if ("addSiblingEditRow" == formatS) {
|
|
2454
|
-
columnSelectedWidget.options.prefixIcon = "el-icon-plus";
|
|
2455
|
-
columnSelectedWidget.options.label = "新增兄弟节点";
|
|
2456
|
-
columnSelectedWidget.options.labelHidden = false;
|
|
2457
|
-
columnSelectedWidget.options.onClick =
|
|
2458
|
-
"let tableParam = this.tableParam;\nthis.getParentTarget().addSiblingTreeRow(null,tableParam);";
|
|
2459
|
-
} else if ("addChildTreeRow" == formatS) {
|
|
2460
|
-
columnSelectedWidget.options.prefixIcon = "el-icon-plus";
|
|
2461
|
-
columnSelectedWidget.options.label = "新增子节点";
|
|
2462
|
-
columnSelectedWidget.options.labelHidden = false;
|
|
2463
|
-
columnSelectedWidget.options.onClick =
|
|
2464
|
-
"let tableParam = this.tableParam;\nthis.getParentTarget().addChildTreeRow(null,tableParam);";
|
|
2465
|
-
} else if ("moveUpRow" == formatS) {
|
|
2466
|
-
columnSelectedWidget.options.label = "↑上移";
|
|
2467
|
-
columnSelectedWidget.options.labelHidden = false;
|
|
2468
|
-
columnSelectedWidget.options.onClick =
|
|
2469
|
-
"let tableParam = this.tableParam;\nthis.getParentTarget().moveUpRow(tableParam);";
|
|
2470
|
-
} else if ("moveDownRow" == formatS) {
|
|
2471
|
-
columnSelectedWidget.options.label = "↓下移";
|
|
2472
|
-
columnSelectedWidget.options.labelHidden = false;
|
|
2473
|
-
columnSelectedWidget.options.onClick =
|
|
2474
|
-
"let tableParam = this.tableParam;\nthis.getParentTarget().moveDownRow(tableParam);";
|
|
2475
|
-
} else if ("removeTreeRow" == formatS) {
|
|
2476
|
-
columnSelectedWidget.options.prefixIcon = "el-icon-delete";
|
|
2477
|
-
columnSelectedWidget.options.label = "删除";
|
|
2478
|
-
columnSelectedWidget.options.labelHidden = true;
|
|
2479
|
-
columnSelectedWidget.options.onClick =
|
|
2480
|
-
"let tableParam = this.tableParam;\nthis.getParentTarget().removeTreeRow(tableParam);";
|
|
2481
|
-
}
|
|
2622
|
+
if (columnSelectedWidget.options.hasOwnProperty("required")) {
|
|
2623
|
+
columnSelectedWidget.options.required = row.required || false;
|
|
2624
|
+
}
|
|
2482
2625
|
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
2626
|
+
if ("editDelete" == formatS) {
|
|
2627
|
+
columnSelectedWidget.options.prefixIcon = "el-icon-delete";
|
|
2628
|
+
columnSelectedWidget.options.label = "删除";
|
|
2629
|
+
columnSelectedWidget.options.labelHidden = true;
|
|
2630
|
+
columnSelectedWidget.options.hiddenByWf = true;
|
|
2631
|
+
columnSelectedWidget.options.onClick =
|
|
2632
|
+
"let tableParam = this.tableParam;\nlet tableRef = this.getWidgetRef(this.parentWidget.options.name);\ntableRef.deleteRow(tableParam.row,tableParam.rowIndex);";
|
|
2633
|
+
} else if ("editButton" == formatS) {
|
|
2634
|
+
columnSelectedWidget.options.prefixIcon = "el-icon-edit";
|
|
2635
|
+
columnSelectedWidget.options.label = "查看";
|
|
2636
|
+
columnSelectedWidget.options.labelHidden = true;
|
|
2637
|
+
columnSelectedWidget.options.onClick =
|
|
2638
|
+
"let tableParam = this.tableParam;\nlet tableRef = this.getWidgetRef(this.parentWidget.options.name);\ntableRef.openEditDialog(tableParam.row)";
|
|
2639
|
+
} else if ("addSiblingEditRow" == formatS) {
|
|
2640
|
+
columnSelectedWidget.options.prefixIcon = "el-icon-plus";
|
|
2641
|
+
columnSelectedWidget.options.label = "新增兄弟节点";
|
|
2642
|
+
columnSelectedWidget.options.labelHidden = false;
|
|
2643
|
+
columnSelectedWidget.options.onClick =
|
|
2644
|
+
"let tableParam = this.tableParam;\nthis.getParentTarget().addSiblingTreeRow(null,tableParam);";
|
|
2645
|
+
} else if ("addChildTreeRow" == formatS) {
|
|
2646
|
+
columnSelectedWidget.options.prefixIcon = "el-icon-plus";
|
|
2647
|
+
columnSelectedWidget.options.label = "新增子节点";
|
|
2648
|
+
columnSelectedWidget.options.labelHidden = false;
|
|
2649
|
+
columnSelectedWidget.options.onClick =
|
|
2650
|
+
"let tableParam = this.tableParam;\nthis.getParentTarget().addChildTreeRow(null,tableParam);";
|
|
2651
|
+
} else if ("moveUpRow" == formatS) {
|
|
2652
|
+
columnSelectedWidget.options.label = "↑上移";
|
|
2653
|
+
columnSelectedWidget.options.labelHidden = false;
|
|
2654
|
+
columnSelectedWidget.options.onClick =
|
|
2655
|
+
"let tableParam = this.tableParam;\nthis.getParentTarget().moveUpRow(tableParam);";
|
|
2656
|
+
} else if ("moveDownRow" == formatS) {
|
|
2657
|
+
columnSelectedWidget.options.label = "↓下移";
|
|
2658
|
+
columnSelectedWidget.options.labelHidden = false;
|
|
2659
|
+
columnSelectedWidget.options.onClick =
|
|
2660
|
+
"let tableParam = this.tableParam;\nthis.getParentTarget().moveDownRow(tableParam);";
|
|
2661
|
+
} else if ("removeTreeRow" == formatS) {
|
|
2662
|
+
columnSelectedWidget.options.prefixIcon = "el-icon-delete";
|
|
2663
|
+
columnSelectedWidget.options.label = "删除";
|
|
2664
|
+
columnSelectedWidget.options.labelHidden = true;
|
|
2665
|
+
columnSelectedWidget.options.onClick =
|
|
2666
|
+
"let tableParam = this.tableParam;\nthis.getParentTarget().removeTreeRow(tableParam);";
|
|
2667
|
+
}
|
|
2489
2668
|
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2669
|
+
if (columnSelectedWidget.options.hasOwnProperty("keyName")) {
|
|
2670
|
+
columnSelectedWidget.options.keyName = row.prop;
|
|
2671
|
+
columnSelectedWidget.options.keyNameEnabled = true;
|
|
2672
|
+
} else {
|
|
2673
|
+
columnSelectedWidget.options.name = row.prop;
|
|
2494
2674
|
}
|
|
2495
|
-
|
|
2496
|
-
|
|
2675
|
+
|
|
2676
|
+
if (type != "button" && type != "a-link") {
|
|
2677
|
+
columnSelectedWidget.options.label = row.label;
|
|
2678
|
+
columnSelectedWidget.options.labelHidden = true;
|
|
2679
|
+
}
|
|
2680
|
+
}
|
|
2681
|
+
return columnSelectedWidget;
|
|
2682
|
+
},
|
|
2497
2683
|
doScriptAccess(scriptUuid, callback) {
|
|
2498
2684
|
if (scriptUuid) {
|
|
2499
2685
|
let scripts = this.formJson.formConfig.scriptList || [];
|
|
2500
|
-
let item = scripts.find(item => item.scriptUuid == scriptUuid);
|
|
2686
|
+
let item = scripts.find((item) => item.scriptUuid == scriptUuid);
|
|
2501
2687
|
if (item && item.enabled) {
|
|
2502
2688
|
let path = "";
|
|
2503
2689
|
let reportTemplate = this.getReportTemplate();
|
|
2504
2690
|
let formCode = reportTemplate.formCode;
|
|
2505
|
-
let e = new Function(
|
|
2691
|
+
let e = new Function("formCode", item.scriptParams);
|
|
2506
2692
|
let params = e.call(this, formCode);
|
|
2507
2693
|
this.$http({
|
|
2508
2694
|
url: path,
|
|
2509
2695
|
method: `post`,
|
|
2510
2696
|
data: {
|
|
2511
|
-
...params
|
|
2697
|
+
...params,
|
|
2512
2698
|
},
|
|
2513
2699
|
isLoading: true,
|
|
2514
2700
|
// loadingTarget: document.body,
|
|
2515
2701
|
modalStrictly: true,
|
|
2516
|
-
success: res => {
|
|
2517
|
-
let e1 = new Function(
|
|
2702
|
+
success: (res) => {
|
|
2703
|
+
let e1 = new Function("resultMsg", item.onScriptSuccess);
|
|
2518
2704
|
e1.call(this, res);
|
|
2519
2705
|
callback && callback(res && res.objx ? res.objx : []);
|
|
2520
|
-
}
|
|
2706
|
+
},
|
|
2521
2707
|
});
|
|
2522
2708
|
}
|
|
2523
2709
|
}
|
|
2524
2710
|
},
|
|
2525
2711
|
validate(callback) {
|
|
2526
|
-
this.$refs[
|
|
2527
|
-
|
|
2528
|
-
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
|
|
2533
|
-
|
|
2712
|
+
this.$refs["renderForm"].$baseValidate(
|
|
2713
|
+
(valid, obj) => {
|
|
2714
|
+
if (!valid) {
|
|
2715
|
+
let message = null;
|
|
2716
|
+
let keys = Object.keys(obj);
|
|
2717
|
+
if (keys.length) {
|
|
2718
|
+
let item = obj[keys[0]];
|
|
2719
|
+
if (item && item.length) {
|
|
2720
|
+
message = item[0].message;
|
|
2721
|
+
}
|
|
2722
|
+
}
|
|
2723
|
+
if (!message) {
|
|
2724
|
+
message = this.$t2("必填项不能为空", "system.message.required");
|
|
2534
2725
|
}
|
|
2535
|
-
}
|
|
2536
|
-
if (!message) {
|
|
2537
|
-
message = this.$t2("必填项不能为空", "system.message.required");
|
|
2538
|
-
}
|
|
2539
2726
|
|
|
2540
|
-
|
|
2541
|
-
|
|
2542
|
-
|
|
2543
|
-
|
|
2544
|
-
|
|
2545
|
-
|
|
2546
|
-
|
|
2547
|
-
|
|
2727
|
+
this.$message({
|
|
2728
|
+
message: message,
|
|
2729
|
+
type: "error",
|
|
2730
|
+
duration: 2000,
|
|
2731
|
+
});
|
|
2732
|
+
}
|
|
2733
|
+
callback && callback(valid);
|
|
2734
|
+
},
|
|
2735
|
+
{ errorTip: false }
|
|
2736
|
+
);
|
|
2548
2737
|
},
|
|
2549
2738
|
/*scrollToFirstError() {
|
|
2550
2739
|
// 获取第一个验证失败的字段
|
|
@@ -2576,14 +2765,14 @@ modules = {
|
|
|
2576
2765
|
this.showSearchDialog = true;
|
|
2577
2766
|
},
|
|
2578
2767
|
confirmSearchDialog(rows) {
|
|
2579
|
-
this.searchDialogOption.confirm && this.searchDialogOption.confirm(rows)
|
|
2768
|
+
this.searchDialogOption.confirm && this.searchDialogOption.confirm(rows);
|
|
2580
2769
|
},
|
|
2581
2770
|
openFormDialog(option) {
|
|
2582
2771
|
this.formDialogOption = option;
|
|
2583
2772
|
this.showFormDialog = true;
|
|
2584
2773
|
},
|
|
2585
2774
|
confirmFormDialog() {
|
|
2586
|
-
this.formDialogOption.confirm && this.formDialogOption.confirm()
|
|
2775
|
+
this.formDialogOption.confirm && this.formDialogOption.confirm();
|
|
2587
2776
|
},
|
|
2588
2777
|
addInterval(handler, timeout) {
|
|
2589
2778
|
let timer = setInterval(handler, timeout);
|
|
@@ -2610,7 +2799,7 @@ modules = {
|
|
|
2610
2799
|
this.showFormDrawer = true;
|
|
2611
2800
|
},
|
|
2612
2801
|
confirmFormDrawer() {
|
|
2613
|
-
this.formDrawerOption.confirm && this.formDrawerOption.confirm()
|
|
2802
|
+
this.formDrawerOption.confirm && this.formDrawerOption.confirm();
|
|
2614
2803
|
},
|
|
2615
2804
|
|
|
2616
2805
|
openFileReferenceDialog(option) {
|
|
@@ -2618,187 +2807,186 @@ modules = {
|
|
|
2618
2807
|
this.showFileReferenceDialog = true;
|
|
2619
2808
|
},
|
|
2620
2809
|
confirmFileReferenceDialog() {
|
|
2621
|
-
this.fileReferenceDialogOption.confirm &&
|
|
2810
|
+
this.fileReferenceDialogOption.confirm &&
|
|
2811
|
+
this.fileReferenceDialogOption.confirm();
|
|
2622
2812
|
},
|
|
2623
|
-
getFormRef(){
|
|
2813
|
+
getFormRef() {
|
|
2624
2814
|
return this;
|
|
2625
2815
|
},
|
|
2626
2816
|
isObject(value) {
|
|
2627
2817
|
return Object.prototype.toString.call(value) === "[object Object]";
|
|
2628
2818
|
},
|
|
2629
|
-
openCopyEditTab(copyData){
|
|
2819
|
+
openCopyEditTab(copyData) {
|
|
2630
2820
|
let formData = this.$baseLodash.cloneDeep(copyData || this.formDataModel);
|
|
2631
2821
|
|
|
2632
|
-
const
|
|
2633
|
-
if(!data)return
|
|
2634
|
-
if(Array.isArray(data)){
|
|
2635
|
-
data.forEach((item)=>{
|
|
2636
|
-
handleData(item)
|
|
2637
|
-
})
|
|
2638
|
-
return
|
|
2639
|
-
}else if(this.isObject(data)){
|
|
2822
|
+
const handleData = (data) => {
|
|
2823
|
+
if (!data) return;
|
|
2824
|
+
if (Array.isArray(data)) {
|
|
2825
|
+
data.forEach((item) => {
|
|
2826
|
+
handleData(item);
|
|
2827
|
+
});
|
|
2828
|
+
return;
|
|
2829
|
+
} else if (this.isObject(data)) {
|
|
2640
2830
|
data.id = null;
|
|
2641
2831
|
data.create_by = null;
|
|
2642
2832
|
data.create_date = null;
|
|
2643
2833
|
data.modify_by = null;
|
|
2644
2834
|
data.modify_date = null;
|
|
2645
2835
|
delete data.head_table_id;
|
|
2646
|
-
delete data.objectForeignId
|
|
2647
|
-
if(data.createBy)data.createBy
|
|
2648
|
-
if(data.createDate)data.createDate
|
|
2649
|
-
if(data.modifyBy)data.modifyBy
|
|
2650
|
-
if(data.modifyDate)data.modifyDate
|
|
2651
|
-
Object.keys(data).forEach((key)=>{
|
|
2652
|
-
let value = data[key]
|
|
2653
|
-
if(value && Array.isArray(value)){
|
|
2836
|
+
delete data.objectForeignId;
|
|
2837
|
+
if (data.createBy) data.createBy;
|
|
2838
|
+
if (data.createDate) data.createDate;
|
|
2839
|
+
if (data.modifyBy) data.modifyBy;
|
|
2840
|
+
if (data.modifyDate) data.modifyDate;
|
|
2841
|
+
Object.keys(data).forEach((key) => {
|
|
2842
|
+
let value = data[key];
|
|
2843
|
+
if (value && Array.isArray(value)) {
|
|
2654
2844
|
handleData(value);
|
|
2655
2845
|
}
|
|
2656
|
-
})
|
|
2846
|
+
});
|
|
2657
2847
|
}
|
|
2658
|
-
}
|
|
2659
|
-
if(formData){
|
|
2660
|
-
handleData(formData)
|
|
2848
|
+
};
|
|
2849
|
+
if (formData) {
|
|
2850
|
+
handleData(formData);
|
|
2661
2851
|
}
|
|
2662
2852
|
|
|
2663
|
-
this.$emit("openCopyEditTab",formData)
|
|
2853
|
+
this.$emit("openCopyEditTab", formData);
|
|
2664
2854
|
},
|
|
2665
2855
|
|
|
2666
2856
|
async exportPdf() {
|
|
2667
|
-
|
|
2668
|
-
|
|
2857
|
+
// statusEl.style.display = 'block';
|
|
2858
|
+
// statusEl.textContent = '正在准备导出内容...';
|
|
2669
2859
|
const loadingObj = this.$baseLoading();
|
|
2670
|
-
|
|
2671
|
-
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
|
|
2691
|
-
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
|
|
2697
|
-
|
|
2698
|
-
|
|
2699
|
-
|
|
2700
|
-
|
|
2701
|
-
|
|
2702
|
-
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
|
|
2709
|
-
|
|
2710
|
-
|
|
2711
|
-
|
|
2712
|
-
|
|
2713
|
-
|
|
2714
|
-
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
|
|
2719
|
-
|
|
2720
|
-
|
|
2721
|
-
|
|
2722
|
-
|
|
2723
|
-
|
|
2724
|
-
|
|
2725
|
-
|
|
2726
|
-
|
|
2727
|
-
y: position,
|
|
2728
|
-
height: pageHeight / scale,
|
|
2729
|
-
width: contentWidth,
|
|
2730
|
-
logging: false
|
|
2731
|
-
});
|
|
2860
|
+
try {
|
|
2861
|
+
// 获取要导出的元素
|
|
2862
|
+
const element = this.$parent.$el;
|
|
2863
|
+
// 计算内容总高度
|
|
2864
|
+
|
|
2865
|
+
// 克隆元素(不影响原始页面)
|
|
2866
|
+
// statusEl.textContent = '克隆内容...';
|
|
2867
|
+
|
|
2868
|
+
const constainter = this.$parent.$parent.$el;
|
|
2869
|
+
|
|
2870
|
+
const clonedElement = element.cloneNode(true);
|
|
2871
|
+
let wfTab = clonedElement.querySelector(".wf-tab");
|
|
2872
|
+
if (wfTab) wfTab.remove();
|
|
2873
|
+
|
|
2874
|
+
clonedElement.style.width = element.offsetWidth + "px";
|
|
2875
|
+
|
|
2876
|
+
// 应用样式以展开内容
|
|
2877
|
+
clonedElement.style.height = "auto";
|
|
2878
|
+
clonedElement.style.overflow = "visible";
|
|
2879
|
+
clonedElement.style.position = "absolute";
|
|
2880
|
+
clonedElement.style.left = "-9999px";
|
|
2881
|
+
// document.body.appendChild(clonedElement);
|
|
2882
|
+
// document.body.appendChild(constainter);
|
|
2883
|
+
|
|
2884
|
+
constainter.appendChild(clonedElement);
|
|
2885
|
+
|
|
2886
|
+
const contentHeight = clonedElement.scrollHeight;
|
|
2887
|
+
const contentWidth = clonedElement.offsetWidth;
|
|
2888
|
+
|
|
2889
|
+
// 设置PDF参数
|
|
2890
|
+
const pdf = new JsPDF("p", "mm", "a4");
|
|
2891
|
+
const pageWidth = pdf.internal.pageSize.getWidth();
|
|
2892
|
+
const pageHeight = pdf.internal.pageSize.getHeight();
|
|
2893
|
+
const padding = 10;
|
|
2894
|
+
|
|
2895
|
+
// 计算需要多少页
|
|
2896
|
+
const scale = pageWidth / contentWidth;
|
|
2897
|
+
const scaledHeight = contentHeight * scale;
|
|
2898
|
+
const pages = Math.ceil(scaledHeight / pageHeight);
|
|
2899
|
+
|
|
2900
|
+
// 分页捕获并添加到PDF
|
|
2901
|
+
// statusEl.textContent = '正在生成PDF (0/' + pages + ')';
|
|
2902
|
+
|
|
2903
|
+
for (let i = 0; i < pages; i++) {
|
|
2904
|
+
// 计算当前页的裁剪位置
|
|
2905
|
+
const position = (i * pageHeight) / scale;
|
|
2906
|
+
|
|
2907
|
+
// 使用html2canvas捕获当前页内容
|
|
2908
|
+
const canvas = await html2Canvas(clonedElement, {
|
|
2909
|
+
scale: 2,
|
|
2910
|
+
// useCORS: true,
|
|
2911
|
+
windowHeight: pageHeight / scale,
|
|
2912
|
+
y: position,
|
|
2913
|
+
height: pageHeight / scale,
|
|
2914
|
+
width: contentWidth,
|
|
2915
|
+
logging: false,
|
|
2916
|
+
});
|
|
2732
2917
|
|
|
2733
|
-
|
|
2734
|
-
|
|
2918
|
+
// 将canvas转换为图像
|
|
2919
|
+
const imgData = canvas.toDataURL("image/jpeg", 0.95);
|
|
2735
2920
|
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
|
|
2739
|
-
|
|
2921
|
+
// 添加新页面(第一页除外)
|
|
2922
|
+
if (i > 0) {
|
|
2923
|
+
pdf.addPage();
|
|
2924
|
+
}
|
|
2740
2925
|
|
|
2741
|
-
|
|
2742
|
-
|
|
2926
|
+
// 将图像添加到PDF
|
|
2927
|
+
pdf.addImage(
|
|
2928
|
+
imgData,
|
|
2929
|
+
"JPEG",
|
|
2930
|
+
padding,
|
|
2931
|
+
padding,
|
|
2932
|
+
pageWidth - 2 * padding,
|
|
2933
|
+
pageHeight - 2 * padding
|
|
2934
|
+
);
|
|
2743
2935
|
|
|
2744
|
-
|
|
2745
|
-
|
|
2936
|
+
// statusEl.textContent = '正在生成PDF (' + (i+1) + '/' + pages + ')';
|
|
2937
|
+
}
|
|
2746
2938
|
|
|
2747
|
-
|
|
2748
|
-
|
|
2749
|
-
|
|
2939
|
+
// 移除克隆元素
|
|
2940
|
+
// document.body.removeChild(constainter);
|
|
2941
|
+
constainter.removeChild(clonedElement);
|
|
2750
2942
|
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2943
|
+
// 保存PDF
|
|
2944
|
+
// statusEl.textContent = '正在保存文件...';
|
|
2945
|
+
let fileName = this.reportTemplate.formName + ".pdf";
|
|
2946
|
+
pdf.save(fileName);
|
|
2755
2947
|
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2948
|
+
// statusEl.textContent = 'PDF导出成功!';
|
|
2949
|
+
// statusEl.style.background = '#e8f5e9';
|
|
2950
|
+
// statusEl.style.color = '#2e7d32';
|
|
2759
2951
|
|
|
2760
|
-
|
|
2761
|
-
|
|
2952
|
+
// 3秒后隐藏状态
|
|
2953
|
+
/* setTimeout(() => {
|
|
2762
2954
|
statusEl.style.display = 'none';
|
|
2763
2955
|
}, 3000); */
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
}
|
|
2956
|
+
} catch (error) {
|
|
2957
|
+
console.error("导出失败:", error);
|
|
2958
|
+
// statusEl.textContent = '导出失败: ' + error.message;
|
|
2959
|
+
// statusEl.style.background = '#ffebee';
|
|
2960
|
+
// statusEl.style.color = '#c62828';
|
|
2961
|
+
} finally {
|
|
2962
|
+
loadingObj.close();
|
|
2963
|
+
}
|
|
2773
2964
|
},
|
|
2774
2965
|
|
|
2775
2966
|
async exportPdf1() {
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
try {
|
|
2780
|
-
|
|
2781
|
-
// 获取要导出的元素
|
|
2782
|
-
const element = this.$parent.$el;
|
|
2783
|
-
// 计算内容总高度
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
// 克隆元素(不影响原始页面)
|
|
2787
|
-
// statusEl.textContent = '克隆内容...';
|
|
2967
|
+
// statusEl.style.display = 'block';
|
|
2968
|
+
// statusEl.textContent = '正在准备导出内容...';
|
|
2788
2969
|
|
|
2970
|
+
try {
|
|
2971
|
+
// 获取要导出的元素
|
|
2972
|
+
const element = this.$parent.$el;
|
|
2973
|
+
// 计算内容总高度
|
|
2789
2974
|
|
|
2790
|
-
|
|
2791
|
-
|
|
2975
|
+
// 克隆元素(不影响原始页面)
|
|
2976
|
+
// statusEl.textContent = '克隆内容...';
|
|
2792
2977
|
|
|
2793
|
-
|
|
2794
|
-
let wfTab = clonedElement.querySelector(".wf-tab");
|
|
2795
|
-
if(wfTab)wfTab.remove()
|
|
2978
|
+
const constainter = this.$parent.$parent.$el;
|
|
2796
2979
|
|
|
2980
|
+
const clonedElement = element.cloneNode(true);
|
|
2981
|
+
let wfTab = clonedElement.querySelector(".wf-tab");
|
|
2982
|
+
if (wfTab) wfTab.remove();
|
|
2797
2983
|
|
|
2798
|
-
|
|
2984
|
+
const scrollElements = clonedElement.querySelectorAll(
|
|
2985
|
+
".vxe-table--body-wrapper"
|
|
2986
|
+
);
|
|
2799
2987
|
|
|
2800
|
-
|
|
2801
|
-
|
|
2988
|
+
// 临时禁用虚拟滚动
|
|
2989
|
+
/* for(let scrollElement of scrollElements){
|
|
2802
2990
|
const originalScrollTop = scrollElement.scrollTop
|
|
2803
2991
|
// scrollElement.style = 'overflow:visible;max-height:inherit !important'
|
|
2804
2992
|
scrollElement.style = scrollElement.style+ 'overflow:visible;max-height:inherit !important;'
|
|
@@ -2806,18 +2994,17 @@ modules = {
|
|
|
2806
2994
|
scrollElement.scrollTop = 0
|
|
2807
2995
|
} */
|
|
2808
2996
|
|
|
2809
|
-
|
|
2997
|
+
clonedElement.style.width = element.offsetWidth + "px";
|
|
2810
2998
|
|
|
2811
|
-
|
|
2812
|
-
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2999
|
+
// 应用样式以展开内容
|
|
3000
|
+
clonedElement.style.height = "auto";
|
|
3001
|
+
clonedElement.style.overflow = "visible";
|
|
3002
|
+
clonedElement.style.position = "absolute";
|
|
3003
|
+
clonedElement.style.left = "-9999px";
|
|
3004
|
+
// document.body.appendChild(clonedElement);
|
|
3005
|
+
// document.body.appendChild(constainter);
|
|
2818
3006
|
|
|
2819
|
-
|
|
2820
|
-
/* let dom1 = clonedElement.querySelector(".detail-wrap")
|
|
3007
|
+
/* let dom1 = clonedElement.querySelector(".detail-wrap")
|
|
2821
3008
|
if(dom1){
|
|
2822
3009
|
let dom2 = dom1.children[1];
|
|
2823
3010
|
dom2.style.height = "auto;"
|
|
@@ -2825,70 +3012,66 @@ modules = {
|
|
|
2825
3012
|
|
|
2826
3013
|
} */
|
|
2827
3014
|
|
|
2828
|
-
|
|
2829
|
-
|
|
2830
|
-
|
|
2831
|
-
|
|
2832
|
-
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
|
|
2839
|
-
|
|
2840
|
-
|
|
2841
|
-
|
|
2842
|
-
|
|
2843
|
-
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
|
|
2852
|
-
|
|
2853
|
-
pdf.save(`导出.pdf`)
|
|
3015
|
+
constainter.appendChild(clonedElement);
|
|
3016
|
+
|
|
3017
|
+
html2Canvas(clonedElement, {
|
|
3018
|
+
scrollY: 0,
|
|
3019
|
+
useCORS: true,
|
|
3020
|
+
allowTaint: true,
|
|
3021
|
+
scale: 2, // 提高分辨率
|
|
3022
|
+
}).then((canvas) => {
|
|
3023
|
+
const pdf = new JsPDF("p", "mm", "a4");
|
|
3024
|
+
const imgData = canvas.toDataURL("image/png");
|
|
3025
|
+
const imgWidth = 210; // A4宽度
|
|
3026
|
+
const imgHeight = (canvas.height * imgWidth) / canvas.width;
|
|
3027
|
+
|
|
3028
|
+
// 分页处理
|
|
3029
|
+
let heightLeft = imgHeight;
|
|
3030
|
+
let position = 0;
|
|
3031
|
+
pdf.addImage(imgData, "PNG", 0, position, imgWidth, imgHeight);
|
|
3032
|
+
|
|
3033
|
+
while (heightLeft > 0) {
|
|
3034
|
+
position = heightLeft - imgHeight;
|
|
3035
|
+
pdf.addPage();
|
|
3036
|
+
pdf.addImage(imgData, "PNG", 0, position, imgWidth, imgHeight);
|
|
3037
|
+
heightLeft -= 297; // A4高度
|
|
3038
|
+
}
|
|
2854
3039
|
|
|
2855
|
-
|
|
2856
|
-
})
|
|
3040
|
+
pdf.save(`导出.pdf`);
|
|
2857
3041
|
|
|
2858
|
-
|
|
2859
|
-
|
|
2860
|
-
|
|
2861
|
-
|
|
2862
|
-
|
|
2863
|
-
|
|
3042
|
+
constainter.removeChild(clonedElement);
|
|
3043
|
+
});
|
|
3044
|
+
} catch (error) {
|
|
3045
|
+
console.error("导出失败:", error);
|
|
3046
|
+
// statusEl.textContent = '导出失败: ' + error.message;
|
|
3047
|
+
// statusEl.style.background = '#ffebee';
|
|
3048
|
+
// statusEl.style.color = '#c62828';
|
|
3049
|
+
}
|
|
2864
3050
|
},
|
|
2865
3051
|
async exportPdf2() {
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
try {
|
|
2870
|
-
|
|
2871
|
-
// 获取要导出的元素
|
|
2872
|
-
const element = this.$parent.$el;
|
|
2873
|
-
// 计算内容总高度
|
|
3052
|
+
// statusEl.style.display = 'block';
|
|
3053
|
+
// statusEl.textContent = '正在准备导出内容...';
|
|
2874
3054
|
|
|
3055
|
+
try {
|
|
3056
|
+
// 获取要导出的元素
|
|
3057
|
+
const element = this.$parent.$el;
|
|
3058
|
+
// 计算内容总高度
|
|
2875
3059
|
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
const constainter = this.$parent.$parent.$el;
|
|
2881
|
-
|
|
3060
|
+
// 克隆元素(不影响原始页面)
|
|
3061
|
+
// statusEl.textContent = '克隆内容...';
|
|
2882
3062
|
|
|
2883
|
-
|
|
2884
|
-
let wfTab = clonedElement.querySelector(".wf-tab");
|
|
2885
|
-
if(wfTab)wfTab.remove()
|
|
3063
|
+
const constainter = this.$parent.$parent.$el;
|
|
2886
3064
|
|
|
3065
|
+
const clonedElement = element.cloneNode(true);
|
|
3066
|
+
let wfTab = clonedElement.querySelector(".wf-tab");
|
|
3067
|
+
if (wfTab) wfTab.remove();
|
|
2887
3068
|
|
|
2888
|
-
|
|
3069
|
+
const scrollElements = clonedElement.querySelectorAll(
|
|
3070
|
+
".vxe-table--body-wrapper"
|
|
3071
|
+
);
|
|
2889
3072
|
|
|
2890
|
-
|
|
2891
|
-
|
|
3073
|
+
// 临时禁用虚拟滚动
|
|
3074
|
+
/* for(let scrollElement of scrollElements){
|
|
2892
3075
|
const originalScrollTop = scrollElement.scrollTop
|
|
2893
3076
|
// scrollElement.style = 'overflow:visible;max-height:inherit !important'
|
|
2894
3077
|
// scrollElement.style = scrollElement.style+ 'overflow:visible;max-height:inherit !important;'
|
|
@@ -2897,305 +3080,297 @@ modules = {
|
|
|
2897
3080
|
scrollElement.scrollTop = 0
|
|
2898
3081
|
} */
|
|
2899
3082
|
|
|
3083
|
+
let dom4 = clonedElement.querySelector(".designer-view");
|
|
3084
|
+
// dom4.style.height = "auto;"
|
|
3085
|
+
let dom1 = clonedElement.querySelector(".detail-wrap");
|
|
3086
|
+
if (dom1) {
|
|
3087
|
+
let dom2 = dom1.children[1];
|
|
3088
|
+
dom2.style.height = "auto;";
|
|
3089
|
+
dom2.querySelector(".d-cont").style.height = "auto;";
|
|
3090
|
+
}
|
|
2900
3091
|
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
|
|
2919
|
-
|
|
2920
|
-
|
|
2921
|
-
|
|
2922
|
-
|
|
2923
|
-
|
|
2924
|
-
|
|
2925
|
-
|
|
2926
|
-
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
|
|
2930
|
-
|
|
2931
|
-
|
|
2932
|
-
|
|
2933
|
-
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
const position = i * pageHeight / scale;
|
|
2945
|
-
|
|
2946
|
-
// 使用html2canvas捕获当前页内容
|
|
2947
|
-
const canvas = await html2Canvas(clonedElement, {
|
|
2948
|
-
scale: 2,
|
|
2949
|
-
useCORS: true,
|
|
2950
|
-
windowHeight: pageHeight / scale,
|
|
2951
|
-
y: position,
|
|
2952
|
-
height: pageHeight / scale,
|
|
2953
|
-
width: contentWidth,
|
|
2954
|
-
logging: false
|
|
2955
|
-
});
|
|
3092
|
+
clonedElement.style.width = element.offsetWidth + "px";
|
|
3093
|
+
|
|
3094
|
+
// 应用样式以展开内容
|
|
3095
|
+
clonedElement.style.height = "auto";
|
|
3096
|
+
clonedElement.style.overflow = "visible";
|
|
3097
|
+
clonedElement.style.position = "absolute";
|
|
3098
|
+
// clonedElement.style.left = '-9999px';
|
|
3099
|
+
clonedElement.style.left = "100px";
|
|
3100
|
+
// document.body.appendChild(clonedElement);
|
|
3101
|
+
// document.body.appendChild(constainter);
|
|
3102
|
+
|
|
3103
|
+
constainter.appendChild(clonedElement);
|
|
3104
|
+
|
|
3105
|
+
const contentHeight = clonedElement.scrollHeight;
|
|
3106
|
+
const contentWidth = clonedElement.offsetWidth;
|
|
3107
|
+
|
|
3108
|
+
// 设置PDF参数
|
|
3109
|
+
const pdf = new JsPDF("p", "mm", "a4");
|
|
3110
|
+
const pageWidth = pdf.internal.pageSize.getWidth();
|
|
3111
|
+
const pageHeight = pdf.internal.pageSize.getHeight();
|
|
3112
|
+
const padding = 10;
|
|
3113
|
+
|
|
3114
|
+
// 计算需要多少页
|
|
3115
|
+
const scale = pageWidth / contentWidth;
|
|
3116
|
+
const scaledHeight = contentHeight * scale;
|
|
3117
|
+
const pages = Math.ceil(scaledHeight / pageHeight);
|
|
3118
|
+
|
|
3119
|
+
// 分页捕获并添加到PDF
|
|
3120
|
+
// statusEl.textContent = '正在生成PDF (0/' + pages + ')';
|
|
3121
|
+
for (let i = 0; i < pages; i++) {
|
|
3122
|
+
// 计算当前页的裁剪位置
|
|
3123
|
+
const position = (i * pageHeight) / scale;
|
|
3124
|
+
|
|
3125
|
+
// 使用html2canvas捕获当前页内容
|
|
3126
|
+
const canvas = await html2Canvas(clonedElement, {
|
|
3127
|
+
scale: 2,
|
|
3128
|
+
useCORS: true,
|
|
3129
|
+
windowHeight: pageHeight / scale,
|
|
3130
|
+
y: position,
|
|
3131
|
+
height: pageHeight / scale,
|
|
3132
|
+
width: contentWidth,
|
|
3133
|
+
logging: false,
|
|
3134
|
+
});
|
|
2956
3135
|
|
|
2957
|
-
|
|
2958
|
-
|
|
3136
|
+
// 将canvas转换为图像
|
|
3137
|
+
const imgData = canvas.toDataURL("image/jpeg", 0.95);
|
|
2959
3138
|
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
2963
|
-
|
|
3139
|
+
// 添加新页面(第一页除外)
|
|
3140
|
+
if (i > 0) {
|
|
3141
|
+
pdf.addPage();
|
|
3142
|
+
}
|
|
2964
3143
|
|
|
2965
|
-
|
|
2966
|
-
|
|
3144
|
+
// 将图像添加到PDF
|
|
3145
|
+
pdf.addImage(
|
|
3146
|
+
imgData,
|
|
3147
|
+
"JPEG",
|
|
3148
|
+
padding,
|
|
3149
|
+
padding,
|
|
3150
|
+
pageWidth - 2 * padding,
|
|
3151
|
+
pageHeight - 2 * padding
|
|
3152
|
+
);
|
|
2967
3153
|
|
|
2968
|
-
|
|
2969
|
-
|
|
3154
|
+
// statusEl.textContent = '正在生成PDF (' + (i+1) + '/' + pages + ')';
|
|
3155
|
+
}
|
|
2970
3156
|
|
|
2971
|
-
|
|
2972
|
-
|
|
2973
|
-
|
|
3157
|
+
// 移除克隆元素
|
|
3158
|
+
// document.body.removeChild(constainter);
|
|
3159
|
+
constainter.removeChild(clonedElement);
|
|
2974
3160
|
|
|
2975
|
-
|
|
2976
|
-
|
|
2977
|
-
|
|
3161
|
+
// 保存PDF
|
|
3162
|
+
// statusEl.textContent = '正在保存文件...';
|
|
3163
|
+
pdf.save("exported-content.pdf");
|
|
2978
3164
|
|
|
2979
|
-
|
|
2980
|
-
|
|
2981
|
-
|
|
3165
|
+
// statusEl.textContent = 'PDF导出成功!';
|
|
3166
|
+
// statusEl.style.background = '#e8f5e9';
|
|
3167
|
+
// statusEl.style.color = '#2e7d32';
|
|
2982
3168
|
|
|
2983
|
-
|
|
2984
|
-
|
|
3169
|
+
// 3秒后隐藏状态
|
|
3170
|
+
/* setTimeout(() => {
|
|
2985
3171
|
statusEl.style.display = 'none';
|
|
2986
3172
|
}, 3000); */
|
|
2987
|
-
|
|
2988
|
-
|
|
2989
|
-
|
|
2990
|
-
|
|
2991
|
-
|
|
2992
|
-
|
|
2993
|
-
}
|
|
3173
|
+
} catch (error) {
|
|
3174
|
+
console.error("导出失败:", error);
|
|
3175
|
+
// statusEl.textContent = '导出失败: ' + error.message;
|
|
3176
|
+
// statusEl.style.background = '#ffebee';
|
|
3177
|
+
// statusEl.style.color = '#c62828';
|
|
3178
|
+
}
|
|
2994
3179
|
},
|
|
2995
3180
|
async exportPdf4() {
|
|
2996
|
-
|
|
2997
|
-
|
|
2998
|
-
|
|
2999
|
-
try {
|
|
3000
|
-
|
|
3001
|
-
// 获取要导出的元素
|
|
3002
|
-
const element = this.$parent.$el;
|
|
3003
|
-
// 计算内容总高度
|
|
3004
|
-
|
|
3005
|
-
|
|
3006
|
-
// 克隆元素(不影响原始页面)
|
|
3007
|
-
// statusEl.textContent = '克隆内容...';
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
|
-
const constainter = this.$parent.$parent.$el;
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
const clonedElement = element.cloneNode(true);
|
|
3014
|
-
let wfTab = clonedElement.querySelector(".wf-tab");
|
|
3015
|
-
if(wfTab)wfTab.remove()
|
|
3181
|
+
// statusEl.style.display = 'block';
|
|
3182
|
+
// statusEl.textContent = '正在准备导出内容...';
|
|
3016
3183
|
|
|
3184
|
+
try {
|
|
3185
|
+
// 获取要导出的元素
|
|
3186
|
+
const element = this.$parent.$el;
|
|
3187
|
+
// 计算内容总高度
|
|
3017
3188
|
|
|
3018
|
-
|
|
3189
|
+
// 克隆元素(不影响原始页面)
|
|
3190
|
+
// statusEl.textContent = '克隆内容...';
|
|
3019
3191
|
|
|
3020
|
-
|
|
3021
|
-
for(let scrollElement of scrollElements){
|
|
3022
|
-
const originalScrollTop = scrollElement.scrollTop
|
|
3023
|
-
// scrollElement.style = 'overflow:visible;max-height:inherit !important'
|
|
3024
|
-
// scrollElement.style = scrollElement.style+ 'overflow:visible;max-height:inherit !important;'
|
|
3025
|
-
scrollElement.style["overflow"] = 'visible'
|
|
3026
|
-
scrollElement.style["max-height"] = 'inherit !important'
|
|
3027
|
-
scrollElement.scrollTop = 0
|
|
3028
|
-
}
|
|
3192
|
+
const constainter = this.$parent.$parent.$el;
|
|
3029
3193
|
|
|
3194
|
+
const clonedElement = element.cloneNode(true);
|
|
3195
|
+
let wfTab = clonedElement.querySelector(".wf-tab");
|
|
3196
|
+
if (wfTab) wfTab.remove();
|
|
3030
3197
|
|
|
3031
|
-
|
|
3032
|
-
|
|
3033
|
-
|
|
3034
|
-
if(dom1){
|
|
3035
|
-
let dom2 = dom1.children[1];
|
|
3036
|
-
dom2.style.height = "auto;"
|
|
3037
|
-
dom2.querySelector(".d-cont").style.height = "auto;"
|
|
3038
|
-
|
|
3039
|
-
}
|
|
3040
|
-
|
|
3041
|
-
clonedElement.style.width = element.offsetWidth + 'px';
|
|
3042
|
-
|
|
3043
|
-
// 应用样式以展开内容
|
|
3044
|
-
clonedElement.style.height = 'auto';
|
|
3045
|
-
clonedElement.style.overflow = 'visible';
|
|
3046
|
-
clonedElement.style.position = 'absolute';
|
|
3047
|
-
// clonedElement.style.left = '-9999px';
|
|
3048
|
-
clonedElement.style.left = '100px';
|
|
3049
|
-
// document.body.appendChild(clonedElement);
|
|
3050
|
-
// document.body.appendChild(constainter);
|
|
3198
|
+
const scrollElements = clonedElement.querySelectorAll(
|
|
3199
|
+
".vxe-table--body-wrapper"
|
|
3200
|
+
);
|
|
3051
3201
|
|
|
3052
|
-
|
|
3202
|
+
// 临时禁用虚拟滚动
|
|
3203
|
+
for (let scrollElement of scrollElements) {
|
|
3204
|
+
const originalScrollTop = scrollElement.scrollTop;
|
|
3205
|
+
// scrollElement.style = 'overflow:visible;max-height:inherit !important'
|
|
3206
|
+
// scrollElement.style = scrollElement.style+ 'overflow:visible;max-height:inherit !important;'
|
|
3207
|
+
scrollElement.style["overflow"] = "visible";
|
|
3208
|
+
scrollElement.style["max-height"] = "inherit !important";
|
|
3209
|
+
scrollElement.scrollTop = 0;
|
|
3210
|
+
}
|
|
3053
3211
|
|
|
3212
|
+
let dom4 = clonedElement.querySelector(".designer-view");
|
|
3213
|
+
// dom4.style.height = "auto;"
|
|
3214
|
+
let dom1 = clonedElement.querySelector(".detail-wrap");
|
|
3215
|
+
if (dom1) {
|
|
3216
|
+
let dom2 = dom1.children[1];
|
|
3217
|
+
dom2.style.height = "auto;";
|
|
3218
|
+
dom2.querySelector(".d-cont").style.height = "auto;";
|
|
3219
|
+
}
|
|
3054
3220
|
|
|
3055
|
-
|
|
3056
|
-
scale: 2,
|
|
3057
|
-
useCORS: true,
|
|
3058
|
-
logging: false,
|
|
3059
|
-
onclone: (clonedDoc) => {
|
|
3221
|
+
clonedElement.style.width = element.offsetWidth + "px";
|
|
3060
3222
|
|
|
3061
|
-
|
|
3062
|
-
|
|
3223
|
+
// 应用样式以展开内容
|
|
3224
|
+
clonedElement.style.height = "auto";
|
|
3225
|
+
clonedElement.style.overflow = "visible";
|
|
3226
|
+
clonedElement.style.position = "absolute";
|
|
3227
|
+
// clonedElement.style.left = '-9999px';
|
|
3228
|
+
clonedElement.style.left = "100px";
|
|
3229
|
+
// document.body.appendChild(clonedElement);
|
|
3230
|
+
// document.body.appendChild(constainter);
|
|
3063
3231
|
|
|
3232
|
+
constainter.appendChild(clonedElement);
|
|
3064
3233
|
|
|
3065
|
-
|
|
3066
|
-
|
|
3067
|
-
|
|
3234
|
+
const canvas = await html2Canvas(clonedElement, {
|
|
3235
|
+
scale: 2,
|
|
3236
|
+
useCORS: true,
|
|
3237
|
+
logging: false,
|
|
3238
|
+
onclone: (clonedDoc) => {},
|
|
3239
|
+
});
|
|
3068
3240
|
|
|
3069
|
-
|
|
3070
|
-
|
|
3071
|
-
|
|
3241
|
+
// 移除克隆元素
|
|
3242
|
+
// document.body.removeChild(constainter);
|
|
3243
|
+
constainter.removeChild(clonedElement);
|
|
3072
3244
|
|
|
3073
|
-
|
|
3074
|
-
|
|
3245
|
+
// 5. 生成PDF
|
|
3246
|
+
this.currentStep = "创建PDF文档...";
|
|
3247
|
+
this.progress = 70;
|
|
3075
3248
|
|
|
3076
|
-
|
|
3077
|
-
|
|
3249
|
+
const imgData = canvas.toDataURL("image/jpeg", 0.95);
|
|
3250
|
+
const pdf = new JsPDF("p", "mm", "a4");
|
|
3078
3251
|
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
const imgHeight = canvas.height;
|
|
3252
|
+
const pageWidth = pdf.internal.pageSize.getWidth();
|
|
3253
|
+
const pageHeight = pdf.internal.pageSize.getHeight();
|
|
3082
3254
|
|
|
3083
|
-
|
|
3084
|
-
|
|
3255
|
+
// const imgWidth = canvas.width;
|
|
3256
|
+
const imgWidth = element.offsetWidth;
|
|
3257
|
+
const imgHeight = canvas.height;
|
|
3085
3258
|
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
let position = 0;
|
|
3259
|
+
const ratio = pageWidth / imgWidth;
|
|
3260
|
+
const imgHeightOnPDF = imgHeight * ratio;
|
|
3089
3261
|
|
|
3090
|
-
|
|
3091
|
-
|
|
3262
|
+
// 计算需要多少页
|
|
3263
|
+
let totalPages = Math.ceil(imgHeightOnPDF / pageHeight);
|
|
3264
|
+
let position = 0;
|
|
3092
3265
|
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
position -= pageHeight;
|
|
3096
|
-
pdf.addPage();
|
|
3097
|
-
pdf.addImage(imgData, 'JPEG', 0, position, pageWidth, imgHeightOnPDF);
|
|
3098
|
-
}
|
|
3266
|
+
// 添加第一页
|
|
3267
|
+
pdf.addImage(imgData, "JPEG", 0, position, pageWidth, imgHeightOnPDF);
|
|
3099
3268
|
|
|
3100
|
-
|
|
3269
|
+
// 添加额外页面(如果需要)
|
|
3270
|
+
for (let i = 1; i < totalPages; i++) {
|
|
3271
|
+
position -= pageHeight;
|
|
3272
|
+
pdf.addPage();
|
|
3273
|
+
pdf.addImage(imgData, "JPEG", 0, position, pageWidth, imgHeightOnPDF);
|
|
3274
|
+
}
|
|
3101
3275
|
|
|
3102
|
-
|
|
3103
|
-
this.currentStep = '生成预览...';
|
|
3104
|
-
this.progress = 90;
|
|
3276
|
+
this.pdfPages = totalPages;
|
|
3105
3277
|
|
|
3106
|
-
|
|
3107
|
-
|
|
3278
|
+
// 6. 生成预览
|
|
3279
|
+
this.currentStep = "生成预览...";
|
|
3280
|
+
this.progress = 90;
|
|
3108
3281
|
|
|
3109
|
-
|
|
3110
|
-
|
|
3282
|
+
const pdfBlob = pdf.output("blob");
|
|
3283
|
+
this.pdfPreviewUrl = URL.createObjectURL(pdfBlob);
|
|
3111
3284
|
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
this.isExporting = false;
|
|
3115
|
-
}, 500);
|
|
3285
|
+
// 7. 自动下载
|
|
3286
|
+
pdf.save("exported-content.pdf");
|
|
3116
3287
|
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3288
|
+
this.progress = 100;
|
|
3289
|
+
setTimeout(() => {
|
|
3290
|
+
this.isExporting = false;
|
|
3291
|
+
}, 500);
|
|
3292
|
+
} catch (error) {
|
|
3293
|
+
console.error("导出失败:", error);
|
|
3294
|
+
// statusEl.textContent = '导出失败: ' + error.message;
|
|
3295
|
+
// statusEl.style.background = '#ffebee';
|
|
3296
|
+
// statusEl.style.color = '#c62828';
|
|
3297
|
+
}
|
|
3123
3298
|
},
|
|
3124
3299
|
async exportPdf5() {
|
|
3125
3300
|
try {
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
|
|
3155
|
-
|
|
3156
|
-
|
|
3157
|
-
|
|
3158
|
-
|
|
3159
|
-
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
|
|
3166
|
-
|
|
3167
|
-
|
|
3168
|
-
|
|
3169
|
-
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
|
|
3173
|
-
|
|
3174
|
-
|
|
3175
|
-
|
|
3176
|
-
|
|
3177
|
-
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3181
|
-
}
|
|
3182
|
-
// 保存文件
|
|
3183
|
-
pdf.save('文档名称.pdf')
|
|
3184
|
-
})
|
|
3301
|
+
// 获取要导出的元素
|
|
3302
|
+
const element = this.$parent.$el;
|
|
3303
|
+
// 计算内容总高度
|
|
3304
|
+
|
|
3305
|
+
// 克隆元素(不影响原始页面)
|
|
3306
|
+
// statusEl.textContent = '克隆内容...';
|
|
3307
|
+
|
|
3308
|
+
const constainter = this.$parent.$parent.$el;
|
|
3309
|
+
// 获取dom元素
|
|
3310
|
+
// const dom = document.querySelector('#id名称')
|
|
3311
|
+
if (element) {
|
|
3312
|
+
html2Canvas(element).then(async (canvas) => {
|
|
3313
|
+
// A4纸,纵向
|
|
3314
|
+
let pdf = new JsPDF("p", "mm", "a4");
|
|
3315
|
+
let ctx = canvas.getContext("2d");
|
|
3316
|
+
let a4w = 190;
|
|
3317
|
+
// A4大小,210mm x 297mm,四边各保留10mm的边距,显示区域190x277
|
|
3318
|
+
let a4h = 277;
|
|
3319
|
+
// 按A4显示比例换算一页图像的像素高度
|
|
3320
|
+
let imgHeight = Math.floor((a4h * canvas.width) / a4w);
|
|
3321
|
+
let renderedHeight = 0;
|
|
3322
|
+
while (renderedHeight < canvas.height) {
|
|
3323
|
+
let page = document.createElement("canvas");
|
|
3324
|
+
page.width = canvas.width;
|
|
3325
|
+
// 可能内容不足一页
|
|
3326
|
+
page.height = Math.min(imgHeight, canvas.height - renderedHeight);
|
|
3327
|
+
// 用getImageData剪裁指定区域,并画到前面创建的canvas对象中
|
|
3328
|
+
page
|
|
3329
|
+
.getContext("2d")
|
|
3330
|
+
.putImageData(
|
|
3331
|
+
ctx.getImageData(
|
|
3332
|
+
0,
|
|
3333
|
+
renderedHeight,
|
|
3334
|
+
canvas.width,
|
|
3335
|
+
Math.min(imgHeight, canvas.height - renderedHeight)
|
|
3336
|
+
),
|
|
3337
|
+
0,
|
|
3338
|
+
0
|
|
3339
|
+
);
|
|
3340
|
+
// 添加图像到页面,保留10mm边距
|
|
3341
|
+
pdf.addImage(
|
|
3342
|
+
page.toDataURL("image/jpeg", 1.0),
|
|
3343
|
+
"JPEG",
|
|
3344
|
+
10,
|
|
3345
|
+
10,
|
|
3346
|
+
a4w,
|
|
3347
|
+
Math.min(a4h, (a4w * page.height) / page.width)
|
|
3348
|
+
);
|
|
3349
|
+
|
|
3350
|
+
renderedHeight += imgHeight;
|
|
3351
|
+
if (renderedHeight < canvas.height) {
|
|
3352
|
+
// 如果后面还有内容,添加一个空页
|
|
3353
|
+
pdf.addPage();
|
|
3354
|
+
}
|
|
3355
|
+
// delete page;
|
|
3185
3356
|
}
|
|
3186
|
-
|
|
3187
|
-
|
|
3357
|
+
// 保存文件
|
|
3358
|
+
pdf.save("文档名称.pdf");
|
|
3359
|
+
});
|
|
3188
3360
|
}
|
|
3361
|
+
} catch (err) {
|
|
3362
|
+
console.log(err);
|
|
3363
|
+
}
|
|
3189
3364
|
},
|
|
3190
3365
|
openFormulaDialog(option) {
|
|
3191
|
-
this.formulaDialogOption = option
|
|
3366
|
+
this.formulaDialogOption = option;
|
|
3192
3367
|
this.formulaDialogVisible = true;
|
|
3193
3368
|
},
|
|
3194
3369
|
openBaseFormulaDialog(option) {
|
|
3195
|
-
this.baseFormulaDialogOption = option
|
|
3370
|
+
this.baseFormulaDialogOption = option;
|
|
3196
3371
|
this.baseFormulaDialogVisible = true;
|
|
3197
|
-
}
|
|
3198
|
-
}
|
|
3372
|
+
},
|
|
3373
|
+
},
|
|
3199
3374
|
};
|
|
3200
3375
|
|
|
3201
3376
|
export default modules;
|