@fecp/designer 5.5.69 → 5.5.71

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.
Files changed (25) hide show
  1. package/es/designer/package.json.mjs +1 -1
  2. package/es/designer/src/packages/form/components/ComponentPreviewWrapper.vue.mjs +131 -129
  3. package/es/designer/src/packages/form/property/widgets.vue.mjs +1 -5
  4. package/es/designer.css +128 -134
  5. package/es/packages/mobile/src/components/dataDisplay/cardList/CardList.vue.mjs +32 -11
  6. package/es/packages/mobile/src/components/dataDisplay/menuGrid/MenuGrid.vue.mjs +1 -1
  7. package/es/packages/mobile/src/index.vue.mjs +29 -34
  8. package/es/packages/mobile/src/page.vue.mjs +39 -25
  9. package/es/packages/mobile/src/utils/pageHistory.mjs +17 -10
  10. package/es/packages/vue/src/components/forms/formItem/FormItem.vue.mjs +1 -1
  11. package/es/packages/vue/src/components/table/TableFilter.vue.mjs +2 -2
  12. package/es/packages/vue/src/utils/eventFlow/actionHandlers.mjs +2 -2
  13. package/lib/designer/package.json.js +1 -1
  14. package/lib/designer/src/packages/form/components/ComponentPreviewWrapper.vue.js +130 -128
  15. package/lib/designer/src/packages/form/property/widgets.vue.js +1 -5
  16. package/lib/designer.css +128 -134
  17. package/lib/packages/mobile/src/components/dataDisplay/cardList/CardList.vue.js +32 -11
  18. package/lib/packages/mobile/src/components/dataDisplay/menuGrid/MenuGrid.vue.js +1 -1
  19. package/lib/packages/mobile/src/index.vue.js +29 -34
  20. package/lib/packages/mobile/src/page.vue.js +38 -24
  21. package/lib/packages/mobile/src/utils/pageHistory.js +17 -10
  22. package/lib/packages/vue/src/components/forms/formItem/FormItem.vue.js +1 -1
  23. package/lib/packages/vue/src/components/table/TableFilter.vue.js +2 -2
  24. package/lib/packages/vue/src/utils/eventFlow/actionHandlers.js +2 -2
  25. package/package.json +1 -1
@@ -7,9 +7,17 @@ import VueRender from "../../../utils/idea/VueRender.vue.mjs";
7
7
  /* empty css */
8
8
  import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.mjs";
9
9
  import { List } from "../../../../node_modules/vant/es/list/index.mjs";
