@fecp/designer 5.1.8 → 5.2.1

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 (133) hide show
  1. package/es/designer.css +2177 -1400
  2. package/es/node_modules/.pnpm/@element-plus_icons-vue@2.3.2_vue@3.5.13_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/index.mjs +16 -0
  3. package/es/packages/designer/src/api/index.mjs +16 -1
  4. package/es/packages/designer/src/components/FieldSetMapping.vue2.mjs +407 -0
  5. package/es/packages/designer/src/components/FormulaEditorInput.vue.mjs +1 -1
  6. package/es/packages/designer/src/components/JsonDataDrawer.vue.mjs +1 -2
  7. package/es/packages/designer/src/components/OnlyFLowConfigButton.vue2.mjs +118 -0
  8. package/es/packages/designer/src/components/TemplateDialog.vue.mjs +254 -0
  9. package/es/packages/designer/src/components/TemplateSelector.vue.mjs +22 -175
  10. package/es/packages/designer/src/components/TemplateSelector.vue2.mjs +1 -0
  11. package/es/packages/designer/src/layout/aside/HiddenFieldDialog.vue.mjs +9 -15
  12. package/es/packages/designer/src/layout/header/index.vue.mjs +195 -11
  13. package/es/packages/designer/src/packages/dialog/index.vue.mjs +2 -2
  14. package/es/packages/designer/src/packages/dialogGlobal/index.vue.mjs +1004 -0
  15. package/es/packages/designer/src/packages/dialogGlobal/useDialogGlobalDialog.mjs +16 -0
  16. package/es/packages/designer/src/packages/event/index.vue2.mjs +76 -16
  17. package/es/packages/designer/src/packages/event/onlyFlow.vue2.mjs +105 -0
  18. package/es/packages/designer/src/packages/event/useOnlyFlowDialog.mjs +1 -1
  19. package/es/packages/designer/src/packages/eventFlow/dialog/action/Dialog.vue.mjs +225 -24
  20. package/es/packages/designer/src/packages/eventFlow/dialog/action/config.mjs +5 -1
  21. package/es/packages/designer/src/packages/form/aside/index.mjs +24 -10
  22. package/es/packages/designer/src/packages/form/components/ApprovalHistory.vue.mjs +3 -3
  23. package/es/packages/designer/src/packages/form/components/ComponentPreviewWrapper.vue.mjs +152 -69
  24. package/es/packages/designer/src/packages/form/components/DefaultValueEditor.vue.mjs +88 -0
  25. package/es/packages/designer/src/packages/form/components/SubForm.vue.mjs +3 -3
  26. package/es/packages/designer/src/packages/form/components/SubTable.vue.mjs +3 -3
  27. package/es/packages/designer/src/packages/form/components/SubTitle.vue.mjs +27 -0
  28. package/es/packages/designer/src/packages/form/headerBtn.vue.mjs +33 -57
  29. package/es/packages/designer/src/packages/form/index.vue.mjs +20 -8
  30. package/es/packages/designer/src/packages/form/property/index.vue.mjs +5 -3
  31. package/es/packages/designer/src/packages/form/property/subTitleH2.vue.mjs +94 -0
  32. package/es/packages/designer/src/packages/form/property/widgets.vue.mjs +275 -94
  33. package/es/packages/designer/src/packages/formulaEditor/components/FieldVariable.vue2.mjs +84 -0
  34. package/es/packages/designer/src/packages/formulaEditor/components/FormulaList.vue2.mjs +130 -0
  35. package/es/packages/designer/src/packages/formulaEditor/index.vue2.mjs +230 -0
  36. package/es/packages/designer/src/packages/table/default.mjs +1 -0
  37. package/es/packages/designer/src/packages/table/headerBtn.vue.mjs +48 -17
  38. package/es/packages/designer/src/packages/table/index.vue.mjs +1 -3
  39. package/es/packages/designer/src/packages/table/property/filterWidgets.vue.mjs +34 -7
  40. package/es/packages/designer/src/packages/table/queryModule/DynamicModeConfig.vue.mjs +492 -0
  41. package/es/packages/designer/src/packages/table/queryModule/FixedModeConfig.vue.mjs +15 -2
  42. package/es/packages/designer/src/packages/table/queryModule/index.vue.mjs +463 -138
  43. package/es/packages/designer/src/packages/table/tableBtn.vue.mjs +33 -15
  44. package/es/packages/designer/src/utils/optionLoader.mjs +157 -0
  45. package/es/packages/designer/src/utils/simpleCache.mjs +80 -0
  46. package/es/packages/mobile/src/components/form/field/Field.vue.mjs +26 -1
  47. package/es/packages/vue/src/api/index.mjs +3 -0
  48. package/es/packages/vue/src/components/all.mjs +2 -2
  49. package/es/packages/vue/src/components/bus/approvalHistory/ApprovalHistory.vue.mjs +3 -3
  50. package/es/packages/vue/src/components/details/header/Header.vue.mjs +1 -1
  51. package/es/packages/vue/src/components/dialog/DialogRenderer.vue2.mjs +2 -2
  52. package/es/packages/vue/src/components/forms/cascader/Cascader.vue.mjs +3 -2
  53. package/es/packages/vue/src/components/forms/form/Form.vue.mjs +5 -3
  54. package/es/packages/vue/src/components/forms/formItem/FormItem.vue.mjs +14 -12
  55. package/es/packages/vue/src/components/forms/index.mjs +2 -2
  56. package/es/packages/vue/src/components/forms/subForm/SubForm.vue.mjs +2 -2
  57. package/es/packages/vue/src/components/forms/subTable/SubTable.vue.mjs +2 -2
  58. package/es/packages/vue/src/components/forms/subTitle/SubTitle.vue.mjs +27 -0
  59. package/es/packages/vue/src/components/forms/subTitle/index.mjs +7 -0
  60. package/es/packages/vue/src/components/forms/text/Text.vue.mjs +47 -4
  61. package/es/packages/vue/src/components/table/CustomButtons.vue.mjs +34 -5
  62. package/es/packages/vue/src/components/table/DynamicQuery.vue.mjs +425 -0
  63. package/es/packages/vue/src/components/table/Table.vue.mjs +55 -30
  64. package/es/packages/vue/src/components/table/TableFilter.vue.mjs +7 -25
  65. package/es/packages/vue/src/utils/common.mjs +27 -0
  66. package/es/packages/vue/src/utils/eventFlow/actionHandlers.mjs +20 -3
  67. package/lib/designer.css +2177 -1400
  68. package/lib/node_modules/.pnpm/@element-plus_icons-vue@2.3.2_vue@3.5.13_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/index.js +16 -0
  69. package/lib/packages/designer/src/api/index.js +15 -0
  70. package/lib/packages/designer/src/components/FieldSetMapping.vue2.js +407 -0
  71. package/lib/packages/designer/src/components/FormulaEditorInput.vue.js +1 -1
  72. package/lib/packages/designer/src/components/JsonDataDrawer.vue.js +1 -2
  73. package/lib/packages/designer/src/components/OnlyFLowConfigButton.vue2.js +118 -0
  74. package/lib/packages/designer/src/components/TemplateDialog.vue.js +254 -0
  75. package/lib/packages/designer/src/components/TemplateSelector.vue.js +21 -174
  76. package/lib/packages/designer/src/components/TemplateSelector.vue2.js +1 -0
  77. package/lib/packages/designer/src/layout/aside/HiddenFieldDialog.vue.js +9 -15
  78. package/lib/packages/designer/src/layout/header/index.vue.js +192 -8
  79. package/lib/packages/designer/src/packages/dialog/index.vue.js +2 -2
  80. package/lib/packages/designer/src/packages/dialogGlobal/index.vue.js +1004 -0
  81. package/lib/packages/designer/src/packages/dialogGlobal/useDialogGlobalDialog.js +16 -0
  82. package/lib/packages/designer/src/packages/event/index.vue2.js +75 -15
  83. package/lib/packages/designer/src/packages/event/onlyFlow.vue2.js +105 -0
  84. package/lib/packages/designer/src/packages/event/useOnlyFlowDialog.js +1 -1
  85. package/lib/packages/designer/src/packages/eventFlow/dialog/action/Dialog.vue.js +226 -25
  86. package/lib/packages/designer/src/packages/eventFlow/dialog/action/config.js +5 -1
  87. package/lib/packages/designer/src/packages/form/aside/index.js +24 -10
  88. package/lib/packages/designer/src/packages/form/components/ApprovalHistory.vue.js +3 -3
  89. package/lib/packages/designer/src/packages/form/components/ComponentPreviewWrapper.vue.js +160 -77
  90. package/lib/packages/designer/src/packages/form/components/DefaultValueEditor.vue.js +88 -0
  91. package/lib/packages/designer/src/packages/form/components/SubForm.vue.js +3 -3
  92. package/lib/packages/designer/src/packages/form/components/SubTable.vue.js +3 -3
  93. package/lib/packages/designer/src/packages/form/components/SubTitle.vue.js +27 -0
  94. package/lib/packages/designer/src/packages/form/headerBtn.vue.js +33 -57
  95. package/lib/packages/designer/src/packages/form/index.vue.js +21 -9
  96. package/lib/packages/designer/src/packages/form/property/index.vue.js +6 -4
  97. package/lib/packages/designer/src/packages/form/property/subTitleH2.vue.js +94 -0
  98. package/lib/packages/designer/src/packages/form/property/widgets.vue.js +271 -90
  99. package/lib/packages/designer/src/packages/formulaEditor/components/FieldVariable.vue2.js +84 -0
  100. package/lib/packages/designer/src/packages/formulaEditor/components/FormulaList.vue2.js +130 -0
  101. package/lib/packages/designer/src/packages/formulaEditor/index.vue2.js +230 -0
  102. package/lib/packages/designer/src/packages/table/default.js +1 -0
  103. package/lib/packages/designer/src/packages/table/headerBtn.vue.js +48 -17
  104. package/lib/packages/designer/src/packages/table/index.vue.js +1 -3
  105. package/lib/packages/designer/src/packages/table/property/filterWidgets.vue.js +33 -6
  106. package/lib/packages/designer/src/packages/table/queryModule/DynamicModeConfig.vue.js +492 -0
  107. package/lib/packages/designer/src/packages/table/queryModule/FixedModeConfig.vue.js +15 -2
  108. package/lib/packages/designer/src/packages/table/queryModule/index.vue.js +463 -138
  109. package/lib/packages/designer/src/packages/table/tableBtn.vue.js +34 -16
  110. package/lib/packages/designer/src/utils/optionLoader.js +157 -0
  111. package/lib/packages/designer/src/utils/simpleCache.js +80 -0
  112. package/lib/packages/mobile/src/components/form/field/Field.vue.js +26 -1
  113. package/lib/packages/vue/src/api/index.js +3 -0
  114. package/lib/packages/vue/src/components/all.js +2 -2
  115. package/lib/packages/vue/src/components/bus/approvalHistory/ApprovalHistory.vue.js +3 -3
  116. package/lib/packages/vue/src/components/details/header/Header.vue.js +1 -1
  117. package/lib/packages/vue/src/components/dialog/DialogRenderer.vue2.js +2 -2
  118. package/lib/packages/vue/src/components/forms/cascader/Cascader.vue.js +3 -2
  119. package/lib/packages/vue/src/components/forms/form/Form.vue.js +5 -3
  120. package/lib/packages/vue/src/components/forms/formItem/FormItem.vue.js +13 -11
  121. package/lib/packages/vue/src/components/forms/index.js +2 -2
  122. package/lib/packages/vue/src/components/forms/subForm/SubForm.vue.js +2 -2
  123. package/lib/packages/vue/src/components/forms/subTable/SubTable.vue.js +2 -2
  124. package/lib/packages/vue/src/components/forms/subTitle/SubTitle.vue.js +27 -0
  125. package/lib/packages/vue/src/components/forms/subTitle/index.js +7 -0
  126. package/lib/packages/vue/src/components/forms/text/Text.vue.js +49 -6
  127. package/lib/packages/vue/src/components/table/CustomButtons.vue.js +43 -14
  128. package/lib/packages/vue/src/components/table/DynamicQuery.vue.js +425 -0
  129. package/lib/packages/vue/src/components/table/Table.vue.js +54 -29
  130. package/lib/packages/vue/src/components/table/TableFilter.vue.js +7 -25
  131. package/lib/packages/vue/src/utils/common.js +27 -0
  132. package/lib/packages/vue/src/utils/eventFlow/actionHandlers.js +30 -13
  133. package/package.json +1 -1
