@fecp/designer 5.1.6 → 5.2.0

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 (137) hide show
  1. package/es/config-dev.js +1 -1
  2. package/es/designer.css +2083 -1300
  3. 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
  4. package/es/packages/designer/src/api/index.mjs +16 -1
  5. package/es/packages/designer/src/components/FieldSetMapping.vue2.mjs +407 -0
  6. package/es/packages/designer/src/components/FormulaEditorInput.vue.mjs +1 -1
  7. package/es/packages/designer/src/components/JsonDataDrawer.vue.mjs +1 -2
  8. package/es/packages/designer/src/components/OnlyFLowConfigButton.vue2.mjs +118 -0
  9. package/es/packages/designer/src/components/TemplateDialog.vue.mjs +254 -0
  10. package/es/packages/designer/src/components/TemplateSelector.vue.mjs +22 -175
  11. package/es/packages/designer/src/components/TemplateSelector.vue2.mjs +1 -0
  12. package/es/packages/designer/src/layout/aside/HiddenFieldDialog.vue.mjs +9 -15
  13. package/es/packages/designer/src/layout/header/index.vue.mjs +195 -11
  14. package/es/packages/designer/src/layout/index.vue.mjs +2 -2
  15. package/es/packages/designer/src/packages/dialog/index.vue.mjs +2 -2
  16. package/es/packages/designer/src/packages/dialogGlobal/index.vue.mjs +1004 -0
  17. package/es/packages/designer/src/packages/dialogGlobal/useDialogGlobalDialog.mjs +16 -0
  18. package/es/packages/designer/src/packages/event/index.vue2.mjs +76 -16
  19. package/es/packages/designer/src/packages/event/onlyFlow.vue2.mjs +105 -0
  20. package/es/packages/designer/src/packages/event/useOnlyFlowDialog.mjs +1 -1
  21. package/es/packages/designer/src/packages/eventFlow/dialog/action/Dialog.vue.mjs +225 -24
  22. package/es/packages/designer/src/packages/eventFlow/dialog/action/config.mjs +5 -1
  23. package/es/packages/designer/src/packages/form/aside/index.mjs +24 -10
  24. package/es/packages/designer/src/packages/form/components/ApprovalHistory.vue.mjs +3 -3
  25. package/es/packages/designer/src/packages/form/components/ComponentPreviewWrapper.vue.mjs +152 -69
  26. package/es/packages/designer/src/packages/form/components/DefaultValueEditor.vue.mjs +88 -0
  27. package/es/packages/designer/src/packages/form/components/SubForm.vue.mjs +3 -3
  28. package/es/packages/designer/src/packages/form/components/SubTable.vue.mjs +3 -3
  29. package/es/packages/designer/src/packages/form/components/SubTitle.vue.mjs +27 -0
  30. package/es/packages/designer/src/packages/form/headerBtn.vue.mjs +33 -57
  31. package/es/packages/designer/src/packages/form/index.vue.mjs +20 -8
  32. package/es/packages/designer/src/packages/form/property/index.vue.mjs +5 -3
  33. package/es/packages/designer/src/packages/form/property/subTitleH2.vue.mjs +94 -0
  34. package/es/packages/designer/src/packages/form/property/widgets.vue.mjs +275 -94
  35. package/es/packages/designer/src/packages/formulaEditor/components/FieldVariable.vue2.mjs +84 -0
  36. package/es/packages/designer/src/packages/formulaEditor/components/FormulaList.vue2.mjs +130 -0
  37. package/es/packages/designer/src/packages/formulaEditor/index.vue2.mjs +230 -0
  38. package/es/packages/designer/src/packages/table/default.mjs +1 -0
  39. package/es/packages/designer/src/packages/table/headerBtn.vue.mjs +48 -17
  40. package/es/packages/designer/src/packages/table/index.vue.mjs +1 -3
  41. package/es/packages/designer/src/packages/table/property/filterWidgets.vue.mjs +34 -7
  42. package/es/packages/designer/src/packages/table/queryModule/DynamicModeConfig.vue.mjs +492 -0
  43. package/es/packages/designer/src/packages/table/queryModule/FixedModeConfig.vue.mjs +15 -2
  44. package/es/packages/designer/src/packages/table/queryModule/index.vue.mjs +463 -138
  45. package/es/packages/designer/src/packages/table/tableBtn.vue.mjs +33 -15
  46. package/es/packages/designer/src/utils/optionLoader.mjs +157 -0
  47. package/es/packages/designer/src/utils/simpleCache.mjs +80 -0
  48. package/es/packages/mobile/src/components/form/field/Field.vue.mjs +14 -12
  49. package/es/packages/vue/src/api/index.mjs +3 -0
  50. package/es/packages/vue/src/components/all.mjs +2 -2
  51. package/es/packages/vue/src/components/bus/approvalHistory/ApprovalHistory.vue.mjs +3 -3
  52. package/es/packages/vue/src/components/details/header/Header.vue.mjs +1 -1
  53. package/es/packages/vue/src/components/dialog/DialogRenderer.vue2.mjs +2 -2
  54. package/es/packages/vue/src/components/forms/cascader/Cascader.vue.mjs +3 -2
  55. package/es/packages/vue/src/components/forms/form/Form.vue.mjs +6 -3
  56. package/es/packages/vue/src/components/forms/formItem/FormItem.vue.mjs +14 -12
  57. package/es/packages/vue/src/components/forms/index.mjs +2 -2
  58. package/es/packages/vue/src/components/forms/subForm/SubForm.vue.mjs +2 -2
  59. package/es/packages/vue/src/components/forms/subTable/SubTable.vue.mjs +2 -2
  60. package/es/packages/vue/src/components/forms/subTitle/SubTitle.vue.mjs +27 -0
  61. package/es/packages/vue/src/components/forms/subTitle/index.mjs +7 -0
  62. package/es/packages/vue/src/components/forms/text/Text.vue.mjs +47 -4
  63. package/es/packages/vue/src/components/table/CustomButtons.vue.mjs +32 -4
  64. package/es/packages/vue/src/components/table/DynamicQuery.vue.mjs +425 -0
  65. package/es/packages/vue/src/components/table/Table.vue.mjs +39 -21
  66. package/es/packages/vue/src/components/table/TableFilter.vue.mjs +7 -25
  67. package/es/packages/vue/src/utils/common.mjs +27 -0
  68. package/es/packages/vue/src/utils/eventFlow/actionHandlers.mjs +20 -3
  69. package/lib/config-dev.js +1 -1
  70. package/lib/designer.css +2083 -1300
  71. 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
  72. package/lib/packages/designer/src/api/index.js +15 -0
  73. package/lib/packages/designer/src/components/FieldSetMapping.vue2.js +407 -0
  74. package/lib/packages/designer/src/components/FormulaEditorInput.vue.js +1 -1
  75. package/lib/packages/designer/src/components/JsonDataDrawer.vue.js +1 -2
  76. package/lib/packages/designer/src/components/OnlyFLowConfigButton.vue2.js +118 -0
  77. package/lib/packages/designer/src/components/TemplateDialog.vue.js +254 -0
  78. package/lib/packages/designer/src/components/TemplateSelector.vue.js +21 -174
  79. package/lib/packages/designer/src/components/TemplateSelector.vue2.js +1 -0
  80. package/lib/packages/designer/src/layout/aside/HiddenFieldDialog.vue.js +9 -15
  81. package/lib/packages/designer/src/layout/header/index.vue.js +192 -8
  82. package/lib/packages/designer/src/layout/index.vue.js +2 -2
  83. package/lib/packages/designer/src/packages/dialog/index.vue.js +2 -2
  84. package/lib/packages/designer/src/packages/dialogGlobal/index.vue.js +1004 -0
  85. package/lib/packages/designer/src/packages/dialogGlobal/useDialogGlobalDialog.js +16 -0
  86. package/lib/packages/designer/src/packages/event/index.vue2.js +75 -15
  87. package/lib/packages/designer/src/packages/event/onlyFlow.vue2.js +105 -0
  88. package/lib/packages/designer/src/packages/event/useOnlyFlowDialog.js +1 -1
  89. package/lib/packages/designer/src/packages/eventFlow/dialog/action/Dialog.vue.js +226 -25
  90. package/lib/packages/designer/src/packages/eventFlow/dialog/action/config.js +5 -1
  91. package/lib/packages/designer/src/packages/form/aside/index.js +24 -10
  92. package/lib/packages/designer/src/packages/form/components/ApprovalHistory.vue.js +3 -3
  93. package/lib/packages/designer/src/packages/form/components/ComponentPreviewWrapper.vue.js +160 -77
  94. package/lib/packages/designer/src/packages/form/components/DefaultValueEditor.vue.js +88 -0
  95. package/lib/packages/designer/src/packages/form/components/SubForm.vue.js +3 -3
  96. package/lib/packages/designer/src/packages/form/components/SubTable.vue.js +3 -3
  97. package/lib/packages/designer/src/packages/form/components/SubTitle.vue.js +27 -0
  98. package/lib/packages/designer/src/packages/form/headerBtn.vue.js +33 -57
  99. package/lib/packages/designer/src/packages/form/index.vue.js +21 -9
  100. package/lib/packages/designer/src/packages/form/property/index.vue.js +6 -4
  101. package/lib/packages/designer/src/packages/form/property/subTitleH2.vue.js +94 -0
  102. package/lib/packages/designer/src/packages/form/property/widgets.vue.js +271 -90
  103. package/lib/packages/designer/src/packages/formulaEditor/components/FieldVariable.vue2.js +84 -0
  104. package/lib/packages/designer/src/packages/formulaEditor/components/FormulaList.vue2.js +130 -0
  105. package/lib/packages/designer/src/packages/formulaEditor/index.vue2.js +230 -0
  106. package/lib/packages/designer/src/packages/table/default.js +1 -0
  107. package/lib/packages/designer/src/packages/table/headerBtn.vue.js +48 -17
  108. package/lib/packages/designer/src/packages/table/index.vue.js +1 -3
  109. package/lib/packages/designer/src/packages/table/property/filterWidgets.vue.js +33 -6
  110. package/lib/packages/designer/src/packages/table/queryModule/DynamicModeConfig.vue.js +492 -0
  111. package/lib/packages/designer/src/packages/table/queryModule/FixedModeConfig.vue.js +15 -2
  112. package/lib/packages/designer/src/packages/table/queryModule/index.vue.js +463 -138
  113. package/lib/packages/designer/src/packages/table/tableBtn.vue.js +34 -16
  114. package/lib/packages/designer/src/utils/optionLoader.js +157 -0
  115. package/lib/packages/designer/src/utils/simpleCache.js +80 -0
  116. package/lib/packages/mobile/src/components/form/field/Field.vue.js +14 -12
  117. package/lib/packages/vue/src/api/index.js +3 -0
  118. package/lib/packages/vue/src/components/all.js +2 -2
  119. package/lib/packages/vue/src/components/bus/approvalHistory/ApprovalHistory.vue.js +3 -3
  120. package/lib/packages/vue/src/components/details/header/Header.vue.js +1 -1
  121. package/lib/packages/vue/src/components/dialog/DialogRenderer.vue2.js +2 -2
  122. package/lib/packages/vue/src/components/forms/cascader/Cascader.vue.js +3 -2
  123. package/lib/packages/vue/src/components/forms/form/Form.vue.js +6 -3
  124. package/lib/packages/vue/src/components/forms/formItem/FormItem.vue.js +13 -11
  125. package/lib/packages/vue/src/components/forms/index.js +2 -2
  126. package/lib/packages/vue/src/components/forms/subForm/SubForm.vue.js +2 -2
  127. package/lib/packages/vue/src/components/forms/subTable/SubTable.vue.js +2 -2
  128. package/lib/packages/vue/src/components/forms/subTitle/SubTitle.vue.js +27 -0
  129. package/lib/packages/vue/src/components/forms/subTitle/index.js +7 -0
  130. package/lib/packages/vue/src/components/forms/text/Text.vue.js +49 -6
  131. package/lib/packages/vue/src/components/table/CustomButtons.vue.js +41 -13
  132. package/lib/packages/vue/src/components/table/DynamicQuery.vue.js +425 -0
  133. package/lib/packages/vue/src/components/table/Table.vue.js +38 -20
  134. package/lib/packages/vue/src/components/table/TableFilter.vue.js +7 -25
  135. package/lib/packages/vue/src/utils/common.js +27 -0
  136. package/lib/packages/vue/src/utils/eventFlow/actionHandlers.js +30 -13
  137. package/package.json +1 -1