10
- const _sfc_main = {
10
+ const _sfc_main = /* @__PURE__ */ Object.assign({
11
+ inheritAttrs: false
12
+ }, {
11
13
  __name: "CardList",
12
14
  props: {
15
+ compId: {
16
+ type: String
17
+ },
18
+ currentPage: {
19
+ type: Object
20
+ },
13
21
  modelValue: {
14
22
  type: Array,
15
23
  default: []
@@ -61,6 +69,10 @@ const _sfc_main = {
61
69
  quickFilter: {
62
70
  type: Array,
63
71
  default: []
72
+ },
73
+ autoHeight: {
74
+ type: Boolean,
75
+ default: false
64
76
  }
65
77
  },
66
78
  setup(__props) {
@@ -68,14 +80,23 @@ const _sfc_main = {
68
80
  const currentInstance = getCurrentInstance();
69
81
  const ctx = currentInstance.proxy;
70
82
  const listRef = ref();
71
- let isDesigner = false;
72
83
  onMounted(() => {
73
- var _a, _b;
74
- const device = (_b = (_a = listRef.value) == null ? void 0 : _a.$el) == null ? void 0 : _b.closest(".device-content");
75
- if (device) {
76
- isDesigner = true;
77
- }
84
+ var _a, _b, _c, _d, _e;
85
+ (_b = (_a = listRef.value) == null ? void 0 : _a.$el) == null ? void 0 : _b.closest(".device-content");
78
86
  initDataSourceManager();
87
+ if (props.compId) {
88
+ if (props.autoHeight) {
89
+ const component = (_c = props.currentPage.layoutData) == null ? void 0 : _c.find(
90
+ (f) => {
91
+ var _a2;
92
+ return ((_a2 = f.component) == null ? void 0 : _a2.id) == props.compId;
93
+ }
94
+ );
95
+ const wrapperDom = (_e = (_d = listRef.value) == null ? void 0 : _d.$el) == null ? void 0 : _e.closest(".grid-wrapper");
96
+ const wrapperHeight = wrapperDom.offsetHeight;
97
+ component.h = wrapperHeight / 10;
98
+ }
99
+ }
79
100
  });
80
101
  function eventHandler(funcName, rowData) {
81
102
  console.log("🚀 ~ eventHandler ~ funcName, rowData:", funcName, rowData);
@@ -104,7 +125,7 @@ const _sfc_main = {
104
125
  });
105
126
  dataSourceManager.value.on("error", (err) => {
106
127
  });
107
- if (dataSourceManager.value && isDesigner) {
128
+ if (dataSourceManager.value) {
108
129
  tableData.value = [];
109
130
  if (props.disabledLoad) {
110
131
  tableData.value = [];
@@ -117,7 +138,7 @@ const _sfc_main = {
117
138
  }
118
139
  }
119
140
  function onLoad() {
120
- if (dataSourceManager.value && isDesigner) {
141
+ if (dataSourceManager.value) {
121
142
  loading.value = true;
122
143
  pageNo++;
123
144
  call();
@@ -197,8 +218,8 @@ const _sfc_main = {
197
218
  ], 64);
198
219
  };
199
220
  }
200
- };
201
- const _CardList = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-77da18e2"]]);
221
+ });
222
+ const _CardList = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-20941c4a"]]);
202
223
  export {
203
224
  _CardList as default
204
225
  };
@@ -117,7 +117,7 @@ const _sfc_main = {
117
117
  };
118
118
  }
119
119
  };
120
- const _MenuGrid = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-bde7e748"]]);
120
+ const _MenuGrid = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-cf276af8"]]);
121
121
  export {
122
122
  _MenuGrid as default
123
123
  };
@@ -32,7 +32,6 @@ const _sfc_main = {
32
32
  const currentInstance = getCurrentInstance();
33
33
  const ctx = currentInstance.proxy;
34
34
  const pageList = ref({});
35
- const layoutData = ref([]);
36
35
  const configLoading = ref(true);
37
36
  const loadConfig = async () => {
38
37
  var _a, _b;
@@ -47,9 +46,13 @@ const _sfc_main = {
47
46
  if (!homePage) {
48
47
  homePage = (_b = pageList.value) == null ? void 0 : _b[0];
49
48
  }
49
+ pageHistory.clear();
50
50
  console.log("🚀 ~ pageList ~ pageList.value:", pageList.value);
51
- loadPage(homePage);
52
- pageHistory.init(homePage);
51
+ let pageId = homePage.id;
52
+ if (homePage.footerType == "tabbar") {
53
+ pageId = homePage.tabbarConfig.tabbarOptions[0].pageId;
54
+ }
55
+ loadPage(pageId);
53
56
  } catch (error) {
54
57
  console.error("加载配置失败:", error);
55
58
  ElMessage.error("加载配置失败");
@@ -57,34 +60,8 @@ const _sfc_main = {
57
60
  configLoading.value = false;
58
61
  }
59
62
  };
60
- const currentPage = ref({});
61
- function loadPage(page) {
62
- currentPage.value = { ...page };
63
- layoutData.value = [...page.layoutData].sort((a, b) => {
64
- if (a.y !== b.y) {
65
- return a.y - b.y;
66
- }
67
- return a.x - b.x;
68
- });
69
- layoutData.value.forEach((item) => item.isResizable = false);
70
- }
71
- function findPageById(pageList2, pageId) {
72
- for (const item of pageList2) {
73
- if (item.id == pageId) {
74
- return item;
75
- }
76
- if (item.children && item.children.length > 0) {
77
- const found = findPageById(item.children, pageId);
78
- if (found) {
79
- found.parentPage = item;
80
- return found;
81
- }
82
- }
83
- }
84
- return null;
85
- }
86
- const routePage = ref(null);
87
- emitter.on("loadPage", (pageId) => {
63
+ const currentPage = ref(null);
64
+ function loadPage(pageId) {
88
65
  var _a;
89
66
  if (((_a = currentPage.value) == null ? void 0 : _a.id) == pageId) {
90
67
  return;
@@ -103,6 +80,24 @@ const _sfc_main = {
103
80
  currentPage.value = null;
104
81
  routePage.value = null;
105
82
  }
83
+ }
84
+ function findPageById(pageList2, pageId) {
85
+ for (const item of pageList2) {
86
+ if (item.id == pageId) {
87
+ return item;
88
+ }
89
+ if (item.children && item.children.length > 0) {
90
+ const found = findPageById(item.children, pageId);
91
+ if (found) {
92
+ return { ...found, parentPage: item };
93
+ }
94
+ }
95
+ }
96
+ return null;
97
+ }
98
+ const routePage = ref(null);
99
+ emitter.on("loadPage", (pageId) => {
100
+ loadPage(pageId);
106
101
  });
107
102
  onMounted(() => {
108
103
  loadConfig();
@@ -119,9 +114,9 @@ const _sfc_main = {
119
114
  default: withCtx(() => [
120
115
  unref(currentPage) ? (openBlock(), createBlock(unref(MobilePage), {
121
116
  key: 0,
122
- currentPage: unref(currentPage),
117
+ parentPage: unref(currentPage),
123
118
  routePage: unref(routePage)
124
- }, null, 8, ["currentPage", "routePage"])) : (openBlock(), createBlock(_component_van_empty, {
119
+ }, null, 8, ["parentPage", "routePage"])) : (openBlock(), createBlock(_component_van_empty, {
125
120
  key: 1,
126
121
  image: "search",
127
122
  description: "页面找不到了"
@@ -132,7 +127,7 @@ const _sfc_main = {
132
127
  };
133
128
  }
134
129
  };
135
- const MobileApp = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-78e0cbef"]]);
130
+ const MobileApp = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-e580f40a"]]);
136
131
  export {
137
132
  MobileApp as default
138
133
  };
@@ -1,6 +1,7 @@
1
- import { ref, computed, onMounted, resolveComponent, createElementBlock, openBlock, Fragment, createBlock, createCommentVNode, createElementVNode, normalizeProps, mergeProps, unref, createVNode, guardReactiveProps, isRef, withCtx, resolveDynamicComponent } from "vue";
1
+ import { ref, computed, watch, resolveComponent, createElementBlock, openBlock, Fragment, createBlock, createCommentVNode, createElementVNode, normalizeProps, mergeProps, unref, createVNode, guardReactiveProps, isRef, withCtx, resolveDynamicComponent } from "vue";
2
2
  import "../../../node_modules/grid-layout-plus/es/index.mjs";
3
3
  import * as all from "./components/all.mjs";
4
+ import { pageHistory } from "./utils/pageHistory.mjs";
4
5
  /* empty css */
5
6
  import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
6
7
  import De from "../../../node_modules/grid-layout-plus/es/components/grid-layout.vue.mjs";
@@ -11,7 +12,7 @@ const rowHeight = 10;
11
12
  const _sfc_main = {
12
13
  __name: "page",
13
14
  props: {
14
- currentPage: {
15
+ parentPage: {
15
16
  type: Object,
16
17
  required: true
17
18
  },
@@ -27,13 +28,13 @@ const _sfc_main = {
27
28
  }
28
29
  const layoutData = computed(() => {
29
30
  var _a;
30
- if (Array.isArray(props.currentPage.layoutData)) {
31
- return ((_a = props.currentPage.layoutData) == null ? void 0 : _a.map((item) => {
31
+ if (Array.isArray(props.parentPage.layoutData)) {
32
+ return ((_a = props.parentPage.layoutData) == null ? void 0 : _a.map((item) => {
32
33
  item.isResizable = false;
33
34
  return item;
34
35
  })) || [];
35
36
  }
36
- return props.currentPage.layoutData;
37
+ return props.parentPage.layoutData;
37
38
  });
38
39
  const tabbarActive = ref(0);
39
40
  const childPage = ref(null);
@@ -41,19 +42,30 @@ const _sfc_main = {
41
42
  if (!pageId) {
42
43
  return;
43
44
  }
44
- const page = props.currentPage.children.find((item) => item.id == pageId);
45
+ const page = props.parentPage.children.find((item) => item.id == pageId);
45
46
  if (!page) ;
46
47
  else {
47
48
  childPage.value = page;
49
+ pageHistory.replace(page);
48
50
  }
49
51
  console.log("🚀 ~ onTabbarChange ~ page:", page);
50
52
  }
51
- onMounted(() => {
52
- if (props.currentPage.footerType == "tabbar") {
53
- tabbarActive.value = props.currentPage.tabbarConfig.tabbarOptions[0].pageId;
54
- onTabbarChange(tabbarActive.value);
55
- }
53
+ const currentPage = computed(() => {
54
+ return childPage.value || props.parentPage || {};
56
55
  });
56
+ watch(
57
+ [() => props.parentPage, () => props.routePage],
58
+ () => {
59
+ var _a;
60
+ childPage.value = props.routePage;
61
+ if (props.parentPage.footerType == "tabbar") {
62
+ tabbarActive.value = ((_a = props.routePage) == null ? void 0 : _a.id) || props.parentPage.tabbarConfig.tabbarOptions[0].pageId;
63
+ }
64
+ },
65
+ {
66
+ immediate: true
67
+ }
68
+ );
57
69
  return (_ctx, _cache) => {
58
70
  const _component_FecMobileNavBar = resolveComponent("FecMobileNavBar");
59
71
  const _component_page = resolveComponent("page", true);
@@ -63,19 +75,19 @@ const _sfc_main = {
63
75
  const _component_FecMobileTabbar = resolveComponent("FecMobileTabbar");
64
76
  const _component_FecMobileActionBar = resolveComponent("FecMobileActionBar");
65
77
  return openBlock(), createElementBlock(Fragment, null, [
66
- __props.currentPage.isNavBar ? (openBlock(), createBlock(_component_FecMobileNavBar, normalizeProps(mergeProps({ key: 0 }, __props.currentPage.navBarConfig)), null, 16)) : createCommentVNode("", true),
78
+ __props.parentPage.isNavBar ? (openBlock(), createBlock(_component_FecMobileNavBar, normalizeProps(mergeProps({ key: 0 }, __props.parentPage.navBarConfig)), null, 16)) : createCommentVNode("", true),
67
79
  createElementVNode("div", _hoisted_1, [
68
- __props.currentPage.footerType == "tabbar" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
69
- __props.routePage || unref(childPage) ? (openBlock(), createBlock(_component_page, {
80
+ __props.parentPage.footerType == "tabbar" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
81
+ unref(childPage) ? (openBlock(), createBlock(_component_page, {
70
82
  key: 0,
71
- currentPage: __props.routePage || unref(childPage)
72
- }, null, 8, ["currentPage"])) : createCommentVNode("", true)
83
+ parentPage: unref(childPage)
84
+ }, null, 8, ["parentPage"])) : createCommentVNode("", true)
73
85
  ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
74
- __props.currentPage.type == "home" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
75
- createVNode(_component_FecMobileMenuGrid, normalizeProps(guardReactiveProps(__props.currentPage.layoutData.menuGridProps)), null, 16),
86
+ __props.parentPage.type == "home" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
87
+ createVNode(_component_FecMobileMenuGrid, normalizeProps(guardReactiveProps(__props.parentPage.layoutData.menuGridProps)), null, 16),
76
88
  createVNode(_component_FecMobileNoticeBar),
77
89
  createVNode(_component_FecMobileDataStat)
78
- ], 64)) : __props.currentPage.type == "approval" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [], 64)) : (openBlock(), createBlock(unref(De), {
90
+ ], 64)) : __props.parentPage.type == "approval" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [], 64)) : (openBlock(), createBlock(unref(De), {
79
91
  key: 2,
80
92
  ref: "gridLayout",
81
93
  layout: unref(layoutData),
@@ -93,25 +105,27 @@ const _sfc_main = {
93
105
  (openBlock(), createBlock(resolveDynamicComponent(getComp(component.fieldType)), mergeProps(component.props, {
94
106
  modelValue: unref(formData)[component.props.fieldName],
95
107
  "onUpdate:modelValue": ($event) => unref(formData)[component.props.fieldName] = $event,
96
- dataSources: _ctx.dataSources
97
- }), null, 16, ["modelValue", "onUpdate:modelValue", "dataSources"]))
108
+ dataSources: unref(currentPage).dataSources,
109
+ compId: component.id,
110
+ currentPage: unref(currentPage)
111
+ }), null, 16, ["modelValue", "onUpdate:modelValue", "dataSources", "compId", "currentPage"]))
98
112
  ])
99
113
  ]),
100
114
  _: 1
101
115
  }, 8, ["layout"]))
102
116
  ], 64))
103
117
  ]),
104
- __props.currentPage.footerType == "tabbar" ? (openBlock(), createBlock(_component_FecMobileTabbar, mergeProps({
118
+ __props.parentPage.footerType == "tabbar" ? (openBlock(), createBlock(_component_FecMobileTabbar, mergeProps({
105
119
  key: 1,
106
120
  modelValue: unref(tabbarActive),
107
121
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => isRef(tabbarActive) ? tabbarActive.value = $event : null)
108
- }, __props.currentPage.tabbarConfig, { onChange: onTabbarChange }), null, 16, ["modelValue"])) : createCommentVNode("", true),
109
- __props.currentPage.footerType == "actionBar" ? (openBlock(), createBlock(_component_FecMobileActionBar, normalizeProps(mergeProps({ key: 2 }, __props.currentPage.actionBarConfig)), null, 16)) : createCommentVNode("", true)
122
+ }, __props.parentPage.tabbarConfig, { onChange: onTabbarChange }), null, 16, ["modelValue"])) : createCommentVNode("", true),
123
+ __props.parentPage.footerType == "actionBar" ? (openBlock(), createBlock(_component_FecMobileActionBar, normalizeProps(mergeProps({ key: 2 }, __props.parentPage.actionBarConfig)), null, 16)) : createCommentVNode("", true)
110
124
  ], 64);
111
125
  };
112
126
  }
113
127
  };
114
- const MobilePage = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-08632dac"]]);
128
+ const MobilePage = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-71059c96"]]);
115
129
  export {
116
130
  MobilePage as default
117
131
  };
@@ -49,6 +49,23 @@ class PageHistory {
49
49
  }
50
50
  this.saveHistory();
51
51
  }
52
+ replace(page) {
53
+ if (!page || !page.id) {
54
+ console.warn("页面配置无效,无法替换");
55
+ return;
56
+ }
57
+ if (this.history.length === 0) {
58
+ this.push(page);
59
+ return;
60
+ }
61
+ this.history[this.history.length - 1] = {
62
+ id: page.id,
63
+ name: page.name || "",
64
+ timestamp: Date.now(),
65
+ data: page
66
+ };
67
+ this.saveHistory();
68
+ }
52
69
  /**
53
70
  * 后退到上一个页面
54
71
  * @returns {Object|null} 返回上一个页面的配置,如果无法后退则返回 null
@@ -93,16 +110,6 @@ class PageHistory {
93
110
  this.history = [];
94
111
  this.saveHistory();
95
112
  }
96
- /**
97
- * 初始化或重置历史记录(仅包含首页)
98
- * @param {Object} homePage - 首页配置
99
- */
100
- init(homePage) {
101
- this.clear();
102
- if (homePage) {
103
- this.push(homePage);
104
- }
105
- }
106
113
  }
107
114
  const pageHistory = new PageHistory();
108
115
  export {
@@ -205,7 +205,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
205
205
  };
206
206
  }
207
207
  });
