cloud-web-corejs 1.0.54-dev.536 → 1.0.54-dev.538
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/univer/button.vue +57 -0
- package/src/components/univer/dialog.vue +123 -0
- package/src/components/univer/index.js +3 -0
- package/src/components/univer/{index.vue → univerSheet.vue} +7 -1
- package/src/components/xform/form-designer/form-widget/dialog/univerDialog.vue +23 -7
- 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/index.vue +12 -9
- package/src/components/xform/form-render/indexMixin.js +381 -204
- package/src/components/xform/lang/zh-CN.js +1 -0
- package/src/router/modules/customer.js +10 -0
|
@@ -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) => {
|
|
@@ -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;
|
|
@@ -687,12 +687,12 @@ modules = {
|
|
|
687
687
|
: [];
|
|
688
688
|
let flag1 = !item.serveName || item.serveName == bdService;
|
|
689
689
|
// let flag2 = !item.modelKey || item.modelKey == modelKey;
|
|
690
|
-
let flag2
|
|
691
|
-
item.modelOrders === undefined
|
|
692
|
-
item.modelOrders === null
|
|
693
|
-
item.modelOrders === modelOrders;
|
|
694
|
-
let flag3
|
|
695
|
-
!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);
|
|
696
696
|
if (flag1 && flag2 && flag3) {
|
|
697
697
|
//可编辑
|
|
698
698
|
result = true;
|
|
@@ -729,12 +729,12 @@ modules = {
|
|
|
729
729
|
: [];
|
|
730
730
|
let flag1 = !item.serveName || item.serveName == bdService;
|
|
731
731
|
// let flag2 = !item.modelKey || item.modelKey == modelKey;
|
|
732
|
-
let flag2
|
|
733
|
-
item.modelOrders === undefined
|
|
734
|
-
item.modelOrders === null
|
|
735
|
-
item.modelOrders === modelOrders;
|
|
736
|
-
let flag3
|
|
737
|
-
!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);
|
|
738
738
|
if (flag1 && flag2 && flag3) {
|
|
739
739
|
//可编辑
|
|
740
740
|
result = true;
|
|
@@ -748,25 +748,25 @@ modules = {
|
|
|
748
748
|
if (!widget) return false;
|
|
749
749
|
let widgetType = widget.type;
|
|
750
750
|
let sourceType = widget.sourceType;
|
|
751
|
-
let result
|
|
752
|
-
freeWidgetTypesOfWf.includes(widgetType)
|
|
753
|
-
(sourceType && freeWidgetTypesOfWf.includes(sourceType));
|
|
751
|
+
let result
|
|
752
|
+
= freeWidgetTypesOfWf.includes(widgetType)
|
|
753
|
+
|| (sourceType && freeWidgetTypesOfWf.includes(sourceType));
|
|
754
754
|
return widget.options.label == "重置" || result;
|
|
755
755
|
},
|
|
756
756
|
getIsHiddenWidgetTypesOfWf(widget) {
|
|
757
757
|
if (!widget) return false;
|
|
758
758
|
let widgetType = widget.type;
|
|
759
759
|
let targetType = widget.targetType;
|
|
760
|
-
let result
|
|
761
|
-
hiddenWidgetTypesOfWf.includes(widgetType)
|
|
762
|
-
(targetType && hiddenWidgetTypesOfWf.includes(targetType));
|
|
760
|
+
let result
|
|
761
|
+
= hiddenWidgetTypesOfWf.includes(widgetType)
|
|
762
|
+
|| (targetType && hiddenWidgetTypesOfWf.includes(targetType));
|
|
763
763
|
return result;
|
|
764
764
|
},
|
|
765
765
|
hanldeWfWidgetNew1(widget) {
|
|
766
766
|
if (!widget) return;
|
|
767
|
-
let flag
|
|
768
|
-
widget.columnType
|
|
769
|
-
["editDelete", "removeTreeRow"].includes(widget.columnType);
|
|
767
|
+
let flag
|
|
768
|
+
= widget.columnType
|
|
769
|
+
&& ["editDelete", "removeTreeRow"].includes(widget.columnType);
|
|
770
770
|
if (!flag && this.getIsfreeWidgetTypesOfWf(widget)) return; //过滤掉不受限组件
|
|
771
771
|
if (this.widgetEditOnWf) return; //匹配到流程第一步可编辑,不执行下面禁用隐藏
|
|
772
772
|
let wfParam = this.wfParam || {};
|
|
@@ -828,12 +828,12 @@ modules = {
|
|
|
828
828
|
let flag1 = !item.serveName || item.serveName == bdService;
|
|
829
829
|
// let flag2 = !item.modelKey || item.modelKey == modelKey;
|
|
830
830
|
|
|
831
|
-
let flag2
|
|
832
|
-
item.modelOrders === undefined
|
|
833
|
-
item.modelOrders === null
|
|
834
|
-
item.modelOrders === modelOrders;
|
|
835
|
-
let flag3
|
|
836
|
-
!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);
|
|
837
837
|
if (flag1 && flag2 && flag3) {
|
|
838
838
|
if (type === 1) {
|
|
839
839
|
//可编辑
|
|
@@ -900,8 +900,8 @@ modules = {
|
|
|
900
900
|
let companyCodes = companyCodeStr
|
|
901
901
|
? companyCodeStr.split(",").filter((item) => !!item)
|
|
902
902
|
: [];
|
|
903
|
-
let flag3
|
|
904
|
-
!companyCodes.length || companyCodes.includes(companyCode);
|
|
903
|
+
let flag3
|
|
904
|
+
= !companyCodes.length || companyCodes.includes(companyCode);
|
|
905
905
|
if (flag1) {
|
|
906
906
|
item3 = item;
|
|
907
907
|
} else if (flag2) {
|
|
@@ -961,8 +961,8 @@ modules = {
|
|
|
961
961
|
// setDisabled(target,true);
|
|
962
962
|
let onClick = options ? options.onClick : widget.options.onClick;
|
|
963
963
|
if (
|
|
964
|
-
onClick
|
|
965
|
-
onClick.startsWith("this.getFormRef().$baseReload()")
|
|
964
|
+
onClick
|
|
965
|
+
&& onClick.startsWith("this.getFormRef().$baseReload()")
|
|
966
966
|
) {
|
|
967
967
|
// setDisabled(target,false);
|
|
968
968
|
disabled = false;
|
|
@@ -991,9 +991,9 @@ modules = {
|
|
|
991
991
|
hidden = true;
|
|
992
992
|
}
|
|
993
993
|
if (
|
|
994
|
-
widget
|
|
995
|
-
widgetType == "save_button"
|
|
996
|
-
hiddenByWf === undefined
|
|
994
|
+
widget
|
|
995
|
+
&& widgetType == "save_button"
|
|
996
|
+
&& hiddenByWf === undefined
|
|
997
997
|
) {
|
|
998
998
|
// setHidden(target,true)
|
|
999
999
|
// widget.options.hidden = true;
|
|
@@ -1103,8 +1103,8 @@ modules = {
|
|
|
1103
1103
|
: [];
|
|
1104
1104
|
let flag1 = !item.serveName || item.serveName == bdService;
|
|
1105
1105
|
let flag2 = !item.modelKey || item.modelKey == modelKey;
|
|
1106
|
-
let flag3
|
|
1107
|
-
!companyCodes.length || companyCodes.includes(companyCode);
|
|
1106
|
+
let flag3
|
|
1107
|
+
= !companyCodes.length || companyCodes.includes(companyCode);
|
|
1108
1108
|
if (flag1 && flag2 && flag3) {
|
|
1109
1109
|
if (type === 1) {
|
|
1110
1110
|
//可编辑
|
|
@@ -1405,8 +1405,8 @@ modules = {
|
|
|
1405
1405
|
this.addFieldValidateEventHandler(),
|
|
1406
1406
|
this.registerFormToRefList(),
|
|
1407
1407
|
this.handleOnCreated(),
|
|
1408
|
-
this.disabledMode
|
|
1409
|
-
this.$nextTick(function () {
|
|
1408
|
+
this.disabledMode
|
|
1409
|
+
&& this.$nextTick(function () {
|
|
1410
1410
|
e.disableForm();
|
|
1411
1411
|
});
|
|
1412
1412
|
},
|
|
@@ -1421,24 +1421,24 @@ modules = {
|
|
|
1421
1421
|
this.changeLanguage(e);
|
|
1422
1422
|
},
|
|
1423
1423
|
insertCustomStyleAndScriptNode: function () {
|
|
1424
|
-
this.formConfig
|
|
1425
|
-
this.formConfig.cssCode
|
|
1426
|
-
baseRefUtil.insertCustomCssToHead(
|
|
1424
|
+
this.formConfig
|
|
1425
|
+
&& this.formConfig.cssCode
|
|
1426
|
+
&& baseRefUtil.insertCustomCssToHead(
|
|
1427
1427
|
this.formConfig.cssCode,
|
|
1428
1428
|
this.previewState ? "" : this.formId
|
|
1429
1429
|
),
|
|
1430
|
-
this.formConfig
|
|
1431
|
-
this.formConfig.functions
|
|
1432
|
-
baseRefUtil.insertGlobalFunctionsToHtml(
|
|
1430
|
+
this.formConfig
|
|
1431
|
+
&& this.formConfig.functions
|
|
1432
|
+
&& baseRefUtil.insertGlobalFunctionsToHtml(
|
|
1433
1433
|
this.formConfig.functions,
|
|
1434
1434
|
this.previewState ? "" : this.formId
|
|
1435
1435
|
);
|
|
1436
1436
|
},
|
|
1437
1437
|
buildFormModel: function (e) {
|
|
1438
1438
|
let t = this;
|
|
1439
|
-
e
|
|
1440
|
-
e.length > 0
|
|
1441
|
-
e.forEach(function (e) {
|
|
1439
|
+
e
|
|
1440
|
+
&& e.length > 0
|
|
1441
|
+
&& e.forEach(function (e) {
|
|
1442
1442
|
t.buildDataFromWidget(e);
|
|
1443
1443
|
});
|
|
1444
1444
|
},
|
|
@@ -1447,8 +1447,8 @@ modules = {
|
|
|
1447
1447
|
let dataId = this.dataId;
|
|
1448
1448
|
let currentFormData = this.currentFormData;
|
|
1449
1449
|
let fieldKeyName = this.getFieldKeyName(e);
|
|
1450
|
-
let defaultValue
|
|
1451
|
-
e.options.defaultValue === undefined || e.options.defaultValue === ""
|
|
1450
|
+
let defaultValue
|
|
1451
|
+
= e.options.defaultValue === undefined || e.options.defaultValue === ""
|
|
1452
1452
|
? null
|
|
1453
1453
|
: e.options.defaultValue;
|
|
1454
1454
|
if ("container" === e.category) {
|
|
@@ -1468,48 +1468,48 @@ modules = {
|
|
|
1468
1468
|
});
|
|
1469
1469
|
}
|
|
1470
1470
|
} else if ("grid" === e.type)
|
|
1471
|
-
e.cols
|
|
1472
|
-
e.cols.length > 0
|
|
1473
|
-
e.cols.forEach(function (e) {
|
|
1471
|
+
e.cols
|
|
1472
|
+
&& e.cols.length > 0
|
|
1473
|
+
&& e.cols.forEach(function (e) {
|
|
1474
1474
|
t.buildDataFromWidget(e);
|
|
1475
1475
|
});
|
|
1476
1476
|
else if ("table" === e.type)
|
|
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) {
|
|
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) {
|
|
1483
1483
|
t.buildDataFromWidget(e);
|
|
1484
1484
|
});
|
|
1485
1485
|
});
|
|
1486
1486
|
else if ("h5-table" === e.type)
|
|
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) {
|
|
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) {
|
|
1493
1493
|
t.buildDataFromWidget(e);
|
|
1494
1494
|
});
|
|
1495
1495
|
});
|
|
1496
1496
|
else if ("tab" === e.type)
|
|
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) {
|
|
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) {
|
|
1503
1503
|
t.buildDataFromWidget(e);
|
|
1504
1504
|
});
|
|
1505
1505
|
});
|
|
1506
1506
|
else if ("detail" === e.type)
|
|
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) {
|
|
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) {
|
|
1513
1513
|
t.buildDataFromWidget(e);
|
|
1514
1514
|
});
|
|
1515
1515
|
});
|
|
@@ -1547,26 +1547,26 @@ modules = {
|
|
|
1547
1547
|
: this.$set(this.formDataModel, a, []);
|
|
1548
1548
|
}
|
|
1549
1549
|
} else if ("detail-h5" === e.type) {
|
|
1550
|
-
e.panes
|
|
1551
|
-
e.panes.length > 0
|
|
1552
|
-
e.panes.forEach(function (e) {
|
|
1550
|
+
e.panes
|
|
1551
|
+
&& e.panes.length > 0
|
|
1552
|
+
&& e.panes.forEach(function (e) {
|
|
1553
1553
|
t.buildDataFromWidget(e);
|
|
1554
1554
|
});
|
|
1555
1555
|
} else if ("h5-card" === e.type) {
|
|
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) {
|
|
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) {
|
|
1562
1562
|
t.buildDataFromWidget(e);
|
|
1563
1563
|
});
|
|
1564
1564
|
});
|
|
1565
1565
|
} else
|
|
1566
1566
|
"grid-col" === e.type || e.type,
|
|
1567
|
-
e.widgetList
|
|
1568
|
-
e.widgetList.length > 0
|
|
1569
|
-
e.widgetList.forEach(function (e) {
|
|
1567
|
+
e.widgetList
|
|
1568
|
+
&& e.widgetList.length > 0
|
|
1569
|
+
&& e.widgetList.forEach(function (e) {
|
|
1570
1570
|
t.buildDataFromWidget(e);
|
|
1571
1571
|
});
|
|
1572
1572
|
} else if ("vabsearch" === e.type) {
|
|
@@ -1672,10 +1672,10 @@ modules = {
|
|
|
1672
1672
|
findWidgetOfSubFormAndSetDisabled: function (e, t) {
|
|
1673
1673
|
let i = this,
|
|
1674
1674
|
n = baseRefUtil.getFieldWidgetByName(this.formJsonObj.widgetList, e);
|
|
1675
|
-
n
|
|
1676
|
-
n.options
|
|
1677
|
-
n.options.hasOwnProperty("disabled")
|
|
1678
|
-
(n.options.disabled = t),
|
|
1675
|
+
n
|
|
1676
|
+
&& n.options
|
|
1677
|
+
&& n.options.hasOwnProperty("disabled")
|
|
1678
|
+
&& (n.options.disabled = t),
|
|
1679
1679
|
this.findWidgetNameInSubForm(e).forEach(function (e) {
|
|
1680
1680
|
let n = i.getWidgetRef(e);
|
|
1681
1681
|
n && n.setDisabled && n.setDisabled(t);
|
|
@@ -1690,10 +1690,10 @@ modules = {
|
|
|
1690
1690
|
findWidgetOfSubFormAndSetHidden: function (e, t) {
|
|
1691
1691
|
let i = this,
|
|
1692
1692
|
n = baseRefUtil.getFieldWidgetByName(this.formJsonObj.widgetList, e);
|
|
1693
|
-
n
|
|
1694
|
-
n.options
|
|
1695
|
-
n.options.hasOwnProperty("hidden")
|
|
1696
|
-
(n.options.hidden = t),
|
|
1693
|
+
n
|
|
1694
|
+
&& n.options
|
|
1695
|
+
&& n.options.hasOwnProperty("hidden")
|
|
1696
|
+
&& (n.options.hidden = t),
|
|
1697
1697
|
this.findWidgetNameInSubForm(e).forEach(function (e) {
|
|
1698
1698
|
let n = i.getWidgetRef(e);
|
|
1699
1699
|
n && n.setDisabled && n.setHidden(t);
|
|
@@ -1775,9 +1775,9 @@ modules = {
|
|
|
1775
1775
|
let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1],
|
|
1776
1776
|
i = this.widgetRefList[e];
|
|
1777
1777
|
return (
|
|
1778
|
-
!i
|
|
1779
|
-
t
|
|
1780
|
-
this.$message.error(this.i18nt("render.hint.refNotFound") + e),
|
|
1778
|
+
!i
|
|
1779
|
+
&& t
|
|
1780
|
+
&& this.$message.error(this.i18nt("render.hint.refNotFound") + e),
|
|
1781
1781
|
i
|
|
1782
1782
|
);
|
|
1783
1783
|
},
|
|
@@ -1860,15 +1860,15 @@ modules = {
|
|
|
1860
1860
|
let i = this,
|
|
1861
1861
|
n = this.getWidgetRef(e);
|
|
1862
1862
|
n && n.setValue && n.setValue(t),
|
|
1863
|
-
n
|
|
1864
|
-
this.findWidgetNameInSubForm(e).forEach(function (e) {
|
|
1863
|
+
n
|
|
1864
|
+
|| this.findWidgetNameInSubForm(e).forEach(function (e) {
|
|
1865
1865
|
let n = i.getWidgetRef(e);
|
|
1866
1866
|
n && n.setValue && n.setValue(t);
|
|
1867
1867
|
});
|
|
1868
1868
|
},
|
|
1869
1869
|
getSubFormValues: function (e) {
|
|
1870
|
-
let t
|
|
1871
|
-
!(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1],
|
|
1870
|
+
let t
|
|
1871
|
+
= !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1],
|
|
1872
1872
|
i = this.subFormRefList[e];
|
|
1873
1873
|
return i.getSubFormValues(t);
|
|
1874
1874
|
},
|
|
@@ -1884,8 +1884,8 @@ modules = {
|
|
|
1884
1884
|
if (!!foundW.widget && foundW.widget.type === "sub-form") {
|
|
1885
1885
|
foundW.disableSubForm();
|
|
1886
1886
|
} else if (
|
|
1887
|
-
!!foundW.widget
|
|
1888
|
-
foundW.widget.type === "grid-sub-form"
|
|
1887
|
+
!!foundW.widget
|
|
1888
|
+
&& foundW.widget.type === "grid-sub-form"
|
|
1889
1889
|
) {
|
|
1890
1890
|
foundW.disableGridSubForm();
|
|
1891
1891
|
} else if (!!foundW.widget && foundW.widget.type === "data-table") {
|
|
@@ -1908,8 +1908,8 @@ modules = {
|
|
|
1908
1908
|
if (!!foundW.widget && foundW.widget.type === "sub-form") {
|
|
1909
1909
|
foundW.enableSubForm();
|
|
1910
1910
|
} else if (
|
|
1911
|
-
!!foundW.widget
|
|
1912
|
-
foundW.widget.type === "grid-sub-form"
|
|
1911
|
+
!!foundW.widget
|
|
1912
|
+
&& foundW.widget.type === "grid-sub-form"
|
|
1913
1913
|
) {
|
|
1914
1914
|
foundW.enableGridSubForm();
|
|
1915
1915
|
} else if (!!foundW.widget && foundW.widget.type === "data-table") {
|
|
@@ -1946,54 +1946,54 @@ modules = {
|
|
|
1946
1946
|
validateFields: function () {},
|
|
1947
1947
|
disableWidgets: function (e) {
|
|
1948
1948
|
let t = this;
|
|
1949
|
-
e
|
|
1950
|
-
("string" === typeof e
|
|
1949
|
+
e
|
|
1950
|
+
&& ("string" === typeof e
|
|
1951
1951
|
? this.findWidgetAndSetDisabled(e, !0)
|
|
1952
|
-
: Array.isArray(e)
|
|
1953
|
-
e.forEach(function (e) {
|
|
1952
|
+
: Array.isArray(e)
|
|
1953
|
+
&& e.forEach(function (e) {
|
|
1954
1954
|
t.findWidgetAndSetDisabled(e, !0);
|
|
1955
1955
|
}));
|
|
1956
1956
|
},
|
|
1957
1957
|
enableWidgets: function (e) {
|
|
1958
1958
|
let t = this;
|
|
1959
|
-
e
|
|
1960
|
-
("string" === typeof e
|
|
1959
|
+
e
|
|
1960
|
+
&& ("string" === typeof e
|
|
1961
1961
|
? this.findWidgetAndSetDisabled(e, !1)
|
|
1962
|
-
: Array.isArray(e)
|
|
1963
|
-
e.forEach(function (e) {
|
|
1962
|
+
: Array.isArray(e)
|
|
1963
|
+
&& e.forEach(function (e) {
|
|
1964
1964
|
t.findWidgetAndSetDisabled(e, !1);
|
|
1965
1965
|
}));
|
|
1966
1966
|
},
|
|
1967
1967
|
hideWidgets: function (e) {
|
|
1968
1968
|
let t = this;
|
|
1969
|
-
e
|
|
1970
|
-
("string" === typeof e
|
|
1969
|
+
e
|
|
1970
|
+
&& ("string" === typeof e
|
|
1971
1971
|
? this.findWidgetAndSetHidden(e, !0)
|
|
1972
|
-
: Array.isArray(e)
|
|
1973
|
-
e.forEach(function (e) {
|
|
1972
|
+
: Array.isArray(e)
|
|
1973
|
+
&& e.forEach(function (e) {
|
|
1974
1974
|
t.findWidgetAndSetHidden(e, !0);
|
|
1975
1975
|
}));
|
|
1976
1976
|
},
|
|
1977
1977
|
showWidgets: function (e) {
|
|
1978
1978
|
let t = this;
|
|
1979
|
-
e
|
|
1980
|
-
("string" === typeof e
|
|
1979
|
+
e
|
|
1980
|
+
&& ("string" === typeof e
|
|
1981
1981
|
? this.findWidgetAndSetHidden(e, !1)
|
|
1982
|
-
: Array.isArray(e)
|
|
1983
|
-
e.forEach(function (e) {
|
|
1982
|
+
: Array.isArray(e)
|
|
1983
|
+
&& e.forEach(function (e) {
|
|
1984
1984
|
t.findWidgetAndSetHidden(e, !1);
|
|
1985
1985
|
}));
|
|
1986
1986
|
},
|
|
1987
1987
|
getFieldWidgets: function () {
|
|
1988
|
-
let e
|
|
1989
|
-
arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
|
|
1988
|
+
let e
|
|
1989
|
+
= arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
|
|
1990
1990
|
return e
|
|
1991
1991
|
? baseRefUtil.getAllFieldWidgets(e)
|
|
1992
1992
|
: baseRefUtil.getAllFieldWidgets(this.formJsonObj.widgetList);
|
|
1993
1993
|
},
|
|
1994
1994
|
getContainerWidgets: function () {
|
|
1995
|
-
let e
|
|
1996
|
-
arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
|
|
1995
|
+
let e
|
|
1996
|
+
= arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
|
|
1997
1997
|
return e
|
|
1998
1998
|
? baseRefUtil.getAllContainerWidgets(e)
|
|
1999
1999
|
: baseRefUtil.getAllContainerWidgets(this.formJsonObj.widgetList);
|
|
@@ -2008,8 +2008,8 @@ modules = {
|
|
|
2008
2008
|
return this.externalComponents[e];
|
|
2009
2009
|
},
|
|
2010
2010
|
setReadMode: function () {
|
|
2011
|
-
let e
|
|
2012
|
-
!(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0];
|
|
2011
|
+
let e
|
|
2012
|
+
= !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0];
|
|
2013
2013
|
this.readModeFlag = e;
|
|
2014
2014
|
},
|
|
2015
2015
|
getReadMode: function () {
|
|
@@ -2362,8 +2362,8 @@ modules = {
|
|
|
2362
2362
|
}
|
|
2363
2363
|
let newFormData = {};
|
|
2364
2364
|
formTemplateTableDTOs.forEach((formTemplateTableDTO) => {
|
|
2365
|
-
let tableAlias
|
|
2366
|
-
formTemplateTableDTO.tableType == 0
|
|
2365
|
+
let tableAlias
|
|
2366
|
+
= formTemplateTableDTO.tableType == 0
|
|
2367
2367
|
? formCode
|
|
2368
2368
|
: formTemplateTableDTO.tableAlias;
|
|
2369
2369
|
if (formTemplateTableDTO.tableType == 0) {
|
|
@@ -2375,14 +2375,14 @@ modules = {
|
|
|
2375
2375
|
});
|
|
2376
2376
|
formTemplateTableDTO.formTemplateFieldDTOs.forEach(
|
|
2377
2377
|
(formTemplateFieldDTO) => {
|
|
2378
|
-
item[formTemplateFieldDTO.fieldName]
|
|
2379
|
-
res[formTemplateFieldDTO.fieldName];
|
|
2378
|
+
item[formTemplateFieldDTO.fieldName]
|
|
2379
|
+
= res[formTemplateFieldDTO.fieldName];
|
|
2380
2380
|
}
|
|
2381
2381
|
);
|
|
2382
2382
|
newFormData[tableAlias] = item;
|
|
2383
2383
|
} else {
|
|
2384
|
-
newFormData[tableAlias]
|
|
2385
|
-
formDataModel[formTemplateTableDTO.name];
|
|
2384
|
+
newFormData[tableAlias]
|
|
2385
|
+
= formDataModel[formTemplateTableDTO.name];
|
|
2386
2386
|
}
|
|
2387
2387
|
});
|
|
2388
2388
|
/*if (formConfig.formType === 1) {
|
|
@@ -2415,8 +2415,8 @@ modules = {
|
|
|
2415
2415
|
|
|
2416
2416
|
let newFormData = {};
|
|
2417
2417
|
formTemplateTableDTOs.forEach((formTemplateTableDTO) => {
|
|
2418
|
-
let tableAlias
|
|
2419
|
-
formTemplateTableDTO.tableType == 0
|
|
2418
|
+
let tableAlias
|
|
2419
|
+
= formTemplateTableDTO.tableType == 0
|
|
2420
2420
|
? formCode
|
|
2421
2421
|
: formTemplateTableDTO.tableAlias;
|
|
2422
2422
|
if (formTemplateTableDTO.tableType == 0) {
|
|
@@ -2428,8 +2428,8 @@ modules = {
|
|
|
2428
2428
|
});
|
|
2429
2429
|
formTemplateTableDTO.formTemplateFieldDTOs.forEach(
|
|
2430
2430
|
(formTemplateFieldDTO) => {
|
|
2431
|
-
item[formTemplateFieldDTO.fieldName]
|
|
2432
|
-
res[formTemplateFieldDTO.fieldName];
|
|
2431
|
+
item[formTemplateFieldDTO.fieldName]
|
|
2432
|
+
= res[formTemplateFieldDTO.fieldName];
|
|
2433
2433
|
}
|
|
2434
2434
|
);
|
|
2435
2435
|
newFormData[tableAlias] = item ?? null;
|
|
@@ -2448,16 +2448,16 @@ modules = {
|
|
|
2448
2448
|
);
|
|
2449
2449
|
tableDatas.forEach((tableData) => {
|
|
2450
2450
|
if (
|
|
2451
|
-
tableData.id
|
|
2452
|
-
tableData.id.startsWith
|
|
2453
|
-
tableData.id.startsWith("row_")
|
|
2451
|
+
tableData.id
|
|
2452
|
+
&& tableData.id.startsWith
|
|
2453
|
+
&& tableData.id.startsWith("row_")
|
|
2454
2454
|
) {
|
|
2455
2455
|
tableData.id = null;
|
|
2456
2456
|
}
|
|
2457
2457
|
if (
|
|
2458
|
-
tableData[parentField]
|
|
2459
|
-
tableData[parentField].startsWith
|
|
2460
|
-
tableData[parentField].startsWith("row_")
|
|
2458
|
+
tableData[parentField]
|
|
2459
|
+
&& tableData[parentField].startsWith
|
|
2460
|
+
&& tableData[parentField].startsWith("row_")
|
|
2461
2461
|
) {
|
|
2462
2462
|
tableData[parentField] = null;
|
|
2463
2463
|
}
|
|
@@ -2469,8 +2469,8 @@ modules = {
|
|
|
2469
2469
|
});
|
|
2470
2470
|
newFormData[tableAlias] = tableDatas;
|
|
2471
2471
|
} else {
|
|
2472
|
-
newFormData[tableAlias]
|
|
2473
|
-
formDataModel[formTemplateTableDTO.name] ?? null;
|
|
2472
|
+
newFormData[tableAlias]
|
|
2473
|
+
= formDataModel[formTemplateTableDTO.name] ?? null;
|
|
2474
2474
|
}
|
|
2475
2475
|
}
|
|
2476
2476
|
});
|
|
@@ -2532,8 +2532,8 @@ modules = {
|
|
|
2532
2532
|
//获取表单的第一个组件
|
|
2533
2533
|
let target = null;
|
|
2534
2534
|
if (
|
|
2535
|
-
this.formJsonObj.widgetList
|
|
2536
|
-
this.formJsonObj.widgetList.length > 0
|
|
2535
|
+
this.formJsonObj.widgetList
|
|
2536
|
+
&& this.formJsonObj.widgetList.length > 0
|
|
2537
2537
|
) {
|
|
2538
2538
|
target = this.getWidgetRef(this.formJsonObj.widgetList[0].options.name);
|
|
2539
2539
|
}
|
|
@@ -2749,42 +2749,42 @@ modules = {
|
|
|
2749
2749
|
columnSelectedWidget.options.label = "删除";
|
|
2750
2750
|
columnSelectedWidget.options.labelHidden = true;
|
|
2751
2751
|
columnSelectedWidget.options.hiddenByWf = true;
|
|
2752
|
-
columnSelectedWidget.options.onClick
|
|
2753
|
-
"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);";
|
|
2754
2754
|
} else if ("editButton" == formatS) {
|
|
2755
2755
|
columnSelectedWidget.options.prefixIcon = "el-icon-edit";
|
|
2756
2756
|
columnSelectedWidget.options.label = "查看";
|
|
2757
2757
|
columnSelectedWidget.options.labelHidden = true;
|
|
2758
|
-
columnSelectedWidget.options.onClick
|
|
2759
|
-
"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)";
|
|
2760
2760
|
} else if ("addSiblingEditRow" == formatS) {
|
|
2761
2761
|
columnSelectedWidget.options.prefixIcon = "el-icon-plus";
|
|
2762
2762
|
columnSelectedWidget.options.label = "新增兄弟节点";
|
|
2763
2763
|
columnSelectedWidget.options.labelHidden = false;
|
|
2764
|
-
columnSelectedWidget.options.onClick
|
|
2765
|
-
"let tableParam = this.tableParam;\nthis.getParentTarget().addSiblingTreeRow(null,tableParam);";
|
|
2764
|
+
columnSelectedWidget.options.onClick
|
|
2765
|
+
= "let tableParam = this.tableParam;\nthis.getParentTarget().addSiblingTreeRow(null,tableParam);";
|
|
2766
2766
|
} else if ("addChildTreeRow" == formatS) {
|
|
2767
2767
|
columnSelectedWidget.options.prefixIcon = "el-icon-plus";
|
|
2768
2768
|
columnSelectedWidget.options.label = "新增子节点";
|
|
2769
2769
|
columnSelectedWidget.options.labelHidden = false;
|
|
2770
|
-
columnSelectedWidget.options.onClick
|
|
2771
|
-
"let tableParam = this.tableParam;\nthis.getParentTarget().addChildTreeRow(null,tableParam);";
|
|
2770
|
+
columnSelectedWidget.options.onClick
|
|
2771
|
+
= "let tableParam = this.tableParam;\nthis.getParentTarget().addChildTreeRow(null,tableParam);";
|
|
2772
2772
|
} else if ("moveUpRow" == formatS) {
|
|
2773
2773
|
columnSelectedWidget.options.label = "↑上移";
|
|
2774
2774
|
columnSelectedWidget.options.labelHidden = false;
|
|
2775
|
-
columnSelectedWidget.options.onClick
|
|
2776
|
-
"let tableParam = this.tableParam;\nthis.getParentTarget().moveUpRow(tableParam);";
|
|
2775
|
+
columnSelectedWidget.options.onClick
|
|
2776
|
+
= "let tableParam = this.tableParam;\nthis.getParentTarget().moveUpRow(tableParam);";
|
|
2777
2777
|
} else if ("moveDownRow" == formatS) {
|
|
2778
2778
|
columnSelectedWidget.options.label = "↓下移";
|
|
2779
2779
|
columnSelectedWidget.options.labelHidden = false;
|
|
2780
|
-
columnSelectedWidget.options.onClick
|
|
2781
|
-
"let tableParam = this.tableParam;\nthis.getParentTarget().moveDownRow(tableParam);";
|
|
2780
|
+
columnSelectedWidget.options.onClick
|
|
2781
|
+
= "let tableParam = this.tableParam;\nthis.getParentTarget().moveDownRow(tableParam);";
|
|
2782
2782
|
} else if ("removeTreeRow" == formatS) {
|
|
2783
2783
|
columnSelectedWidget.options.prefixIcon = "el-icon-delete";
|
|
2784
2784
|
columnSelectedWidget.options.label = "删除";
|
|
2785
2785
|
columnSelectedWidget.options.labelHidden = true;
|
|
2786
|
-
columnSelectedWidget.options.onClick
|
|
2787
|
-
"let tableParam = this.tableParam;\nthis.getParentTarget().removeTreeRow(tableParam);";
|
|
2786
|
+
columnSelectedWidget.options.onClick
|
|
2787
|
+
= "let tableParam = this.tableParam;\nthis.getParentTarget().removeTreeRow(tableParam);";
|
|
2788
2788
|
}
|
|
2789
2789
|
|
|
2790
2790
|
if (columnSelectedWidget.options.hasOwnProperty("keyName")) {
|
|
@@ -2933,8 +2933,8 @@ modules = {
|
|
|
2933
2933
|
this.showFileReferenceDialog = true;
|
|
2934
2934
|
},
|
|
2935
2935
|
confirmFileReferenceDialog() {
|
|
2936
|
-
this.fileReferenceDialogOption.confirm
|
|
2937
|
-
this.fileReferenceDialogOption.confirm();
|
|
2936
|
+
this.fileReferenceDialogOption.confirm
|
|
2937
|
+
&& this.fileReferenceDialogOption.confirm();
|
|
2938
2938
|
},
|
|
2939
2939
|
getFormRef() {
|
|
2940
2940
|
return this;
|
|
@@ -2942,38 +2942,215 @@ modules = {
|
|
|
2942
2942
|
isObject(value) {
|
|
2943
2943
|
return Object.prototype.toString.call(value) === "[object Object]";
|
|
2944
2944
|
},
|
|
2945
|
-
|
|
2946
|
-
|
|
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
|
+
};
|
|
2947
2967
|
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
delete data.head_table_id;
|
|
2962
|
-
delete data.objectForeignId;
|
|
2963
|
-
if (data.createBy) data.createBy;
|
|
2964
|
-
if (data.createDate) data.createDate;
|
|
2965
|
-
if (data.modifyBy) data.modifyBy;
|
|
2966
|
-
if (data.modifyDate) data.modifyDate;
|
|
2967
|
-
Object.keys(data).forEach((key) => {
|
|
2968
|
-
let value = data[key];
|
|
2969
|
-
if (value && Array.isArray(value)) {
|
|
2970
|
-
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]);
|
|
2971
2981
|
}
|
|
2972
|
-
}
|
|
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
|
+
}
|
|
2973
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
|
+
});
|
|
2974
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);
|
|
2975
3150
|
if (formData) {
|
|
2976
|
-
|
|
3151
|
+
console.log("copyData",copyData)
|
|
3152
|
+
this.handleCopyData(formData);
|
|
3153
|
+
console.log("formData",formData)
|
|
2977
3154
|
}
|
|
2978
3155
|
|
|
2979
3156
|
this.$emit("openCopyEditTab", formData);
|