@kp-ui/lowcode 2.15.0-beta.6 → 2.15.0-beta.7

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 (166) hide show
  1. package/package.json +6 -2
  2. package/src/components/FormRender/useFormContext.js +15 -15
  3. package/src/components/FormRender/useFormContext.js.map +1 -1
  4. package/src/components/bi-widget/echartBar/echart-bar-widget.vue.js +8 -0
  5. package/src/components/bi-widget/echartBar/echart-bar-widget.vue.js.map +1 -0
  6. package/src/components/bi-widget/echartBar/echart-bar-widget.vue2.js +43 -0
  7. package/src/components/bi-widget/echartBar/echart-bar-widget.vue2.js.map +1 -0
  8. package/src/components/bi-widget/echartBar/echart-bar.js +35 -0
  9. package/src/components/bi-widget/echartBar/echart-bar.js.map +1 -0
  10. package/src/components/bi-widget/index.js +13 -0
  11. package/src/components/bi-widget/index.js.map +1 -0
  12. package/src/components/{form-designer/designer.js → designer.js} +71 -76
  13. package/src/components/designer.js.map +1 -0
  14. package/src/components/form-designer/form-widget/RenderDesignerPC.vue.js +26 -0
  15. package/src/components/form-designer/form-widget/RenderDesignerPC.vue.js.map +1 -0
  16. package/src/components/form-designer/form-widget/RenderDesignerPC.vue2.js +5 -0
  17. package/src/components/form-designer/form-widget/RenderDesignerPC.vue2.js.map +1 -0
  18. package/src/components/form-designer/form-widget/RenderDesignerWigetList.vue.js +1 -1
  19. package/src/components/form-designer/form-widget/RenderDesignerWigetList.vue.js.map +1 -1
  20. package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue.js +8 -0
  21. package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue.js.map +1 -0
  22. package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue2.js +68 -0
  23. package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue2.js.map +1 -0
  24. package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue.js +8 -0
  25. package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue.js.map +1 -0
  26. package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue2.js +136 -0
  27. package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue2.js.map +1 -0
  28. package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue.js +8 -0
  29. package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue.js.map +1 -0
  30. package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue2.js +153 -0
  31. package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue2.js.map +1 -0
  32. package/src/components/form-designer/form-widget/bi/useRuler.js +66 -0
  33. package/src/components/form-designer/form-widget/bi/useRuler.js.map +1 -0
  34. package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue.js +2 -2
  35. package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue2.js +24 -21
  36. package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue2.js.map +1 -1
  37. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue.js +2 -2
  38. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue2.js +36 -34
  39. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue2.js.map +1 -1
  40. package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue.js +1 -1
  41. package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue2.js +1 -1
  42. package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue2.js.map +1 -1
  43. package/src/components/form-designer/form-widget/field-widget/index.js +1 -1
  44. package/src/components/form-designer/form-widget/field-widget/index.js.map +1 -1
  45. package/src/components/form-designer/form-widget/field-widget/useField.js +117 -117
  46. package/src/components/form-designer/form-widget/field-widget/useField.js.map +1 -1
  47. package/src/components/form-designer/form-widget/index.vue.js +2 -2
  48. package/src/components/form-designer/form-widget/index.vue2.js +47 -56
  49. package/src/components/form-designer/form-widget/index.vue2.js.map +1 -1
  50. package/src/components/form-designer/index.vue.js +74 -77
  51. package/src/components/form-designer/index.vue.js.map +1 -1
  52. package/src/components/form-designer/setting-panel/form-setting.vue.js +1 -1
  53. package/src/components/form-designer/setting-panel/form-setting.vue2.js +1 -1
  54. package/src/components/form-designer/setting-panel/form-setting.vue2.js.map +1 -1
  55. package/src/components/form-designer/setting-panel/index.vue.js +1 -1
  56. package/src/components/form-designer/setting-panel/index.vue2.js +1 -1
  57. package/src/components/form-designer/setting-panel/index.vue2.js.map +1 -1
  58. package/src/components/form-designer/setting-panel/option-items-setting.vue.js +2 -2
  59. package/src/components/form-designer/setting-panel/option-items-setting.vue2.js +1 -1
  60. package/src/components/form-designer/setting-panel/option-items-setting.vue2.js.map +1 -1
  61. package/src/components/form-designer/setting-panel/panel/PanelItemDrag.vue.js +51 -0
  62. package/src/components/form-designer/setting-panel/panel/PanelItemDrag.vue.js.map +1 -0
  63. package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue.js +51 -0
  64. package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue.js.map +1 -0
  65. package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue2.js +5 -0
  66. package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue2.js.map +1 -0
  67. package/src/components/form-designer/setting-panel/property-editor/boxModel-editor.vue.js +1 -1
  68. package/src/components/form-designer/setting-panel/property-editor/boxModel-editor.vue2.js +201 -255
  69. package/src/components/form-designer/setting-panel/property-editor/boxModel-editor.vue2.js.map +1 -1
  70. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-customClass-editor.vue2.js +1 -1
  71. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-customClass-editor.vue2.js.map +1 -1
  72. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-dsEnabled-editor.vue2.js +1 -1
  73. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-dsEnabled-editor.vue2.js.map +1 -1
  74. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue.js +1 -1
  75. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue2.js +1 -1
  76. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue2.js.map +1 -1
  77. package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue.js +2 -2
  78. package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue2.js +1 -1
  79. package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue2.js.map +1 -1
  80. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-span-editor.vue2.js +1 -1
  81. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-span-editor.vue2.js.map +1 -1
  82. package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue.js +1 -1
  83. package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue2.js +1 -1
  84. package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue2.js.map +1 -1
  85. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/height-editor.vue2.js.map +1 -1
  86. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/width-editor.vue2.js +10 -10
  87. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/width-editor.vue2.js.map +1 -1
  88. package/src/components/form-designer/setting-panel/property-editor/customClass-editor.vue2.js +1 -1
  89. package/src/components/form-designer/setting-panel/property-editor/customClass-editor.vue2.js.map +1 -1
  90. package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue.js +5 -0
  91. package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue.js.map +1 -0
  92. package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue2.js +71 -0
  93. package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue2.js.map +1 -0
  94. package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue.js +5 -0
  95. package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue.js.map +1 -0
  96. package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue2.js +81 -0
  97. package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue2.js.map +1 -0
  98. package/src/components/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue2.js +1 -1
  99. package/src/components/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue2.js.map +1 -1
  100. package/src/components/form-designer/setting-panel/property-editor/field-slider/range-editor.vue2.js +1 -1
  101. package/src/components/form-designer/setting-panel/property-editor/field-slider/range-editor.vue2.js.map +1 -1
  102. package/src/components/form-designer/setting-panel/property-editor/field-switch/switch-defaultValue-editor.vue2.js +1 -1
  103. package/src/components/form-designer/setting-panel/property-editor/field-switch/switch-defaultValue-editor.vue2.js.map +1 -1
  104. package/src/components/form-designer/setting-panel/property-editor/index.js +54 -54
  105. package/src/components/form-designer/setting-panel/property-editor/index.js.map +1 -1
  106. package/src/components/form-designer/setting-panel/property-editor/multiple-editor.vue2.js.map +1 -1
  107. package/src/components/form-designer/setting-panel/property-editor/optionItems-editor.vue2.js +1 -1
  108. package/src/components/form-designer/setting-panel/property-editor/optionItems-editor.vue2.js.map +1 -1
  109. package/src/components/form-designer/setting-panel/property-editor/rightSlotCss-editor.vue2.js +1 -1
  110. package/src/components/form-designer/setting-panel/property-editor/rightSlotCss-editor.vue2.js.map +1 -1
  111. package/src/components/form-designer/setting-panel/property-editor/type-editor.vue2.js.map +1 -1
  112. package/src/components/form-designer/setting-panel/property-editor/useEditor.js +1 -1
  113. package/src/components/form-designer/setting-panel/property-editor/useEditor.js.map +1 -1
  114. package/src/components/form-designer/setting-panel/propertyRegister.js +12 -10
  115. package/src/components/form-designer/setting-panel/propertyRegister.js.map +1 -1
  116. package/src/components/form-designer/toolbar-panel/PreviewDialog.vue.js +1 -1
  117. package/src/components/form-designer/toolbar-panel/PreviewDialog.vue.js.map +1 -1
  118. package/src/components/form-designer/toolbar-panel/index.vue.js +2 -2
  119. package/src/components/form-designer/toolbar-panel/index.vue2.js +137 -177
  120. package/src/components/form-designer/toolbar-panel/index.vue2.js.map +1 -1
  121. package/src/components/form-designer/widget-panel/containers/vf-box.js +4 -1
  122. package/src/components/form-designer/widget-panel/containers/vf-box.js.map +1 -1
  123. package/src/components/form-designer/widget-panel/containers/vf-collapse.js +6 -6
  124. package/src/components/form-designer/widget-panel/containers/vf-collapse.js.map +1 -1
  125. package/src/components/form-designer/widget-panel/index.vue.js +2 -2
  126. package/src/components/form-designer/widget-panel/index.vue2.js +74 -34
  127. package/src/components/form-designer/widget-panel/index.vue2.js.map +1 -1
  128. package/src/components/form-render/container-items/vf-box-widget.vue.js +2 -2
  129. package/src/components/form-render/container-items/vf-box-widget.vue2.js +19 -17
  130. package/src/components/form-render/container-items/vf-box-widget.vue2.js.map +1 -1
  131. package/src/components/form-render/container-items/vf-collapse-widget.vue.js +1 -1
  132. package/src/components/form-render/container-items/vf-collapse-widget.vue2.js +24 -22
  133. package/src/components/form-render/container-items/vf-collapse-widget.vue2.js.map +1 -1
  134. package/src/components/form-render/dynamic-dialog.vue.js +1 -0
  135. package/src/components/form-render/dynamic-dialog.vue.js.map +1 -1
  136. package/src/constants/EditorTypeEnum.js +1 -1
  137. package/src/constants/EditorTypeEnum.js.map +1 -1
  138. package/src/constants/LayoutTypeEnum.js +5 -0
  139. package/src/constants/LayoutTypeEnum.js.map +1 -0
  140. package/src/constants/WidgetTypeEnum.js +4 -3
  141. package/src/constants/WidgetTypeEnum.js.map +1 -1
  142. package/src/hooks/useDesigner.js +51 -0
  143. package/src/hooks/useDesigner.js.map +1 -0
  144. package/src/lang/en-US.js +1 -1
  145. package/src/lang/en-US.js.map +1 -1
  146. package/src/lang/zh-CN.js +5 -3
  147. package/src/lang/zh-CN.js.map +1 -1
  148. package/src/utils/util.js +1 -1
  149. package/src/utils/util.js.map +1 -1
  150. package/stats.html +1 -1
  151. package/styles/style.css +1 -1
  152. package/src/components/form-designer/designer.js.map +0 -1
  153. package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue.js +0 -8
  154. package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue.js.map +0 -1
  155. package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue2.js +0 -58
  156. package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue2.js.map +0 -1
  157. package/src/components/form-designer/form-widget/useFormDesigner.js +0 -34
  158. package/src/components/form-designer/form-widget/useFormDesigner.js.map +0 -1
  159. package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue.js +0 -32
  160. package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue.js.map +0 -1
  161. package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue.js +0 -32
  162. package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue.js.map +0 -1
  163. package/src/components/form-designer/widget-panel/PanelItemDrag.vue.js +0 -50
  164. package/src/components/form-designer/widget-panel/PanelItemDrag.vue.js.map +0 -1
  165. /package/src/components/form-designer/{widget-panel → setting-panel/panel}/PanelItemDrag.vue2.js +0 -0
  166. /package/src/components/form-designer/{widget-panel → setting-panel/panel}/PanelItemDrag.vue2.js.map +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kp-ui/lowcode",
