@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
@@ -0,0 +1,254 @@
1
+ /* empty css */
2
+ /* empty css */
3
+ /* empty css */
4
+ /* empty css */
5
+ /* empty css */
6
+ /* empty css */
7
+ /* empty css */
8
+ /* empty css */
9
+ /* empty css */
10
+ /* empty css */
11
+ /* empty css */
12
+ /* empty css */
13
+ /* empty css */
14
+ 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";
15
+ /* empty css */
16
+ /* empty css */
17
+ import { computed, ref, watch, createBlock, openBlock, withCtx, createElementVNode, createVNode, withKeys, unref, createTextVNode } from "vue";
18
+ import { Search as search_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";
19
+ import api from "../api/index.mjs";
20
+ /* empty css */
21
+ import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.mjs";
22
+ 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";
23
+ 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";
24
+ 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";
25
+ import { ElTable, ElTableColumn } from "../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/table/index.mjs";
26
+ import { ElPagination } from "../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/pagination/index.mjs";
27
+ 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";
28
+ const _hoisted_1 = { class: "search-bar" };
29
+ const _hoisted_2 = { class: "dialog-footer" };
30
+ const _sfc_main = {
31
+ __name: "TemplateDialog",
32
+ props: {
33
+ modelValue: {
34
+ type: Boolean,
35
+ default: false
36
+ },
37
+ templateType: {
38
+ type: String,
39
+ default: ""
40
+ },
41
+ title: {
42
+ type: String,
43
+ default: "选择模板"
44
+ },
45
+ width: {
46
+ type: String,
47
+ default: "50%"
48
+ },
49
+ searchPlaceholder: {
50
+ type: String,
51
+ default: "搜索模板名称/标识"
52
+ },
53
+ nameLabel: {
54
+ type: String,
55
+ default: "模板名称"
56
+ },
57
+ keyLabel: {
58
+ type: String,
59
+ default: "模板标识"
60
+ },
61
+ templateVersion: {
62
+ type: String,
63
+ default: "v5"
64
+ }
65
+ },
66
+ emits: ["update:modelValue", "confirm", "close"],
67
+ setup(__props, { emit: __emit }) {
68
+ const props = __props;
69
+ const emit = __emit;
70
+ const dialogVisible = computed({
71
+ get: () => props.modelValue,
72
+ set: (val) => emit("update:modelValue", val)
73
+ });
74
+ const searchText = ref("");
75
+ const templateList = ref([]);
76
+ const total = ref(0);
77
+ const currentRow = ref(null);
78
+ const pageInfo = ref({
79
+ pageNo: 1,
80
+ pageSize: 10
81
+ });
82
+ watch(
83
+ () => props.modelValue,
84
+ (val) => {
85
+ if (val) {
86
+ searchText.value = "";
87
+ currentRow.value = null;
88
+ pageInfo.value = {
89
+ pageNo: 1,
90
+ pageSize: 10
91
+ };
92
+ loadTemplateList();
93
+ }
94
+ },
95
+ { immediate: true }
96
+ );
97
+ async function loadTemplateList() {
98
+ try {
99
+ const params = {
100
+ pageNo: pageInfo.value.pageNo,
101
+ pageSize: pageInfo.value.pageSize,
102
+ type: props.templateType,
103
+ templateVersion: props.templateVersion
104
+ };
105
+ if (searchText.value) {
106
+ params.dynamicQuery = searchText.value;
107
+ }
108
+ const data = await api.findTemplateByPagePop(params);
109
+ templateList.value = data.records || data.list || [];
110
+ total.value = data.total || 0;
111
+ } catch (error) {
112
+ console.error("加载表单列表失败:", error);
113
+ templateList.value = [];
114
+ total.value = 0;
115
+ }
116
+ }
117
+ function handleSearch() {
118
+ pageInfo.value.pageNo = 1;
119
+ loadTemplateList();
120
+ }
121
+ function handleCurrentChange(row) {
122
+ currentRow.value = row;
123
+ }
124
+ function handleSizeChange(size) {
125
+ pageInfo.value.pageSize = size;
126
+ pageInfo.value.pageNo = 1;
127
+ loadTemplateList();
128
+ }
129
+ function handlePageChange(page) {
130
+ pageInfo.value.pageNo = page;
131
+ loadTemplateList();
132
+ }
133
+ function closeDialog() {
134
+ dialogVisible.value = false;
135
+ emit("close");
136
+ }
137
+ function onConfirm() {
138
+ if (!currentRow.value) {
139
+ ElMessage.warning("请先选择表单");
140
+ return;
141
+ }
142
+ const context = JSON.parse(currentRow.value.context);
143
+ emit("confirm", {
144
+ row: currentRow.value,
145
+ context
146
+ });
147
+ dialogVisible.value = false;
148
+ }
149
+ return (_ctx, _cache) => {
150
+ const _component_el_button = ElButton;
151
+ const _component_el_input = ElInput;
152
+ const _component_el_table_column = ElTableColumn;
153
+ const _component_el_table = ElTable;
154
+ const _component_el_pagination = ElPagination;
155
+ const _component_el_dialog = ElDialog;
156
+ return openBlock(), createBlock(_component_el_dialog, {
157
+ modelValue: dialogVisible.value,
158
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => dialogVisible.value = $event),
159
+ width: __props.width,
160
+ title: __props.title,
161
+ draggable: "",
162
+ overflow: "",
163
+ "append-to-body": "",
164
+ class: "fec-dev-designer-dialog"
165
+ }, {
166
+ footer: withCtx(() => [
167
+ createElementVNode("div", _hoisted_2, [
168
+ createVNode(_component_el_button, {
169
+ onClick: closeDialog,
170
+ size: "default"
171
+ }, {
172
+ default: withCtx(() => _cache[4] || (_cache[4] = [
173
+ createTextVNode("取消")
174
+ ])),
175
+ _: 1
176
+ }),
177
+ createVNode(_component_el_button, {
178
+ type: "primary",
179
+ onClick: onConfirm,
180
+ size: "default"
181
+ }, {
182
+ default: withCtx(() => _cache[5] || (_cache[5] = [
183
+ createTextVNode("确定")
184
+ ])),
185
+ _: 1
186
+ })
187
+ ])
188
+ ]),
189
+ default: withCtx(() => [
190
+ createElementVNode("div", _hoisted_1, [
191
+ createVNode(_component_el_input, {
192
+ modelValue: searchText.value,
193
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchText.value = $event),
194
+ placeholder: __props.searchPlaceholder || "搜索表单名称/表单标识",
195
+ clearable: "",
196
+ onClear: handleSearch,
197
+ onKeyup: withKeys(handleSearch, ["enter"]),
198
+ style: { "width": "300px" },
199
+ size: "default"
200
+ }, {
201
+ append: withCtx(() => [
202
+ createVNode(_component_el_button, {
203
+ icon: unref(search_default),
204
+ onClick: handleSearch
205
+ }, null, 8, ["icon"])
206
+ ]),
207
+ _: 1
208
+ }, 8, ["modelValue", "placeholder"])
209
+ ]),
210
+ createVNode(_component_el_table, {
211
+ data: templateList.value,
212
+ "highlight-current-row": "",
213
+ "max-height": "500",
214
+ onCurrentChange: handleCurrentChange,
215
+ style: { "width": "100%", "margin-top": "10px" },
216
+ size: "default"
217
+ }, {
218
+ default: withCtx(() => [
219
+ createVNode(_component_el_table_column, {
220
+ prop: "templateName",
221
+ label: __props.nameLabel || "表单名称",
222
+ "min-width": "200"
223
+ }, null, 8, ["label"]),
224
+ createVNode(_component_el_table_column, {
225
+ prop: "templateKey",
226
+ label: __props.keyLabel || "表单标识",
227
+ "min-width": "200"
228
+ }, null, 8, ["label"])
229
+ ]),
230
+ _: 1
231
+ }, 8, ["data"]),
232
+ createVNode(_component_el_pagination, {
233
+ size: "small",
234
+ "current-page": pageInfo.value.pageNo,
235
+ "onUpdate:currentPage": _cache[1] || (_cache[1] = ($event) => pageInfo.value.pageNo = $event),
236
+ "page-size": pageInfo.value.pageSize,
237
+ "onUpdate:pageSize": _cache[2] || (_cache[2] = ($event) => pageInfo.value.pageSize = $event),
238
+ "page-sizes": [10, 20, 50, 100],
239
+ total: total.value,
240
+ layout: "total, sizes, prev, pager, next, jumper",
241
+ onSizeChange: handleSizeChange,
242
+ onCurrentChange: handlePageChange,
243
+ style: { "margin-top": "20px", "justify-content": "flex-end" }
244
+ }, null, 8, ["current-page", "page-size", "total"])
245
+ ]),
246
+ _: 1
247
+ }, 8, ["modelValue", "width", "title"]);
248
+ };
249
+ }
250
+ };
251
+ const TemplateDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-99155bb7"]]);
252
+ export {
253
+ TemplateDialog as default
254
+ };
@@ -1,34 +1,16 @@
1
1
  /* empty css */