208
- const _FormItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-44a32b0c"]]);
208
+ const _FormItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-2b2c1dcf"]]);
209
209
  export {
210
210
  _FormItem as default
211
211
  };
@@ -52,7 +52,7 @@ const _sfc_main = {
52
52
  setup(__props, { expose: __expose, emit: __emit }) {
53
53
  var _a;
54
54
  useCssVars((_ctx) => ({
55
- "12f9d7c1": `${config.value.collapseRows * 90}px`
55
+ "f3ebd008": `${config.value.collapseRows * 90}px`
56
56
  }));
57
57
  const props = __props;
58
58
  const emit = __emit;
@@ -301,7 +301,7 @@ const _sfc_main = {
301
301
  };
302
302
  }
303
303
  };
304
- const TableFilter = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-220e0331"]]);
304
+ const TableFilter = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-ba2f1878"]]);
305
305
  export {
306
306
  TableFilter as default
307
307
  };
@@ -181,7 +181,7 @@ async function handleApiCall(node, data, fields, context, params) {
181
181
  success: false,
182
182
  message: error.message || "API调用失败",
183
183
  error,
184
- shouldShowError: true
184
+ shouldShowError: false
185
185
  // API 调用失败需要提示错误
186
186
  };
187
187
  } finally {
@@ -775,7 +775,7 @@ async function handleUpload(node, data, fields, context) {
775
775
  return {
776
776
  success: false,
777
777
  message: "上传失败",
778
- shouldShowError: true
778
+ shouldShowError: false
779
779
  };
780
780
  }
781
781
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const version = "5.5.69";
3
+ const version = "5.5.71";
4
4
  const packageJson = {
5
5
  version
6
6
  };