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