@@ -1,21 +1,29 @@
1
1
  /* empty css */
2
2
  /* empty css */
3
3
  /* empty css */
4
- import { computed, createElementBlock, openBlock, createElementVNode, createVNode, unref, withCtx, Fragment, renderList, withModifiers, normalizeClass, mergeProps, createTextVNode, toDisplayString } from "vue";
4
+ import { computed, resolveComponent, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode, withCtx, toDisplayString, unref, Fragment, renderList, withModifiers, normalizeClass, mergeProps, createTextVNode } from "vue";
5
5
  import { defaultCustomBtn } from "./default.mjs";
6
6
  import { VueDraggable as lo } from "../../../../../node_modules/.pnpm/vue-draggable-plus@0.6.1_@types_sortablejs@1.15.9/node_modules/vue-draggable-plus/dist/vue-draggable-plus.mjs";
7
7
  import { Close as close_default, Plus as plus_default, Setting as setting_default, Download as download_default, Refresh as refresh_default } from "../../../../../node_modules/.pnpm/@element-plus_icons-vue@2.3.2_vue@3.5.13_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/index.mjs";
8
8
  import { getEditConfigData, setSelectedItem, setHoverItem, getCurrentClass } from "../utils/common.mjs";
9
9
  /* empty css */
10
10
  import _export_sfc from "../../../../../_virtual/_plugin-vue_export-helper.mjs";
