cloud-web-corejs 1.0.54-dev.404 → 1.0.54-dev.406
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/xform/form-render/container-item/containerItemMixin.js +376 -2
- package/src/components/xform/form-render/container-item/data-table-mixin.js +2867 -1
- package/src/components/xform/form-render/indexMixin.js +1420 -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,60 @@ 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 {
|
|
1820
|
+
!!foundW.setDisabled && foundW.setDisabled(true);
|
|
1821
|
+
}
|
|
1822
|
+
}
|
|
1694
1823
|
});
|
|
1695
1824
|
},
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
let
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1825
|
+
|
|
1826
|
+
enableForm(ignoreFields) {
|
|
1827
|
+
let wNameList = Object.keys(this.widgetRefList);
|
|
1828
|
+
wNameList.forEach((wName) => {
|
|
1829
|
+
let foundW = this.getWidgetRef(wName);
|
|
1830
|
+
if (!!foundW) {
|
|
1831
|
+
if (ignoreFields && ignoreFields.includes(wName)) {
|
|
1832
|
+
return;
|
|
1833
|
+
}
|
|
1834
|
+
if (!!foundW.widget && foundW.widget.type === "sub-form") {
|
|
1835
|
+
foundW.enableSubForm();
|
|
1836
|
+
} else if (
|
|
1837
|
+
!!foundW.widget &&
|
|
1838
|
+
foundW.widget.type === "grid-sub-form"
|
|
1839
|
+
) {
|
|
1840
|
+
foundW.enableGridSubForm();
|
|
1841
|
+
} else {
|
|
1842
|
+
!!foundW.setDisabled && foundW.setDisabled(false);
|
|
1843
|
+
}
|
|
1844
|
+
}
|
|
1707
1845
|
});
|
|
1708
1846
|
},
|
|
1709
1847
|
resetForm: function () {
|
|
@@ -1725,60 +1863,64 @@ modules = {
|
|
|
1725
1863
|
this.$refs.renderForm.clearValidate(e);
|
|
1726
1864
|
},
|
|
1727
1865
|
validateForm: function (e) {
|
|
1728
|
-
this.$refs[
|
|
1866
|
+
this.$refs["renderForm"].$baseValidate(function (t) {
|
|
1729
1867
|
e(t);
|
|
1730
1868
|
});
|
|
1731
1869
|
},
|
|
1732
|
-
validateFields: function () {
|
|
1733
|
-
},
|
|
1870
|
+
validateFields: function () {},
|
|
1734
1871
|
disableWidgets: function (e) {
|
|
1735
1872
|
let t = this;
|
|
1736
|
-
e
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1873
|
+
e &&
|
|
1874
|
+
("string" === typeof e
|
|
1875
|
+
? this.findWidgetAndSetDisabled(e, !0)
|
|
1876
|
+
: Array.isArray(e) &&
|
|
1877
|
+
e.forEach(function (e) {
|
|
1878
|
+
t.findWidgetAndSetDisabled(e, !0);
|
|
1879
|
+
}));
|
|
1743
1880
|
},
|
|
1744
1881
|
enableWidgets: function (e) {
|
|
1745
1882
|
let t = this;
|
|
1746
|
-
e
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1883
|
+
e &&
|
|
1884
|
+
("string" === typeof e
|
|
1885
|
+
? this.findWidgetAndSetDisabled(e, !1)
|
|
1886
|
+
: Array.isArray(e) &&
|
|
1887
|
+
e.forEach(function (e) {
|
|
1888
|
+
t.findWidgetAndSetDisabled(e, !1);
|
|
1889
|
+
}));
|
|
1753
1890
|
},
|
|
1754
1891
|
hideWidgets: function (e) {
|
|
1755
1892
|
let t = this;
|
|
1756
|
-
e
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1893
|
+
e &&
|
|
1894
|
+
("string" === typeof e
|
|
1895
|
+
? this.findWidgetAndSetHidden(e, !0)
|
|
1896
|
+
: Array.isArray(e) &&
|
|
1897
|
+
e.forEach(function (e) {
|
|
1898
|
+
t.findWidgetAndSetHidden(e, !0);
|
|
1899
|
+
}));
|
|
1763
1900
|
},
|
|
1764
1901
|
showWidgets: function (e) {
|
|
1765
1902
|
let t = this;
|
|
1766
|
-
e
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1903
|
+
e &&
|
|
1904
|
+
("string" === typeof e
|
|
1905
|
+
? this.findWidgetAndSetHidden(e, !1)
|
|
1906
|
+
: Array.isArray(e) &&
|
|
1907
|
+
e.forEach(function (e) {
|
|
1908
|
+
t.findWidgetAndSetHidden(e, !1);
|
|
1909
|
+
}));
|
|
1773
1910
|
},
|
|
1774
1911
|
getFieldWidgets: function () {
|
|
1775
|
-
let e =
|
|
1776
|
-
|
|
1912
|
+
let e =
|
|
1913
|
+
arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
|
|
1914
|
+
return e
|
|
1915
|
+
? baseRefUtil.getAllFieldWidgets(e)
|
|
1916
|
+
: baseRefUtil.getAllFieldWidgets(this.formJsonObj.widgetList);
|
|
1777
1917
|
},
|
|
1778
1918
|
getContainerWidgets: function () {
|
|
1779
|
-
let e =
|
|
1780
|
-
|
|
1781
|
-
|
|
1919
|
+
let e =
|
|
1920
|
+
arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
|
|
1921
|
+
return e
|
|
1922
|
+
? baseRefUtil.getAllContainerWidgets(e)
|
|
1923
|
+
: baseRefUtil.getAllContainerWidgets(this.formJsonObj.widgetList);
|
|
1782
1924
|
},
|
|
1783
1925
|
addEC: function (e, t) {
|
|
1784
1926
|
this.externalComponents[e] = t;
|
|
@@ -1790,7 +1932,8 @@ modules = {
|
|
|
1790
1932
|
return this.externalComponents[e];
|
|
1791
1933
|
},
|
|
1792
1934
|
setReadMode: function () {
|
|
1793
|
-
let e =
|
|
1935
|
+
let e =
|
|
1936
|
+
!(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0];
|
|
1794
1937
|
this.readModeFlag = e;
|
|
1795
1938
|
},
|
|
1796
1939
|
getReadMode: function () {
|
|
@@ -1801,7 +1944,7 @@ modules = {
|
|
|
1801
1944
|
},
|
|
1802
1945
|
executeDataSource: function (e, t) {
|
|
1803
1946
|
let i = this;
|
|
1804
|
-
return Object(ie[
|
|
1947
|
+
return Object(ie["a"])(
|
|
1805
1948
|
regeneratorRuntime.mark(function n() {
|
|
1806
1949
|
let o, a;
|
|
1807
1950
|
return regeneratorRuntime.wrap(function (n) {
|
|
@@ -1810,16 +1953,16 @@ modules = {
|
|
|
1810
1953
|
case 0:
|
|
1811
1954
|
return (
|
|
1812
1955
|
(o = baseRefUtil.getDSByName(i.formJsonObj.formConfig, e)),
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1956
|
+
(a = new Object({})),
|
|
1957
|
+
baseRefUtil.overwriteObj(a, i.globalDsv),
|
|
1958
|
+
baseRefUtil.overwriteObj(a, t),
|
|
1959
|
+
(n.next = 6),
|
|
1960
|
+
baseRefUtil.runDataSourceRequest(o, a, i, !1, i.$message)
|
|
1818
1961
|
);
|
|
1819
1962
|
case 6:
|
|
1820
|
-
return n.abrupt(
|
|
1963
|
+
return n.abrupt("return", n.sent);
|
|
1821
1964
|
case 7:
|
|
1822
|
-
case
|
|
1965
|
+
case "end":
|
|
1823
1966
|
return n.stop();
|
|
1824
1967
|
}
|
|
1825
1968
|
}, n);
|
|
@@ -1840,10 +1983,12 @@ modules = {
|
|
|
1840
1983
|
},
|
|
1841
1984
|
showDialog: function (e, t) {
|
|
1842
1985
|
let i = baseRefUtil.getContainerWidgetByName(this.widgetList, e);
|
|
1843
|
-
if (e &&
|
|
1986
|
+
if (e && "vf-dialog" === i.type) {
|
|
1844
1987
|
let n = {
|
|
1845
1988
|
widgetList: baseRefUtil.deepClone(i.widgetList),
|
|
1846
|
-
formConfig: baseRefUtil.cloneFormConfigWithoutEventHandler(
|
|
1989
|
+
formConfig: baseRefUtil.cloneFormConfigWithoutEventHandler(
|
|
1990
|
+
this.formConfig
|
|
1991
|
+
),
|
|
1847
1992
|
},
|
|
1848
1993
|
// a = o.a.extend(fe),
|
|
1849
1994
|
a = baseRefUtil.Vue.extend(baseRefUtil.dynamicDialogRender),
|
|
@@ -1854,21 +1999,23 @@ modules = {
|
|
|
1854
1999
|
formData: t || {},
|
|
1855
2000
|
optionData: this.optionData,
|
|
1856
2001
|
globalDsv: this.globalDsv,
|
|
1857
|
-
parentFormRef: this
|
|
2002
|
+
parentFormRef: this,
|
|
1858
2003
|
},
|
|
1859
|
-
components: {VFormRender}
|
|
2004
|
+
components: { VFormRender },
|
|
1860
2005
|
});
|
|
1861
2006
|
document.body.appendChild(l.$mount().$el), l.show();
|
|
1862
2007
|
} else {
|
|
1863
|
-
this.$message.error(this.i18nt(
|
|
2008
|
+
this.$message.error(this.i18nt("render.hint.refNotFound") + e);
|
|
1864
2009
|
}
|
|
1865
2010
|
},
|
|
1866
2011
|
showDrawer: function (e, t) {
|
|
1867
2012
|
let i = baseRefUtil.getContainerWidgetByName(this.widgetList, e);
|
|
1868
|
-
if (i &&
|
|
2013
|
+
if (i && "vf-drawer" === i.type) {
|
|
1869
2014
|
let n = {
|
|
1870
2015
|
widgetList: baseRefUtil.deepClone(i.widgetList),
|
|
1871
|
-
formConfig: baseRefUtil.cloneFormConfigWithoutEventHandler(
|
|
2016
|
+
formConfig: baseRefUtil.cloneFormConfigWithoutEventHandler(
|
|
2017
|
+
this.formConfig
|
|
2018
|
+
),
|
|
1872
2019
|
},
|
|
1873
2020
|
a = o.a.extend(we),
|
|
1874
2021
|
l = new a({
|
|
@@ -1878,14 +2025,13 @@ modules = {
|
|
|
1878
2025
|
formData: t || {},
|
|
1879
2026
|
optionData: this.optionData,
|
|
1880
2027
|
globalDsv: this.globalDsv,
|
|
1881
|
-
parentFormRef: this
|
|
1882
|
-
}
|
|
2028
|
+
parentFormRef: this,
|
|
2029
|
+
},
|
|
1883
2030
|
});
|
|
1884
2031
|
document.body.appendChild(l.$mount().$el), l.show();
|
|
1885
|
-
} else this.$message.error(this.i18nt(
|
|
1886
|
-
},
|
|
1887
|
-
showDialogOrDrawer: function (e) {
|
|
2032
|
+
} else this.$message.error(this.i18nt("render.hint.refNotFound") + e);
|
|
1888
2033
|
},
|
|
2034
|
+
showDialogOrDrawer: function (e) {},
|
|
1889
2035
|
getTableFiledMap(flag) {
|
|
1890
2036
|
let fieldMap = {};
|
|
1891
2037
|
let fJson = this.formJson;
|
|
@@ -1893,22 +2039,22 @@ modules = {
|
|
|
1893
2039
|
grid: "cols",
|
|
1894
2040
|
table: "rows",
|
|
1895
2041
|
"table-cell": "widgetList",
|
|
1896
|
-
|
|
2042
|
+
"h5-table": "rows",
|
|
1897
2043
|
"h5-table-cell": "widgetList",
|
|
1898
2044
|
tab: "tabs",
|
|
1899
2045
|
"tab-pane": "widgetList",
|
|
1900
2046
|
"grid-col": "widgetList",
|
|
1901
2047
|
"vf-box": "widgetList",
|
|
1902
|
-
|
|
1903
|
-
|
|
2048
|
+
card: "widgetList",
|
|
2049
|
+
detail: "panes",
|
|
1904
2050
|
"detail-pane": "widgetList",
|
|
1905
2051
|
"detail-h5": "panes",
|
|
1906
2052
|
"h5-card": "panes",
|
|
1907
2053
|
"h5-card-pane": "widgetList",
|
|
1908
|
-
}
|
|
2054
|
+
};
|
|
1909
2055
|
let loopDo = (widgetList) => {
|
|
1910
2056
|
if (!widgetList) return;
|
|
1911
|
-
widgetList.forEach(widget => {
|
|
2057
|
+
widgetList.forEach((widget) => {
|
|
1912
2058
|
let widgetName = widget.options.name;
|
|
1913
2059
|
let fieldKeyName = this.getFieldKeyName(widget);
|
|
1914
2060
|
if (widget.tableField) {
|
|
@@ -1926,35 +2072,33 @@ modules = {
|
|
|
1926
2072
|
let itemField = itemFieldMap[widget.type];
|
|
1927
2073
|
if (itemField) {
|
|
1928
2074
|
if ("table" == widget.type) {
|
|
1929
|
-
widget[itemField].forEach(item => {
|
|
2075
|
+
widget[itemField].forEach((item) => {
|
|
1930
2076
|
loopDo(item.cols);
|
|
1931
|
-
})
|
|
2077
|
+
});
|
|
1932
2078
|
} else if ("h5-table" == widget.type) {
|
|
1933
|
-
widget[itemField].forEach(item => {
|
|
2079
|
+
widget[itemField].forEach((item) => {
|
|
1934
2080
|
loopDo(item.cols);
|
|
1935
|
-
})
|
|
2081
|
+
});
|
|
1936
2082
|
} else {
|
|
1937
2083
|
loopDo(widget[itemField]);
|
|
1938
2084
|
}
|
|
1939
2085
|
}
|
|
1940
2086
|
}
|
|
1941
2087
|
}
|
|
1942
|
-
})
|
|
1943
|
-
}
|
|
2088
|
+
});
|
|
2089
|
+
};
|
|
1944
2090
|
loopDo(fJson.widgetList);
|
|
1945
2091
|
return fieldMap;
|
|
1946
2092
|
},
|
|
1947
2093
|
getFieldKeyName(widget) {
|
|
1948
2094
|
let o = widget.options.name;
|
|
1949
|
-
return (
|
|
1950
|
-
(widget.options.keyNameEnabled
|
|
1951
|
-
&& widget.options.keyName)
|
|
1952
|
-
|| o
|
|
1953
|
-
);
|
|
2095
|
+
return (widget.options.keyNameEnabled && widget.options.keyName) || o;
|
|
1954
2096
|
},
|
|
1955
2097
|
isVabsearchFlagWidget(widget) {
|
|
1956
2098
|
let type = widget?.type;
|
|
1957
|
-
return
|
|
2099
|
+
return (
|
|
2100
|
+
type == "vabsearch" || type == "singerSearch" || type == "multiSearch"
|
|
2101
|
+
);
|
|
1958
2102
|
},
|
|
1959
2103
|
getFormTemplateTableDTOs() {
|
|
1960
2104
|
let formTemplateTableDTOs = [];
|
|
@@ -1966,24 +2110,24 @@ modules = {
|
|
|
1966
2110
|
grid: "cols",
|
|
1967
2111
|
table: "rows",
|
|
1968
2112
|
"table-cell": "widgetList",
|
|
1969
|
-
|
|
2113
|
+
"h5-table": "rows",
|
|
1970
2114
|
"h5-table-cell": "widgetList",
|
|
1971
2115
|
tab: "tabs",
|
|
1972
2116
|
"tab-pane": "widgetList",
|
|
1973
2117
|
"grid-col": "widgetList",
|
|
1974
2118
|
"vf-box": "widgetList",
|
|
1975
|
-
|
|
1976
|
-
|
|
2119
|
+
card: "widgetList",
|
|
2120
|
+
detail: "panes",
|
|
1977
2121
|
"detail-pane": "widgetList",
|
|
1978
2122
|
"detail-h5": "panes",
|
|
1979
2123
|
"h5-card": "panes",
|
|
1980
2124
|
"h5-card-pane": "widgetList",
|
|
1981
|
-
}
|
|
2125
|
+
};
|
|
1982
2126
|
let loopDo = (widgetList) => {
|
|
1983
2127
|
if (!widgetList) return;
|
|
1984
|
-
widgetList.forEach(widget => {
|
|
2128
|
+
widgetList.forEach((widget) => {
|
|
1985
2129
|
let submitFlag = widget.options.submitFlag || false;
|
|
1986
|
-
if (widget.formItemFlag || widget.type ==
|
|
2130
|
+
if (widget.formItemFlag || widget.type == "data-table") {
|
|
1987
2131
|
if (widget.options.submitFlag === void 0) {
|
|
1988
2132
|
submitFlag = true;
|
|
1989
2133
|
}
|
|
@@ -1992,28 +2136,30 @@ modules = {
|
|
|
1992
2136
|
let uniqueName = widget.options.name;
|
|
1993
2137
|
let widgetName = this.getFieldKeyName(widget);
|
|
1994
2138
|
let entityTableCode = widget.options.entityTableCode;
|
|
1995
|
-
if (
|
|
2139
|
+
if (widget.type == "data-table" || widget.type == "list-h5") {
|
|
1996
2140
|
let isTreeTable = widget.options.isTreeTable || false;
|
|
1997
2141
|
if (submitFlag) {
|
|
1998
|
-
let vailColumns = widget.options.tableColumns.filter(
|
|
2142
|
+
let vailColumns = widget.options.tableColumns.filter(
|
|
2143
|
+
(item) => item.prop && item.label
|
|
2144
|
+
);
|
|
1999
2145
|
let itemFields = [];
|
|
2000
|
-
vailColumns.forEach(item => {
|
|
2001
|
-
if (item.formatS ==
|
|
2146
|
+
vailColumns.forEach((item) => {
|
|
2147
|
+
if (item.formatS == "editSearch") {
|
|
2002
2148
|
itemFields.push({
|
|
2003
2149
|
fieldDesc: item.label + "ID",
|
|
2004
|
-
fieldName: item.prop
|
|
2150
|
+
fieldName: item.prop,
|
|
2005
2151
|
});
|
|
2006
2152
|
let vabSearchName = item?.columnOption?.vabSearchName;
|
|
2007
2153
|
if (vabSearchName) {
|
|
2008
2154
|
itemFields.push({
|
|
2009
2155
|
fieldDesc: item.label,
|
|
2010
|
-
fieldName: vabSearchName
|
|
2156
|
+
fieldName: vabSearchName,
|
|
2011
2157
|
});
|
|
2012
2158
|
}
|
|
2013
2159
|
} else {
|
|
2014
2160
|
itemFields.push({
|
|
2015
2161
|
fieldDesc: item.label,
|
|
2016
|
-
fieldName: item.prop
|
|
2162
|
+
fieldName: item.prop,
|
|
2017
2163
|
});
|
|
2018
2164
|
}
|
|
2019
2165
|
});
|
|
@@ -2026,14 +2172,13 @@ modules = {
|
|
|
2026
2172
|
tableType: 1,
|
|
2027
2173
|
isTreeTable,
|
|
2028
2174
|
uniqueName,
|
|
2029
|
-
formTemplateFieldDTOs: []
|
|
2175
|
+
formTemplateFieldDTOs: [],
|
|
2030
2176
|
};
|
|
2031
2177
|
formTemplateTable.formTemplateFieldDTOs = itemFields;
|
|
2032
2178
|
formTemplateTableDTOs.push(formTemplateTable);
|
|
2033
2179
|
}
|
|
2034
2180
|
}
|
|
2035
|
-
|
|
2036
|
-
} else if (widget.type == 'vabUpload') {
|
|
2181
|
+
} else if (widget.type == "vabUpload") {
|
|
2037
2182
|
if (submitFlag) {
|
|
2038
2183
|
let formTemplateTable = {
|
|
2039
2184
|
tableAlias: widgetName,
|
|
@@ -2044,7 +2189,7 @@ modules = {
|
|
|
2044
2189
|
};
|
|
2045
2190
|
formTemplateTableDTOs.push(formTemplateTable);
|
|
2046
2191
|
}
|
|
2047
|
-
} else if (widget.type ==
|
|
2192
|
+
} else if (widget.type == "project-tag") {
|
|
2048
2193
|
if (submitFlag) {
|
|
2049
2194
|
let formTemplateTable = {
|
|
2050
2195
|
tableAlias: widgetName,
|
|
@@ -2055,7 +2200,7 @@ modules = {
|
|
|
2055
2200
|
};
|
|
2056
2201
|
formTemplateTableDTOs.push(formTemplateTable);
|
|
2057
2202
|
}
|
|
2058
|
-
} else if (widget.type ==
|
|
2203
|
+
} else if (widget.type == "table2") {
|
|
2059
2204
|
if (submitFlag) {
|
|
2060
2205
|
let formTemplateTable = {
|
|
2061
2206
|
tableAlias: widgetName,
|
|
@@ -2070,14 +2215,14 @@ modules = {
|
|
|
2070
2215
|
if (submitFlag) {
|
|
2071
2216
|
fields.push({
|
|
2072
2217
|
fieldDesc: widget.options.label + "ID",
|
|
2073
|
-
fieldName: widgetName
|
|
2074
|
-
})
|
|
2218
|
+
fieldName: widgetName,
|
|
2219
|
+
});
|
|
2075
2220
|
let vabSearchName = widget.options.vabSearchName;
|
|
2076
2221
|
if (vabSearchName) {
|
|
2077
2222
|
fields.push({
|
|
2078
2223
|
fieldDesc: widget.options.label,
|
|
2079
2224
|
fieldName: vabSearchName,
|
|
2080
|
-
name: vabSearchName
|
|
2225
|
+
name: vabSearchName,
|
|
2081
2226
|
});
|
|
2082
2227
|
}
|
|
2083
2228
|
}
|
|
@@ -2086,37 +2231,37 @@ modules = {
|
|
|
2086
2231
|
fields.push({
|
|
2087
2232
|
fieldDesc: widget.options.label,
|
|
2088
2233
|
fieldName: widgetName,
|
|
2089
|
-
name: widget.options.name
|
|
2090
|
-
})
|
|
2234
|
+
name: widget.options.name,
|
|
2235
|
+
});
|
|
2091
2236
|
}
|
|
2092
2237
|
} else {
|
|
2093
2238
|
if (widget.category == "container") {
|
|
2094
2239
|
let itemField = itemFieldMap[widget.type];
|
|
2095
2240
|
if (itemField) {
|
|
2096
2241
|
if ("table" == widget.type) {
|
|
2097
|
-
widget[itemField].forEach(item => {
|
|
2242
|
+
widget[itemField].forEach((item) => {
|
|
2098
2243
|
loopDo(item.cols);
|
|
2099
|
-
})
|
|
2244
|
+
});
|
|
2100
2245
|
} else if ("h5-table" == widget.type) {
|
|
2101
|
-
widget[itemField].forEach(item => {
|
|
2246
|
+
widget[itemField].forEach((item) => {
|
|
2102
2247
|
loopDo(item.cols);
|
|
2103
|
-
})
|
|
2248
|
+
});
|
|
2104
2249
|
} else {
|
|
2105
2250
|
loopDo(widget[itemField]);
|
|
2106
2251
|
}
|
|
2107
2252
|
}
|
|
2108
2253
|
}
|
|
2109
2254
|
}
|
|
2110
|
-
})
|
|
2111
|
-
}
|
|
2255
|
+
});
|
|
2256
|
+
};
|
|
2112
2257
|
loopDo(fJson.widgetList);
|
|
2113
2258
|
if (fields.length) {
|
|
2114
2259
|
let formTemplateTable = {
|
|
2115
2260
|
tableAlias: null,
|
|
2116
2261
|
formCode: formCode,
|
|
2117
2262
|
tableType: 0,
|
|
2118
|
-
formTemplateFieldDTOs: fields
|
|
2119
|
-
}
|
|
2263
|
+
formTemplateFieldDTOs: fields,
|
|
2264
|
+
};
|
|
2120
2265
|
formTemplateTableDTOs.push(formTemplateTable);
|
|
2121
2266
|
}
|
|
2122
2267
|
|
|
@@ -2131,40 +2276,48 @@ modules = {
|
|
|
2131
2276
|
let formConfig = this.formConfig;
|
|
2132
2277
|
return new Promise((resolve, reject) => {
|
|
2133
2278
|
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]
|
|
2279
|
+
this.getFormData()
|
|
2280
|
+
.then((formData, b) => {
|
|
2281
|
+
for (let key in formData) {
|
|
2282
|
+
let tableField = tableFiledMap[key];
|
|
2283
|
+
if (tableField) {
|
|
2284
|
+
res[tableField] = formData[key];
|
|
2285
|
+
}
|
|
2157
2286
|
}
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2287
|
+
let newFormData = {};
|
|
2288
|
+
formTemplateTableDTOs.forEach((formTemplateTableDTO) => {
|
|
2289
|
+
let tableAlias =
|
|
2290
|
+
formTemplateTableDTO.tableType == 0
|
|
2291
|
+
? formCode
|
|
2292
|
+
: formTemplateTableDTO.tableAlias;
|
|
2293
|
+
if (formTemplateTableDTO.tableType == 0) {
|
|
2294
|
+
let item = this.$baseLodash.cloneDeep(this.formData);
|
|
2295
|
+
Object.keys(item).forEach((key) => {
|
|
2296
|
+
if (Array.isArray(item[key])) {
|
|
2297
|
+
delete item[key];
|
|
2298
|
+
}
|
|
2299
|
+
});
|
|
2300
|
+
formTemplateTableDTO.formTemplateFieldDTOs.forEach(
|
|
2301
|
+
(formTemplateFieldDTO) => {
|
|
2302
|
+
item[formTemplateFieldDTO.fieldName] =
|
|
2303
|
+
res[formTemplateFieldDTO.fieldName];
|
|
2304
|
+
}
|
|
2305
|
+
);
|
|
2306
|
+
newFormData[tableAlias] = item;
|
|
2307
|
+
} else {
|
|
2308
|
+
newFormData[tableAlias] =
|
|
2309
|
+
formDataModel[formTemplateTableDTO.name];
|
|
2310
|
+
}
|
|
2311
|
+
});
|
|
2312
|
+
/*if (formConfig.formType === 1) {
|
|
2161
2313
|
newFormData = this.getSysFormData(newFormData);
|
|
2162
2314
|
}*/
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2315
|
+
resolve(newFormData);
|
|
2316
|
+
})
|
|
2317
|
+
.catch((msg) => {
|
|
2318
|
+
reject(msg);
|
|
2319
|
+
});
|
|
2320
|
+
});
|
|
2168
2321
|
},
|
|
2169
2322
|
getSubData2(flag) {
|
|
2170
2323
|
let that = this;
|
|
@@ -2185,61 +2338,79 @@ modules = {
|
|
|
2185
2338
|
}
|
|
2186
2339
|
|
|
2187
2340
|
let newFormData = {};
|
|
2188
|
-
formTemplateTableDTOs.forEach(formTemplateTableDTO => {
|
|
2189
|
-
let tableAlias =
|
|
2341
|
+
formTemplateTableDTOs.forEach((formTemplateTableDTO) => {
|
|
2342
|
+
let tableAlias =
|
|
2343
|
+
formTemplateTableDTO.tableType == 0
|
|
2344
|
+
? formCode
|
|
2345
|
+
: formTemplateTableDTO.tableAlias;
|
|
2190
2346
|
if (formTemplateTableDTO.tableType == 0) {
|
|
2191
2347
|
let item = this.$baseLodash.cloneDeep(this.currentFormData);
|
|
2192
|
-
Object.keys(item).forEach(key => {
|
|
2348
|
+
Object.keys(item).forEach((key) => {
|
|
2193
2349
|
if (Array.isArray(item[key])) {
|
|
2194
2350
|
delete item[key];
|
|
2195
2351
|
}
|
|
2196
|
-
})
|
|
2197
|
-
formTemplateTableDTO.formTemplateFieldDTOs.forEach(
|
|
2198
|
-
|
|
2199
|
-
|
|
2352
|
+
});
|
|
2353
|
+
formTemplateTableDTO.formTemplateFieldDTOs.forEach(
|
|
2354
|
+
(formTemplateFieldDTO) => {
|
|
2355
|
+
item[formTemplateFieldDTO.fieldName] =
|
|
2356
|
+
res[formTemplateFieldDTO.fieldName];
|
|
2357
|
+
}
|
|
2358
|
+
);
|
|
2200
2359
|
newFormData[tableAlias] = item ?? null;
|
|
2201
2360
|
} else {
|
|
2202
2361
|
if (formTemplateTableDTO.isTreeTable) {
|
|
2203
|
-
let tableTarget = this.getWidgetRef(
|
|
2204
|
-
|
|
2362
|
+
let tableTarget = this.getWidgetRef(
|
|
2363
|
+
formTemplateTableDTO.uniqueName
|
|
2364
|
+
);
|
|
2365
|
+
let $grid = tableTarget.getGridTable();
|
|
2205
2366
|
let parentField = $grid.treeConfig.parentField;
|
|
2206
2367
|
let treeTaBm = newFormData.treeTaBm || [];
|
|
2207
2368
|
treeTaBm.push(formTemplateTableDTO.tableAlias);
|
|
2208
2369
|
newFormData.treeTaBm = treeTaBm;
|
|
2209
|
-
let tableDatas = this.$baseLodash.cloneDeep(
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2370
|
+
let tableDatas = this.$baseLodash.cloneDeep(
|
|
2371
|
+
formDataModel[formTemplateTableDTO.name] || []
|
|
2372
|
+
);
|
|
2373
|
+
tableDatas.forEach((tableData) => {
|
|
2374
|
+
if (
|
|
2375
|
+
tableData.id &&
|
|
2376
|
+
tableData.id.startsWith &&
|
|
2377
|
+
tableData.id.startsWith("row_")
|
|
2378
|
+
) {
|
|
2379
|
+
tableData.id = null;
|
|
2213
2380
|
}
|
|
2214
|
-
if (
|
|
2381
|
+
if (
|
|
2382
|
+
tableData[parentField] &&
|
|
2383
|
+
tableData[parentField].startsWith &&
|
|
2384
|
+
tableData[parentField].startsWith("row_")
|
|
2385
|
+
) {
|
|
2215
2386
|
tableData[parentField] = null;
|
|
2216
2387
|
}
|
|
2217
|
-
if (tableData[parentField] === undefined)
|
|
2218
|
-
|
|
2219
|
-
|
|
2388
|
+
if (tableData[parentField] === undefined)
|
|
2389
|
+
tableData[parentField] = null;
|
|
2390
|
+
});
|
|
2391
|
+
tableDatas = tableDatas.filter((item) => {
|
|
2220
2392
|
return item[parentField] === 0 || item[parentField] === null;
|
|
2221
|
-
})
|
|
2393
|
+
});
|
|
2222
2394
|
newFormData[tableAlias] = tableDatas;
|
|
2223
2395
|
} else {
|
|
2224
|
-
newFormData[tableAlias] =
|
|
2396
|
+
newFormData[tableAlias] =
|
|
2397
|
+
formDataModel[formTemplateTableDTO.name] ?? null;
|
|
2225
2398
|
}
|
|
2226
|
-
|
|
2227
2399
|
}
|
|
2228
|
-
|
|
2229
|
-
})
|
|
2400
|
+
});
|
|
2230
2401
|
if (flag) {
|
|
2231
2402
|
newFormData = this.getSysFormData(newFormData);
|
|
2232
2403
|
}
|
|
2233
2404
|
return newFormData;
|
|
2234
2405
|
},
|
|
2235
2406
|
getSysFormData(realFormData) {
|
|
2236
|
-
let formData0 = this.$baseLodash.cloneDeep(realFormData)
|
|
2407
|
+
let formData0 = this.$baseLodash.cloneDeep(realFormData);
|
|
2237
2408
|
let formConfig = this.formConfig;
|
|
2238
|
-
let reportTemplate = this.reportTemplate
|
|
2409
|
+
let reportTemplate = this.reportTemplate;
|
|
2239
2410
|
let formCode = reportTemplate.formCode;
|
|
2240
|
-
let formData = this.$baseLodash.cloneDeep(formData0[formCode])
|
|
2411
|
+
let formData = this.$baseLodash.cloneDeep(formData0[formCode]);
|
|
2241
2412
|
if (formData) {
|
|
2242
|
-
Object.keys(formData0).forEach(key => {
|
|
2413
|
+
Object.keys(formData0).forEach((key) => {
|
|
2243
2414
|
if (key != formCode) {
|
|
2244
2415
|
formData[key] = formData0[key];
|
|
2245
2416
|
}
|
|
@@ -2251,19 +2422,19 @@ modules = {
|
|
|
2251
2422
|
getRealFormData(option) {
|
|
2252
2423
|
let formCode = this.reportTemplate.formCode;
|
|
2253
2424
|
let subData = this.getSubData2();
|
|
2254
|
-
let realFormData = {}
|
|
2425
|
+
let realFormData = {};
|
|
2255
2426
|
if (option) {
|
|
2256
|
-
Object.keys(option).forEach(key => {
|
|
2427
|
+
Object.keys(option).forEach((key) => {
|
|
2257
2428
|
realFormData[option[key]] = subData[key];
|
|
2258
|
-
})
|
|
2429
|
+
});
|
|
2259
2430
|
} else {
|
|
2260
2431
|
realFormData = subData;
|
|
2261
2432
|
}
|
|
2262
2433
|
return realFormData;
|
|
2263
2434
|
},
|
|
2264
2435
|
reloadForm(option) {
|
|
2265
|
-
let target1 = this.$attrs[
|
|
2266
|
-
let target2 = target1?.$attrs[
|
|
2436
|
+
let target1 = this.$attrs["parent-target"];
|
|
2437
|
+
let target2 = target1?.$attrs["parent-target"];
|
|
2267
2438
|
let target = !target2 ? this : target1;
|
|
2268
2439
|
/* if (this.$attrs['reloadDialog'] !== true) {
|
|
2269
2440
|
target = this.$attrs['parent-target'];
|
|
@@ -2278,7 +2449,7 @@ modules = {
|
|
|
2278
2449
|
},
|
|
2279
2450
|
saveForm(callback) {
|
|
2280
2451
|
this.validateForm(() => {
|
|
2281
|
-
this.getSubData().then(formData => {
|
|
2452
|
+
this.getSubData().then((formData) => {
|
|
2282
2453
|
let reportTemplate = this.reportTemplate || {};
|
|
2283
2454
|
let formConfig = this.formConfig;
|
|
2284
2455
|
let realFormData = Object.assign({}, formData);
|
|
@@ -2289,60 +2460,59 @@ modules = {
|
|
|
2289
2460
|
formCode: reportTemplate.formCode,
|
|
2290
2461
|
formVersion: reportTemplate.formVersion,
|
|
2291
2462
|
// insUuid: reportTemplate.insUuid,
|
|
2292
|
-
data: realFormData
|
|
2293
|
-
}
|
|
2463
|
+
data: realFormData,
|
|
2464
|
+
};
|
|
2294
2465
|
|
|
2295
|
-
this.$baseConfirm(
|
|
2466
|
+
this.$baseConfirm("您确定要保存吗?").then(() => {
|
|
2296
2467
|
let saveConfig = formConfig.saveConfig || {};
|
|
2297
2468
|
this.formHttp({
|
|
2298
2469
|
options: saveConfig,
|
|
2299
2470
|
params: reqData,
|
|
2300
2471
|
targetFormTemplate: reportTemplate,
|
|
2301
|
-
success: res => {
|
|
2472
|
+
success: (res) => {
|
|
2302
2473
|
this.$message({
|
|
2303
2474
|
message: res.content,
|
|
2304
|
-
type:
|
|
2475
|
+
type: "success",
|
|
2305
2476
|
duration: 500,
|
|
2306
|
-
onClose: t => {
|
|
2307
|
-
callback && callback(res)
|
|
2308
|
-
this.$parent.$emit(
|
|
2477
|
+
onClose: (t) => {
|
|
2478
|
+
callback && callback(res);
|
|
2479
|
+
this.$parent.$emit("update:object_foreign_id", res.objx);
|
|
2309
2480
|
// this.$parent.$attrs.wfParam.submitCallback();
|
|
2310
|
-
this.$parent.$baseReload()
|
|
2311
|
-
}
|
|
2481
|
+
this.$parent.$baseReload();
|
|
2482
|
+
},
|
|
2312
2483
|
});
|
|
2313
|
-
}
|
|
2314
|
-
})
|
|
2315
|
-
})
|
|
2484
|
+
},
|
|
2485
|
+
});
|
|
2486
|
+
});
|
|
2316
2487
|
});
|
|
2317
|
-
})
|
|
2488
|
+
});
|
|
2318
2489
|
},
|
|
2319
2490
|
submitForm(callback) {
|
|
2320
2491
|
let reportTemplate = this.reportTemplate || {};
|
|
2321
2492
|
let insUuid = reportTemplate.insUuid;
|
|
2322
2493
|
if (insUuid) {
|
|
2323
|
-
this.$baseConfirm(
|
|
2494
|
+
this.$baseConfirm("您确定要提交吗?").then(() => {
|
|
2324
2495
|
this.$http({
|
|
2325
2496
|
url: USER_PREFIX + `/form_ins/submit`,
|
|
2326
2497
|
method: `post`,
|
|
2327
|
-
data: {stringOne: insUuid},
|
|
2498
|
+
data: { stringOne: insUuid },
|
|
2328
2499
|
isLoading: true,
|
|
2329
2500
|
// loadingTarget: document.body,
|
|
2330
2501
|
modalStrictly: true,
|
|
2331
|
-
success: res => {
|
|
2502
|
+
success: (res) => {
|
|
2332
2503
|
this.$message({
|
|
2333
2504
|
message: res.content,
|
|
2334
|
-
type:
|
|
2505
|
+
type: "success",
|
|
2335
2506
|
duration: 500,
|
|
2336
|
-
onClose: t => {
|
|
2507
|
+
onClose: (t) => {
|
|
2337
2508
|
callback && callback(res);
|
|
2338
2509
|
// this.$parent.$attrs.wfParam.submitCallback();
|
|
2339
|
-
this.$parent.$baseReload()
|
|
2340
|
-
}
|
|
2510
|
+
this.$parent.$baseReload();
|
|
2511
|
+
},
|
|
2341
2512
|
});
|
|
2342
|
-
|
|
2343
|
-
}
|
|
2513
|
+
},
|
|
2344
2514
|
});
|
|
2345
|
-
})
|
|
2515
|
+
});
|
|
2346
2516
|
}
|
|
2347
2517
|
},
|
|
2348
2518
|
jumpFormView(row) {
|
|
@@ -2364,10 +2534,16 @@ modules = {
|
|
|
2364
2534
|
return res;
|
|
2365
2535
|
},
|
|
2366
2536
|
getContainerByType(typeName) {
|
|
2367
|
-
let allWidgets = [
|
|
2537
|
+
let allWidgets = [
|
|
2538
|
+
...containers,
|
|
2539
|
+
...basicFields,
|
|
2540
|
+
...advancedFields,
|
|
2541
|
+
...customFields,
|
|
2542
|
+
...businessFields,
|
|
2543
|
+
];
|
|
2368
2544
|
let foundCon = null;
|
|
2369
|
-
allWidgets.forEach(con => {
|
|
2370
|
-
if (!!con.category && !!con.type &&
|
|
2545
|
+
allWidgets.forEach((con) => {
|
|
2546
|
+
if (!!con.category && !!con.type && con.type === typeName) {
|
|
2371
2547
|
foundCon = con;
|
|
2372
2548
|
}
|
|
2373
2549
|
});
|
|
@@ -2375,10 +2551,16 @@ modules = {
|
|
|
2375
2551
|
return foundCon;
|
|
2376
2552
|
},
|
|
2377
2553
|
getFieldWidgetByType(typeName) {
|
|
2378
|
-
let allWidgets = [
|
|
2554
|
+
let allWidgets = [
|
|
2555
|
+
...containers,
|
|
2556
|
+
...basicFields,
|
|
2557
|
+
...advancedFields,
|
|
2558
|
+
...customFields,
|
|
2559
|
+
...businessFields,
|
|
2560
|
+
];
|
|
2379
2561
|
let foundWidget = null;
|
|
2380
|
-
allWidgets.forEach(widget => {
|
|
2381
|
-
if (!!!widget.category && !!widget.type &&
|
|
2562
|
+
allWidgets.forEach((widget) => {
|
|
2563
|
+
if (!!!widget.category && !!widget.type && widget.type === typeName) {
|
|
2382
2564
|
foundWidget = widget;
|
|
2383
2565
|
}
|
|
2384
2566
|
});
|
|
@@ -2387,164 +2569,167 @@ modules = {
|
|
|
2387
2569
|
},
|
|
2388
2570
|
copyNewFieldWidget(origin) {
|
|
2389
2571
|
let newWidget = deepClone(origin);
|
|
2390
|
-
newWidget.type =
|
|
2572
|
+
newWidget.type = newWidget.targetType || newWidget.type;
|
|
2391
2573
|
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
|
-
}
|
|
2574
|
+
newWidget.id = newWidget.type.replace(/-/g, "") + tempId;
|
|
2575
|
+
return newWidget;
|
|
2576
|
+
},
|
|
2577
|
+
getColumnWidget(row, isEdit) {
|
|
2578
|
+
//获取
|
|
2579
|
+
let formatS = isEdit ? row.editFormatS : row.formatS;
|
|
2580
|
+
let type = columnFormatMap[formatS];
|
|
2581
|
+
if (!type) return null;
|
|
2582
|
+
if (isEdit) {
|
|
2583
|
+
if (row.editWidget) {
|
|
2584
|
+
return row.editWidget;
|
|
2422
2585
|
}
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
2430
|
-
|
|
2431
|
-
if (
|
|
2432
|
-
|
|
2586
|
+
if (row.editColumnOption) {
|
|
2587
|
+
let fieldWidget = this.copyNewFieldWidget(
|
|
2588
|
+
this.getFieldWidgetByType(type)
|
|
2589
|
+
);
|
|
2590
|
+
fieldWidget.options = row.editColumnOption;
|
|
2591
|
+
return fieldWidget;
|
|
2592
|
+
}
|
|
2593
|
+
} else {
|
|
2594
|
+
if (row.widget) {
|
|
2595
|
+
return row.widget;
|
|
2596
|
+
}
|
|
2597
|
+
if (row.columnOption) {
|
|
2598
|
+
let fieldWidget = this.copyNewFieldWidget(
|
|
2433
2599
|
this.getFieldWidgetByType(type)
|
|
2434
2600
|
);
|
|
2601
|
+
fieldWidget.options = row.columnOption;
|
|
2602
|
+
return fieldWidget;
|
|
2603
|
+
}
|
|
2604
|
+
}
|
|
2605
|
+
return this.createColumnWidget(row, isEdit);
|
|
2606
|
+
},
|
|
2607
|
+
createColumnWidget(row, isEdit) {
|
|
2608
|
+
let formatS = isEdit ? row.editFormatS : row.formatS;
|
|
2609
|
+
let type = columnFormatMap[formatS];
|
|
2610
|
+
if (!type) return null;
|
|
2435
2611
|
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2612
|
+
let columnSelectedWidget = null;
|
|
2613
|
+
if (type) {
|
|
2614
|
+
columnSelectedWidget = this.copyNewFieldWidget(
|
|
2615
|
+
this.getFieldWidgetByType(type)
|
|
2616
|
+
);
|
|
2439
2617
|
|
|
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
|
-
}
|
|
2618
|
+
if (columnSelectedWidget.options.hasOwnProperty("required")) {
|
|
2619
|
+
columnSelectedWidget.options.required = row.required || false;
|
|
2620
|
+
}
|
|
2482
2621
|
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
2622
|
+
if ("editDelete" == formatS) {
|
|
2623
|
+
columnSelectedWidget.options.prefixIcon = "el-icon-delete";
|
|
2624
|
+
columnSelectedWidget.options.label = "删除";
|
|
2625
|
+
columnSelectedWidget.options.labelHidden = true;
|
|
2626
|
+
columnSelectedWidget.options.hiddenByWf = true;
|
|
2627
|
+
columnSelectedWidget.options.onClick =
|
|
2628
|
+
"let tableParam = this.tableParam;\nlet tableRef = this.getWidgetRef(this.parentWidget.options.name);\ntableRef.deleteRow(tableParam.row,tableParam.rowIndex);";
|
|
2629
|
+
} else if ("editButton" == formatS) {
|
|
2630
|
+
columnSelectedWidget.options.prefixIcon = "el-icon-edit";
|
|
2631
|
+
columnSelectedWidget.options.label = "查看";
|
|
2632
|
+
columnSelectedWidget.options.labelHidden = true;
|
|
2633
|
+
columnSelectedWidget.options.onClick =
|
|
2634
|
+
"let tableParam = this.tableParam;\nlet tableRef = this.getWidgetRef(this.parentWidget.options.name);\ntableRef.openEditDialog(tableParam.row)";
|
|
2635
|
+
} else if ("addSiblingEditRow" == formatS) {
|
|
2636
|
+
columnSelectedWidget.options.prefixIcon = "el-icon-plus";
|
|
2637
|
+
columnSelectedWidget.options.label = "新增兄弟节点";
|
|
2638
|
+
columnSelectedWidget.options.labelHidden = false;
|
|
2639
|
+
columnSelectedWidget.options.onClick =
|
|
2640
|
+
"let tableParam = this.tableParam;\nthis.getParentTarget().addSiblingTreeRow(null,tableParam);";
|
|
2641
|
+
} else if ("addChildTreeRow" == formatS) {
|
|
2642
|
+
columnSelectedWidget.options.prefixIcon = "el-icon-plus";
|
|
2643
|
+
columnSelectedWidget.options.label = "新增子节点";
|
|
2644
|
+
columnSelectedWidget.options.labelHidden = false;
|
|
2645
|
+
columnSelectedWidget.options.onClick =
|
|
2646
|
+
"let tableParam = this.tableParam;\nthis.getParentTarget().addChildTreeRow(null,tableParam);";
|
|
2647
|
+
} else if ("moveUpRow" == formatS) {
|
|
2648
|
+
columnSelectedWidget.options.label = "↑上移";
|
|
2649
|
+
columnSelectedWidget.options.labelHidden = false;
|
|
2650
|
+
columnSelectedWidget.options.onClick =
|
|
2651
|
+
"let tableParam = this.tableParam;\nthis.getParentTarget().moveUpRow(tableParam);";
|
|
2652
|
+
} else if ("moveDownRow" == formatS) {
|
|
2653
|
+
columnSelectedWidget.options.label = "↓下移";
|
|
2654
|
+
columnSelectedWidget.options.labelHidden = false;
|
|
2655
|
+
columnSelectedWidget.options.onClick =
|
|
2656
|
+
"let tableParam = this.tableParam;\nthis.getParentTarget().moveDownRow(tableParam);";
|
|
2657
|
+
} else if ("removeTreeRow" == formatS) {
|
|
2658
|
+
columnSelectedWidget.options.prefixIcon = "el-icon-delete";
|
|
2659
|
+
columnSelectedWidget.options.label = "删除";
|
|
2660
|
+
columnSelectedWidget.options.labelHidden = true;
|
|
2661
|
+
columnSelectedWidget.options.onClick =
|
|
2662
|
+
"let tableParam = this.tableParam;\nthis.getParentTarget().removeTreeRow(tableParam);";
|
|
2663
|
+
}
|
|
2489
2664
|
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2665
|
+
if (columnSelectedWidget.options.hasOwnProperty("keyName")) {
|
|
2666
|
+
columnSelectedWidget.options.keyName = row.prop;
|
|
2667
|
+
columnSelectedWidget.options.keyNameEnabled = true;
|
|
2668
|
+
} else {
|
|
2669
|
+
columnSelectedWidget.options.name = row.prop;
|
|
2494
2670
|
}
|
|
2495
|
-
|
|
2496
|
-
|
|
2671
|
+
|
|
2672
|
+
if (type != "button" && type != "a-link") {
|
|
2673
|
+
columnSelectedWidget.options.label = row.label;
|
|
2674
|
+
columnSelectedWidget.options.labelHidden = true;
|
|
2675
|
+
}
|
|
2676
|
+
}
|
|
2677
|
+
return columnSelectedWidget;
|
|
2678
|
+
},
|
|
2497
2679
|
doScriptAccess(scriptUuid, callback) {
|
|
2498
2680
|
if (scriptUuid) {
|
|
2499
2681
|
let scripts = this.formJson.formConfig.scriptList || [];
|
|
2500
|
-
let item = scripts.find(item => item.scriptUuid == scriptUuid);
|
|
2682
|
+
let item = scripts.find((item) => item.scriptUuid == scriptUuid);
|
|
2501
2683
|
if (item && item.enabled) {
|
|
2502
2684
|
let path = "";
|
|
2503
2685
|
let reportTemplate = this.getReportTemplate();
|
|
2504
2686
|
let formCode = reportTemplate.formCode;
|
|
2505
|
-
let e = new Function(
|
|
2687
|
+
let e = new Function("formCode", item.scriptParams);
|
|
2506
2688
|
let params = e.call(this, formCode);
|
|
2507
2689
|
this.$http({
|
|
2508
2690
|
url: path,
|
|
2509
2691
|
method: `post`,
|
|
2510
2692
|
data: {
|
|
2511
|
-
...params
|
|
2693
|
+
...params,
|
|
2512
2694
|
},
|
|
2513
2695
|
isLoading: true,
|
|
2514
2696
|
// loadingTarget: document.body,
|
|
2515
2697
|
modalStrictly: true,
|
|
2516
|
-
success: res => {
|
|
2517
|
-
let e1 = new Function(
|
|
2698
|
+
success: (res) => {
|
|
2699
|
+
let e1 = new Function("resultMsg", item.onScriptSuccess);
|
|
2518
2700
|
e1.call(this, res);
|
|
2519
2701
|
callback && callback(res && res.objx ? res.objx : []);
|
|
2520
|
-
}
|
|
2702
|
+
},
|
|
2521
2703
|
});
|
|
2522
2704
|
}
|
|
2523
2705
|
}
|
|
2524
2706
|
},
|
|
2525
2707
|
validate(callback) {
|
|
2526
|
-
this.$refs[
|
|
2527
|
-
|
|
2528
|
-
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
|
|
2533
|
-
|
|
2708
|
+
this.$refs["renderForm"].$baseValidate(
|
|
2709
|
+
(valid, obj) => {
|
|
2710
|
+
if (!valid) {
|
|
2711
|
+
let message = null;
|
|
2712
|
+
let keys = Object.keys(obj);
|
|
2713
|
+
if (keys.length) {
|
|
2714
|
+
let item = obj[keys[0]];
|
|
2715
|
+
if (item && item.length) {
|
|
2716
|
+
message = item[0].message;
|
|
2717
|
+
}
|
|
2718
|
+
}
|
|
2719
|
+
if (!message) {
|
|
2720
|
+
message = this.$t2("必填项不能为空", "system.message.required");
|
|
2534
2721
|
}
|
|
2535
|
-
}
|
|
2536
|
-
if (!message) {
|
|
2537
|
-
message = this.$t2("必填项不能为空", "system.message.required");
|
|
2538
|
-
}
|
|
2539
2722
|
|
|
2540
|
-
|
|
2541
|
-
|
|
2542
|
-
|
|
2543
|
-
|
|
2544
|
-
|
|
2545
|
-
|
|
2546
|
-
|
|
2547
|
-
|
|
2723
|
+
this.$message({
|
|
2724
|
+
message: message,
|
|
2725
|
+
type: "error",
|
|
2726
|
+
duration: 2000,
|
|
2727
|
+
});
|
|
2728
|
+
}
|
|
2729
|
+
callback && callback(valid);
|
|
2730
|
+
},
|
|
2731
|
+
{ errorTip: false }
|
|
2732
|
+
);
|
|
2548
2733
|
},
|
|
2549
2734
|
/*scrollToFirstError() {
|
|
2550
2735
|
// 获取第一个验证失败的字段
|
|
@@ -2576,14 +2761,14 @@ modules = {
|
|
|
2576
2761
|
this.showSearchDialog = true;
|
|
2577
2762
|
},
|
|
2578
2763
|
confirmSearchDialog(rows) {
|
|
2579
|
-
this.searchDialogOption.confirm && this.searchDialogOption.confirm(rows)
|
|
2764
|
+
this.searchDialogOption.confirm && this.searchDialogOption.confirm(rows);
|
|
2580
2765
|
},
|
|
2581
2766
|
openFormDialog(option) {
|
|
2582
2767
|
this.formDialogOption = option;
|
|
2583
2768
|
this.showFormDialog = true;
|
|
2584
2769
|
},
|
|
2585
2770
|
confirmFormDialog() {
|
|
2586
|
-
this.formDialogOption.confirm && this.formDialogOption.confirm()
|
|
2771
|
+
this.formDialogOption.confirm && this.formDialogOption.confirm();
|
|
2587
2772
|
},
|
|
2588
2773
|
addInterval(handler, timeout) {
|
|
2589
2774
|
let timer = setInterval(handler, timeout);
|
|
@@ -2610,7 +2795,7 @@ modules = {
|
|
|
2610
2795
|
this.showFormDrawer = true;
|
|
2611
2796
|
},
|
|
2612
2797
|
confirmFormDrawer() {
|
|
2613
|
-
this.formDrawerOption.confirm && this.formDrawerOption.confirm()
|
|
2798
|
+
this.formDrawerOption.confirm && this.formDrawerOption.confirm();
|
|
2614
2799
|
},
|
|
2615
2800
|
|
|
2616
2801
|
openFileReferenceDialog(option) {
|
|
@@ -2618,187 +2803,186 @@ modules = {
|
|
|
2618
2803
|
this.showFileReferenceDialog = true;
|
|
2619
2804
|
},
|
|
2620
2805
|
confirmFileReferenceDialog() {
|
|
2621
|
-
this.fileReferenceDialogOption.confirm &&
|
|
2806
|
+
this.fileReferenceDialogOption.confirm &&
|
|
2807
|
+
this.fileReferenceDialogOption.confirm();
|
|
2622
2808
|
},
|
|
2623
|
-
getFormRef(){
|
|
2809
|
+
getFormRef() {
|
|
2624
2810
|
return this;
|
|
2625
2811
|
},
|
|
2626
2812
|
isObject(value) {
|
|
2627
2813
|
return Object.prototype.toString.call(value) === "[object Object]";
|
|
2628
2814
|
},
|
|
2629
|
-
openCopyEditTab(copyData){
|
|
2815
|
+
openCopyEditTab(copyData) {
|
|
2630
2816
|
let formData = this.$baseLodash.cloneDeep(copyData || this.formDataModel);
|
|
2631
2817
|
|
|
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)){
|
|
2818
|
+
const handleData = (data) => {
|
|
2819
|
+
if (!data) return;
|
|
2820
|
+
if (Array.isArray(data)) {
|
|
2821
|
+
data.forEach((item) => {
|
|
2822
|
+
handleData(item);
|
|
2823
|
+
});
|
|
2824
|
+
return;
|
|
2825
|
+
} else if (this.isObject(data)) {
|
|
2640
2826
|
data.id = null;
|
|
2641
2827
|
data.create_by = null;
|
|
2642
2828
|
data.create_date = null;
|
|
2643
2829
|
data.modify_by = null;
|
|
2644
2830
|
data.modify_date = null;
|
|
2645
2831
|
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)){
|
|
2832
|
+
delete data.objectForeignId;
|
|
2833
|
+
if (data.createBy) data.createBy;
|
|
2834
|
+
if (data.createDate) data.createDate;
|
|
2835
|
+
if (data.modifyBy) data.modifyBy;
|
|
2836
|
+
if (data.modifyDate) data.modifyDate;
|
|
2837
|
+
Object.keys(data).forEach((key) => {
|
|
2838
|
+
let value = data[key];
|
|
2839
|
+
if (value && Array.isArray(value)) {
|
|
2654
2840
|
handleData(value);
|
|
2655
2841
|
}
|
|
2656
|
-
})
|
|
2842
|
+
});
|
|
2657
2843
|
}
|
|
2658
|
-
}
|
|
2659
|
-
if(formData){
|
|
2660
|
-
handleData(formData)
|
|
2844
|
+
};
|
|
2845
|
+
if (formData) {
|
|
2846
|
+
handleData(formData);
|
|
2661
2847
|
}
|
|
2662
2848
|
|
|
2663
|
-
this.$emit("openCopyEditTab",formData)
|
|
2849
|
+
this.$emit("openCopyEditTab", formData);
|
|
2664
2850
|
},
|
|
2665
2851
|
|
|
2666
2852
|
async exportPdf() {
|
|
2667
|
-
|
|
2668
|
-
|
|
2853
|
+
// statusEl.style.display = 'block';
|
|
2854
|
+
// statusEl.textContent = '正在准备导出内容...';
|
|
2669
2855
|
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
|
-
});
|
|
2856
|
+
try {
|
|
2857
|
+
// 获取要导出的元素
|
|
2858
|
+
const element = this.$parent.$el;
|
|
2859
|
+
// 计算内容总高度
|
|
2860
|
+
|
|
2861
|
+
// 克隆元素(不影响原始页面)
|
|
2862
|
+
// statusEl.textContent = '克隆内容...';
|
|
2863
|
+
|
|
2864
|
+
const constainter = this.$parent.$parent.$el;
|
|
2865
|
+
|
|
2866
|
+
const clonedElement = element.cloneNode(true);
|
|
2867
|
+
let wfTab = clonedElement.querySelector(".wf-tab");
|
|
2868
|
+
if (wfTab) wfTab.remove();
|
|
2869
|
+
|
|
2870
|
+
clonedElement.style.width = element.offsetWidth + "px";
|
|
2871
|
+
|
|
2872
|
+
// 应用样式以展开内容
|
|
2873
|
+
clonedElement.style.height = "auto";
|
|
2874
|
+
clonedElement.style.overflow = "visible";
|
|
2875
|
+
clonedElement.style.position = "absolute";
|
|
2876
|
+
clonedElement.style.left = "-9999px";
|
|
2877
|
+
// document.body.appendChild(clonedElement);
|
|
2878
|
+
// document.body.appendChild(constainter);
|
|
2879
|
+
|
|
2880
|
+
constainter.appendChild(clonedElement);
|
|
2881
|
+
|
|
2882
|
+
const contentHeight = clonedElement.scrollHeight;
|
|
2883
|
+
const contentWidth = clonedElement.offsetWidth;
|
|
2884
|
+
|
|
2885
|
+
// 设置PDF参数
|
|
2886
|
+
const pdf = new JsPDF("p", "mm", "a4");
|
|
2887
|
+
const pageWidth = pdf.internal.pageSize.getWidth();
|
|
2888
|
+
const pageHeight = pdf.internal.pageSize.getHeight();
|
|
2889
|
+
const padding = 10;
|
|
2890
|
+
|
|
2891
|
+
// 计算需要多少页
|
|
2892
|
+
const scale = pageWidth / contentWidth;
|
|
2893
|
+
const scaledHeight = contentHeight * scale;
|
|
2894
|
+
const pages = Math.ceil(scaledHeight / pageHeight);
|
|
2895
|
+
|
|
2896
|
+
// 分页捕获并添加到PDF
|
|
2897
|
+
// statusEl.textContent = '正在生成PDF (0/' + pages + ')';
|
|
2898
|
+
|
|
2899
|
+
for (let i = 0; i < pages; i++) {
|
|
2900
|
+
// 计算当前页的裁剪位置
|
|
2901
|
+
const position = (i * pageHeight) / scale;
|
|
2902
|
+
|
|
2903
|
+
// 使用html2canvas捕获当前页内容
|
|
2904
|
+
const canvas = await html2Canvas(clonedElement, {
|
|
2905
|
+
scale: 2,
|
|
2906
|
+
// useCORS: true,
|
|
2907
|
+
windowHeight: pageHeight / scale,
|
|
2908
|
+
y: position,
|
|
2909
|
+
height: pageHeight / scale,
|
|
2910
|
+
width: contentWidth,
|
|
2911
|
+
logging: false,
|
|
2912
|
+
});
|
|
2732
2913
|
|
|
2733
|
-
|
|
2734
|
-
|
|
2914
|
+
// 将canvas转换为图像
|
|
2915
|
+
const imgData = canvas.toDataURL("image/jpeg", 0.95);
|
|
2735
2916
|
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
|
|
2739
|
-
|
|
2917
|
+
// 添加新页面(第一页除外)
|
|
2918
|
+
if (i > 0) {
|
|
2919
|
+
pdf.addPage();
|
|
2920
|
+
}
|
|
2740
2921
|
|
|
2741
|
-
|
|
2742
|
-
|
|
2922
|
+
// 将图像添加到PDF
|
|
2923
|
+
pdf.addImage(
|
|
2924
|
+
imgData,
|
|
2925
|
+
"JPEG",
|
|
2926
|
+
padding,
|
|
2927
|
+
padding,
|
|
2928
|
+
pageWidth - 2 * padding,
|
|
2929
|
+
pageHeight - 2 * padding
|
|
2930
|
+
);
|
|
2743
2931
|
|
|
2744
|
-
|
|
2745
|
-
|
|
2932
|
+
// statusEl.textContent = '正在生成PDF (' + (i+1) + '/' + pages + ')';
|
|
2933
|
+
}
|
|
2746
2934
|
|
|
2747
|
-
|
|
2748
|
-
|
|
2749
|
-
|
|
2935
|
+
// 移除克隆元素
|
|
2936
|
+
// document.body.removeChild(constainter);
|
|
2937
|
+
constainter.removeChild(clonedElement);
|
|
2750
2938
|
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2939
|
+
// 保存PDF
|
|
2940
|
+
// statusEl.textContent = '正在保存文件...';
|
|
2941
|
+
let fileName = this.reportTemplate.formName + ".pdf";
|
|
2942
|
+
pdf.save(fileName);
|
|
2755
2943
|
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2944
|
+
// statusEl.textContent = 'PDF导出成功!';
|
|
2945
|
+
// statusEl.style.background = '#e8f5e9';
|
|
2946
|
+
// statusEl.style.color = '#2e7d32';
|
|
2759
2947
|
|
|
2760
|
-
|
|
2761
|
-
|
|
2948
|
+
// 3秒后隐藏状态
|
|
2949
|
+
/* setTimeout(() => {
|
|
2762
2950
|
statusEl.style.display = 'none';
|
|
2763
2951
|
}, 3000); */
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
}
|
|
2952
|
+
} catch (error) {
|
|
2953
|
+
console.error("导出失败:", error);
|
|
2954
|
+
// statusEl.textContent = '导出失败: ' + error.message;
|
|
2955
|
+
// statusEl.style.background = '#ffebee';
|
|
2956
|
+
// statusEl.style.color = '#c62828';
|
|
2957
|
+
} finally {
|
|
2958
|
+
loadingObj.close();
|
|
2959
|
+
}
|
|
2773
2960
|
},
|
|
2774
2961
|
|
|
2775
2962
|
async exportPdf1() {
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
try {
|
|
2780
|
-
|
|
2781
|
-
// 获取要导出的元素
|
|
2782
|
-
const element = this.$parent.$el;
|
|
2783
|
-
// 计算内容总高度
|
|
2784
|
-
|
|
2963
|
+
// statusEl.style.display = 'block';
|
|
2964
|
+
// statusEl.textContent = '正在准备导出内容...';
|
|
2785
2965
|
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
const constainter = this.$parent.$parent.$el;
|
|
2966
|
+
try {
|
|
2967
|
+
// 获取要导出的元素
|
|
2968
|
+
const element = this.$parent.$el;
|
|
2969
|
+
// 计算内容总高度
|
|
2791
2970
|
|
|
2971
|
+
// 克隆元素(不影响原始页面)
|
|
2972
|
+
// statusEl.textContent = '克隆内容...';
|
|
2792
2973
|
|
|
2793
|
-
|
|
2794
|
-
let wfTab = clonedElement.querySelector(".wf-tab");
|
|
2795
|
-
if(wfTab)wfTab.remove()
|
|
2974
|
+
const constainter = this.$parent.$parent.$el;
|
|
2796
2975
|
|
|
2976
|
+
const clonedElement = element.cloneNode(true);
|
|
2977
|
+
let wfTab = clonedElement.querySelector(".wf-tab");
|
|
2978
|
+
if (wfTab) wfTab.remove();
|
|
2797
2979
|
|
|
2798
|
-
|
|
2980
|
+
const scrollElements = clonedElement.querySelectorAll(
|
|
2981
|
+
".vxe-table--body-wrapper"
|
|
2982
|
+
);
|
|
2799
2983
|
|
|
2800
|
-
|
|
2801
|
-
|
|
2984
|
+
// 临时禁用虚拟滚动
|
|
2985
|
+
/* for(let scrollElement of scrollElements){
|
|
2802
2986
|
const originalScrollTop = scrollElement.scrollTop
|
|
2803
2987
|
// scrollElement.style = 'overflow:visible;max-height:inherit !important'
|
|
2804
2988
|
scrollElement.style = scrollElement.style+ 'overflow:visible;max-height:inherit !important;'
|
|
@@ -2806,18 +2990,17 @@ modules = {
|
|
|
2806
2990
|
scrollElement.scrollTop = 0
|
|
2807
2991
|
} */
|
|
2808
2992
|
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
// 应用样式以展开内容
|
|
2812
|
-
clonedElement.style.height = 'auto';
|
|
2813
|
-
clonedElement.style.overflow = 'visible';
|
|
2814
|
-
clonedElement.style.position = 'absolute';
|
|
2815
|
-
clonedElement.style.left = '-9999px';
|
|
2816
|
-
// document.body.appendChild(clonedElement);
|
|
2817
|
-
// document.body.appendChild(constainter);
|
|
2993
|
+
clonedElement.style.width = element.offsetWidth + "px";
|
|
2818
2994
|
|
|
2995
|
+
// 应用样式以展开内容
|
|
2996
|
+
clonedElement.style.height = "auto";
|
|
2997
|
+
clonedElement.style.overflow = "visible";
|
|
2998
|
+
clonedElement.style.position = "absolute";
|
|
2999
|
+
clonedElement.style.left = "-9999px";
|
|
3000
|
+
// document.body.appendChild(clonedElement);
|
|
3001
|
+
// document.body.appendChild(constainter);
|
|
2819
3002
|
|
|
2820
|
-
|
|
3003
|
+
/* let dom1 = clonedElement.querySelector(".detail-wrap")
|
|
2821
3004
|
if(dom1){
|
|
2822
3005
|
let dom2 = dom1.children[1];
|
|
2823
3006
|
dom2.style.height = "auto;"
|
|
@@ -2825,70 +3008,66 @@ modules = {
|
|
|
2825
3008
|
|
|
2826
3009
|
} */
|
|
2827
3010
|
|
|
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`)
|
|
3011
|
+
constainter.appendChild(clonedElement);
|
|
3012
|
+
|
|
3013
|
+
html2Canvas(clonedElement, {
|
|
3014
|
+
scrollY: 0,
|
|
3015
|
+
useCORS: true,
|
|
3016
|
+
allowTaint: true,
|
|
3017
|
+
scale: 2, // 提高分辨率
|
|
3018
|
+
}).then((canvas) => {
|
|
3019
|
+
const pdf = new JsPDF("p", "mm", "a4");
|
|
3020
|
+
const imgData = canvas.toDataURL("image/png");
|
|
3021
|
+
const imgWidth = 210; // A4宽度
|
|
3022
|
+
const imgHeight = (canvas.height * imgWidth) / canvas.width;
|
|
3023
|
+
|
|
3024
|
+
// 分页处理
|
|
3025
|
+
let heightLeft = imgHeight;
|
|
3026
|
+
let position = 0;
|
|
3027
|
+
pdf.addImage(imgData, "PNG", 0, position, imgWidth, imgHeight);
|
|
3028
|
+
|
|
3029
|
+
while (heightLeft > 0) {
|
|
3030
|
+
position = heightLeft - imgHeight;
|
|
3031
|
+
pdf.addPage();
|
|
3032
|
+
pdf.addImage(imgData, "PNG", 0, position, imgWidth, imgHeight);
|
|
3033
|
+
heightLeft -= 297; // A4高度
|
|
3034
|
+
}
|
|
2854
3035
|
|
|
2855
|
-
|
|
2856
|
-
})
|
|
3036
|
+
pdf.save(`导出.pdf`);
|
|
2857
3037
|
|
|
2858
|
-
|
|
2859
|
-
|
|
2860
|
-
|
|
2861
|
-
|
|
2862
|
-
|
|
2863
|
-
|
|
3038
|
+
constainter.removeChild(clonedElement);
|
|
3039
|
+
});
|
|
3040
|
+
} catch (error) {
|
|
3041
|
+
console.error("导出失败:", error);
|
|
3042
|
+
// statusEl.textContent = '导出失败: ' + error.message;
|
|
3043
|
+
// statusEl.style.background = '#ffebee';
|
|
3044
|
+
// statusEl.style.color = '#c62828';
|
|
3045
|
+
}
|
|
2864
3046
|
},
|
|
2865
3047
|
async exportPdf2() {
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
try {
|
|
3048
|
+
// statusEl.style.display = 'block';
|
|
3049
|
+
// statusEl.textContent = '正在准备导出内容...';
|
|
2870
3050
|
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
// 克隆元素(不影响原始页面)
|
|
2877
|
-
// statusEl.textContent = '克隆内容...';
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
const constainter = this.$parent.$parent.$el;
|
|
3051
|
+
try {
|
|
3052
|
+
// 获取要导出的元素
|
|
3053
|
+
const element = this.$parent.$el;
|
|
3054
|
+
// 计算内容总高度
|
|
2881
3055
|
|
|
3056
|
+
// 克隆元素(不影响原始页面)
|
|
3057
|
+
// statusEl.textContent = '克隆内容...';
|
|
2882
3058
|
|
|
2883
|
-
|
|
2884
|
-
let wfTab = clonedElement.querySelector(".wf-tab");
|
|
2885
|
-
if(wfTab)wfTab.remove()
|
|
3059
|
+
const constainter = this.$parent.$parent.$el;
|
|
2886
3060
|
|
|
3061
|
+
const clonedElement = element.cloneNode(true);
|
|
3062
|
+
let wfTab = clonedElement.querySelector(".wf-tab");
|
|
3063
|
+
if (wfTab) wfTab.remove();
|
|
2887
3064
|
|
|
2888
|
-
|
|
3065
|
+
const scrollElements = clonedElement.querySelectorAll(
|
|
3066
|
+
".vxe-table--body-wrapper"
|
|
3067
|
+
);
|
|
2889
3068
|
|
|
2890
|
-
|
|
2891
|
-
|
|
3069
|
+
// 临时禁用虚拟滚动
|
|
3070
|
+
/* for(let scrollElement of scrollElements){
|
|
2892
3071
|
const originalScrollTop = scrollElement.scrollTop
|
|
2893
3072
|
// scrollElement.style = 'overflow:visible;max-height:inherit !important'
|
|
2894
3073
|
// scrollElement.style = scrollElement.style+ 'overflow:visible;max-height:inherit !important;'
|
|
@@ -2897,305 +3076,297 @@ modules = {
|
|
|
2897
3076
|
scrollElement.scrollTop = 0
|
|
2898
3077
|
} */
|
|
2899
3078
|
|
|
3079
|
+
let dom4 = clonedElement.querySelector(".designer-view");
|
|
3080
|
+
// dom4.style.height = "auto;"
|
|
3081
|
+
let dom1 = clonedElement.querySelector(".detail-wrap");
|
|
3082
|
+
if (dom1) {
|
|
3083
|
+
let dom2 = dom1.children[1];
|
|
3084
|
+
dom2.style.height = "auto;";
|
|
3085
|
+
dom2.querySelector(".d-cont").style.height = "auto;";
|
|
3086
|
+
}
|
|
2900
3087
|
|
|
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
|
-
});
|
|
3088
|
+
clonedElement.style.width = element.offsetWidth + "px";
|
|
3089
|
+
|
|
3090
|
+
// 应用样式以展开内容
|
|
3091
|
+
clonedElement.style.height = "auto";
|
|
3092
|
+
clonedElement.style.overflow = "visible";
|
|
3093
|
+
clonedElement.style.position = "absolute";
|
|
3094
|
+
// clonedElement.style.left = '-9999px';
|
|
3095
|
+
clonedElement.style.left = "100px";
|
|
3096
|
+
// document.body.appendChild(clonedElement);
|
|
3097
|
+
// document.body.appendChild(constainter);
|
|
3098
|
+
|
|
3099
|
+
constainter.appendChild(clonedElement);
|
|
3100
|
+
|
|
3101
|
+
const contentHeight = clonedElement.scrollHeight;
|
|
3102
|
+
const contentWidth = clonedElement.offsetWidth;
|
|
3103
|
+
|
|
3104
|
+
// 设置PDF参数
|
|
3105
|
+
const pdf = new JsPDF("p", "mm", "a4");
|
|
3106
|
+
const pageWidth = pdf.internal.pageSize.getWidth();
|
|
3107
|
+
const pageHeight = pdf.internal.pageSize.getHeight();
|
|
3108
|
+
const padding = 10;
|
|
3109
|
+
|
|
3110
|
+
// 计算需要多少页
|
|
3111
|
+
const scale = pageWidth / contentWidth;
|
|
3112
|
+
const scaledHeight = contentHeight * scale;
|
|
3113
|
+
const pages = Math.ceil(scaledHeight / pageHeight);
|
|
3114
|
+
|
|
3115
|
+
// 分页捕获并添加到PDF
|
|
3116
|
+
// statusEl.textContent = '正在生成PDF (0/' + pages + ')';
|
|
3117
|
+
for (let i = 0; i < pages; i++) {
|
|
3118
|
+
// 计算当前页的裁剪位置
|
|
3119
|
+
const position = (i * pageHeight) / scale;
|
|
3120
|
+
|
|
3121
|
+
// 使用html2canvas捕获当前页内容
|
|
3122
|
+
const canvas = await html2Canvas(clonedElement, {
|
|
3123
|
+
scale: 2,
|
|
3124
|
+
useCORS: true,
|
|
3125
|
+
windowHeight: pageHeight / scale,
|
|
3126
|
+
y: position,
|
|
3127
|
+
height: pageHeight / scale,
|
|
3128
|
+
width: contentWidth,
|
|
3129
|
+
logging: false,
|
|
3130
|
+
});
|
|
2956
3131
|
|
|
2957
|
-
|
|
2958
|
-
|
|
3132
|
+
// 将canvas转换为图像
|
|
3133
|
+
const imgData = canvas.toDataURL("image/jpeg", 0.95);
|
|
2959
3134
|
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
2963
|
-
|
|
3135
|
+
// 添加新页面(第一页除外)
|
|
3136
|
+
if (i > 0) {
|
|
3137
|
+
pdf.addPage();
|
|
3138
|
+
}
|
|
2964
3139
|
|
|
2965
|
-
|
|
2966
|
-
|
|
3140
|
+
// 将图像添加到PDF
|
|
3141
|
+
pdf.addImage(
|
|
3142
|
+
imgData,
|
|
3143
|
+
"JPEG",
|
|
3144
|
+
padding,
|
|
3145
|
+
padding,
|
|
3146
|
+
pageWidth - 2 * padding,
|
|
3147
|
+
pageHeight - 2 * padding
|
|
3148
|
+
);
|
|
2967
3149
|
|
|
2968
|
-
|
|
2969
|
-
|
|
3150
|
+
// statusEl.textContent = '正在生成PDF (' + (i+1) + '/' + pages + ')';
|
|
3151
|
+
}
|
|
2970
3152
|
|
|
2971
|
-
|
|
2972
|
-
|
|
2973
|
-
|
|
3153
|
+
// 移除克隆元素
|
|
3154
|
+
// document.body.removeChild(constainter);
|
|
3155
|
+
constainter.removeChild(clonedElement);
|
|
2974
3156
|
|
|
2975
|
-
|
|
2976
|
-
|
|
2977
|
-
|
|
3157
|
+
// 保存PDF
|
|
3158
|
+
// statusEl.textContent = '正在保存文件...';
|
|
3159
|
+
pdf.save("exported-content.pdf");
|
|
2978
3160
|
|
|
2979
|
-
|
|
2980
|
-
|
|
2981
|
-
|
|
3161
|
+
// statusEl.textContent = 'PDF导出成功!';
|
|
3162
|
+
// statusEl.style.background = '#e8f5e9';
|
|
3163
|
+
// statusEl.style.color = '#2e7d32';
|
|
2982
3164
|
|
|
2983
|
-
|
|
2984
|
-
|
|
3165
|
+
// 3秒后隐藏状态
|
|
3166
|
+
/* setTimeout(() => {
|
|
2985
3167
|
statusEl.style.display = 'none';
|
|
2986
3168
|
}, 3000); */
|
|
2987
|
-
|
|
2988
|
-
|
|
2989
|
-
|
|
2990
|
-
|
|
2991
|
-
|
|
2992
|
-
|
|
2993
|
-
}
|
|
3169
|
+
} catch (error) {
|
|
3170
|
+
console.error("导出失败:", error);
|
|
3171
|
+
// statusEl.textContent = '导出失败: ' + error.message;
|
|
3172
|
+
// statusEl.style.background = '#ffebee';
|
|
3173
|
+
// statusEl.style.color = '#c62828';
|
|
3174
|
+
}
|
|
2994
3175
|
},
|
|
2995
3176
|
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()
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
const scrollElements = clonedElement.querySelectorAll('.vxe-table--body-wrapper')
|
|
3019
|
-
|
|
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
|
-
}
|
|
3177
|
+
// statusEl.style.display = 'block';
|
|
3178
|
+
// statusEl.textContent = '正在准备导出内容...';
|
|
3029
3179
|
|
|
3180
|
+
try {
|
|
3181
|
+
// 获取要导出的元素
|
|
3182
|
+
const element = this.$parent.$el;
|
|
3183
|
+
// 计算内容总高度
|
|
3030
3184
|
|
|
3031
|
-
|
|
3032
|
-
|
|
3033
|
-
let dom1 = clonedElement.querySelector(".detail-wrap")
|
|
3034
|
-
if(dom1){
|
|
3035
|
-
let dom2 = dom1.children[1];
|
|
3036
|
-
dom2.style.height = "auto;"
|
|
3037
|
-
dom2.querySelector(".d-cont").style.height = "auto;"
|
|
3185
|
+
// 克隆元素(不影响原始页面)
|
|
3186
|
+
// statusEl.textContent = '克隆内容...';
|
|
3038
3187
|
|
|
3039
|
-
|
|
3188
|
+
const constainter = this.$parent.$parent.$el;
|
|
3040
3189
|
|
|
3041
|
-
|
|
3190
|
+
const clonedElement = element.cloneNode(true);
|
|
3191
|
+
let wfTab = clonedElement.querySelector(".wf-tab");
|
|
3192
|
+
if (wfTab) wfTab.remove();
|
|
3042
3193
|
|
|
3043
|
-
|
|
3044
|
-
|
|
3045
|
-
|
|
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);
|
|
3194
|
+
const scrollElements = clonedElement.querySelectorAll(
|
|
3195
|
+
".vxe-table--body-wrapper"
|
|
3196
|
+
);
|
|
3051
3197
|
|
|
3052
|
-
|
|
3198
|
+
// 临时禁用虚拟滚动
|
|
3199
|
+
for (let scrollElement of scrollElements) {
|
|
3200
|
+
const originalScrollTop = scrollElement.scrollTop;
|
|
3201
|
+
// scrollElement.style = 'overflow:visible;max-height:inherit !important'
|
|
3202
|
+
// scrollElement.style = scrollElement.style+ 'overflow:visible;max-height:inherit !important;'
|
|
3203
|
+
scrollElement.style["overflow"] = "visible";
|
|
3204
|
+
scrollElement.style["max-height"] = "inherit !important";
|
|
3205
|
+
scrollElement.scrollTop = 0;
|
|
3206
|
+
}
|
|
3053
3207
|
|
|
3208
|
+
let dom4 = clonedElement.querySelector(".designer-view");
|
|
3209
|
+
// dom4.style.height = "auto;"
|
|
3210
|
+
let dom1 = clonedElement.querySelector(".detail-wrap");
|
|
3211
|
+
if (dom1) {
|
|
3212
|
+
let dom2 = dom1.children[1];
|
|
3213
|
+
dom2.style.height = "auto;";
|
|
3214
|
+
dom2.querySelector(".d-cont").style.height = "auto;";
|
|
3215
|
+
}
|
|
3054
3216
|
|
|
3055
|
-
|
|
3056
|
-
scale: 2,
|
|
3057
|
-
useCORS: true,
|
|
3058
|
-
logging: false,
|
|
3059
|
-
onclone: (clonedDoc) => {
|
|
3217
|
+
clonedElement.style.width = element.offsetWidth + "px";
|
|
3060
3218
|
|
|
3061
|
-
|
|
3062
|
-
|
|
3219
|
+
// 应用样式以展开内容
|
|
3220
|
+
clonedElement.style.height = "auto";
|
|
3221
|
+
clonedElement.style.overflow = "visible";
|
|
3222
|
+
clonedElement.style.position = "absolute";
|
|
3223
|
+
// clonedElement.style.left = '-9999px';
|
|
3224
|
+
clonedElement.style.left = "100px";
|
|
3225
|
+
// document.body.appendChild(clonedElement);
|
|
3226
|
+
// document.body.appendChild(constainter);
|
|
3063
3227
|
|
|
3228
|
+
constainter.appendChild(clonedElement);
|
|
3064
3229
|
|
|
3065
|
-
|
|
3066
|
-
|
|
3067
|
-
|
|
3230
|
+
const canvas = await html2Canvas(clonedElement, {
|
|
3231
|
+
scale: 2,
|
|
3232
|
+
useCORS: true,
|
|
3233
|
+
logging: false,
|
|
3234
|
+
onclone: (clonedDoc) => {},
|
|
3235
|
+
});
|
|
3068
3236
|
|
|
3069
|
-
|
|
3070
|
-
|
|
3071
|
-
|
|
3237
|
+
// 移除克隆元素
|
|
3238
|
+
// document.body.removeChild(constainter);
|
|
3239
|
+
constainter.removeChild(clonedElement);
|
|
3072
3240
|
|
|
3073
|
-
|
|
3074
|
-
|
|
3241
|
+
// 5. 生成PDF
|
|
3242
|
+
this.currentStep = "创建PDF文档...";
|
|
3243
|
+
this.progress = 70;
|
|
3075
3244
|
|
|
3076
|
-
|
|
3077
|
-
|
|
3245
|
+
const imgData = canvas.toDataURL("image/jpeg", 0.95);
|
|
3246
|
+
const pdf = new JsPDF("p", "mm", "a4");
|
|
3078
3247
|
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
const imgHeight = canvas.height;
|
|
3248
|
+
const pageWidth = pdf.internal.pageSize.getWidth();
|
|
3249
|
+
const pageHeight = pdf.internal.pageSize.getHeight();
|
|
3082
3250
|
|
|
3083
|
-
|
|
3084
|
-
|
|
3251
|
+
// const imgWidth = canvas.width;
|
|
3252
|
+
const imgWidth = element.offsetWidth;
|
|
3253
|
+
const imgHeight = canvas.height;
|
|
3085
3254
|
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
let position = 0;
|
|
3255
|
+
const ratio = pageWidth / imgWidth;
|
|
3256
|
+
const imgHeightOnPDF = imgHeight * ratio;
|
|
3089
3257
|
|
|
3090
|
-
|
|
3091
|
-
|
|
3258
|
+
// 计算需要多少页
|
|
3259
|
+
let totalPages = Math.ceil(imgHeightOnPDF / pageHeight);
|
|
3260
|
+
let position = 0;
|
|
3092
3261
|
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
position -= pageHeight;
|
|
3096
|
-
pdf.addPage();
|
|
3097
|
-
pdf.addImage(imgData, 'JPEG', 0, position, pageWidth, imgHeightOnPDF);
|
|
3098
|
-
}
|
|
3262
|
+
// 添加第一页
|
|
3263
|
+
pdf.addImage(imgData, "JPEG", 0, position, pageWidth, imgHeightOnPDF);
|
|
3099
3264
|
|
|
3100
|
-
|
|
3265
|
+
// 添加额外页面(如果需要)
|
|
3266
|
+
for (let i = 1; i < totalPages; i++) {
|
|
3267
|
+
position -= pageHeight;
|
|
3268
|
+
pdf.addPage();
|
|
3269
|
+
pdf.addImage(imgData, "JPEG", 0, position, pageWidth, imgHeightOnPDF);
|
|
3270
|
+
}
|
|
3101
3271
|
|
|
3102
|
-
|
|
3103
|
-
this.currentStep = '生成预览...';
|
|
3104
|
-
this.progress = 90;
|
|
3272
|
+
this.pdfPages = totalPages;
|
|
3105
3273
|
|
|
3106
|
-
|
|
3107
|
-
|
|
3274
|
+
// 6. 生成预览
|
|
3275
|
+
this.currentStep = "生成预览...";
|
|
3276
|
+
this.progress = 90;
|
|
3108
3277
|
|
|
3109
|
-
|
|
3110
|
-
|
|
3278
|
+
const pdfBlob = pdf.output("blob");
|
|
3279
|
+
this.pdfPreviewUrl = URL.createObjectURL(pdfBlob);
|
|
3111
3280
|
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
this.isExporting = false;
|
|
3115
|
-
}, 500);
|
|
3281
|
+
// 7. 自动下载
|
|
3282
|
+
pdf.save("exported-content.pdf");
|
|
3116
3283
|
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3284
|
+
this.progress = 100;
|
|
3285
|
+
setTimeout(() => {
|
|
3286
|
+
this.isExporting = false;
|
|
3287
|
+
}, 500);
|
|
3288
|
+
} catch (error) {
|
|
3289
|
+
console.error("导出失败:", error);
|
|
3290
|
+
// statusEl.textContent = '导出失败: ' + error.message;
|
|
3291
|
+
// statusEl.style.background = '#ffebee';
|
|
3292
|
+
// statusEl.style.color = '#c62828';
|
|
3293
|
+
}
|
|
3123
3294
|
},
|
|
3124
3295
|
async exportPdf5() {
|
|
3125
3296
|
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
|
-
})
|
|
3297
|
+
// 获取要导出的元素
|
|
3298
|
+
const element = this.$parent.$el;
|
|
3299
|
+
// 计算内容总高度
|
|
3300
|
+
|
|
3301
|
+
// 克隆元素(不影响原始页面)
|
|
3302
|
+
// statusEl.textContent = '克隆内容...';
|
|
3303
|
+
|
|
3304
|
+
const constainter = this.$parent.$parent.$el;
|
|
3305
|
+
// 获取dom元素
|
|
3306
|
+
// const dom = document.querySelector('#id名称')
|
|
3307
|
+
if (element) {
|
|
3308
|
+
html2Canvas(element).then(async (canvas) => {
|
|
3309
|
+
// A4纸,纵向
|
|
3310
|
+
let pdf = new JsPDF("p", "mm", "a4");
|
|
3311
|
+
let ctx = canvas.getContext("2d");
|
|
3312
|
+
let a4w = 190;
|
|
3313
|
+
// A4大小,210mm x 297mm,四边各保留10mm的边距,显示区域190x277
|
|
3314
|
+
let a4h = 277;
|
|
3315
|
+
// 按A4显示比例换算一页图像的像素高度
|
|
3316
|
+
let imgHeight = Math.floor((a4h * canvas.width) / a4w);
|
|
3317
|
+
let renderedHeight = 0;
|
|
3318
|
+
while (renderedHeight < canvas.height) {
|
|
3319
|
+
let page = document.createElement("canvas");
|
|
3320
|
+
page.width = canvas.width;
|
|
3321
|
+
// 可能内容不足一页
|
|
3322
|
+
page.height = Math.min(imgHeight, canvas.height - renderedHeight);
|
|
3323
|
+
// 用getImageData剪裁指定区域,并画到前面创建的canvas对象中
|
|
3324
|
+
page
|
|
3325
|
+
.getContext("2d")
|
|
3326
|
+
.putImageData(
|
|
3327
|
+
ctx.getImageData(
|
|
3328
|
+
0,
|
|
3329
|
+
renderedHeight,
|
|
3330
|
+
canvas.width,
|
|
3331
|
+
Math.min(imgHeight, canvas.height - renderedHeight)
|
|
3332
|
+
),
|
|
3333
|
+
0,
|
|
3334
|
+
0
|
|
3335
|
+
);
|
|
3336
|
+
// 添加图像到页面,保留10mm边距
|
|
3337
|
+
pdf.addImage(
|
|
3338
|
+
page.toDataURL("image/jpeg", 1.0),
|
|
3339
|
+
"JPEG",
|
|
3340
|
+
10,
|
|
3341
|
+
10,
|
|
3342
|
+
a4w,
|
|
3343
|
+
Math.min(a4h, (a4w * page.height) / page.width)
|
|
3344
|
+
);
|
|
3345
|
+
|
|
3346
|
+
renderedHeight += imgHeight;
|
|
3347
|
+
if (renderedHeight < canvas.height) {
|
|
3348
|
+
// 如果后面还有内容,添加一个空页
|
|
3349
|
+
pdf.addPage();
|
|
3350
|
+
}
|
|
3351
|
+
// delete page;
|
|
3185
3352
|
}
|
|
3186
|
-
|
|
3187
|
-
|
|
3353
|
+
// 保存文件
|
|
3354
|
+
pdf.save("文档名称.pdf");
|
|
3355
|
+
});
|
|
3188
3356
|
}
|
|
3357
|
+
} catch (err) {
|
|
3358
|
+
console.log(err);
|
|
3359
|
+
}
|
|
3189
3360
|
},
|
|
3190
3361
|
openFormulaDialog(option) {
|
|
3191
|
-
this.formulaDialogOption = option
|
|
3362
|
+
this.formulaDialogOption = option;
|
|
3192
3363
|
this.formulaDialogVisible = true;
|
|
3193
3364
|
},
|
|
3194
3365
|
openBaseFormulaDialog(option) {
|
|
3195
|
-
this.baseFormulaDialogOption = option
|
|
3366
|
+
this.baseFormulaDialogOption = option;
|
|
3196
3367
|
this.baseFormulaDialogVisible = true;
|
|
3197
|
-
}
|
|
3198
|
-
}
|
|
3368
|
+
},
|
|
3369
|
+
},
|
|
3199
3370
|
};
|
|
3200
3371
|
|
|
3201
3372
|
export default modules;
|