2
- /* empty css */
3
- /* empty css */
4
- /* empty css */
5
- /* empty css */
6
- /* empty css */
7
- /* empty css */
8
- /* empty css */
9
- /* empty css */
10
- /* empty css */
11
- /* empty css */
12
2
  /* empty css */
13
- /* empty css */
14
- 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";
15
- /* empty css */
16
3
  /* empty css */
17
- import { computed, ref, createElementBlock, openBlock, Fragment, createVNode, createSlots, withCtx, unref, createElementVNode, withKeys, createTextVNode } from "vue";
18
- import { Setting as setting_default, Edit as edit_default, Search as search_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";
19
- import api from "../api/index.mjs";
4
+ import { computed, ref, createElementBlock, openBlock, Fragment, createVNode, createSlots, withCtx, unref } from "vue";
5
+ import { Setting as setting_default, Edit as edit_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";
6
+ import TemplateDialog from "./TemplateDialog.vue.mjs";
20
7
  /* empty css */
21
8
  /* empty css */
22
- /* empty css */
9
+ import "./TemplateSelector.vue2.mjs";
23
10
  import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.mjs";
24
11
  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";
25
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";
26
- 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";
27
- import { ElTable, ElTableColumn } from "../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/table/index.mjs";
28
- import { ElPagination } from "../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/pagination/index.mjs";
29
13
  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";
30
- const _hoisted_1 = { class: "search-bar" };
31
- const _hoisted_2 = { class: "dialog-footer" };
32
14
  const _sfc_main = {
33
15
  __name: "TemplateSelector",
34
16
  props: {
@@ -63,83 +45,32 @@ const _sfc_main = {
63
45
  set: (val) => emit("update:modelValue", val)
64
46
  });
65
47
  const dialogVisible = ref(false);
66
- const searchText = ref("");
67
- const templateList = ref([]);
68
- const total = ref(0);
69
- const currentRow = ref(null);
70
- const pageInfo = ref({
71
- pageNo: 1,
72
- pageSize: 10
73
- });
74
48
  function openDialog() {
75
49
  dialogVisible.value = true;
76
- currentRow.value = null;
77
- loadTemplateList();
78
50
  }
79
51
  function editTemplate() {
80
- var _a;
81
- const pkId = ((_a = currentRow.value) == null ? void 0 : _a.pkId) || props.templateId;
52
+ const pkId = props.templateId;
53
+ if (!pkId) {
54
+ ElMessage.warning("请先选择模板");
55
+ return;
56
+ }
82
57
  const currentUrl = window.location.href;
83
58
  const urlObj = new URL(currentUrl);
84
59
  urlObj.searchParams.set("pkId", pkId);
85
60
  const newUrl = urlObj.toString();
86
61
  window.open(newUrl, "_blank");
87
62
  }
88
- async function loadTemplateList() {
89
- try {
90
- const params = {
91
- pageNo: pageInfo.value.pageNo,
92
- pageSize: pageInfo.value.pageSize,
93
- type: props.templateType
94
- };
95
- if (searchText.value) {
96
- params.dynamicQuery = searchText.value;
97
- }
98
- const data = await api.findTemplateByPagePop(params);
99
- templateList.value = data.records || data.list || [];
100
- total.value = data.total || 0;
101
- } catch (error) {
102
- console.error("加载表单列表失败:", error);
103
- templateList.value = [];
104
- total.value = 0;
105
- } finally {
106
- }
107
- }
108
- function handleSearch() {
109
- pageInfo.value.pageNo = 1;
110
- loadTemplateList();
111
- }
112
- function handleCurrentChange(row) {
113
- currentRow.value = row;
114
- }
115
- function handleSizeChange(size) {
116
- pageInfo.value.pageSize = size;
117
- pageInfo.value.pageNo = 1;
118
- loadTemplateList();
119
- }
120
- function handlePageChange(page) {
121
- pageInfo.value.pageNo = page;
122
- loadTemplateList();
123
- }
124
- function onConfirm() {
125
- if (!currentRow.value) {
126
- ElMessage.warning("请先选择表单");
127
- return;
128
- }
129
- modelValue.value = currentRow.value.templateName;
130
- emit("update:templateKey", currentRow.value.templateKey);
131
- emit("update:templateId", currentRow.value.pkId);
132
- dialogVisible.value = false;
133
- const context = JSON.parse(currentRow.value.context);
63
+ function handleDialogConfirm({ row, context }) {
64
+ modelValue.value = row.templateName;
65
+ emit("update:templateKey", row.templateKey);
66
+ emit("update:templateId", row.pkId);
134
67
  emit("confirm", context);
135
68
  }
69
+ function handleDialogClose() {
70
+ }
136
71
  return (_ctx, _cache) => {
137
72
  const _component_el_button = ElButton;
138
73
  const _component_el_input = ElInput;
139
- const _component_el_table_column = ElTableColumn;
140
- const _component_el_table = ElTable;
141
- const _component_el_pagination = ElPagination;
142
- const _component_el_dialog = ElDialog;
143
74
  return openBlock(), createElementBlock(Fragment, null, [
144
75
  createVNode(_component_el_input, {
145
76
  modelValue: modelValue.value,
@@ -166,103 +97,19 @@ const _sfc_main = {
166
97
  key: "0"
167
98
  } : void 0
168
99
  ]), 1032, ["modelValue", "placeholder"]),
169
- createVNode(_component_el_dialog, {
100
+ createVNode(TemplateDialog, {
170
101
  modelValue: dialogVisible.value,
171
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => dialogVisible.value = $event),
172
- width: "50%",
102
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => dialogVisible.value = $event),
103
+ "template-type": __props.templateType,
173
104
  title: __props.templateType == "table" ? "选择列表" : "选择表单",
174
- draggable: "",
175
- overflow: "",
176
- "append-to-body": "",
177
- class: "fec-dev-designer-dialog"
178
- }, {
179
- footer: withCtx(() => [
180
- createElementVNode("div", _hoisted_2, [
181
- createVNode(_component_el_button, {
182
- onClick: _cache[4] || (_cache[4] = ($event) => dialogVisible.value = false),
183
- size: "default"
184
- }, {
185
- default: withCtx(() => _cache[6] || (_cache[6] = [
186
- createTextVNode("取消")
187
- ])),
188
- _: 1
189
- }),
190
- createVNode(_component_el_button, {
191
- type: "primary",
192
- onClick: onConfirm,
193
- size: "default"
194
- }, {
195
- default: withCtx(() => _cache[7] || (_cache[7] = [
196
- createTextVNode("确定")
197
- ])),
198
- _: 1
199
- })
200
- ])
201
- ]),
202
- default: withCtx(() => [
203
- createElementVNode("div", _hoisted_1, [
204
- createVNode(_component_el_input, {
205
- modelValue: searchText.value,
206
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => searchText.value = $event),
207
- placeholder: "搜索表单名称/表单标识",
208
- clearable: "",
209
- onClear: handleSearch,
210
- onKeyup: withKeys(handleSearch, ["enter"]),
211
- style: { "width": "300px" },
212
- size: "default"
213
- }, {
214
- append: withCtx(() => [
215
- createVNode(_component_el_button, {
216
- icon: unref(search_default),
217
- onClick: handleSearch
218
- }, null, 8, ["icon"])
219
- ]),
220
- _: 1
221
- }, 8, ["modelValue"])
222
- ]),
223
- createVNode(_component_el_table, {
224
- data: templateList.value,
225
- "highlight-current-row": "",
226
- "max-height": "500",
227
- onCurrentChange: handleCurrentChange,
228
- style: { "width": "100%", "margin-top": "10px" },
229
- size: "default"
230
- }, {
231
- default: withCtx(() => [
232
- createVNode(_component_el_table_column, {
233
- prop: "templateName",
234
- label: "表单名称",
235
- "min-width": "200"
236
- }),
237
- createVNode(_component_el_table_column, {
238
- prop: "templateKey",
239
- label: "表单标识",
240
- "min-width": "200"
241
- })
242
- ]),
243
- _: 1
244
- }, 8, ["data"]),
245
- createVNode(_component_el_pagination, {
246
- size: "small",
247
- "current-page": pageInfo.value.pageNo,
248
- "onUpdate:currentPage": _cache[2] || (_cache[2] = ($event) => pageInfo.value.pageNo = $event),
249
- "page-size": pageInfo.value.pageSize,
250
- "onUpdate:pageSize": _cache[3] || (_cache[3] = ($event) => pageInfo.value.pageSize = $event),
251
- "page-sizes": [10, 20, 50, 100],
252
- total: total.value,
253
- layout: "total, sizes, prev, pager, next, jumper",
254
- onSizeChange: handleSizeChange,
255
- onCurrentChange: handlePageChange,
256
- style: { "margin-top": "20px", "justify-content": "flex-end" }
257
- }, null, 8, ["current-page", "page-size", "total"])
258
- ]),
259
- _: 1
260
- }, 8, ["modelValue", "title"])
105
+ onConfirm: handleDialogConfirm,
106
+ onClose: handleDialogClose
107
+ }, null, 8, ["modelValue", "template-type", "title"])
261
108
  ], 64);
262
109
  };