11
- import { ElButton } from "../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/button/index.mjs";
12
11
  import { ElIcon } from "../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/icon/index.mjs";
12
+ import { ElButton } from "../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/button/index.mjs";
13
13
  import { ElLink } from "../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/link/index.mjs";
14
14
  const _hoisted_1 = { class: "table-work-btns" };
15
15
  const _hoisted_2 = { class: "left" };
16
- const _hoisted_3 = ["onMouseenter", "onClick"];
17
- const _hoisted_4 = { class: "right" };
16
+ const _hoisted_3 = {
17
+ key: 0,
18
+ class: "back-icon"
19
+ };
20
+ const _hoisted_4 = {
21
+ key: 1,
22
+ class: "template-name"
23
+ };
18
24
  const _hoisted_5 = ["onMouseenter", "onClick"];
25
+ const _hoisted_6 = { class: "right" };
26
+ const _hoisted_7 = ["onMouseenter", "onClick"];
19
27
  const _sfc_main = {
20
28
  __name: "tableBtn",
21
29
  setup(__props) {
@@ -57,21 +65,31 @@ const _sfc_main = {
57
65
  }
58
66
  }
59
67
  return (_ctx, _cache) => {
60
- const _component_el_button = ElButton;
68
+ const _component_ArrowLeftBold = resolveComponent("ArrowLeftBold");
61
69
  const _component_el_icon = ElIcon;
70
+ const _component_el_button = ElButton;
62
71
  const _component_el_link = ElLink;
63
72
  return openBlock(), createElementBlock("div", _hoisted_1, [
64
73
  createElementVNode("div", _hoisted_2, [
74
+ editConfigData.value.showReturn ? (openBlock(), createElementBlock("div", _hoisted_3, [
75
+ createVNode(_component_el_icon, null, {
76
+ default: withCtx(() => [
77
+ createVNode(_component_ArrowLeftBold)
78
+ ]),
79
+ _: 1
80
+ })
81
+ ])) : createCommentVNode("", true),
82
+ editConfigData.value.showTitle ? (openBlock(), createElementBlock("div", _hoisted_4, toDisplayString(editConfigData.value.templateName), 1)) : createCommentVNode("", true),
65
83
  createVNode(unref(lo), {
66
- modelValue: unref(editConfigData).customBtns.left,
67
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => unref(editConfigData).customBtns.left = $event),
84
+ modelValue: editConfigData.value.customBtns.left,
85
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => editConfigData.value.customBtns.left = $event),
68
86
  animation: 150,
69
87
  group: { name: "tableBtn" },
70
88
  ghostClass: "ghost",
71
89
  class: "optBtnDraggable"
72
90
  }, {
73
91
  default: withCtx(() => [
74
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(editConfigData).customBtns.left, (item) => {
92
+ (openBlock(true), createElementBlock(Fragment, null, renderList(editConfigData.value.customBtns.left, (item) => {
75
93
  return openBlock(), createElementBlock("div", {
76
94
  class: normalizeClass(["optBtn", unref(getCurrentClass)(item)]),
77
95
  onMouseenter: ($event) => unref(setHoverItem)(item),
@@ -96,7 +114,7 @@ const _sfc_main = {
96
114
  ]),
97
115
  _: 2
98
116
  }, 1032, ["onClick"])
99
- ], 42, _hoisted_3);
117
+ ], 42, _hoisted_5);
100
118
  }), 256))
101
119
  ]),
102
120
  _: 1
@@ -114,7 +132,7 @@ const _sfc_main = {
114
132
  _: 1
115
133
  }, 8, ["icon"])
116
134
  ]),
