@fecp/designer 5.4.26 → 5.4.30
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/package.json.mjs +1 -1
- package/es/designer.css +91 -12
- package/es/packages/vue/index.mjs +2 -0
- package/es/packages/vue/src/components/all.mjs +6 -0
- package/es/packages/vue/src/components/dialog/DialogRenderer.vue2.mjs +3 -2
- package/es/packages/vue/src/components/dialog/customDialog/CustomDialog.vue.mjs +172 -0
- package/es/packages/vue/src/components/dialog/customDialog/index.mjs +7 -0
- package/es/packages/vue/src/components/forms/form/Form.vue.mjs +5 -5
- package/es/packages/vue/src/components/layout/Layout.vue.mjs +81 -0
- package/es/packages/vue/src/components/layout/index.mjs +9 -0
- package/es/packages/vue/src/components/layout/layoutCard/LayoutCard.vue.mjs +162 -0
- package/es/packages/vue/src/components/layout/layoutCard/index.mjs +7 -0
- package/es/packages/vue/src/directive/layout.mjs +28 -0
- package/es/packages/vue/src/utils/datasource.mjs +2 -2
- package/es/packages/vue/src/utils/formulajs/calculate.mjs +23 -8
- package/lib/designer/package.json.js +1 -1
- package/lib/designer.css +91 -12
- package/lib/packages/vue/index.js +7 -5
- package/lib/packages/vue/src/components/all.js +6 -0
- package/lib/packages/vue/src/components/dialog/DialogRenderer.vue2.js +3 -2
- package/lib/packages/vue/src/components/dialog/customDialog/CustomDialog.vue.js +172 -0
- package/lib/packages/vue/src/components/dialog/customDialog/index.js +7 -0
- package/lib/packages/vue/src/components/forms/form/Form.vue.js +5 -5
- package/lib/packages/vue/src/components/layout/Layout.vue.js +81 -0
- package/lib/packages/vue/src/components/layout/index.js +9 -0
- package/lib/packages/vue/src/components/layout/layoutCard/LayoutCard.vue.js +162 -0
- package/lib/packages/vue/src/components/layout/layoutCard/index.js +7 -0
- package/lib/packages/vue/src/directive/layout.js +28 -0
- package/lib/packages/vue/src/utils/datasource.js +2 -2
- package/lib/packages/vue/src/utils/formulajs/calculate.js +23 -8
- package/package.json +1 -1
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
require("../../../../../../node_modules/element-plus/es/index.js");
|
|
4
|
+
;/* empty css */
|
|
5
|
+
;/* empty css */
|
|
6
|
+
;/* empty css */
|
|
7
|
+
;/* empty css */
|
|
8
|
+
const vue = require("vue");
|
|
9
|
+
;/* empty css */
|
|
10
|
+
const index = require("../../../../../../node_modules/element-plus/es/components/dialog/index.js");
|
|
11
|
+
const index$1 = require("../../../../../../node_modules/element-plus/es/components/button/index.js");
|
|
12
|
+
const _sfc_main = {
|
|
13
|
+
__name: "CustomDialog",
|
|
14
|
+
props: {
|
|
15
|
+
modelValue: {
|
|
16
|
+
type: Boolean,
|
|
17
|
+
default: false
|
|
18
|
+
},
|
|
19
|
+
initOption: {
|
|
20
|
+
type: Object,
|
|
21
|
+
default: {
|
|
22
|
+
width: ""
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
width: {
|
|
26
|
+
type: String,
|
|
27
|
+
default: ""
|
|
28
|
+
},
|
|
29
|
+
height: {
|
|
30
|
+
type: String,
|
|
31
|
+
default: "auto"
|
|
32
|
+
},
|
|
33
|
+
//max,default,min
|
|
34
|
+
size: {
|
|
35
|
+
type: String,
|
|
36
|
+
default: "default"
|
|
37
|
+
},
|
|
38
|
+
class: {
|
|
39
|
+
type: String,
|
|
40
|
+
default: ""
|
|
41
|
+
},
|
|
42
|
+
title: {
|
|
43
|
+
type: String,
|
|
44
|
+
default: "标题"
|
|
45
|
+
},
|
|
46
|
+
submitButtonText: {
|
|
47
|
+
type: String,
|
|
48
|
+
default: "确定"
|
|
49
|
+
},
|
|
50
|
+
cancelButtonText: {
|
|
51
|
+
type: String,
|
|
52
|
+
default: "取消"
|
|
53
|
+
},
|
|
54
|
+
query: {
|
|
55
|
+
type: Boolean,
|
|
56
|
+
default: false
|
|
57
|
+
},
|
|
58
|
+
appendToBody: {
|
|
59
|
+
type: Boolean,
|
|
60
|
+
default: false
|
|
61
|
+
},
|
|
62
|
+
hiddenFooter: {
|
|
63
|
+
type: Boolean,
|
|
64
|
+
default: false
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
emits: ["submit", "onClose", "update:modelValue"],
|
|
68
|
+
setup(__props, { emit: __emit }) {
|
|
69
|
+
const props = __props;
|
|
70
|
+
const slotFooter = !!vue.useSlots().footer;
|
|
71
|
+
const dialogWidth = vue.computed(() => {
|
|
72
|
+
let w = props.initOption.width || props.width;
|
|
73
|
+
if (w) {
|
|
74
|
+
return w;
|
|
75
|
+
} else {
|
|
76
|
+
if (props.size == "default") {
|
|
77
|
+
return "65%";
|
|
78
|
+
} else if (props.size == "max") {
|
|
79
|
+
return "80%";
|
|
80
|
+
} else if (props.size == "min") {
|
|
81
|
+
return "50%";
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
const dialogVisible = vue.ref(false);
|
|
86
|
+
const emit = __emit;
|
|
87
|
+
const onClose = () => {
|
|
88
|
+
emit("onClose");
|
|
89
|
+
emit("update:modelValue", false);
|
|
90
|
+
};
|
|
91
|
+
vue.ref();
|
|
92
|
+
function submit() {
|
|
93
|
+
emit("submit");
|
|
94
|
+
}
|
|
95
|
+
const isFullscreen = vue.ref(false);
|
|
96
|
+
function changeFullscreen() {
|
|
97
|
+
isFullscreen.value = !isFullscreen.value;
|
|
98
|
+
}
|
|
99
|
+
vue.watch(
|
|
100
|
+
() => props.modelValue,
|
|
101
|
+
(visible) => {
|
|
102
|
+
if (visible) {
|
|
103
|
+
isFullscreen.value = false;
|
|
104
|
+
}
|
|
105
|
+
dialogVisible.value = visible;
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
immediate: true
|
|
109
|
+
}
|
|
110
|
+
);
|
|
111
|
+
return (_ctx, _cache) => {
|
|
112
|
+
const _component_el_button = index$1.ElButton;
|
|
113
|
+
const _component_el_dialog = index.ElDialog;
|
|
114
|
+
return vue.openBlock(), vue.createBlock(_component_el_dialog, {
|
|
115
|
+
modelValue: vue.unref(dialogVisible),
|
|
116
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.isRef(dialogVisible) ? dialogVisible.value = $event : null),
|
|
117
|
+
title: props.title,
|
|
118
|
+
onClose,
|
|
119
|
+
"destroy-on-close": "",
|
|
120
|
+
draggable: "",
|
|
121
|
+
"append-to-body": props.appendToBody,
|
|
122
|
+
"close-on-click-modal": false,
|
|
123
|
+
"close-on-press-escape": false,
|
|
124
|
+
width: vue.unref(dialogWidth),
|
|
125
|
+
class: vue.normalizeClass(props.class + " custom-dialog"),
|
|
126
|
+
style: vue.normalizeStyle("height:" + __props.height),
|
|
127
|
+
fullscreen: vue.unref(isFullscreen)
|
|
128
|
+
}, vue.createSlots({
|
|
129
|
+
header: vue.withCtx(() => [
|
|
130
|
+
vue.createElementVNode("span", null, vue.toDisplayString(props.title), 1),
|
|
131
|
+
vue.createElementVNode("i", {
|
|
132
|
+
class: "iconfont icon-MaxScreen max-screen",
|
|
133
|
+
onClick: changeFullscreen
|
|
134
|
+
})
|
|
135
|
+
]),
|
|
136
|
+
default: vue.withCtx(() => [
|
|
137
|
+
vue.renderSlot(_ctx.$slots, "default")
|
|
138
|
+
]),
|
|
139
|
+
_: 2
|
|
140
|
+
}, [
|
|
141
|
+
!__props.hiddenFooter ? {
|
|
142
|
+
name: "footer",
|
|
143
|
+
fn: vue.withCtx(() => [
|
|
144
|
+
vue.createVNode(_component_el_button, {
|
|
145
|
+
onClick: _cache[0] || (_cache[0] = ($event) => dialogVisible.value = false)
|
|
146
|
+
}, {
|
|
147
|
+
default: vue.withCtx(() => [
|
|
148
|
+
vue.createTextVNode(vue.toDisplayString(props.cancelButtonText), 1)
|
|
149
|
+
]),
|
|
150
|
+
_: 1
|
|
151
|
+
}),
|
|
152
|
+
slotFooter ? vue.renderSlot(_ctx.$slots, "footer", { key: 0 }) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
|
|
153
|
+
!props.query ? (vue.openBlock(), vue.createBlock(_component_el_button, {
|
|
154
|
+
key: 0,
|
|
155
|
+
type: "primary",
|
|
156
|
+
onClick: submit,
|
|
157
|
+
size: "default"
|
|
158
|
+
}, {
|
|
159
|
+
default: vue.withCtx(() => [
|
|
160
|
+
vue.createTextVNode(vue.toDisplayString(props.submitButtonText), 1)
|
|
161
|
+
]),
|
|
162
|
+
_: 1
|
|
163
|
+
})) : vue.createCommentVNode("", true)
|
|
164
|
+
], 64))
|
|
165
|
+
]),
|
|
166
|
+
key: "0"
|
|
167
|
+
} : void 0
|
|
168
|
+
]), 1032, ["modelValue", "title", "append-to-body", "width", "class", "style", "fullscreen"]);
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
exports.default = _sfc_main;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const CustomDialog = require("./CustomDialog.vue.js");
|
|
4
|
+
const install = require("../../../utils/install.js");
|
|
5
|
+
const customDialog = install.default.withInstall("CustomDialog", CustomDialog.default);
|
|
6
|
+
exports.customDialog = customDialog;
|
|
7
|
+
exports.default = customDialog;
|
|
@@ -147,7 +147,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
147
147
|
}
|
|
148
148
|
);
|
|
149
149
|
const loadConfig = async () => {
|
|
150
|
-
if (!props.templateKey) {
|
|
150
|
+
if (!props.templateKey && props.initOption && Object.keys(props.initOption).length == 0) {
|
|
151
151
|
return;
|
|
152
152
|
}
|
|
153
153
|
configLoading.value = true;
|
|
@@ -192,7 +192,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
192
192
|
mergeOptionsToFields();
|
|
193
193
|
initGridLayoutDataConfig();
|
|
194
194
|
initLinkage();
|
|
195
|
-
emit("loaded", option);
|
|
195
|
+
emit("loaded", option, getFormData());
|
|
196
196
|
} catch (error) {
|
|
197
197
|
console.error("加载配置失败:", error);
|
|
198
198
|
index.ElMessage.error("加载配置失败");
|
|
@@ -813,7 +813,6 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
813
813
|
);
|
|
814
814
|
relevantConfigs.dataLink.forEach((item) => {
|
|
815
815
|
if (parseFilterConfig.checkFilterMatch(item.filterConfig, formData.value, fields)) {
|
|
816
|
-
debugger;
|
|
817
816
|
const fieldAssignments = item.fieldAssignments || [];
|
|
818
817
|
fieldAssignments.forEach((assignment) => {
|
|
819
818
|
var _a2, _b;
|
|
@@ -824,7 +823,8 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
824
823
|
const calcResult = calculate.calculate({
|
|
825
824
|
text: formulaText,
|
|
826
825
|
marks: [],
|
|
827
|
-
value: formData.value
|
|
826
|
+
value: formData.value,
|
|
827
|
+
fieldsList: fields
|
|
828
828
|
});
|
|
829
829
|
formData.value[field.fieldName] = calcResult;
|
|
830
830
|
}
|
|
@@ -1066,5 +1066,5 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
|
|
|
1066
1066
|
};
|
|
1067
1067
|
}
|
|
1068
1068
|
});
|
|
1069
|
-
const _Form = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-
|
|
1069
|
+
const _Form = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-4eb26904"]]);
|
|
1070
1070
|
exports.default = _Form;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
require("../../../../../node_modules/element-plus/es/index.js");
|
|
4
|
+
;/* empty css */
|
|
5
|
+
;/* empty css */
|
|
6
|
+
;/* empty css */
|
|
7
|
+
;/* empty css */
|
|
8
|
+
const vue = require("vue");
|
|
9
|
+
const index$3 = require("../forms/form/index.js");
|
|
10
|
+
const common = require("../../utils/common.js");
|
|
11
|
+
;/* empty css */
|
|
12
|
+
const _pluginVue_exportHelper = require("../../../../../_virtual/_plugin-vue_export-helper.js");
|
|
13
|
+
const index = require("../../../../../node_modules/element-plus/es/components/row/index.js");
|
|
14
|
+
const index$1 = require("../../../../../node_modules/element-plus/es/components/col/index.js");
|
|
15
|
+
const index$2 = require("../../../../../node_modules/element-plus/es/components/scrollbar/index.js");
|
|
16
|
+
const _hoisted_1 = { class: "grid-content" };
|
|
17
|
+
const _hoisted_2 = { class: "grid-content-statistics" };
|
|
18
|
+
const _sfc_main = {
|
|
19
|
+
__name: "Layout",
|
|
20
|
+
props: {
|
|
21
|
+
templateKey: {
|
|
22
|
+
type: String,
|
|
23
|
+
default: ""
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
emits: ["loaded"],
|
|
27
|
+
setup(__props, { emit: __emit }) {
|
|
28
|
+
const formData = vue.ref({});
|
|
29
|
+
const emit = __emit;
|
|
30
|
+
const showCard = vue.ref(false);
|
|
31
|
+
function loaded(option, formData2) {
|
|
32
|
+
showCard.value = true;
|
|
33
|
+
emit("loaded", common.cloneDeep(formData2));
|
|
34
|
+
}
|
|
35
|
+
return (_ctx, _cache) => {
|
|
36
|
+
const _component_el_scrollbar = index$2.ElScrollbar;
|
|
37
|
+
const _component_el_col = index$1.ElCol;
|
|
38
|
+
const _component_el_row = index.ElRow;
|
|
39
|
+
const _directive_fec_layout = vue.resolveDirective("fec-layout");
|
|
40
|
+
return vue.withDirectives((vue.openBlock(), vue.createBlock(_component_el_row, {
|
|
41
|
+
gutter: 8,
|
|
42
|
+
class: "fec-layout-row"
|
|
43
|
+
}, {
|
|
44
|
+
default: vue.withCtx(() => [
|
|
45
|
+
vue.createVNode(_component_el_col, { span: 18 }, {
|
|
46
|
+
default: vue.withCtx(() => [
|
|
47
|
+
vue.createElementVNode("div", _hoisted_1, [
|
|
48
|
+
vue.createVNode(_component_el_scrollbar, { ref: "scrollbarRef" }, {
|
|
49
|
+
default: vue.withCtx(() => [
|
|
50
|
+
vue.createVNode(vue.unref(index$3.Form), {
|
|
51
|
+
ref: "formRef",
|
|
52
|
+
templateKey: __props.templateKey,
|
|
53
|
+
modelValue: vue.unref(formData),
|
|
54
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(formData) ? formData.value = $event : null),
|
|
55
|
+
onLoaded: loaded
|
|
56
|
+
}, null, 8, ["templateKey", "modelValue"])
|
|
57
|
+
]),
|
|
58
|
+
_: 1
|
|
59
|
+
}, 512)
|
|
60
|
+
])
|
|
61
|
+
]),
|
|
62
|
+
_: 1
|
|
63
|
+
}),
|
|
64
|
+
vue.createVNode(_component_el_col, { span: 6 }, {
|
|
65
|
+
default: vue.withCtx(() => [
|
|
66
|
+
vue.createElementVNode("div", _hoisted_2, [
|
|
67
|
+
vue.unref(showCard) ? vue.renderSlot(_ctx.$slots, "card", { key: 0 }, void 0, true) : vue.createCommentVNode("", true)
|
|
68
|
+
])
|
|
69
|
+
]),
|
|
70
|
+
_: 3
|
|
71
|
+
})
|
|
72
|
+
]),
|
|
73
|
+
_: 3
|
|
74
|
+
})), [
|
|
75
|
+
[_directive_fec_layout]
|
|
76
|
+
]);
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
const _Layout = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-bb40b3aa"]]);
|
|
81
|
+
exports.default = _Layout;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const Layout$1 = require("./Layout.vue.js");
|
|
4
|
+
const install = require("../../utils/install.js");
|
|
5
|
+
const index = require("./layoutCard/index.js");
|
|
6
|
+
const Layout = install.default.withInstall("Layout", Layout$1.default);
|
|
7
|
+
exports.LayoutCard = index.LayoutCard;
|
|
8
|
+
exports.Layout = Layout;
|
|
9
|
+
exports.default = Layout;
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
require("../../../../../../node_modules/element-plus/es/index.js");
|
|
4
|
+
;/* empty css */
|
|
5
|
+
;/* empty css */
|
|
6
|
+
const vue = require("vue");
|
|
7
|
+
const index$2 = require("../../../../../../node_modules/@element-plus/icons-vue/dist/index.js");
|
|
8
|
+
const index$3 = require("../../dialog/customDialog/index.js");
|
|
9
|
+
const index$4 = require("../../../api/index.js");
|
|
10
|
+
const getInstance = require("../../../utils/getInstance.js");
|
|
11
|
+
const index$5 = require("../../forms/form/index.js");
|
|
12
|
+
const index$6 = require("../../table/index.js");
|
|
13
|
+
;/* empty css */
|
|
14
|
+
const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.js");
|
|
15
|
+
const index = require("../../../../../../node_modules/element-plus/es/components/button/index.js");
|
|
16
|
+
const index$1 = require("../../../../../../node_modules/element-plus/es/components/icon/index.js");
|
|
17
|
+
const _hoisted_1 = { class: "fec-layout-card" };
|
|
18
|
+
const _hoisted_2 = { class: "header" };
|
|
19
|
+
const _hoisted_3 = { class: "title" };
|
|
20
|
+
const _hoisted_4 = { class: "content" };
|
|
21
|
+
const _sfc_main = {
|
|
22
|
+
__name: "LayoutCard",
|
|
23
|
+
props: {
|
|
24
|
+
//标题
|
|
25
|
+
title: {
|
|
26
|
+
type: String,
|
|
27
|
+
default: ""
|
|
28
|
+
},
|
|
29
|
+
//图标
|
|
30
|
+
icon: {
|
|
31
|
+
type: String,
|
|
32
|
+
default: "icon-authorization"
|
|
33
|
+
},
|
|
34
|
+
//图标背景色
|
|
35
|
+
iconColor: {
|
|
36
|
+
type: String,
|
|
37
|
+
default: "#4fbdc1"
|
|
38
|
+
},
|
|
39
|
+
morePageRoute: {
|
|
40
|
+
type: String,
|
|
41
|
+
default: ""
|
|
42
|
+
},
|
|
43
|
+
morePageTemplateKey: {
|
|
44
|
+
type: String,
|
|
45
|
+
default: ""
|
|
46
|
+
},
|
|
47
|
+
morePageParams: {
|
|
48
|
+
type: Object,
|
|
49
|
+
default: {}
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
setup(__props) {
|
|
53
|
+
const props = __props;
|
|
54
|
+
const ctx = getInstance.getCurrentVueInstance();
|
|
55
|
+
const isMoreBtn = vue.computed(() => {
|
|
56
|
+
return props.morePageRoute || props.morePageTemplateKey;
|
|
57
|
+
});
|
|
58
|
+
const dialogVisible = vue.ref(false);
|
|
59
|
+
const currentComponent = vue.ref(null);
|
|
60
|
+
const currentParams = vue.ref(props.morePageParams);
|
|
61
|
+
const flag = vue.ref(true);
|
|
62
|
+
vue.watch(currentParams, () => {
|
|
63
|
+
if (props.morePageRoute && Object.keys(currentParams).length > 0) {
|
|
64
|
+
flag.value = false;
|
|
65
|
+
vue.nextTick(() => {
|
|
66
|
+
flag.value = true;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
function moreClick() {
|
|
71
|
+
if (props.morePageRoute) {
|
|
72
|
+
loadComponentByPath(props.morePageRoute);
|
|
73
|
+
dialogVisible.value = true;
|
|
74
|
+
} else if (props.morePageTemplateKey) {
|
|
75
|
+
index$4.default.findByTemplateKey(ctx.$http, {
|
|
76
|
+
templateKey: props.morePageTemplateKey,
|
|
77
|
+
timestamp: Date.now(),
|
|
78
|
+
templateVersion: "v5"
|
|
79
|
+
}).then((res) => {
|
|
80
|
+
const data = JSON.parse(res);
|
|
81
|
+
if (data.formMode) {
|
|
82
|
+
currentComponent.value = index$5.Form;
|
|
83
|
+
} else {
|
|
84
|
+
currentComponent.value = index$6.Table;
|
|
85
|
+
}
|
|
86
|
+
currentParams.value.initOption = data;
|
|
87
|
+
currentParams.value.isDialog = true;
|
|
88
|
+
dialogVisible.value = true;
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function loadComponentByPath(path) {
|
|
93
|
+
const route = ctx.$router.getRoutes().find((item) => item.path === path);
|
|
94
|
+
if (!route) return;
|
|
95
|
+
const comp = route.components.default;
|
|
96
|
+
if (!comp) return;
|
|
97
|
+
if (typeof comp === "function") {
|
|
98
|
+
comp().then((module2) => {
|
|
99
|
+
currentComponent.value = module2.default;
|
|
100
|
+
});
|
|
101
|
+
} else {
|
|
102
|
+
currentComponent.value = comp;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return (_ctx, _cache) => {
|
|
106
|
+
const _component_el_icon = index$1.ElIcon;
|
|
107
|
+
const _component_el_button = index.ElButton;
|
|
108
|
+
return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
|
|
109
|
+
vue.createElementVNode("div", _hoisted_1, [
|
|
110
|
+
vue.createElementVNode("div", _hoisted_2, [
|
|
111
|
+
vue.createElementVNode("div", _hoisted_3, [
|
|
112
|
+
__props.title ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
|
|
113
|
+
vue.createElementVNode("i", {
|
|
114
|
+
class: vue.normalizeClass("icon iconfont " + __props.icon),
|
|
115
|
+
style: vue.normalizeStyle("background-color:" + __props.iconColor)
|
|
116
|
+
}, null, 6),
|
|
117
|
+
vue.createElementVNode("span", null, vue.toDisplayString(__props.title), 1)
|
|
118
|
+
], 64)) : vue.createCommentVNode("", true)
|
|
119
|
+
]),
|
|
120
|
+
vue.unref(isMoreBtn) ? (vue.openBlock(), vue.createBlock(_component_el_button, {
|
|
121
|
+
key: 0,
|
|
122
|
+
class: "moreBtn",
|
|
123
|
+
type: "primary",
|
|
124
|
+
link: "",
|
|
125
|
+
onClick: moreClick
|
|
126
|
+
}, {
|
|
127
|
+
default: vue.withCtx(() => [
|
|
128
|
+
_cache[1] || (_cache[1] = vue.createTextVNode("更多信息")),
|
|
129
|
+
vue.createVNode(_component_el_icon, null, {
|
|
130
|
+
default: vue.withCtx(() => [
|
|
131
|
+
vue.createVNode(vue.unref(index$2.ArrowRight))
|
|
132
|
+
]),
|
|
133
|
+
_: 1
|
|
134
|
+
})
|
|
135
|
+
]),
|
|
136
|
+
_: 1
|
|
137
|
+
})) : vue.createCommentVNode("", true)
|
|
138
|
+
]),
|
|
139
|
+
vue.createElementVNode("div", _hoisted_4, [
|
|
140
|
+
vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
|
|
141
|
+
])
|
|
142
|
+
]),
|
|
143
|
+
vue.createVNode(vue.unref(index$3.customDialog), {
|
|
144
|
+
modelValue: vue.unref(dialogVisible),
|
|
145
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(dialogVisible) ? dialogVisible.value = $event : null),
|
|
146
|
+
width: "80%",
|
|
147
|
+
height: "100%",
|
|
148
|
+
query: "",
|
|
149
|
+
"append-to-body": "",
|
|
150
|
+
title: __props.title
|
|
151
|
+
}, {
|
|
152
|
+
default: vue.withCtx(() => [
|
|
153
|
+
vue.unref(flag) && vue.unref(currentComponent) ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(currentComponent)), vue.normalizeProps(vue.mergeProps({ key: 0 }, vue.unref(currentParams))), null, 16)) : vue.createCommentVNode("", true)
|
|
154
|
+
]),
|
|
155
|
+
_: 1
|
|
156
|
+
}, 8, ["modelValue", "title"])
|
|
157
|
+
], 64);
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
const _LayoutCard = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-3ce25014"]]);
|
|
162
|
+
exports.default = _LayoutCard;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const LayoutCard$1 = require("./LayoutCard.vue.js");
|
|
4
|
+
const install = require("../../../utils/install.js");
|
|
5
|
+
const LayoutCard = install.default.withInstall("LayoutCard", LayoutCard$1.default);
|
|
6
|
+
exports.LayoutCard = LayoutCard;
|
|
7
|
+
exports.default = LayoutCard;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const layout = {
|
|
4
|
+
mounted(el, binding, vnode, prevVnode) {
|
|
5
|
+
if (el.parentElement.className.indexOf("h-main") != -1) {
|
|
6
|
+
document.querySelector(".h-main").setAttribute(
|
|
7
|
+
"style",
|
|
8
|
+
"background-color:transparent;padding:0px;border:0px;"
|
|
9
|
+
);
|
|
10
|
+
}
|
|
11
|
+
if (el.parentElement.className.indexOf("root-main") != -1) {
|
|
12
|
+
document.querySelector(".root-main").setAttribute(
|
|
13
|
+
"style",
|
|
14
|
+
"background-color:transparent;padding:0px;border:0px;"
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
if (el.parentElement.parentElement.className.indexOf("el-dialog__body") != -1) {
|
|
18
|
+
el.parentElement.parentElement.setAttribute(
|
|
19
|
+
"style",
|
|
20
|
+
"background-color:#F7F7F7;"
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
layout.install = function(Vue) {
|
|
26
|
+
Vue.directive("fec-layout", layout);
|
|
27
|
+
};
|
|
28
|
+
exports.default = layout;
|
|
@@ -184,7 +184,7 @@ class DataSourceManager {
|
|
|
184
184
|
const responseMessage = response.message;
|
|
185
185
|
if (this.pagination) {
|
|
186
186
|
this.data.list = (responseData == null ? void 0 : responseData.records) || responseData;
|
|
187
|
-
this.data.total = (responseData == null ? void 0 : responseData.total) || responseData.length;
|
|
187
|
+
this.data.total = (responseData == null ? void 0 : responseData.total) || (responseData == null ? void 0 : responseData.length);
|
|
188
188
|
} else {
|
|
189
189
|
this.data = responseData;
|
|
190
190
|
}
|
|
@@ -202,7 +202,7 @@ class DataSourceManager {
|
|
|
202
202
|
const responseData = response;
|
|
203
203
|
if (this.pagination) {
|
|
204
204
|
this.data.list = (responseData == null ? void 0 : responseData.records) || responseData;
|
|
205
|
-
this.data.total = (responseData == null ? void 0 : responseData.total) || responseData.length;
|
|
205
|
+
this.data.total = (responseData == null ? void 0 : responseData.total) || (responseData == null ? void 0 : responseData.length);
|
|
206
206
|
} else {
|
|
207
207
|
this.data = responseData;
|
|
208
208
|
}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const functionCore = require("./functionCore.js");
|
|
4
4
|
require("vue");
|
|
5
5
|
function calculate(params) {
|
|
6
|
-
const { text, marks = [], value = {} } = params;
|
|
6
|
+
const { text, marks = [], value = {}, fieldsList = [] } = params;
|
|
7
7
|
if (!text) return new Error("非法公式");
|
|
8
8
|
try {
|
|
9
9
|
let str = text;
|
|
@@ -25,15 +25,30 @@ function calculate(params) {
|
|
|
25
25
|
const [key, subKey] = enCode.split(".");
|
|
26
26
|
if (value[key]) data = value[key].map((o) => o[subKey]);
|
|
27
27
|
}
|
|
28
|
-
if (data
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
if (!data) {
|
|
29
|
+
const fieldItem = fieldsList.find((item2) => item2.fieldName == enCode);
|
|
30
|
+
if (fieldItem) {
|
|
31
|
+
switch (fieldItem.fieldType) {
|
|
32
|
+
case "number":
|
|
33
|
+
data = 0;
|
|
34
|
+
break;
|
|
35
|
+
case "switch":
|
|
36
|
+
data = false;
|
|
37
|
+
break;
|
|
38
|
+
default:
|
|
39
|
+
data = "";
|
|
40
|
+
}
|
|
41
|
+
} else {
|
|
42
|
+
throw new Error("字段:" + item.fieldName + " 未定义");
|
|
31
43
|
}
|
|
32
|
-
const actualStart = startIndex + offset;
|
|
33
|
-
const actualEnd = endIndex + offset;
|
|
34
|
-
str = str.slice(0, actualStart) + data.toString() + str.slice(actualEnd);
|
|
35
|
-
offset += data.toString().length - (endIndex - startIndex);
|
|
36
44
|
}
|
|
45
|
+
if (typeof data != "string") {
|
|
46
|
+
data = JSON.stringify(data);
|
|
47
|
+
}
|
|
48
|
+
const actualStart = startIndex + offset;
|
|
49
|
+
const actualEnd = endIndex + offset;
|
|
50
|
+
str = str.slice(0, actualStart) + data.toString() + str.slice(actualEnd);
|
|
51
|
+
offset += data.toString().length - (endIndex - startIndex);
|
|
37
52
|
}
|
|
38
53
|
const result = functionCore.default.executeFunction(str);
|
|
39
54
|
return result;
|