263
110
  }
264
111
  };
265
- const TemplateSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-eb9c3061"]]);
112
+ const TemplateSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-5026a7f4"]]);
266
113
  export {
267
114
  TemplateSelector as default
268
115
  };
@@ -60,7 +60,7 @@ const _sfc_main = {
60
60
  }
61
61
  function addHiddenField() {
62
62
  const newField = {
63
- id: "hidden_" + Date.now(),
63
+ id: Date.now(),
64
64
  fieldType: "text",
65
65
  type: "widgets",
66
66
  label: "",
@@ -165,16 +165,13 @@ const _sfc_main = {
165
165
  selectedRows.value.forEach((field) => {
166
166
  let component = cloneDeep(field);
167
167
  component.id = component.id + "";
168
- if (component.id.startsWith("hidden_")) {
169
- component.id = component.id.replace("hidden_", "");
170
- component.fieldType = "text";
171
- component.type = "widgets";
172
- component = { ...defaultProperty, ...component };
173
- }
168
+ component.fieldType = component.fieldType || "text";
169
+ component.type = component.type || "widgets";
170
+ component = { ...defaultProperty, ...component };
174
171
  let finalWH = { w: 1, h: 1 };
175
172
  if (component.fieldType == "textarea") {
176
173
  finalWH = { w: 1, h: 2 };
177
- } else if (component.fieldType == "divider" || component.fieldType == "h2") {
174
+ } else if (component.fieldType == "subTitle" || component.fieldType == "h2") {
178
175
  finalWH = {
179
176
  w: editConfigData.value.columns,
180
177
  h: 1,
@@ -205,12 +202,9 @@ const _sfc_main = {
205
202
  selectedRows.value.forEach((field) => {
206
203
  let component = cloneDeep(field);
207
204
  component.id = component.id + "";
208
- if (component.id.startsWith("hidden_")) {
209
- component.id = component.id.replace("hidden_", "");
210
- component.fieldType = "text";
211
- component.type = "widgets";
212
- component = { ...defaultProperty$1, ...component };
213
- }
205
+ component.fieldType = component.fieldType || "text";
206
+ component.type = component.type || "widgets";
207
+ component = { ...defaultProperty$1, ...component };
214
208
  editConfigData.value.fieldsData.push(component);
215
209
  const index = hiddenFields.value.findIndex((f) => f.id == field.id);
216
210
  if (index !== -1) {
@@ -378,7 +372,7 @@ const _sfc_main = {
378
372
  };
379
373
  }
380
374
  };
381
- const HiddenFieldDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b547a1f4"]]);
375
+ const HiddenFieldDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-58cdc4e4"]]);
382
376
  export {
383
377
  HiddenFieldDialog as default
384
378
  };