117
- createElementVNode("div", _hoisted_4, [
135
+ createElementVNode("div", _hoisted_6, [
118
136
  createVNode(_component_el_link, {
119
137
  class: "optBtn addLink",
120
138
  underline: "never",
@@ -128,15 +146,15 @@ const _sfc_main = {
128
146
  _: 1
129
147
  }, 8, ["icon"]),
130
148
  createVNode(unref(lo), {
131
- modelValue: unref(editConfigData).customBtns.right,
132
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => unref(editConfigData).customBtns.right = $event),
149
+ modelValue: editConfigData.value.customBtns.right,
150
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => editConfigData.value.customBtns.right = $event),
133
151
  animation: 150,
134
152
  group: { name: "tableBtn" },
135
153
  ghostClass: "ghost",
136
154
  class: "optBtnDraggable"
137
155
  }, {
138
156
  default: withCtx(() => [
139
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(editConfigData).customBtns.right, (item) => {
157
+ (openBlock(true), createElementBlock(Fragment, null, renderList(editConfigData.value.customBtns.right, (item) => {
140
158
  return openBlock(), createElementBlock("div", {
141
159
  class: normalizeClass(["optBtn", unref(getCurrentClass)(item)]),
142
160
  onMouseenter: ($event) => unref(setHoverItem)(item),
@@ -161,7 +179,7 @@ const _sfc_main = {
161
179
  ]),
162
180
  _: 2
163
181
  }, 1032, ["onClick"])
164
- ], 42, _hoisted_5);
182
+ ], 42, _hoisted_7);
165
183
  }), 256))
166
184
  ]),
167
185
  _: 1
@@ -171,7 +189,7 @@ const _sfc_main = {
171
189
  };
172
190
  }
173
191
  };
174
- const TableBtn = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f948e680"]]);
192
+ const TableBtn = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c16f2646"]]);
175
193
  export {
176
194
  TableBtn as default
177
195
  };