3
- "version": "2.15.0-beta.6",
3
+ "version": "2.15.0-beta.7",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -13,6 +13,8 @@
13
13
  "clipboard": "^2.0.8",
14
14
  "core-js": "^3.6.5",
15
15
  "dayjs": "^1.11.10",
16
+ "echarts": "^5.6.0",
17
+ "es-drager": "^1.3.2",
16
18
  "file-saver": "^2.0.5",
17
19
  "json-bigint": "^1.0.0",
18
20
  "lodash-es": "^4.17.21",
@@ -25,7 +27,9 @@
25
27
  "vite": "6.3.3",
26
28
  "vite-plugin-lazy-import": "^1.0.7",
27
29
  "vue": "3.5.17",
28
- "vue-router": "4.2.4"
30
+ "vue-echarts": "^8.0.1",
31
+ "vue-router": "4.2.4",
32
+ "vue3-sketch-ruler": "^2.3.3"
29
33
  },
30
34
  "main": "install.js",
31
35
  "types": "types/install.d.ts",
@@ -1,6 +1,6 @@
1
- import { ref as l, provide as f, computed as m, watchEffect as le, onMounted as fe, nextTick as ce } from "vue";
1
+ import { ref as l, provide as c, computed as m, watchEffect as le, onMounted as ce, nextTick as fe } from "vue";
2
2
  import { useFormValidation as V } from "./formValidation.js";
3
- import { insertCustomCssToHead as ue, insertGlobalFunctionsToHtml as me, getContainerWidgetByName as B, cloneFormConfigWithoutEventHandler as de, generateId as ve } from "../../utils/util.js";
3
+ import { getContainerWidgetByName as B, cloneFormConfigWithoutEventHandler as ue, insertCustomCssToHead as me, insertGlobalFunctionsToHtml as de, generateId as ve } from "../../utils/util.js";
4
4
  import { set as ge, cloneDeep as pe } from "lodash-es";
5
5
  import { message as H } from "ant-design-vue";
6
6
  import { useI18n as Ce } from "../../utils/i18n.js";
@@ -12,12 +12,12 @@ import { useEmitter as xe } from "../../utils/useEmitter.js";
12
12
  import { useAppRef as ye } from "../form-designer/useAppRef.js";
