@fecp/designer 5.1.8 → 5.2.1
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/designer.css +2177 -1400
- package/es/node_modules/.pnpm/@element-plus_icons-vue@2.3.2_vue@3.5.13_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/index.mjs +16 -0
- package/es/packages/designer/src/api/index.mjs +16 -1
- package/es/packages/designer/src/components/FieldSetMapping.vue2.mjs +407 -0
- package/es/packages/designer/src/components/FormulaEditorInput.vue.mjs +1 -1
- package/es/packages/designer/src/components/JsonDataDrawer.vue.mjs +1 -2
- package/es/packages/designer/src/components/OnlyFLowConfigButton.vue2.mjs +118 -0
- package/es/packages/designer/src/components/TemplateDialog.vue.mjs +254 -0
- package/es/packages/designer/src/components/TemplateSelector.vue.mjs +22 -175
- package/es/packages/designer/src/components/TemplateSelector.vue2.mjs +1 -0
- package/es/packages/designer/src/layout/aside/HiddenFieldDialog.vue.mjs +9 -15
- package/es/packages/designer/src/layout/header/index.vue.mjs +195 -11
- package/es/packages/designer/src/packages/dialog/index.vue.mjs +2 -2
- package/es/packages/designer/src/packages/dialogGlobal/index.vue.mjs +1004 -0
- package/es/packages/designer/src/packages/dialogGlobal/useDialogGlobalDialog.mjs +16 -0
- package/es/packages/designer/src/packages/event/index.vue2.mjs +76 -16
- package/es/packages/designer/src/packages/event/onlyFlow.vue2.mjs +105 -0
- package/es/packages/designer/src/packages/event/useOnlyFlowDialog.mjs +1 -1
- package/es/packages/designer/src/packages/eventFlow/dialog/action/Dialog.vue.mjs +225 -24
- package/es/packages/designer/src/packages/eventFlow/dialog/action/config.mjs +5 -1
- package/es/packages/designer/src/packages/form/aside/index.mjs +24 -10
- package/es/packages/designer/src/packages/form/components/ApprovalHistory.vue.mjs +3 -3
- package/es/packages/designer/src/packages/form/components/ComponentPreviewWrapper.vue.mjs +152 -69
- package/es/packages/designer/src/packages/form/components/DefaultValueEditor.vue.mjs +88 -0
- package/es/packages/designer/src/packages/form/components/SubForm.vue.mjs +3 -3
- package/es/packages/designer/src/packages/form/components/SubTable.vue.mjs +3 -3
- package/es/packages/designer/src/packages/form/components/SubTitle.vue.mjs +27 -0
- package/es/packages/designer/src/packages/form/headerBtn.vue.mjs +33 -57
- package/es/packages/designer/src/packages/form/index.vue.mjs +20 -8
- package/es/packages/designer/src/packages/form/property/index.vue.mjs +5 -3
- package/es/packages/designer/src/packages/form/property/subTitleH2.vue.mjs +94 -0
- package/es/packages/designer/src/packages/form/property/widgets.vue.mjs +275 -94
- package/es/packages/designer/src/packages/formulaEditor/components/FieldVariable.vue2.mjs +84 -0
- package/es/packages/designer/src/packages/formulaEditor/components/FormulaList.vue2.mjs +130 -0
- package/es/packages/designer/src/packages/formulaEditor/index.vue2.mjs +230 -0
- package/es/packages/designer/src/packages/table/default.mjs +1 -0
- package/es/packages/designer/src/packages/table/headerBtn.vue.mjs +48 -17
- package/es/packages/designer/src/packages/table/index.vue.mjs +1 -3
- package/es/packages/designer/src/packages/table/property/filterWidgets.vue.mjs +34 -7
- package/es/packages/designer/src/packages/table/queryModule/DynamicModeConfig.vue.mjs +492 -0
- package/es/packages/designer/src/packages/table/queryModule/FixedModeConfig.vue.mjs +15 -2
- package/es/packages/designer/src/packages/table/queryModule/index.vue.mjs +463 -138
- package/es/packages/designer/src/packages/table/tableBtn.vue.mjs +33 -15
- package/es/packages/designer/src/utils/optionLoader.mjs +157 -0
- package/es/packages/designer/src/utils/simpleCache.mjs +80 -0
- package/es/packages/mobile/src/components/form/field/Field.vue.mjs +26 -1
- package/es/packages/vue/src/api/index.mjs +3 -0
- package/es/packages/vue/src/components/all.mjs +2 -2
- package/es/packages/vue/src/components/bus/approvalHistory/ApprovalHistory.vue.mjs +3 -3
- package/es/packages/vue/src/components/details/header/Header.vue.mjs +1 -1
- package/es/packages/vue/src/components/dialog/DialogRenderer.vue2.mjs +2 -2
- package/es/packages/vue/src/components/forms/cascader/Cascader.vue.mjs +3 -2
- package/es/packages/vue/src/components/forms/form/Form.vue.mjs +5 -3
- package/es/packages/vue/src/components/forms/formItem/FormItem.vue.mjs +14 -12
- package/es/packages/vue/src/components/forms/index.mjs +2 -2
- package/es/packages/vue/src/components/forms/subForm/SubForm.vue.mjs +2 -2
- package/es/packages/vue/src/components/forms/subTable/SubTable.vue.mjs +2 -2
- package/es/packages/vue/src/components/forms/subTitle/SubTitle.vue.mjs +27 -0
- package/es/packages/vue/src/components/forms/subTitle/index.mjs +7 -0
- package/es/packages/vue/src/components/forms/text/Text.vue.mjs +47 -4
- package/es/packages/vue/src/components/table/CustomButtons.vue.mjs +34 -5
- package/es/packages/vue/src/components/table/DynamicQuery.vue.mjs +425 -0
- package/es/packages/vue/src/components/table/Table.vue.mjs +55 -30
- package/es/packages/vue/src/components/table/TableFilter.vue.mjs +7 -25
- package/es/packages/vue/src/utils/common.mjs +27 -0
- package/es/packages/vue/src/utils/eventFlow/actionHandlers.mjs +20 -3
- package/lib/designer.css +2177 -1400
- package/lib/node_modules/.pnpm/@element-plus_icons-vue@2.3.2_vue@3.5.13_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/index.js +16 -0
- package/lib/packages/designer/src/api/index.js +15 -0
- package/lib/packages/designer/src/components/FieldSetMapping.vue2.js +407 -0
- package/lib/packages/designer/src/components/FormulaEditorInput.vue.js +1 -1
- package/lib/packages/designer/src/components/JsonDataDrawer.vue.js +1 -2
- package/lib/packages/designer/src/components/OnlyFLowConfigButton.vue2.js +118 -0
- package/lib/packages/designer/src/components/TemplateDialog.vue.js +254 -0
- package/lib/packages/designer/src/components/TemplateSelector.vue.js +21 -174
- package/lib/packages/designer/src/components/TemplateSelector.vue2.js +1 -0
- package/lib/packages/designer/src/layout/aside/HiddenFieldDialog.vue.js +9 -15
- package/lib/packages/designer/src/layout/header/index.vue.js +192 -8
- package/lib/packages/designer/src/packages/dialog/index.vue.js +2 -2
- package/lib/packages/designer/src/packages/dialogGlobal/index.vue.js +1004 -0
- package/lib/packages/designer/src/packages/dialogGlobal/useDialogGlobalDialog.js +16 -0
- package/lib/packages/designer/src/packages/event/index.vue2.js +75 -15
- package/lib/packages/designer/src/packages/event/onlyFlow.vue2.js +105 -0
- package/lib/packages/designer/src/packages/event/useOnlyFlowDialog.js +1 -1
- package/lib/packages/designer/src/packages/eventFlow/dialog/action/Dialog.vue.js +226 -25
- package/lib/packages/designer/src/packages/eventFlow/dialog/action/config.js +5 -1
- package/lib/packages/designer/src/packages/form/aside/index.js +24 -10
- package/lib/packages/designer/src/packages/form/components/ApprovalHistory.vue.js +3 -3
- package/lib/packages/designer/src/packages/form/components/ComponentPreviewWrapper.vue.js +160 -77
- package/lib/packages/designer/src/packages/form/components/DefaultValueEditor.vue.js +88 -0
- package/lib/packages/designer/src/packages/form/components/SubForm.vue.js +3 -3
- package/lib/packages/designer/src/packages/form/components/SubTable.vue.js +3 -3
- package/lib/packages/designer/src/packages/form/components/SubTitle.vue.js +27 -0
- package/lib/packages/designer/src/packages/form/headerBtn.vue.js +33 -57
- package/lib/packages/designer/src/packages/form/index.vue.js +21 -9
- package/lib/packages/designer/src/packages/form/property/index.vue.js +6 -4
- package/lib/packages/designer/src/packages/form/property/subTitleH2.vue.js +94 -0
- package/lib/packages/designer/src/packages/form/property/widgets.vue.js +271 -90
- package/lib/packages/designer/src/packages/formulaEditor/components/FieldVariable.vue2.js +84 -0
- package/lib/packages/designer/src/packages/formulaEditor/components/FormulaList.vue2.js +130 -0
- package/lib/packages/designer/src/packages/formulaEditor/index.vue2.js +230 -0
- package/lib/packages/designer/src/packages/table/default.js +1 -0
- package/lib/packages/designer/src/packages/table/headerBtn.vue.js +48 -17
- package/lib/packages/designer/src/packages/table/index.vue.js +1 -3
- package/lib/packages/designer/src/packages/table/property/filterWidgets.vue.js +33 -6
- package/lib/packages/designer/src/packages/table/queryModule/DynamicModeConfig.vue.js +492 -0
- package/lib/packages/designer/src/packages/table/queryModule/FixedModeConfig.vue.js +15 -2
- package/lib/packages/designer/src/packages/table/queryModule/index.vue.js +463 -138
- package/lib/packages/designer/src/packages/table/tableBtn.vue.js +34 -16
- package/lib/packages/designer/src/utils/optionLoader.js +157 -0
- package/lib/packages/designer/src/utils/simpleCache.js +80 -0
- package/lib/packages/mobile/src/components/form/field/Field.vue.js +26 -1
- package/lib/packages/vue/src/api/index.js +3 -0
- package/lib/packages/vue/src/components/all.js +2 -2
- package/lib/packages/vue/src/components/bus/approvalHistory/ApprovalHistory.vue.js +3 -3
- package/lib/packages/vue/src/components/details/header/Header.vue.js +1 -1
- package/lib/packages/vue/src/components/dialog/DialogRenderer.vue2.js +2 -2
- package/lib/packages/vue/src/components/forms/cascader/Cascader.vue.js +3 -2
- package/lib/packages/vue/src/components/forms/form/Form.vue.js +5 -3
- package/lib/packages/vue/src/components/forms/formItem/FormItem.vue.js +13 -11
- package/lib/packages/vue/src/components/forms/index.js +2 -2
- package/lib/packages/vue/src/components/forms/subForm/SubForm.vue.js +2 -2
- package/lib/packages/vue/src/components/forms/subTable/SubTable.vue.js +2 -2
- package/lib/packages/vue/src/components/forms/subTitle/SubTitle.vue.js +27 -0
- package/lib/packages/vue/src/components/forms/subTitle/index.js +7 -0
- package/lib/packages/vue/src/components/forms/text/Text.vue.js +49 -6
- package/lib/packages/vue/src/components/table/CustomButtons.vue.js +43 -14
- package/lib/packages/vue/src/components/table/DynamicQuery.vue.js +425 -0
- package/lib/packages/vue/src/components/table/Table.vue.js +54 -29
- package/lib/packages/vue/src/components/table/TableFilter.vue.js +7 -25
- package/lib/packages/vue/src/utils/common.js +27 -0
- package/lib/packages/vue/src/utils/eventFlow/actionHandlers.js +30 -13
- package/package.json +1 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const vue = require("vue");
|
|
4
|
+
;/* empty css */
|
|
5
|
+
const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.js");
|
|
6
|
+
const _hoisted_1 = { class: "fec-sub-title" };
|
|
7
|
+
const _hoisted_2 = { class: "fec-label-title" };
|
|
8
|
+
const _sfc_main = {
|
|
9
|
+
__name: "SubTitle",
|
|
10
|
+
props: {
|
|
11
|
+
config: {
|
|
12
|
+
type: Object,
|
|
13
|
+
required: true
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
setup(__props) {
|
|
17
|
+
return (_ctx, _cache) => {
|
|
18
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
|
19
|
+
_cache[0] || (_cache[0] = vue.createElementVNode("div", { class: "fec-label-line" }, null, -1)),
|
|
20
|
+
vue.createElementVNode("div", _hoisted_2, vue.toDisplayString(__props.config.label), 1),
|
|
21
|
+
_cache[1] || (_cache[1] = vue.createElementVNode("div", { class: "fec-label-line-query" }, null, -1))
|
|
22
|
+
]);
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
const _SubTitle = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-733e1815"]]);
|
|
27
|
+
exports.default = _SubTitle;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const SubTitle$1 = require("./SubTitle.vue.js");
|
|
4
|
+
const install = require("../../../utils/install.js");
|
|
5
|
+
const SubTitle = install.default.withInstall("SubTitle", SubTitle$1.default);
|
|
6
|
+
exports.SubTitle = SubTitle;
|
|
7
|
+
exports.default = SubTitle;
|
|
@@ -7,10 +7,12 @@ const vue = require("vue");
|
|
|
7
7
|
;/* empty css */
|
|
8
8
|
;/* empty css */
|
|
9
9
|
;/* empty css */
|
|
10
|
-
const index$
|
|
10
|
+
const index$3 = require("../../dialog/index.js");
|
|
11
|
+
const index$2 = require("../../../api/index.js");
|
|
11
12
|
;/* empty css */
|
|
12
13
|
;/* empty css */
|
|
13
14
|
const eventFlowHandler = require("../../../utils/eventFlow/eventFlowHandler.js");
|
|
15
|
+
const getInstance = require("../../../utils/getInstance.js");
|
|
14
16
|
;/* empty css */
|
|
15
17
|
const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.js");
|
|
16
18
|
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/input/index.js");
|
|
@@ -90,10 +92,35 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
90
92
|
formMode: {
|
|
91
93
|
type: String,
|
|
92
94
|
default: ""
|
|
95
|
+
},
|
|
96
|
+
dialogSource: {
|
|
97
|
+
type: String,
|
|
98
|
+
default: ""
|
|
99
|
+
},
|
|
100
|
+
selectionMode: {
|
|
101
|
+
type: String,
|
|
102
|
+
default: ""
|
|
103
|
+
},
|
|
104
|
+
displayFormatText: {
|
|
105
|
+
type: String,
|
|
106
|
+
default: ""
|
|
107
|
+
},
|
|
108
|
+
displayFormat: {
|
|
109
|
+
type: Object,
|
|
110
|
+
default: {}
|
|
111
|
+
},
|
|
112
|
+
fieldMapping: {
|
|
113
|
+
type: Array,
|
|
114
|
+
default: []
|
|
115
|
+
},
|
|
116
|
+
callbackEventConfig: {
|
|
117
|
+
type: Object,
|
|
118
|
+
default: {}
|
|
93
119
|
}
|
|
94
120
|
},
|
|
95
121
|
emits: ["update:modelValue", "change"],
|
|
96
122
|
setup(__props, { emit: __emit }) {
|
|
123
|
+
const ctx = getInstance.getCurrentVueInstance();
|
|
97
124
|
const props = __props;
|
|
98
125
|
const emit = __emit;
|
|
99
126
|
const inputValue = vue.computed({
|
|
@@ -128,11 +155,27 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
128
155
|
}
|
|
129
156
|
});
|
|
130
157
|
const getEventHandlers = (row, item, eventConfig) => createEventHandlers(item, row, eventConfig);
|
|
131
|
-
function openSuffixDialog() {
|
|
132
|
-
|
|
133
|
-
|
|
158
|
+
async function openSuffixDialog() {
|
|
159
|
+
let dialog = null;
|
|
160
|
+
if (props.dialogSource == "global") {
|
|
161
|
+
const data = await index$2.default.getTemplateDialogById(
|
|
162
|
+
ctx.$http,
|
|
163
|
+
props.suffixDialogId
|
|
164
|
+
);
|
|
165
|
+
dialog = JSON.parse(data.config);
|
|
166
|
+
dialog.id = data.id;
|
|
167
|
+
dialog.name = data.name;
|
|
168
|
+
dialog.selectionMode = props.selectionMode;
|
|
169
|
+
dialog.displayFormat = props.displayFormat;
|
|
170
|
+
dialog.displayFormatText = props.displayFormatText;
|
|
171
|
+
dialog.fieldMapping = props.fieldMapping;
|
|
172
|
+
dialog.callbackEventConfig = props.callbackEventConfig;
|
|
173
|
+
} else if (props.dialogSource == "custom") {
|
|
174
|
+
const dialogsConfig = localConfig.value.dialogs || [];
|
|
175
|
+
dialog = dialogsConfig.find((item) => item.id == props.suffixDialogId);
|
|
176
|
+
}
|
|
134
177
|
if (dialog) {
|
|
135
|
-
index$
|
|
178
|
+
index$3.openDialog(
|
|
136
179
|
props.config.fieldName,
|
|
137
180
|
dialog,
|
|
138
181
|
instance,
|
|
@@ -208,5 +251,5 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
208
251
|
};
|
|
209
252
|
}
|
|
210
253
|
});
|
|
211
|
-
const _Text = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-
|
|
254
|
+
const _Text = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-b0c0d80f"]]);
|
|
212
255
|
exports.default = _Text;
|
|
@@ -4,12 +4,18 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
|
|
|
4
4
|
;/* empty css */
|
|
5
5
|
const vue = require("vue");
|
|
6
6
|
require("../../../../../node_modules/.pnpm/vxe-table@4.17.47_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/components.js");
|
|
7
|
-
const index$
|
|
7
|
+
const index$1 = require("../../../../../node_modules/.pnpm/@element-plus_icons-vue@2.3.2_vue@3.5.13_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/index.js");
|
|
8
|
+
const getInstance = require("../../utils/getInstance.js");
|
|
8
9
|
;/* empty css */
|
|
9
10
|
const _pluginVue_exportHelper = require("../../../../../_virtual/_plugin-vue_export-helper.js");
|
|
10
|
-
const index = require("../../../../../node_modules/.pnpm/
|
|
11
|
-
const index$
|
|
11
|
+
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/icon/index.js");
|
|
12
|
+
const index$2 = require("../../../../../node_modules/.pnpm/vxe-table@4.17.47_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/toolbar/index.js");
|
|
13
|
+
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/button/index.js");
|
|
12
14
|
const _hoisted_1 = { class: "custom-buttons" };
|
|
15
|
+
const _hoisted_2 = {
|
|
16
|
+
key: 1,
|
|
17
|
+
class: "template-name"
|
|
18
|
+
};
|
|
13
19
|
const _sfc_main = {
|
|
14
20
|
__name: "CustomButtons",
|
|
15
21
|
props: {
|
|
@@ -19,10 +25,15 @@ const _sfc_main = {
|
|
|
19
25
|
left: [],
|
|
20
26
|
right: []
|
|
21
27
|
})
|
|
28
|
+
},
|
|
29
|
+
localConfig: {
|
|
30
|
+
type: Object,
|
|
31
|
+
default: {}
|
|
22
32
|
}
|
|
23
33
|
},
|
|
24
34
|
emits: ["click"],
|
|
25
35
|
setup(__props, { emit: __emit }) {
|
|
36
|
+
const ctx = getInstance.getCurrentVueInstance();
|
|
26
37
|
const props = __props;
|
|
27
38
|
const emit = __emit;
|
|
28
39
|
const leftButtons = vue.computed(() => {
|
|
@@ -36,13 +47,13 @@ const _sfc_main = {
|
|
|
36
47
|
});
|
|
37
48
|
const getBtnIcon = (btnType) => {
|
|
38
49
|
const iconMap = {
|
|
39
|
-
refresh: index$
|
|
40
|
-
export: index$
|
|
41
|
-
personalize: index$
|
|
42
|
-
add: index$
|
|
43
|
-
delete: index$
|
|
44
|
-
edit: index$
|
|
45
|
-
search: index$
|
|
50
|
+
refresh: index$1.Refresh,
|
|
51
|
+
export: index$1.Download,
|
|
52
|
+
personalize: index$1.Setting,
|
|
53
|
+
add: index$1.Plus,
|
|
54
|
+
delete: index$1.Delete,
|
|
55
|
+
edit: index$1.Edit,
|
|
56
|
+
search: index$1.Search
|
|
46
57
|
};
|
|
47
58
|
return iconMap[btnType] || null;
|
|
48
59
|
};
|
|
@@ -59,12 +70,30 @@ const _sfc_main = {
|
|
|
59
70
|
type: "custom"
|
|
60
71
|
});
|
|
61
72
|
};
|
|
73
|
+
function goBack() {
|
|
74
|
+
ctx.$router.go(-1);
|
|
75
|
+
}
|
|
62
76
|
return (_ctx, _cache) => {
|
|
63
|
-
const
|
|
77
|
+
const _component_el_icon = index.ElIcon;
|
|
78
|
+
const _component_el_button = index$3.ElButton;
|
|
64
79
|
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
|
65
|
-
|
|
80
|
+
__props.localConfig.showReturn ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
66
81
|
key: 0,
|
|
67
|
-
|
|
82
|
+
class: "back-icon",
|
|
83
|
+
onClick: goBack
|
|
84
|
+
}, [
|
|
85
|
+
vue.createVNode(_component_el_icon, null, {
|
|
86
|
+
default: vue.withCtx(() => [
|
|
87
|
+
vue.createVNode(vue.unref(index$1.ArrowLeftBold))
|
|
88
|
+
]),
|
|
89
|
+
_: 1
|
|
90
|
+
})
|
|
91
|
+
])) : vue.createCommentVNode("", true),
|
|
92
|
+
__props.localConfig.showTitle ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, vue.toDisplayString(__props.localConfig.templateName), 1)) : vue.createCommentVNode("", true),
|
|
93
|
+
hasButtons.value ? (vue.openBlock(), vue.createBlock(vue.unref(index$2.VxeToolbar), {
|
|
94
|
+
key: 2,
|
|
95
|
+
ref: "toolbarRef",
|
|
96
|
+
style: { "flex": "1" }
|
|
68
97
|
}, {
|
|
69
98
|
buttons: vue.withCtx(() => [
|
|
70
99
|
leftButtons.value.length ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(leftButtons.value, (btn) => {
|
|
@@ -102,5 +131,5 @@ const _sfc_main = {
|
|
|
102
131
|
};
|
|
103
132
|
}
|
|
104
133
|
};
|
|
105
|
-
const CustomButtons = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-
|
|
134
|
+
const CustomButtons = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-afddc440"]]);
|
|
106
135
|
exports.default = CustomButtons;
|
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
;/* empty css */
|
|
4
|
+
;/* empty css */
|
|
5
|
+
;/* empty css */
|
|
6
|
+
;/* empty css */
|
|
7
|
+
;/* empty css */
|
|
8
|
+
;/* empty css */
|
|
9
|
+
require("../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/theme-chalk/el-date-picker.css.js");
|
|
10
|
+
;/* empty css */
|
|
11
|
+
;/* empty css */
|
|
12
|
+
;/* empty css */
|
|
13
|
+
;/* empty css */
|
|
14
|
+
;/* empty css */
|
|
15
|
+
;/* empty css */
|
|
16
|
+
;/* empty css */
|
|
17
|
+
;/* empty css */
|
|
18
|
+
require("../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/theme-chalk/el-tab-pane.css.js");
|
|
19
|
+
const vue = require("vue");
|
|
20
|
+
const index$1 = require("../../../../../node_modules/.pnpm/@element-plus_icons-vue@2.3.2_vue@3.5.13_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/index.js");
|
|
21
|
+
require("../../../../../node_modules/.pnpm/vxe-table@4.17.47_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/components.js");
|
|
22
|
+
const index$f = require("../forms/text/index.js");
|
|
23
|
+
const index$b = require("../forms/select/index.js");
|
|
24
|
+
const index$c = require("../forms/multipleSelection/index.js");
|
|
25
|
+
const index$e = require("../forms/date/index.js");
|
|
26
|
+
const index$d = require("../forms/number/index.js");
|
|
27
|
+
const common = require("../../utils/common.js");
|
|
28
|
+
;/* empty css */
|
|
29
|
+
const _pluginVue_exportHelper = require("../../../../../_virtual/_plugin-vue_export-helper.js");
|
|
30
|
+
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/icon/index.js");
|
|
31
|
+
const index$2 = require("../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/tabs/index.js");
|
|
32
|
+
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/input/index.js");
|
|
33
|
+
const index$4 = require("../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/button/index.js");
|
|
34
|
+
const index$6 = require("../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/collapse-transition/index.js");
|
|
35
|
+
const index$7 = 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");
|
|
36
|
+
const index$8 = require("../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/checkbox/index.js");
|
|
37
|
+
const index$9 = require("../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/date-picker/index.js");
|
|
38
|
+
const index$a = require("../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/input-number/index.js");
|
|
39
|
+
const index$5 = require("../../../../../node_modules/.pnpm/vxe-table@4.17.47_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/toolbar/index.js");
|
|
40
|
+
const _hoisted_1 = { class: "dynamic-mode-config" };
|
|
41
|
+
const _hoisted_2 = { class: "dynamic-row" };
|
|
42
|
+
const _hoisted_3 = {
|
|
43
|
+
key: 0,
|
|
44
|
+
class: "back-icon"
|
|
45
|
+
};
|
|
46
|
+
const _hoisted_4 = {
|
|
47
|
+
key: 1,
|
|
48
|
+
class: "template-name"
|
|
49
|
+
};
|
|
50
|
+
const _hoisted_5 = {
|
|
51
|
+
key: 2,
|
|
52
|
+
class: "tab-display-section"
|
|
53
|
+
};
|
|
54
|
+
const _hoisted_6 = { class: "search-display-section" };
|
|
55
|
+
const _hoisted_7 = { class: "search-input-group" };
|
|
56
|
+
const _hoisted_8 = { class: "expand-filter-section" };
|
|
57
|
+
const _hoisted_9 = { class: "filter-form-section" };
|
|
58
|
+
const _hoisted_10 = { class: "form-items-draggable" };
|
|
59
|
+
const _hoisted_11 = {
|
|
60
|
+
key: 1,
|
|
61
|
+
style: { "display": "flex", "align-items": "center", "gap": "8px", "width": "100%" }
|
|
62
|
+
};
|
|
63
|
+
const _sfc_main = {
|
|
64
|
+
__name: "DynamicQuery",
|
|
65
|
+
props: {
|
|
66
|
+
localConfig: {
|
|
67
|
+
type: Object,
|
|
68
|
+
default: () => ({})
|
|
69
|
+
},
|
|
70
|
+
fieldsData: {
|
|
71
|
+
type: Array,
|
|
72
|
+
default: () => []
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
emits: ["click", "search"],
|
|
76
|
+
setup(__props, { emit: __emit }) {
|
|
77
|
+
const props = __props;
|
|
78
|
+
const emit = __emit;
|
|
79
|
+
const queryConfig = vue.computed(() => {
|
|
80
|
+
var _a;
|
|
81
|
+
return ((_a = props.localConfig) == null ? void 0 : _a.queryConfig) || {};
|
|
82
|
+
});
|
|
83
|
+
const dynamicConfig = vue.computed(() => {
|
|
84
|
+
var _a;
|
|
85
|
+
return ((_a = queryConfig.value) == null ? void 0 : _a.dynamicConfig) || {};
|
|
86
|
+
});
|
|
87
|
+
const activeTab = vue.ref("");
|
|
88
|
+
const tabConfigs = vue.computed(() => {
|
|
89
|
+
var _a, _b, _c, _d;
|
|
90
|
+
activeTab.value = ((_b = (_a = dynamicConfig.value) == null ? void 0 : _a.tabConfigs) == null ? void 0 : _b.length) > 0 ? (_c = dynamicConfig.value) == null ? void 0 : _c.tabActive : "";
|
|
91
|
+
return ((_d = dynamicConfig.value) == null ? void 0 : _d.tabConfigs) || [];
|
|
92
|
+
});
|
|
93
|
+
const rightButtons = vue.computed(() => {
|
|
94
|
+
var _a;
|
|
95
|
+
return ((_a = props.localConfig) == null ? void 0 : _a.customBtns.right) || [];
|
|
96
|
+
});
|
|
97
|
+
const getBtnIcon = (btnType) => {
|
|
98
|
+
const iconMap = {
|
|
99
|
+
refresh: index$1.Refresh,
|
|
100
|
+
export: index$1.Download,
|
|
101
|
+
personalize: index$1.Setting,
|
|
102
|
+
add: index$1.Plus,
|
|
103
|
+
delete: index$1.Delete,
|
|
104
|
+
edit: index$1.Edit,
|
|
105
|
+
search: index$1.Search
|
|
106
|
+
};
|
|
107
|
+
return iconMap[btnType] || null;
|
|
108
|
+
};
|
|
109
|
+
const getBtnType = (btn) => {
|
|
110
|
+
if (btn.btnType === "custom") {
|
|
111
|
+
return "primary";
|
|
112
|
+
}
|
|
113
|
+
return btn.btnStyle || "default";
|
|
114
|
+
};
|
|
115
|
+
const handleClick = (btn, event) => {
|
|
116
|
+
emit("click", {
|
|
117
|
+
btn,
|
|
118
|
+
event,
|
|
119
|
+
type: "custom"
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
const getFieldConfig = (fieldId) => {
|
|
123
|
+
return props.fieldsData.find((field) => field.id === fieldId) || {};
|
|
124
|
+
};
|
|
125
|
+
const filterFields = vue.computed(() => {
|
|
126
|
+
return props.localConfig.queryConfig.filterFields.map((filterField) => {
|
|
127
|
+
const fieldConfig = getFieldConfig(filterField.fieldId);
|
|
128
|
+
return {
|
|
129
|
+
...filterField,
|
|
130
|
+
...fieldConfig
|
|
131
|
+
};
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
const filterValues = vue.ref({});
|
|
135
|
+
const searchInputValue = vue.ref("");
|
|
136
|
+
const showAdvancedFilter = vue.ref(false);
|
|
137
|
+
const toggleAdvancedFilter = () => {
|
|
138
|
+
const willShow = !showAdvancedFilter.value;
|
|
139
|
+
showAdvancedFilter.value = willShow;
|
|
140
|
+
};
|
|
141
|
+
const handleSearch = () => {
|
|
142
|
+
const filters = common.handleSearchData(filterValues.value, filterFields.value);
|
|
143
|
+
const filterData = {
|
|
144
|
+
...currentTab.value,
|
|
145
|
+
dynamicFilter: searchInputValue.value,
|
|
146
|
+
...filters
|
|
147
|
+
};
|
|
148
|
+
console.log("🚀 ~ 开始执行查询", filterData);
|
|
149
|
+
emit("search", {
|
|
150
|
+
filters: JSON.stringify(filterData)
|
|
151
|
+
});
|
|
152
|
+
};
|
|
153
|
+
const currentTab = vue.ref({});
|
|
154
|
+
vue.watch(
|
|
155
|
+
activeTab,
|
|
156
|
+
(newVal, oldVal) => {
|
|
157
|
+
console.log("🚀 ~ Tab切换:", tabConfigs.value, "->", newVal);
|
|
158
|
+
const tab = tabConfigs.value.find((item) => item.id == newVal);
|
|
159
|
+
if (tab) {
|
|
160
|
+
currentTab.value[tab.fieldName] = tab.fixedValue;
|
|
161
|
+
handleSearch();
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
immediate: true
|
|
166
|
+
}
|
|
167
|
+
);
|
|
168
|
+
const onSearchInputKeyup = (event) => {
|
|
169
|
+
if (event.key === "Enter") {
|
|
170
|
+
console.log("🚀 ~ 搜索输入框回车");
|
|
171
|
+
handleSearch();
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
const debounce = (fn, delay = 500) => {
|
|
175
|
+
let timer = null;
|
|
176
|
+
return (...args) => {
|
|
177
|
+
if (timer) clearTimeout(timer);
|
|
178
|
+
timer = setTimeout(() => {
|
|
179
|
+
fn(...args);
|
|
180
|
+
}, delay);
|
|
181
|
+
};
|
|
182
|
+
};
|
|
183
|
+
const debouncedSearch = debounce(handleSearch, 500);
|
|
184
|
+
vue.watch(
|
|
185
|
+
filterValues,
|
|
186
|
+
(newVal) => {
|
|
187
|
+
console.log("🚀 ~ 筛选值变化:", newVal);
|
|
188
|
+
debouncedSearch();
|
|
189
|
+
},
|
|
190
|
+
{ deep: true }
|
|
191
|
+
);
|
|
192
|
+
const getFilterComponent = (fieldType) => {
|
|
193
|
+
const componentMap = {
|
|
194
|
+
text: index$f.Text,
|
|
195
|
+
select: index$b.Select,
|
|
196
|
+
date: index$e.Date,
|
|
197
|
+
number: index$d.Number,
|
|
198
|
+
multipleSelection: index$c.MultipleSelection,
|
|
199
|
+
switch: index$b.Select
|
|
200
|
+
};
|
|
201
|
+
return componentMap[fieldType] || index$f.Text;
|
|
202
|
+
};
|
|
203
|
+
const getComponentConfig = (field) => {
|
|
204
|
+
return { ...field };
|
|
205
|
+
};
|
|
206
|
+
const getPlaceholder = (field, type = "default") => {
|
|
207
|
+
const placeholderMap = {
|
|
208
|
+
text: "请输入",
|
|
209
|
+
select: "请选择",
|
|
210
|
+
date: type === "start" ? "开始日期" : type === "end" ? "结束日期" : "请选择日期",
|
|
211
|
+
number: "请输入",
|
|
212
|
+
number_min: "最小值",
|
|
213
|
+
number_max: "最大值",
|
|
214
|
+
radio: "请选择",
|
|
215
|
+
checkbox: "请选择",
|
|
216
|
+
switch: "请选择"
|
|
217
|
+
};
|
|
218
|
+
if (field.fieldType === "date") {
|
|
219
|
+
return placeholderMap.date;
|
|
220
|
+
}
|
|
221
|
+
if (field.fieldType === "number") {
|
|
222
|
+
return type === "min" ? placeholderMap.number_min : type === "max" ? placeholderMap.number_max : placeholderMap.number;
|
|
223
|
+
}
|
|
224
|
+
return `${placeholderMap[field.fieldType] || "请输入"}${field.label || ""}`;
|
|
225
|
+
};
|
|
226
|
+
return (_ctx, _cache) => {
|
|
227
|
+
const _component_el_icon = index.ElIcon;
|
|
228
|
+
const _component_el_tab_pane = index$2.ElTabPane;
|
|
229
|
+
const _component_el_tabs = index$2.ElTabs;
|
|
230
|
+
const _component_el_button = index$4.ElButton;
|
|
231
|
+
const _component_el_input = index$3.ElInput;
|
|
232
|
+
const _component_el_checkbox_button = index$8.ElCheckboxButton;
|
|
233
|
+
const _component_el_checkbox_group = index$8.ElCheckboxGroup;
|
|
234
|
+
const _component_el_date_picker = index$9.ElDatePicker;
|
|
235
|
+
const _component_el_input_number = index$a.ElInputNumber;
|
|
236
|
+
const _component_el_form_item = index$7.ElFormItem;
|
|
237
|
+
const _component_el_form = index$7.ElForm;
|
|
238
|
+
const _component_el_collapse_transition = index$6.ElCollapseTransition;
|
|
239
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
|
240
|
+
vue.createElementVNode("div", _hoisted_2, [
|
|
241
|
+
__props.localConfig.showReturn ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
|
|
242
|
+
vue.createVNode(_component_el_icon, null, {
|
|
243
|
+
default: vue.withCtx(() => [
|
|
244
|
+
vue.createVNode(vue.unref(index$1.ArrowLeftBold))
|
|
245
|
+
]),
|
|
246
|
+
_: 1
|
|
247
|
+
})
|
|
248
|
+
])) : vue.createCommentVNode("", true),
|
|
249
|
+
__props.localConfig.showTitle ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, vue.toDisplayString(__props.localConfig.templateName), 1)) : vue.createCommentVNode("", true),
|
|
250
|
+
tabConfigs.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5, [
|
|
251
|
+
vue.createVNode(_component_el_tabs, {
|
|
252
|
+
modelValue: activeTab.value,
|
|
253
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => activeTab.value = $event),
|
|
254
|
+
class: "dynamic-tabs"
|
|
255
|
+
}, {
|
|
256
|
+
default: vue.withCtx(() => [
|
|
257
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(tabConfigs.value, (tab) => {
|
|
258
|
+
return vue.openBlock(), vue.createBlock(_component_el_tab_pane, {
|
|
259
|
+
key: tab.id,
|
|
260
|
+
label: tab.label,
|
|
261
|
+
name: tab.id
|
|
262
|
+
}, null, 8, ["label", "name"]);
|
|
263
|
+
}), 128))
|
|
264
|
+
]),
|
|
265
|
+
_: 1
|
|
266
|
+
}, 8, ["modelValue"])
|
|
267
|
+
])) : vue.createCommentVNode("", true),
|
|
268
|
+
vue.createElementVNode("div", _hoisted_6, [
|
|
269
|
+
vue.createElementVNode("div", _hoisted_7, [
|
|
270
|
+
vue.createVNode(_component_el_input, {
|
|
271
|
+
modelValue: searchInputValue.value,
|
|
272
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => searchInputValue.value = $event),
|
|
273
|
+
placeholder: "请输入关键词搜索...",
|
|
274
|
+
class: "search-input",
|
|
275
|
+
"prefix-icon": vue.unref(index$1.Search),
|
|
276
|
+
onKeyup: onSearchInputKeyup
|
|
277
|
+
}, vue.createSlots({ _: 2 }, [
|
|
278
|
+
dynamicConfig.value.advancedSearch ? {
|
|
279
|
+
name: "append",
|
|
280
|
+
fn: vue.withCtx(() => [
|
|
281
|
+
vue.createVNode(_component_el_button, {
|
|
282
|
+
type: "primary",
|
|
283
|
+
onClick: toggleAdvancedFilter
|
|
284
|
+
}, {
|
|
285
|
+
default: vue.withCtx(() => [
|
|
286
|
+
vue.createTextVNode(vue.toDisplayString(showAdvancedFilter.value ? "隐藏高级搜索" : "高级搜索"), 1)
|
|
287
|
+
]),
|
|
288
|
+
_: 1
|
|
289
|
+
})
|
|
290
|
+
]),
|
|
291
|
+
key: "0"
|
|
292
|
+
} : void 0
|
|
293
|
+
]), 1032, ["modelValue", "prefix-icon"])
|
|
294
|
+
]),
|
|
295
|
+
rightButtons.value.length > 0 ? (vue.openBlock(), vue.createBlock(vue.unref(index$5.VxeToolbar), {
|
|
296
|
+
key: 0,
|
|
297
|
+
ref: "toolbarRef"
|
|
298
|
+
}, {
|
|
299
|
+
tools: vue.withCtx(() => [
|
|
300
|
+
rightButtons.value.length ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(rightButtons.value, (btn) => {
|
|
301
|
+
return vue.openBlock(), vue.createBlock(_component_el_button, {
|
|
302
|
+
key: btn.id,
|
|
303
|
+
type: getBtnType(btn),
|
|
304
|
+
icon: getBtnIcon(btn.btnType),
|
|
305
|
+
onClick: ($event) => handleClick(btn, $event)
|
|
306
|
+
}, {
|
|
307
|
+
default: vue.withCtx(() => [
|
|
308
|
+
vue.createTextVNode(vue.toDisplayString(btn.label), 1)
|
|
309
|
+
]),
|
|
310
|
+
_: 2
|
|
311
|
+
}, 1032, ["type", "icon", "onClick"]);
|
|
312
|
+
}), 128)) : vue.createCommentVNode("", true)
|
|
313
|
+
]),
|
|
314
|
+
_: 1
|
|
315
|
+
}, 512)) : vue.createCommentVNode("", true)
|
|
316
|
+
])
|
|
317
|
+
]),
|
|
318
|
+
vue.createVNode(_component_el_collapse_transition, null, {
|
|
319
|
+
default: vue.withCtx(() => [
|
|
320
|
+
vue.withDirectives(vue.createElementVNode("div", _hoisted_8, [
|
|
321
|
+
vue.createElementVNode("div", _hoisted_9, [
|
|
322
|
+
vue.createVNode(_component_el_form, {
|
|
323
|
+
ref: "formRef",
|
|
324
|
+
model: filterValues.value,
|
|
325
|
+
class: "filter-form",
|
|
326
|
+
"label-width": "100px",
|
|
327
|
+
inline: ""
|
|
328
|
+
}, {
|
|
329
|
+
default: vue.withCtx(() => [
|
|
330
|
+
vue.createElementVNode("div", _hoisted_10, [
|
|
331
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(filterFields.value, (field) => {
|
|
332
|
+
return vue.openBlock(), vue.createElementBlock("div", {
|
|
333
|
+
key: field.id,
|
|
334
|
+
style: vue.normalizeStyle(field.isExclusiveRow ? "width:100%" : "")
|
|
335
|
+
}, [
|
|
336
|
+
vue.createVNode(_component_el_form_item, {
|
|
337
|
+
label: field.label
|
|
338
|
+
}, {
|
|
339
|
+
default: vue.withCtx(() => [
|
|
340
|
+
field.isButtonStyle ? (vue.openBlock(), vue.createBlock(_component_el_checkbox_group, {
|
|
341
|
+
key: 0,
|
|
342
|
+
modelValue: filterValues.value[field.fieldId],
|
|
343
|
+
"onUpdate:modelValue": ($event) => filterValues.value[field.fieldId] = $event
|
|
344
|
+
}, {
|
|
345
|
+
default: vue.withCtx(() => [
|
|
346
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(field.optionConfig.options, (option) => {
|
|
347
|
+
return vue.openBlock(), vue.createBlock(_component_el_checkbox_button, {
|
|
348
|
+
key: option.value,
|
|
349
|
+
value: option.value
|
|
350
|
+
}, {
|
|
351
|
+
default: vue.withCtx(() => [
|
|
352
|
+
vue.createTextVNode(vue.toDisplayString(option.label), 1)
|
|
353
|
+
]),
|
|
354
|
+
_: 2
|
|
355
|
+
}, 1032, ["value"]);
|
|
356
|
+
}), 128))
|
|
357
|
+
]),
|
|
358
|
+
_: 2
|
|
359
|
+
}, 1032, ["modelValue", "onUpdate:modelValue"])) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
|
|
360
|
+
field.fieldType == "date" ? (vue.openBlock(), vue.createBlock(_component_el_date_picker, {
|
|
361
|
+
key: 0,
|
|
362
|
+
modelValue: filterValues.value[field.fieldId],
|
|
363
|
+
"onUpdate:modelValue": ($event) => filterValues.value[field.fieldId] = $event,
|
|
364
|
+
type: "daterange",
|
|
365
|
+
"start-placeholder": getPlaceholder(field, "start"),
|
|
366
|
+
"end-placeholder": getPlaceholder(field, "end"),
|
|
367
|
+
format: "YYYY-MM-DD",
|
|
368
|
+
"value-format": "YYYYMMDD",
|
|
369
|
+
clearable: "",
|
|
370
|
+
style: { "width": "100%" }
|
|
371
|
+
}, null, 8, ["modelValue", "onUpdate:modelValue", "start-placeholder", "end-placeholder"])) : field.fieldType == "number" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11, [
|
|
372
|
+
vue.createVNode(_component_el_input_number, {
|
|
373
|
+
modelValue: filterValues.value[field.fieldId],
|
|
374
|
+
"onUpdate:modelValue": ($event) => filterValues.value[field.fieldId] = $event,
|
|
375
|
+
placeholder: getPlaceholder(field, "min"),
|
|
376
|
+
controls: false,
|
|
377
|
+
"controls-position": "right",
|
|
378
|
+
style: { "flex": "1" },
|
|
379
|
+
clearable: ""
|
|
380
|
+
}, null, 8, ["modelValue", "onUpdate:modelValue", "placeholder"]),
|
|
381
|
+
_cache[2] || (_cache[2] = vue.createElementVNode("span", null, "-", -1)),
|
|
382
|
+
vue.createVNode(_component_el_input_number, {
|
|
383
|
+
modelValue: filterValues.value[`${field.fieldId}_max`],
|
|
384
|
+
"onUpdate:modelValue": ($event) => filterValues.value[`${field.fieldId}_max`] = $event,
|
|
385
|
+
placeholder: getPlaceholder(field, "max"),
|
|
386
|
+
controls: false,
|
|
387
|
+
"controls-position": "right",
|
|
388
|
+
style: { "flex": "1" },
|
|
389
|
+
clearable: ""
|
|
390
|
+
}, null, 8, ["modelValue", "onUpdate:modelValue", "placeholder"])
|
|
391
|
+
])) : (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(getFilterComponent(field.fieldType)), vue.mergeProps({
|
|
392
|
+
key: 2,
|
|
393
|
+
modelValue: filterValues.value[field.fieldId],
|
|
394
|
+
"onUpdate:modelValue": ($event) => filterValues.value[field.fieldId] = $event,
|
|
395
|
+
config: { ...field, eventHandlers: {} },
|
|
396
|
+
ref_for: true
|
|
397
|
+
}, getComponentConfig(field), {
|
|
398
|
+
placeholder: getPlaceholder(field)
|
|
399
|
+
}), null, 16, ["modelValue", "onUpdate:modelValue", "config", "placeholder"]))
|
|
400
|
+
], 64))
|
|
401
|
+
]),
|
|
402
|
+
_: 2
|
|
403
|
+
}, 1032, ["label"])
|
|
404
|
+
], 4);
|
|
405
|
+
}), 128))
|
|
406
|
+
])
|
|
407
|
+
]),
|
|
408
|
+
_: 1
|
|
409
|
+
}, 8, ["model"])
|
|
410
|
+
])
|
|
411
|
+
], 512), [
|
|
412
|
+
[
|
|
413
|
+
vue.vShow,
|
|
414
|
+
showAdvancedFilter.value && dynamicConfig.value.advancedSearch && filterFields.value.length > 0
|
|
415
|
+
]
|
|
416
|
+
])
|
|
417
|
+
]),
|
|
418
|
+
_: 1
|
|
419
|
+
})
|
|
420
|
+
]);
|
|
421
|
+
};
|
|
422
|
+
}
|
|
423
|
+
};
|
|
424
|
+
const DynamicQuery = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-66d8d7cb"]]);
|
|
425
|
+
exports.default = DynamicQuery;
|