@@ -0,0 +1,157 @@
1
+ import { ref, watch } from "vue";
2
+ import { createDataSource } from "../packages/utils/datasource.mjs";
3
+ import { getEditConfigDataSources } from "../packages/utils/common.mjs";
4
+ import { getDataSourceWithConcurrencyControl, getDictionaryWithConcurrencyControl } from "./simpleCache.mjs";
5
+ import api from "../api/index.mjs";
6
+ async function loadOptions(config, callback) {
7
+ const { fieldType, optionConfig = {} } = config;
8
+ if (fieldType !== "select" && fieldType !== "multipleSelection" && fieldType !== "cascader" && fieldType !== "area" && fieldType !== "industry" && fieldType !== "radio" && fieldType !== "checkbox") {
9
+ const result = optionConfig.options || [];
10
+ return result;
11
+ }
12
+ if (fieldType == "area") {
13
+ const rawData = await getDataSourceWithConcurrencyControl(
14
+ "sysArea",
15
+ async () => {
16
+ const data = await api.getDataDicArea4Cascader();
17
+ return data;
18
+ }
19
+ );
20
+ return rawData;
21
+ } else if (fieldType == "industry") {
22
+ const rawData = await getDataSourceWithConcurrencyControl(
23
+ "sysIndustry",
24
+ async () => {
25
+ const data = await api.getDataDicTrade4Cascader();
26
+ return data;
27
+ }
28
+ );
29
+ return rawData;
30
+ }
31
+ const {
32
+ optionSource,
33
+ dataSourceValue,
34
+ dictionaryValue,
35
+ options: staticOptions = [],
36
+ displayField = "label",
37
+ valueField = "value"
38
+ } = optionConfig;
39
+ if (!optionSource || optionSource === "static") {
40
+ return staticOptions;
41
+ }
42
+ try {
43
+ if (optionSource === "dataSource" && dataSourceValue) {
44
+ const result = await loadDataSourceOptions(
45
+ dataSourceValue,
46
+ displayField,
47
+ valueField,
48
+ staticOptions
49
+ );
50
+ if (callback) ;
51
+ return result;
52
+ }
53
+ if (optionSource === "dictionary" && dictionaryValue) {
54
+ const result = await loadDictionaryOptions(
55
+ dictionaryValue,
56
+ staticOptions
57
+ );
58
+ if (callback) ;
59
+ return result;
60
+ }
61
+ if (callback) ;
62
+ return staticOptions;
63
+ } catch (error) {
64
+ console.error("加载选项失败:", error);
65
+ return staticOptions;
66
+ }
67
+ }
68
+ async function loadDataSourceOptions(dataSourceValue, displayField, valueField, fallbackOptions = []) {
69
+ var _a, _b;
70
+ try {
71
+ const dataSources = getEditConfigDataSources();
72
+ const rawData = await getDataSourceWithConcurrencyControl(
73
+ dataSourceValue,
74
+ async () => {
75
+ const dsManager = createDataSource({
76
+ dataSources,
77
+ currentDataSourceId: dataSourceValue
78
+ });
79
+ try {
80
+ const data = await dsManager.fetch();
81
+ dsManager.destroy();
82
+ return data;
83
+ } catch (error) {
84
+ dsManager.destroy();
85
+ throw error;
86
+ }
87
+ }
88
+ );
89
+ let dataArray = [];
90
+ if (Array.isArray(rawData)) {
91
+ dataArray = rawData;
92
+ } else if (typeof rawData === "object") {
93
+ dataArray = Array.isArray(rawData.data) ? rawData.data : ((_a = rawData.data) == null ? void 0 : _a.records) || ((_b = rawData.data) == null ? void 0 : _b.list) || [];
94
+ }
95
+ const processedOptions = dataArray.map((item) => ({
96
+ ...item,
97
+ label: item[displayField] || item.label || item.name || String(item[valueField] || ""),
98
+ value: item[valueField] || item.value || item.id
99
+ }));
100
+ return processedOptions;
101
+ } catch (error) {
102
+ console.error(`加载数据源失败: ${dataSourceValue}:`, error);
103
+ return fallbackOptions;
104
+ }
105
+ }
106
+ async function loadDictionaryOptions(dictionaryValue, fallbackOptions = []) {
107
+ try {
108
+ const dictData = await getDictionaryWithConcurrencyControl(
109
+ dictionaryValue,
110
+ () => api.getDicDataByKey(dictionaryValue)
111
+ );
112
+ const result = [];
113
+ for (const key in dictData) {
114
+ result.push({
115
+ label: dictData[key] || key,
116
+ value: key
117
+ });
118
+ }
119
+ return result;
120
+ } catch (error) {
121
+ console.error(`加载字典数据失败: ${dictionaryValue}:`, error);
122
+ return fallbackOptions;
123
+ }
124
+ }
125
+ function useOptions(config) {
126
+ const options = ref([]);
127
+ const loading = ref(false);
128
+ const configRef = isRef(config) ? config : ref(config);
129
+ watch(
130
+ configRef,
131
+ async (newConfig) => {
132
+ var _a;
133
+ if (!newConfig) return;
134
+ loading.value = true;
135
+ try {
136
+ const result = await loadOptions(newConfig);
137
+ options.value = result;
138
+ } catch (error) {
139
+ console.error("加载选项失败:", error);
140
+ options.value = ((_a = newConfig.optionConfig) == null ? void 0 : _a.options) || [];
141
+ } finally {
142
+ loading.value = false;
143
+ }
144
+ },
145
+ { immediate: true, deep: true }
146
+ );
147
+ return { options, loading };
148
+ }
149
+ function isRef(value) {
150
+ return value && typeof value === "object" && "value" in value;
151
+ }
152
+ export {
153
+ loadDataSourceOptions,
154
+ loadDictionaryOptions,
155
+ loadOptions,
156
+ useOptions
157
+ };
@@ -0,0 +1,80 @@
1
+ const dataSourceCache = /* @__PURE__ */ new Map();
2
+ const dictionaryCache = /* @__PURE__ */ new Map();
3
+ const pendingRequests = /* @__PURE__ */ new Map();
4
+ const DEFAULT_CACHE_TIME = 10 * 60 * 1e3;
5
+ function getDataSourceCache(dataSourceId) {
6
+ const cached = dataSourceCache.get(dataSourceId);
7
+ if (!cached) return null;
8
+ if (Date.now() - cached.timestamp > cached.expiresIn) {
9
+ dataSourceCache.delete(dataSourceId);
10
+ return null;
11
+ }
12
+ return cached.data;
13
+ }
14
+ function setDataSourceCache(dataSourceId, data, expiresIn = DEFAULT_CACHE_TIME) {
15
+ dataSourceCache.set(dataSourceId, {
16
+ data,
17
+ timestamp: Date.now(),
18
+ expiresIn
19
+ });
20
+ }
21
+ function getDictionaryCache(dictionaryKey) {
22
+ const cached = dictionaryCache.get(dictionaryKey);
23
+ if (!cached) return null;
24
+ if (Date.now() - cached.timestamp > cached.expiresIn) {
25
+ dictionaryCache.delete(dictionaryKey);
26
+ return null;
27
+ }
28
+ return cached.data;
29
+ }
30
+ function setDictionaryCache(dictionaryKey, data, expiresIn = DEFAULT_CACHE_TIME) {
31
+ dictionaryCache.set(dictionaryKey, {
32
+ data,
33
+ timestamp: Date.now(),
34
+ expiresIn
35
+ });
36
+ }
37
+ async function getDataSourceWithConcurrencyControl(dataSourceId, fetchFn) {
38
+ const cachedData = getDataSourceCache(dataSourceId);
39
+ if (cachedData !== null) {
40
+ return cachedData;
41
+ }
42
+ const requestKey = `dataSource:${dataSourceId}`;
43
+ if (pendingRequests.has(requestKey)) {
44
+ return pendingRequests.get(requestKey);
45
+ }
46
+ const requestPromise = fetchFn().then((data) => {
47
+ setDataSourceCache(dataSourceId, data);
48
+ return data;
49
+ }).finally(() => {
50
+ pendingRequests.delete(requestKey);
51
+ });
52
+ pendingRequests.set(requestKey, requestPromise);
53
+ return requestPromise;
54
+ }
55
+ async function getDictionaryWithConcurrencyControl(dictionaryKey, fetchFn) {
56
+ const cachedData = getDictionaryCache(dictionaryKey);
57
+ if (cachedData !== null) {
58
+ return cachedData;
59
+ }
60
+ const requestKey = `dictionary:${dictionaryKey}`;
61
+ if (pendingRequests.has(requestKey)) {
62
+ return pendingRequests.get(requestKey);
63
+ }
64
+ const requestPromise = fetchFn().then((data) => {
65
+ setDictionaryCache(dictionaryKey, data);
66
+ return data;
67
+ }).finally(() => {
68
+ pendingRequests.delete(requestKey);
69
+ });
70
+ pendingRequests.set(requestKey, requestPromise);
71
+ return requestPromise;
72
+ }
73
+ export {
74
+ getDataSourceCache,
75
+ getDataSourceWithConcurrencyControl,
76
+ getDictionaryCache,
77
+ getDictionaryWithConcurrencyControl,
78
+ setDataSourceCache,
79
+ setDictionaryCache
80
+ };
@@ -80,7 +80,30 @@ const _sfc_main = {
80
80
  }
