bm-admin-ui 1.0.49-alpha → 1.0.50-alpha
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/es/components/form-create/index.js +258 -106
- package/lib/components/form-create/index.js +257 -105
- package/package.json +1 -1
|
@@ -6,7 +6,7 @@ import Picture from 'bm-admin-ui/es/components/upload';
|
|
|
6
6
|
import BmStaffsSelector from 'bm-admin-ui/es/components/staffs-selector';
|
|
7
7
|
import { BmTagsDisplay, BmFloatTable } from 'bm-admin-ui/es/components';
|
|
8
8
|
import { SearchOutlined, CheckCircleFilled, PlusOutlined } from '@ant-design/icons-vue';
|
|
9
|
-
import { cloneDeep,
|
|
9
|
+
import { cloneDeep, floor, debounce } from 'lodash-es';
|
|
10
10
|
|
|
11
11
|
const fieldRatioMap = {
|
|
12
12
|
'25%': 6,
|
|
@@ -75,10 +75,18 @@ var input = {
|
|
|
75
75
|
value: row[field],
|
|
76
76
|
placeholder: data.props.placeholder,
|
|
77
77
|
disabled: data.disabled,
|
|
78
|
-
maxlength: 200,
|
|
78
|
+
maxlength: data.props.maxlength || 200,
|
|
79
79
|
'onUpdate:value': (value) => {
|
|
80
80
|
row[field] = value;
|
|
81
81
|
},
|
|
82
|
+
onBlur() {
|
|
83
|
+
var _a;
|
|
84
|
+
const value = row[field];
|
|
85
|
+
const txtFormatFn = (_a = data === null || data === void 0 ? void 0 : data.config) === null || _a === void 0 ? void 0 : _a.txtFormatFn;
|
|
86
|
+
if (txtFormatFn && !txtFormatFn(value)) {
|
|
87
|
+
row[field] = '';
|
|
88
|
+
}
|
|
89
|
+
},
|
|
82
90
|
});
|
|
83
91
|
},
|
|
84
92
|
},
|
|
@@ -210,6 +218,8 @@ var numInput = {
|
|
|
210
218
|
return h(InputNumber, {
|
|
211
219
|
value: row[field],
|
|
212
220
|
placeholder: data.props.placeholder,
|
|
221
|
+
parser: data.props.parser,
|
|
222
|
+
formatter: data.props.formatter,
|
|
213
223
|
'onUpdate:value': (value) => {
|
|
214
224
|
row[field] = value;
|
|
215
225
|
},
|
|
@@ -774,7 +784,8 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
774
784
|
"defaultSelected",
|
|
775
785
|
"load",
|
|
776
786
|
"disabled",
|
|
777
|
-
"fieldNames"
|
|
787
|
+
"fieldNames",
|
|
788
|
+
"immediateFetch"
|
|
778
789
|
],
|
|
779
790
|
emits: ["change"],
|
|
780
791
|
setup(__props, { emit: emits }) {
|
|
@@ -827,8 +838,9 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
827
838
|
"onUpdate:visible": _cache[2] || (_cache[2] = ($event) => visible.value = $event),
|
|
828
839
|
title: __props.title,
|
|
829
840
|
mode: __props.mode,
|
|
830
|
-
load: __props.load
|
|
831
|
-
|
|
841
|
+
load: __props.load,
|
|
842
|
+
"immediate-fetch": __props.immediateFetch
|
|
843
|
+
}, null, 8, ["select", "visible", "title", "mode", "load", "immediate-fetch"])
|
|
832
844
|
]);
|
|
833
845
|
};
|
|
834
846
|
}
|
|
@@ -926,9 +938,21 @@ var people = {
|
|
|
926
938
|
minWidth: data.config.fieldRatio,
|
|
927
939
|
slots: {
|
|
928
940
|
default({ row }) {
|
|
929
|
-
return h(StaffSelector,
|
|
941
|
+
return h(StaffSelector, {
|
|
942
|
+
title: '添加员工',
|
|
943
|
+
mode: data.props.limit ? 'radio' : 'multiple',
|
|
944
|
+
placeholder: data.props.placeholder,
|
|
945
|
+
disabled: data.disabled,
|
|
946
|
+
onChange: (value) => {
|
|
930
947
|
row[field] = value;
|
|
931
|
-
},
|
|
948
|
+
},
|
|
949
|
+
defaultSelected: row[field],
|
|
950
|
+
load(params) {
|
|
951
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
952
|
+
return yield extraConfig.people.fetch(params);
|
|
953
|
+
});
|
|
954
|
+
},
|
|
955
|
+
});
|
|
932
956
|
},
|
|
933
957
|
},
|
|
934
958
|
};
|
|
@@ -988,8 +1012,8 @@ const _hoisted_5$4 = {
|
|
|
988
1012
|
key: 1,
|
|
989
1013
|
class: "bm-fc-select-material-temp__content__circle"
|
|
990
1014
|
};
|
|
991
|
-
const _hoisted_6$
|
|
992
|
-
const _hoisted_7$
|
|
1015
|
+
const _hoisted_6$3 = ["title"];
|
|
1016
|
+
const _hoisted_7$3 = { class: "bm-fc-select-material-temp__content__item-time" };
|
|
993
1017
|
const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
994
1018
|
__name: "select-material-temp",
|
|
995
1019
|
props: [
|
|
@@ -1204,9 +1228,9 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
1204
1228
|
createElementVNode("span", {
|
|
1205
1229
|
class: "bm-fc-select-material-temp__content__name",
|
|
1206
1230
|
title: item.templateName
|
|
1207
|
-
}, toDisplayString(item.templateName), 9, _hoisted_6$
|
|
1231
|
+
}, toDisplayString(item.templateName), 9, _hoisted_6$3)
|
|
1208
1232
|
], 8, _hoisted_4$4),
|
|
1209
|
-
createElementVNode("div", _hoisted_7$
|
|
1233
|
+
createElementVNode("div", _hoisted_7$3, toDisplayString(unref(dayjs)(item.lastUpdateTime).format("YYYY/MM/DD")), 1)
|
|
1210
1234
|
])
|
|
1211
1235
|
]),
|
|
1212
1236
|
_: 2
|
|
@@ -1243,11 +1267,15 @@ const _hoisted_2$4 = { class: "bm-dc-table-widget__title" };
|
|
|
1243
1267
|
const _hoisted_3$3 = { class: "bm-dc-table-widget__title-samll" };
|
|
1244
1268
|
const _hoisted_4$3 = { class: "bm-dc-table-widget__top-bar" };
|
|
1245
1269
|
const _hoisted_5$3 = { class: "bm-dc-table-widget__table" };
|
|
1246
|
-
const _hoisted_6$3 = ["onClick"];
|
|
1247
|
-
const _hoisted_7$3 = ["onClick"];
|
|
1248
1270
|
const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
1249
1271
|
__name: "table-widget",
|
|
1250
|
-
props: [
|
|
1272
|
+
props: [
|
|
1273
|
+
"rule",
|
|
1274
|
+
"extraConfig",
|
|
1275
|
+
"disabled",
|
|
1276
|
+
"disabledTable",
|
|
1277
|
+
"hidden"
|
|
1278
|
+
],
|
|
1251
1279
|
emits: ["change"],
|
|
1252
1280
|
setup(__props, { emit: emits }) {
|
|
1253
1281
|
const props = __props;
|
|
@@ -1270,7 +1298,10 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
1270
1298
|
columns: [...columns],
|
|
1271
1299
|
data: [...data],
|
|
1272
1300
|
checkboxConfig: {
|
|
1273
|
-
trigger: "cell"
|
|
1301
|
+
trigger: "cell",
|
|
1302
|
+
checkMethod() {
|
|
1303
|
+
return !props.disabled;
|
|
1304
|
+
}
|
|
1274
1305
|
}
|
|
1275
1306
|
}));
|
|
1276
1307
|
const countText = computed(() => {
|
|
@@ -1306,13 +1337,13 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
1306
1337
|
data.splice(0, data.length);
|
|
1307
1338
|
const childRules = cloneDeep(props.rule.config.childRules);
|
|
1308
1339
|
const value = props.rule.value;
|
|
1309
|
-
if (deleteFeature.value) {
|
|
1340
|
+
if (deleteFeature.value && !props.hidden) {
|
|
1310
1341
|
columns.push({
|
|
1311
1342
|
type: "checkbox",
|
|
1312
1343
|
width: "54px"
|
|
1313
1344
|
});
|
|
1314
1345
|
}
|
|
1315
|
-
if (props.
|
|
1346
|
+
if (props.disabledTable) {
|
|
1316
1347
|
childRules.forEach((rule) => {
|
|
1317
1348
|
rule.disabled = true;
|
|
1318
1349
|
});
|
|
@@ -1331,15 +1362,16 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
1331
1362
|
return pre;
|
|
1332
1363
|
}, [])
|
|
1333
1364
|
);
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1365
|
+
if (!props.hidden)
|
|
1366
|
+
columns.push({
|
|
1367
|
+
field: oper,
|
|
1368
|
+
title: "\u64CD\u4F5C",
|
|
1369
|
+
minWidth: "140px",
|
|
1370
|
+
fixed: "right",
|
|
1371
|
+
slots: {
|
|
1372
|
+
default: "floatHandle"
|
|
1373
|
+
}
|
|
1374
|
+
});
|
|
1343
1375
|
handleAdd(value);
|
|
1344
1376
|
}
|
|
1345
1377
|
function getRowData() {
|
|
@@ -1504,19 +1536,25 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
1504
1536
|
createTextVNode(toDisplayString(__props.rule.title.title) + " ", 1),
|
|
1505
1537
|
createElementVNode("span", _hoisted_3$3, toDisplayString(unref(countText)), 1),
|
|
1506
1538
|
createElementVNode("div", _hoisted_4$3, [
|
|
1507
|
-
unref(importFeature) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
1508
|
-
createVNode(unref(Button), {
|
|
1539
|
+
unref(importFeature) && !__props.hidden ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
1540
|
+
createVNode(unref(Button), {
|
|
1541
|
+
disabled: __props.disabled,
|
|
1542
|
+
onClick: handleDownload
|
|
1543
|
+
}, {
|
|
1509
1544
|
default: withCtx(() => [
|
|
1510
1545
|
createTextVNode("\u4E0B\u8F7D\u6A21\u677F")
|
|
1511
1546
|
]),
|
|
1512
1547
|
_: 1
|
|
1513
|
-
}),
|
|
1514
|
-
createVNode(unref(Button), {
|
|
1548
|
+
}, 8, ["disabled"]),
|
|
1549
|
+
createVNode(unref(Button), {
|
|
1550
|
+
disabled: __props.disabled,
|
|
1551
|
+
onClick: handleImport
|
|
1552
|
+
}, {
|
|
1515
1553
|
default: withCtx(() => [
|
|
1516
1554
|
createTextVNode("\u6279\u91CF\u5BFC\u5165")
|
|
1517
1555
|
]),
|
|
1518
1556
|
_: 1
|
|
1519
|
-
}),
|
|
1557
|
+
}, 8, ["disabled"]),
|
|
1520
1558
|
createElementVNode("input", {
|
|
1521
1559
|
ref_key: "inputRef",
|
|
1522
1560
|
ref: inputRef,
|
|
@@ -1527,17 +1565,20 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
1527
1565
|
onChange: handleChange
|
|
1528
1566
|
}, null, 544)
|
|
1529
1567
|
], 64)) : createCommentVNode("v-if", true),
|
|
1530
|
-
unref(deleteFeature) ? (openBlock(), createBlock(unref(Button), {
|
|
1568
|
+
unref(deleteFeature) && !__props.hidden ? (openBlock(), createBlock(unref(Button), {
|
|
1531
1569
|
key: 1,
|
|
1570
|
+
disabled: __props.disabled,
|
|
1532
1571
|
onClick: handleBatchDelete
|
|
1533
1572
|
}, {
|
|
1534
1573
|
default: withCtx(() => [
|
|
1535
1574
|
createTextVNode("\u6279\u91CF\u5220\u9664")
|
|
1536
1575
|
]),
|
|
1537
1576
|
_: 1
|
|
1538
|
-
})) : createCommentVNode("v-if", true),
|
|
1539
|
-
|
|
1577
|
+
}, 8, ["disabled"])) : createCommentVNode("v-if", true),
|
|
1578
|
+
!__props.hidden ? (openBlock(), createBlock(unref(Button), {
|
|
1579
|
+
key: 2,
|
|
1540
1580
|
type: "primary",
|
|
1581
|
+
disabled: __props.disabled,
|
|
1541
1582
|
onClick: handleAdd
|
|
1542
1583
|
}, {
|
|
1543
1584
|
default: withCtx(() => [
|
|
@@ -1545,7 +1586,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
1545
1586
|
createTextVNode(" \u65B0\u589E ")
|
|
1546
1587
|
]),
|
|
1547
1588
|
_: 1
|
|
1548
|
-
})
|
|
1589
|
+
}, 8, ["disabled"])) : createCommentVNode("v-if", true)
|
|
1549
1590
|
])
|
|
1550
1591
|
]),
|
|
1551
1592
|
createElementVNode("div", _hoisted_5$3, [
|
|
@@ -1558,14 +1599,30 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
1558
1599
|
}, {
|
|
1559
1600
|
floatHandle: withCtx(({ row, rowIndex }) => [
|
|
1560
1601
|
unref(copyFeature) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
1561
|
-
|
|
1602
|
+
createVNode(unref(Button), {
|
|
1603
|
+
type: "link",
|
|
1604
|
+
size: "small",
|
|
1605
|
+
disabled: __props.disabled,
|
|
1562
1606
|
onClick: ($event) => handleCopy(row)
|
|
1563
|
-
},
|
|
1607
|
+
}, {
|
|
1608
|
+
default: withCtx(() => [
|
|
1609
|
+
createTextVNode("\u590D\u5236")
|
|
1610
|
+
]),
|
|
1611
|
+
_: 2
|
|
1612
|
+
}, 1032, ["disabled", "onClick"]),
|
|
1564
1613
|
createVNode(unref(Divider), { type: "vertical" })
|
|
1565
1614
|
], 64)) : createCommentVNode("v-if", true),
|
|
1566
|
-
|
|
1615
|
+
createVNode(unref(Button), {
|
|
1616
|
+
type: "link",
|
|
1617
|
+
size: "small",
|
|
1618
|
+
disabled: __props.disabled,
|
|
1567
1619
|
onClick: ($event) => handleDelete(rowIndex)
|
|
1568
|
-
},
|
|
1620
|
+
}, {
|
|
1621
|
+
default: withCtx(() => [
|
|
1622
|
+
createTextVNode("\u5220\u9664")
|
|
1623
|
+
]),
|
|
1624
|
+
_: 2
|
|
1625
|
+
}, 1032, ["disabled", "onClick"])
|
|
1569
1626
|
]),
|
|
1570
1627
|
_: 1
|
|
1571
1628
|
}, 8, ["config"])
|
|
@@ -1622,7 +1679,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
1622
1679
|
getTempDetail(tempId).then((result) => {
|
|
1623
1680
|
const activePane2 = getAcitvePane();
|
|
1624
1681
|
activePane2.tempSelected = result;
|
|
1625
|
-
activePane2.tableRule = getTableRule(result
|
|
1682
|
+
activePane2.tableRule = getTableRule(result);
|
|
1626
1683
|
});
|
|
1627
1684
|
}
|
|
1628
1685
|
function getAcitvePane() {
|
|
@@ -1663,44 +1720,97 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
1663
1720
|
}
|
|
1664
1721
|
}
|
|
1665
1722
|
}
|
|
1666
|
-
function getTableRule(
|
|
1723
|
+
function getTableRule(tempResult) {
|
|
1724
|
+
const { coverageArr, preSetItems } = tempResult;
|
|
1667
1725
|
const fieldTypeMap = {
|
|
1668
1726
|
1: "input",
|
|
1669
1727
|
2: "numInput",
|
|
1670
1728
|
3: "date",
|
|
1671
|
-
4: "
|
|
1729
|
+
4: "product"
|
|
1672
1730
|
};
|
|
1673
1731
|
const formatMap = {
|
|
1674
1732
|
0: "YYYY-MM",
|
|
1675
1733
|
1: "YYYY-MM-DD",
|
|
1676
1734
|
2: "YYYY-MM-DD HH:mm"
|
|
1677
1735
|
};
|
|
1736
|
+
const txtFormatFnMap = {
|
|
1737
|
+
1: (txt) => /^\d{11}$/.test(txt),
|
|
1738
|
+
2: (txt) => /^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/.test(txt),
|
|
1739
|
+
3: (txt) => /(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(txt),
|
|
1740
|
+
4: (txt) => /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(txt)
|
|
1741
|
+
};
|
|
1678
1742
|
const activePane2 = getAcitvePane();
|
|
1679
|
-
const childRules =
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1743
|
+
const childRules = preSetItems.split(",").map((preSetItem) => ({
|
|
1744
|
+
name: "product",
|
|
1745
|
+
title: {
|
|
1746
|
+
title: preSetItem
|
|
1747
|
+
},
|
|
1748
|
+
field: preSetItem,
|
|
1749
|
+
effect: {
|
|
1750
|
+
required: true
|
|
1751
|
+
},
|
|
1752
|
+
props: {
|
|
1753
|
+
placeholder: "\u8BF7\u8F93\u5165"
|
|
1754
|
+
},
|
|
1755
|
+
config: {
|
|
1756
|
+
associatedFields: coverageArr.filter((coverage) => {
|
|
1757
|
+
if (coverage.fieldType === 4) {
|
|
1758
|
+
const extraValues = JSON.parse(coverage.extraValues);
|
|
1759
|
+
return extraValues.fieldName === preSetItem;
|
|
1760
|
+
} else {
|
|
1761
|
+
return false;
|
|
1762
|
+
}
|
|
1763
|
+
}).map((coverage) => {
|
|
1764
|
+
const extraValues = JSON.parse(coverage.extraValues);
|
|
1765
|
+
return {
|
|
1766
|
+
value: extraValues.presetFieldName,
|
|
1767
|
+
label: extraValues.presetFieldName
|
|
1768
|
+
};
|
|
1769
|
+
})
|
|
1701
1770
|
}
|
|
1702
|
-
|
|
1703
|
-
|
|
1771
|
+
})).concat(
|
|
1772
|
+
coverageArr.filter((coverage) => coverage.isEdit).map((coverage) => {
|
|
1773
|
+
const extraValues = JSON.parse(coverage.extraValues);
|
|
1774
|
+
const value = {
|
|
1775
|
+
name: fieldTypeMap[coverage.fieldType],
|
|
1776
|
+
title: {
|
|
1777
|
+
title: coverage.name
|
|
1778
|
+
},
|
|
1779
|
+
field: coverage.name,
|
|
1780
|
+
effect: {
|
|
1781
|
+
required: coverage.isCheck
|
|
1782
|
+
},
|
|
1783
|
+
config: {
|
|
1784
|
+
fieldRatio: "140px"
|
|
1785
|
+
}
|
|
1786
|
+
};
|
|
1787
|
+
if (coverage.fieldType === 1) {
|
|
1788
|
+
value.props = {
|
|
1789
|
+
placeholder: "\u8BF7\u8F93\u5165",
|
|
1790
|
+
maxlength: extraValues.maxLength
|
|
1791
|
+
};
|
|
1792
|
+
value.config.txtFormatFn = txtFormatFnMap[extraValues.format];
|
|
1793
|
+
}
|
|
1794
|
+
if (coverage.fieldType === 2) {
|
|
1795
|
+
const decimalPlaces = extraValues.decimalPlaces || 0;
|
|
1796
|
+
value.props = {
|
|
1797
|
+
placeholder: "\u8BF7\u8F93\u5165"
|
|
1798
|
+
};
|
|
1799
|
+
if (extraValues.format === 1) {
|
|
1800
|
+
value.props.parser = (value2) => floor(value2.replace("%", ""), decimalPlaces);
|
|
1801
|
+
value.props.formatter = (value2) => `${value2}%`;
|
|
1802
|
+
} else {
|
|
1803
|
+
value.props.parser = (value2) => floor(value2, decimalPlaces);
|
|
1804
|
+
}
|
|
1805
|
+
}
|
|
1806
|
+
if (coverage.fieldType === 3) {
|
|
1807
|
+
value.props = {
|
|
1808
|
+
format: formatMap[extraValues.format]
|
|
1809
|
+
};
|
|
1810
|
+
}
|
|
1811
|
+
return value;
|
|
1812
|
+
})
|
|
1813
|
+
);
|
|
1704
1814
|
if (childRules.length)
|
|
1705
1815
|
return {
|
|
1706
1816
|
title: {
|
|
@@ -1725,6 +1835,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
1725
1835
|
key: pane.key,
|
|
1726
1836
|
title: pane.title,
|
|
1727
1837
|
tempIdSelected: pane.tempSelected.templateCode || pane.tempIdSelected,
|
|
1838
|
+
templateName: pane.tempSelected?.templateName || pane.templateName,
|
|
1728
1839
|
tableData: pane.tableData,
|
|
1729
1840
|
uploadList: pane.uploadList
|
|
1730
1841
|
}))
|
|
@@ -1754,7 +1865,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
1754
1865
|
props.extraConfig.getDict().then((data) => {
|
|
1755
1866
|
measrueDicts.value = data;
|
|
1756
1867
|
});
|
|
1757
|
-
watch(mainShopValue, (
|
|
1868
|
+
watch(mainShopValue, () => {
|
|
1758
1869
|
panes.splice(0);
|
|
1759
1870
|
activeKey.value = "\u7D20\u67501";
|
|
1760
1871
|
panes.push({
|
|
@@ -2008,9 +2119,9 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
2008
2119
|
pane.tableRule ? (openBlock(), createBlock(TableWidget, {
|
|
2009
2120
|
key: 0,
|
|
2010
2121
|
rule: pane.tableRule,
|
|
2011
|
-
disabled: __props.disabled?.includes?.("editTable"),
|
|
2122
|
+
"disabled-table": __props.disabled?.includes?.("editTable"),
|
|
2012
2123
|
onChange: handleTableDataChange
|
|
2013
|
-
}, null, 8, ["rule", "disabled"])) : createCommentVNode("v-if", true)
|
|
2124
|
+
}, null, 8, ["rule", "disabled-table"])) : createCommentVNode("v-if", true)
|
|
2014
2125
|
]),
|
|
2015
2126
|
_: 2
|
|
2016
2127
|
}, 1024)
|
|
@@ -2427,7 +2538,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
2427
2538
|
options.value = result;
|
|
2428
2539
|
return options.value;
|
|
2429
2540
|
}).then((options2) => {
|
|
2430
|
-
if (props.value
|
|
2541
|
+
if (props.value?.length) {
|
|
2431
2542
|
if (props.multiple) {
|
|
2432
2543
|
props.value.forEach((item) => loadValueOptions(item, options2));
|
|
2433
2544
|
} else {
|
|
@@ -2628,6 +2739,7 @@ var row = {
|
|
|
2628
2739
|
const children = [
|
|
2629
2740
|
{
|
|
2630
2741
|
type: 'row',
|
|
2742
|
+
field: data.field,
|
|
2631
2743
|
props: {
|
|
2632
2744
|
gutter: [0, 24],
|
|
2633
2745
|
},
|
|
@@ -2646,7 +2758,6 @@ var row = {
|
|
|
2646
2758
|
return {
|
|
2647
2759
|
native: true,
|
|
2648
2760
|
type: 'div',
|
|
2649
|
-
field: data.field,
|
|
2650
2761
|
children,
|
|
2651
2762
|
class: 'bm-fc-module-widget',
|
|
2652
2763
|
};
|
|
@@ -2748,9 +2859,23 @@ var department = {
|
|
|
2748
2859
|
minWidth: data.config.fieldRatio,
|
|
2749
2860
|
slots: {
|
|
2750
2861
|
default({ row }) {
|
|
2751
|
-
return h(StaffSelector,
|
|
2862
|
+
return h(StaffSelector, {
|
|
2863
|
+
title: '添加部门',
|
|
2864
|
+
mode: data.props.limit ? 'radio' : 'multiple',
|
|
2865
|
+
placeholder: data.props.placeholder,
|
|
2866
|
+
immediateFetch: true,
|
|
2867
|
+
unitStr: '个',
|
|
2868
|
+
disabled: data.disabled,
|
|
2869
|
+
onChange: (value) => {
|
|
2752
2870
|
row[field] = value;
|
|
2753
|
-
},
|
|
2871
|
+
},
|
|
2872
|
+
defaultSelected: row[field],
|
|
2873
|
+
load(params) {
|
|
2874
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2875
|
+
return yield extraConfig.department.fetch(params);
|
|
2876
|
+
});
|
|
2877
|
+
},
|
|
2878
|
+
});
|
|
2754
2879
|
},
|
|
2755
2880
|
},
|
|
2756
2881
|
};
|
|
@@ -2986,16 +3111,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2986
3111
|
const rule = ref([]);
|
|
2987
3112
|
const processFormPermissions = computed(
|
|
2988
3113
|
() => props.formPermissions ? props.formPermissions.reduce((result, item) => {
|
|
2989
|
-
if (item.disabled) {
|
|
2990
|
-
if (item.name === "picture") {
|
|
2991
|
-
((item.props = {}).uploadProps = {}).disabled = true;
|
|
2992
|
-
} else if (item.name === "materialTemp") {
|
|
2993
|
-
(item.props = {}).disabled = item.disabled;
|
|
2994
|
-
} else {
|
|
2995
|
-
(item.props = {}).disabled = true;
|
|
2996
|
-
}
|
|
2997
|
-
}
|
|
2998
|
-
delete item.disabled;
|
|
2999
3114
|
result[item.field] = item;
|
|
3000
3115
|
return result;
|
|
3001
3116
|
}, {}) : {}
|
|
@@ -3005,45 +3120,82 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
3005
3120
|
);
|
|
3006
3121
|
provide("mainShopValue", mainShopValue);
|
|
3007
3122
|
function setRule(fdRule) {
|
|
3008
|
-
fdRule =
|
|
3009
|
-
|
|
3123
|
+
fdRule = setRuleValue(fdRule);
|
|
3124
|
+
fdRule = makeRule(fdRule);
|
|
3125
|
+
rule.value = setRulePermission(fdRule);
|
|
3126
|
+
}
|
|
3127
|
+
function makeRule(fdRule) {
|
|
3128
|
+
return fdRule.map((data) => {
|
|
3010
3129
|
const childRules = data?.config?.childRules;
|
|
3011
3130
|
const rule2 = ruleList[data.name].rule(data, props.extraConfig);
|
|
3012
3131
|
if (data.name === "row" && childRules?.length) {
|
|
3013
3132
|
const rowRule = rule2.children.find((item) => item.type === "row");
|
|
3014
3133
|
childRules.forEach((ruleItem) => {
|
|
3015
3134
|
rowRule.children.push(
|
|
3016
|
-
|
|
3017
|
-
ruleItem.field,
|
|
3018
|
-
ruleList[ruleItem.name].rowRule(ruleItem, props.extraConfig)
|
|
3019
|
-
)
|
|
3135
|
+
ruleList[ruleItem.name].rowRule(ruleItem, props.extraConfig)
|
|
3020
3136
|
);
|
|
3021
3137
|
});
|
|
3022
|
-
} else if (data.name === "table" && childRules?.length) {
|
|
3023
|
-
childRules.forEach((childRule) => {
|
|
3024
|
-
const rulePermission = processFormPermissions.value[childRule.field];
|
|
3025
|
-
if (rulePermission) {
|
|
3026
|
-
childRule.hidden = rulePermission.hidden;
|
|
3027
|
-
childRule.disabled = rulePermission.props?.disabled;
|
|
3028
|
-
}
|
|
3029
|
-
});
|
|
3030
|
-
} else if (data.name === "materialTemp") {
|
|
3031
|
-
rule2.children[1] = mergeFormPermission(data.field, rule2.children[1]);
|
|
3032
|
-
return rule2;
|
|
3033
3138
|
}
|
|
3034
|
-
return
|
|
3139
|
+
return rule2;
|
|
3035
3140
|
});
|
|
3036
3141
|
}
|
|
3037
|
-
function mergeFormPermission(
|
|
3038
|
-
|
|
3039
|
-
|
|
3142
|
+
function mergeFormPermission(rule2) {
|
|
3143
|
+
rule2 = getFormFeildRule(rule2);
|
|
3144
|
+
const formPermission = processFormPermissions.value[rule2.field];
|
|
3145
|
+
const childRules = rule2?.props?.rule?.config?.childRules;
|
|
3146
|
+
const children = rule2.children;
|
|
3147
|
+
if (formPermission) {
|
|
3148
|
+
const { name } = formPermission;
|
|
3149
|
+
if (formPermission.disabled) {
|
|
3150
|
+
if (name === "picture") {
|
|
3151
|
+
rule2.props.uploadProps.disabled = true;
|
|
3152
|
+
} else if (name === "materialTemp") {
|
|
3153
|
+
rule2.props.disabled = formPermission.disabled;
|
|
3154
|
+
} else {
|
|
3155
|
+
rule2.props.disabled = true;
|
|
3156
|
+
}
|
|
3157
|
+
}
|
|
3158
|
+
if (formPermission.hidden) {
|
|
3159
|
+
if (name === "table") {
|
|
3160
|
+
rule2.props.hidden = true;
|
|
3161
|
+
} else {
|
|
3162
|
+
rule2.hidden = true;
|
|
3163
|
+
}
|
|
3164
|
+
}
|
|
3040
3165
|
}
|
|
3041
|
-
|
|
3166
|
+
if (childRules?.length) {
|
|
3167
|
+
let allHidden = true;
|
|
3168
|
+
childRules.forEach((childRule) => {
|
|
3169
|
+
const innerFormPermission = processFormPermissions.value[childRule.field];
|
|
3170
|
+
if (innerFormPermission) {
|
|
3171
|
+
childRule.disabled = innerFormPermission.disabled;
|
|
3172
|
+
childRule.hidden = innerFormPermission.hidden;
|
|
3173
|
+
}
|
|
3174
|
+
if (!innerFormPermission || !childRule.hidden)
|
|
3175
|
+
allHidden = false;
|
|
3176
|
+
});
|
|
3177
|
+
if (formPermission?.hidden && allHidden) {
|
|
3178
|
+
rule2.hidden = true;
|
|
3179
|
+
}
|
|
3180
|
+
}
|
|
3181
|
+
if (children?.length) {
|
|
3182
|
+
children.forEach((child) => mergeFormPermission(child));
|
|
3183
|
+
}
|
|
3184
|
+
}
|
|
3185
|
+
function getFormFeildRule(rule2) {
|
|
3186
|
+
if (rule2.native) {
|
|
3187
|
+
return rule2.children.find((item) => item.field);
|
|
3188
|
+
} else
|
|
3189
|
+
return rule2;
|
|
3190
|
+
}
|
|
3191
|
+
function setRulePermission(fdRule) {
|
|
3192
|
+
fdRule.forEach((rule2) => mergeFormPermission(rule2));
|
|
3193
|
+
return fdRule;
|
|
3042
3194
|
}
|
|
3043
3195
|
function handleValue(value) {
|
|
3044
3196
|
emits("update:value", value);
|
|
3045
3197
|
}
|
|
3046
|
-
function
|
|
3198
|
+
function setRuleValue(fdRule) {
|
|
3047
3199
|
const ruleData = cloneDeep(fdRule);
|
|
3048
3200
|
ruleData.forEach((rule2) => {
|
|
3049
3201
|
if (rule2.name === "row") {
|
|
@@ -85,10 +85,18 @@ var input = {
|
|
|
85
85
|
value: row[field],
|
|
86
86
|
placeholder: data.props.placeholder,
|
|
87
87
|
disabled: data.disabled,
|
|
88
|
-
maxlength: 200,
|
|
88
|
+
maxlength: data.props.maxlength || 200,
|
|
89
89
|
'onUpdate:value': (value) => {
|
|
90
90
|
row[field] = value;
|
|
91
91
|
},
|
|
92
|
+
onBlur() {
|
|
93
|
+
var _a;
|
|
94
|
+
const value = row[field];
|
|
95
|
+
const txtFormatFn = (_a = data === null || data === void 0 ? void 0 : data.config) === null || _a === void 0 ? void 0 : _a.txtFormatFn;
|
|
96
|
+
if (txtFormatFn && !txtFormatFn(value)) {
|
|
97
|
+
row[field] = '';
|
|
98
|
+
}
|
|
99
|
+
},
|
|
92
100
|
});
|
|
93
101
|
},
|
|
94
102
|
},
|
|
@@ -220,6 +228,8 @@ var numInput = {
|
|
|
220
228
|
return vue.h(antDesignVue.InputNumber, {
|
|
221
229
|
value: row[field],
|
|
222
230
|
placeholder: data.props.placeholder,
|
|
231
|
+
parser: data.props.parser,
|
|
232
|
+
formatter: data.props.formatter,
|
|
223
233
|
'onUpdate:value': (value) => {
|
|
224
234
|
row[field] = value;
|
|
225
235
|
},
|
|
@@ -784,7 +794,8 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
|
784
794
|
"defaultSelected",
|
|
785
795
|
"load",
|
|
786
796
|
"disabled",
|
|
787
|
-
"fieldNames"
|
|
797
|
+
"fieldNames",
|
|
798
|
+
"immediateFetch"
|
|
788
799
|
],
|
|
789
800
|
emits: ["change"],
|
|
790
801
|
setup(__props, { emit: emits }) {
|
|
@@ -837,8 +848,9 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
|
837
848
|
"onUpdate:visible": _cache[2] || (_cache[2] = ($event) => visible.value = $event),
|
|
838
849
|
title: __props.title,
|
|
839
850
|
mode: __props.mode,
|
|
840
|
-
load: __props.load
|
|
841
|
-
|
|
851
|
+
load: __props.load,
|
|
852
|
+
"immediate-fetch": __props.immediateFetch
|
|
853
|
+
}, null, 8, ["select", "visible", "title", "mode", "load", "immediate-fetch"])
|
|
842
854
|
]);
|
|
843
855
|
};
|
|
844
856
|
}
|
|
@@ -936,9 +948,21 @@ var people = {
|
|
|
936
948
|
minWidth: data.config.fieldRatio,
|
|
937
949
|
slots: {
|
|
938
950
|
default({ row }) {
|
|
939
|
-
return vue.h(StaffSelector,
|
|
951
|
+
return vue.h(StaffSelector, {
|
|
952
|
+
title: '添加员工',
|
|
953
|
+
mode: data.props.limit ? 'radio' : 'multiple',
|
|
954
|
+
placeholder: data.props.placeholder,
|
|
955
|
+
disabled: data.disabled,
|
|
956
|
+
onChange: (value) => {
|
|
940
957
|
row[field] = value;
|
|
941
|
-
},
|
|
958
|
+
},
|
|
959
|
+
defaultSelected: row[field],
|
|
960
|
+
load(params) {
|
|
961
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
962
|
+
return yield extraConfig.people.fetch(params);
|
|
963
|
+
});
|
|
964
|
+
},
|
|
965
|
+
});
|
|
942
966
|
},
|
|
943
967
|
},
|
|
944
968
|
};
|
|
@@ -998,8 +1022,8 @@ const _hoisted_5$4 = {
|
|
|
998
1022
|
key: 1,
|
|
999
1023
|
class: "bm-fc-select-material-temp__content__circle"
|
|
1000
1024
|
};
|
|
1001
|
-
const _hoisted_6$
|
|
1002
|
-
const _hoisted_7$
|
|
1025
|
+
const _hoisted_6$3 = ["title"];
|
|
1026
|
+
const _hoisted_7$3 = { class: "bm-fc-select-material-temp__content__item-time" };
|
|
1003
1027
|
const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
1004
1028
|
__name: "select-material-temp",
|
|
1005
1029
|
props: [
|
|
@@ -1214,9 +1238,9 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1214
1238
|
vue.createElementVNode("span", {
|
|
1215
1239
|
class: "bm-fc-select-material-temp__content__name",
|
|
1216
1240
|
title: item.templateName
|
|
1217
|
-
}, vue.toDisplayString(item.templateName), 9, _hoisted_6$
|
|
1241
|
+
}, vue.toDisplayString(item.templateName), 9, _hoisted_6$3)
|
|
1218
1242
|
], 8, _hoisted_4$4),
|
|
1219
|
-
vue.createElementVNode("div", _hoisted_7$
|
|
1243
|
+
vue.createElementVNode("div", _hoisted_7$3, vue.toDisplayString(vue.unref(dayjs__default["default"])(item.lastUpdateTime).format("YYYY/MM/DD")), 1)
|
|
1220
1244
|
])
|
|
1221
1245
|
]),
|
|
1222
1246
|
_: 2
|
|
@@ -1253,11 +1277,15 @@ const _hoisted_2$4 = { class: "bm-dc-table-widget__title" };
|
|
|
1253
1277
|
const _hoisted_3$3 = { class: "bm-dc-table-widget__title-samll" };
|
|
1254
1278
|
const _hoisted_4$3 = { class: "bm-dc-table-widget__top-bar" };
|
|
1255
1279
|
const _hoisted_5$3 = { class: "bm-dc-table-widget__table" };
|
|
1256
|
-
const _hoisted_6$3 = ["onClick"];
|
|
1257
|
-
const _hoisted_7$3 = ["onClick"];
|
|
1258
1280
|
const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
1259
1281
|
__name: "table-widget",
|
|
1260
|
-
props: [
|
|
1282
|
+
props: [
|
|
1283
|
+
"rule",
|
|
1284
|
+
"extraConfig",
|
|
1285
|
+
"disabled",
|
|
1286
|
+
"disabledTable",
|
|
1287
|
+
"hidden"
|
|
1288
|
+
],
|
|
1261
1289
|
emits: ["change"],
|
|
1262
1290
|
setup(__props, { emit: emits }) {
|
|
1263
1291
|
const props = __props;
|
|
@@ -1280,7 +1308,10 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1280
1308
|
columns: [...columns],
|
|
1281
1309
|
data: [...data],
|
|
1282
1310
|
checkboxConfig: {
|
|
1283
|
-
trigger: "cell"
|
|
1311
|
+
trigger: "cell",
|
|
1312
|
+
checkMethod() {
|
|
1313
|
+
return !props.disabled;
|
|
1314
|
+
}
|
|
1284
1315
|
}
|
|
1285
1316
|
}));
|
|
1286
1317
|
const countText = vue.computed(() => {
|
|
@@ -1316,13 +1347,13 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1316
1347
|
data.splice(0, data.length);
|
|
1317
1348
|
const childRules = lodashEs.cloneDeep(props.rule.config.childRules);
|
|
1318
1349
|
const value = props.rule.value;
|
|
1319
|
-
if (deleteFeature.value) {
|
|
1350
|
+
if (deleteFeature.value && !props.hidden) {
|
|
1320
1351
|
columns.push({
|
|
1321
1352
|
type: "checkbox",
|
|
1322
1353
|
width: "54px"
|
|
1323
1354
|
});
|
|
1324
1355
|
}
|
|
1325
|
-
if (props.
|
|
1356
|
+
if (props.disabledTable) {
|
|
1326
1357
|
childRules.forEach((rule) => {
|
|
1327
1358
|
rule.disabled = true;
|
|
1328
1359
|
});
|
|
@@ -1341,15 +1372,16 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1341
1372
|
return pre;
|
|
1342
1373
|
}, [])
|
|
1343
1374
|
);
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1375
|
+
if (!props.hidden)
|
|
1376
|
+
columns.push({
|
|
1377
|
+
field: oper,
|
|
1378
|
+
title: "\u64CD\u4F5C",
|
|
1379
|
+
minWidth: "140px",
|
|
1380
|
+
fixed: "right",
|
|
1381
|
+
slots: {
|
|
1382
|
+
default: "floatHandle"
|
|
1383
|
+
}
|
|
1384
|
+
});
|
|
1353
1385
|
handleAdd(value);
|
|
1354
1386
|
}
|
|
1355
1387
|
function getRowData() {
|
|
@@ -1514,19 +1546,25 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1514
1546
|
vue.createTextVNode(vue.toDisplayString(__props.rule.title.title) + " ", 1),
|
|
1515
1547
|
vue.createElementVNode("span", _hoisted_3$3, vue.toDisplayString(vue.unref(countText)), 1),
|
|
1516
1548
|
vue.createElementVNode("div", _hoisted_4$3, [
|
|
1517
|
-
vue.unref(importFeature) ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
|
|
1518
|
-
vue.createVNode(vue.unref(antDesignVue.Button), {
|
|
1549
|
+
vue.unref(importFeature) && !__props.hidden ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
|
|
1550
|
+
vue.createVNode(vue.unref(antDesignVue.Button), {
|
|
1551
|
+
disabled: __props.disabled,
|
|
1552
|
+
onClick: handleDownload
|
|
1553
|
+
}, {
|
|
1519
1554
|
default: vue.withCtx(() => [
|
|
1520
1555
|
vue.createTextVNode("\u4E0B\u8F7D\u6A21\u677F")
|
|
1521
1556
|
]),
|
|
1522
1557
|
_: 1
|
|
1523
|
-
}),
|
|
1524
|
-
vue.createVNode(vue.unref(antDesignVue.Button), {
|
|
1558
|
+
}, 8, ["disabled"]),
|
|
1559
|
+
vue.createVNode(vue.unref(antDesignVue.Button), {
|
|
1560
|
+
disabled: __props.disabled,
|
|
1561
|
+
onClick: handleImport
|
|
1562
|
+
}, {
|
|
1525
1563
|
default: vue.withCtx(() => [
|
|
1526
1564
|
vue.createTextVNode("\u6279\u91CF\u5BFC\u5165")
|
|
1527
1565
|
]),
|
|
1528
1566
|
_: 1
|
|
1529
|
-
}),
|
|
1567
|
+
}, 8, ["disabled"]),
|
|
1530
1568
|
vue.createElementVNode("input", {
|
|
1531
1569
|
ref_key: "inputRef",
|
|
1532
1570
|
ref: inputRef,
|
|
@@ -1537,17 +1575,20 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1537
1575
|
onChange: handleChange
|
|
1538
1576
|
}, null, 544)
|
|
1539
1577
|
], 64)) : vue.createCommentVNode("v-if", true),
|
|
1540
|
-
vue.unref(deleteFeature) ? (vue.openBlock(), vue.createBlock(vue.unref(antDesignVue.Button), {
|
|
1578
|
+
vue.unref(deleteFeature) && !__props.hidden ? (vue.openBlock(), vue.createBlock(vue.unref(antDesignVue.Button), {
|
|
1541
1579
|
key: 1,
|
|
1580
|
+
disabled: __props.disabled,
|
|
1542
1581
|
onClick: handleBatchDelete
|
|
1543
1582
|
}, {
|
|
1544
1583
|
default: vue.withCtx(() => [
|
|
1545
1584
|
vue.createTextVNode("\u6279\u91CF\u5220\u9664")
|
|
1546
1585
|
]),
|
|
1547
1586
|
_: 1
|
|
1548
|
-
})) : vue.createCommentVNode("v-if", true),
|
|
1549
|
-
vue.
|
|
1587
|
+
}, 8, ["disabled"])) : vue.createCommentVNode("v-if", true),
|
|
1588
|
+
!__props.hidden ? (vue.openBlock(), vue.createBlock(vue.unref(antDesignVue.Button), {
|
|
1589
|
+
key: 2,
|
|
1550
1590
|
type: "primary",
|
|
1591
|
+
disabled: __props.disabled,
|
|
1551
1592
|
onClick: handleAdd
|
|
1552
1593
|
}, {
|
|
1553
1594
|
default: vue.withCtx(() => [
|
|
@@ -1555,7 +1596,7 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1555
1596
|
vue.createTextVNode(" \u65B0\u589E ")
|
|
1556
1597
|
]),
|
|
1557
1598
|
_: 1
|
|
1558
|
-
})
|
|
1599
|
+
}, 8, ["disabled"])) : vue.createCommentVNode("v-if", true)
|
|
1559
1600
|
])
|
|
1560
1601
|
]),
|
|
1561
1602
|
vue.createElementVNode("div", _hoisted_5$3, [
|
|
@@ -1568,14 +1609,30 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1568
1609
|
}, {
|
|
1569
1610
|
floatHandle: vue.withCtx(({ row, rowIndex }) => [
|
|
1570
1611
|
vue.unref(copyFeature) ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
|
|
1571
|
-
vue.
|
|
1612
|
+
vue.createVNode(vue.unref(antDesignVue.Button), {
|
|
1613
|
+
type: "link",
|
|
1614
|
+
size: "small",
|
|
1615
|
+
disabled: __props.disabled,
|
|
1572
1616
|
onClick: ($event) => handleCopy(row)
|
|
1573
|
-
},
|
|
1617
|
+
}, {
|
|
1618
|
+
default: vue.withCtx(() => [
|
|
1619
|
+
vue.createTextVNode("\u590D\u5236")
|
|
1620
|
+
]),
|
|
1621
|
+
_: 2
|
|
1622
|
+
}, 1032, ["disabled", "onClick"]),
|
|
1574
1623
|
vue.createVNode(vue.unref(antDesignVue.Divider), { type: "vertical" })
|
|
1575
1624
|
], 64)) : vue.createCommentVNode("v-if", true),
|
|
1576
|
-
vue.
|
|
1625
|
+
vue.createVNode(vue.unref(antDesignVue.Button), {
|
|
1626
|
+
type: "link",
|
|
1627
|
+
size: "small",
|
|
1628
|
+
disabled: __props.disabled,
|
|
1577
1629
|
onClick: ($event) => handleDelete(rowIndex)
|
|
1578
|
-
},
|
|
1630
|
+
}, {
|
|
1631
|
+
default: vue.withCtx(() => [
|
|
1632
|
+
vue.createTextVNode("\u5220\u9664")
|
|
1633
|
+
]),
|
|
1634
|
+
_: 2
|
|
1635
|
+
}, 1032, ["disabled", "onClick"])
|
|
1579
1636
|
]),
|
|
1580
1637
|
_: 1
|
|
1581
1638
|
}, 8, ["config"])
|
|
@@ -1632,7 +1689,7 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1632
1689
|
getTempDetail(tempId).then((result) => {
|
|
1633
1690
|
const activePane2 = getAcitvePane();
|
|
1634
1691
|
activePane2.tempSelected = result;
|
|
1635
|
-
activePane2.tableRule = getTableRule(result
|
|
1692
|
+
activePane2.tableRule = getTableRule(result);
|
|
1636
1693
|
});
|
|
1637
1694
|
}
|
|
1638
1695
|
function getAcitvePane() {
|
|
@@ -1673,44 +1730,97 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1673
1730
|
}
|
|
1674
1731
|
}
|
|
1675
1732
|
}
|
|
1676
|
-
function getTableRule(
|
|
1733
|
+
function getTableRule(tempResult) {
|
|
1734
|
+
const { coverageArr, preSetItems } = tempResult;
|
|
1677
1735
|
const fieldTypeMap = {
|
|
1678
1736
|
1: "input",
|
|
1679
1737
|
2: "numInput",
|
|
1680
1738
|
3: "date",
|
|
1681
|
-
4: "
|
|
1739
|
+
4: "product"
|
|
1682
1740
|
};
|
|
1683
1741
|
const formatMap = {
|
|
1684
1742
|
0: "YYYY-MM",
|
|
1685
1743
|
1: "YYYY-MM-DD",
|
|
1686
1744
|
2: "YYYY-MM-DD HH:mm"
|
|
1687
1745
|
};
|
|
1746
|
+
const txtFormatFnMap = {
|
|
1747
|
+
1: (txt) => /^\d{11}$/.test(txt),
|
|
1748
|
+
2: (txt) => /^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/.test(txt),
|
|
1749
|
+
3: (txt) => /(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(txt),
|
|
1750
|
+
4: (txt) => /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(txt)
|
|
1751
|
+
};
|
|
1688
1752
|
const activePane2 = getAcitvePane();
|
|
1689
|
-
const childRules =
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1753
|
+
const childRules = preSetItems.split(",").map((preSetItem) => ({
|
|
1754
|
+
name: "product",
|
|
1755
|
+
title: {
|
|
1756
|
+
title: preSetItem
|
|
1757
|
+
},
|
|
1758
|
+
field: preSetItem,
|
|
1759
|
+
effect: {
|
|
1760
|
+
required: true
|
|
1761
|
+
},
|
|
1762
|
+
props: {
|
|
1763
|
+
placeholder: "\u8BF7\u8F93\u5165"
|
|
1764
|
+
},
|
|
1765
|
+
config: {
|
|
1766
|
+
associatedFields: coverageArr.filter((coverage) => {
|
|
1767
|
+
if (coverage.fieldType === 4) {
|
|
1768
|
+
const extraValues = JSON.parse(coverage.extraValues);
|
|
1769
|
+
return extraValues.fieldName === preSetItem;
|
|
1770
|
+
} else {
|
|
1771
|
+
return false;
|
|
1772
|
+
}
|
|
1773
|
+
}).map((coverage) => {
|
|
1774
|
+
const extraValues = JSON.parse(coverage.extraValues);
|
|
1775
|
+
return {
|
|
1776
|
+
value: extraValues.presetFieldName,
|
|
1777
|
+
label: extraValues.presetFieldName
|
|
1778
|
+
};
|
|
1779
|
+
})
|
|
1711
1780
|
}
|
|
1712
|
-
|
|
1713
|
-
|
|
1781
|
+
})).concat(
|
|
1782
|
+
coverageArr.filter((coverage) => coverage.isEdit).map((coverage) => {
|
|
1783
|
+
const extraValues = JSON.parse(coverage.extraValues);
|
|
1784
|
+
const value = {
|
|
1785
|
+
name: fieldTypeMap[coverage.fieldType],
|
|
1786
|
+
title: {
|
|
1787
|
+
title: coverage.name
|
|
1788
|
+
},
|
|
1789
|
+
field: coverage.name,
|
|
1790
|
+
effect: {
|
|
1791
|
+
required: coverage.isCheck
|
|
1792
|
+
},
|
|
1793
|
+
config: {
|
|
1794
|
+
fieldRatio: "140px"
|
|
1795
|
+
}
|
|
1796
|
+
};
|
|
1797
|
+
if (coverage.fieldType === 1) {
|
|
1798
|
+
value.props = {
|
|
1799
|
+
placeholder: "\u8BF7\u8F93\u5165",
|
|
1800
|
+
maxlength: extraValues.maxLength
|
|
1801
|
+
};
|
|
1802
|
+
value.config.txtFormatFn = txtFormatFnMap[extraValues.format];
|
|
1803
|
+
}
|
|
1804
|
+
if (coverage.fieldType === 2) {
|
|
1805
|
+
const decimalPlaces = extraValues.decimalPlaces || 0;
|
|
1806
|
+
value.props = {
|
|
1807
|
+
placeholder: "\u8BF7\u8F93\u5165"
|
|
1808
|
+
};
|
|
1809
|
+
if (extraValues.format === 1) {
|
|
1810
|
+
value.props.parser = (value2) => lodashEs.floor(value2.replace("%", ""), decimalPlaces);
|
|
1811
|
+
value.props.formatter = (value2) => `${value2}%`;
|
|
1812
|
+
} else {
|
|
1813
|
+
value.props.parser = (value2) => lodashEs.floor(value2, decimalPlaces);
|
|
1814
|
+
}
|
|
1815
|
+
}
|
|
1816
|
+
if (coverage.fieldType === 3) {
|
|
1817
|
+
value.props = {
|
|
1818
|
+
format: formatMap[extraValues.format]
|
|
1819
|
+
};
|
|
1820
|
+
}
|
|
1821
|
+
return value;
|
|
1822
|
+
})
|
|
1823
|
+
);
|
|
1714
1824
|
if (childRules.length)
|
|
1715
1825
|
return {
|
|
1716
1826
|
title: {
|
|
@@ -1735,6 +1845,7 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1735
1845
|
key: pane.key,
|
|
1736
1846
|
title: pane.title,
|
|
1737
1847
|
tempIdSelected: pane.tempSelected.templateCode || pane.tempIdSelected,
|
|
1848
|
+
templateName: pane.tempSelected?.templateName || pane.templateName,
|
|
1738
1849
|
tableData: pane.tableData,
|
|
1739
1850
|
uploadList: pane.uploadList
|
|
1740
1851
|
}))
|
|
@@ -1764,7 +1875,7 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1764
1875
|
props.extraConfig.getDict().then((data) => {
|
|
1765
1876
|
measrueDicts.value = data;
|
|
1766
1877
|
});
|
|
1767
|
-
vue.watch(mainShopValue, (
|
|
1878
|
+
vue.watch(mainShopValue, () => {
|
|
1768
1879
|
panes.splice(0);
|
|
1769
1880
|
activeKey.value = "\u7D20\u67501";
|
|
1770
1881
|
panes.push({
|
|
@@ -2018,9 +2129,9 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2018
2129
|
pane.tableRule ? (vue.openBlock(), vue.createBlock(TableWidget, {
|
|
2019
2130
|
key: 0,
|
|
2020
2131
|
rule: pane.tableRule,
|
|
2021
|
-
disabled: __props.disabled?.includes?.("editTable"),
|
|
2132
|
+
"disabled-table": __props.disabled?.includes?.("editTable"),
|
|
2022
2133
|
onChange: handleTableDataChange
|
|
2023
|
-
}, null, 8, ["rule", "disabled"])) : vue.createCommentVNode("v-if", true)
|
|
2134
|
+
}, null, 8, ["rule", "disabled-table"])) : vue.createCommentVNode("v-if", true)
|
|
2024
2135
|
]),
|
|
2025
2136
|
_: 2
|
|
2026
2137
|
}, 1024)
|
|
@@ -2437,7 +2548,7 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2437
2548
|
options.value = result;
|
|
2438
2549
|
return options.value;
|
|
2439
2550
|
}).then((options2) => {
|
|
2440
|
-
if (props.value
|
|
2551
|
+
if (props.value?.length) {
|
|
2441
2552
|
if (props.multiple) {
|
|
2442
2553
|
props.value.forEach((item) => loadValueOptions(item, options2));
|
|
2443
2554
|
} else {
|
|
@@ -2638,6 +2749,7 @@ var row = {
|
|
|
2638
2749
|
const children = [
|
|
2639
2750
|
{
|
|
2640
2751
|
type: 'row',
|
|
2752
|
+
field: data.field,
|
|
2641
2753
|
props: {
|
|
2642
2754
|
gutter: [0, 24],
|
|
2643
2755
|
},
|
|
@@ -2656,7 +2768,6 @@ var row = {
|
|
|
2656
2768
|
return {
|
|
2657
2769
|
native: true,
|
|
2658
2770
|
type: 'div',
|
|
2659
|
-
field: data.field,
|
|
2660
2771
|
children,
|
|
2661
2772
|
class: 'bm-fc-module-widget',
|
|
2662
2773
|
};
|
|
@@ -2758,9 +2869,23 @@ var department = {
|
|
|
2758
2869
|
minWidth: data.config.fieldRatio,
|
|
2759
2870
|
slots: {
|
|
2760
2871
|
default({ row }) {
|
|
2761
|
-
return vue.h(StaffSelector,
|
|
2872
|
+
return vue.h(StaffSelector, {
|
|
2873
|
+
title: '添加部门',
|
|
2874
|
+
mode: data.props.limit ? 'radio' : 'multiple',
|
|
2875
|
+
placeholder: data.props.placeholder,
|
|
2876
|
+
immediateFetch: true,
|
|
2877
|
+
unitStr: '个',
|
|
2878
|
+
disabled: data.disabled,
|
|
2879
|
+
onChange: (value) => {
|
|
2762
2880
|
row[field] = value;
|
|
2763
|
-
},
|
|
2881
|
+
},
|
|
2882
|
+
defaultSelected: row[field],
|
|
2883
|
+
load(params) {
|
|
2884
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2885
|
+
return yield extraConfig.department.fetch(params);
|
|
2886
|
+
});
|
|
2887
|
+
},
|
|
2888
|
+
});
|
|
2764
2889
|
},
|
|
2765
2890
|
},
|
|
2766
2891
|
};
|
|
@@ -2996,16 +3121,6 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
2996
3121
|
const rule = vue.ref([]);
|
|
2997
3122
|
const processFormPermissions = vue.computed(
|
|
2998
3123
|
() => props.formPermissions ? props.formPermissions.reduce((result, item) => {
|
|
2999
|
-
if (item.disabled) {
|
|
3000
|
-
if (item.name === "picture") {
|
|
3001
|
-
((item.props = {}).uploadProps = {}).disabled = true;
|
|
3002
|
-
} else if (item.name === "materialTemp") {
|
|
3003
|
-
(item.props = {}).disabled = item.disabled;
|
|
3004
|
-
} else {
|
|
3005
|
-
(item.props = {}).disabled = true;
|
|
3006
|
-
}
|
|
3007
|
-
}
|
|
3008
|
-
delete item.disabled;
|
|
3009
3124
|
result[item.field] = item;
|
|
3010
3125
|
return result;
|
|
3011
3126
|
}, {}) : {}
|
|
@@ -3015,45 +3130,82 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
3015
3130
|
);
|
|
3016
3131
|
vue.provide("mainShopValue", mainShopValue);
|
|
3017
3132
|
function setRule(fdRule) {
|
|
3018
|
-
fdRule =
|
|
3019
|
-
|
|
3133
|
+
fdRule = setRuleValue(fdRule);
|
|
3134
|
+
fdRule = makeRule(fdRule);
|
|
3135
|
+
rule.value = setRulePermission(fdRule);
|
|
3136
|
+
}
|
|
3137
|
+
function makeRule(fdRule) {
|
|
3138
|
+
return fdRule.map((data) => {
|
|
3020
3139
|
const childRules = data?.config?.childRules;
|
|
3021
3140
|
const rule2 = ruleList[data.name].rule(data, props.extraConfig);
|
|
3022
3141
|
if (data.name === "row" && childRules?.length) {
|
|
3023
3142
|
const rowRule = rule2.children.find((item) => item.type === "row");
|
|
3024
3143
|
childRules.forEach((ruleItem) => {
|
|
3025
3144
|
rowRule.children.push(
|
|
3026
|
-
|
|
3027
|
-
ruleItem.field,
|
|
3028
|
-
ruleList[ruleItem.name].rowRule(ruleItem, props.extraConfig)
|
|
3029
|
-
)
|
|
3145
|
+
ruleList[ruleItem.name].rowRule(ruleItem, props.extraConfig)
|
|
3030
3146
|
);
|
|
3031
3147
|
});
|
|
3032
|
-
} else if (data.name === "table" && childRules?.length) {
|
|
3033
|
-
childRules.forEach((childRule) => {
|
|
3034
|
-
const rulePermission = processFormPermissions.value[childRule.field];
|
|
3035
|
-
if (rulePermission) {
|
|
3036
|
-
childRule.hidden = rulePermission.hidden;
|
|
3037
|
-
childRule.disabled = rulePermission.props?.disabled;
|
|
3038
|
-
}
|
|
3039
|
-
});
|
|
3040
|
-
} else if (data.name === "materialTemp") {
|
|
3041
|
-
rule2.children[1] = mergeFormPermission(data.field, rule2.children[1]);
|
|
3042
|
-
return rule2;
|
|
3043
3148
|
}
|
|
3044
|
-
return
|
|
3149
|
+
return rule2;
|
|
3045
3150
|
});
|
|
3046
3151
|
}
|
|
3047
|
-
function mergeFormPermission(
|
|
3048
|
-
|
|
3049
|
-
|
|
3152
|
+
function mergeFormPermission(rule2) {
|
|
3153
|
+
rule2 = getFormFeildRule(rule2);
|
|
3154
|
+
const formPermission = processFormPermissions.value[rule2.field];
|
|
3155
|
+
const childRules = rule2?.props?.rule?.config?.childRules;
|
|
3156
|
+
const children = rule2.children;
|
|
3157
|
+
if (formPermission) {
|
|
3158
|
+
const { name } = formPermission;
|
|
3159
|
+
if (formPermission.disabled) {
|
|
3160
|
+
if (name === "picture") {
|
|
3161
|
+
rule2.props.uploadProps.disabled = true;
|
|
3162
|
+
} else if (name === "materialTemp") {
|
|
3163
|
+
rule2.props.disabled = formPermission.disabled;
|
|
3164
|
+
} else {
|
|
3165
|
+
rule2.props.disabled = true;
|
|
3166
|
+
}
|
|
3167
|
+
}
|
|
3168
|
+
if (formPermission.hidden) {
|
|
3169
|
+
if (name === "table") {
|
|
3170
|
+
rule2.props.hidden = true;
|
|
3171
|
+
} else {
|
|
3172
|
+
rule2.hidden = true;
|
|
3173
|
+
}
|
|
3174
|
+
}
|
|
3050
3175
|
}
|
|
3051
|
-
|
|
3176
|
+
if (childRules?.length) {
|
|
3177
|
+
let allHidden = true;
|
|
3178
|
+
childRules.forEach((childRule) => {
|
|
3179
|
+
const innerFormPermission = processFormPermissions.value[childRule.field];
|
|
3180
|
+
if (innerFormPermission) {
|
|
3181
|
+
childRule.disabled = innerFormPermission.disabled;
|
|
3182
|
+
childRule.hidden = innerFormPermission.hidden;
|
|
3183
|
+
}
|
|
3184
|
+
if (!innerFormPermission || !childRule.hidden)
|
|
3185
|
+
allHidden = false;
|
|
3186
|
+
});
|
|
3187
|
+
if (formPermission?.hidden && allHidden) {
|
|
3188
|
+
rule2.hidden = true;
|
|
3189
|
+
}
|
|
3190
|
+
}
|
|
3191
|
+
if (children?.length) {
|
|
3192
|
+
children.forEach((child) => mergeFormPermission(child));
|
|
3193
|
+
}
|
|
3194
|
+
}
|
|
3195
|
+
function getFormFeildRule(rule2) {
|
|
3196
|
+
if (rule2.native) {
|
|
3197
|
+
return rule2.children.find((item) => item.field);
|
|
3198
|
+
} else
|
|
3199
|
+
return rule2;
|
|
3200
|
+
}
|
|
3201
|
+
function setRulePermission(fdRule) {
|
|
3202
|
+
fdRule.forEach((rule2) => mergeFormPermission(rule2));
|
|
3203
|
+
return fdRule;
|
|
3052
3204
|
}
|
|
3053
3205
|
function handleValue(value) {
|
|
3054
3206
|
emits("update:value", value);
|
|
3055
3207
|
}
|
|
3056
|
-
function
|
|
3208
|
+
function setRuleValue(fdRule) {
|
|
3057
3209
|
const ruleData = lodashEs.cloneDeep(fdRule);
|
|
3058
3210
|
ruleData.forEach((rule2) => {
|
|
3059
3211
|
if (rule2.name === "row") {
|