13
13
  const Te = ({ renderForm: D, props: i }) => {
14
14
  const { formJson: x } = i, C = we(De), { i18nt: d } = Ce(), [y, J] = he(!1), F = xe(), v = l(), a = l({}), L = l(!1), w = l(/* @__PURE__ */ new Map()), b = l({}), P = l(), h = Symbol("formWidget");
15
- f("refList", w), f("getFormConfig", () => o.value), f("formData", a), f("getReadMode", () => y.value), f("designState", !1);
15
+ c("refList", w), c("formData", a), c("getReadMode", () => y.value), c("designState", !1);
16
16
  const M = l(), { executeFunction: T, context: g, execHttpFunction: W } = Re(), { getFormRef: R, getWidgetRef: $, registerToRefList: k } = ye(w, h), o = m(() => {
17
17
  var e;
18
18
  return ((e = v.value) == null ? void 0 : e.formConfig) || {};
19
19
  });
20
- f("formConfig", o), f("formWidgetId", h);
20
+ c("formConfig", o), c("formWidgetId", h);
21
21
  const p = m(() => {
22
22
  var e;
23
23
  return ((e = v.value) == null ? void 0 : e.widgetList) || [];
@@ -33,12 +33,12 @@ const Te = ({ renderForm: D, props: i }) => {
33
33
  var e;
34
34
  return ((e = o.value) == null ? void 0 : e.customClass) || "";
35
35
  });
36
- let c = V(D, p.value || []);
36
+ let f = V(D, p.value || []);
37
37
  le(() => {
38
- c = V(D, p.value || []);
38
+ f = V(D, p.value || []);
39
39
  });
40
40
  const E = async (e) => {
41
- console.log({ json: e }), v.value = e || { widgetList: [], formConfig: {} }, a.value = {}, await ce(), ne();
41
+ console.log({ json: e }), v.value = e || { widgetList: [], formConfig: {} }, a.value = {}, re(), await fe(), ne();
42
42
  }, S = () => a.value || {}, z = (e) => {
43
43
  e && Object.keys(e).forEach((t) => {
44
44
  Object.prototype.hasOwnProperty.call(a.value, t) && (a.value[t] = e[t]);
@@ -46,9 +46,9 @@ const Te = ({ renderForm: D, props: i }) => {
46
46
  }, A = (e) => {
47
47
  L.value = e;
48
48
  }, G = () => {
49
- c.resetValidation();
49
+ f.resetValidation();
50
50
  }, K = () => {
51
- c.clearValidate();
51
+ f.clearValidate();
52
52
  }, Q = (e) => {
53
53
  M.value = e;
54
54
  }, X = () => {
@@ -71,7 +71,7 @@ const Te = ({ renderForm: D, props: i }) => {
71
71
  }
72
72
  const u = {
73
73
  widgetList: pe((s == null ? void 0 : s.widgetList) || []),
74
- formConfig: de(((I = n == null ? void 0 : n.formConfig) == null ? void 0 : I.value) || {})
74
+ formConfig: ue(((I = n == null ? void 0 : n.formConfig) == null ? void 0 : I.value) || {})
75
75
  }, ie = Fe();
76
76
  b.value = {
77
77
  options: s.options,
@@ -97,7 +97,7 @@ const Te = ({ renderForm: D, props: i }) => {
97
97
  });
98
98
  return console.log("res: ", t), t;
99
99
  }, oe = async () => {
100
- if (!await c.validate()) throw new Error(d("表单验证失败"));
100
+ if (!await f.validate()) throw new Error(d("表单验证失败"));
101
101
  const t = o.value.serveList, r = await W(t.vformUpdate, {
102
102
  data: a.value,
103
103
  vfCtx: i.vfCtx
@@ -110,7 +110,7 @@ const Te = ({ renderForm: D, props: i }) => {
110
110
  }));
111
111
  }, re = () => {
112
112
  const e = "vfRender" + ve(), { cssCode: t, functions: r } = o.value;
113
- t && ue(t, e || ""), r && me(r, e || "");
113
+ console.log({ cssCode: t }), t && me(t, e || ""), r && de(r, e || "");
114
114
  }, se = () => {
115
115
  var t;
116
116
  const e = (t = g.value) == null ? void 0 : t.$router;
@@ -130,8 +130,8 @@ const Te = ({ renderForm: D, props: i }) => {
130
130
  u == null || u.go(-1);
131
131
  }
132
132
  };
133
- return fe(() => {
134
- x && E(x), ee(), re();
133
+ return ce(() => {
134
+ x && E(x), ee();
135
135
  }), {
136
136
  i18nt: d,
137
137
  goBack: ae,
@@ -162,7 +162,7 @@ const Te = ({ renderForm: D, props: i }) => {
162
162
  readModeFlag: y,
163
163
  // 引用
164
164
  widgetRefList: w,
165
- formValidator: c,
165
+ formValidator: f,
166
166
  // 计算属性
167
167
  formConfig: o,
168
168
  widgetList: p,
@@ -1 +1 @@
1
- {"version":3,"file":"useFormContext.js","sources":["../../../../src/components/FormRender/useFormContext.ts"],"sourcesContent":["import { computed, nextTick, onMounted, provide, ref, watchEffect } from 'vue';\nimport { useFormValidation } from './formValidation';\n\n/**\n * 表单上下文接口\n */\nimport { Widget } from '@/types/schema';\nimport {\n cloneFormConfigWithoutEventHandler,\n generateId,\n getContainerWidgetByName,\n insertCustomCssToHead,\n insertGlobalFunctionsToHtml\n} from '@/utils/util';\nimport { cloneDeep, set } from 'lodash-es';\nimport { message } from 'ant-design-vue';\nimport { useI18n } from '@/utils/i18n';\nimport { getUuidKey } from '@kp-ui/tool';\nimport { routerReloadStatus, useComRef, useExecFunction, useRef } from 'tmgc2-share';\nimport DynamicDialog from '../form-render/dynamic-dialog.vue';\nimport { useEmitter } from '@/utils/useEmitter';\nimport { useAppRef } from '../form-designer/useAppRef';\nexport interface FormRenderProps {\n vfCtx?: Record<string, any>;\n formJson?: any;\n formData?: Record<string, any>;\n optionData?: Record<string, any>;\n disabledMode?: boolean;\n renderConfig?: {\n languageName?: string;\n };\n globalDsv?: Record<string, any>;\n parentForm?: any;\n dynamicCreation?: boolean;\n debug?: boolean;\n}\n\n/**\n * 表单上下文配置\n */\nexport interface FormContextOptions {\n props: FormRenderProps;\n renderForm: any;\n}\n\n/**\n * 创建表单上下文\n * @param options 表单上下文配置\n * @returns 表单上下文\n */\nexport const useFormContext = ({ renderForm, props }: FormContextOptions) => {\n const { formJson } = props;\n const dynamicDialgRef = useComRef(DynamicDialog);\n const { i18nt } = useI18n();\n const [readModeFlag, setReadMode] = useRef(false);\n\n const emitter = useEmitter();\n\n const formJsonObj = ref();\n // 状态变量\n const formDataModel = ref<Record<string, any>>({});\n const isLoading = ref(false);\n const widgetRefList = ref<Map<string, any>>(new Map());\n const dialogProps = ref({});\n const childFormRef = ref();\n\n const formWidgetId = Symbol('formWidget');\n\n // 提供给子组件的数据\n provide('refList', widgetRefList);\n provide('getFormConfig', () => formConfig.value);\n provide('formData', formDataModel);\n provide('getReadMode', () => readModeFlag.value);\n provide('designState', false); // 设计态标识\n\n const dialogOrDrawerRef = ref();\n\n const { executeFunction, context, execHttpFunction } = useExecFunction();\n const { getFormRef, getWidgetRef, registerToRefList } = useAppRef(widgetRefList, formWidgetId);\n\n // 计算属性\n const formConfig = computed(() => formJsonObj.value?.formConfig || {});\n\n provide('formConfig', formConfig);\n provide('formWidgetId', formWidgetId);\n\n const widgetList = computed(() => formJsonObj.value?.widgetList || []);\n const labelPosition = computed(() => {\n return formConfig.value?.labelPosition || 'horizontal';\n });\n\n const setChildFormRef = chid => {\n childFormRef.value = chid;\n };\n\n const labelWidth = computed(() => {\n return formConfig.value?.labelWidth ? `${formConfig.value.labelWidth}px` : '80px';\n });\n\n const customClass = computed(() => {\n return formConfig.value?.customClass || '';\n });\n\n // 初始化表单验证器\n let formValidator = useFormValidation(renderForm, widgetList.value || []);\n\n // 监听 widgetList 变化,重新初始化验证器\n watchEffect(() => {\n formValidator = useFormValidation(renderForm, widgetList.value || []);\n });\n\n /**\n * 设置表单JSON数据\n */\n const setFormJson = async (json: any) => {\n console.log({ json });\n\n formJsonObj.value = json || { widgetList: [], formConfig: {} };\n // 重新构建表单数据模型\n formDataModel.value = {};\n\n await nextTick();\n handleOnMounted();\n };\n\n /**\n * 获取表单数据\n */\n const getFormData = () => {\n return formDataModel.value || {};\n };\n\n /**\n * 设置表单数据\n */\n const setFormData = (data: Record<string, any>) => {\n if (!data) return;\n // 更新表单数据模型\n Object.keys(data).forEach(key => {\n if (Object.prototype.hasOwnProperty.call(formDataModel.value, key)) {\n formDataModel.value[key] = data[key];\n }\n });\n };\n\n /**\n * 设置加载状态\n */\n const setLoading = (loading: boolean) => {\n isLoading.value = loading;\n };\n\n /**\n * 重置表单验证\n */\n const resetValidation = () => {\n formValidator.resetValidation();\n };\n\n /**\n * 清除表单验证\n */\n const clearValidate = () => {\n formValidator.clearValidate();\n };\n\n const setDialogOrDrawerRef = (ddRef: any) => {\n dialogOrDrawerRef.value = ddRef;\n };\n\n /**\n * 当显示多级嵌套弹窗或抽屉时,获取最顶层VFormRender组件实例\n * @returns {object}\n */\n const getTopFormRef = () => {\n if (!props.parentForm) {\n return getFormRef();\n }\n\n let topFormRef = props.parentForm;\n while (topFormRef.parentForm) {\n topFormRef = topFormRef.parentForm;\n }\n\n return topFormRef;\n };\n\n /**\n * 显示弹窗表单,动态创建v-form-render组件,option-data、global-dsv等属性继承父级表单\n * @param dialogName\n * @param formData\n * @param extraData\n */\n const showDialog = (dialogName, formData = {}, extraData = {}) => {\n const topFormRef = getTopFormRef();\n const dialogCon = (getContainerWidgetByName(topFormRef?.widgetList || [], dialogName) ||\n getContainerWidgetByName(widgetList.value || [], dialogName)) as Widget | null;\n\n if (dialogCon === null) {\n message.error(i18nt('render.hint.refNotFound') + dialogName);\n return;\n }\n\n if (!dialogName || dialogCon.type !== 'vf-dialog') {\n message.error(i18nt('render.hint.refNotFound') + dialogName);\n return;\n }\n const dFormJson = {\n widgetList: cloneDeep(dialogCon?.widgetList || []),\n formConfig: cloneFormConfigWithoutEventHandler(topFormRef?.formConfig?.value || {})\n };\n const wrapperDivId = getUuidKey();\n dialogProps.value = {\n options: dialogCon.options,\n formJson: dFormJson,\n formData: { ...formData },\n optionData: topFormRef.optionData,\n globalDsv: topFormRef.globalDsv,\n parentFormRef: context.value,\n extraData: extraData,\n wrapperId: wrapperDivId,\n vfCtx: { ...formData }\n };\n\n dynamicDialgRef.value?.show();\n };\n /**\n * 获取父级VFormRender组件实例\n * @returns {object}\n */\n const getParentFormRef = () => {\n return props.parentForm;\n };\n\n const getChildFormRef = () => {\n return dynamicDialgRef.value?.getFormRef();\n };\n\n /**\n * 字段值变化事件处理器\n */\n const fieldChangeEventHandler = () => {\n emitter.off$('fieldChange');\n emitter.on$('fieldChange', ({ fieldName, value }) => {\n // 过滤掉错误值\n if (typeof fieldName !== 'undefined' && typeof value !== 'undefined') {\n set(formDataModel.value, fieldName, value);\n }\n });\n };\n\n const onFormDetail = async () => {\n const serveList = formConfig.value.serveList;\n const res = await execHttpFunction(serveList.vformDetail, {\n vfCtx: props.vfCtx\n });\n console.log('res: ', res);\n return res;\n };\n\n const onFormUpdate = async () => {\n const valid = await formValidator.validate();\n if (!valid) throw new Error(i18nt('表单验证失败'));\n\n const serveList = formConfig.value.serveList;\n const res = await execHttpFunction(serveList.vformUpdate, {\n data: formDataModel.value,\n vfCtx: props.vfCtx\n });\n console.log('res: ', res);\n return res;\n };\n\n const handleOnMounted = () => {\n if (formConfig.value?.onFormMounted) {\n console.log('onFormMounted: ');\n executeFunction({\n functionBody: formConfig.value?.onFormMounted\n });\n }\n };\n\n /**\n * 插入自定义样式和脚本\n * @param cssCode CSS代码\n * @param functions 自定义函数\n * @param formId 表单ID\n */\n const insertCustomCode = () => {\n const formId = 'vfRender' + generateId();\n const { cssCode, functions } = formConfig.value;\n if (cssCode) {\n insertCustomCssToHead(cssCode, formId || '');\n }\n if (functions) {\n insertGlobalFunctionsToHtml(functions, formId || '');\n }\n };\n\n const reload = () => {\n const router = context.value?.$router;\n router?.replace({\n query: {\n ...router.currentRoute.value.query,\n _t: Date.now()\n }\n });\n };\n\n const goBack = (reloadStatus?: routerReloadStatus, cb?: () => void) => {\n const goBack = getFormRef().vfCtx?.goBack;\n if (typeof goBack === 'function') {\n goBack(reloadStatus, cb);\n } else {\n const router = context.value?.$router;\n router?.go(-1);\n }\n };\n\n onMounted(() => {\n if (formJson) {\n setFormJson(formJson);\n }\n fieldChangeEventHandler();\n insertCustomCode();\n });\n\n return {\n i18nt,\n goBack,\n reload,\n formWidgetId,\n vfCtx: props.vfCtx,\n getParentFormRef,\n getFormRef,\n getWidgetRef,\n registerToRefList,\n dialogOrDrawerRef,\n setDialogOrDrawerRef,\n showDialog,\n setFormData,\n setReadMode,\n setFormJson,\n setLoading,\n onFormDetail,\n onFormUpdate,\n emitter,\n context,\n getFormData,\n getChildFormRef,\n // 状态\n formJsonObj,\n formDataModel,\n isLoading,\n readModeFlag,\n\n // 引用\n widgetRefList,\n\n formValidator,\n\n // 计算属性\n formConfig,\n widgetList,\n labelPosition,\n labelWidth,\n customClass,\n dynamicDialgRef,\n dialogProps,\n\n setChildFormRef,\n resetValidation,\n clearValidate\n };\n};\n"],"names":["useFormContext","renderForm","props","formJson","dynamicDialgRef","useComRef","DynamicDialog","i18nt","useI18n","readModeFlag","setReadMode","useRef","emitter","useEmitter","formJsonObj","ref","formDataModel","isLoading","widgetRefList","dialogProps","childFormRef","formWidgetId","provide","formConfig","dialogOrDrawerRef","executeFunction","context","execHttpFunction","useExecFunction","getFormRef","getWidgetRef","registerToRefList","useAppRef","computed","_a","widgetList","labelPosition","setChildFormRef","chid","labelWidth","customClass","formValidator","useFormValidation","watchEffect","setFormJson","json","nextTick","handleOnMounted","getFormData","setFormData","data","key","setLoading","loading","resetValidation","clearValidate","setDialogOrDrawerRef","ddRef","getTopFormRef","topFormRef","showDialog","dialogName","formData","extraData","dialogCon","getContainerWidgetByName","message","dFormJson","cloneDeep","cloneFormConfigWithoutEventHandler","wrapperDivId","getUuidKey","_b","getParentFormRef","getChildFormRef","fieldChangeEventHandler","fieldName","value","set","onFormDetail","serveList","res","onFormUpdate","insertCustomCode","formId","generateId","cssCode","functions","insertCustomCssToHead","insertGlobalFunctionsToHtml","reload","router","goBack","reloadStatus","cb","onMounted"],"mappings":"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"}
1
+ {"version":3,"file":"useFormContext.js","sources":["../../../../src/components/FormRender/useFormContext.ts"],"sourcesContent":["import { computed, nextTick, onMounted, provide, ref, watchEffect } from 'vue';\nimport { useFormValidation } from './formValidation';\n\n/**\n * 表单上下文接口\n */\nimport { FormConfig, Widget } from '@/types/schema';\nimport {\n cloneFormConfigWithoutEventHandler,\n generateId,\n getContainerWidgetByName,\n insertCustomCssToHead,\n insertGlobalFunctionsToHtml\n} from '@/utils/util';\nimport { cloneDeep, set } from 'lodash-es';\nimport { message } from 'ant-design-vue';\nimport { useI18n } from '@/utils/i18n';\nimport { getUuidKey } from '@kp-ui/tool';\nimport { routerReloadStatus, useComRef, useExecFunction, useRef } from 'tmgc2-share';\nimport DynamicDialog from '../form-render/dynamic-dialog.vue';\nimport { useEmitter } from '@/utils/useEmitter';\nimport { useAppRef } from '../form-designer/useAppRef';\nexport interface FormRenderProps {\n vfCtx?: Record<string, any>;\n formJson?: any;\n formData?: Record<string, any>;\n optionData?: Record<string, any>;\n disabledMode?: boolean;\n renderConfig?: {\n languageName?: string;\n };\n globalDsv?: Record<string, any>;\n parentForm?: any;\n dynamicCreation?: boolean;\n debug?: boolean;\n}\n\n/**\n * 表单上下文配置\n */\nexport interface FormContextOptions {\n props: FormRenderProps;\n renderForm: any;\n}\n\n/**\n * 创建表单上下文\n * @param options 表单上下文配置\n * @returns 表单上下文\n */\nexport const useFormContext = ({ renderForm, props }: FormContextOptions) => {\n const { formJson } = props;\n const dynamicDialgRef = useComRef(DynamicDialog);\n const { i18nt } = useI18n();\n const [readModeFlag, setReadMode] = useRef(false);\n\n const emitter = useEmitter();\n\n const formJsonObj = ref();\n // 状态变量\n const formDataModel = ref<Record<string, any>>({});\n const isLoading = ref(false);\n const widgetRefList = ref<Map<string, any>>(new Map());\n const dialogProps = ref({});\n const childFormRef = ref();\n\n const formWidgetId = Symbol('formWidget');\n\n // 提供给子组件的数据\n provide('refList', widgetRefList);\n provide('formData', formDataModel);\n provide('getReadMode', () => readModeFlag.value);\n provide('designState', false); // 设计态标识\n\n const dialogOrDrawerRef = ref();\n\n const { executeFunction, context, execHttpFunction } = useExecFunction();\n const { getFormRef, getWidgetRef, registerToRefList } = useAppRef(widgetRefList, formWidgetId);\n\n // 计算属性\n const formConfig = computed<FormConfig>(() => formJsonObj.value?.formConfig || {});\n\n provide('formConfig', formConfig);\n provide('formWidgetId', formWidgetId);\n\n const widgetList = computed(() => formJsonObj.value?.widgetList || []);\n const labelPosition = computed(() => {\n return formConfig.value?.labelPosition || 'horizontal';\n });\n\n const setChildFormRef = chid => {\n childFormRef.value = chid;\n };\n\n const labelWidth = computed(() => {\n return formConfig.value?.labelWidth ? `${formConfig.value.labelWidth}px` : '80px';\n });\n\n const customClass = computed(() => {\n return formConfig.value?.customClass || '';\n });\n\n // 初始化表单验证器\n let formValidator = useFormValidation(renderForm, widgetList.value || []);\n\n // 监听 widgetList 变化,重新初始化验证器\n watchEffect(() => {\n formValidator = useFormValidation(renderForm, widgetList.value || []);\n });\n\n /**\n * 设置表单JSON数据\n */\n const setFormJson = async (json: any) => {\n console.log({ json });\n\n formJsonObj.value = json || { widgetList: [], formConfig: {} };\n // 重新构建表单数据模型\n formDataModel.value = {};\n insertCustomCode();\n await nextTick();\n handleOnMounted();\n };\n\n /**\n * 获取表单数据\n */\n const getFormData = () => {\n return formDataModel.value || {};\n };\n\n /**\n * 设置表单数据\n */\n const setFormData = (data: Record<string, any>) => {\n if (!data) return;\n // 更新表单数据模型\n Object.keys(data).forEach(key => {\n if (Object.prototype.hasOwnProperty.call(formDataModel.value, key)) {\n formDataModel.value[key] = data[key];\n }\n });\n };\n\n /**\n * 设置加载状态\n */\n const setLoading = (loading: boolean) => {\n isLoading.value = loading;\n };\n\n /**\n * 重置表单验证\n */\n const resetValidation = () => {\n formValidator.resetValidation();\n };\n\n /**\n * 清除表单验证\n */\n const clearValidate = () => {\n formValidator.clearValidate();\n };\n\n const setDialogOrDrawerRef = (ddRef: any) => {\n dialogOrDrawerRef.value = ddRef;\n };\n\n /**\n * 当显示多级嵌套弹窗或抽屉时,获取最顶层VFormRender组件实例\n * @returns {object}\n */\n const getTopFormRef = () => {\n if (!props.parentForm) {\n return getFormRef();\n }\n\n let topFormRef = props.parentForm;\n while (topFormRef.parentForm) {\n topFormRef = topFormRef.parentForm;\n }\n\n return topFormRef;\n };\n\n /**\n * 显示弹窗表单,动态创建v-form-render组件,option-data、global-dsv等属性继承父级表单\n * @param dialogName\n * @param formData\n * @param extraData\n */\n const showDialog = (dialogName, formData = {}, extraData = {}) => {\n const topFormRef = getTopFormRef();\n const dialogCon = (getContainerWidgetByName(topFormRef?.widgetList || [], dialogName) ||\n getContainerWidgetByName(widgetList.value || [], dialogName)) as Widget | null;\n\n if (dialogCon === null) {\n message.error(i18nt('render.hint.refNotFound') + dialogName);\n return;\n }\n\n if (!dialogName || dialogCon.type !== 'vf-dialog') {\n message.error(i18nt('render.hint.refNotFound') + dialogName);\n return;\n }\n const dFormJson = {\n widgetList: cloneDeep(dialogCon?.widgetList || []),\n formConfig: cloneFormConfigWithoutEventHandler(topFormRef?.formConfig?.value || {})\n };\n const wrapperDivId = getUuidKey();\n dialogProps.value = {\n options: dialogCon.options,\n formJson: dFormJson,\n formData: { ...formData },\n optionData: topFormRef.optionData,\n globalDsv: topFormRef.globalDsv,\n parentFormRef: context.value,\n extraData: extraData,\n wrapperId: wrapperDivId,\n vfCtx: { ...formData }\n };\n\n dynamicDialgRef.value?.show();\n };\n /**\n * 获取父级VFormRender组件实例\n * @returns {object}\n */\n const getParentFormRef = () => {\n return props.parentForm;\n };\n\n const getChildFormRef = () => {\n return dynamicDialgRef.value?.getFormRef();\n };\n\n /**\n * 字段值变化事件处理器\n */\n const fieldChangeEventHandler = () => {\n emitter.off$('fieldChange');\n emitter.on$('fieldChange', ({ fieldName, value }) => {\n // 过滤掉错误值\n if (typeof fieldName !== 'undefined' && typeof value !== 'undefined') {\n set(formDataModel.value, fieldName, value);\n }\n });\n };\n\n const onFormDetail = async () => {\n const serveList = formConfig.value.serveList;\n const res = await execHttpFunction(serveList.vformDetail, {\n vfCtx: props.vfCtx\n });\n console.log('res: ', res);\n return res;\n };\n\n const onFormUpdate = async () => {\n const valid = await formValidator.validate();\n if (!valid) throw new Error(i18nt('表单验证失败'));\n\n const serveList = formConfig.value.serveList;\n const res = await execHttpFunction(serveList.vformUpdate, {\n data: formDataModel.value,\n vfCtx: props.vfCtx\n });\n console.log('res: ', res);\n return res;\n };\n\n const handleOnMounted = () => {\n if (formConfig.value?.onFormMounted) {\n console.log('onFormMounted: ');\n executeFunction({\n functionBody: formConfig.value?.onFormMounted\n });\n }\n };\n\n /**\n * 插入自定义样式和脚本\n * @param cssCode CSS代码\n * @param functions 自定义函数\n * @param formId 表单ID\n */\n const insertCustomCode = () => {\n const formId = 'vfRender' + generateId();\n const { cssCode, functions } = formConfig.value;\n console.log({ cssCode });\n\n if (cssCode) {\n insertCustomCssToHead(cssCode, formId || '');\n }\n if (functions) {\n insertGlobalFunctionsToHtml(functions, formId || '');\n }\n };\n\n const reload = () => {\n const router = context.value?.$router;\n router?.replace({\n query: {\n ...router.currentRoute.value.query,\n _t: Date.now()\n }\n });\n };\n\n const goBack = (reloadStatus?: routerReloadStatus, cb?: () => void) => {\n const goBack = getFormRef().vfCtx?.goBack;\n if (typeof goBack === 'function') {\n goBack(reloadStatus, cb);\n } else {\n const router = context.value?.$router;\n router?.go(-1);\n }\n };\n\n onMounted(() => {\n if (formJson) {\n setFormJson(formJson);\n }\n fieldChangeEventHandler();\n });\n\n return {\n i18nt,\n goBack,\n reload,\n formWidgetId,\n vfCtx: props.vfCtx,\n getParentFormRef,\n getFormRef,\n getWidgetRef,\n registerToRefList,\n dialogOrDrawerRef,\n setDialogOrDrawerRef,\n showDialog,\n setFormData,\n setReadMode,\n setFormJson,\n setLoading,\n onFormDetail,\n onFormUpdate,\n emitter,\n context,\n getFormData,\n getChildFormRef,\n // 状态\n formJsonObj,\n formDataModel,\n isLoading,\n readModeFlag,\n\n // 引用\n widgetRefList,\n\n formValidator,\n\n // 计算属性\n formConfig,\n widgetList,\n labelPosition,\n labelWidth,\n customClass,\n dynamicDialgRef,\n dialogProps,\n\n setChildFormRef,\n resetValidation,\n clearValidate\n };\n};\n"],"names":["useFormContext","renderForm","props","formJson","dynamicDialgRef","useComRef","DynamicDialog","i18nt","useI18n","readModeFlag","setReadMode","useRef","emitter","useEmitter","formJsonObj","ref","formDataModel","isLoading","widgetRefList","dialogProps","childFormRef","formWidgetId","provide","dialogOrDrawerRef","executeFunction","context","execHttpFunction","useExecFunction","getFormRef","getWidgetRef","registerToRefList","useAppRef","formConfig","computed","_a","widgetList","labelPosition","setChildFormRef","chid","labelWidth","customClass","formValidator","useFormValidation","watchEffect","setFormJson","json","insertCustomCode","nextTick","handleOnMounted","getFormData","setFormData","data","key","setLoading","loading","resetValidation","clearValidate","setDialogOrDrawerRef","ddRef","getTopFormRef","topFormRef","showDialog","dialogName","formData","extraData","dialogCon","getContainerWidgetByName","message","dFormJson","cloneDeep","cloneFormConfigWithoutEventHandler","wrapperDivId","getUuidKey","_b","getParentFormRef","getChildFormRef","fieldChangeEventHandler","fieldName","value","set","onFormDetail","serveList","res","onFormUpdate","formId","generateId","cssCode","functions","insertCustomCssToHead","insertGlobalFunctionsToHtml","reload","router","goBack","reloadStatus","cb","onMounted"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import t from "./echart-bar-widget.vue2.js";
2
+ /* empty css */
3
+ import o from "../../../../_virtual/_plugin-vue_export-helper.js";
4
+ const m = /* @__PURE__ */ o(t, [["__scopeId", "data-v-1b33e205"]]);
5
+ export {
6
+ m as default
7
+ };
8
+ //# sourceMappingURL=echart-bar-widget.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"echart-bar-widget.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,43 @@
1
+ import { defineComponent as i, computed as n, createBlock as p, openBlock as d, unref as c } from "vue";
2
+ import u from "../../../../node_modules/.pnpm/vue-echarts@8.0.1_echarts@5.6.0_vue@3.5.17_typescript@5.8.2_/node_modules/vue-echarts/dist/index.js";
3
+ import "../../../../node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/index.js";
4
+ const x = /* @__PURE__ */ i({
5
+ __name: "echart-bar-widget",
6
+ props: {
7
+ widget: {},
8
+ field: {},
9
+ parentWidget: {},
10
+ parentList: {},
11
+ indexOfParentList: {},
12
+ subFormRowIndex: {},
13
+ subFormRowId: {}
14
+ },
15
+ setup(o) {
16
+ const r = o, a = n(() => {
17
+ const { xAxisData: t, seriesData: e, barWidth: s } = r.widget.options;
18
+ return {
19
+ xAxis: {
20
+ data: t || []
21
+ },
22
+ yAxis: {},
23
+ series: [
24
+ {
25
+ name: "sales",
26
+ type: "bar",
27
+ data: e || [],
28
+ barWidth: s || void 0
29
+ }
30
+ ]
31
+ };
32
+ });
33
+ return (t, e) => (d(), p(c(u), {
34
+ class: "chart",
35
+ option: a.value,
36
+ autoresize: ""
37
+ }, null, 8, ["option"]));
38
+ }
39
+ });
40
+ export {
41
+ x as default
42
+ };
43
+ //# sourceMappingURL=echart-bar-widget.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"echart-bar-widget.vue2.js","sources":["../../../../../src/components/bi-widget/echartBar/echart-bar-widget.vue"],"sourcesContent":["<template>\n <VChart class=\"chart\" :option=\"option\" autoresize />\n</template>\n\n<script lang=\"ts\" setup>\n import { computed } from 'vue';\n import VChart from 'vue-echarts';\n // import { use } from 'echarts/core';\n // import { BarChart } from 'echarts/charts';\n // import { SVGRenderer } from 'echarts/renderers';\n // import { DatasetComponent, GridComponent, TransformComponent } from 'echarts/components';\n import { WidgetProps } from '@/components/form-designer/form-widget/container-widget/useContainerWidget';\n import 'echarts';\n\n // use([BarChart, SVGRenderer, GridComponent, DatasetComponent, TransformComponent]);\n\n const props = defineProps<WidgetProps>();\n\n const option = computed(() => {\n const { xAxisData, seriesData, barWidth } = props.widget.options;\n return {\n xAxis: {\n data: xAxisData || []\n },\n yAxis: {},\n series: [\n {\n name: 'sales',\n type: 'bar',\n data: seriesData || [],\n barWidth: barWidth || undefined\n }\n ]\n };\n });\n</script>\n\n<style scoped>\n .echart-bar-widget {\n width: 100%;\n height: 100%;\n }\n .chart {\n height: 100%;\n width: 100%;\n }\n</style>\n"],"names":["props","__props","option","computed","xAxisData","seriesData","barWidth","_createBlock","_unref","VChart"],"mappings":";;;;;;;;;;;;;;;AAgBI,UAAMA,IAAQC,GAERC,IAASC,EAAS,MAAM;AAC1B,YAAM,EAAE,WAAAC,GAAW,YAAAC,GAAY,UAAAC,EAAA,IAAaN,EAAM,OAAO;AACzD,aAAO;AAAA,QACH,OAAO;AAAA,UACH,MAAMI,KAAa,CAAA;AAAA,QAAC;AAAA,QAExB,OAAO,CAAA;AAAA,QACP,QAAQ;AAAA,UACJ;AAAA,YACI,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAMC,KAAc,CAAA;AAAA,YACpB,UAAUC,KAAY;AAAA,UAAA;AAAA,QAC1B;AAAA,MACJ;AAAA,IAER,CAAC;2BAjCDC,EAAoDC,EAAAC,CAAA,GAAA;AAAA,MAA5C,OAAM;AAAA,MAAS,QAAQP,EAAA;AAAA,MAAQ,YAAA;AAAA,IAAA;;;"}
@@ -0,0 +1,35 @@
1
+ import { BIWidgetTypeEnum as a } from "../../../constants/WidgetTypeEnum.js";
2
+ const e = {
3
+ type: a.echartBar,
4
+ category: "bi",
5
+ icon: "data-table",
6
+ options: {
7
+ name: "",
8
+ label: "echart-bar",
9
+ hidden: !1,
10
+ width: 300,
11
+ height: 200,
12
+ left: 0,
13
+ top: 0,
14
+ zIndex: 1,
15
+ customClass: [],
16
+ dataSource: [],
17
+ http: {
18
+ url: "",
19
+ method: "get",
20
+ data: {},
21
+ params: {}
22
+ },
23
+ dataReqHandlerCode: "",
24
+ dataHandlerCode: "",
25
+ echartBar: {
26
+ xAxisData: ["shirt", "cardigan", "chiffon", "pants", "heels", "socks"],
27
+ seriesData: [5, 20, 36, 10, 10, 20],
28
+ barWidth: ""
29
+ }
30
+ }
31
+ };
32
+ export {
33
+ e as echartBar
34
+ };
35
+ //# sourceMappingURL=echart-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"echart-bar.js","sources":["../../../../../src/components/bi-widget/echartBar/echart-bar.ts"],"sourcesContent":["import { BIWidgetTypeEnum } from '@/constants/WidgetTypeEnum';\nimport { BiWidgetOptions, Widget } from '@/types/schema';\n\nexport interface EchartBarOptions extends BiWidgetOptions {\n echartBar: {\n xAxisData: string[];\n seriesData: number[];\n barWidth: string;\n };\n}\n\nexport interface EchartBarWidget extends Widget<EchartBarOptions> {}\n\nexport const echartBar: EchartBarWidget = {\n type: BIWidgetTypeEnum.echartBar,\n category: 'bi',\n icon: 'data-table',\n options: {\n name: '',\n label: 'echart-bar',\n hidden: false,\n width: 300,\n height: 200,\n left: 0,\n top: 0,\n zIndex: 1,\n customClass: [],\n dataSource: [],\n http: {\n url: '',\n method: 'get',\n data: {},\n params: {}\n },\n dataReqHandlerCode: '',\n dataHandlerCode: '',\n\n echartBar: {\n xAxisData: ['shirt', 'cardigan', 'chiffon', 'pants', 'heels', 'socks'],\n seriesData: [5, 20, 36, 10, 10, 20],\n barWidth: ''\n }\n }\n};\n"],"names":["echartBar","BIWidgetTypeEnum"],"mappings":";AAaO,MAAMA,IAA6B;AAAA,EACtC,MAAMC,EAAiB;AAAA,EACvB,UAAU;AAAA,EACV,MAAM;AAAA,EACN,SAAS;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,aAAa,CAAA;AAAA,IACb,YAAY,CAAA;AAAA,IACZ,MAAM;AAAA,MACF,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,MAAM,CAAA;AAAA,MACN,QAAQ,CAAA;AAAA,IAAC;AAAA,IAEb,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,IAEjB,WAAW;AAAA,MACP,WAAW,CAAC,SAAS,YAAY,WAAW,SAAS,SAAS,OAAO;AAAA,MACrE,YAAY,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE;AAAA,MAClC,UAAU;AAAA,IAAA;AAAA,EACd;AAER;"}
@@ -0,0 +1,13 @@
1
+ import { BIWidgetTypeEnum as o } from "../../constants/WidgetTypeEnum.js";
2
+ import { defineAsyncComponent as t } from "vue";
3
+ import { echartBar as r } from "./echartBar/echart-bar.js";
4
+ const n = {
5
+ [o.echartBar]: t(
6
+ () => import("./echartBar/echart-bar-widget.vue.js")
7
+ )
8
+ }, p = [r];
9
+ export {
10
+ p as BiWidgetConfigs,
11
+ n as BiWidgets
12
+ };
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/bi-widget/index.ts"],"sourcesContent":["import { BIWidgetTypeEnum } from '@/constants/WidgetTypeEnum';\nimport { defineAsyncComponent } from 'vue';\nimport { echartBar } from './echartBar/echart-bar';\n\nexport const BiWidgets = {\n [BIWidgetTypeEnum.echartBar]: defineAsyncComponent(\n () => import('./echartBar/echart-bar-widget.vue')\n )\n};\n\nexport const BiWidgetConfigs = [echartBar];\n"],"names":["BiWidgets","BIWidgetTypeEnum","defineAsyncComponent","BiWidgetConfigs","echartBar"],"mappings":";;;AAIO,MAAMA,IAAY;AAAA,EACrB,CAACC,EAAiB,SAAS,GAAGC;AAAA,IAC1B,MAAM,OAAO,sCAAmC;AAAA,EAAA;AAExD,GAEaC,IAAkB,CAACC,CAAS;"}
@@ -1,37 +1,35 @@
1
1
  var D = Object.defineProperty;
2
- var b = (h, t, e) => t in h ? D(h, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : h[t] = e;
3
- var d = (h, t, e) => b(h, typeof t != "symbol" ? t + "" : t, e);
4
- import { deepClone as o, getDefaultFormConfig as c, overwriteObj as p, generateId as l } from "../../utils/util.js";
5
- import { containers as y, basicFields as f, advancedFields as m, customFields as C } from "./widget-panel/widgetsConfig.js";
6
- import u from "../../utils/event-bus.js";
2
+ var b = (d, t, e) => t in d ? D(d, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : d[t] = e;
3
+ var a = (d, t, e) => b(d, typeof t != "symbol" ? t + "" : t, e);
4
+ import { deepClone as o, getDefaultFormConfig as c, generateId as g, overwriteObj as p } from "../utils/util.js";
5
+ import { containers as y, basicFields as f, advancedFields as u, customFields as m } from "./form-designer/widget-panel/widgetsConfig.js";
6
+ import C from "../utils/event-bus.js";
7
+ import { LayoutTypeEnum as W } from "../constants/LayoutTypeEnum.js";
7
8
  class T {
8
9
  constructor(t) {
9
- d(this, "widgetList", []);
10
- d(this, "formConfig");
11
- d(this, "selectedId", null);
12
- d(this, "selectedWidget", null);
13
- d(this, "selectedWidgetName", null);
14
- d(this, "vueInstance");
15
- d(this, "formWidget", null);
16
- d(this, "cssClassList", []);
17
- d(this, "historyData", {
10
+ a(this, "widgetList", []);
11
+ a(this, "formConfig");
12
+ a(this, "selectedId", null);
13
+ a(this, "selectedWidget", null);
14
+ a(this, "selectedWidgetName", null);
15
+ a(this, "vueInstance");
16
+ a(this, "cssClassList", []);
17
+ a(this, "layoutType", "PC");
18
+ a(this, "historyData", {
18
19
  index: -1,
19
20
  maxStep: 20,
20
21
  steps: []
21
22
  });
22
- this.vueInstance = t, this.formConfig = o(c()), this.formConfig.layoutType || (this.formConfig.layoutType = "PC");
23
+ this.vueInstance = t, this.widgetList = [], this.formConfig = o(c()), this.formConfig.layoutType || (this.formConfig.layoutType = "PC");
23
24
  }
24
- checkFieldMove(t) {
25
- throw new Error("Method not implemented.");
25
+ generateWidgetId(t) {
26
+ return t.type.replace(/-/g, "") + g();
26
27
  }
27
28
  emitEvent(t, e) {
28
- u.$emit(t, e);
29
+ C.$emit(t, e);
29
30
  }
30
31
  handleEvent(t, e) {
31
- u.$on(t, (i) => e(i));
32
- }
33
- initDesigner(t) {
34
- this.widgetList = [], this.formConfig = o(c()), t || this.initHistoryData();
32
+ C.$on(t, (i) => e(i));
35
33
  }
36
34
  clearDesigner(t) {
37
35
  const e = this.widgetList.length === 0;
@@ -44,7 +42,7 @@ class T {
44
42
  return this.formConfig.layoutType || "PC";
45
43
  }
46
44
  changeLayoutType(t) {
47
- this.formConfig.layoutType = t;
45
+ this.formConfig.layoutType = t, this.layoutType = t;
48
46
  }
49
47
  getImportTemplate() {
50
48
  return {
@@ -70,10 +68,10 @@ class T {
70
68
  this.selectedId = null, this.selectedWidgetName = null, this.selectedWidget = null;
71
69
  }
72
70
  checkWidgetMove(t) {
73
- var g;
74
- if (!((g = t.draggedContext) != null && g.element) || !t.to)
71
+ var h;
72
+ if (!((h = t.draggedContext) != null && h.element) || !t.to)
75
73
  return !0;
76
- const { category: e, type: i } = t.draggedContext.element, s = String(i), n = t.to.className, a = s === "vf-dialog" || s === "vf-drawer", r = [
74
+ const { category: e, type: i } = t.draggedContext.element, s = String(i), n = t.to.className, r = s === "vf-dialog" || s === "vf-drawer", l = [
77
75
  // 子表单表格不允许容器类组件
78
76
  {
79
77
  condition: n === "sub-form-table" && e === "container",
@@ -86,32 +84,32 @@ class T {
86
84
  },
87
85
  // 对话框和抽屉的放置限制
88
86
  {
89
- condition: n === "vf-dialog-drop-zone" && a,
87
+ condition: n === "vf-dialog-drop-zone" && r,
90
88
  reason: "对话框放置区不允许嵌套对话框或抽屉"
91
89
  },
92
90
  {
93
- condition: n === "vf-drawer-drop-zone" && a,
91
+ condition: n === "vf-drawer-drop-zone" && r,
94
92
  reason: "抽屉放置区不允许嵌套对话框或抽屉"
95
93
  },
96
94
  {
97
- condition: n !== "form-widget-canvas" && a,
95
+ condition: n !== "form-widget-canvas" && r,
98
96
  reason: "对话框和抽屉只能拖入表单画布"
99
97
  }
100
98
  ];
101
- for (const w of r)
99
+ for (const w of l)
102
100
  if (w.condition)
103
101
  return !1;
104
102
  return !0;
105
103
  }
106
104
  getContainerByType(t) {
107
- const e = [...y, ...f, ...m, ...C];
105
+ const e = [...y, ...f, ...u, ...m];
108
106
  let i = null;
109
107
  return e.forEach((s) => {
110
108
  s.category && s.type && s.type === t && (i = s);
111
109
  }), i;
112
110
  }
113
111
  getFieldWidgetByType(t) {
114
- const e = [...y, ...f, ...m, ...C];
112
+ const e = [...y, ...f, ...u, ...m];
115
113
  let i = null;
116
114
  return e.forEach((s) => {
117
115
  !s.category && s.type && s.type === t && (i = s);
@@ -135,25 +133,17 @@ class T {
135
133
  cloneGridCol(t, e) {
136
134
  const i = o(this.getContainerByType("grid-col"));
137
135
  i.options.span = t.options.span;
138
- const s = l();
136
+ const s = g();
139
137
  i.id = "grid-col-" + s, i.options.name = "gridCol" + s, e.cols && e.cols.push(i);
140
138
  }
141
139
  cloneContainer(t) {
142
- var e, i;
140
+ var e;
143
141
  if (t.type === "grid") {
144
- const s = o(this.getContainerByType("grid"));
145
- return s.id = s.type + l(), s.options.name = s.id, (e = t.cols) == null || e.forEach((n) => {
146
- const a = o(this.getContainerByType("grid-col")), r = l();
147
- a.id = "grid-col-" + r, a.options.name = "gridCol" + r, a.options.span = n.options.span, s.cols.push(a);
148
- }), s;
149
- } else if (t.type === "table") {
150
- const s = o(this.getContainerByType("table"));
151
- return s.id = s.type + l(), s.options.name = s.id, (i = t.rows) == null || i.forEach((n) => {
152
- const a = o(n);
153
- a.id = "table-row-" + l(), a.cols.forEach((r) => {
154
- r.id = "table-cell-" + l(), r.options.name = r.id, r.widgetList = [];
155
- }), s.rows.push(a);
156
- }), s;
142
+ const i = o(this.getContainerByType("grid"));
143
+ return i.id = i.type + g(), i.options.name = i.id, (e = t.cols) == null || e.forEach((s) => {
144
+ const n = o(this.getContainerByType("grid-col")), r = g();
145
+ n.id = "grid-col-" + r, n.options.name = "gridCol" + r, n.options.span = s.options.span, i.cols.push(n);
146
+ }), i;
157
147
  } else
158
148
  return null;
159
149
  }
@@ -181,56 +171,64 @@ class T {
181
171
  t.splice(e, 1), t.splice(e + 1, 0, i);
182
172
  }
183
173
  }
174
+ copyWidget(t) {
175
+ return t.category === "bi" ? this.copyBiWidget(t) : t.category === "container" ? this.copyNewContainerWidget(t) : this.copyNewFieldWidget(t);
176
+ }
184
177
  copyNewFieldWidget(t) {
185
- const e = o(t), i = l();
186
- return e.id = e.type.replace(/-/g, "") + i, e.options.name = e.id, e.options.label = e.options.label || e.type.toLowerCase(), delete e.displayName, e;
178
+ const e = o(t), i = this.generateWidgetId(e);
179
+ return e.id = i, e.options.name = i, e.options.label = e.options.label || e.type.toLowerCase(), e;
187
180
  }
188
181
  copyNewContainerWidget(t) {
189
- const e = o(t);
190
- if (e.id = e.type.replace(/-/g, "") + l(), e.options.name = e.id, e.type === "grid") {
191
- let i = o(this.getContainerByType("grid-col")), s = l();
192
- i.id = "grid-col-" + s, i.options.name = "gridCol" + s, e.cols = e.cols || [], e.cols.push(i), i = o(i), s = l(), i.id = "grid-col-" + s, i.options.name = "gridCol" + s, e.cols.push(i);
182
+ const e = o(t), i = this.generateWidgetId(e);
183
+ if (e.id = i, e.options.name = i, e.type === "grid") {
184
+ let s = o(this.getContainerByType("grid-col")), n = this.generateWidgetId(s);
185
+ s.id = n, s.options.name = n, e.cols = e.cols || [], e.cols.push(s), s = o(s), n = this.generateWidgetId(s), s.id = n, s.options.name = n, e.cols.push(s);
193
186
  } else if (e.type === "tab") {
194
- const i = o(this.getContainerByType("tab-pane"));
195
- i.id = "tab-pane-" + l(), i.options.name = "tab1", i.options.label = "tab 1", e.tabs = e.tabs || [], e.tabs.push(i);
187
+ const s = o(this.getContainerByType("tab-pane"));
188
+ s.id = this.generateWidgetId(s), s.options.name = "tab1", s.options.label = "tab 1", e.tabs = e.tabs || [], e.tabs.push(s);
196
189
  }
197
- return delete e.displayName, e;
190
+ return delete e.displayName, this.layoutType === W.BI && (e.options.widget = "200px", e.options.height = "200px"), e;
191
+ }
192
+ copyBiWidget(t) {
193
+ const e = o(t), i = this.generateWidgetId(e);
194
+ return e.id = i, e.options.name = i, e.options.label = e.options.label || e.type.toLowerCase(), e;
198
195
  }
199
196
  addWidget(t) {
200
- t.category === "container" ? this.addContainerByDbClick(t) : this.addFieldByDbClick(t);
197
+ let e;
198
+ t.category === "container" || t.category === "bi" ? e = this.addContainerByDbClick(t) : e = this.addFieldByDbClick(t), this.setSelected(e), this.emitHistoryChange();
201
199
  }
202
200
  addContainerByDbClick(t) {
203
- const e = this.copyNewContainerWidget(t);
204
- this.widgetList.push(e), this.setSelected(e);
201
+ const e = this.copyWidget(t);
202
+ return this.widgetList.push(e), e;
205
203
  }
206
204
  addFieldByDbClick(t) {
207
205
  var i;
208
- const e = this.copyNewFieldWidget(t);
206
+ const e = this.copyWidget(t);
209
207
  if (this.selectedWidget && this.selectedWidget.type === "tab") {
210
208
  let s = this.selectedWidget.tabs ? this.selectedWidget.tabs[0] : null;
211
209
  (i = this.selectedWidget.tabs) == null || i.forEach((n) => {
212
210
  n.options.active && (s = n);
213
211
  }), s && s.widgetList && s.widgetList.push(e);
214
212
  } else this.selectedWidget && this.selectedWidget.widgetList ? this.selectedWidget.widgetList.push(e) : this.widgetList.push(e);
215
- this.setSelected(e), this.emitHistoryChange();
213
+ return e;
216
214
  }
217
215
  deleteColOfGrid(t, e) {
218
216
  t && t.cols && t.cols.splice(e, 1);
219
217
  }
220
218
  addNewColOfGrid(t) {
221
- var n, a;
222
- const e = t.cols, i = o(this.getContainerByType("grid-col")), s = l();
223
- if (i.id = "grid-col-" + s, i.options.name = "gridCol" + s, e && e.length > 0) {
224
- let r = 0;
225
- e.forEach((g) => {
226
- r += g.options.span || 0;
227
- }), r >= 24 ? (console.log("列栅格之和超出24"), (n = t.cols) == null || n.push(i)) : (i.options.span = 24 - r > 12 ? 12 : 24 - r, (a = t.cols) == null || a.push(i));
219
+ var n, r;
220
+ const e = t.cols, i = o(this.getContainerByType("grid-col")), s = this.generateWidgetId(i);
221
+ if (i.id = s, i.options.name = s, e && e.length > 0) {
222
+ let l = 0;
223
+ e.forEach((h) => {
224
+ l += h.options.span || 0;
225
+ }), l >= 24 ? (console.log("列栅格之和超出24"), (n = t.cols) == null || n.push(i)) : (i.options.span = 24 - l > 12 ? 12 : 24 - l, (r = t.cols) == null || r.push(i));
228
226
  } else
229
227
  t.cols = [i];
230
228
  }
231
229
  addTabPaneOfTabs(t) {
232
- const e = t.tabs, i = o(this.getContainerByType("tab-pane"));
233
- i.id = "tab-pane-" + l(), i.options.name = i.id, i.options.label = "tab " + (((e == null ? void 0 : e.length) || 0) + 1), e == null || e.push(i);
230
+ const e = t.tabs, i = o(this.getContainerByType("tab-pane")), s = this.generateWidgetId(i);
231
+ i.id = s, i.options.name = s, i.options.label = "tab " + (((e == null ? void 0 : e.length) || 0) + 1), e == null || e.push(i);
234
232
  }
235
233
  deleteTabPaneOfTabs(t, e) {
236
234
  var i;
@@ -242,9 +240,6 @@ class T {
242
240
  getCssClassList() {
243
241
  return this.cssClassList;
244
242
  }
245
- registerFormWidget(t) {
246
- this.formWidget = t;
247
- }
248
243
  initHistoryData() {
249
244
  this.loadFormContentFromStorage(), this.historyData.index++, this.historyData.steps[this.historyData.index] = {
250
245
  widgetList: o(this.widgetList),
@@ -281,11 +276,11 @@ class T {
281
276
  loadFormContentFromStorage() {
282
277
  }
283
278
  }
284
- function x(h) {
285
- return new T(h);
279
+ function B(d) {
280
+ return new T(d);
286
281
  }
287
282
  export {
288
283
  T as Designer,
289
- x as createDesigner
284
+ B as createDesigner
290
285
  };
291
286
  //# sourceMappingURL=designer.js.map