@@ -0,0 +1,16 @@
1
+ import DialogGlobalDialog from "./index.vue.mjs";
2
+ import { ref } from "vue";
3
+ function useDialogGlobalDialog() {
4
+ const dialogGlobalDialogVisible = ref(false);
5
+ const openDialogGlobalDialog = () => {
6
+ dialogGlobalDialogVisible.value = true;
7
+ };
8
+ return {
9
+ dialogGlobalDialogVisible,
10
+ openDialogGlobalDialog,
11
+ DialogGlobalDialog
12
+ };
13
+ }
14
+ export {
15
+ useDialogGlobalDialog
16
+ };
@@ -15,12 +15,10 @@ import "../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescr
15
15
  /* empty css */
16
16
  import "../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/theme-chalk/el-dropdown-menu.css.mjs";
17
17
  import "../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/theme-chalk/el-dropdown-item.css.mjs";
18
- import { mergeModels, useModel, ref, watch, resolveComponent, createBlock, openBlock, withCtx, createVNode, createElementVNode, createTextVNode, createElementBlock, Fragment, renderList, toDisplayString, normalizeClass, normalizeStyle } from "vue";
18
+ import { mergeModels, useModel, ref, watch, computed, resolveComponent, createBlock, openBlock, withCtx, createVNode, createElementVNode, createTextVNode, createElementBlock, Fragment, renderList, toDisplayString, normalizeClass, normalizeStyle } from "vue";
19
19
  import _sfc_main$1 from "../eventFlow/index.vue.mjs";
