@fecp/vue 1.1.3 → 1.1.5
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 +287 -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 +110 -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 +19 -5
- 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 +286 -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 +110 -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 +19 -5
- 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,138 @@ 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.y = item.y * 60;
|
|
300
|
+
item.h = item.h * 60;
|
|
301
|
+
}
|
|
302
|
+
return item;
|
|
303
|
+
});
|
|
304
|
+
console.log(
|
|
305
|
+
"🚀 ~ localConfig.value.fieldsData:",
|
|
306
|
+
localConfig.value.fieldsData
|
|
307
|
+
);
|
|
308
|
+
const linkedConfig = localConfig.value.linkedConfig || {};
|
|
309
|
+
const dataLink = (linkedConfig == null ? void 0 : linkedConfig.dataLink) || [];
|
|
310
|
+
const fields = [...fieldsData.value, ...hiddenFields.value];
|
|
311
|
+
dataLink.forEach((item) => {
|
|
312
|
+
if (parseFilterConfig.checkFilterMatch(item.filterConfig, formData.value, fields)) {
|
|
313
|
+
const fieldAssignments = item.fieldAssignments || [];
|
|
314
|
+
fieldAssignments.forEach((assignment) => {
|
|
315
|
+
var _a, _b;
|
|
316
|
+
const fieldId = assignment.fieldId;
|
|
317
|
+
const formulaText = (_b = (_a = assignment.formula) == null ? void 0 : _a.value) == null ? void 0 : _b.text;
|
|
318
|
+
const field = fields.find((f) => f.id == fieldId);
|
|
319
|
+
if (field && formulaText) {
|
|
320
|
+
const calcResult = calculate.calculate({
|
|
321
|
+
text: formulaText,
|
|
322
|
+
value: formData.value
|
|
323
|
+
});
|
|
324
|
+
formData.value[field.fieldName] = calcResult;
|
|
325
|
+
}
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
});
|
|
329
|
+
const visibility = (linkedConfig == null ? void 0 : linkedConfig.visibility) || [];
|
|
330
|
+
visibility.forEach((item) => {
|
|
331
|
+
const dataLinkFieldList = item.dataLinkFieldList || [];
|
|
332
|
+
if (parseFilterConfig.checkFilterMatch(item.filterConfig, formData.value, fields)) {
|
|
333
|
+
dataLinkFieldList.forEach((fieldId) => {
|
|
334
|
+
const layoutFieldItem = gridLayoutData.find((g) => g.id == fieldId);
|
|
335
|
+
if (layoutFieldItem) {
|
|
336
|
+
layoutFieldItem.hidden = false;
|
|
337
|
+
}
|
|
338
|
+
});
|
|
339
|
+
} else {
|
|
340
|
+
dataLinkFieldList.forEach((fieldId) => {
|
|
341
|
+
const layoutFieldItem = gridLayoutData.find((g) => g.id == fieldId);
|
|
342
|
+
if (layoutFieldItem) {
|
|
343
|
+
layoutFieldItem.hidden = true;
|
|
344
|
+
}
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
});
|
|
348
|
+
gridLayoutData = gridLayoutData.filter((item) => !item.hidden);
|
|
349
|
+
const requiredArr = (linkedConfig == null ? void 0 : linkedConfig.required) || [];
|
|
350
|
+
requiredArr.forEach((item) => {
|
|
351
|
+
const dataLinkFieldList = item.dataLinkFieldList || [];
|
|
352
|
+
if (parseFilterConfig.checkFilterMatch(item.filterConfig, formData.value, fields)) {
|
|
353
|
+
dataLinkFieldList.forEach((fieldId) => {
|
|
354
|
+
const layoutFieldItem = gridLayoutData.find((g) => g.id == fieldId);
|
|
355
|
+
if (layoutFieldItem) {
|
|
356
|
+
layoutFieldItem.component.required = true;
|
|
357
|
+
}
|
|
358
|
+
});
|
|
359
|
+
} else {
|
|
360
|
+
dataLinkFieldList.forEach((fieldId) => {
|
|
361
|
+
const layoutFieldItem = gridLayoutData.find((g) => g.id == fieldId);
|
|
362
|
+
if (layoutFieldItem) {
|
|
363
|
+
layoutFieldItem.component.required = false;
|
|
364
|
+
}
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
});
|
|
368
|
+
const rules = {};
|
|
369
|
+
gridLayoutData.forEach(({ component }) => {
|
|
370
|
+
if (component.fieldName) {
|
|
371
|
+
const fieldRules = validation.generateFieldRules(component);
|
|
372
|
+
if (fieldRules.length > 0) {
|
|
373
|
+
rules[component.fieldName] = fieldRules;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
});
|
|
377
|
+
formRules.value = rules;
|
|
378
|
+
const readonlyArr = (linkedConfig == null ? void 0 : linkedConfig.readonly) || [];
|
|
379
|
+
readonlyArr.forEach((item) => {
|
|
380
|
+
const dataLinkFieldList = item.dataLinkFieldList || [];
|
|
381
|
+
if (parseFilterConfig.checkFilterMatch(item.filterConfig, formData.value, fields)) {
|
|
382
|
+
dataLinkFieldList.forEach((fieldId) => {
|
|
383
|
+
const layoutFieldItem = gridLayoutData.find((g) => g.id == fieldId);
|
|
384
|
+
if (layoutFieldItem) {
|
|
385
|
+
layoutFieldItem.component.readOnly = true;
|
|
386
|
+
}
|
|
387
|
+
});
|
|
388
|
+
} else {
|
|
389
|
+
dataLinkFieldList.forEach((fieldId) => {
|
|
390
|
+
const layoutFieldItem = gridLayoutData.find((g) => g.id == fieldId);
|
|
391
|
+
if (layoutFieldItem) {
|
|
392
|
+
layoutFieldItem.component.readOnly = false;
|
|
393
|
+
}
|
|
394
|
+
});
|
|
395
|
+
}
|
|
396
|
+
});
|
|
397
|
+
const disabledArr = (linkedConfig == null ? void 0 : linkedConfig.disabled) || [];
|
|
398
|
+
disabledArr.forEach((item) => {
|
|
399
|
+
const dataLinkFieldList = item.dataLinkFieldList || [];
|
|
400
|
+
if (parseFilterConfig.checkFilterMatch(item.filterConfig, formData.value, fields)) {
|
|
401
|
+
dataLinkFieldList.forEach((fieldId) => {
|
|
402
|
+
const layoutFieldItem = gridLayoutData.find((g) => g.id == fieldId);
|
|
403
|
+
if (layoutFieldItem) {
|
|
404
|
+
layoutFieldItem.component.disabled = true;
|
|
405
|
+
}
|
|
406
|
+
});
|
|
407
|
+
} else {
|
|
408
|
+
dataLinkFieldList.forEach((fieldId) => {
|
|
409
|
+
const layoutFieldItem = gridLayoutData.find((g) => g.id == fieldId);
|
|
410
|
+
if (layoutFieldItem) {
|
|
411
|
+
layoutFieldItem.component.disabled = false;
|
|
412
|
+
}
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
});
|
|
416
|
+
console.log("🚀 ~ gridLayoutData:", gridLayoutData);
|
|
417
|
+
return gridLayoutData;
|
|
418
|
+
});
|
|
262
419
|
const getFieldError = (fieldName) => {
|
|
263
420
|
var _a;
|
|
264
421
|
if (!formRef.value) return "";
|
|
265
422
|
const field = (_a = formRef.value.fields) == null ? void 0 : _a.find((f) => f.prop === fieldName);
|
|
266
423
|
return (field == null ? void 0 : field.validateMessage) || "";
|
|
267
424
|
};
|
|
268
|
-
const handleFieldChange = (
|
|
269
|
-
emit("change", { field: field.fieldName, value });
|
|
425
|
+
const handleFieldChange = (config, value) => {
|
|
270
426
|
};
|
|
271
427
|
const handleCustomButtonClick = (button) => {
|
|
272
428
|
var _a;
|
|
@@ -284,22 +440,40 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
284
440
|
var _a, _b;
|
|
285
441
|
(_a = formRef.value) == null ? void 0 : _a.clearValidate();
|
|
286
442
|
(_b = formRef.value) == null ? void 0 : _b.resetFields();
|
|
287
|
-
|
|
443
|
+
loadFormData();
|
|
444
|
+
};
|
|
445
|
+
const valueFormatMap = {
|
|
446
|
+
date: "YYYYMMDD",
|
|
447
|
+
week: "YYYYMMDD",
|
|
448
|
+
month: "YYYYMM",
|
|
449
|
+
year: "YYYY",
|
|
450
|
+
datetime: "YYYYMMDDHHmmss"
|
|
451
|
+
};
|
|
452
|
+
const formValueFormatMap = {
|
|
453
|
+
date: "YYYY-MM-DD",
|
|
454
|
+
week: "YYYY-MM-DD",
|
|
455
|
+
month: "YYYY-MM",
|
|
456
|
+
year: "YYYY",
|
|
457
|
+
datetime: "YYYY-MM-DD HH:mm:ss"
|
|
288
458
|
};
|
|
289
459
|
const getFormData = () => {
|
|
290
460
|
const result = { ...formData.value };
|
|
291
461
|
const processField = (field) => {
|
|
292
462
|
const fieldName = field.fieldName;
|
|
293
463
|
const fieldType = field.fieldType;
|
|
464
|
+
const value = result[fieldName];
|
|
294
465
|
if (fieldName && (fieldType === "checkbox" || fieldType === "multipleSelection")) {
|
|
295
|
-
const value = result[fieldName];
|
|
296
466
|
if (Array.isArray(value)) {
|
|
297
467
|
result[fieldName] = value.join("|");
|
|
298
468
|
}
|
|
469
|
+
} else if (fieldName && fieldType === "date" && value) {
|
|
470
|
+
const valueFormat = valueFormatMap[field.dateType] || "YYYYMMDD";
|
|
471
|
+
const formValueFormat = formValueFormatMap[field.dateType] || "YYYY-MM-DD";
|
|
472
|
+
result[fieldName] = moment.default(value, formValueFormat).format(valueFormat);
|
|
299
473
|
}
|
|
300
474
|
};
|
|
301
|
-
if (
|
|
302
|
-
|
|
475
|
+
if (fieldsData.value) {
|
|
476
|
+
fieldsData.value.forEach((component) => {
|
|
303
477
|
processField(component);
|
|
304
478
|
});
|
|
305
479
|
}
|
|
@@ -315,8 +489,8 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
315
489
|
const processField = (field) => {
|
|
316
490
|
const fieldName = field.fieldName;
|
|
317
491
|
const fieldType = field.fieldType;
|
|
492
|
+
const value = processedData[fieldName];
|
|
318
493
|
if (fieldName && (fieldType === "checkbox" || fieldType === "multipleSelection")) {
|
|
319
|
-
const value = processedData[fieldName];
|
|
320
494
|
if (typeof value === "string" && value.includes("|")) {
|
|
321
495
|
processedData[fieldName] = value.split("|");
|
|
322
496
|
} else if (typeof value === "string" && value !== "") {
|
|
@@ -324,10 +498,16 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
324
498
|
} else if (value === "" || value === null || value === void 0) {
|
|
325
499
|
processedData[fieldName] = [];
|
|
326
500
|
}
|
|
501
|
+
} else if (fieldName && fieldType === "date" && value) {
|
|
502
|
+
const valueFormat = valueFormatMap[field.dateType] || "YYYYMMDD";
|
|
503
|
+
const formValueFormat = formValueFormatMap[field.dateType] || "YYYY-MM-DD";
|
|
504
|
+
processedData[fieldName] = moment.default(value, valueFormat).format(
|
|
505
|
+
formValueFormat
|
|
506
|
+
);
|
|
327
507
|
}
|
|
328
508
|
};
|
|
329
|
-
if (
|
|
330
|
-
|
|
509
|
+
if (fieldsData.value) {
|
|
510
|
+
fieldsData.value.forEach((component) => {
|
|
331
511
|
processField(component);
|
|
332
512
|
});
|
|
333
513
|
}
|
|
@@ -341,6 +521,17 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
341
521
|
vue.onMounted(() => {
|
|
342
522
|
loadConfig();
|
|
343
523
|
});
|
|
524
|
+
vue.watch(
|
|
525
|
+
formData,
|
|
526
|
+
(newVal) => {
|
|
527
|
+
emit("update:modelValue", newVal);
|
|
528
|
+
},
|
|
529
|
+
{ deep: true }
|
|
530
|
+
);
|
|
531
|
+
vue.provide("formData", formData);
|
|
532
|
+
vue.provide("rowHeight", rowHeight);
|
|
533
|
+
vue.provide("gridLayout", gridLayout);
|
|
534
|
+
vue.provide("gridLayoutFieldsData", gridLayoutFieldsData);
|
|
344
535
|
__expose({
|
|
345
536
|
validate,
|
|
346
537
|
resetFields,
|
|
@@ -351,76 +542,76 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
351
542
|
return (_ctx, _cache) => {
|
|
352
543
|
const _component_el_form = index$3.ElForm;
|
|
353
544
|
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);
|
|
545
|
+
return vue.openBlock(), vue.createBlock(_component_el_container, {
|
|
546
|
+
direction: "vertical",
|
|
547
|
+
style: { "height": "100%" }
|
|
548
|
+
}, {
|
|
549
|
+
default: vue.withCtx(() => [
|
|
550
|
+
!configLoading.value && !__props.isSubForm ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.header), {
|
|
551
|
+
key: 0,
|
|
552
|
+
pageHeaderConfig: localConfig.value.pageHeaderConfig
|
|
553
|
+
}, null, 8, ["pageHeaderConfig"])) : vue.createCommentVNode("", true),
|
|
554
|
+
vue.createVNode(vue.unref(index$2.main), null, {
|
|
555
|
+
default: vue.withCtx(() => [
|
|
556
|
+
vue.createVNode(_component_el_form, {
|
|
557
|
+
ref_key: "formRef",
|
|
558
|
+
ref: formRef,
|
|
559
|
+
model: formData.value,
|
|
560
|
+
rules: formRules.value,
|
|
561
|
+
"label-position": localConfig.value.labelPosition,
|
|
562
|
+
style: vue.normalizeStyle({ padding: __props.isSubForm ? "0" : "18px" }),
|
|
563
|
+
"validate-on-rule-change": false
|
|
564
|
+
}, {
|
|
565
|
+
default: vue.withCtx(() => [
|
|
566
|
+
!configLoading.value ? (vue.openBlock(), vue.createBlock(vue.unref(gridLayout_vue.default), {
|
|
567
|
+
key: 0,
|
|
568
|
+
ref_key: "gridLayout",
|
|
569
|
+
ref: gridLayout,
|
|
570
|
+
layout: vue.unref(gridLayoutFieldsData),
|
|
571
|
+
"onUpdate:layout": _cache[0] || (_cache[0] = ($event) => vue.isRef(gridLayoutFieldsData) ? gridLayoutFieldsData.value = $event : null),
|
|
572
|
+
"row-height": rowHeight.value,
|
|
573
|
+
margin: [0, 0],
|
|
574
|
+
"col-num": localConfig.value.columns,
|
|
575
|
+
"is-draggable": false,
|
|
576
|
+
"is-resizable": false
|
|
577
|
+
}, {
|
|
578
|
+
item: vue.withCtx(({ item: { component } }) => [
|
|
579
|
+
vue.createVNode(FormItem.default, {
|
|
580
|
+
modelValue: formData.value[component.fieldName],
|
|
581
|
+
"onUpdate:modelValue": ($event) => formData.value[component.fieldName] = $event,
|
|
582
|
+
config: component,
|
|
583
|
+
localConfig: localConfig.value,
|
|
584
|
+
error: getFieldError(component.fieldName),
|
|
585
|
+
formRef: formRef.value,
|
|
586
|
+
onChange: handleFieldChange
|
|
587
|
+
}, null, 8, ["modelValue", "onUpdate:modelValue", "config", "localConfig", "error", "formRef"])
|
|
588
|
+
]),
|
|
589
|
+
_: 1
|
|
590
|
+
}, 8, ["layout", "row-height", "col-num"])) : vue.createCommentVNode("", true),
|
|
591
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(hiddenFields.value, (field) => {
|
|
592
|
+
return vue.openBlock(), vue.createElementBlock("input", {
|
|
593
|
+
key: field.fieldName,
|
|
594
|
+
type: "hidden",
|
|
595
|
+
name: field.fieldName,
|
|
596
|
+
value: formData.value[field.fieldName]
|
|
597
|
+
}, null, 8, _hoisted_1);
|
|
598
|
+
}), 128))
|
|
599
|
+
]),
|
|
600
|
+
_: 1
|
|
601
|
+
}, 8, ["model", "rules", "label-position", "style"])
|
|
602
|
+
]),
|
|
603
|
+
_: 1
|
|
604
|
+
}),
|
|
605
|
+
!__props.isSubForm ? (vue.openBlock(), vue.createBlock(vue.unref(index$4.footer), {
|
|
606
|
+
key: 1,
|
|
607
|
+
pageFooterConfig: localConfig.value.pageFooterConfig,
|
|
608
|
+
onCustomButtonClick: handleCustomButtonClick
|
|
609
|
+
}, null, 8, ["pageFooterConfig"])) : vue.createCommentVNode("", true)
|
|
610
|
+
]),
|
|
611
|
+
_: 1
|
|
612
|
+
});
|
|
423
613
|
};
|
|
424
614
|
}
|
|
425
615
|
});
|
|
426
|
-
|
|
616
|
+
const _Form = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-5ea07f4a"]]);
|
|
617
|
+
exports.default = _Form;
|