@fecp/designer 5.5.101 → 5.5.103
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 +322 -33
- package/es/packages/mobile/index.mjs +4 -0
- package/es/packages/mobile/src/components/all.mjs +4 -0
- package/es/packages/mobile/src/components/custom/appDetail/AppDetail.vue.mjs +30 -7
- package/es/packages/mobile/src/components/custom/approvalBar/ApprovalBar.vue.mjs +191 -0
- package/es/packages/mobile/src/components/custom/approvalBar/index.mjs +10 -0
- package/es/packages/mobile/src/components/custom/approvalList/ApprovalList.vue.mjs +391 -0
- package/es/packages/mobile/src/components/custom/approvalList/index.mjs +10 -0
- package/es/packages/mobile/src/components/dataDisplay/cardList/CardList.vue.mjs +2 -18
- package/es/packages/mobile/src/components/dataDisplay/table/Table.vue.mjs +41 -9
- package/es/packages/mobile/src/components/form/field/Field.vue.mjs +38 -26
- package/es/packages/mobile/src/components/form/fieldArea/FieldArea.vue.mjs +4 -2
- package/es/packages/mobile/src/components/form/fieldCalendarPicker/FieldCalendarPicker.vue.mjs +1 -1
- package/es/packages/mobile/src/components/form/fieldCascaderPicker/fieldCascaderPicker.vue.mjs +1 -1
- package/es/packages/mobile/src/components/form/fieldDatePicker/FieldDatePicker.vue.mjs +1 -1
- package/es/packages/mobile/src/components/form/fieldDateTimePicker/FieldDateTimePicker.vue.mjs +1 -1
- package/es/packages/mobile/src/components/form/fieldIndustry/FieldIndustry.vue.mjs +38 -27
- package/es/packages/mobile/src/components/form/fieldPicker/FieldPicker.vue.mjs +58 -41
- package/es/packages/mobile/src/components/form/fieldTimePicker/FieldTimePicker.vue.mjs +1 -1
- package/es/packages/mobile/src/components/navigation/tabs/Tabs.vue.mjs +8 -3
- package/es/packages/mobile/src/composables/usePageEvents.mjs +80 -0
- package/es/packages/mobile/src/index.vue.mjs +8 -5
- package/es/packages/mobile/src/page.vue.mjs +150 -19
- package/es/packages/mobile/src/utils/datasource.mjs +12 -1
- package/es/packages/mobile/src/utils/eventFlow/actionHandlers.mjs +852 -0
- package/es/packages/mobile/src/utils/eventFlow/eventFlowHandler.mjs +94 -0
- package/es/packages/mobile/src/utils/eventFlowParser.mjs +396 -0
- package/es/packages/mobile/src/utils/formatterUtil.mjs +1 -0
- package/es/packages/mobile/src/utils/parseFilterConfig.mjs +98 -0
- package/es/packages/vue/src/components/forms/subTable/SubTable.vue.mjs +2 -2
- package/lib/designer/package.json.js +1 -1
- package/lib/designer.css +322 -33
- package/lib/packages/mobile/index.js +6 -2
- package/lib/packages/mobile/src/components/all.js +4 -0
- package/lib/packages/mobile/src/components/custom/appDetail/AppDetail.vue.js +29 -6
- package/lib/packages/mobile/src/components/custom/approvalBar/ApprovalBar.vue.js +191 -0
- package/lib/packages/mobile/src/components/custom/approvalBar/index.js +10 -0
- package/lib/packages/mobile/src/components/custom/approvalList/ApprovalList.vue.js +391 -0
- package/lib/packages/mobile/src/components/custom/approvalList/index.js +10 -0
- package/lib/packages/mobile/src/components/dataDisplay/cardList/CardList.vue.js +2 -18
- package/lib/packages/mobile/src/components/dataDisplay/table/Table.vue.js +41 -9
- package/lib/packages/mobile/src/components/form/field/Field.vue.js +37 -25
- package/lib/packages/mobile/src/components/form/fieldArea/FieldArea.vue.js +4 -2
- package/lib/packages/mobile/src/components/form/fieldCalendarPicker/FieldCalendarPicker.vue.js +1 -1
- package/lib/packages/mobile/src/components/form/fieldCascaderPicker/fieldCascaderPicker.vue.js +1 -1
- package/lib/packages/mobile/src/components/form/fieldDatePicker/FieldDatePicker.vue.js +1 -1
- package/lib/packages/mobile/src/components/form/fieldDateTimePicker/FieldDateTimePicker.vue.js +1 -1
- package/lib/packages/mobile/src/components/form/fieldIndustry/FieldIndustry.vue.js +37 -26
- package/lib/packages/mobile/src/components/form/fieldPicker/FieldPicker.vue.js +57 -40
- package/lib/packages/mobile/src/components/form/fieldTimePicker/FieldTimePicker.vue.js +1 -1
- package/lib/packages/mobile/src/components/navigation/tabs/Tabs.vue.js +8 -3
- package/lib/packages/mobile/src/composables/usePageEvents.js +80 -0
- package/lib/packages/mobile/src/index.vue.js +8 -5
- package/lib/packages/mobile/src/page.vue.js +149 -18
- package/lib/packages/mobile/src/utils/datasource.js +14 -3
- package/lib/packages/mobile/src/utils/eventFlow/actionHandlers.js +852 -0
- package/lib/packages/mobile/src/utils/eventFlow/eventFlowHandler.js +94 -0
- package/lib/packages/mobile/src/utils/eventFlowParser.js +396 -0
- package/lib/packages/mobile/src/utils/formatterUtil.js +1 -0
- package/lib/packages/mobile/src/utils/parseFilterConfig.js +98 -0
- package/lib/packages/vue/src/components/forms/subTable/SubTable.vue.js +2 -2
- package/package.json +1 -1
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { ref, computed, watch, resolveComponent, createElementBlock, openBlock, Fragment, createBlock, createCommentVNode, createElementVNode, normalizeProps, mergeProps, unref, createVNode, guardReactiveProps, isRef, withCtx, resolveDynamicComponent } from "vue";
|
|
1
|
+
import { ref, getCurrentInstance, computed, watch, onMounted, resolveComponent, createElementBlock, openBlock, Fragment, createBlock, createCommentVNode, createElementVNode, normalizeProps, mergeProps, unref, createVNode, guardReactiveProps, isRef, withCtx, resolveDynamicComponent, nextTick } from "vue";
|
|
2
2
|
import "../../../node_modules/grid-layout-plus/es/index.mjs";
|
|
3
3
|
import * as all from "./components/all.mjs";
|
|
4
4
|
import { pageHistory } from "./utils/pageHistory.mjs";
|
|
5
|
+
import { usePageEvents } from "./composables/usePageEvents.mjs";
|
|
6
|
+
import hooks from "../node_modules/moment/dist/moment.mjs";
|
|
5
7
|
/* empty css */
|
|
6
8
|
import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
|
|
7
9
|
import De from "../../../node_modules/grid-layout-plus/es/components/grid-layout.vue.mjs";
|
|
@@ -18,27 +20,35 @@ const _sfc_main = {
|
|
|
18
20
|
},
|
|
19
21
|
routePage: {
|
|
20
22
|
type: Object
|
|
23
|
+
},
|
|
24
|
+
params: {
|
|
25
|
+
type: Object,
|
|
26
|
+
default: {}
|
|
21
27
|
}
|
|
22
28
|
},
|
|
23
|
-
setup(__props) {
|
|
29
|
+
setup(__props, { expose: __expose }) {
|
|
30
|
+
var _a;
|
|
24
31
|
const props = __props;
|
|
25
|
-
const
|
|
32
|
+
const configLoading = ref(true);
|
|
33
|
+
const instance = getCurrentInstance();
|
|
34
|
+
const ctx = instance.proxy;
|
|
35
|
+
const formData = ref(props.params);
|
|
26
36
|
function getComp(type) {
|
|
27
37
|
return all[type];
|
|
28
38
|
}
|
|
39
|
+
const gridLayout = ref();
|
|
29
40
|
const layoutData = computed(() => {
|
|
30
|
-
var
|
|
41
|
+
var _a2;
|
|
31
42
|
if (Array.isArray(props.parentPage.layoutData)) {
|
|
32
|
-
return ((
|
|
33
|
-
var
|
|
43
|
+
return ((_a2 = props.parentPage.layoutData) == null ? void 0 : _a2.map((item) => {
|
|
44
|
+
var _a3, _b;
|
|
34
45
|
item.isResizable = false;
|
|
35
|
-
if ((_b = (
|
|
46
|
+
if ((_b = (_a3 = item.component) == null ? void 0 : _a3.props) == null ? void 0 : _b.autoHeight) {
|
|
36
47
|
item.class = "isAutoHeight";
|
|
37
48
|
}
|
|
38
49
|
return item;
|
|
39
50
|
})) || [];
|
|
40
51
|
}
|
|
41
|
-
autoHeight;
|
|
42
52
|
return props.parentPage.layoutData;
|
|
43
53
|
});
|
|
44
54
|
const tabbarActive = ref(0);
|
|
@@ -61,16 +71,135 @@ const _sfc_main = {
|
|
|
61
71
|
watch(
|
|
62
72
|
[() => props.parentPage, () => props.routePage],
|
|
63
73
|
() => {
|
|
64
|
-
var
|
|
74
|
+
var _a2;
|
|
65
75
|
childPage.value = props.routePage;
|
|
66
76
|
if (props.parentPage.footerType == "tabbar") {
|
|
67
|
-
tabbarActive.value = ((
|
|
77
|
+
tabbarActive.value = ((_a2 = props.routePage) == null ? void 0 : _a2.id) || props.parentPage.tabbarConfig.tabbarOptions[0].pageId;
|
|
68
78
|
}
|
|
69
79
|
},
|
|
70
80
|
{
|
|
71
81
|
immediate: true
|
|
72
82
|
}
|
|
73
83
|
);
|
|
84
|
+
const fieldsData = ref([]);
|
|
85
|
+
const hiddenFields = ref(props.parentPage.hiddenFields || []);
|
|
86
|
+
if (Array.isArray(props.parentPage.layoutData)) {
|
|
87
|
+
fieldsData.value = ((_a = props.parentPage.layoutData) == null ? void 0 : _a.map((item) => {
|
|
88
|
+
var _a2;
|
|
89
|
+
return { id: item.component.id, ...(_a2 = item.component) == null ? void 0 : _a2.props };
|
|
90
|
+
})) || [];
|
|
91
|
+
}
|
|
92
|
+
const loadFormData = (state) => {
|
|
93
|
+
formData.value = props.params;
|
|
94
|
+
console.log("初始化赋值", formData.value);
|
|
95
|
+
};
|
|
96
|
+
onMounted(async () => {
|
|
97
|
+
loadFormData();
|
|
98
|
+
const pageEvents = usePageEvents(() => ({
|
|
99
|
+
pageEventConfig: props.parentPage.pageEventConfig,
|
|
100
|
+
fields: [...fieldsData.value, ...hiddenFields.value],
|
|
101
|
+
instance,
|
|
102
|
+
formData: formData.value,
|
|
103
|
+
localConfig: props.parentPage,
|
|
104
|
+
components: {
|
|
105
|
+
form: ctx
|
|
106
|
+
}
|
|
107
|
+
}));
|
|
108
|
+
if (pageEvents) {
|
|
109
|
+
pageEvents.handleBeforeUnmount();
|
|
110
|
+
pageEvents.handleUnmounted();
|
|
111
|
+
if (props.parentPage.pageEventConfig) {
|
|
112
|
+
const onCreatedEvent = props.parentPage.pageEventConfig.find(
|
|
113
|
+
(e) => e.name === "onCreated"
|
|
114
|
+
);
|
|
115
|
+
if (onCreatedEvent) {
|
|
116
|
+
console.log("🚀 页面 onCreated 事件触发");
|
|
117
|
+
try {
|
|
118
|
+
await pageEvents.executeEvent("onCreated");
|
|
119
|
+
} catch (error) {
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
configLoading.value = false;
|
|
125
|
+
});
|
|
126
|
+
const valueFormatMap = {
|
|
127
|
+
date: "YYYYMMDD",
|
|
128
|
+
week: "YYYYMMDD",
|
|
129
|
+
month: "YYYYMM",
|
|
130
|
+
year: "YYYY",
|
|
131
|
+
datetime: "YYYYMMDDHHmmss"
|
|
132
|
+
};
|
|
133
|
+
const formValueFormatMap = {
|
|
134
|
+
date: "YYYY/MM/DD",
|
|
135
|
+
week: "YYYY/MM/DD",
|
|
136
|
+
month: "YYYY/MM",
|
|
137
|
+
year: "YYYY",
|
|
138
|
+
datetime: "YYYY/MM/DD HH:mm:ss"
|
|
139
|
+
};
|
|
140
|
+
const setFormData = (data) => {
|
|
141
|
+
const processedData = { ...data };
|
|
142
|
+
const processField = (field) => {
|
|
143
|
+
const fieldName = field.fieldName;
|
|
144
|
+
const fieldType = field.fieldType;
|
|
145
|
+
if (!processedData.hasOwnProperty(fieldName)) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
const value = processedData[fieldName];
|
|
149
|
+
if (fieldName && (fieldType === "checkbox" || fieldType === "multipleSelection" || fieldType === "cascader" || fieldType === "area" || fieldType === "industry")) {
|
|
150
|
+
let splitStr = "|";
|
|
151
|
+
if (fieldType === "cascader" || fieldType === "area" || fieldType === "industry") {
|
|
152
|
+
splitStr = ",";
|
|
153
|
+
}
|
|
154
|
+
if (typeof value === "string" && value.includes(splitStr)) {
|
|
155
|
+
processedData[fieldName] = value.split(splitStr);
|
|
156
|
+
} else if (typeof value === "string" && value !== "") {
|
|
157
|
+
processedData[fieldName] = [value];
|
|
158
|
+
} else if (value === "" || value === null || value === void 0) {
|
|
159
|
+
processedData[fieldName] = [];
|
|
160
|
+
}
|
|
161
|
+
processedData[fieldName] = processedData[fieldName].map((item) => {
|
|
162
|
+
if (item.indexOf(",") > -1) {
|
|
163
|
+
return item.split(",");
|
|
164
|
+
}
|
|
165
|
+
return item;
|
|
166
|
+
});
|
|
167
|
+
} else if (fieldName && fieldType === "date" && value) {
|
|
168
|
+
const valueFormat = valueFormatMap[field.dateType] || "YYYYMMDD";
|
|
169
|
+
const formValueFormat = formValueFormatMap[field.dateType] || "YYYY/MM/DD";
|
|
170
|
+
processedData[fieldName] = hooks(value, valueFormat).format(
|
|
171
|
+
formValueFormat
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
if (fieldsData.value) {
|
|
176
|
+
fieldsData.value.forEach((component) => {
|
|
177
|
+
processField(component);
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
if (hiddenFields.value && hiddenFields.value.length > 0) {
|
|
181
|
+
hiddenFields.value.forEach((field) => {
|
|
182
|
+
processField(field);
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
formData.value = { ...formData.value, ...processedData };
|
|
186
|
+
nextTick(() => {
|
|
187
|
+
var _a2;
|
|
188
|
+
layoutData.value.forEach((item) => {
|
|
189
|
+
const id = item.component.id;
|
|
190
|
+
const dom = document.getElementById(id);
|
|
191
|
+
const labelDom = dom == null ? void 0 : dom.querySelector(".van-field__label");
|
|
192
|
+
if (labelDom) {
|
|
193
|
+
let height = labelDom.offsetHeight + 20;
|
|
194
|
+
item.h = height / 10;
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
(_a2 = gridLayout.value) == null ? void 0 : _a2.resizeEvent();
|
|
198
|
+
});
|
|
199
|
+
};
|
|
200
|
+
__expose({
|
|
201
|
+
setFormData
|
|
202
|
+
});
|
|
74
203
|
return (_ctx, _cache) => {
|
|
75
204
|
const _component_FecMobileNavBar = resolveComponent("FecMobileNavBar");
|
|
76
205
|
const _component_page = resolveComponent("page", true);
|
|
@@ -78,8 +207,8 @@ const _sfc_main = {
|
|
|
78
207
|
const _component_FecMobileNoticeBar = resolveComponent("FecMobileNoticeBar");
|
|
79
208
|
const _component_FecMobileDataStat = resolveComponent("FecMobileDataStat");
|
|
80
209
|
const _component_FecMobileAppDetail = resolveComponent("FecMobileAppDetail");
|
|
81
|
-
const _component_FecMobileActionBar = resolveComponent("FecMobileActionBar");
|
|
82
210
|
const _component_FecMobileTabbar = resolveComponent("FecMobileTabbar");
|
|
211
|
+
const _component_FecMobileActionBar = resolveComponent("FecMobileActionBar");
|
|
83
212
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
84
213
|
__props.parentPage.isNavBar ? (openBlock(), createBlock(_component_FecMobileNavBar, normalizeProps(mergeProps({ key: 0 }, __props.parentPage.navBarConfig)), null, 16)) : createCommentVNode("", true),
|
|
85
214
|
createElementVNode("div", _hoisted_1, [
|
|
@@ -93,12 +222,13 @@ const _sfc_main = {
|
|
|
93
222
|
createVNode(_component_FecMobileMenuGrid, normalizeProps(guardReactiveProps(__props.parentPage.layoutData.menuGridProps)), null, 16),
|
|
94
223
|
createVNode(_component_FecMobileNoticeBar),
|
|
95
224
|
createVNode(_component_FecMobileDataStat)
|
|
96
|
-
], 64)) : __props.parentPage.type == "approval" ? (openBlock(),
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
225
|
+
], 64)) : __props.parentPage.type == "approval" ? (openBlock(), createBlock(_component_FecMobileAppDetail, mergeProps({ key: 1 }, __props.parentPage.layoutData.appDetailProps, {
|
|
226
|
+
actionBar: __props.parentPage.layoutData.actionBar,
|
|
227
|
+
params: __props.params
|
|
228
|
+
}), null, 16, ["actionBar", "params"])) : (openBlock(), createBlock(unref(De), {
|
|
100
229
|
key: 2,
|
|
101
|
-
|
|
230
|
+
ref_key: "gridLayout",
|
|
231
|
+
ref: gridLayout,
|
|
102
232
|
layout: unref(layoutData),
|
|
103
233
|
"onUpdate:layout": _cache[0] || (_cache[0] = ($event) => isRef(layoutData) ? layoutData.value = $event : null),
|
|
104
234
|
"row-height": rowHeight,
|
|
@@ -115,9 +245,10 @@ const _sfc_main = {
|
|
|
115
245
|
modelValue: unref(formData)[component.props.fieldName],
|
|
116
246
|
"onUpdate:modelValue": ($event) => unref(formData)[component.props.fieldName] = $event,
|
|
117
247
|
dataSources: unref(currentPage).dataSources,
|
|
248
|
+
formData: unref(formData),
|
|
118
249
|
compId: component.id,
|
|
119
|
-
|
|
120
|
-
}), null, 16, ["modelValue", "onUpdate:modelValue", "dataSources", "compId", "
|
|
250
|
+
fields: [...unref(fieldsData), ...unref(hiddenFields)]
|
|
251
|
+
}), null, 16, ["modelValue", "onUpdate:modelValue", "dataSources", "formData", "compId", "fields"]))
|
|
121
252
|
])
|
|
122
253
|
]),
|
|
123
254
|
_: 1
|
|
@@ -134,7 +265,7 @@ const _sfc_main = {
|
|
|
134
265
|
};
|
|
135
266
|
}
|
|
136
267
|
};
|
|
137
|
-
const MobilePage = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
268
|
+
const MobilePage = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-726a6dad"]]);
|
|
138
269
|
export {
|
|
139
270
|
MobilePage as default
|
|
140
271
|
};
|
|
@@ -2,8 +2,10 @@ import { reactive } from "vue";
|
|
|
2
2
|
import { parseRouteParams } from "./parseRouteParams.mjs";
|
|
3
3
|
import "../../../../node_modules/element-plus/es/index.mjs";
|
|
4
4
|
/* empty css */
|
|
5
|
+
/* empty css */
|
|
5
6
|
/* empty css */
|
|
6
7
|
/* empty css */
|
|
8
|
+
import { ElLoading } from "../../../../node_modules/element-plus/es/components/loading/index.mjs";
|
|
7
9
|
import { ElMessage } from "../../../../node_modules/element-plus/es/components/message/index.mjs";
|
|
8
10
|
class DataSourceManager {
|
|
9
11
|
constructor(options = {}) {
|
|
@@ -131,7 +133,16 @@ class DataSourceManager {
|
|
|
131
133
|
this.loading = true;
|
|
132
134
|
this.error = null;
|
|
133
135
|
this.LoadingInstance.count++;
|
|
134
|
-
if (this.LoadingInstance.count === 1)
|
|
136
|
+
if (this.LoadingInstance.count === 1) {
|
|
137
|
+
this.LoadingInstance.target = ElLoading.service({
|
|
138
|
+
fullscreen: true,
|
|
139
|
+
lock: true,
|
|
140
|
+
text: "拼命加载中",
|
|
141
|
+
// spinner: loadingSvg,
|
|
142
|
+
background: "rgba(0, 0, 0, 0)",
|
|
143
|
+
customClass: "h-loading"
|
|
144
|
+
});
|
|
145
|
+
}
|
|
135
146
|
try {
|
|
136
147
|
const params = this.buildRequestParams(extraParams);
|
|
137
148
|
const requestConfig = this.getRequestConfig();
|