20
20
  import defaultProcessData from "../eventFlow/defaultProcessData.mjs";
21
21
  import { cloneDeep } from "../utils/common.mjs";
22
- /* empty css */
23
- /* empty css */
24
22
  /* empty css */
25
23
  import _export_sfc from "../../../../../_virtual/_plugin-vue_export-helper.mjs";
26
24
  import { ElDialog } from "../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/dialog/index.mjs";
@@ -34,13 +32,15 @@ const _hoisted_1 = { class: "el-dropdown-link" };
34
32
  const _hoisted_2 = ["onClick"];
35
33
  const _hoisted_3 = { class: "event-title" };
36
34
  const _hoisted_4 = { class: "event-method" };
37
- const _hoisted_5 = { class: "event-label" };
38
- const _hoisted_6 = { class: "tab-content" };
39
- const _hoisted_7 = {
35
+ const _hoisted_5 = { class: "el-dropdown-link" };
36
+ const _hoisted_6 = { class: "event-name" };
37
+ const _hoisted_7 = { class: "event-label" };
38
+ const _hoisted_8 = { class: "tab-content" };
39
+ const _hoisted_9 = {
40
40
  key: 1,
41
41
  class: "empty-selection"
42
42
  };
43
- const _hoisted_8 = { class: "dialog-footer" };
43
+ const _hoisted_10 = { class: "dialog-footer" };
44
44
  const _sfc_main = {
45
45
  __name: "index",
46
46
  props: /* @__PURE__ */ mergeModels({
@@ -95,6 +95,29 @@ const _sfc_main = {
95
95
  });
96
96
  const activeTab = ref("eventFlow");
97
97
  const eventFlowRefs = ref({});
98
+ const availableEventTypes = computed(() => {
99
+ return eventData.value;
100
+ });
101
+ const handleChangeEventType = (index, newEventName) => {
102
+ const eventType = eventData.value.find((e) => e.name === newEventName);
103
+ if (eventType) {
104
+ const isAlreadySelected = selectedEvents.value.some(
105
+ (event, i) => i !== index && event.name === newEventName
106
+ );
107
+ if (isAlreadySelected) {
108
+ ElMessage.warning(`事件类型 "${newEventName}" 已被选择,请选择其他类型`);
109
+ return;
110
+ }
111
+ const currentEvent = selectedEvents.value[index];
112
+ const newEvent = {
113
+ name: eventType.name,
114
+ description: eventType.description,
115
+ eventFlow: currentEvent.eventFlow
116
+ // 保留原有的流程配置
117
+ };
118
+ selectedEvents.value.splice(index, 1, newEvent);
119
+ }
120
+ };
98
121
  const validationErrors = ref({});
99
122
  const setEventFlowRef = (el, index) => {
100
123
  if (el) {
@@ -186,7 +209,7 @@ const _sfc_main = {
186
209
  class: "fec-dev-designer-dialog"
187
210
  }, {
188
211
  footer: withCtx(() => [
189
- createElementVNode("div", _hoisted_8, [
212
+ createElementVNode("div", _hoisted_10, [
190
213
  createVNode(_component_el_button, {
191
214
  onClick: _cache[1] || (_cache[1] = ($event) => dialogVisible.value = false)
192
215
  }, {
@@ -277,11 +300,48 @@ const _sfc_main = {
277
300
  }, [
278
301
  createElementVNode("div", _hoisted_3, [
279
302
  createElementVNode("div", _hoisted_4, [
280
- createElementVNode("span", null, [
281
- _cache[4] || (_cache[4] = createTextVNode("function ")),
282
- createElementVNode("span", null, toDisplayString(event.name), 1)
283
- ]),
284
- createElementVNode("span", _hoisted_5, toDisplayString(event.description), 1)
303
+ createVNode(_component_el_dropdown, {
304
+ trigger: "click",
305
+ placement: "bottom-start",
306
+ onCommand: (command) => handleChangeEventType(index, command)
307
+ }, {
308
+ dropdown: withCtx(() => [
309
+ createVNode(_component_el_dropdown_menu, null, {
310
+ default: withCtx(() => [
311
+ (openBlock(true), createElementBlock(Fragment, null, renderList(availableEventTypes.value, (eventType) => {
312
+ return openBlock(), createBlock(_component_el_dropdown_item, {
313
+ key: eventType.name,
314
+ disabled: eventType.name === event.name,
315
+ command: eventType.name
316
+ }, {
317
+ default: withCtx(() => [
318
+ createElementVNode("div", null, [
319
+ createElementVNode("span", null, toDisplayString(eventType.name), 1),
320
+ createElementVNode("span", null, toDisplayString(eventType.description), 1)
321
+ ])
322
+ ]),
323
+ _: 2
324
+ }, 1032, ["disabled", "command"]);
325
+ }), 128))
326
+ ]),
327
+ _: 2
328
+ }, 1024)
329
+ ]),
330
+ default: withCtx(() => [
331
+ createElementVNode("span", _hoisted_5, [
332
+ _cache[4] || (_cache[4] = createTextVNode(" function ")),
333
+ createElementVNode("span", _hoisted_6, toDisplayString(event.name), 1),
334
+ createVNode(_component_el_icon, { class: "el-icon--right" }, {
335
+ default: withCtx(() => [
336
+ createVNode(_component_arrow_down)
337
+ ]),
338
+ _: 1
339
+ })
340
+ ])
341
+ ]),
342
+ _: 2
343
+ }, 1032, ["onCommand"]),
344
+ createElementVNode("span", _hoisted_7, toDisplayString(event.description), 1)
285
345
  ]),
286
346
  createVNode(_component_el_icon, {
287
347
  class: "delete-icon",
@@ -318,7 +378,7 @@ const _sfc_main = {
318
378
  name: "eventFlow"
319
379
  }, {
320
380
  default: withCtx(() => [
321
- createElementVNode("div", _hoisted_6, [
381
+ createElementVNode("div", _hoisted_8, [
322
382
  (openBlock(true), createElementBlock(Fragment, null, renderList(selectedEvents.value, (event, index) => {
323
383
  return openBlock(), createBlock(_sfc_main$1, {
324
384
  key: index,
@@ -347,7 +407,7 @@ const _sfc_main = {
347
407
  })
348
408
  ]),
349
409
  _: 1
350
- }, 8, ["modelValue"])) : (openBlock(), createElementBlock("div", _hoisted_7, "请从左侧选择一个事件"))
410
+ }, 8, ["modelValue"])) : (openBlock(), createElementBlock("div", _hoisted_9, "请从左侧选择一个事件"))
351
411
  ]),
352
412
  _: 1
353
413
  })
@@ -360,7 +420,7 @@ const _sfc_main = {
360
420
  };
361
421
  }
362
422
  };
363
- const EventConfig = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-e45fecb2"]]);
423
+ const EventConfig = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-ec7ae734"]]);
364
424
  export {
365
425
  EventConfig as default
366
426
  };
@@ -0,0 +1,105 @@
1
+ /* empty css */
2
+ /* empty css */
3
+ /* empty css */
4
+ /* empty css */
5
+ import { mergeModels, useModel, ref, createBlock, openBlock, withCtx, createElementVNode, createVNode, createTextVNode } from "vue";
6
+ import _sfc_main$1 from "../eventFlow/index.vue.mjs";
7
+ import defaultProcessData from "../eventFlow/defaultProcessData.mjs";
8
+ import { cloneDeep } from "../utils/common.mjs";
9
+ /* empty css */
10
+ /* empty css */
11
+ /* empty css */
12
+ import _export_sfc from "../../../../../_virtual/_plugin-vue_export-helper.mjs";
13
+ import { ElDialog } from "../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/dialog/index.mjs";
14
+ 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";
15
+ import { ElMessage } from "../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/message/index.mjs";
16
+ const _hoisted_1 = { style: { "border": "1px solid #ebeef5", "border-radius": "4px", "height": "600px", "overflow": "auto", "background-color": "#f2f3f5" } };
17
+ const _hoisted_2 = { class: "dialog-footer" };
18
+ const _sfc_main = {
19
+ __name: "onlyFlow",
20
+ props: /* @__PURE__ */ mergeModels({
21
+ eventConfig: {
22
+ type: Object,
23
+ default: {}
24
+ },
25
+ title: {
26
+ type: String,
27
+ default: "事件配置"
28
+ },
29
+ onConfirm: Function
30
+ }, {
31
+ "modelValue": { required: true },
32
+ "modelModifiers": {}
33
+ }),
34
+ emits: ["update:modelValue"],
35
+ setup(__props) {
36
+ const dialogVisible = useModel(__props, "modelValue");
37
+ const props = __props;
38
+ const createEventFlow = () => JSON.parse(JSON.stringify(defaultProcessData));
39
+ const eventConfigData = ref(props.eventConfig || createEventFlow());
40
+ const eventFlowRef = ref(null);
41
+ const onConfirm = async () => {
42
+ var _a;
43
+ try {
44
+ if ((_a = eventFlowRef.value) == null ? void 0 : _a.validate) {
45
+ await eventFlowRef.value.validate();
46
+ }
47
+ props.onConfirm && props.onConfirm(cloneDeep(eventConfigData.value));
48
+ dialogVisible.value = false;
49
+ } catch (error) {
50
+ console.error("事件流校验失败:", error);
51
+ ElMessage.error("请完善事件配置");
52
+ }
53
+ };
54
+ return (_ctx, _cache) => {
55
+ const _component_el_button = ElButton;
56
+ const _component_el_dialog = ElDialog;
57
+ return openBlock(), createBlock(_component_el_dialog, {
58
+ modelValue: dialogVisible.value,
59
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => dialogVisible.value = $event),
60
+ width: "50%",
61
+ title: __props.title,
62
+ draggable: "",
63
+ overflow: "",
64
+ "append-to-body": "",
65
+ class: "fec-dev-designer-dialog"
66
+ }, {
67
+ footer: withCtx(() => [
68
+ createElementVNode("div", _hoisted_2, [
69
+ createVNode(_component_el_button, {
70
+ onClick: _cache[0] || (_cache[0] = ($event) => dialogVisible.value = false)
71
+ }, {
72
+ default: withCtx(() => _cache[2] || (_cache[2] = [
73
+ createTextVNode("取消")
74
+ ])),
75
+ _: 1
76
+ }),
77
+ createVNode(_component_el_button, {
78
+ type: "primary",
79
+ onClick: onConfirm
80
+ }, {
81
+ default: withCtx(() => _cache[3] || (_cache[3] = [
82
+ createTextVNode(" 确定 ")
83
+ ])),
84
+ _: 1
85
+ })
86
+ ])
87
+ ]),
88
+ default: withCtx(() => [
89
+ createElementVNode("div", _hoisted_1, [
90
+ createVNode(_sfc_main$1, {
91
+ ref_key: "eventFlowRef",
92
+ ref: eventFlowRef,
93
+ process: eventConfigData.value
94
+ }, null, 8, ["process"])
95
+ ])
96
+ ]),
97
+ _: 1
98
+ }, 8, ["modelValue", "title"]);
99
+ };
100
+ }
101
+ };
102
+ const OnlyFlowDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-497a8403"]]);
103
+ export {
104
+ OnlyFlowDialog as default
105
+ };
@@ -1,4 +1,4 @@
1
- import OnlyFlowDialog from "./onlyFlow.vue.mjs";
1
+ import OnlyFlowDialog from "./onlyFlow.vue2.mjs";
2
2
  import { ref } from "vue";
3
3
  function useOnlyFlowDialog() {
4
4
  const onlyFlowDialogVisible = ref(false);
@@ -1,51 +1,252 @@
1
1
  /* empty css */
2
- /* empty css */
2
+ /* empty css */
3
3
  /* empty css */
4
4
  /* empty css */
5
5
  /* empty css */
6
6
  /* empty css */
7
7
  /* empty css */
8
8
  /* empty css */
9
- import { computed, createBlock, openBlock, withCtx, createVNode, createElementBlock, Fragment, renderList } from "vue";
9
+ /* empty css */
10
+ /* empty css */
11
+ /* empty css */
12
+ /* empty css */
13
+ import { ref, watch, computed, createElementBlock, openBlock, Fragment, createVNode, createCommentVNode, withCtx, createTextVNode, renderList, createBlock, unref } from "vue";
10
14
  import { getEditConfigData } from "../../../utils/common.mjs";
15
+ import FieldSetMapping from "../../../../components/FieldSetMapping.vue2.mjs";
16
+ import OnlyFLowConfigButton from "../../../../components/OnlyFLowConfigButton.vue2.mjs";
17
+ import _sfc_main$1 from "../../../../components/FormulaEditorInput.vue.mjs";
18
+ import api from "../../../../api/index.mjs";
11
19
  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";
20
+ import { ElRadioGroup, ElRadioButton } from "../../../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/radio/index.mjs";
12
21
  import { ElSelect, ElOption } from "../../../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/select/index.mjs";
22
+ import { ElInput } from "../../../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/input/index.mjs";
13
23
  const _sfc_main = {
14
24
  __name: "Dialog",
15
25
  props: {
16
26
  formData: Object
17
27
  },
18
28
  setup(__props) {
29
+ const props = __props;
30
+ const currDialog = ref({});
31
+ const globalDialogs = ref([]);
32
+ const loading = ref(false);
33
+ const tableOptions = ref(null);
34
+ const loadGlobalDialogs = async () => {
35
+ loading.value = true;
36
+ try {
37
+ const response = await api.getAllTemplateDialog();
38
+ globalDialogs.value = [];
39
+ for (let dialog of response) {
40
+ globalDialogs.value.push({
41
+ id: dialog.id,
42
+ name: dialog.name,
43
+ ...JSON.parse(dialog.config)
44
+ });
45
+ }
46
+ } catch (error) {
47
+ console.error("🚀 ~ 获取全局弹层数据失败:", error);
48
+ globalDialogs.value = [];
49
+ } finally {
50
+ loading.value = false;
51
+ }
52
+ };
53
+ watch(
54
+ () => props.formData.dialogSource,
55
+ async (newSource, oldSource) => {
56
+ if (newSource === "global" && oldSource !== "global") {
57
+ await loadGlobalDialogs();
58
+ }
59
+ },
60
+ { immediate: true }
61
+ );
62
+ const handleDialogChange = async (dialogId) => {
63
+ if (!dialogId) {
64
+ currDialog.value = {};
65
+ tableOptions.value = null;
66
+ return;
67
+ }
68
+ const selectedDialog = dialogOptions.value.find(
69
+ (dialog) => dialog.id === dialogId
70
+ );
71
+ if (selectedDialog) {
72
+ currDialog.value = { ...selectedDialog };
73
+ if (currDialog.value.contentSource === "table" && currDialog.value.tableContent === "select") {
74
+ const tableId = currDialog.value.subTableId;
75
+ if (tableId) {
76
+ try {
77
+ const response = await api.getById(tableId, false);
78
+ tableOptions.value = JSON.parse(response.context);
79
+ console.log("🚀 ~ 需要获取表格配置,表格ID:", tableId);
80
+ } catch (error) {
81
+ console.error("🚀 ~ 获取表格配置失败:", error);
82
+ }
83
+ }
84
+ } else {
85
+ tableOptions.value = null;
86
+ }
87
+ }
88
+ };
19
89
  const dialogOptions = computed(() => {
20
- return getEditConfigData().dialogs || [];
90
+ if (props.formData.dialogSource === "global") {
91
+ return globalDialogs.value;
92
+ } else {
93
+ return getEditConfigData().dialogs || [];
94
+ }
95
+ });
96
+ const tableFields = computed(() => {
97
+ var _a, _b, _c, _d, _e, _f;
98
+ if (((_a = currDialog.value) == null ? void 0 : _a.tableContent) === "custom") {
99
+ return ((_c = (_b = currDialog.value) == null ? void 0 : _b.customTableConfig) == null ? void 0 : _c.fieldsData) || [];
100
+ } else if (((_d = currDialog.value) == null ? void 0 : _d.tableContent) === "select") {
101
+ return [
102
+ ...((_e = tableOptions.value) == null ? void 0 : _e.fieldsData) || [],
103
+ ...((_f = tableOptions.value) == null ? void 0 : _f.hiddenFields) || []
104
+ ];
105
+ }
106
+ return [];
21
107
  });
108
+ function handleOnlyFlowConfirm(data) {
109
+ props.formData.callbackEventConfig = data;
110
+ }
22
111
  return (_ctx, _cache) => {
112
+ const _component_el_radio_button = ElRadioButton;
113
+ const _component_el_radio_group = ElRadioGroup;
114
+ const _component_el_form_item = ElFormItem;
23
115
  const _component_el_option = ElOption;
24
116
  const _component_el_select = ElSelect;
25
- const _component_el_form_item = ElFormItem;
26
- return openBlock(), createBlock(_component_el_form_item, { label: "选择弹层" }, {
27
- default: withCtx(() => [
28
- createVNode(_component_el_select, {
29
- modelValue: __props.formData.dialogId,
30
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => __props.formData.dialogId = $event),
31
- placeholder: "请选择弹层",
32
- filterable: "",
33
- size: "small"
34
- }, {
117
+ const _component_el_input = ElInput;
118
+ return openBlock(), createElementBlock(Fragment, null, [
119
+ createVNode(_component_el_form_item, { label: "弹层来源" }, {
120
+ default: withCtx(() => [
121
+ createVNode(_component_el_radio_group, {
122
+ modelValue: __props.formData.dialogSource,
123
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => __props.formData.dialogSource = $event)
124
+ }, {
125
+ default: withCtx(() => [
126
+ createVNode(_component_el_radio_button, { value: "global" }, {
127
+ default: withCtx(() => _cache[7] || (_cache[7] = [
128
+ createTextVNode("全局")
129
+ ])),
130
+ _: 1
131
+ }),
132
+ createVNode(_component_el_radio_button, { value: "custom" }, {
133
+ default: withCtx(() => _cache[8] || (_cache[8] = [
134
+ createTextVNode("自定义")
135
+ ])),
136
+ _: 1
137
+ })
138
+ ]),
139
+ _: 1
140
+ }, 8, ["modelValue"])
141
+ ]),
142
+ _: 1
143
+ }),
144
+ createVNode(_component_el_form_item, { label: "选择弹层" }, {
145
+ default: withCtx(() => [
146
+ createVNode(_component_el_select, {
147
+ modelValue: __props.formData.dialogId,
148
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => __props.formData.dialogId = $event),
149
+ placeholder: "请选择弹层",
150
+ filterable: "",
151
+ size: "small",
152
+ loading: loading.value,
153
+ clearable: "",
154
+ onChange: handleDialogChange
155
+ }, {
156
+ default: withCtx(() => [
157
+ (openBlock(true), createElementBlock(Fragment, null, renderList(dialogOptions.value, (dialog) => {
158
+ return openBlock(), createBlock(_component_el_option, {
159
+ key: dialog.id,
160
+ label: dialog.name,
161
+ value: dialog.id
162
+ }, null, 8, ["label", "value"]);
163
+ }), 128))
164
+ ]),
165
+ _: 1
166
+ }, 8, ["modelValue", "loading"])
167
+ ]),
168
+ _: 1
169
+ }),
170
+ __props.formData.dialogSource == "global" && __props.formData.dialogId ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
171
+ createVNode(_component_el_form_item, { label: "选择模式" }, {
172
+ default: withCtx(() => [
173
+ createVNode(_component_el_radio_group, {
174
+ modelValue: __props.formData.selectionMode,
175
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => __props.formData.selectionMode = $event)
176
+ }, {
177
+ default: withCtx(() => [
178
+ createVNode(_component_el_radio_button, { value: "none" }, {
179
+ default: withCtx(() => _cache[9] || (_cache[9] = [
180
+ createTextVNode("无")
181
+ ])),
182
+ _: 1
183
+ }),
184
+ createVNode(_component_el_radio_button, { value: "single" }, {
185
+ default: withCtx(() => _cache[10] || (_cache[10] = [
186
+ createTextVNode("单选")
187
+ ])),
188
+ _: 1
189
+ }),
190
+ createVNode(_component_el_radio_button, { value: "multiple" }, {
191
+ default: withCtx(() => _cache[11] || (_cache[11] = [
192
+ createTextVNode("多选")
193
+ ])),
194
+ _: 1
195
+ })
196
+ ]),
197
+ _: 1
198
+ }, 8, ["modelValue"])
199
+ ]),
200
+ _: 1
201
+ }),
202
+ __props.formData.selectionMode != "none" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
203
+ createVNode(_component_el_form_item, { label: "选取后反显字段" }, {
204
+ default: withCtx(() => [
205
+ createVNode(_component_el_input, {
206
+ modelValue: __props.formData.displayFieldName,
207
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => __props.formData.displayFieldName = $event)
208
+ }, null, 8, ["modelValue"])
209
+ ]),
210
+ _: 1
211
+ }),
212
+ createVNode(_component_el_form_item, { label: "选取后反显格式" }, {
213
+ default: withCtx(() => [
214
+ createVNode(unref(_sfc_main$1), {
215
+ title: "反显格式配置",
216
+ formulaConf: __props.formData.displayFormat,
217
+ "onUpdate:formulaConf": _cache[4] || (_cache[4] = ($event) => __props.formData.displayFormat = $event),
218
+ modelValue: __props.formData.displayFormatText,
219
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => __props.formData.displayFormatText = $event),
220
+ fieldList: tableFields.value
221
+ }, null, 8, ["formulaConf", "modelValue", "fieldList"])
222
+ ]),
223
+ _: 1
224
+ }),
225
+ createVNode(_component_el_form_item, { label: "选取后表单赋值" }, {
226
+ default: withCtx(() => [
227
+ createVNode(FieldSetMapping, {
228
+ modelValue: __props.formData.fieldMapping,
229
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => __props.formData.fieldMapping = $event),
230
+ fieldLabel: "赋值表单字段",
231
+ valueLabel: "列表字段",
232
+ valueOptions: tableFields.value,
233
+ valueSelectMode: ""
234
+ }, null, 8, ["modelValue", "valueOptions"])
235
+ ]),
236
+ _: 1
237
+ })
238
+ ], 64)) : createCommentVNode("", true),
239
+ createVNode(_component_el_form_item, { label: "回调事件配置" }, {
35
240
  default: withCtx(() => [
36
- (openBlock(true), createElementBlock(Fragment, null, renderList(dialogOptions.value, (dialog) => {
37
- return openBlock(), createBlock(_component_el_option, {
38
- key: dialog.id,
39
- label: dialog.name,
40
- value: dialog.id
41
- }, null, 8, ["label", "value"]);
42
- }), 128))
241
+ createVNode(OnlyFLowConfigButton, {
242
+ config: __props.formData.callbackEventConfig,
243
+ onConfirm: handleOnlyFlowConfirm
244
+ }, null, 8, ["config"])
43
245
  ]),
44
246
  _: 1
45
- }, 8, ["modelValue"])
46
- ]),
47
- _: 1
48
- });
247
+ })
248
+ ], 64)) : createCommentVNode("", true)
249
+ ], 64);
49
250
  };
50
251
  }
51
252
  };
@@ -31,7 +31,11 @@ const menuData = [
31
31
  index: "ui",
32
32
  label: "交互",
33
33
  items: [
34
- { index: "ui-dialog", label: "打开弹层", desc: "打开指定的弹层", component: _sfc_main$2 },
34
+ { index: "ui-dialog", label: "打开弹层", desc: "打开指定的弹层", component: _sfc_main$2, default: {
35
+ dialogSource: "global",
36
+ selectionMode: "none",
37
+ fieldMapping: []
38
+ } },
35
39
  { index: "ui-message", label: "显示提示信息", desc: "显示消息提示", component: _sfc_main$3, default: {
36
40
  messageType: "success",
37
41
  message: ""
@@ -9,7 +9,10 @@ const defaultProperty = {
9
9
  optionStyle: "default",
10
10
  dateType: "date",
11
11
  suffixButton: "none",
12
- suffixDialogName: "选择"
12
+ suffixDialogName: "选择",
13
+ dialogSource: "global",
14
+ selectionMode: "none",
15
+ fieldMapping: []
13
16
  };
14
17
  const components = [
15
18
  {
@@ -62,20 +65,28 @@ const components = [
62
65
  ...defaultProperty
63
66
  },
64
67
  {
65
- fieldType: "blank",
66
- label: "空白占位",
68
+ fieldType: "richText",
69
+ label: "富文本",
67
70
  ...defaultProperty
68
71
  },
69
72
  {
70
- fieldType: "divider",
73
+ fieldType: "subTitle",
71
74
  label: "子标题",
72
- fieldName: "divider"
75
+ fieldName: "subTitle"
73
76
  },
74
77
  {
75
78
  fieldType: "h2",
76
79
  label: "标题",
77
80
  subLabel: "副标题",
78
81
  fieldName: "h2"
82
+ },
83
+ {
84
+ fieldType: "blank",
85
+ label: "空白占位"
86
+ },
87
+ {
88
+ fieldType: "divider",
89
+ label: "分割线"
79
90
  }
80
91
  ]
81
92
  },
@@ -115,11 +126,6 @@ const components = [
115
126
  },
116
127
  maxLevel: 10
117
128
  },
118
- {
119
- fieldType: "richText",
120
- label: "富文本",
121
- ...defaultProperty
122
- },
123
129
  {
124
130
  fieldType: "area",
125
131
  label: "区域选择",
@@ -156,6 +162,14 @@ const components = [
156
162
  label: "审批历史",
157
163
  titleMode: "label",
158
164
  appHisDefault: "timeLine"
165
+ },
166
+ {
167
+ fieldType: "document",
168
+ label: "要件"
169
+ },
170
+ {
171
+ fieldType: "contract",
172
+ label: "合同"
159
173
  }
160
174
  ]
161
175
  }