81
81
  return true;
82
82
  });
83
+ var isComposing = false;
83
84
  const handleInput = (e) => {
85
+ if (isComposing) return;
86
+ const inputElement = e.target;
87
+ recordCursor(inputElement);
88
+ inputElement.value = textFormatter4Input(
89
+ inputElement.value,
90
+ props.dataFormatter
91
+ );
92
+ setCursor(inputElement);
93
+ const unformattedValue = reverseTextFormatter(
94
+ inputElement.value,
95
+ props.dataFormatter
96
+ );
97
+ compValue.value = unformattedValue;
98
+ };
99
+ const handleCompositionStart = () => {
100
+ isComposing = true;
101
+ };
102
+ const handleCompositionEnd = (e) => {
103
+ isComposing = false;
104
+ doSomethingFunction(e);
105
+ };
106
+ const doSomethingFunction = (e) => {
84
107
  const inputElement = e.target;
85
108
  recordCursor(inputElement);
86
109
  inputElement.value = textFormatter4Input(
@@ -108,7 +131,9 @@ const _sfc_main = {
108
131
  onClick: _cache[1] || (_cache[1] = ($event) => !__props.disabled && emit("openPicker")),
109
132
  ref_key: "fieldInputRef",
110
133
  ref: fieldInputRef,
111
- onInput: handleInput
134
+ onInput: handleInput,
135
+ onCompositionstart: handleCompositionStart,
136
+ onCompositionend: handleCompositionEnd
112
137
  }), createSlots({ _: 2 }, [
113
138
  renderList(_ctx.$slots, (item, key) => {
114
139
  return {
@@ -7,6 +7,9 @@ const api = {
7
7
  },
8
8
  getDataDicTrade4Cascader: ($http) => {
9
9
  return $http.post(`${$servers.base}/parm/sysParmDic/getDataDicTrade4Cascader`);
10
+ },
11
+ getTemplateDialogById: ($http, id) => {
12
+ return $http.postForm(`${$servers.base}/template/sysTemplateDialog/getById`, { id });
10
13
  }
11
14
  };
12
15
  export {
@@ -10,7 +10,7 @@ import { Radio } from "./forms/radio/index.mjs";
10
10
  import { Checkbox } from "./forms/checkbox/index.mjs";
11
11
  import { Switch } from "./forms/switch/index.mjs";
12
12
  import { Upload } from "./forms/upload/index.mjs";
13
- import { Divider } from "./forms/divider/index.mjs";
13
+ import { SubTitle } from "./forms/subTitle/index.mjs";
14
14
  import { H2 } from "./forms/h2/index.mjs";
15
15
  import { SubForm } from "./forms/subForm/index.mjs";
16
16
  import { SubTable } from "./forms/subTable/index.mjs";
@@ -30,7 +30,6 @@ export {
30
30
  Cascader,
31
31
  Checkbox,
32
32
  Date,
33
- Divider,
34
33
  Form,
35
34
  FormItem,
36
35
  H2,
@@ -42,6 +41,7 @@ export {
42
41
  Select,
43
42
  SubForm,
44
43
  SubTable,
44
+ SubTitle,
45
45
  Switch,
46
46
  Table,
47
47
  Text,
@@ -1,7 +1,7 @@
1
1
  /* empty css */
2
2
  /* empty css */
3
3
  import { ref, inject, watch, createElementBlock, openBlock, Fragment, createCommentVNode, createElementVNode, createBlock, unref, withCtx, createVNode, withModifiers, normalizeClass } from "vue";
4
- import { Divider } from "../../forms/divider/index.mjs";
4
+ import { SubTitle } from "../../forms/subTitle/index.mjs";
5
5
  import { H2 } from "../../forms/h2/index.mjs";
6
6
  import _sfc_main$1 from "./timeLine.vue.mjs";
7
7
  import FecFlowChart from "./flowChart.vue.mjs";
@@ -101,7 +101,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
101
101
  })
102
102
  ]),
103
103
  _: 1
104
- }, 8, ["config"])) : __props.config.titleMode == "subLabel" ? (openBlock(), createBlock(unref(Divider), {
104
+ }, 8, ["config"])) : __props.config.titleMode == "subLabel" ? (openBlock(), createBlock(unref(SubTitle), {
105
105
  key: 1,
106
106
  config: __props.config
107
107
  }, null, 8, ["config"])) : createCommentVNode("", true)
@@ -124,7 +124,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
124
124
  };
