@fecp/vue 1.1.2 → 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/@vueuse_shared@10.11.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vueuse/shared/index.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/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/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/form/src/hooks/use-form-common-props.mjs +1 -1
- package/es/node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/input/src/input.vue2.mjs +1 -1
- 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 +276 -54
- package/es/packages/vue/src/components/forms/form/index.mjs +2 -2
- package/es/packages/vue/src/components/forms/formItem/FormItem.vue.mjs +78 -50
- 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 +7 -4
- package/es/packages/vue/src/components/forms/text/index.mjs +2 -2
- 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 +193 -72
- package/es/packages/vue/src/components/table/TableColumn.vue.mjs +46 -5
- package/es/packages/vue/src/components/table/TableFilter.vue.mjs +306 -0
- 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 +27 -1
- package/es/packages/vue/src/utils/eventFlow/actionHandlers.mjs +19 -2
- package/es/packages/vue/src/utils/formulajs/calculate.mjs +57 -0
- package/es/packages/vue/src/utils/formulajs/functionCore.mjs +17 -0
- package/es/packages/vue/src/utils/parseRouteParams.mjs +3 -2
- package/es/vue.css +255 -48
- 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 +275 -53
- 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 +7 -4
- 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 +195 -74
- package/lib/packages/vue/src/components/table/TableColumn.vue.js +46 -5
- package/lib/packages/vue/src/components/table/TableFilter.vue.js +306 -0
- 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 +27 -1
- package/lib/packages/vue/src/utils/eventFlow/actionHandlers.js +19 -2
- package/lib/packages/vue/src/utils/formulajs/calculate.js +57 -0
- package/lib/packages/vue/src/utils/formulajs/functionCore.js +17 -0
- package/lib/packages/vue/src/utils/parseRouteParams.js +3 -2
- package/lib/vue.css +255 -48
- 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, createBlock, openBlock, withCtx, createCommentVNode, createVNode, unref } from "vue";
|
|
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,10 +24,16 @@ 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";
|
|
29
35
|
import { ElMessage } from "../../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/message/index.mjs";
|
|
36
|
+
const _hoisted_1 = ["name", "value"];
|
|
30
37
|
const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
31
38
|
inheritAttrs: false
|
|
32
39
|
}, {
|
|
@@ -40,15 +47,35 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
40
47
|
type: Object,
|
|
41
48
|
default: () => {
|
|
42
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
|
|
43
63
|
}
|
|
44
64
|
},
|
|
45
|
-
emits: [
|
|
65
|
+
emits: [
|
|
66
|
+
"submit",
|
|
67
|
+
"change",
|
|
68
|
+
"validate",
|
|
69
|
+
"loaded",
|
|
70
|
+
"update:modelValue"
|
|
71
|
+
],
|
|
46
72
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
47
73
|
const props = __props;
|
|
48
74
|
const emit = __emit;
|
|
49
75
|
const instance = getCurrentInstance();
|
|
50
76
|
const ctx = getCurrentVueInstance();
|
|
51
77
|
const formRef = ref(null);
|
|
78
|
+
const gridLayout = ref(null);
|
|
52
79
|
const configLoading = ref(true);
|
|
53
80
|
const configLoaded = ref(false);
|
|
54
81
|
const localConfig = ref({});
|
|
@@ -57,17 +84,22 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
57
84
|
const dataSourceOptions = ref({});
|
|
58
85
|
const dictionaryOptions = ref({});
|
|
59
86
|
const fieldsData = ref({});
|
|
60
|
-
const
|
|
87
|
+
const hiddenFields = ref({});
|
|
88
|
+
const rowHeight = ref(1);
|
|
89
|
+
const pageEvents = props.canPageEvent ? usePageEvents(() => ({
|
|
61
90
|
pageEventConfig: localConfig.value.pageEventConfig,
|
|
91
|
+
fields: [...fieldsData.value, ...hiddenFields.value],
|
|
62
92
|
ctx,
|
|
63
93
|
formData: formData.value,
|
|
64
94
|
localConfig: localConfig.value,
|
|
65
95
|
components: {
|
|
66
96
|
form: instance == null ? void 0 : instance.proxy
|
|
67
97
|
}
|
|
68
|
-
}));
|
|
69
|
-
pageEvents
|
|
70
|
-
|
|
98
|
+
})) : null;
|
|
99
|
+
if (pageEvents) {
|
|
100
|
+
pageEvents.handleBeforeUnmount();
|
|
101
|
+
pageEvents.handleUnmounted();
|
|
102
|
+
}
|
|
71
103
|
const loadConfig = async () => {
|
|
72
104
|
if (!props.templateKey) {
|
|
73
105
|
return;
|
|
@@ -80,13 +112,16 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
80
112
|
"form",
|
|
81
113
|
props.initOption
|
|
82
114
|
);
|
|
115
|
+
emit("loaded", option);
|
|
116
|
+
rowHeight.value = option.labelPosition == "top" ? 1.5 : 1;
|
|
83
117
|
localConfig.value = option;
|
|
84
118
|
fieldsData.value = option.fieldsData.map((item) => item.component);
|
|
85
|
-
|
|
119
|
+
hiddenFields.value = option.hiddenFields || [];
|
|
120
|
+
loadFormData();
|
|
86
121
|
await loadFieldDataSources();
|
|
87
122
|
loadEventFlow();
|
|
88
123
|
configLoaded.value = true;
|
|
89
|
-
if (localConfig.value.pageEventConfig) {
|
|
124
|
+
if (pageEvents && localConfig.value.pageEventConfig) {
|
|
90
125
|
const onCreatedEvent = localConfig.value.pageEventConfig.find(
|
|
91
126
|
(e) => e.name === "onCreated"
|
|
92
127
|
);
|
|
@@ -102,11 +137,11 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
102
137
|
configLoading.value = false;
|
|
103
138
|
}
|
|
104
139
|
};
|
|
105
|
-
const
|
|
140
|
+
const loadFormData = () => {
|
|
106
141
|
const data = {};
|
|
107
142
|
const rules = {};
|
|
108
|
-
if (
|
|
109
|
-
|
|
143
|
+
if (fieldsData.value) {
|
|
144
|
+
fieldsData.value.forEach((component) => {
|
|
110
145
|
if (component.fieldName) {
|
|
111
146
|
data[component.fieldName] = component.defaultValue ? component.defaultValue : null;
|
|
112
147
|
}
|
|
@@ -118,15 +153,22 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
118
153
|
}
|
|
119
154
|
});
|
|
120
155
|
}
|
|
121
|
-
|
|
156
|
+
if (hiddenFields.value && hiddenFields.value.length > 0) {
|
|
157
|
+
hiddenFields.value.forEach((field) => {
|
|
158
|
+
if (field.fieldName) {
|
|
159
|
+
data[field.fieldName] = field.value !== void 0 ? field.value : null;
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
formData.value = { ...data, ...props.modelValue };
|
|
122
164
|
formRules.value = rules;
|
|
123
165
|
};
|
|
124
166
|
const loadFieldDataSources = async () => {
|
|
125
167
|
var _a, _b;
|
|
126
|
-
const fields =
|
|
168
|
+
const fields = fieldsData.value || [];
|
|
127
169
|
const fieldDataSources = /* @__PURE__ */ new Set();
|
|
128
170
|
const dictionaryKeys = /* @__PURE__ */ new Set();
|
|
129
|
-
for (const
|
|
171
|
+
for (const component of fields) {
|
|
130
172
|
const fieldType = component.fieldType;
|
|
131
173
|
if ((fieldType === "select" || fieldType === "multipleSelection" || fieldType === "radio" || fieldType === "checkbox") && component.optionConfig) {
|
|
132
174
|
const { optionSource, dataSourceValue, dictionaryValue } = component.optionConfig;
|
|
@@ -186,8 +228,8 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
186
228
|
mergeOptionsToFields();
|
|
187
229
|
};
|
|
188
230
|
const mergeOptionsToFields = () => {
|
|
189
|
-
if (
|
|
190
|
-
|
|
231
|
+
if (fieldsData.value) {
|
|
232
|
+
fieldsData.value.forEach((component) => {
|
|
191
233
|
if (!component.optionConfig) return;
|
|
192
234
|
const {
|
|
193
235
|
optionSource,
|
|
@@ -226,7 +268,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
226
268
|
getEventHandlers: createEventHandlers,
|
|
227
269
|
handleEvent: createHandleEvent
|
|
228
270
|
} = useEventFlow({
|
|
229
|
-
fields: fieldsData.value,
|
|
271
|
+
fields: [...fieldsData.value, ...hiddenFields.value],
|
|
230
272
|
ctx,
|
|
231
273
|
dataSources: localConfig.value.dataSources,
|
|
232
274
|
components: {
|
|
@@ -237,7 +279,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
237
279
|
const getEventHandlers = (row, item, eventConfig) => {
|
|
238
280
|
return createEventHandlers(item, row, eventConfig);
|
|
239
281
|
};
|
|
240
|
-
|
|
282
|
+
fieldsData.value.forEach((component) => {
|
|
241
283
|
if (component.fieldName) {
|
|
242
284
|
component.eventHandlers = getEventHandlers(
|
|
243
285
|
formData.value,
|
|
@@ -247,14 +289,132 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
247
289
|
}
|
|
248
290
|
});
|
|
249
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
|
+
});
|
|
250
411
|
const getFieldError = (fieldName) => {
|
|
251
412
|
var _a;
|
|
252
413
|
if (!formRef.value) return "";
|
|
253
414
|
const field = (_a = formRef.value.fields) == null ? void 0 : _a.find((f) => f.prop === fieldName);
|
|
254
415
|
return (field == null ? void 0 : field.validateMessage) || "";
|
|
255
416
|
};
|
|
256
|
-
const handleFieldChange = (
|
|
257
|
-
emit("change", { field: field.fieldName, value });
|
|
417
|
+
const handleFieldChange = (config, value) => {
|
|
258
418
|
};
|
|
259
419
|
const handleCustomButtonClick = (button) => {
|
|
260
420
|
var _a;
|
|
@@ -272,40 +432,80 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
272
432
|
var _a, _b;
|
|
273
433
|
(_a = formRef.value) == null ? void 0 : _a.clearValidate();
|
|
274
434
|
(_b = formRef.value) == null ? void 0 : _b.resetFields();
|
|
275
|
-
|
|
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"
|
|
276
450
|
};
|
|
277
451
|
const getFormData = () => {
|
|
278
452
|
const result = { ...formData.value };
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
result[fieldName] = value.join("|");
|
|
287
|
-
}
|
|
453
|
+
const processField = (field) => {
|
|
454
|
+
const fieldName = field.fieldName;
|
|
455
|
+
const fieldType = field.fieldType;
|
|
456
|
+
const value = result[fieldName];
|
|
457
|
+
if (fieldName && (fieldType === "checkbox" || fieldType === "multipleSelection")) {
|
|
458
|
+
if (Array.isArray(value)) {
|
|
459
|
+
result[fieldName] = value.join("|");
|
|
288
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);
|
|
465
|
+
}
|
|
466
|
+
};
|
|
467
|
+
if (fieldsData.value) {
|
|
468
|
+
fieldsData.value.forEach((component) => {
|
|
469
|
+
processField(component);
|
|
470
|
+
});
|
|
471
|
+
}
|
|
472
|
+
if (hiddenFields.value && hiddenFields.value.length > 0) {
|
|
473
|
+
hiddenFields.value.forEach((field) => {
|
|
474
|
+
processField(field);
|
|
289
475
|
});
|
|
290
476
|
}
|
|
291
477
|
return result;
|
|
292
478
|
};
|
|
293
479
|
const setFormData = (data) => {
|
|
294
480
|
const processedData = { ...data };
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
processedData[fieldName] = [];
|
|
307
|
-
}
|
|
481
|
+
const processField = (field) => {
|
|
482
|
+
const fieldName = field.fieldName;
|
|
483
|
+
const fieldType = field.fieldType;
|
|
484
|
+
const value = processedData[fieldName];
|
|
485
|
+
if (fieldName && (fieldType === "checkbox" || fieldType === "multipleSelection")) {
|
|
486
|
+
if (typeof value === "string" && value.includes("|")) {
|
|
487
|
+
processedData[fieldName] = value.split("|");
|
|
488
|
+
} else if (typeof value === "string" && value !== "") {
|
|
489
|
+
processedData[fieldName] = [value];
|
|
490
|
+
} else if (value === "" || value === null || value === void 0) {
|
|
491
|
+
processedData[fieldName] = [];
|
|
308
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
|
+
);
|
|
499
|
+
}
|
|
500
|
+
};
|
|
501
|
+
if (fieldsData.value) {
|
|
502
|
+
fieldsData.value.forEach((component) => {
|
|
503
|
+
processField(component);
|
|
504
|
+
});
|
|
505
|
+
}
|
|
506
|
+
if (hiddenFields.value && hiddenFields.value.length > 0) {
|
|
507
|
+
hiddenFields.value.forEach((field) => {
|
|
508
|
+
processField(field);
|
|
309
509
|
});
|
|
310
510
|
}
|
|
311
511
|
Object.assign(formData.value, processedData);
|
|
@@ -313,6 +513,17 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
313
513
|
onMounted(() => {
|
|
314
514
|
loadConfig();
|
|
315
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);
|
|
316
527
|
__expose({
|
|
317
528
|
validate,
|
|
318
529
|
resetFields,
|
|
@@ -328,7 +539,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
328
539
|
style: { "height": "100%" }
|
|
329
540
|
}, {
|
|
330
541
|
default: withCtx(() => [
|
|
331
|
-
!configLoading.value ? (openBlock(), createBlock(unref(header), {
|
|
542
|
+
!configLoading.value && !__props.isSubForm ? (openBlock(), createBlock(unref(header), {
|
|
332
543
|
key: 0,
|
|
333
544
|
pageHeaderConfig: localConfig.value.pageHeaderConfig
|
|
334
545
|
}, null, 8, ["pageHeaderConfig"])) : createCommentVNode("", true),
|
|
@@ -340,16 +551,17 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
340
551
|
model: formData.value,
|
|
341
552
|
rules: formRules.value,
|
|
342
553
|
"label-position": localConfig.value.labelPosition,
|
|
343
|
-
style: {
|
|
554
|
+
style: normalizeStyle({ padding: __props.isSubForm ? "0" : "18px" }),
|
|
344
555
|
"validate-on-rule-change": false
|
|
345
556
|
}, {
|
|
346
557
|
default: withCtx(() => [
|
|
347
558
|
!configLoading.value ? (openBlock(), createBlock(unref(De), {
|
|
348
559
|
key: 0,
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
"
|
|
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,
|
|
353
565
|
margin: [0, 0],
|
|
354
566
|
"col-num": localConfig.value.columns,
|
|
355
567
|
"is-draggable": false,
|
|
@@ -367,23 +579,33 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
367
579
|
}, null, 8, ["modelValue", "onUpdate:modelValue", "config", "localConfig", "error", "formRef"])
|
|
368
580
|
]),
|
|
369
581
|
_: 1
|
|
370
|
-
}, 8, ["layout", "row-height", "col-num"])) : createCommentVNode("", true)
|
|
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))
|
|
371
591
|
]),
|
|
372
592
|
_: 1
|
|
373
|
-
}, 8, ["model", "rules", "label-position"])
|
|
593
|
+
}, 8, ["model", "rules", "label-position", "style"])
|
|
374
594
|
]),
|
|
375
595
|
_: 1
|
|
376
596
|
}),
|
|
377
|
-
|
|
597
|
+
!__props.isSubForm ? (openBlock(), createBlock(unref(footer), {
|
|
598
|
+
key: 1,
|
|
378
599
|
pageFooterConfig: localConfig.value.pageFooterConfig,
|
|
379
600
|
onCustomButtonClick: handleCustomButtonClick
|
|
380
|
-
}, null, 8, ["pageFooterConfig"])
|
|
601
|
+
}, null, 8, ["pageFooterConfig"])) : createCommentVNode("", true)
|
|
381
602
|
]),
|
|
382
603
|
_: 1
|
|
383
604
|
});
|
|
384
605
|
};
|
|
385
606
|
}
|
|
386
607
|
});
|
|
608
|
+
const _Form = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-8a7ec746"]]);
|
|
387
609
|
export {
|
|
388
|
-
|
|
610
|
+
_Form as default
|
|
389
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
|