@fecp/vue 1.1.3 → 1.1.4
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/_virtual/bessel.mjs +7 -0
- package/es/_virtual/bessel2.mjs +4 -0
- package/es/_virtual/index.mjs +1 -1
- package/es/_virtual/index2.mjs +1 -1
- package/es/_virtual/jstat.mjs +7 -0
- package/es/_virtual/jstat2.mjs +4 -0
- package/es/node_modules/.pnpm/@formulajs_formulajs@4.5.6/node_modules/@formulajs/formulajs/lib/esm/index.mjs +7150 -0
- package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/index.esm.mjs +1 -1
- package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/clipboard.mjs +1 -1
- package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/commands.mjs +1 -1
- package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/config.mjs +1 -1
- package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/event.mjs +1 -1
- package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/formats.mjs +1 -1
- package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/i18n.mjs +1 -1
- package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/icon.mjs +1 -1
- package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/interceptor.mjs +1 -1
- package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/menus.mjs +1 -1
- package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/permission.mjs +1 -1
- package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/renderer.mjs +1 -1
- package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/resize.mjs +1 -1
- package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/store.mjs +1 -1
- package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/vm.mjs +1 -1
- package/es/node_modules/.pnpm/bessel@1.0.2/node_modules/bessel/bessel.mjs +226 -0
- package/es/node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/container/index.mjs +7 -7
- package/es/node_modules/.pnpm/jstat@1.9.6/node_modules/jstat/dist/jstat.mjs +3853 -0
- package/es/packages/mobile/src/components/form/field/Field.vue.mjs +1 -1
- package/es/packages/mobile/src/utils/formatterUtil.mjs +1 -1
- package/es/packages/mobile/src/utils/optionUtil.mjs +1 -1
- package/es/packages/vue/index.mjs +4 -0
- package/es/packages/vue/src/components/all.mjs +4 -0
- package/es/packages/vue/src/components/details/header/Header.vue.mjs +1 -1
- package/es/packages/vue/src/components/forms/checkbox/Checkbox.vue.mjs +8 -2
- package/es/packages/vue/src/components/forms/date/Date.vue.mjs +6 -6
- package/es/packages/vue/src/components/forms/divider/Divider.vue.mjs +15 -20
- package/es/packages/vue/src/components/forms/divider/index.mjs +2 -2
- package/es/packages/vue/src/components/forms/form/Form.vue.mjs +281 -96
- package/es/packages/vue/src/components/forms/form/index.mjs +2 -2
- package/es/packages/vue/src/components/forms/formItem/FormItem.vue.mjs +76 -48
- package/es/packages/vue/src/components/forms/h2/H2.vue.mjs +16 -7
- package/es/packages/vue/src/components/forms/multipleSelection/MultipleSelection.vue.mjs +1 -1
- package/es/packages/vue/src/components/forms/number/Number.vue.mjs +18 -12
- package/es/packages/vue/src/components/forms/radio/Radio.vue.mjs +5 -3
- package/es/packages/vue/src/components/forms/select/Select.vue.mjs +6 -4
- package/es/packages/vue/src/components/forms/subForm/SubForm.vue.mjs +90 -0
- package/es/packages/vue/src/components/forms/subForm/index.mjs +7 -0
- package/es/packages/vue/src/components/forms/subTable/SubTable.vue.mjs +109 -0
- package/es/packages/vue/src/components/forms/subTable/index.mjs +7 -0
- package/es/packages/vue/src/components/forms/switch/Switch.vue.mjs +1 -1
- package/es/packages/vue/src/components/forms/text/Text.vue.mjs +6 -3
- package/es/packages/vue/src/components/forms/textarea/Textarea.vue.mjs +7 -4
- package/es/packages/vue/src/components/table/CustomButtons.vue.mjs +17 -17
- package/es/packages/vue/src/components/table/Table.vue.mjs +143 -77
- package/es/packages/vue/src/components/table/TableColumn.vue.mjs +37 -5
- package/es/packages/vue/src/components/table/TableFilter.vue.mjs +60 -21
- package/es/packages/vue/src/components/table/index.mjs +2 -2
- package/es/packages/vue/src/composables/usePageEvents.mjs +4 -5
- package/es/packages/vue/src/utils/common.mjs +5 -0
- package/es/packages/vue/src/utils/datasource.mjs +9 -1
- package/es/packages/vue/src/utils/formulajs/calculate.mjs +57 -0
- package/es/packages/vue/src/utils/formulajs/functionCore.mjs +17 -0
- package/es/vue.css +170 -61
- package/lib/_virtual/bessel.js +7 -0
- package/lib/_virtual/bessel2.js +4 -0
- package/lib/_virtual/index.js +1 -1
- package/lib/_virtual/index2.js +1 -1
- package/lib/_virtual/jstat.js +7 -0
- package/lib/_virtual/jstat2.js +4 -0
- package/lib/node_modules/.pnpm/@formulajs_formulajs@4.5.6/node_modules/@formulajs/formulajs/lib/esm/index.js +7150 -0
- package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/index.esm.js +1 -1
- package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/clipboard.js +1 -1
- package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/commands.js +1 -1
- package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/config.js +1 -1
- package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/event.js +1 -1
- package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/formats.js +1 -1
- package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/i18n.js +1 -1
- package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/icon.js +1 -1
- package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/interceptor.js +1 -1
- package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/menus.js +1 -1
- package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/permission.js +1 -1
- package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/renderer.js +1 -1
- package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/resize.js +1 -1
- package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/store.js +1 -1
- package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/vm.js +1 -1
- package/lib/node_modules/.pnpm/bessel@1.0.2/node_modules/bessel/bessel.js +226 -0
- package/lib/node_modules/.pnpm/jstat@1.9.6/node_modules/jstat/dist/jstat.js +3853 -0
- package/lib/packages/mobile/src/components/form/field/Field.vue.js +1 -1
- package/lib/packages/mobile/src/utils/formatterUtil.js +1 -1
- package/lib/packages/mobile/src/utils/optionUtil.js +1 -1
- package/lib/packages/vue/index.js +13 -9
- package/lib/packages/vue/src/components/all.js +10 -6
- package/lib/packages/vue/src/components/details/header/Header.vue.js +1 -1
- package/lib/packages/vue/src/components/forms/checkbox/Checkbox.vue.js +8 -2
- package/lib/packages/vue/src/components/forms/date/Date.vue.js +6 -6
- package/lib/packages/vue/src/components/forms/divider/Divider.vue.js +14 -19
- package/lib/packages/vue/src/components/forms/form/Form.vue.js +280 -95
- package/lib/packages/vue/src/components/forms/formItem/FormItem.vue.js +63 -35
- package/lib/packages/vue/src/components/forms/h2/H2.vue.js +15 -6
- package/lib/packages/vue/src/components/forms/multipleSelection/MultipleSelection.vue.js +1 -1
- package/lib/packages/vue/src/components/forms/number/Number.vue.js +18 -12
- package/lib/packages/vue/src/components/forms/radio/Radio.vue.js +5 -3
- package/lib/packages/vue/src/components/forms/select/Select.vue.js +6 -4
- package/lib/packages/vue/src/components/forms/subForm/SubForm.vue.js +90 -0
- package/lib/packages/vue/src/components/forms/subForm/index.js +7 -0
- package/lib/packages/vue/src/components/forms/subTable/SubTable.vue.js +109 -0
- package/lib/packages/vue/src/components/forms/subTable/index.js +7 -0
- package/lib/packages/vue/src/components/forms/switch/Switch.vue.js +1 -1
- package/lib/packages/vue/src/components/forms/text/Text.vue.js +6 -3
- package/lib/packages/vue/src/components/forms/textarea/Textarea.vue.js +7 -4
- package/lib/packages/vue/src/components/table/CustomButtons.vue.js +16 -16
- package/lib/packages/vue/src/components/table/Table.vue.js +145 -79
- package/lib/packages/vue/src/components/table/TableColumn.vue.js +37 -5
- package/lib/packages/vue/src/components/table/TableFilter.vue.js +82 -43
- package/lib/packages/vue/src/composables/usePageEvents.js +4 -5
- package/lib/packages/vue/src/utils/common.js +5 -0
- package/lib/packages/vue/src/utils/datasource.js +9 -1
- package/lib/packages/vue/src/utils/formulajs/calculate.js +57 -0
- package/lib/packages/vue/src/utils/formulajs/functionCore.js +17 -0
- package/lib/vue.css +170 -61
- package/package.json +1 -1
|
@@ -14,6 +14,7 @@ const getJsonAsyncUtil = require("../../../utils/getJsonAsyncUtil.js");
|
|
|
14
14
|
const FormItem = require("../formItem/FormItem.vue.js");
|
|
15
15
|
const datasource = require("../../../utils/datasource.js");
|
|
16
16
|
const validation = require("./validation.js");
|
|
17
|
+
const common = require("../../../utils/common.js");
|
|
17
18
|
;/* empty css */
|
|
18
19
|
;/* empty css */
|
|
19
20
|
;/* empty css */
|
|
@@ -25,6 +26,11 @@ const usePageEvents = require("../../../composables/usePageEvents.js");
|
|
|
25
26
|
const index$1 = require("../../details/header/index.js");
|
|
26
27
|
const index$2 = require("../../details/main/index.js");
|
|
27
28
|
const index$4 = require("../../details/footer/index.js");
|
|
29
|
+
const parseFilterConfig = require("../../../utils/parseFilterConfig.js");
|
|
30
|
+
const calculate = require("../../../utils/formulajs/calculate.js");
|
|
31
|
+
const moment = require("../../../../../../node_modules/.pnpm/moment@2.30.1/node_modules/moment/dist/moment.js");
|
|
32
|
+
;/* empty css */
|
|
33
|
+
const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.js");
|
|
28
34
|
const index = require("../../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/container/index.js");
|
|
29
35
|
const index$3 = require("../../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/form/index.js");
|
|
30
36
|
const gridLayout_vue = require("../../../../../../node_modules/.pnpm/grid-layout-plus@1.1.1_vue@3.5.13_typescript@5.7.3_/node_modules/grid-layout-plus/es/components/grid-layout.vue.js");
|
|
@@ -43,15 +49,35 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
43
49
|
type: Object,
|
|
44
50
|
default: () => {
|
|
45
51
|
}
|
|
52
|
+
},
|
|
53
|
+
modelValue: {
|
|
54
|
+
type: Object,
|
|
55
|
+
default: () => {
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
isSubForm: {
|
|
59
|
+
type: Boolean,
|
|
60
|
+
default: false
|
|
61
|
+
},
|
|
62
|
+
canPageEvent: {
|
|
63
|
+
type: Boolean,
|
|
64
|
+
default: true
|
|
46
65
|
}
|
|
47
66
|
},
|
|
48
|
-
emits: [
|
|
67
|
+
emits: [
|
|
68
|
+
"submit",
|
|
69
|
+
"change",
|
|
70
|
+
"validate",
|
|
71
|
+
"loaded",
|
|
72
|
+
"update:modelValue"
|
|
73
|
+
],
|
|
49
74
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
50
75
|
const props = __props;
|
|
51
76
|
const emit = __emit;
|
|
52
77
|
const instance = vue.getCurrentInstance();
|
|
53
78
|
const ctx = getInstance.getCurrentVueInstance();
|
|
54
79
|
const formRef = vue.ref(null);
|
|
80
|
+
const gridLayout = vue.ref(null);
|
|
55
81
|
const configLoading = vue.ref(true);
|
|
56
82
|
const configLoaded = vue.ref(false);
|
|
57
83
|
const localConfig = vue.ref({});
|
|
@@ -61,17 +87,21 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
61
87
|
const dictionaryOptions = vue.ref({});
|
|
62
88
|
const fieldsData = vue.ref({});
|
|
63
89
|
const hiddenFields = vue.ref({});
|
|
64
|
-
const
|
|
90
|
+
const rowHeight = vue.ref(1);
|
|
91
|
+
const pageEvents = props.canPageEvent ? usePageEvents.usePageEvents(() => ({
|
|
65
92
|
pageEventConfig: localConfig.value.pageEventConfig,
|
|
93
|
+
fields: [...fieldsData.value, ...hiddenFields.value],
|
|
66
94
|
ctx,
|
|
67
95
|
formData: formData.value,
|
|
68
96
|
localConfig: localConfig.value,
|
|
69
97
|
components: {
|
|
70
98
|
form: instance == null ? void 0 : instance.proxy
|
|
71
99
|
}
|
|
72
|
-
}));
|
|
73
|
-
pageEvents
|
|
74
|
-
|
|
100
|
+
})) : null;
|
|
101
|
+
if (pageEvents) {
|
|
102
|
+
pageEvents.handleBeforeUnmount();
|
|
103
|
+
pageEvents.handleUnmounted();
|
|
104
|
+
}
|
|
75
105
|
const loadConfig = async () => {
|
|
76
106
|
if (!props.templateKey) {
|
|
77
107
|
return;
|
|
@@ -84,14 +114,16 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
84
114
|
"form",
|
|
85
115
|
props.initOption
|
|
86
116
|
);
|
|
117
|
+
emit("loaded", option);
|
|
118
|
+
rowHeight.value = option.labelPosition == "top" ? 1.5 : 1;
|
|
87
119
|
localConfig.value = option;
|
|
88
120
|
fieldsData.value = option.fieldsData.map((item) => item.component);
|
|
89
121
|
hiddenFields.value = option.hiddenFields || [];
|
|
90
|
-
|
|
122
|
+
loadFormData();
|
|
91
123
|
await loadFieldDataSources();
|
|
92
124
|
loadEventFlow();
|
|
93
125
|
configLoaded.value = true;
|
|
94
|
-
if (localConfig.value.pageEventConfig) {
|
|
126
|
+
if (pageEvents && localConfig.value.pageEventConfig) {
|
|
95
127
|
const onCreatedEvent = localConfig.value.pageEventConfig.find(
|
|
96
128
|
(e) => e.name === "onCreated"
|
|
97
129
|
);
|
|
@@ -107,11 +139,11 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
107
139
|
configLoading.value = false;
|
|
108
140
|
}
|
|
109
141
|
};
|
|
110
|
-
const
|
|
142
|
+
const loadFormData = () => {
|
|
111
143
|
const data = {};
|
|
112
144
|
const rules = {};
|
|
113
|
-
if (
|
|
114
|
-
|
|
145
|
+
if (fieldsData.value) {
|
|
146
|
+
fieldsData.value.forEach((component) => {
|
|
115
147
|
if (component.fieldName) {
|
|
116
148
|
data[component.fieldName] = component.defaultValue ? component.defaultValue : null;
|
|
117
149
|
}
|
|
@@ -130,15 +162,15 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
130
162
|
}
|
|
131
163
|
});
|
|
132
164
|
}
|
|
133
|
-
formData.value = data;
|
|
165
|
+
formData.value = { ...data, ...props.modelValue };
|
|
134
166
|
formRules.value = rules;
|
|
135
167
|
};
|
|
136
168
|
const loadFieldDataSources = async () => {
|
|
137
169
|
var _a, _b;
|
|
138
|
-
const fields =
|
|
170
|
+
const fields = fieldsData.value || [];
|
|
139
171
|
const fieldDataSources = /* @__PURE__ */ new Set();
|
|
140
172
|
const dictionaryKeys = /* @__PURE__ */ new Set();
|
|
141
|
-
for (const
|
|
173
|
+
for (const component of fields) {
|
|
142
174
|
const fieldType = component.fieldType;
|
|
143
175
|
if ((fieldType === "select" || fieldType === "multipleSelection" || fieldType === "radio" || fieldType === "checkbox") && component.optionConfig) {
|
|
144
176
|
const { optionSource, dataSourceValue, dictionaryValue } = component.optionConfig;
|
|
@@ -198,8 +230,8 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
198
230
|
mergeOptionsToFields();
|
|
199
231
|
};
|
|
200
232
|
const mergeOptionsToFields = () => {
|
|
201
|
-
if (
|
|
202
|
-
|
|
233
|
+
if (fieldsData.value) {
|
|
234
|
+
fieldsData.value.forEach((component) => {
|
|
203
235
|
if (!component.optionConfig) return;
|
|
204
236
|
const {
|
|
205
237
|
optionSource,
|
|
@@ -249,7 +281,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
249
281
|
const getEventHandlers = (row, item, eventConfig) => {
|
|
250
282
|
return createEventHandlers(item, row, eventConfig);
|
|
251
283
|
};
|
|
252
|
-
|
|
284
|
+
fieldsData.value.forEach((component) => {
|
|
253
285
|
if (component.fieldName) {
|
|
254
286
|
component.eventHandlers = getEventHandlers(
|
|
255
287
|
formData.value,
|
|
@@ -259,14 +291,132 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
259
291
|
}
|
|
260
292
|
});
|
|
261
293
|
}
|
|
294
|
+
const gridLayoutFieldsData = vue.computed(() => {
|
|
295
|
+
let gridLayoutData = common.cloneDeep(localConfig.value.fieldsData || []);
|
|
296
|
+
gridLayoutData = gridLayoutData.map((item) => {
|
|
297
|
+
item.isResizable = false;
|
|
298
|
+
if (!item.fixedH) {
|
|
299
|
+
item.h = item.h * 60;
|
|
300
|
+
}
|
|
301
|
+
return item;
|
|
302
|
+
});
|
|
303
|
+
const linkedConfig = localConfig.value.linkedConfig || {};
|
|
304
|
+
const dataLink = (linkedConfig == null ? void 0 : linkedConfig.dataLink) || [];
|
|
305
|
+
const fields = [...fieldsData.value, ...hiddenFields.value];
|
|
306
|
+
dataLink.forEach((item) => {
|
|
307
|
+
if (parseFilterConfig.checkFilterMatch(item.filterConfig, formData.value, fields)) {
|
|
308
|
+
const fieldAssignments = item.fieldAssignments || [];
|
|
309
|
+
fieldAssignments.forEach((assignment) => {
|
|
310
|
+
var _a, _b;
|
|
311
|
+
const fieldId = assignment.fieldId;
|
|
312
|
+
const formulaText = (_b = (_a = assignment.formula) == null ? void 0 : _a.value) == null ? void 0 : _b.text;
|
|
313
|
+
const field = fields.find((f) => f.id == fieldId);
|
|
314
|
+
if (field && formulaText) {
|
|
315
|
+
const calcResult = calculate.calculate({
|
|
316
|
+
text: formulaText,
|
|
317
|
+
value: formData.value
|
|
318
|
+
});
|
|
319
|
+
formData.value[field.fieldName] = calcResult;
|
|
320
|
+
}
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
});
|
|
324
|
+
const visibility = (linkedConfig == null ? void 0 : linkedConfig.visibility) || [];
|
|
325
|
+
visibility.forEach((item) => {
|
|
326
|
+
const dataLinkFieldList = item.dataLinkFieldList || [];
|
|
327
|
+
if (parseFilterConfig.checkFilterMatch(item.filterConfig, formData.value, fields)) {
|
|
328
|
+
dataLinkFieldList.forEach((fieldId) => {
|
|
329
|
+
const layoutFieldItem = gridLayoutData.find((g) => g.id == fieldId);
|
|
330
|
+
if (layoutFieldItem) {
|
|
331
|
+
layoutFieldItem.hidden = false;
|
|
332
|
+
}
|
|
333
|
+
});
|
|
334
|
+
} else {
|
|
335
|
+
dataLinkFieldList.forEach((fieldId) => {
|
|
336
|
+
const layoutFieldItem = gridLayoutData.find((g) => g.id == fieldId);
|
|
337
|
+
if (layoutFieldItem) {
|
|
338
|
+
layoutFieldItem.hidden = true;
|
|
339
|
+
}
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
});
|
|
343
|
+
gridLayoutData = gridLayoutData.filter((item) => !item.hidden);
|
|
344
|
+
const requiredArr = (linkedConfig == null ? void 0 : linkedConfig.required) || [];
|
|
345
|
+
requiredArr.forEach((item) => {
|
|
346
|
+
const dataLinkFieldList = item.dataLinkFieldList || [];
|
|
347
|
+
if (parseFilterConfig.checkFilterMatch(item.filterConfig, formData.value, fields)) {
|
|
348
|
+
dataLinkFieldList.forEach((fieldId) => {
|
|
349
|
+
const layoutFieldItem = gridLayoutData.find((g) => g.id == fieldId);
|
|
350
|
+
if (layoutFieldItem) {
|
|
351
|
+
layoutFieldItem.component.required = true;
|
|
352
|
+
}
|
|
353
|
+
});
|
|
354
|
+
} else {
|
|
355
|
+
dataLinkFieldList.forEach((fieldId) => {
|
|
356
|
+
const layoutFieldItem = gridLayoutData.find((g) => g.id == fieldId);
|
|
357
|
+
if (layoutFieldItem) {
|
|
358
|
+
layoutFieldItem.component.required = false;
|
|
359
|
+
}
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
});
|
|
363
|
+
const rules = {};
|
|
364
|
+
gridLayoutData.forEach(({ component }) => {
|
|
365
|
+
if (component.fieldName) {
|
|
366
|
+
const fieldRules = validation.generateFieldRules(component);
|
|
367
|
+
if (fieldRules.length > 0) {
|
|
368
|
+
rules[component.fieldName] = fieldRules;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
});
|
|
372
|
+
formRules.value = rules;
|
|
373
|
+
const readonlyArr = (linkedConfig == null ? void 0 : linkedConfig.readonly) || [];
|
|
374
|
+
readonlyArr.forEach((item) => {
|
|
375
|
+
const dataLinkFieldList = item.dataLinkFieldList || [];
|
|
376
|
+
if (parseFilterConfig.checkFilterMatch(item.filterConfig, formData.value, fields)) {
|
|
377
|
+
dataLinkFieldList.forEach((fieldId) => {
|
|
378
|
+
const layoutFieldItem = gridLayoutData.find((g) => g.id == fieldId);
|
|
379
|
+
if (layoutFieldItem) {
|
|
380
|
+
layoutFieldItem.component.readOnly = true;
|
|
381
|
+
}
|
|
382
|
+
});
|
|
383
|
+
} else {
|
|
384
|
+
dataLinkFieldList.forEach((fieldId) => {
|
|
385
|
+
const layoutFieldItem = gridLayoutData.find((g) => g.id == fieldId);
|
|
386
|
+
if (layoutFieldItem) {
|
|
387
|
+
layoutFieldItem.component.readOnly = false;
|
|
388
|
+
}
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
});
|
|
392
|
+
const disabledArr = (linkedConfig == null ? void 0 : linkedConfig.disabled) || [];
|
|
393
|
+
disabledArr.forEach((item) => {
|
|
394
|
+
const dataLinkFieldList = item.dataLinkFieldList || [];
|
|
395
|
+
if (parseFilterConfig.checkFilterMatch(item.filterConfig, formData.value, fields)) {
|
|
396
|
+
dataLinkFieldList.forEach((fieldId) => {
|
|
397
|
+
const layoutFieldItem = gridLayoutData.find((g) => g.id == fieldId);
|
|
398
|
+
if (layoutFieldItem) {
|
|
399
|
+
layoutFieldItem.component.disabled = true;
|
|
400
|
+
}
|
|
401
|
+
});
|
|
402
|
+
} else {
|
|
403
|
+
dataLinkFieldList.forEach((fieldId) => {
|
|
404
|
+
const layoutFieldItem = gridLayoutData.find((g) => g.id == fieldId);
|
|
405
|
+
if (layoutFieldItem) {
|
|
406
|
+
layoutFieldItem.component.disabled = false;
|
|
407
|
+
}
|
|
408
|
+
});
|
|
409
|
+
}
|
|
410
|
+
});
|
|
411
|
+
return gridLayoutData;
|
|
412
|
+
});
|
|
262
413
|
const getFieldError = (fieldName) => {
|
|
263
414
|
var _a;
|
|
264
415
|
if (!formRef.value) return "";
|
|
265
416
|
const field = (_a = formRef.value.fields) == null ? void 0 : _a.find((f) => f.prop === fieldName);
|
|
266
417
|
return (field == null ? void 0 : field.validateMessage) || "";
|
|
267
418
|
};
|
|
268
|
-
const handleFieldChange = (
|
|
269
|
-
emit("change", { field: field.fieldName, value });
|
|
419
|
+
const handleFieldChange = (config, value) => {
|
|
270
420
|
};
|
|
271
421
|
const handleCustomButtonClick = (button) => {
|
|
272
422
|
var _a;
|
|
@@ -284,22 +434,40 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
284
434
|
var _a, _b;
|
|
285
435
|
(_a = formRef.value) == null ? void 0 : _a.clearValidate();
|
|
286
436
|
(_b = formRef.value) == null ? void 0 : _b.resetFields();
|
|
287
|
-
|
|
437
|
+
loadFormData();
|
|
438
|
+
};
|
|
439
|
+
const valueFormatMap = {
|
|
440
|
+
date: "YYYYMMDD",
|
|
441
|
+
week: "YYYYMMDD",
|
|
442
|
+
month: "YYYYMM",
|
|
443
|
+
year: "YYYY",
|
|
444
|
+
datetime: "YYYYMMDDHHmmss"
|
|
445
|
+
};
|
|
446
|
+
const formValueFormatMap = {
|
|
447
|
+
date: "YYYY-MM-DD",
|
|
448
|
+
week: "YYYY-MM-DD",
|
|
449
|
+
month: "YYYY-MM",
|
|
450
|
+
year: "YYYY",
|
|
451
|
+
datetime: "YYYY-MM-DD HH:mm:ss"
|
|
288
452
|
};
|
|
289
453
|
const getFormData = () => {
|
|
290
454
|
const result = { ...formData.value };
|
|
291
455
|
const processField = (field) => {
|
|
292
456
|
const fieldName = field.fieldName;
|
|
293
457
|
const fieldType = field.fieldType;
|
|
458
|
+
const value = result[fieldName];
|
|
294
459
|
if (fieldName && (fieldType === "checkbox" || fieldType === "multipleSelection")) {
|
|
295
|
-
const value = result[fieldName];
|
|
296
460
|
if (Array.isArray(value)) {
|
|
297
461
|
result[fieldName] = value.join("|");
|
|
298
462
|
}
|
|
463
|
+
} else if (fieldName && fieldType === "date" && value) {
|
|
464
|
+
const valueFormat = valueFormatMap[field.dateType] || "YYYYMMDD";
|
|
465
|
+
const formValueFormat = formValueFormatMap[field.dateType] || "YYYY-MM-DD";
|
|
466
|
+
result[fieldName] = moment.default(value, formValueFormat).format(valueFormat);
|
|
299
467
|
}
|
|
300
468
|
};
|
|
301
|
-
if (
|
|
302
|
-
|
|
469
|
+
if (fieldsData.value) {
|
|
470
|
+
fieldsData.value.forEach((component) => {
|
|
303
471
|
processField(component);
|
|
304
472
|
});
|
|
305
473
|
}
|
|
@@ -315,8 +483,8 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
315
483
|
const processField = (field) => {
|
|
316
484
|
const fieldName = field.fieldName;
|
|
317
485
|
const fieldType = field.fieldType;
|
|
486
|
+
const value = processedData[fieldName];
|
|
318
487
|
if (fieldName && (fieldType === "checkbox" || fieldType === "multipleSelection")) {
|
|
319
|
-
const value = processedData[fieldName];
|
|
320
488
|
if (typeof value === "string" && value.includes("|")) {
|
|
321
489
|
processedData[fieldName] = value.split("|");
|
|
322
490
|
} else if (typeof value === "string" && value !== "") {
|
|
@@ -324,10 +492,16 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
324
492
|
} else if (value === "" || value === null || value === void 0) {
|
|
325
493
|
processedData[fieldName] = [];
|
|
326
494
|
}
|
|
495
|
+
} else if (fieldName && fieldType === "date" && value) {
|
|
496
|
+
const valueFormat = valueFormatMap[field.dateType] || "YYYYMMDD";
|
|
497
|
+
const formValueFormat = formValueFormatMap[field.dateType] || "YYYY-MM-DD";
|
|
498
|
+
processedData[fieldName] = moment.default(value, valueFormat).format(
|
|
499
|
+
formValueFormat
|
|
500
|
+
);
|
|
327
501
|
}
|
|
328
502
|
};
|
|
329
|
-
if (
|
|
330
|
-
|
|
503
|
+
if (fieldsData.value) {
|
|
504
|
+
fieldsData.value.forEach((component) => {
|
|
331
505
|
processField(component);
|
|
332
506
|
});
|
|
333
507
|
}
|
|
@@ -341,6 +515,17 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
341
515
|
vue.onMounted(() => {
|
|
342
516
|
loadConfig();
|
|
343
517
|
});
|
|
518
|
+
vue.watch(
|
|
519
|
+
formData,
|
|
520
|
+
(newVal) => {
|
|
521
|
+
emit("update:modelValue", newVal);
|
|
522
|
+
},
|
|
523
|
+
{ deep: true }
|
|
524
|
+
);
|
|
525
|
+
vue.provide("formData", formData);
|
|
526
|
+
vue.provide("rowHeight", rowHeight);
|
|
527
|
+
vue.provide("gridLayout", gridLayout);
|
|
528
|
+
vue.provide("gridLayoutFieldsData", gridLayoutFieldsData);
|
|
344
529
|
__expose({
|
|
345
530
|
validate,
|
|
346
531
|
resetFields,
|
|
@@ -351,76 +536,76 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
351
536
|
return (_ctx, _cache) => {
|
|
352
537
|
const _component_el_form = index$3.ElForm;
|
|
353
538
|
const _component_el_container = index.ElContainer;
|
|
354
|
-
return vue.openBlock(), vue.
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
vue.
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
]),
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
], 64);
|
|
539
|
+
return vue.openBlock(), vue.createBlock(_component_el_container, {
|
|
540
|
+
direction: "vertical",
|
|
541
|
+
style: { "height": "100%" }
|
|
542
|
+
}, {
|
|
543
|
+
default: vue.withCtx(() => [
|
|
544
|
+
!configLoading.value && !__props.isSubForm ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.header), {
|
|
545
|
+
key: 0,
|
|
546
|
+
pageHeaderConfig: localConfig.value.pageHeaderConfig
|
|
547
|
+
}, null, 8, ["pageHeaderConfig"])) : vue.createCommentVNode("", true),
|
|
548
|
+
vue.createVNode(vue.unref(index$2.main), null, {
|
|
549
|
+
default: vue.withCtx(() => [
|
|
550
|
+
vue.createVNode(_component_el_form, {
|
|
551
|
+
ref_key: "formRef",
|
|
552
|
+
ref: formRef,
|
|
553
|
+
model: formData.value,
|
|
554
|
+
rules: formRules.value,
|
|
555
|
+
"label-position": localConfig.value.labelPosition,
|
|
556
|
+
style: vue.normalizeStyle({ padding: __props.isSubForm ? "0" : "18px" }),
|
|
557
|
+
"validate-on-rule-change": false
|
|
558
|
+
}, {
|
|
559
|
+
default: vue.withCtx(() => [
|
|
560
|
+
!configLoading.value ? (vue.openBlock(), vue.createBlock(vue.unref(gridLayout_vue.default), {
|
|
561
|
+
key: 0,
|
|
562
|
+
ref_key: "gridLayout",
|
|
563
|
+
ref: gridLayout,
|
|
564
|
+
layout: vue.unref(gridLayoutFieldsData),
|
|
565
|
+
"onUpdate:layout": _cache[0] || (_cache[0] = ($event) => vue.isRef(gridLayoutFieldsData) ? gridLayoutFieldsData.value = $event : null),
|
|
566
|
+
"row-height": rowHeight.value,
|
|
567
|
+
margin: [0, 0],
|
|
568
|
+
"col-num": localConfig.value.columns,
|
|
569
|
+
"is-draggable": false,
|
|
570
|
+
"is-resizable": false
|
|
571
|
+
}, {
|
|
572
|
+
item: vue.withCtx(({ item: { component } }) => [
|
|
573
|
+
vue.createVNode(FormItem.default, {
|
|
574
|
+
modelValue: formData.value[component.fieldName],
|
|
575
|
+
"onUpdate:modelValue": ($event) => formData.value[component.fieldName] = $event,
|
|
576
|
+
config: component,
|
|
577
|
+
localConfig: localConfig.value,
|
|
578
|
+
error: getFieldError(component.fieldName),
|
|
579
|
+
formRef: formRef.value,
|
|
580
|
+
onChange: handleFieldChange
|
|
581
|
+
}, null, 8, ["modelValue", "onUpdate:modelValue", "config", "localConfig", "error", "formRef"])
|
|
582
|
+
]),
|
|
583
|
+
_: 1
|
|
584
|
+
}, 8, ["layout", "row-height", "col-num"])) : vue.createCommentVNode("", true),
|
|
585
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(hiddenFields.value, (field) => {
|
|
586
|
+
return vue.openBlock(), vue.createElementBlock("input", {
|
|
587
|
+
key: field.fieldName,
|
|
588
|
+
type: "hidden",
|
|
589
|
+
name: field.fieldName,
|
|
590
|
+
value: formData.value[field.fieldName]
|
|
591
|
+
}, null, 8, _hoisted_1);
|
|
592
|
+
}), 128))
|
|
593
|
+
]),
|
|
594
|
+
_: 1
|
|
595
|
+
}, 8, ["model", "rules", "label-position", "style"])
|
|
596
|
+
]),
|
|
597
|
+
_: 1
|
|
598
|
+
}),
|
|
599
|
+
!__props.isSubForm ? (vue.openBlock(), vue.createBlock(vue.unref(index$4.footer), {
|
|
600
|
+
key: 1,
|
|
601
|
+
pageFooterConfig: localConfig.value.pageFooterConfig,
|
|
602
|
+
onCustomButtonClick: handleCustomButtonClick
|
|
603
|
+
}, null, 8, ["pageFooterConfig"])) : vue.createCommentVNode("", true)
|
|
604
|
+
]),
|
|
605
|
+
_: 1
|
|
606
|
+
});
|
|
423
607
|
};
|
|
424
608
|
}
|
|
425
609
|
});
|
|
426
|
-
|
|
610
|
+
const _Form = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-8a7ec746"]]);
|
|
611
|
+
exports.default = _Form;
|