@kp-ui/lowcode 1.0.30 → 1.0.32

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 (169) hide show
  1. package/_virtual/virtual_svg-icons-register.js +2 -2
  2. package/index.js +0 -2
  3. package/package.json +1 -1
  4. package/render.js +73 -64
  5. package/src/components/CustomRender/components/AttachmentRender.vue.js +1 -1
  6. package/src/components/CustomRender/components/AttachmentRender.vue2.js +25 -12
  7. package/src/components/CustomRender/components/index.js +10 -0
  8. package/src/components/CustomRender/useCustomRender.js +68 -0
  9. package/src/components/code-editor/index.vue.js +3 -167
  10. package/src/components/code-editor/index.vue2.js +166 -0
  11. package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue.js +234 -104
  12. package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue3.js +105 -0
  13. package/src/components/form-designer/form-widget/container-widget/grid-col-widget.vue.js +3 -1
  14. package/src/components/form-designer/form-widget/container-widget/grid-sub-form-widget.vue.js +3 -1
  15. package/src/components/form-designer/form-widget/container-widget/{grid-widget.vue.js → grid-widget.vue2.js} +1 -1
  16. package/src/components/form-designer/form-widget/container-widget/index.js +4 -4
  17. package/src/components/form-designer/form-widget/container-widget/sub-form-widget.vue.js +3 -1
  18. package/src/components/form-designer/form-widget/container-widget/tab-widget.vue.js +3 -1
  19. package/src/components/form-designer/form-widget/container-widget/table-cell-widget.vue.js +3 -1
  20. package/src/components/form-designer/form-widget/container-widget/{table-widget.vue.js → table-widget.vue2.js} +1 -1
  21. package/src/components/form-designer/form-widget/container-widget/vf-box-item.vue.js +4 -3
  22. package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue.js +6 -3
  23. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue.js +126 -156
  24. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue4.js +158 -0
  25. package/src/components/form-designer/form-widget/container-widget/vf-dialog-widget.vue.js +3 -1
  26. package/src/components/form-designer/form-widget/container-widget/vf-drawer-widget.vue.js +3 -1
  27. package/src/components/form-designer/form-widget/field-widget/attachment-render-widget.vue.js +1 -3
  28. package/src/components/form-designer/form-widget/field-widget/diy-compontent-widget.vue.js +103 -0
  29. package/src/components/form-designer/form-widget/field-widget/file-upload-widget.vue.js +1 -1
  30. package/src/components/form-designer/form-widget/field-widget/file-upload-widget.vue2.js +25 -19
  31. package/src/components/form-designer/form-widget/field-widget/index.js +3 -1
  32. package/src/components/form-designer/form-widget/field-widget/slot-widget.vue.js +6 -6
  33. package/src/components/form-designer/form-widget/index.vue.js +7 -5
  34. package/src/components/form-designer/setting-panel/option-items-setting.vue.js +5 -3
  35. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-showButtonsColumn-editor.vue.js +4 -3
  36. package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue.js +3 -2
  37. package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue.js +4 -3
  38. package/src/components/form-designer/setting-panel/property-editor/diy-compontent-editor.vue.js +33 -0
  39. package/src/components/form-designer/setting-panel/property-editor/index.js +2 -1
  40. package/src/components/form-designer/setting-panel/propertyRegister.js +1 -0
  41. package/src/components/form-designer/toolbar-panel/index.vue.js +7 -784
  42. package/src/components/form-designer/toolbar-panel/widgetList.js +780 -0
  43. package/src/components/form-designer/widget-panel/advanced/attachment-render.js +3 -3
  44. package/src/components/form-designer/widget-panel/advanced/diy-compontent.js +24 -0
  45. package/src/components/form-designer/widget-panel/advanced/slot.js +1 -1
  46. package/src/components/form-designer/widget-panel/advancedFieldsEnums.js +4 -2
  47. package/src/components/form-designer/widget-panel/index.vue.js +3 -2
  48. package/src/components/form-render/container-item/index.js +1 -1
  49. package/src/components/form-render/container-item/{table-item.vue2.js → table-item.vue.js} +1 -1
  50. package/src/components/form-render/container-item/vf-collapse-item.vue.js +4 -3
  51. package/src/components/form-render/dynamic-dialog.vue.js +7 -2
  52. package/src/components/form-render/dynamic-drawer.vue.js +5 -2
  53. package/src/lang/zh-CN.js +4 -5
  54. package/src/mixins/useDataTableMixin.js +1 -1
  55. package/src/utils/config.js +0 -2
  56. package/styles/style.css +1 -1
  57. package/types/install.d.ts.map +1 -1
  58. package/types/src/components/CustomRender/components/AttachmentRender.d.ts +31 -0
  59. package/types/src/components/CustomRender/components/AttachmentRender.d.ts.map +1 -0
  60. package/types/src/components/CustomRender/components/index.d.ts +2 -0
  61. package/types/src/components/CustomRender/components/index.d.ts.map +1 -0
  62. package/types/src/components/CustomRender/{index.d.ts → useCustomRender.d.ts} +2 -2
  63. package/types/src/components/CustomRender/useCustomRender.d.ts.map +1 -0
  64. package/types/src/components/code-editor/code-modal-editor.d.ts +1 -1
  65. package/types/src/components/code-editor/index.d.ts +41 -55
  66. package/types/src/components/code-editor/index.d.ts.map +1 -1
  67. package/types/src/components/form-designer/setting-panel/index.d.ts +1 -0
  68. package/types/src/components/form-designer/toolbar-panel/index.d.ts +1 -1
  69. package/types/src/components/form-designer/toolbar-panel/widgetList.d.ts +556 -0
  70. package/types/src/components/form-designer/toolbar-panel/widgetList.d.ts.map +1 -0
  71. package/types/src/components/form-designer/widget-panel/advanced/attachment-render.d.ts +2 -14
  72. package/types/src/components/form-designer/widget-panel/advanced/attachment-render.d.ts.map +1 -1
  73. package/types/src/components/form-designer/widget-panel/advanced/bpmn-editor.d.ts +2 -15
  74. package/types/src/components/form-designer/widget-panel/advanced/bpmn-editor.d.ts.map +1 -1
  75. package/types/src/components/form-designer/widget-panel/advanced/cascader.d.ts +2 -55
  76. package/types/src/components/form-designer/widget-panel/advanced/cascader.d.ts.map +1 -1
  77. package/types/src/components/form-designer/widget-panel/advanced/code-editor.d.ts +2 -25
  78. package/types/src/components/form-designer/widget-panel/advanced/code-editor.d.ts.map +1 -1
  79. package/types/src/components/form-designer/widget-panel/advanced/diy-compontent.d.ts +9 -0
  80. package/types/src/components/form-designer/widget-panel/advanced/diy-compontent.d.ts.map +1 -0
  81. package/types/src/components/form-designer/widget-panel/advanced/file-upload.d.ts +2 -29
  82. package/types/src/components/form-designer/widget-panel/advanced/file-upload.d.ts.map +1 -1
  83. package/types/src/components/form-designer/widget-panel/advanced/rich-editor.d.ts +2 -26
  84. package/types/src/components/form-designer/widget-panel/advanced/rich-editor.d.ts.map +1 -1
  85. package/types/src/components/form-designer/widget-panel/advanced/slot.d.ts +2 -9
  86. package/types/src/components/form-designer/widget-panel/advanced/slot.d.ts.map +1 -1
  87. package/types/src/components/form-designer/widget-panel/advanced/tree-select.d.ts +2 -56
  88. package/types/src/components/form-designer/widget-panel/advanced/tree-select.d.ts.map +1 -1
  89. package/types/src/components/form-designer/widget-panel/advancedFieldsEnums.d.ts +75 -0
  90. package/types/src/components/form-designer/widget-panel/advancedFieldsEnums.d.ts.map +1 -0
  91. package/types/src/components/form-designer/widget-panel/basicFields/button.d.ts +2 -19
  92. package/types/src/components/form-designer/widget-panel/basicFields/button.d.ts.map +1 -1
  93. package/types/src/components/form-designer/widget-panel/basicFields/checkbox.d.ts +2 -40
  94. package/types/src/components/form-designer/widget-panel/basicFields/checkbox.d.ts.map +1 -1
  95. package/types/src/components/form-designer/widget-panel/basicFields/color.d.ts +2 -26
  96. package/types/src/components/form-designer/widget-panel/basicFields/color.d.ts.map +1 -1
  97. package/types/src/components/form-designer/widget-panel/basicFields/date.d.ts +2 -36
  98. package/types/src/components/form-designer/widget-panel/basicFields/date.d.ts.map +1 -1
  99. package/types/src/components/form-designer/widget-panel/basicFields/dateRange.d.ts +2 -36
  100. package/types/src/components/form-designer/widget-panel/basicFields/dateRange.d.ts.map +1 -1
  101. package/types/src/components/form-designer/widget-panel/basicFields/divider.d.ts +2 -13
  102. package/types/src/components/form-designer/widget-panel/basicFields/divider.d.ts.map +1 -1
  103. package/types/src/components/form-designer/widget-panel/basicFields/dropdown.d.ts +2 -24
  104. package/types/src/components/form-designer/widget-panel/basicFields/dropdown.d.ts.map +1 -1
  105. package/types/src/components/form-designer/widget-panel/basicFields/htmlText.d.ts +2 -11
  106. package/types/src/components/form-designer/widget-panel/basicFields/htmlText.d.ts.map +1 -1
  107. package/types/src/components/form-designer/widget-panel/basicFields/input.d.ts +2 -37
  108. package/types/src/components/form-designer/widget-panel/basicFields/input.d.ts.map +1 -1
  109. package/types/src/components/form-designer/widget-panel/basicFields/number.d.ts +2 -33
  110. package/types/src/components/form-designer/widget-panel/basicFields/number.d.ts.map +1 -1
  111. package/types/src/components/form-designer/widget-panel/basicFields/radio.d.ts +2 -44
  112. package/types/src/components/form-designer/widget-panel/basicFields/radio.d.ts.map +1 -1
  113. package/types/src/components/form-designer/widget-panel/basicFields/rate.d.ts +2 -28
  114. package/types/src/components/form-designer/widget-panel/basicFields/rate.d.ts.map +1 -1
  115. package/types/src/components/form-designer/widget-panel/basicFields/select.d.ts +2 -51
  116. package/types/src/components/form-designer/widget-panel/basicFields/select.d.ts.map +1 -1
  117. package/types/src/components/form-designer/widget-panel/basicFields/slider.d.ts +2 -30
  118. package/types/src/components/form-designer/widget-panel/basicFields/slider.d.ts.map +1 -1
  119. package/types/src/components/form-designer/widget-panel/basicFields/staticText.d.ts +2 -11
  120. package/types/src/components/form-designer/widget-panel/basicFields/staticText.d.ts.map +1 -1
  121. package/types/src/components/form-designer/widget-panel/basicFields/switch.d.ts +2 -24
  122. package/types/src/components/form-designer/widget-panel/basicFields/switch.d.ts.map +1 -1
  123. package/types/src/components/form-designer/widget-panel/basicFields/textarea.d.ts +2 -35
  124. package/types/src/components/form-designer/widget-panel/basicFields/textarea.d.ts.map +1 -1
  125. package/types/src/components/form-designer/widget-panel/basicFields/time.d.ts +2 -33
  126. package/types/src/components/form-designer/widget-panel/basicFields/time.d.ts.map +1 -1
  127. package/types/src/components/form-designer/widget-panel/basicFields/timeRange.d.ts +2 -34
  128. package/types/src/components/form-designer/widget-panel/basicFields/timeRange.d.ts.map +1 -1
  129. package/types/src/components/form-designer/widget-panel/business/department-select.d.ts +2 -51
  130. package/types/src/components/form-designer/widget-panel/business/department-select.d.ts.map +1 -1
  131. package/types/src/components/form-designer/widget-panel/business/material-select.d.ts +2 -51
  132. package/types/src/components/form-designer/widget-panel/business/material-select.d.ts.map +1 -1
  133. package/types/src/components/form-designer/widget-panel/business/operation-select.d.ts +2 -51
  134. package/types/src/components/form-designer/widget-panel/business/operation-select.d.ts.map +1 -1
  135. package/types/src/components/form-designer/widget-panel/business/post-select.d.ts +2 -53
  136. package/types/src/components/form-designer/widget-panel/business/post-select.d.ts.map +1 -1
  137. package/types/src/components/form-designer/widget-panel/business/project-group-select.d.ts +2 -51
  138. package/types/src/components/form-designer/widget-panel/business/project-group-select.d.ts.map +1 -1
  139. package/types/src/components/form-designer/widget-panel/business/project-select.d.ts +2 -51
  140. package/types/src/components/form-designer/widget-panel/business/project-select.d.ts.map +1 -1
  141. package/types/src/components/form-designer/widget-panel/business/user-select.d.ts +2 -54
  142. package/types/src/components/form-designer/widget-panel/business/user-select.d.ts.map +1 -1
  143. package/types/src/components/form-designer/widget-panel/containers/data-table.d.ts +2 -90
  144. package/types/src/components/form-designer/widget-panel/containers/data-table.d.ts.map +1 -1
  145. package/types/src/components/form-designer/widget-panel/containers/grid-col.d.ts +2 -14
  146. package/types/src/components/form-designer/widget-panel/containers/grid-col.d.ts.map +1 -1
  147. package/types/src/components/form-designer/widget-panel/containers/grid-sub-form.d.ts +2 -8
  148. package/types/src/components/form-designer/widget-panel/containers/grid-sub-form.d.ts.map +1 -1
  149. package/types/src/components/form-designer/widget-panel/containers/grid.d.ts +2 -8
  150. package/types/src/components/form-designer/widget-panel/containers/grid.d.ts.map +1 -1
  151. package/types/src/components/form-designer/widget-panel/containers/tab.d.ts +2 -12
  152. package/types/src/components/form-designer/widget-panel/containers/tab.d.ts.map +1 -1
  153. package/types/src/components/form-designer/widget-panel/containers/vf-box.d.ts +2 -6
  154. package/types/src/components/form-designer/widget-panel/containers/vf-box.d.ts.map +1 -1
  155. package/types/src/components/form-designer/widget-panel/containers/vf-collapse.d.ts +2 -12
  156. package/types/src/components/form-designer/widget-panel/containers/vf-collapse.d.ts.map +1 -1
  157. package/types/src/components/form-designer/widget-panel/containers/vf-dialog.d.ts +2 -22
  158. package/types/src/components/form-designer/widget-panel/containers/vf-dialog.d.ts.map +1 -1
  159. package/types/src/components/form-render/index.d.ts +4 -0
  160. package/types/src/components/form-render/index.d.ts.map +1 -1
  161. package/types/src/components/lowcodeCompontent/index.d.ts +6 -0
  162. package/types/src/components/lowcodeCompontent/index.d.ts.map +1 -0
  163. package/types/src/components/svg-icon/index.d.ts +47 -0
  164. package/types/src/components/svg-icon/index.d.ts.map +1 -0
  165. package/src/components/CustomRender/index.js +0 -52
  166. package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue2.js +0 -235
  167. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue2.js +0 -126
  168. package/stats.html +0 -4949
  169. package/types/src/components/CustomRender/index.d.ts.map +0 -1