125
125
  }
126
126
  });
127
- const _ApprovalHistory = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c63139c9"]]);
127
+ const _ApprovalHistory = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-7be2a6d2"]]);
128
128
  export {
129
129
  _ApprovalHistory as default
130
130
  };
@@ -96,7 +96,7 @@ const _sfc_main = {
96
96
  };
97
97
  }
98
98
  };
99
- const component = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f9d3d19d"]]);
99
+ const component = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-93e082c1"]]);
100
100
  export {
101
101
  component as default
102
102
  };
@@ -181,7 +181,7 @@ const _sfc_main = {
181
181
  (_d = (_c = (_b = props.componentCtx) == null ? void 0 : _b.$) == null ? void 0 : _c.exposed) == null ? void 0 : _d.setFormData(formData);
182
182
  }
183
183
  const callbackEventConfig = currentDialogConfig.value.callbackEventConfig;
184
- if (callbackEventConfig && ((_e = callbackEventConfig == null ? void 0 : callbackEventConfig.next) == null ? void 0 : _e.id) != "end") {
184
+ if (callbackEventConfig && Object.keys(callbackEventConfig).length > 0 && ((_e = callbackEventConfig == null ? void 0 : callbackEventConfig.next) == null ? void 0 : _e.id) != "end") {
185
185
  const fieldsData = dialogTableRef.value.localConfig.fieldsData;
186
186
  executeEventFlow({
187
187
  eventFlow: callbackEventConfig,
@@ -408,7 +408,7 @@ const _sfc_main = {
408
408
  };
409
409
  }
410
410
  };
411
- const DialogRenderer = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-bc819435"]]);
411
+ const DialogRenderer = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a05d18cf"]]);
412
412
  export {
413
413
  DialogRenderer as default
414
414
  };
@@ -85,8 +85,9 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
85
85
  if (props.config.displayFieldName && val) {
86
86
  nextTick(() => {
87
87
  const displayValue = getDisplayPath();
88
- console.log("🚀 ~ displayValue:", displayValue);
89
- formData.value[props.config.displayFieldName] = displayValue;
88
+ if (formData) {
89
+ formData.value[props.config.displayFieldName] = displayValue;
90
+ }
90
91
  });
91
92
  }
92
93
  });
@@ -156,7 +156,6 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
156
156
  pageEvents.executeEvent("onCreated");
157
157
  }
158
158
  }
159
- initGridLayoutDataConfig();
160
159
  } catch (error) {
161
160
  console.error("加载配置失败:", error);
162
161
  ElMessage.error("加载配置失败");
@@ -326,8 +325,10 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
326
325
  item.isResizable = false;
327
326
  const component = item.component;
328
327
  item.y = item.y * 60;
329
- if (component.fieldType == "divider" || component.fieldType == "h2") {
328
+ if (component.fieldType == "subTitle" || component.fieldType == "h2") {
330
329
  item.h = item.h * 40;
330
+ } else if (component.fieldType == "divider") {
331
+ item.h = item.h * 0;
331
332
  } else if (!item.fixedH) {
332
333
  item.h = item.h * 60;
333
334
  } else ;
@@ -336,6 +337,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
336
337
  gridLayoutDataConfig.value = gridLayoutData;
337
338
  }
338
339
  const gridLayoutFieldsData = computed(() => {
340
+ initGridLayoutDataConfig();
339
341
  let gridLayoutData = cloneDeep(gridLayoutDataConfig.value || []);
340
342
  const linkedConfig = localConfig.value.linkedConfig || {};
341
343
  const dataLink = (linkedConfig == null ? void 0 : linkedConfig.dataLink) || [];
@@ -664,7 +666,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
664
666
  };
665
667
  }
666
668
  });
667
- const _Form = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-23f3bf9a"]]);
669
+ const _Form = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-263c93f9"]]);
668
670
  export {
669
671
  _Form as default
670
672
  };
@@ -2,9 +2,9 @@
2
2
  /* empty css */
3
3
  import "../../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/theme-chalk/el-tooltip.css.mjs";
4
4
  /* empty css */
5
- import { computed, createBlock, createElementBlock, openBlock, unref, createSlots, withCtx, createCommentVNode, resolveDynamicComponent, mergeProps, createElementVNode, toDisplayString } from "vue";
5
+ import { computed, createBlock, createElementBlock, openBlock, unref, normalizeClass, createSlots, withCtx, createCommentVNode, resolveDynamicComponent, mergeProps, createElementVNode, toDisplayString } from "vue";
6
6
  import { debounce } from "../form/debounce.mjs";
7
- import { Divider } from "../divider/index.mjs";
7
+ import { SubTitle } from "../subTitle/index.mjs";
8
8
  import { H2 } from "../h2/index.mjs";
