cloud-web-corejs 1.0.54-dev.535 → 1.0.54-dev.537
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/excelExport/exportFieldDialog.vue +0 -1
- package/src/components/excelExport/mixins.js +1 -963
- package/src/components/hiprint/css/bootstrap.min.css +6 -0
- package/src/components/hiprint/fonts/glyphicons-halflings-regular.eot +0 -0
- package/src/components/hiprint/fonts/glyphicons-halflings-regular.svg +288 -0
- package/src/components/hiprint/fonts/glyphicons-halflings-regular.ttf +0 -0
- package/src/components/hiprint/fonts/glyphicons-halflings-regular.woff +0 -0
- package/src/components/hiprint/fonts/glyphicons-halflings-regular.woff2 +0 -0
- package/src/components/hiprint/view/design/index.vue +1 -0
- package/src/components/table/index.js +0 -1
- package/src/components/xform/form-designer/form-widget/field-widget/copy_button-widget.vue +8 -2
- package/src/components/xform/form-designer/form-widget/field-widget/static-text-widget.vue +8 -3
- package/src/components/xform/form-designer/setting-panel/property-editor/copyButton-editor.vue +1 -1
- package/src/components/xform/form-designer/setting-panel/property-editor/field-static-text/preWrap-editor.vue +23 -0
- package/src/components/xform/form-designer/setting-panel/property-editor/field-static-text/textContent-editor.vue +1 -1
- package/src/components/xform/form-designer/setting-panel/propertyRegister.js +1 -0
- package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +2 -0
- package/src/components/xform/form-render/container-item/data-table-mixin.js +83 -82
- package/src/components/xform/form-render/indexMixin.js +383 -208
- package/src/components/xform/lang/zh-CN.js +1 -0
- package/src/router/modules/customer.js +9 -0
- package/src/views/user/position/list.vue +124 -68
|
@@ -301,8 +301,8 @@ modules = {
|
|
|
301
301
|
},
|
|
302
302
|
initGlobalConfig() {
|
|
303
303
|
//初始化全局配置
|
|
304
|
-
this.globalConfig
|
|
305
|
-
this.handleCustomEvent(this.formConfig.globalConfig) || {};
|
|
304
|
+
this.globalConfig
|
|
305
|
+
= this.handleCustomEvent(this.formConfig.globalConfig) || {};
|
|
306
306
|
},
|
|
307
307
|
/**
|
|
308
308
|
* 数据对象key 驼峰下划线相互转化
|
|
@@ -317,8 +317,8 @@ modules = {
|
|
|
317
317
|
data.forEach((item) => formatTransferKey(item));
|
|
318
318
|
} else if (data instanceof Object) {
|
|
319
319
|
for (let key in data) {
|
|
320
|
-
hump
|
|
321
|
-
type === "hump" ? this.formatToHump(key) : this.formatToLine(key);
|
|
320
|
+
hump
|
|
321
|
+
= type === "hump" ? this.formatToHump(key) : this.formatToLine(key);
|
|
322
322
|
data[hump] = data[key];
|
|
323
323
|
if (key !== hump) {
|
|
324
324
|
delete data[key];
|
|
@@ -328,8 +328,8 @@ modules = {
|
|
|
328
328
|
}
|
|
329
329
|
}
|
|
330
330
|
} else if (typeof data === "string") {
|
|
331
|
-
data
|
|
332
|
-
type === "hump" ? this.formatToHump(data) : this.formatToLine(data);
|
|
331
|
+
data
|
|
332
|
+
= type === "hump" ? this.formatToHump(data) : this.formatToLine(data);
|
|
333
333
|
}
|
|
334
334
|
};
|
|
335
335
|
formatTransferKey(data);
|
|
@@ -552,9 +552,9 @@ modules = {
|
|
|
552
552
|
handleTableColumnWidget(widget) {
|
|
553
553
|
//修复data-table旧数据表格列widget与editWidget为空的问题
|
|
554
554
|
if (
|
|
555
|
-
!widget
|
|
556
|
-
widget.type != "data-table"
|
|
557
|
-
!widget.options.tableColumns
|
|
555
|
+
!widget
|
|
556
|
+
|| widget.type != "data-table"
|
|
557
|
+
|| !widget.options.tableColumns
|
|
558
558
|
)
|
|
559
559
|
return;
|
|
560
560
|
let columnLoopDo = (t, e) => {
|
|
@@ -614,7 +614,7 @@ modules = {
|
|
|
614
614
|
hanldeCommonWidget2() {
|
|
615
615
|
let wfParam = this.wfParam || {};
|
|
616
616
|
let wfInfo = wfParam?.wfInfo;
|
|
617
|
-
let taskDefinitionKey = wfInfo?.taskDefinitionKey;
|
|
617
|
+
let taskDefinitionKey = wfInfo?.taskDefinitionKey || wfInfo?.nodeCode;
|
|
618
618
|
let toModify = wfInfo?.toModify || false; //后台返回流程可以修改单据
|
|
619
619
|
|
|
620
620
|
let hasModifyItem = false;
|
|
@@ -646,9 +646,9 @@ modules = {
|
|
|
646
646
|
this.hanldeWfWidgetItemNew(widget);
|
|
647
647
|
}
|
|
648
648
|
if (
|
|
649
|
-
widget.formItemFlag
|
|
650
|
-
!widget.options.hidden
|
|
651
|
-
!widget.options.disbaled
|
|
649
|
+
widget.formItemFlag
|
|
650
|
+
&& !widget.options.hidden
|
|
651
|
+
&& !widget.options.disbaled
|
|
652
652
|
) {
|
|
653
653
|
//存在存在可以编辑输入框框
|
|
654
654
|
hasModifyItem = true;
|
|
@@ -673,7 +673,6 @@ modules = {
|
|
|
673
673
|
let modelOrders = wfInfo.orders;
|
|
674
674
|
let companyCode = this.$store.getters.companyCode;
|
|
675
675
|
let taskStep = (wfInfo.taskStep ?? "") + "";
|
|
676
|
-
let taskDefinitionKey = wfInfo.taskDefinitionKey;
|
|
677
676
|
let bdService = this.bdService;
|
|
678
677
|
|
|
679
678
|
let wfConfigData = formConfig.wfAgreeConfigData || [];
|
|
@@ -688,12 +687,12 @@ modules = {
|
|
|
688
687
|
: [];
|
|
689
688
|
let flag1 = !item.serveName || item.serveName == bdService;
|
|
690
689
|
// let flag2 = !item.modelKey || item.modelKey == modelKey;
|
|
691
|
-
let flag2
|
|
692
|
-
item.modelOrders === undefined
|
|
693
|
-
item.modelOrders === null
|
|
694
|
-
item.modelOrders === modelOrders;
|
|
695
|
-
let flag3
|
|
696
|
-
!companyCodes.length || companyCodes.includes(companyCode);
|
|
690
|
+
let flag2
|
|
691
|
+
= item.modelOrders === undefined
|
|
692
|
+
|| item.modelOrders === null
|
|
693
|
+
|| item.modelOrders === modelOrders;
|
|
694
|
+
let flag3
|
|
695
|
+
= !companyCodes.length || companyCodes.includes(companyCode);
|
|
697
696
|
if (flag1 && flag2 && flag3) {
|
|
698
697
|
//可编辑
|
|
699
698
|
result = true;
|
|
@@ -716,7 +715,6 @@ modules = {
|
|
|
716
715
|
let modelOrders = wfInfo.orders;
|
|
717
716
|
let companyCode = this.$store.getters.companyCode;
|
|
718
717
|
let taskStep = (wfInfo.taskStep ?? "") + "";
|
|
719
|
-
let taskDefinitionKey = wfInfo.taskDefinitionKey;
|
|
720
718
|
let bdService = this.bdService;
|
|
721
719
|
|
|
722
720
|
let wfConfigData = formConfig.wfConfigData || [];
|
|
@@ -731,12 +729,12 @@ modules = {
|
|
|
731
729
|
: [];
|
|
732
730
|
let flag1 = !item.serveName || item.serveName == bdService;
|
|
733
731
|
// let flag2 = !item.modelKey || item.modelKey == modelKey;
|
|
734
|
-
let flag2
|
|
735
|
-
item.modelOrders === undefined
|
|
736
|
-
item.modelOrders === null
|
|
737
|
-
item.modelOrders === modelOrders;
|
|
738
|
-
let flag3
|
|
739
|
-
!companyCodes.length || companyCodes.includes(companyCode);
|
|
732
|
+
let flag2
|
|
733
|
+
= item.modelOrders === undefined
|
|
734
|
+
|| item.modelOrders === null
|
|
735
|
+
|| item.modelOrders === modelOrders;
|
|
736
|
+
let flag3
|
|
737
|
+
= !companyCodes.length || companyCodes.includes(companyCode);
|
|
740
738
|
if (flag1 && flag2 && flag3) {
|
|
741
739
|
//可编辑
|
|
742
740
|
result = true;
|
|
@@ -750,25 +748,25 @@ modules = {
|
|
|
750
748
|
if (!widget) return false;
|
|
751
749
|
let widgetType = widget.type;
|
|
752
750
|
let sourceType = widget.sourceType;
|
|
753
|
-
let result
|
|
754
|
-
freeWidgetTypesOfWf.includes(widgetType)
|
|
755
|
-
(sourceType && freeWidgetTypesOfWf.includes(sourceType));
|
|
751
|
+
let result
|
|
752
|
+
= freeWidgetTypesOfWf.includes(widgetType)
|
|
753
|
+
|| (sourceType && freeWidgetTypesOfWf.includes(sourceType));
|
|
756
754
|
return widget.options.label == "重置" || result;
|
|
757
755
|
},
|
|
758
756
|
getIsHiddenWidgetTypesOfWf(widget) {
|
|
759
757
|
if (!widget) return false;
|
|
760
758
|
let widgetType = widget.type;
|
|
761
759
|
let targetType = widget.targetType;
|
|
762
|
-
let result
|
|
763
|
-
hiddenWidgetTypesOfWf.includes(widgetType)
|
|
764
|
-
(targetType && hiddenWidgetTypesOfWf.includes(targetType));
|
|
760
|
+
let result
|
|
761
|
+
= hiddenWidgetTypesOfWf.includes(widgetType)
|
|
762
|
+
|| (targetType && hiddenWidgetTypesOfWf.includes(targetType));
|
|
765
763
|
return result;
|
|
766
764
|
},
|
|
767
765
|
hanldeWfWidgetNew1(widget) {
|
|
768
766
|
if (!widget) return;
|
|
769
|
-
let flag
|
|
770
|
-
widget.columnType
|
|
771
|
-
["editDelete", "removeTreeRow"].includes(widget.columnType);
|
|
767
|
+
let flag
|
|
768
|
+
= widget.columnType
|
|
769
|
+
&& ["editDelete", "removeTreeRow"].includes(widget.columnType);
|
|
772
770
|
if (!flag && this.getIsfreeWidgetTypesOfWf(widget)) return; //过滤掉不受限组件
|
|
773
771
|
if (this.widgetEditOnWf) return; //匹配到流程第一步可编辑,不执行下面禁用隐藏
|
|
774
772
|
let wfParam = this.wfParam || {};
|
|
@@ -830,12 +828,12 @@ modules = {
|
|
|
830
828
|
let flag1 = !item.serveName || item.serveName == bdService;
|
|
831
829
|
// let flag2 = !item.modelKey || item.modelKey == modelKey;
|
|
832
830
|
|
|
833
|
-
let flag2
|
|
834
|
-
item.modelOrders === undefined
|
|
835
|
-
item.modelOrders === null
|
|
836
|
-
item.modelOrders === modelOrders;
|
|
837
|
-
let flag3
|
|
838
|
-
!companyCodes.length || companyCodes.includes(companyCode);
|
|
831
|
+
let flag2
|
|
832
|
+
= item.modelOrders === undefined
|
|
833
|
+
|| item.modelOrders === null
|
|
834
|
+
|| item.modelOrders === modelOrders;
|
|
835
|
+
let flag3
|
|
836
|
+
= !companyCodes.length || companyCodes.includes(companyCode);
|
|
839
837
|
if (flag1 && flag2 && flag3) {
|
|
840
838
|
if (type === 1) {
|
|
841
839
|
//可编辑
|
|
@@ -902,8 +900,8 @@ modules = {
|
|
|
902
900
|
let companyCodes = companyCodeStr
|
|
903
901
|
? companyCodeStr.split(",").filter((item) => !!item)
|
|
904
902
|
: [];
|
|
905
|
-
let flag3
|
|
906
|
-
!companyCodes.length || companyCodes.includes(companyCode);
|
|
903
|
+
let flag3
|
|
904
|
+
= !companyCodes.length || companyCodes.includes(companyCode);
|
|
907
905
|
if (flag1) {
|
|
908
906
|
item3 = item;
|
|
909
907
|
} else if (flag2) {
|
|
@@ -963,8 +961,8 @@ modules = {
|
|
|
963
961
|
// setDisabled(target,true);
|
|
964
962
|
let onClick = options ? options.onClick : widget.options.onClick;
|
|
965
963
|
if (
|
|
966
|
-
onClick
|
|
967
|
-
onClick.startsWith("this.getFormRef().$baseReload()")
|
|
964
|
+
onClick
|
|
965
|
+
&& onClick.startsWith("this.getFormRef().$baseReload()")
|
|
968
966
|
) {
|
|
969
967
|
// setDisabled(target,false);
|
|
970
968
|
disabled = false;
|
|
@@ -993,9 +991,9 @@ modules = {
|
|
|
993
991
|
hidden = true;
|
|
994
992
|
}
|
|
995
993
|
if (
|
|
996
|
-
widget
|
|
997
|
-
widgetType == "save_button"
|
|
998
|
-
hiddenByWf === undefined
|
|
994
|
+
widget
|
|
995
|
+
&& widgetType == "save_button"
|
|
996
|
+
&& hiddenByWf === undefined
|
|
999
997
|
) {
|
|
1000
998
|
// setHidden(target,true)
|
|
1001
999
|
// widget.options.hidden = true;
|
|
@@ -1050,7 +1048,7 @@ modules = {
|
|
|
1050
1048
|
let modelKey = wfInfo.modelKey;
|
|
1051
1049
|
let companyCode = this.$store.getters.companyCode;
|
|
1052
1050
|
let taskStep = (wfInfo.taskStep ?? "") + "";
|
|
1053
|
-
let taskDefinitionKey = wfInfo
|
|
1051
|
+
let taskDefinitionKey = wfInfo?.taskDefinitionKey || wfInfo?.nodeCode;
|
|
1054
1052
|
if (!taskDefinitionKey) return;
|
|
1055
1053
|
let toModify = wfInfo.toModify;
|
|
1056
1054
|
if (!toModify) return;
|
|
@@ -1105,8 +1103,8 @@ modules = {
|
|
|
1105
1103
|
: [];
|
|
1106
1104
|
let flag1 = !item.serveName || item.serveName == bdService;
|
|
1107
1105
|
let flag2 = !item.modelKey || item.modelKey == modelKey;
|
|
1108
|
-
let flag3
|
|
1109
|
-
!companyCodes.length || companyCodes.includes(companyCode);
|
|
1106
|
+
let flag3
|
|
1107
|
+
= !companyCodes.length || companyCodes.includes(companyCode);
|
|
1110
1108
|
if (flag1 && flag2 && flag3) {
|
|
1111
1109
|
if (type === 1) {
|
|
1112
1110
|
//可编辑
|
|
@@ -1407,8 +1405,8 @@ modules = {
|
|
|
1407
1405
|
this.addFieldValidateEventHandler(),
|
|
1408
1406
|
this.registerFormToRefList(),
|
|
1409
1407
|
this.handleOnCreated(),
|
|
1410
|
-
this.disabledMode
|
|
1411
|
-
this.$nextTick(function () {
|
|
1408
|
+
this.disabledMode
|
|
1409
|
+
&& this.$nextTick(function () {
|
|
1412
1410
|
e.disableForm();
|
|
1413
1411
|
});
|
|
1414
1412
|
},
|
|
@@ -1423,24 +1421,24 @@ modules = {
|
|
|
1423
1421
|
this.changeLanguage(e);
|
|
1424
1422
|
},
|
|
1425
1423
|
insertCustomStyleAndScriptNode: function () {
|
|
1426
|
-
this.formConfig
|
|
1427
|
-
this.formConfig.cssCode
|
|
1428
|
-
baseRefUtil.insertCustomCssToHead(
|
|
1424
|
+
this.formConfig
|
|
1425
|
+
&& this.formConfig.cssCode
|
|
1426
|
+
&& baseRefUtil.insertCustomCssToHead(
|
|
1429
1427
|
this.formConfig.cssCode,
|
|
1430
1428
|
this.previewState ? "" : this.formId
|
|
1431
1429
|
),
|
|
1432
|
-
this.formConfig
|
|
1433
|
-
this.formConfig.functions
|
|
1434
|
-
baseRefUtil.insertGlobalFunctionsToHtml(
|
|
1430
|
+
this.formConfig
|
|
1431
|
+
&& this.formConfig.functions
|
|
1432
|
+
&& baseRefUtil.insertGlobalFunctionsToHtml(
|
|
1435
1433
|
this.formConfig.functions,
|
|
1436
1434
|
this.previewState ? "" : this.formId
|
|
1437
1435
|
);
|
|
1438
1436
|
},
|
|
1439
1437
|
buildFormModel: function (e) {
|
|
1440
1438
|
let t = this;
|
|
1441
|
-
e
|
|
1442
|
-
e.length > 0
|
|
1443
|
-
e.forEach(function (e) {
|
|
1439
|
+
e
|
|
1440
|
+
&& e.length > 0
|
|
1441
|
+
&& e.forEach(function (e) {
|
|
1444
1442
|
t.buildDataFromWidget(e);
|
|
1445
1443
|
});
|
|
1446
1444
|
},
|
|
@@ -1449,8 +1447,8 @@ modules = {
|
|
|
1449
1447
|
let dataId = this.dataId;
|
|
1450
1448
|
let currentFormData = this.currentFormData;
|
|
1451
1449
|
let fieldKeyName = this.getFieldKeyName(e);
|
|
1452
|
-
let defaultValue
|
|
1453
|
-
e.options.defaultValue === undefined || e.options.defaultValue === ""
|
|
1450
|
+
let defaultValue
|
|
1451
|
+
= e.options.defaultValue === undefined || e.options.defaultValue === ""
|
|
1454
1452
|
? null
|
|
1455
1453
|
: e.options.defaultValue;
|
|
1456
1454
|
if ("container" === e.category) {
|
|
@@ -1470,48 +1468,48 @@ modules = {
|
|
|
1470
1468
|
});
|
|
1471
1469
|
}
|
|
1472
1470
|
} else if ("grid" === e.type)
|
|
1473
|
-
e.cols
|
|
1474
|
-
e.cols.length > 0
|
|
1475
|
-
e.cols.forEach(function (e) {
|
|
1471
|
+
e.cols
|
|
1472
|
+
&& e.cols.length > 0
|
|
1473
|
+
&& e.cols.forEach(function (e) {
|
|
1476
1474
|
t.buildDataFromWidget(e);
|
|
1477
1475
|
});
|
|
1478
1476
|
else if ("table" === e.type)
|
|
1479
|
-
e.rows
|
|
1480
|
-
e.rows.length > 0
|
|
1481
|
-
e.rows.forEach(function (e) {
|
|
1482
|
-
e.cols
|
|
1483
|
-
e.cols.length > 0
|
|
1484
|
-
e.cols.forEach(function (e) {
|
|
1477
|
+
e.rows
|
|
1478
|
+
&& e.rows.length > 0
|
|
1479
|
+
&& e.rows.forEach(function (e) {
|
|
1480
|
+
e.cols
|
|
1481
|
+
&& e.cols.length > 0
|
|
1482
|
+
&& e.cols.forEach(function (e) {
|
|
1485
1483
|
t.buildDataFromWidget(e);
|
|
1486
1484
|
});
|
|
1487
1485
|
});
|
|
1488
1486
|
else if ("h5-table" === e.type)
|
|
1489
|
-
e.rows
|
|
1490
|
-
e.rows.length > 0
|
|
1491
|
-
e.rows.forEach(function (e) {
|
|
1492
|
-
e.cols
|
|
1493
|
-
e.cols.length > 0
|
|
1494
|
-
e.cols.forEach(function (e) {
|
|
1487
|
+
e.rows
|
|
1488
|
+
&& e.rows.length > 0
|
|
1489
|
+
&& e.rows.forEach(function (e) {
|
|
1490
|
+
e.cols
|
|
1491
|
+
&& e.cols.length > 0
|
|
1492
|
+
&& e.cols.forEach(function (e) {
|
|
1495
1493
|
t.buildDataFromWidget(e);
|
|
1496
1494
|
});
|
|
1497
1495
|
});
|
|
1498
1496
|
else if ("tab" === e.type)
|
|
1499
|
-
e.tabs
|
|
1500
|
-
e.tabs.length > 0
|
|
1501
|
-
e.tabs.forEach(function (e) {
|
|
1502
|
-
e.widgetList
|
|
1503
|
-
e.widgetList.length > 0
|
|
1504
|
-
e.widgetList.forEach(function (e) {
|
|
1497
|
+
e.tabs
|
|
1498
|
+
&& e.tabs.length > 0
|
|
1499
|
+
&& e.tabs.forEach(function (e) {
|
|
1500
|
+
e.widgetList
|
|
1501
|
+
&& e.widgetList.length > 0
|
|
1502
|
+
&& e.widgetList.forEach(function (e) {
|
|
1505
1503
|
t.buildDataFromWidget(e);
|
|
1506
1504
|
});
|
|
1507
1505
|
});
|
|
1508
1506
|
else if ("detail" === e.type)
|
|
1509
|
-
e.panes
|
|
1510
|
-
e.panes.length > 0
|
|
1511
|
-
e.panes.forEach(function (e) {
|
|
1512
|
-
e.widgetList
|
|
1513
|
-
e.widgetList.length > 0
|
|
1514
|
-
e.widgetList.forEach(function (e) {
|
|
1507
|
+
e.panes
|
|
1508
|
+
&& e.panes.length > 0
|
|
1509
|
+
&& e.panes.forEach(function (e) {
|
|
1510
|
+
e.widgetList
|
|
1511
|
+
&& e.widgetList.length > 0
|
|
1512
|
+
&& e.widgetList.forEach(function (e) {
|
|
1515
1513
|
t.buildDataFromWidget(e);
|
|
1516
1514
|
});
|
|
1517
1515
|
});
|
|
@@ -1549,26 +1547,26 @@ modules = {
|
|
|
1549
1547
|
: this.$set(this.formDataModel, a, []);
|
|
1550
1548
|
}
|
|
1551
1549
|
} else if ("detail-h5" === e.type) {
|
|
1552
|
-
e.panes
|
|
1553
|
-
e.panes.length > 0
|
|
1554
|
-
e.panes.forEach(function (e) {
|
|
1550
|
+
e.panes
|
|
1551
|
+
&& e.panes.length > 0
|
|
1552
|
+
&& e.panes.forEach(function (e) {
|
|
1555
1553
|
t.buildDataFromWidget(e);
|
|
1556
1554
|
});
|
|
1557
1555
|
} else if ("h5-card" === e.type) {
|
|
1558
|
-
e.panes
|
|
1559
|
-
e.panes.length > 0
|
|
1560
|
-
e.panes.forEach(function (e) {
|
|
1561
|
-
e.widgetList
|
|
1562
|
-
e.widgetList.length > 0
|
|
1563
|
-
e.widgetList.forEach(function (e) {
|
|
1556
|
+
e.panes
|
|
1557
|
+
&& e.panes.length > 0
|
|
1558
|
+
&& e.panes.forEach(function (e) {
|
|
1559
|
+
e.widgetList
|
|
1560
|
+
&& e.widgetList.length > 0
|
|
1561
|
+
&& e.widgetList.forEach(function (e) {
|
|
1564
1562
|
t.buildDataFromWidget(e);
|
|
1565
1563
|
});
|
|
1566
1564
|
});
|
|
1567
1565
|
} else
|
|
1568
1566
|
"grid-col" === e.type || e.type,
|
|
1569
|
-
e.widgetList
|
|
1570
|
-
e.widgetList.length > 0
|
|
1571
|
-
e.widgetList.forEach(function (e) {
|
|
1567
|
+
e.widgetList
|
|
1568
|
+
&& e.widgetList.length > 0
|
|
1569
|
+
&& e.widgetList.forEach(function (e) {
|
|
1572
1570
|
t.buildDataFromWidget(e);
|
|
1573
1571
|
});
|
|
1574
1572
|
} else if ("vabsearch" === e.type) {
|
|
@@ -1674,10 +1672,10 @@ modules = {
|
|
|
1674
1672
|
findWidgetOfSubFormAndSetDisabled: function (e, t) {
|
|
1675
1673
|
let i = this,
|
|
1676
1674
|
n = baseRefUtil.getFieldWidgetByName(this.formJsonObj.widgetList, e);
|
|
1677
|
-
n
|
|
1678
|
-
n.options
|
|
1679
|
-
n.options.hasOwnProperty("disabled")
|
|
1680
|
-
(n.options.disabled = t),
|
|
1675
|
+
n
|
|
1676
|
+
&& n.options
|
|
1677
|
+
&& n.options.hasOwnProperty("disabled")
|
|
1678
|
+
&& (n.options.disabled = t),
|
|
1681
1679
|
this.findWidgetNameInSubForm(e).forEach(function (e) {
|
|
1682
1680
|
let n = i.getWidgetRef(e);
|
|
1683
1681
|
n && n.setDisabled && n.setDisabled(t);
|
|
@@ -1692,10 +1690,10 @@ modules = {
|
|
|
1692
1690
|
findWidgetOfSubFormAndSetHidden: function (e, t) {
|
|
1693
1691
|
let i = this,
|
|
1694
1692
|
n = baseRefUtil.getFieldWidgetByName(this.formJsonObj.widgetList, e);
|
|
1695
|
-
n
|
|
1696
|
-
n.options
|
|
1697
|
-
n.options.hasOwnProperty("hidden")
|
|
1698
|
-
(n.options.hidden = t),
|
|
1693
|
+
n
|
|
1694
|
+
&& n.options
|
|
1695
|
+
&& n.options.hasOwnProperty("hidden")
|
|
1696
|
+
&& (n.options.hidden = t),
|
|
1699
1697
|
this.findWidgetNameInSubForm(e).forEach(function (e) {
|
|
1700
1698
|
let n = i.getWidgetRef(e);
|
|
1701
1699
|
n && n.setDisabled && n.setHidden(t);
|
|
@@ -1777,9 +1775,9 @@ modules = {
|
|
|
1777
1775
|
let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1],
|
|
1778
1776
|
i = this.widgetRefList[e];
|
|
1779
1777
|
return (
|
|
1780
|
-
!i
|
|
1781
|
-
t
|
|
1782
|
-
this.$message.error(this.i18nt("render.hint.refNotFound") + e),
|
|
1778
|
+
!i
|
|
1779
|
+
&& t
|
|
1780
|
+
&& this.$message.error(this.i18nt("render.hint.refNotFound") + e),
|
|
1783
1781
|
i
|
|
1784
1782
|
);
|
|
1785
1783
|
},
|
|
@@ -1862,15 +1860,15 @@ modules = {
|
|
|
1862
1860
|
let i = this,
|
|
1863
1861
|
n = this.getWidgetRef(e);
|
|
1864
1862
|
n && n.setValue && n.setValue(t),
|
|
1865
|
-
n
|
|
1866
|
-
this.findWidgetNameInSubForm(e).forEach(function (e) {
|
|
1863
|
+
n
|
|
1864
|
+
|| this.findWidgetNameInSubForm(e).forEach(function (e) {
|
|
1867
1865
|
let n = i.getWidgetRef(e);
|
|
1868
1866
|
n && n.setValue && n.setValue(t);
|
|
1869
1867
|
});
|
|
1870
1868
|
},
|
|
1871
1869
|
getSubFormValues: function (e) {
|
|
1872
|
-
let t
|
|
1873
|
-
!(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1],
|
|
1870
|
+
let t
|
|
1871
|
+
= !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1],
|
|
1874
1872
|
i = this.subFormRefList[e];
|
|
1875
1873
|
return i.getSubFormValues(t);
|
|
1876
1874
|
},
|
|
@@ -1886,8 +1884,8 @@ modules = {
|
|
|
1886
1884
|
if (!!foundW.widget && foundW.widget.type === "sub-form") {
|
|
1887
1885
|
foundW.disableSubForm();
|
|
1888
1886
|
} else if (
|
|
1889
|
-
!!foundW.widget
|
|
1890
|
-
foundW.widget.type === "grid-sub-form"
|
|
1887
|
+
!!foundW.widget
|
|
1888
|
+
&& foundW.widget.type === "grid-sub-form"
|
|
1891
1889
|
) {
|
|
1892
1890
|
foundW.disableGridSubForm();
|
|
1893
1891
|
} else if (!!foundW.widget && foundW.widget.type === "data-table") {
|
|
@@ -1910,8 +1908,8 @@ modules = {
|
|
|
1910
1908
|
if (!!foundW.widget && foundW.widget.type === "sub-form") {
|
|
1911
1909
|
foundW.enableSubForm();
|
|
1912
1910
|
} else if (
|
|
1913
|
-
!!foundW.widget
|
|
1914
|
-
foundW.widget.type === "grid-sub-form"
|
|
1911
|
+
!!foundW.widget
|
|
1912
|
+
&& foundW.widget.type === "grid-sub-form"
|
|
1915
1913
|
) {
|
|
1916
1914
|
foundW.enableGridSubForm();
|
|
1917
1915
|
} else if (!!foundW.widget && foundW.widget.type === "data-table") {
|
|
@@ -1948,54 +1946,54 @@ modules = {
|
|
|
1948
1946
|
validateFields: function () {},
|
|
1949
1947
|
disableWidgets: function (e) {
|
|
1950
1948
|
let t = this;
|
|
1951
|
-
e
|
|
1952
|
-
("string" === typeof e
|
|
1949
|
+
e
|
|
1950
|
+
&& ("string" === typeof e
|
|
1953
1951
|
? this.findWidgetAndSetDisabled(e, !0)
|
|
1954
|
-
: Array.isArray(e)
|
|
1955
|
-
e.forEach(function (e) {
|
|
1952
|
+
: Array.isArray(e)
|
|
1953
|
+
&& e.forEach(function (e) {
|
|
1956
1954
|
t.findWidgetAndSetDisabled(e, !0);
|
|
1957
1955
|
}));
|
|
1958
1956
|
},
|
|
1959
1957
|
enableWidgets: function (e) {
|
|
1960
1958
|
let t = this;
|
|
1961
|
-
e
|
|
1962
|
-
("string" === typeof e
|
|
1959
|
+
e
|
|
1960
|
+
&& ("string" === typeof e
|
|
1963
1961
|
? this.findWidgetAndSetDisabled(e, !1)
|
|
1964
|
-
: Array.isArray(e)
|
|
1965
|
-
e.forEach(function (e) {
|
|
1962
|
+
: Array.isArray(e)
|
|
1963
|
+
&& e.forEach(function (e) {
|
|
1966
1964
|
t.findWidgetAndSetDisabled(e, !1);
|
|
1967
1965
|
}));
|
|
1968
1966
|
},
|
|
1969
1967
|
hideWidgets: function (e) {
|
|
1970
1968
|
let t = this;
|
|
1971
|
-
e
|
|
1972
|
-
("string" === typeof e
|
|
1969
|
+
e
|
|
1970
|
+
&& ("string" === typeof e
|
|
1973
1971
|
? this.findWidgetAndSetHidden(e, !0)
|
|
1974
|
-
: Array.isArray(e)
|
|
1975
|
-
e.forEach(function (e) {
|
|
1972
|
+
: Array.isArray(e)
|
|
1973
|
+
&& e.forEach(function (e) {
|
|
1976
1974
|
t.findWidgetAndSetHidden(e, !0);
|
|
1977
1975
|
}));
|
|
1978
1976
|
},
|
|
1979
1977
|
showWidgets: function (e) {
|
|
1980
1978
|
let t = this;
|
|
1981
|
-
e
|
|
1982
|
-
("string" === typeof e
|
|
1979
|
+
e
|
|
1980
|
+
&& ("string" === typeof e
|
|
1983
1981
|
? this.findWidgetAndSetHidden(e, !1)
|
|
1984
|
-
: Array.isArray(e)
|
|
1985
|
-
e.forEach(function (e) {
|
|
1982
|
+
: Array.isArray(e)
|
|
1983
|
+
&& e.forEach(function (e) {
|
|
1986
1984
|
t.findWidgetAndSetHidden(e, !1);
|
|
1987
1985
|
}));
|
|
1988
1986
|
},
|
|
1989
1987
|
getFieldWidgets: function () {
|
|
1990
|
-
let e
|
|
1991
|
-
arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
|
|
1988
|
+
let e
|
|
1989
|
+
= arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
|
|
1992
1990
|
return e
|
|
1993
1991
|
? baseRefUtil.getAllFieldWidgets(e)
|
|
1994
1992
|
: baseRefUtil.getAllFieldWidgets(this.formJsonObj.widgetList);
|
|
1995
1993
|
},
|
|
1996
1994
|
getContainerWidgets: function () {
|
|
1997
|
-
let e
|
|
1998
|
-
arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
|
|
1995
|
+
let e
|
|
1996
|
+
= arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
|
|
1999
1997
|
return e
|
|
2000
1998
|
? baseRefUtil.getAllContainerWidgets(e)
|
|
2001
1999
|
: baseRefUtil.getAllContainerWidgets(this.formJsonObj.widgetList);
|
|
@@ -2010,8 +2008,8 @@ modules = {
|
|
|
2010
2008
|
return this.externalComponents[e];
|
|
2011
2009
|
},
|
|
2012
2010
|
setReadMode: function () {
|
|
2013
|
-
let e
|
|
2014
|
-
!(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0];
|
|
2011
|
+
let e
|
|
2012
|
+
= !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0];
|
|
2015
2013
|
this.readModeFlag = e;
|
|
2016
2014
|
},
|
|
2017
2015
|
getReadMode: function () {
|
|
@@ -2364,8 +2362,8 @@ modules = {
|
|
|
2364
2362
|
}
|
|
2365
2363
|
let newFormData = {};
|
|
2366
2364
|
formTemplateTableDTOs.forEach((formTemplateTableDTO) => {
|
|
2367
|
-
let tableAlias
|
|
2368
|
-
formTemplateTableDTO.tableType == 0
|
|
2365
|
+
let tableAlias
|
|
2366
|
+
= formTemplateTableDTO.tableType == 0
|
|
2369
2367
|
? formCode
|
|
2370
2368
|
: formTemplateTableDTO.tableAlias;
|
|
2371
2369
|
if (formTemplateTableDTO.tableType == 0) {
|
|
@@ -2377,14 +2375,14 @@ modules = {
|
|
|
2377
2375
|
});
|
|
2378
2376
|
formTemplateTableDTO.formTemplateFieldDTOs.forEach(
|
|
2379
2377
|
(formTemplateFieldDTO) => {
|
|
2380
|
-
item[formTemplateFieldDTO.fieldName]
|
|
2381
|
-
res[formTemplateFieldDTO.fieldName];
|
|
2378
|
+
item[formTemplateFieldDTO.fieldName]
|
|
2379
|
+
= res[formTemplateFieldDTO.fieldName];
|
|
2382
2380
|
}
|
|
2383
2381
|
);
|
|
2384
2382
|
newFormData[tableAlias] = item;
|
|
2385
2383
|
} else {
|
|
2386
|
-
newFormData[tableAlias]
|
|
2387
|
-
formDataModel[formTemplateTableDTO.name];
|
|
2384
|
+
newFormData[tableAlias]
|
|
2385
|
+
= formDataModel[formTemplateTableDTO.name];
|
|
2388
2386
|
}
|
|
2389
2387
|
});
|
|
2390
2388
|
/*if (formConfig.formType === 1) {
|
|
@@ -2417,8 +2415,8 @@ modules = {
|
|
|
2417
2415
|
|
|
2418
2416
|
let newFormData = {};
|
|
2419
2417
|
formTemplateTableDTOs.forEach((formTemplateTableDTO) => {
|
|
2420
|
-
let tableAlias
|
|
2421
|
-
formTemplateTableDTO.tableType == 0
|
|
2418
|
+
let tableAlias
|
|
2419
|
+
= formTemplateTableDTO.tableType == 0
|
|
2422
2420
|
? formCode
|
|
2423
2421
|
: formTemplateTableDTO.tableAlias;
|
|
2424
2422
|
if (formTemplateTableDTO.tableType == 0) {
|
|
@@ -2430,8 +2428,8 @@ modules = {
|
|
|
2430
2428
|
});
|
|
2431
2429
|
formTemplateTableDTO.formTemplateFieldDTOs.forEach(
|
|
2432
2430
|
(formTemplateFieldDTO) => {
|
|
2433
|
-
item[formTemplateFieldDTO.fieldName]
|
|
2434
|
-
res[formTemplateFieldDTO.fieldName];
|
|
2431
|
+
item[formTemplateFieldDTO.fieldName]
|
|
2432
|
+
= res[formTemplateFieldDTO.fieldName];
|
|
2435
2433
|
}
|
|
2436
2434
|
);
|
|
2437
2435
|
newFormData[tableAlias] = item ?? null;
|
|
@@ -2450,16 +2448,16 @@ modules = {
|
|
|
2450
2448
|
);
|
|
2451
2449
|
tableDatas.forEach((tableData) => {
|
|
2452
2450
|
if (
|
|
2453
|
-
tableData.id
|
|
2454
|
-
tableData.id.startsWith
|
|
2455
|
-
tableData.id.startsWith("row_")
|
|
2451
|
+
tableData.id
|
|
2452
|
+
&& tableData.id.startsWith
|
|
2453
|
+
&& tableData.id.startsWith("row_")
|
|
2456
2454
|
) {
|
|
2457
2455
|
tableData.id = null;
|
|
2458
2456
|
}
|
|
2459
2457
|
if (
|
|
2460
|
-
tableData[parentField]
|
|
2461
|
-
tableData[parentField].startsWith
|
|
2462
|
-
tableData[parentField].startsWith("row_")
|
|
2458
|
+
tableData[parentField]
|
|
2459
|
+
&& tableData[parentField].startsWith
|
|
2460
|
+
&& tableData[parentField].startsWith("row_")
|
|
2463
2461
|
) {
|
|
2464
2462
|
tableData[parentField] = null;
|
|
2465
2463
|
}
|
|
@@ -2471,8 +2469,8 @@ modules = {
|
|
|
2471
2469
|
});
|
|
2472
2470
|
newFormData[tableAlias] = tableDatas;
|
|
2473
2471
|
} else {
|
|
2474
|
-
newFormData[tableAlias]
|
|
2475
|
-
formDataModel[formTemplateTableDTO.name] ?? null;
|
|
2472
|
+
newFormData[tableAlias]
|
|
2473
|
+
= formDataModel[formTemplateTableDTO.name] ?? null;
|
|
2476
2474
|
}
|
|
2477
2475
|
}
|
|
2478
2476
|
});
|
|
@@ -2534,8 +2532,8 @@ modules = {
|
|
|
2534
2532
|
//获取表单的第一个组件
|
|
2535
2533
|
let target = null;
|
|
2536
2534
|
if (
|
|
2537
|
-
this.formJsonObj.widgetList
|
|
2538
|
-
this.formJsonObj.widgetList.length > 0
|
|
2535
|
+
this.formJsonObj.widgetList
|
|
2536
|
+
&& this.formJsonObj.widgetList.length > 0
|
|
2539
2537
|
) {
|
|
2540
2538
|
target = this.getWidgetRef(this.formJsonObj.widgetList[0].options.name);
|
|
2541
2539
|
}
|
|
@@ -2751,42 +2749,42 @@ modules = {
|
|
|
2751
2749
|
columnSelectedWidget.options.label = "删除";
|
|
2752
2750
|
columnSelectedWidget.options.labelHidden = true;
|
|
2753
2751
|
columnSelectedWidget.options.hiddenByWf = true;
|
|
2754
|
-
columnSelectedWidget.options.onClick
|
|
2755
|
-
"let tableParam = this.tableParam;\nlet tableRef = this.getWidgetRef(this.parentWidget.options.name);\ntableRef.deleteRow(tableParam.row,tableParam.rowIndex);";
|
|
2752
|
+
columnSelectedWidget.options.onClick
|
|
2753
|
+
= "let tableParam = this.tableParam;\nlet tableRef = this.getWidgetRef(this.parentWidget.options.name);\ntableRef.deleteRow(tableParam.row,tableParam.rowIndex);";
|
|
2756
2754
|
} else if ("editButton" == formatS) {
|
|
2757
2755
|
columnSelectedWidget.options.prefixIcon = "el-icon-edit";
|
|
2758
2756
|
columnSelectedWidget.options.label = "查看";
|
|
2759
2757
|
columnSelectedWidget.options.labelHidden = true;
|
|
2760
|
-
columnSelectedWidget.options.onClick
|
|
2761
|
-
"let tableParam = this.tableParam;\nlet tableRef = this.getWidgetRef(this.parentWidget.options.name);\ntableRef.openEditDialog(tableParam.row)";
|
|
2758
|
+
columnSelectedWidget.options.onClick
|
|
2759
|
+
= "let tableParam = this.tableParam;\nlet tableRef = this.getWidgetRef(this.parentWidget.options.name);\ntableRef.openEditDialog(tableParam.row)";
|
|
2762
2760
|
} else if ("addSiblingEditRow" == formatS) {
|
|
2763
2761
|
columnSelectedWidget.options.prefixIcon = "el-icon-plus";
|
|
2764
2762
|
columnSelectedWidget.options.label = "新增兄弟节点";
|
|
2765
2763
|
columnSelectedWidget.options.labelHidden = false;
|
|
2766
|
-
columnSelectedWidget.options.onClick
|
|
2767
|
-
"let tableParam = this.tableParam;\nthis.getParentTarget().addSiblingTreeRow(null,tableParam);";
|
|
2764
|
+
columnSelectedWidget.options.onClick
|
|
2765
|
+
= "let tableParam = this.tableParam;\nthis.getParentTarget().addSiblingTreeRow(null,tableParam);";
|
|
2768
2766
|
} else if ("addChildTreeRow" == formatS) {
|
|
2769
2767
|
columnSelectedWidget.options.prefixIcon = "el-icon-plus";
|
|
2770
2768
|
columnSelectedWidget.options.label = "新增子节点";
|
|
2771
2769
|
columnSelectedWidget.options.labelHidden = false;
|
|
2772
|
-
columnSelectedWidget.options.onClick
|
|
2773
|
-
"let tableParam = this.tableParam;\nthis.getParentTarget().addChildTreeRow(null,tableParam);";
|
|
2770
|
+
columnSelectedWidget.options.onClick
|
|
2771
|
+
= "let tableParam = this.tableParam;\nthis.getParentTarget().addChildTreeRow(null,tableParam);";
|
|
2774
2772
|
} else if ("moveUpRow" == formatS) {
|
|
2775
2773
|
columnSelectedWidget.options.label = "↑上移";
|
|
2776
2774
|
columnSelectedWidget.options.labelHidden = false;
|
|
2777
|
-
columnSelectedWidget.options.onClick
|
|
2778
|
-
"let tableParam = this.tableParam;\nthis.getParentTarget().moveUpRow(tableParam);";
|
|
2775
|
+
columnSelectedWidget.options.onClick
|
|
2776
|
+
= "let tableParam = this.tableParam;\nthis.getParentTarget().moveUpRow(tableParam);";
|
|
2779
2777
|
} else if ("moveDownRow" == formatS) {
|
|
2780
2778
|
columnSelectedWidget.options.label = "↓下移";
|
|
2781
2779
|
columnSelectedWidget.options.labelHidden = false;
|
|
2782
|
-
columnSelectedWidget.options.onClick
|
|
2783
|
-
"let tableParam = this.tableParam;\nthis.getParentTarget().moveDownRow(tableParam);";
|
|
2780
|
+
columnSelectedWidget.options.onClick
|
|
2781
|
+
= "let tableParam = this.tableParam;\nthis.getParentTarget().moveDownRow(tableParam);";
|
|
2784
2782
|
} else if ("removeTreeRow" == formatS) {
|
|
2785
2783
|
columnSelectedWidget.options.prefixIcon = "el-icon-delete";
|
|
2786
2784
|
columnSelectedWidget.options.label = "删除";
|
|
2787
2785
|
columnSelectedWidget.options.labelHidden = true;
|
|
2788
|
-
columnSelectedWidget.options.onClick
|
|
2789
|
-
"let tableParam = this.tableParam;\nthis.getParentTarget().removeTreeRow(tableParam);";
|
|
2786
|
+
columnSelectedWidget.options.onClick
|
|
2787
|
+
= "let tableParam = this.tableParam;\nthis.getParentTarget().removeTreeRow(tableParam);";
|
|
2790
2788
|
}
|
|
2791
2789
|
|
|
2792
2790
|
if (columnSelectedWidget.options.hasOwnProperty("keyName")) {
|
|
@@ -2935,8 +2933,8 @@ modules = {
|
|
|
2935
2933
|
this.showFileReferenceDialog = true;
|
|
2936
2934
|
},
|
|
2937
2935
|
confirmFileReferenceDialog() {
|
|
2938
|
-
this.fileReferenceDialogOption.confirm
|
|
2939
|
-
this.fileReferenceDialogOption.confirm();
|
|
2936
|
+
this.fileReferenceDialogOption.confirm
|
|
2937
|
+
&& this.fileReferenceDialogOption.confirm();
|
|
2940
2938
|
},
|
|
2941
2939
|
getFormRef() {
|
|
2942
2940
|
return this;
|
|
@@ -2944,38 +2942,215 @@ modules = {
|
|
|
2944
2942
|
isObject(value) {
|
|
2945
2943
|
return Object.prototype.toString.call(value) === "[object Object]";
|
|
2946
2944
|
},
|
|
2947
|
-
|
|
2948
|
-
|
|
2945
|
+
handleCopyTreeData(value, widget) {
|
|
2946
|
+
if (!value || !widget || !Array.isArray(value) || value.length === 0) return;
|
|
2947
|
+
|
|
2948
|
+
// 获取树形表格配置
|
|
2949
|
+
const widgetName = widget.options.name;
|
|
2950
|
+
const gridRef = this.getWidgetRef(widgetName);
|
|
2951
|
+
const $grid = gridRef.getGridTable();
|
|
2952
|
+
const treeConfig = $grid.treeConfig;
|
|
2953
|
+
const idField = treeConfig.rowField || "id";
|
|
2954
|
+
const parentField = treeConfig.parentField;
|
|
2955
|
+
const childrenField = treeConfig.children;
|
|
2956
|
+
|
|
2957
|
+
// 初始化 id 生成器
|
|
2958
|
+
const baseTime = new Date().valueOf();
|
|
2959
|
+
let counter = 0;
|
|
2960
|
+
const idMap = {}; // 旧 id 到新 id 的映射
|
|
2961
|
+
|
|
2962
|
+
// 生成新的 id(以 'row_' 开头)
|
|
2963
|
+
const generateNewId = () => {
|
|
2964
|
+
counter++;
|
|
2965
|
+
return `row_${baseTime}_${counter}_${Math.floor(Math.random() * 1000000)}`;
|
|
2966
|
+
};
|
|
2949
2967
|
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
2963
|
-
delete data.head_table_id;
|
|
2964
|
-
delete data.objectForeignId;
|
|
2965
|
-
if (data.createBy) data.createBy;
|
|
2966
|
-
if (data.createDate) data.createDate;
|
|
2967
|
-
if (data.modifyBy) data.modifyBy;
|
|
2968
|
-
if (data.modifyDate) data.modifyDate;
|
|
2969
|
-
Object.keys(data).forEach((key) => {
|
|
2970
|
-
let value = data[key];
|
|
2971
|
-
if (value && Array.isArray(value)) {
|
|
2972
|
-
handleData(value);
|
|
2968
|
+
// 收集所有节点(包括扁平数组和嵌套结构中的节点),使用 Set 去重
|
|
2969
|
+
const allNodes = [];
|
|
2970
|
+
const processedNodes = new WeakSet(); // 使用 WeakSet 来跟踪已处理的节点,避免重复处理
|
|
2971
|
+
|
|
2972
|
+
const collectAllNodes = (nodes) => {
|
|
2973
|
+
if (!Array.isArray(nodes)) return;
|
|
2974
|
+
nodes.forEach(node => {
|
|
2975
|
+
if (node && this.isObject(node) && !processedNodes.has(node)) {
|
|
2976
|
+
processedNodes.add(node);
|
|
2977
|
+
allNodes.push(node);
|
|
2978
|
+
// 递归收集嵌套在 childrenField 中的节点
|
|
2979
|
+
if (node[childrenField] && Array.isArray(node[childrenField])) {
|
|
2980
|
+
collectAllNodes(node[childrenField]);
|
|
2973
2981
|
}
|
|
2974
|
-
}
|
|
2982
|
+
}
|
|
2983
|
+
});
|
|
2984
|
+
};
|
|
2985
|
+
collectAllNodes(value);
|
|
2986
|
+
|
|
2987
|
+
// 第一步:为所有节点生成新的 id 并建立映射
|
|
2988
|
+
// 注意:即使 id 为 null,也要生成新 id
|
|
2989
|
+
allNodes.forEach(node => {
|
|
2990
|
+
if (node[idField] !== undefined && node[idField] !== null) {
|
|
2991
|
+
// 如果节点已有 id,记录映射关系
|
|
2992
|
+
const oldId = node[idField];
|
|
2993
|
+
const newId = generateNewId();
|
|
2994
|
+
idMap[oldId] = newId;
|
|
2995
|
+
node[idField] = newId;
|
|
2996
|
+
} else {
|
|
2997
|
+
// 如果节点 id 为 null 或 undefined,直接生成新 id
|
|
2998
|
+
const newId = generateNewId();
|
|
2999
|
+
node[idField] = newId;
|
|
3000
|
+
}
|
|
3001
|
+
});
|
|
3002
|
+
|
|
3003
|
+
// 第二步:更新所有节点的 parentField(使用映射的新 id)
|
|
3004
|
+
allNodes.forEach(node => {
|
|
3005
|
+
if (node[parentField] !== undefined && node[parentField] !== null && node[parentField] !== 0) {
|
|
3006
|
+
const oldParentId = node[parentField];
|
|
3007
|
+
// 如果父节点的旧 id 在映射中,更新为新 id
|
|
3008
|
+
if (idMap[oldParentId]) {
|
|
3009
|
+
node[parentField] = idMap[oldParentId];
|
|
3010
|
+
} else {
|
|
3011
|
+
// 如果父节点不在映射中(可能是外部引用或已处理),尝试在 allNodes 中查找
|
|
3012
|
+
const parentNode = allNodes.find(n => n[idField] === oldParentId);
|
|
3013
|
+
if (parentNode) {
|
|
3014
|
+
node[parentField] = parentNode[idField];
|
|
3015
|
+
} else {
|
|
3016
|
+
// 找不到父节点,设置为 0(根节点)
|
|
3017
|
+
node[parentField] = 0;
|
|
3018
|
+
}
|
|
3019
|
+
}
|
|
2975
3020
|
}
|
|
3021
|
+
});
|
|
3022
|
+
|
|
3023
|
+
// 第三步:更新嵌套的 childrenField 结构中的 parentField
|
|
3024
|
+
const updateNestedChildrenParent = (node) => {
|
|
3025
|
+
if (!node || !node[childrenField] || !Array.isArray(node[childrenField]) || node[childrenField].length === 0) {
|
|
3026
|
+
return;
|
|
3027
|
+
}
|
|
3028
|
+
|
|
3029
|
+
node[childrenField].forEach(child => {
|
|
3030
|
+
if (child && node[idField]) {
|
|
3031
|
+
child[parentField] = node[idField];
|
|
3032
|
+
}
|
|
3033
|
+
updateNestedChildrenParent(child);
|
|
3034
|
+
});
|
|
2976
3035
|
};
|
|
3036
|
+
allNodes.forEach(node => updateNestedChildrenParent(node));
|
|
3037
|
+
|
|
3038
|
+
// 第四步:处理节点中的其他数组字段(如子表单、附件列表等)
|
|
3039
|
+
// 注意:需要跳过树形结构相关的字段,避免误处理
|
|
3040
|
+
const treeRelatedFields = new Set([idField, parentField, childrenField, '_X_ROW_KEY', '_X_ROW_CHILD', 'f_wbs']);
|
|
3041
|
+
const processedArrayNodes = new WeakSet(); // 跟踪已处理的数组节点,避免重复处理
|
|
3042
|
+
|
|
3043
|
+
const processNodeArrayFields = (node) => {
|
|
3044
|
+
if (!node || !this.isObject(node)) return;
|
|
3045
|
+
|
|
3046
|
+
// 如果节点已经在 allNodes 中(是树形节点),跳过处理,避免覆盖已生成的 id
|
|
3047
|
+
if (processedNodes.has(node)) {
|
|
3048
|
+
return;
|
|
3049
|
+
}
|
|
3050
|
+
|
|
3051
|
+
Object.keys(node).forEach(key => {
|
|
3052
|
+
// 跳过树形结构相关字段
|
|
3053
|
+
if (treeRelatedFields.has(key)) {
|
|
3054
|
+
return;
|
|
3055
|
+
}
|
|
3056
|
+
|
|
3057
|
+
const fieldValue = node[key];
|
|
3058
|
+
|
|
3059
|
+
// 处理数组字段
|
|
3060
|
+
if (Array.isArray(fieldValue) && fieldValue.length > 0) {
|
|
3061
|
+
fieldValue.forEach(item => {
|
|
3062
|
+
if (this.isObject(item)) {
|
|
3063
|
+
// 如果这个对象是树形节点(在 allNodes 中),跳过处理
|
|
3064
|
+
if (processedNodes.has(item)) {
|
|
3065
|
+
return;
|
|
3066
|
+
}
|
|
3067
|
+
|
|
3068
|
+
// 只有非树形节点的数组元素才需要清空 id
|
|
3069
|
+
if (item.id !== undefined) {
|
|
3070
|
+
item.id = null;
|
|
3071
|
+
}
|
|
3072
|
+
this.handleCopyDefaultData(item);
|
|
3073
|
+
|
|
3074
|
+
// 标记已处理,避免重复处理
|
|
3075
|
+
if (!processedArrayNodes.has(item)) {
|
|
3076
|
+
processedArrayNodes.add(item);
|
|
3077
|
+
processNodeArrayFields(item);
|
|
3078
|
+
}
|
|
3079
|
+
}
|
|
3080
|
+
});
|
|
3081
|
+
return;
|
|
3082
|
+
}
|
|
3083
|
+
|
|
3084
|
+
// 处理嵌套对象
|
|
3085
|
+
if (this.isObject(fieldValue)) {
|
|
3086
|
+
// 如果这个对象是树形节点,跳过处理
|
|
3087
|
+
if (!processedNodes.has(fieldValue)) {
|
|
3088
|
+
processNodeArrayFields(fieldValue);
|
|
3089
|
+
}
|
|
3090
|
+
}
|
|
3091
|
+
});
|
|
3092
|
+
};
|
|
3093
|
+
|
|
3094
|
+
// 处理所有节点中的其他数组字段
|
|
3095
|
+
allNodes.forEach(node => processNodeArrayFields(node));
|
|
3096
|
+
},
|
|
3097
|
+
handleCopyDefaultData(data){
|
|
3098
|
+
data.create_by = null;
|
|
3099
|
+
data._create_by = null;
|
|
3100
|
+
data.create_date = null;
|
|
3101
|
+
data.modify_by = null;
|
|
3102
|
+
data._modify_by = null;
|
|
3103
|
+
data.modify_date = null;
|
|
3104
|
+
delete data.head_table_id;
|
|
3105
|
+
delete data.objectForeignId;
|
|
3106
|
+
},
|
|
3107
|
+
handleCopyData(data, fieldKey) {
|
|
3108
|
+
if (!data) return;
|
|
3109
|
+
|
|
3110
|
+
// 处理数组类型数据
|
|
3111
|
+
if (Array.isArray(data)) {
|
|
3112
|
+
if (data.length === 0) return;
|
|
3113
|
+
|
|
3114
|
+
// 检查是否为树形表格数据
|
|
3115
|
+
const formRef = this.getFormRef();
|
|
3116
|
+
if (formRef && formRef.getTableFiledMap && fieldKey) {
|
|
3117
|
+
const fieldMap = formRef.getTableFiledMap(1); // flag=1 返回 widget 对象
|
|
3118
|
+
const widget = fieldMap[fieldKey];
|
|
3119
|
+
|
|
3120
|
+
if (widget && widget.type === 'data-table' && !widget.options.isQueryTable && widget.options.isTreeTable) {
|
|
3121
|
+
this.handleCopyTreeData(data, widget);
|
|
3122
|
+
return;
|
|
3123
|
+
}
|
|
3124
|
+
}
|
|
3125
|
+
|
|
3126
|
+
// 普通数组,递归处理每个元素
|
|
3127
|
+
data.forEach(item => {
|
|
3128
|
+
this.handleCopyData(item);
|
|
3129
|
+
});
|
|
3130
|
+
return;
|
|
3131
|
+
}
|
|
3132
|
+
|
|
3133
|
+
// 处理对象类型数据
|
|
3134
|
+
if (this.isObject(data)) {
|
|
3135
|
+
data.id = null;
|
|
3136
|
+
this.handleCopyDefaultData(data);
|
|
3137
|
+
|
|
3138
|
+
// 递归处理对象中的数组字段
|
|
3139
|
+
Object.keys(data).forEach(key => {
|
|
3140
|
+
const value = data[key];
|
|
3141
|
+
if (Array.isArray(value)) {
|
|
3142
|
+
this.handleCopyData(value, key);
|
|
3143
|
+
}
|
|
3144
|
+
});
|
|
3145
|
+
}
|
|
3146
|
+
},
|
|
3147
|
+
openCopyEditTab(copyData) {
|
|
3148
|
+
|
|
3149
|
+
let formData = this.$baseLodash.cloneDeep(copyData || this.formDataModel);
|
|
2977
3150
|
if (formData) {
|
|
2978
|
-
|
|
3151
|
+
console.log("copyData",copyData)
|
|
3152
|
+
this.handleCopyData(formData);
|
|
3153
|
+
console.log("formData",formData)
|
|
2979
3154
|
}
|
|
2980
3155
|
|
|
2981
3156
|
this.$emit("openCopyEditTab", formData);
|