@@ -1,13 +1,13 @@
1
1
  if (typeof window !== "undefined") {
2
2
  let loadSvg = function() {
3
3
  var body = document.body;
4
- var svgDom = document.getElementById("__svg__icons__dom__1745718985715__");
4
+ var svgDom = document.getElementById("__svg__icons__dom__1746594346672__");
5
5
  if (!svgDom) {
6
6
  svgDom = document.createElementNS("http://www.w3.org/2000/svg", "svg");
7
7
  svgDom.style.position = "absolute";
8
8
  svgDom.style.width = "0";
9
9
  svgDom.style.height = "0";
10
- svgDom.id = "__svg__icons__dom__1745718985715__";
10
+ svgDom.id = "__svg__icons__dom__1746594346672__";
11
11
  svgDom.setAttribute("xmlns", "http://www.w3.org/2000/svg");
12
12
  svgDom.setAttribute("xmlns:link", "http://www.w3.org/1999/xlink");
13
13
  }
package/index.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import { default as default2 } from "./designer.js";
2
2
  import { default as default3 } from "./render.js";
3
- import draggableComponent from "./src/lib/vuedraggable/src/vuedraggable.js";
4
3
  import { registerIcon } from "./src/utils/el-icons.js";
5
4
  import "./_virtual/virtual_svg-icons-register.js";
6
5
  import { addAdvancedFieldSchema, addBasicFieldSchema, addContainerWidgetSchema, addCustomWidgetSchema } from "./src/components/form-designer/widget-panel/widgetsConfig.js";
@@ -24,7 +23,6 @@ import { default as default14 } from "./src/components/form-designer/form-widget
24
23
  import { default as default15 } from "./src/utils/emitter.js";
25
24
  const registerLowcodeCore = (app, http) => {
26
25
  app.config.globalProperties.$http = http;
27
- app.component("draggable", draggableComponent);
28
26
  app.use(ContainerWidgets);
29
27
  app.use(ContainerItems);
30
28
  registerIcon(app);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kp-ui/lowcode",
3
- "version": "1.0.30",
3
+ "version": "1.0.32",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
package/render.js CHANGED
@@ -1,21 +1,13 @@
1
- import { createVNode, render, resolveComponent, createBlock, openBlock, withCtx, withModifiers, normalizeClass, createElementBlock, Fragment, renderList, resolveDynamicComponent, createSlots, renderSlot, normalizeProps, guardReactiveProps } from "vue";
1
+ import { resolveComponent, createBlock, openBlock, withCtx, createVNode, createElementVNode, withModifiers, normalizeClass, createElementBlock, Fragment, renderList, resolveDynamicComponent, createSlots, renderSlot, normalizeProps, guardReactiveProps, render, h } from "vue";
2
2
  import emitter from "./src/utils/emitter.js";
3
- import _export_sfc from "./_virtual/_plugin-vue_export-helper.js";
4
- /* empty css */
5
- import "./src/components/form-render/container-item/grid-col-item.vue.js";
6
- import i18n, { changeLocale } from "./src/utils/i18n.js";
7
- import { buildDefaultFormJson, getContainerWidgetByName, cloneFormConfigWithoutEventHandler, deepClone, getDSByName, overwriteObj, runDataSourceRequest, getAllContainerWidgets, getAllFieldWidgets, getDefaultFormConfig, traverseFieldWidgets, getFieldWidgetByName, traverseFieldWidgetsOfContainer, insertCustomCssToHead, insertGlobalFunctionsToHtml, generateId } from "./src/utils/util.js";
8
- import "./src/components/form-render/container-item/grid-sub-form-item.vue.js";
9
- import "./src/components/form-render/container-item/sub-form-item.vue.js";
10
- import "./src/components/form-render/container-item/tab-item.vue.js";
11
- import "./src/components/form-render/container-item/table-cell-item.vue.js";
12
- /* empty css */
13
- import "./src/components/form-render/container-item/vf-collapse-item.vue.js";
14
3
  import comps from "./src/components/form-designer/form-widget/field-widget/index.js";
4
+ import { buildDefaultFormJson, getContainerWidgetByName, cloneFormConfigWithoutEventHandler, deepClone, getDSByName, overwriteObj, runDataSourceRequest, getAllContainerWidgets, getAllFieldWidgets, getDefaultFormConfig, traverseFieldWidgets, getFieldWidgetByName, traverseFieldWidgetsOfContainer, insertCustomCssToHead, insertGlobalFunctionsToHtml, generateId } from "./src/utils/util.js";
5
+ import i18n, { changeLocale } from "./src/utils/i18n.js";
15
6
  import DynamicDialog from "./src/components/form-render/dynamic-dialog.vue.js";
16
7
  import DynamicDrawer from "./src/components/form-render/dynamic-drawer.vue.js";
17
8
  import { fmtHttpParams } from "./src/utils/request/fmtHttpParams.js";
18
9
  /* empty css */
10
+ import _export_sfc from "./_virtual/_plugin-vue_export-helper.js";
19
11
  const _sfc_main = {
20
12
  name: "VFormRender",
21
13
  componentName: "VFormRender",
@@ -104,6 +96,8 @@ const _sfc_main = {
104
96
  formDataModel: {
105
97
  //
106
98
  },
99
+ isLoading: false,
100
+ //是否正在加载中
107
101
  widgetRefList: {},
108
102
  subFormRefList: {},
109
103
  formId: null,
@@ -153,6 +147,7 @@ const _sfc_main = {
153
147
  //
154
148
  },
155
149
  created() {
150
+ this.isLoading = false;
156
151
  this.buildFormModel(!this.formJsonObj ? null : this.formJsonObj.widgetList);
157
152
  this.initFormObject();
158
153
  },
@@ -161,11 +156,16 @@ const _sfc_main = {
161
156
  this.initDataSetRequest();
162
157
  },
163
158
  methods: {
159
+ setLoading(flag) {
160
+ this.isLoading = flag;
161
+ },
164
162
  async onFormDetail() {
165
163
  var _a;
166
164
  const serveList = this.formConfig.serveList;
167
165
  if ((_a = serveList.vformDetail.http) == null ? void 0 : _a.url) {
168
- const res = await fmtHttpParams.call(this, serveList.vformDetail, { vfCtx: this.vfCtx });
166
+ const res = await fmtHttpParams.call(this, serveList.vformDetail, {
167
+ vfCtx: this.vfCtx
168
+ });
169
169
  console.log("res: ", res);
170
170
  return res;
171
171
  }
@@ -844,7 +844,7 @@ const _sfc_main = {
844
844
  formConfig: cloneFormConfigWithoutEventHandler(topFormRef.formConfig)
845
845
  };
846
846
  const wrapperDivId = generateId() + "";
847
- const dialogInstance = createVNode(DynamicDialog, {
847
+ const dialogInstance = h(DynamicDialog, {
848
848
  options: dialogCon.options,
849
849
  formJson: dFormJson,
850
850
  formData: { ...formData },
@@ -903,70 +903,79 @@ const _sfc_main = {
903
903
  //--------------------- 以上为组件支持外部调用的API方法 end ------------------//
904
904
  }
905
905
  };
906
+ const _hoisted_1 = { style: { "min-height": "200px" } };
906
907
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
907
908
  const _component_a_form = resolveComponent("a-form");
909
+ const _component_a_spin = resolveComponent("a-spin");
908
910
  const _component_a_config_provider = resolveComponent("a-config-provider");
909
911
  return openBlock(), createBlock(_component_a_config_provider, {
910
912
  "component-size": $options.size,
911
913
  input: { autocomplete: "off" }
912
914
  }, {
913
915
  default: withCtx(() => [
914
- createVNode(_component_a_form, {
915
- layout: $options.labelPosition,
916
- class: normalizeClass([[$options.customClass, $data.readModeFlag ? "readonly-mode-form" : ""], "render-form tpf-form"]),
917
- "label-width": $options.labelWidth,
918
- "validate-on-rule-change": false,
919
- model: $data.formDataModel,
920
- ref: "renderForm",
921
- onSubmit: _cache[0] || (_cache[0] = withModifiers(() => {
922
- }, ["prevent"]))
923
- }, {
916
+ createVNode(_component_a_spin, { spinning: $data.isLoading }, {
924
917
  default: withCtx(() => [
925
- (openBlock(true), createElementBlock(Fragment, null, renderList($options.widgetList, (widget, index) => {
926
- return openBlock(), createElementBlock(Fragment, null, [
927
- "container" === widget.category ? (openBlock(), createBlock(resolveDynamicComponent($options.getContainerWidgetName(widget)), {
928
- widget,
929
- key: widget.id,
930
- "parent-list": $options.widgetList,
931
- "index-of-parent-list": index,
932
- "parent-widget": null
933
- }, createSlots({ _: 2 }, [
934
- renderList(Object.keys(_ctx.$slots), (slot) => {
935
- return {
936
- name: slot,
937
- fn: withCtx((scope) => [
938
- renderSlot(_ctx.$slots, slot, normalizeProps(guardReactiveProps(scope)), void 0, true)
939
- ])
940
- };
941
- })
942
- ]), 1032, ["widget", "parent-list", "index-of-parent-list"])) : (openBlock(), createBlock(resolveDynamicComponent($options.getWidgetName(widget)), {
943
- field: widget,
944
- "form-model": $data.formDataModel,
945
- designer: null,
946
- key: widget.id,
947
- "parent-list": $options.widgetList,
948
- "index-of-parent-list": index,
949
- "parent-widget": null
950
- }, createSlots({ _: 2 }, [
951
- renderList(Object.keys(_ctx.$slots), (slot) => {
952
- return {
953
- name: slot,
954
- fn: withCtx((scope) => [
955
- renderSlot(_ctx.$slots, slot, normalizeProps(guardReactiveProps(scope)), void 0, true)
956
- ])
957
- };
958
- })
959
- ]), 1032, ["field", "form-model", "parent-list", "index-of-parent-list"]))
960
- ], 64);
961
- }), 256))
918
+ createElementVNode("div", _hoisted_1, [
919
+ createVNode(_component_a_form, {
920
+ layout: $options.labelPosition,
921
+ class: normalizeClass([[$options.customClass, $data.readModeFlag ? "readonly-mode-form" : ""], "render-form tpf-form"]),
922
+ "label-width": $options.labelWidth,
923
+ "validate-on-rule-change": false,
924
+ model: $data.formDataModel,
925
+ ref: "renderForm",
926
+ onSubmit: _cache[0] || (_cache[0] = withModifiers(() => {
927
+ }, ["prevent"]))
928
+ }, {
929
+ default: withCtx(() => [
930
+ (openBlock(true), createElementBlock(Fragment, null, renderList($options.widgetList, (widget, index2) => {
931
+ return openBlock(), createElementBlock(Fragment, null, [
932
+ "container" === widget.category ? (openBlock(), createBlock(resolveDynamicComponent($options.getContainerWidgetName(widget)), {
933
+ widget,
934
+ key: widget.id,
935
+ "parent-list": $options.widgetList,
936
+ "index-of-parent-list": index2,
937
+ "parent-widget": null
938
+ }, createSlots({ _: 2 }, [
939
+ renderList(Object.keys(_ctx.$slots), (slot) => {
940
+ return {
941
+ name: slot,
942
+ fn: withCtx((scope) => [
943
+ renderSlot(_ctx.$slots, slot, normalizeProps(guardReactiveProps(scope)), void 0, true)
944
+ ])
945
+ };
946
+ })
947
+ ]), 1032, ["widget", "parent-list", "index-of-parent-list"])) : (openBlock(), createBlock(resolveDynamicComponent($options.getWidgetName(widget)), {
948
+ field: widget,
949
+ "form-model": $data.formDataModel,
950
+ designer: null,
951
+ key: widget.id,
952
+ "parent-list": $options.widgetList,
953
+ "index-of-parent-list": index2,
954
+ "parent-widget": null
955
+ }, createSlots({ _: 2 }, [
956
+ renderList(Object.keys(_ctx.$slots), (slot) => {
957
+ return {
958
+ name: slot,
959
+ fn: withCtx((scope) => [
960
+ renderSlot(_ctx.$slots, slot, normalizeProps(guardReactiveProps(scope)), void 0, true)
961
+ ])
962
+ };
963
+ })
964
+ ]), 1032, ["field", "form-model", "parent-list", "index-of-parent-list"]))
965
+ ], 64);
966
+ }), 256))
967
+ ]),
968
+ _: 3
969
+ }, 8, ["layout", "class", "label-width", "model"])
970
+ ])
962
971
  ]),
963
972
  _: 3
964
- }, 8, ["layout", "class", "label-width", "model"])
973
+ }, 8, ["spinning"])
965
974
  ]),
966
975
  _: 3
967
976
  }, 8, ["component-size"]);
968
977
  }
969
- const VFormRender = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-ab2b030a"]]);
978
+ const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-20edc56d"]]);
970
979
  export {
971
- VFormRender as default
980
+ index as default
972
981
  };
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./AttachmentRender.vue2.js";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
4
- const AttachmentRender = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c0780063"]]);
4
+ const AttachmentRender = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-412620ec"]]);
5
5
  export {
6
6
  AttachmentRender as default
7
7
  };
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, onMounted, computed, resolveComponent, createElementBlock, createCommentVNode, openBlock, createElementVNode, createVNode, withCtx, Fragment, renderList, createBlock, unref, toDisplayString } from "vue";
1
+ import { defineComponent, ref, watch, computed, onMounted, resolveComponent, createElementBlock, createCommentVNode, openBlock, createElementVNode, createVNode, withCtx, Fragment, renderList, createBlock, unref, toDisplayString } from "vue";
2
2
  import { Image, Button } from "ant-design-vue";
3
3
  import { DownloadOutlined, EyeOutlined } from "@ant-design/icons-vue";
4
4
  import { useFilePreview } from "../../../hooks/useFilePreview.js";
@@ -20,17 +20,27 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
20
20
  const { getPreviewData, handlePreview, handleDownload } = useFilePreview();
21
21
  const attachmentList = ref([]);
22
22
  ref(false);
23
- onMounted(async () => {
24
- let data = props.data || [];
25
- if (typeof data === "string") {
26
- data = JSON.parse(data);
27
- }
28
- if ((data == null ? void 0 : data.length) === 0) {
29
- attachmentList.value = [];
30
- return;
31
- }
32
- attachmentList.value = await getPreviewData(data);
33
- });
23
+ watch(
24
+ () => props.data,
25
+ async (newData) => {
26
+ let data = newData || [];
27
+ if (typeof data === "string") {
28
+ try {
29
+ data = JSON.parse(data);
30
+ } catch (error) {
31
+ console.error("Failed to parse props.data:", error);
32
+ attachmentList.value = [];
33
+ return;
34
+ }
35
+ }
36
+ if (!Array.isArray(data) || data.length === 0) {
37
+ attachmentList.value = [];
38
+ return;
39
+ }
40
+ attachmentList.value = await getPreviewData(data);
41
+ },
42
+ { immediate: true }
43
+ );
34
44
  const isImageFile = (file) => {
35
45
  const imageExtensions = [".jpg", ".jpeg", ".png", ".gif", ".bmp", ".webp"];
36
46
  return imageExtensions.some((ext) => file.fileType.toLowerCase().endsWith(ext));
@@ -41,6 +51,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
41
51
  const imageList = computed(() => {
42
52
  return attachmentList.value.filter((file) => isImageFile(file));
43
53
  });
54
+ onMounted(() => {
55
+ console.log(121212121);
56
+ });
44
57
  return (_ctx, _cache) => {
45
58
  const _component_a_image_preview_group = resolveComponent("a-image-preview-group");
46
59
  return attachmentList.value.length ? (openBlock(), createElementBlock("div", _hoisted_1, [
@@ -0,0 +1,10 @@
1
+ import { defineAsyncComponent } from "vue";
2
+ function getCompontents(module) {
3
+ const modules = {
4
+ AttachmentRender: defineAsyncComponent(() => import("./AttachmentRender.vue.js"))
5
+ };
6
+ return modules[module];
7
+ }
8
+ export {
9
+ getCompontents
10
+ };
@@ -0,0 +1,68 @@
1
+ import { h, getCurrentInstance } from "vue";
2
+ import { getCompontents } from "./components/index.js";
3
+ function useCustomRender() {
4
+ const componentCache = /* @__PURE__ */ new Map();
5
+ const loadComponent = (componentName = "") => {
6
+ if (componentName.trim().length === 0) {
7
+ return void 0;
8
+ }
9
+ let component = componentCache.get(componentName);
10
+ if (!component) {
11
+ component = getCompontents(componentName);
12
+ return component;
13
+ }
14
+ if (!component) {
15
+ const instance = getCurrentInstance();
16
+ if (instance && instance.appContext) {
17
+ const getComponentByName = instance.appContext.config.globalProperties.getComponentByName;
18
+ component = getComponentByName(componentName);
19
+ if (component) {
20
+ componentCache.set(componentName, component);
21
+ }
22
+ }
23
+ return component;
24
+ }
25
+ if (!component) {
26
+ const instance = getCurrentInstance();
27
+ if (instance && instance.appContext) {
28
+ const globalSysComponents = instance.appContext.components || {};
29
+ const components = globalSysComponents;
30
+ component = components[componentName];
31
+ if (component) {
32
+ componentCache.set(componentName, component);
33
+ }
34
+ }
35
+ return component;
36
+ }
37
+ };
38
+ const renderComponent = (componentName, props = {}) => {
39
+ try {
40
+ const component = loadComponent(componentName);
41
+ if (!component) {
42
+ return h("span", { class: "component-not-found" }, `组件 "${componentName}" 未找到`);
43
+ }
44
+ const vnode = h(component, props);
45
+ return vnode;
46
+ } catch (error) {
47
+ console.error(`Failed to render component ${componentName}:`, error);
48
+ return h("span", { class: "component-render-error" }, `渲染组件出错: ${componentName}`);
49
+ }
50
+ };
51
+ const customRender = (code, params, ctx) => {
52
+ try {
53
+ const { text, record, index, column } = params;
54
+ const cusFunc = new Function("text", "record", "index", "column", "compontent", code);
55
+ return cusFunc.call(ctx, text, record, index, column, renderComponent);
56
+ } catch (error) {
57
+ console.error("Custom render execution failed:", error);
58
+ return h("span", { class: "custom-render-error", style: { color: "red" } }, "自定义渲染失败");
59
+ }
60
+ };
61
+ return {
62
+ renderComponent,
63
+ customRender
64
+ };
65
+ }
66
+ export {
67
+ useCustomRender
68
+ };
@@ -1,171 +1,7 @@
1
- import ace from "ace-builds";
2
- import "ace-builds/src-min-noconflict/theme-sqlserver";
3
- import "ace-builds/src-min-noconflict/mode-javascript";
4
- import "ace-builds/src-min-noconflict/mode-json";
5
- import "ace-builds/src-min-noconflict/mode-css";
6
- import "ace-builds/src-min-noconflict/ext-language_tools";
7
- import { ACE_BASE_PATH } from "../../utils/config.js";
8
- import { createElementBlock, openBlock, createElementVNode } from "vue";
1
+ import _sfc_main from "./index.vue2.js";
2
+ /* empty css */
9
3
  import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.js";
10
- const _sfc_main = {
11
- name: "CodeEditor",
12
- props: {
13
- modelValue: {
14
- type: String
15
- //required: true
16
- },
17
- readonly: {
18
- type: Boolean,
19
- default: false
20
- },
21
- mode: {
22
- type: String,
23
- default: "javascript"
24
- },
25
- userWorker: {
26
- //是否开启语法检查,默认开启
27
- type: Boolean,
28
- default: true
29
- }
30
- },
31
- emits: ["update:modelValue", "change", "blur"],
32
- mounted() {
33
- this.init();
34
- },
35
- data() {
36
- return {
37
- aceEditor: null,
38
- themePath: "ace/theme/sqlserver",
39
- // 不导入 webpack-resolver,该模块路径会报错
40
- modePath: "ace/mode/javascript",
41
- // 同上
42
- codeValue: this.modelValue
43
- };
44
- },
45
- watch: {
46
- //
47
- mode(val) {
48
- if (val) {
49
- this.init();
50
- }
51
- },
52
- readonly(val) {
53
- this.init();
54
- }
55
- },
56
- methods: {
57
- init(value) {
58
- if (this.aceEditor) {
59
- this.aceEditor.destroy();
60
- }
61
- value = value || this.codeValue;
62
- this.$emit("update:modelValue", value);
63
- ace.config.set("basePath", ACE_BASE_PATH);
64
- this.addAutoCompletion(ace);
65
- this.aceEditor = ace.edit(this.$refs.ace, {
66
- maxLines: 20,
67
- // 最大行数,超过会自动出现滚动条
68
- minLines: 5,
69
- // 最小行数,还未到最大行数时,编辑器会自动伸缩大小
70
- fontSize: 12,
71
- // 编辑器内字体大小
72
- theme: this.themePath,
73
- // 默认设置的主题
74
- mode: this.modePath,
75
- // 默认设置的语言模式
76
- tabSize: 2,
77
- // 制表符设置为2个空格大小
78
- readOnly: this.readonly,
79
- highlightActiveLine: true,
80
- value
81
- });
82
- this.aceEditor.setOptions({
83
- enableBasicAutocompletion: true,
84
- enableSnippets: true,
85
- // 设置代码片段提示
86
- enableLiveAutocompletion: true
87
- // 设置自动提示
88
- });
89
- if (this.mode === "json") {
90
- this.setJsonMode();
91
- } else if (this.mode === "css") {
92
- this.setCssMode();
93
- } else if (this.mode === "groovy") {
94
- this.setGroovyMode();
95
- }
96
- if (!this.userWorker) {
97
- this.aceEditor.getSession().setUseWorker(false);
98
- }
99
- this.aceEditor.getSession().on("change", (ev) => {
100
- this.$emit("update:modelValue", this.aceEditor.getValue());
101
- this.$emit("change", this.aceEditor.getValue());
102
- });
103
- this.aceEditor.getSession().on("blur", (ev) => {
104
- this.$emit("blur", this.aceEditor.getValue());
105
- });
106
- },
107
- addAutoCompletion(ace2) {
108
- const acData = [
109
- { meta: "VForm API", caption: "getWidgetRef", value: "getWidgetRef()", score: 1 },
110
- { meta: "VForm API", caption: "getFormRef", value: "getFormRef()", score: 1 },
111
- { meta: "VForm API", caption: "getParentFormRef", value: "getParentFormRef()", score: 1 }
112
- //TODO: 待补充!!
113
- ];
114
- const langTools = ace2.require("ace/ext/language_tools");
115
- langTools.addCompleter({
116
- getCompletions: function(editor, session, pos, prefix, callback) {
117
- if (prefix.length === 0) {
118
- return callback(null, []);
119
- } else {
120
- return callback(null, acData);
121
- }
122
- }
123
- });
124
- },
125
- setJsonMode() {
126
- this.aceEditor.getSession().setMode("ace/mode/json");
127
- },
128
- setCssMode() {
129
- this.aceEditor.getSession().setMode("ace/mode/css");
130
- },
131
- setGroovyMode() {
132
- this.aceEditor.getSession().setMode("ace/mode/groovy");
133
- },
134
- getEditorAnnotations() {
135
- return this.aceEditor.getSession().getAnnotations();
136
- },
137
- setValue(newValue) {
138
- this.init(newValue);
139
- },
140
- validateCode() {
141
- const codeHints = this.getEditorAnnotations();
142
- let syntaxErrorFlag = false;
143
- if (!!codeHints && codeHints.length > 0) {
144
- codeHints.forEach((chItem) => {
145
- if (chItem.type === "error") {
146
- syntaxErrorFlag = true;
147
- }
148
- });
149
- if (syntaxErrorFlag) {
150
- this.$message.error("语法存在错误,请检查");
151
- return false;
152
- }
153
- }
154
- return true;
155
- }
156
- }
157
- };
158
- const _hoisted_1 = { class: "ace-container" };
159
- const _hoisted_2 = {
160
- class: "ace-editor",
161
- ref: "ace"
162
- };
163
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
164
- return openBlock(), createElementBlock("div", _hoisted_1, [
165
- createElementVNode("div", _hoisted_2, null, 512)
166
- ]);
167
- }
168
- const CodeEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
4
+ const CodeEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-d6ceeb37"]]);
169
5
  export {
170
6
  CodeEditor as default
171
7
  };