9
9
  import { SubForm } from "../subForm/index.mjs";
10
10
  import { SubTable } from "../subTable/index.mjs";
@@ -15,12 +15,11 @@ import * as index from "../../bus/index.mjs";
15
15
  import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.mjs";
16
16
  import { ElFormItem } from "../../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/form/index.mjs";
17
17
  import { ElTooltip } from "../../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/tooltip/index.mjs";
18
- const _hoisted_1 = { key: 5 };
19
- const _hoisted_2 = {
18
+ const _hoisted_1 = {
20
19
  key: 0,
21
20
  class: "iconfont icon-iconZheng credit-icon"
22
21
  };
23
- const _hoisted_3 = {
22
+ const _hoisted_2 = {
24
23
  key: 1,
25
24
  class: "iconfont icon-iconJian regulation-icon"
26
25
  };
@@ -67,12 +66,12 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
67
66
  });
68
67
  const componentProps = computed(() => {
69
68
  const fieldProps = { ...props.config };
70
- if (fieldProps.fieldType !== "divider" && fieldProps.fieldType !== "h2") {
69
+ if (fieldProps.fieldType !== "subTitle" && fieldProps.fieldType !== "h2") {
71
70
  fieldProps.placeholder = fieldProps.placeholder || "";
72
71
  fieldProps.disabled = fieldProps.disabled || false;
73
72
  fieldProps.readonly = fieldProps.readOnly || false;
74
73
  }
75
- if (fieldProps.fieldType === "divider") {
74
+ if (fieldProps.fieldType === "subTitle") {
76
75
  fieldProps.content = fieldProps.label;
77
76
  }
78
77
  if (fieldProps.fieldType === "h2") {
@@ -104,7 +103,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
104
103
  return __props.config.fieldType == "h2" ? (openBlock(), createBlock(unref(H2), {
105
104
  key: 0,
106
105
  config: __props.config
107
- }, null, 8, ["config"])) : __props.config.fieldType == "divider" ? (openBlock(), createBlock(unref(Divider), {
106
+ }, null, 8, ["config"])) : __props.config.fieldType == "subTitle" ? (openBlock(), createBlock(unref(SubTitle), {
108
107
  key: 1,
109
108
  config: __props.config
110
109
  }, null, 8, ["config"])) : __props.config.fieldType == "subForm" ? (openBlock(), createBlock(unref(SubForm), {
@@ -120,7 +119,10 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
120
119
  key: 4,
121
120
  config: __props.config,
122
121
  localConfig: __props.localConfig
123
- }, null, 8, ["config", "localConfig"])) : __props.config.fieldType == "blank" ? (openBlock(), createElementBlock("div", _hoisted_1)) : (openBlock(), createBlock(_component_el_form_item, {
122
+ }, null, 8, ["config", "localConfig"])) : __props.config.fieldType == "blank" || __props.config.fieldType == "divider" ? (openBlock(), createElementBlock("div", {
123
+ key: 5,
124
+ class: normalizeClass(__props.config.fieldType)
125
+ }, null, 2)) : (openBlock(), createBlock(_component_el_form_item, {
124
126
  key: 6,
125
127
  prop: __props.config.fieldName,
126
128
  required: __props.config.required,
@@ -147,8 +149,8 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
147
149
  fn: withCtx(() => {
148
150
  var _a;
149
151
  return [
150
- __props.config.credit ? (openBlock(), createElementBlock("i", _hoisted_2)) : createCommentVNode("", true),
151
- __props.config.regulation ? (openBlock(), createElementBlock("i", _hoisted_3)) : createCommentVNode("", true),
152
+ __props.config.credit ? (openBlock(), createElementBlock("i", _hoisted_1)) : createCommentVNode("", true),
153
+ __props.config.regulation ? (openBlock(), createElementBlock("i", _hoisted_2)) : createCommentVNode("", true),
152
154
  createElementVNode("span", null, toDisplayString(__props.config.label), 1),
153
155
  ((_a = __props.config.tooltip) == null ? void 0 : _a.trim()) ? (openBlock(), createBlock(_component_el_tooltip, {
154
156
  key: 2,
@@ -168,7 +170,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
168
170
  };
169
171
  }
170
172
  });
171
- const _FormItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-250e51f9"]]);
173
+ const _FormItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c5553ecf"]]);
172
174
  export {
173
175
  _FormItem as default
174
176
  };
@@ -9,7 +9,7 @@ import { Radio } from "./radio/index.mjs";
9
9
  import { Checkbox } from "./checkbox/index.mjs";
10
10
  import { Switch } from "./switch/index.mjs";
11
11
  import { Upload } from "./upload/index.mjs";
12
- import { Divider } from "./divider/index.mjs";
12
+ import { SubTitle } from "./subTitle/index.mjs";
13
13
  import { H2 } from "./h2/index.mjs";
14
14
  import { SubForm } from "./subForm/index.mjs";
15
15
  import { SubTable } from "./subTable/index.mjs";
@@ -23,7 +23,6 @@ export {
23
23
  Cascader,
24
24
  Checkbox,
25
25
  Date,
26
- Divider,
27
26
  Form,
28
27
  H2,
29
28
  Industry,
@@ -34,6 +33,7 @@ export {
34
33
  Select,
35
34
  SubForm,
36
35
  SubTable,
36
+ SubTitle,
37
37
  Switch,
38
38
  Text,
39
39
  Textarea,