@kp-ui/lowcode 1.0.71 → 1.0.73

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 (125) hide show
  1. package/_virtual/virtual_svg-icons-register.js +2 -2
  2. package/index.js +12 -9
  3. package/package.json +3 -2
  4. package/src/components/CustomRender/components/AttachmentRender.vue2.js +8 -13
  5. package/src/components/TpfCollapse/TpfCollapseTitle.vue2.js +3 -4
  6. package/src/components/code-editor/index.vue2.js +3 -4
  7. package/src/components/form-designer/form-widget/container-widget/container-wrapper.vue.js +22 -30
  8. package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue.js +2 -3
  9. package/src/components/form-designer/form-widget/container-widget/grid-col-widget.vue.js +15 -23
  10. package/src/components/form-designer/form-widget/container-widget/grid-sub-form-widget.vue.js +2 -3
  11. package/src/components/form-designer/form-widget/container-widget/grid-widget.vue.js +1 -1
  12. package/src/components/form-designer/form-widget/container-widget/sub-form-widget.vue.js +2 -3
  13. package/src/components/form-designer/form-widget/container-widget/tab-widget.vue.js +2 -3
  14. package/src/components/form-designer/form-widget/container-widget/table-cell-widget.vue.js +26 -21
  15. package/src/components/form-designer/form-widget/container-widget/table-widget.vue.js +2 -3
  16. package/src/components/form-designer/form-widget/container-widget/vf-box-item.vue.js +1 -1
  17. package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue.js +2 -3
  18. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue.js +4 -8
  19. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue2.js +1 -1
  20. package/src/components/form-designer/form-widget/container-widget/vf-dialog-widget.vue.js +2 -3
  21. package/src/components/form-designer/form-widget/container-widget/vf-drawer-widget.vue.js +2 -3
  22. package/src/components/form-designer/form-widget/field-widget/attachment-render-widget.vue.js +6 -8
  23. package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget.vue.js +5 -6
  24. package/src/components/form-designer/form-widget/field-widget/button-widget.vue.js +1 -1
  25. package/src/components/form-designer/form-widget/field-widget/cascader-widget.vue.js +2 -3
  26. package/src/components/form-designer/form-widget/field-widget/checkbox-widget.vue.js +5 -6
  27. package/src/components/form-designer/form-widget/field-widget/code-editor-widget.vue.js +1 -1
  28. package/src/components/form-designer/form-widget/field-widget/color-widget.vue.js +5 -6
  29. package/src/components/form-designer/form-widget/field-widget/date-range-widget.vue.js +2 -3
  30. package/src/components/form-designer/form-widget/field-widget/date-widget.vue.js +2 -3
  31. package/src/components/form-designer/form-widget/field-widget/divider-widget.vue.js +2 -2
  32. package/src/components/form-designer/form-widget/field-widget/divider-widget.vue2.js +1 -0
  33. package/src/components/form-designer/form-widget/field-widget/diy-compontent-widget.vue.js +4 -6
  34. package/src/components/form-designer/form-widget/field-widget/dropdown-widget.vue.js +1 -1
  35. package/src/components/form-designer/form-widget/field-widget/file-upload-widget.vue.js +9 -14
  36. package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue.js +29 -41
  37. package/src/components/form-designer/form-widget/field-widget/html-text-widget.vue.js +3 -4
  38. package/src/components/form-designer/form-widget/field-widget/html-text-widget.vue2.js +1 -0
  39. package/src/components/form-designer/form-widget/field-widget/input-widget.vue.js +2 -3
  40. package/src/components/form-designer/form-widget/field-widget/number-widget.vue.js +2 -3
  41. package/src/components/form-designer/form-widget/field-widget/picture-upload-widget.vue.js +15 -12
  42. package/src/components/form-designer/form-widget/field-widget/radio-widget.vue.js +5 -6
  43. package/src/components/form-designer/form-widget/field-widget/rate-widget.vue.js +1 -1
  44. package/src/components/form-designer/form-widget/field-widget/rich-editor-widget.vue.js +1 -1
  45. package/src/components/form-designer/form-widget/field-widget/select-widget.vue.js +3 -5
  46. package/src/components/form-designer/form-widget/field-widget/slider-widget.vue.js +5 -6
  47. package/src/components/form-designer/form-widget/field-widget/slot-widget.vue.js +4 -6
  48. package/src/components/form-designer/form-widget/field-widget/static-content-wrapper.vue.js +19 -24
  49. package/src/components/form-designer/form-widget/field-widget/static-text-widget.vue.js +2 -2
  50. package/src/components/form-designer/form-widget/field-widget/static-text-widget.vue2.js +1 -0
  51. package/src/components/form-designer/form-widget/field-widget/switch-widget.vue.js +1 -1
  52. package/src/components/form-designer/form-widget/field-widget/textarea-widget.vue.js +2 -3
  53. package/src/components/form-designer/form-widget/field-widget/time-range-widget.vue.js +5 -6
  54. package/src/components/form-designer/form-widget/field-widget/time-widget.vue.js +5 -6
  55. package/src/components/form-designer/form-widget/field-widget/treeSelect-widget.vue.js +2 -3
  56. package/src/components/form-designer/form-widget/index.vue.js +10 -17
  57. package/{designer.js → src/components/form-designer/index.vue.js} +10 -11
  58. package/src/components/form-designer/setting-panel/form-crud-setting.vue.js +2 -4
  59. package/src/components/form-designer/setting-panel/form-setting.vue.js +14 -18
  60. package/src/components/form-designer/setting-panel/index.vue.js +206 -216
  61. package/src/components/form-designer/setting-panel/option-items-setting.vue.js +23 -28
  62. package/src/components/form-designer/setting-panel/property-editor/actionColumnPosition-editor.vue.js +1 -1
  63. package/src/components/form-designer/setting-panel/property-editor/actionColumnPosition-editor.vue2.js +1 -0
  64. package/src/components/form-designer/setting-panel/property-editor/button-list-editor.vue.js +3 -4
  65. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-pagination-editor.vue.js +2 -2
  66. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-selections-editor.vue.js +2 -2
  67. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-showButtonsColumn-editor.vue.js +5 -6
  68. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue.js +2 -365
  69. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue2.js +361 -0
  70. package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue.js +4 -6
  71. package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue.js +5 -6
  72. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/bodyStyle-editor.vue.js +3 -4
  73. package/src/components/form-designer/setting-panel/property-editor/container-vf-drawer/vf-drawer-direction-editor.vue.js +8 -8
  74. package/src/components/form-designer/setting-panel/property-editor/disabled-editor.vue.js +2 -2
  75. package/src/components/form-designer/setting-panel/property-editor/field-button/shape-editor.vue.js +6 -6
  76. package/src/components/form-designer/setting-panel/property-editor/field-button/type-editor.vue.js +12 -12
  77. package/src/components/form-designer/setting-panel/property-editor/field-cascader/cascader-defaultValue-editor.vue.js +1 -2
  78. package/src/components/form-designer/setting-panel/property-editor/field-checkbox/checkbox-defaultValue-editor.vue.js +1 -2
  79. package/src/components/form-designer/setting-panel/property-editor/field-date/date-format-editor.vue.js +8 -8
  80. package/src/components/form-designer/setting-panel/property-editor/field-date/date-type-editor.vue.js +10 -10
  81. package/src/components/form-designer/setting-panel/property-editor/field-date/date-valueFormat-editor.vue.js +8 -8
  82. package/src/components/form-designer/setting-panel/property-editor/field-date-range/date-range-format-editor.vue.js +10 -10
  83. package/src/components/form-designer/setting-panel/property-editor/field-date-range/date-range-type-editor.vue.js +6 -6
  84. package/src/components/form-designer/setting-panel/property-editor/field-date-range/date-range-valueFormat-editor.vue.js +8 -8
  85. package/src/components/form-designer/setting-panel/property-editor/field-divider/contentPosition-editor.vue.js +6 -6
  86. package/src/components/form-designer/setting-panel/property-editor/field-divider/divider-direction-editor.vue.js +4 -4
  87. package/src/components/form-designer/setting-panel/property-editor/field-number/controlsPosition-editor.vue.js +4 -4
  88. package/src/components/form-designer/setting-panel/property-editor/field-radio/radio-defaultValue-editor.vue.js +1 -2
  89. package/src/components/form-designer/setting-panel/property-editor/field-select/select-defaultValue-editor.vue.js +1 -2
  90. package/src/components/form-designer/setting-panel/property-editor/field-time/time-format-editor.vue.js +4 -4
  91. package/src/components/form-designer/setting-panel/property-editor/field-time-range/time-range-format-editor.vue.js +4 -4
  92. package/src/components/form-designer/setting-panel/property-editor/hidden-editor.vue.js +2 -2
  93. package/src/components/form-designer/setting-panel/property-editor/type-editor.vue.js +4 -4
  94. package/src/components/form-designer/toolbar-panel/index.vue.js +2 -1045
  95. package/src/components/form-designer/toolbar-panel/index.vue2.js +1046 -0
  96. package/src/components/form-designer/widget-panel/index.vue.js +7 -13
  97. package/src/components/form-designer/widget-panel/widgetsConfig.js +2 -2
  98. package/src/components/form-render/container-item/grid-col-item.vue.js +2 -4
  99. package/src/components/form-render/container-item/grid-sub-form-item.vue.js +4 -8
  100. package/src/components/form-render/container-item/sub-form-item.vue.js +25 -38
  101. package/src/components/form-render/container-item/table-cell-item.vue.js +1 -2
  102. package/src/components/form-render/container-item/vf-collapse-item.vue.js +4 -6
  103. package/src/components/form-render/dynamic-dialog.vue.js +52 -64
  104. package/src/components/form-render/dynamic-drawer.vue.js +2 -3
  105. package/{render.js → src/components/form-render/index.vue.js} +71 -81
  106. package/src/components/http-editor/index.vue.js +16 -16
  107. package/src/components/public/ActionButtonListDialog.vue.js +23 -24
  108. package/src/components/public/CustomerModal/CustomerModal.vue.js +4 -0
  109. package/src/components/public/CustomerModal/CustomerModal.vue2.js +74 -0
  110. package/src/components/public/CustomerModal/useCustomerModal.js +34 -0
  111. package/src/components/public/QuillEditor/index.vue.js +1 -2
  112. package/src/components/public/methoad-item.vue.js +1 -2
  113. package/src/components/svg-icon/index.vue.js +2 -4
  114. package/src/hooks/useLowcode.js +106 -0
  115. package/stats.html +1 -1
  116. package/styles/style.css +1 -1
  117. package/types/install.d.ts +1 -2
  118. package/types/install.d.ts.map +1 -1
  119. package/types/src/components/public/CustomerModal/CustomerModal.d.ts +6 -0
  120. package/types/src/components/public/CustomerModal/CustomerModal.d.ts.map +1 -0
  121. package/types/src/hooks/useLowcode.d.ts +21 -0
  122. package/types/src/hooks/useLowcode.d.ts.map +1 -0
  123. package/types/designer.d.ts +0 -1
  124. package/types/index.d.ts +0 -1
  125. package/types/render.d.ts +0 -1
@@ -0,0 +1,1046 @@
1
+ import { defineComponent, defineAsyncComponent, inject, ref, computed, watch, onMounted, resolveComponent, createElementBlock, openBlock, createElementVNode, createVNode, createBlock, createCommentVNode, withCtx, unref, normalizeStyle, createTextVNode, toDisplayString, Fragment, renderList, renderSlot, normalizeClass, nextTick } from "vue";
2
+ import { addWindowResizeHandler, getQueryParam, copyToClipboard, traverseAllWidgets } from "../../../utils/util.js";
3
+ import { useI18n } from "../../../utils/i18n.js";
4
+ import { generateCode } from "../../../utils/code-generator.js";
5
+ import { saveAs } from "file-saver";
6
+ import axios from "axios";
7
+ import SvgIcon from "../../svg-icon/index.vue.js";
8
+ import { fmtHttpParams } from "../../../utils/request/fmtHttpParams.js";
9
+ import { getLocat } from "@kp-ui/tool";
10
+ import { cloneDeep } from "lodash-es";
11
+ import { TpfModal, CodeEditor } from "tmgc2-share";
12
+ import { message } from "ant-design-vue";
13
+ const _sfc_main = /* @__PURE__ */ defineComponent({
14
+ __name: "index",
15
+ props: {
16
+ leftWidth: {},
17
+ rightWidth: {},
18
+ changeRightWidth: {},
19
+ changeLeftWidth: {},
20
+ designer: {},
21
+ saveJsonApi: {},
22
+ globalDsv: { default: () => ({}) }
23
+ },
24
+ setup(__props, { expose: __expose }) {
25
+ const VFormRender = defineAsyncComponent(() => import("../../form-render/index.vue.js"));
26
+ const props = __props;
27
+ const getDesignerConfig = inject("getDesignerConfig");
28
+ const nodeTree = ref(null);
29
+ const preForm = ref(null);
30
+ const vfCtx = ref({ type: "add", ...getLocat() });
31
+ const designerConfig = ref(getDesignerConfig());
32
+ const toolbarWidth = ref(460);
33
+ const showPreviewDialogFlag = ref(false);
34
+ const showImportJsonDialogFlag = ref(false);
35
+ const showExportJsonDialogFlag = ref(false);
36
+ const showExportCodeDialogFlag = ref(false);
37
+ const showFormDataDialogFlag = ref(false);
38
+ const showExportSFCDialogFlag = ref(false);
39
+ const showNodeTreeDrawerFlag = ref(false);
40
+ const nodeTreeData = ref([]);
41
+ const importTemplate = ref("");
42
+ const jsonContent = ref("");
43
+ const jsonRawContent = ref("");
44
+ const formDataJson = ref("");
45
+ const formDataRawJson = ref("");
46
+ const vueCode = ref("");
47
+ const htmlCode = ref("");
48
+ const sfcCode = ref("");
49
+ const sfcCodeV3 = ref("");
50
+ ref("vue");
51
+ const activeSFCTab = ref("vue2");
52
+ const testFormData = ref({
53
+ select62173: 2
54
+ });
55
+ const testOptionData = ref({
56
+ select62173: [
57
+ { label: "01", value: 1 },
58
+ { label: "22", value: 2 },
59
+ { label: "333", value: 3 }
60
+ ],
61
+ select001: [
62
+ { label: "辣椒", value: 1 },
63
+ { label: "菠萝", value: 2 },
64
+ { label: "丑橘子", value: 3 }
65
+ ]
66
+ });
67
+ const formJson = computed(() => {
68
+ return {
69
+ widgetList: cloneDeep(props.designer.widgetList),
70
+ formConfig: cloneDeep(props.designer.formConfig)
71
+ };
72
+ });
73
+ const undoDisabled = computed(() => {
74
+ return !props.designer.undoEnabled();
75
+ });
76
+ const redoDisabled = computed(() => {
77
+ return !props.designer.redoEnabled();
78
+ });
79
+ const layoutType = computed(() => {
80
+ return props.designer.getLayoutType();
81
+ });
82
+ const designerDsv = computed(() => {
83
+ return props.globalDsv;
84
+ });
85
+ watch(
86
+ () => props.designer.widgetList,
87
+ (val) => {
88
+ },
89
+ { deep: true }
90
+ );
91
+ onMounted(() => {
92
+ const maxTBWidth = designerConfig.value.toolbarMaxWidth || 460;
93
+ const minTBWidth = designerConfig.value.toolbarMinWidth || 300;
94
+ const newTBWidth = window.innerWidth - 260 - 300 - 320 - 80;
95
+ toolbarWidth.value = newTBWidth >= maxTBWidth ? maxTBWidth : newTBWidth <= minTBWidth ? minTBWidth : newTBWidth;
96
+ addWindowResizeHandler(() => {
97
+ nextTick(() => {
98
+ const newTBWidth2 = window.innerWidth - 260 - 300 - 320 - 80;
99
+ toolbarWidth.value = newTBWidth2 >= maxTBWidth ? maxTBWidth : newTBWidth2 <= minTBWidth ? minTBWidth : newTBWidth2;
100
+ });
101
+ });
102
+ });
103
+ const { i18nt } = useI18n();
104
+ const saveJson = () => {
105
+ if (props.saveJsonApi) {
106
+ props.saveJsonApi(formJson.value);
107
+ }
108
+ };
109
+ const setReadMode = () => {
110
+ preForm.value.setFormData({
111
+ fileupload26481: [
112
+ {
113
+ fileCode: "89046755221505",
114
+ fileName: "首页-透明工厂.png",
115
+ guidebookId: 89046782484481,
116
+ id: 89046782484482
117
+ }
118
+ ]
119
+ });
120
+ };
121
+ const showToolButton = (configName) => {
122
+ if (designerConfig.value[configName] === void 0) {
123
+ return true;
124
+ }
125
+ return !!designerConfig.value[configName];
126
+ };
127
+ const buildTreeNodeOfWidget = (widget, treeNode) => {
128
+ const curNode = {
129
+ id: widget.id,
130
+ label: widget.options.label || widget.type,
131
+ children: []
132
+ };
133
+ treeNode.push(curNode);
134
+ if (widget.category === void 0) {
135
+ return;
136
+ }
137
+ if (widget.type === "grid") {
138
+ widget.cols.map((col) => {
139
+ const colNode = {
140
+ id: col.id,
141
+ label: col.options.name || widget.type,
142
+ children: []
143
+ };
144
+ curNode.children.push(colNode);
145
+ col.widgetList.map((wChild) => {
146
+ buildTreeNodeOfWidget(wChild, colNode.children);
147
+ });
148
+ });
149
+ } else if (widget.type === "table") {
150
+ widget.rows.map((row) => {
151
+ const rowNode = {
152
+ id: row.id,
153
+ label: "table-row",
154
+ selectable: false,
155
+ children: []
156
+ };
157
+ curNode.children.push(rowNode);
158
+ row.cols.map((cell) => {
159
+ if (!!cell.merged) {
160
+ return;
161
+ }
162
+ const rowChildren = rowNode.children;
163
+ const cellNode = {
164
+ id: cell.id,
165
+ label: "table-cell",
166
+ children: []
167
+ };
168
+ rowChildren.push(cellNode);
169
+ cell.widgetList.map((wChild) => {
170
+ buildTreeNodeOfWidget(wChild, cellNode.children);
171
+ });
172
+ });
173
+ });
174
+ } else if (widget.type === "tab") {
175
+ widget.tabs.map((tab) => {
176
+ const tabNode = {
177
+ id: tab.id,
178
+ label: tab.options.name || widget.type,
179
+ selectable: false,
180
+ children: []
181
+ };
182
+ curNode.children.push(tabNode);
183
+ tab.widgetList.map((wChild) => {
184
+ buildTreeNodeOfWidget(wChild, tabNode.children);
185
+ });
186
+ });
187
+ } else if (widget.type === "sub-form") {
188
+ widget.widgetList.map((wChild) => {
189
+ buildTreeNodeOfWidget(wChild, curNode.children);
190
+ });
191
+ } else if (widget.category === "container") {
192
+ widget.widgetList.map((wChild) => {
193
+ buildTreeNodeOfWidget(wChild, curNode.children);
194
+ });
195
+ }
196
+ };
197
+ const refreshNodeTree = () => {
198
+ nodeTreeData.value.length = 0;
199
+ props.designer.widgetList.forEach((wItem) => {
200
+ buildTreeNodeOfWidget(wItem, nodeTreeData.value);
201
+ });
202
+ };
203
+ const showNodeTreeDrawer = () => {
204
+ refreshNodeTree();
205
+ showNodeTreeDrawerFlag.value = true;
206
+ nextTick(() => {
207
+ if (!!props.designer.selectedId) ;
208
+ });
209
+ };
210
+ const undoHistory = () => {
211
+ props.designer.undoHistoryStep();
212
+ };
213
+ const redoHistory = () => {
214
+ props.designer.redoHistoryStep();
215
+ };
216
+ const changeLayoutType = (newType) => {
217
+ props.designer.changeLayoutType(newType);
218
+ };
219
+ const clearFormWidget = () => {
220
+ props.designer.clearDesigner();
221
+ props.designer.formWidget.clearWidgetRefList();
222
+ message.success("ok");
223
+ };
224
+ const previewForm = () => {
225
+ showPreviewDialogFlag.value = true;
226
+ };
227
+ const saveAsFile = (fileContent, defaultFileName) => {
228
+ const value = "json.json";
229
+ if (getQueryParam("vscode") == 1) {
230
+ vsSaveFile(value, fileContent);
231
+ return;
232
+ }
233
+ const fileBlob = new Blob([fileContent], { type: "text/plain;charset=utf-8" });
234
+ saveAs(fileBlob, value);
235
+ };
236
+ const vsSaveFile = (fileName, fileContent) => {
237
+ const msgObj = {
238
+ cmd: "writeFile",
239
+ data: {
240
+ fileName,
241
+ code: fileContent
242
+ }
243
+ };
244
+ window.parent.postMessage(msgObj, "*");
245
+ };
246
+ const importJson = () => {
247
+ importTemplate.value = JSON.stringify(props.designer.getImportTemplate(), null, " ");
248
+ showImportJsonDialogFlag.value = true;
249
+ };
250
+ const doJsonImport = () => {
251
+ try {
252
+ const importObj = JSON.parse(importTemplate.value);
253
+ if (!importObj || !importObj.formConfig) {
254
+ throw new Error(i18nt("designer.hint.invalidJsonFormat"));
255
+ }
256
+ props.designer.loadFormJson(importObj);
257
+ showImportJsonDialogFlag.value = false;
258
+ message.success(i18nt("designer.hint.importJsonSuccess"));
259
+ props.designer.emitHistoryChange();
260
+ props.designer.emitEvent("form-json-imported", []);
261
+ } catch (ex) {
262
+ message.error(ex + "");
263
+ }
264
+ };
265
+ const exportJson = () => {
266
+ const widgetList = cloneDeep(props.designer.widgetList);
267
+ const formConfig = cloneDeep(props.designer.formConfig);
268
+ jsonContent.value = JSON.stringify({ widgetList, formConfig }, null, " ");
269
+ jsonRawContent.value = JSON.stringify({ widgetList, formConfig });
270
+ showExportJsonDialogFlag.value = true;
271
+ };
272
+ const copyFormJson = (e) => {
273
+ copyToClipboard(
274
+ jsonRawContent.value,
275
+ e,
276
+ message,
277
+ i18nt("designer.hint.copyJsonSuccess"),
278
+ i18nt("designer.hint.copyJsonFail")
279
+ );
280
+ };
281
+ const saveFormJson = () => {
282
+ saveAsFile(jsonContent.value);
283
+ };
284
+ const exportCode = () => {
285
+ vueCode.value = generateCode(formJson.value);
286
+ htmlCode.value = generateCode(formJson.value, "html");
287
+ showExportCodeDialogFlag.value = true;
288
+ };
289
+ const copyVueCode = (e) => {
290
+ copyToClipboard(
291
+ vueCode.value,
292
+ e,
293
+ message,
294
+ i18nt("designer.hint.copyVueCodeSuccess"),
295
+ i18nt("designer.hint.copyVueCodeFail")
296
+ );
297
+ };
298
+ const copyHtmlCode = (e) => {
299
+ copyToClipboard(
300
+ htmlCode.value,
301
+ e,
302
+ message,
303
+ i18nt("designer.hint.copyHtmlCodeSuccess"),
304
+ i18nt("designer.hint.copyHtmlCodeFail")
305
+ );
306
+ };
307
+ const saveVueCode = () => {
308
+ saveAsFile(vueCode.value);
309
+ };
310
+ const saveHtmlCode = () => {
311
+ saveAsFile(htmlCode.value);
312
+ };
313
+ const generateSFC = () => {
314
+ };
315
+ const copyV2SFC = (e) => {
316
+ copyToClipboard(
317
+ sfcCode.value,
318
+ e,
319
+ message,
320
+ i18nt("designer.hint.copySFCSuccess"),
321
+ i18nt("designer.hint.copySFCFail")
322
+ );
323
+ };
324
+ const copyV3SFC = (e) => {
325
+ copyToClipboard(
326
+ sfcCodeV3.value,
327
+ e,
328
+ message,
329
+ i18nt("designer.hint.copySFCSuccess"),
330
+ i18nt("designer.hint.copySFCFail")
331
+ );
332
+ };
333
+ const saveV2SFC = () => {
334
+ saveAsFile(sfcCode.value);
335
+ };
336
+ const saveV3SFC = () => {
337
+ saveAsFile(sfcCodeV3.value);
338
+ };
339
+ const insertData = async () => {
340
+ const data = await preForm.value.getFormData();
341
+ const formConfig = props.designer.formConfig;
342
+ const res = await fmtHttpParams.call(this, formConfig.serveList.vformUpdate, data);
343
+ console.log("res: insertData", res);
344
+ };
345
+ const showData = async () => {
346
+ const formConfig = props.designer.formConfig;
347
+ const { id: _id } = getLocat();
348
+ const dsResult = await fmtHttpParams(formConfig.serveList.vformDetail, { _id });
349
+ const leaveDates = [{ date: "2024-10-28" }, { date: "2024-10-29" }, { date: "2024-10-20" }];
350
+ preForm.value.getWidgetRef("leaveDates").setValue(leaveDates);
351
+ preForm.value.setFormData({
352
+ ...dsResult
353
+ });
354
+ preForm.value.setReadMode(true);
355
+ };
356
+ const getFormData = () => {
357
+ preForm.value.getFormData().then((formData) => {
358
+ console.log("formData: ", formData);
359
+ formDataJson.value = JSON.stringify(formData, null, " ");
360
+ formDataRawJson.value = JSON.stringify(formData);
361
+ showFormDataDialogFlag.value = true;
362
+ }).catch((error) => {
363
+ message.error(error);
364
+ });
365
+ };
366
+ const copyFormDataJson = (e) => {
367
+ copyToClipboard(
368
+ formDataRawJson.value,
369
+ e,
370
+ message,
371
+ i18nt("designer.hint.copyJsonSuccess"),
372
+ i18nt("designer.hint.copyJsonFail")
373
+ );
374
+ };
375
+ const saveFormData = () => {
376
+ saveAsFile(htmlCode.value);
377
+ };
378
+ const resetForm = () => {
379
+ preForm.value.resetForm();
380
+ };
381
+ const setFormDisabled = () => {
382
+ preForm.value.disableForm();
383
+ };
384
+ const setFormEnabled = () => {
385
+ preForm.value.enableForm();
386
+ };
387
+ const testLoadForm = () => {
388
+ axios.get("https://www.fastmock.site/mock/e9710039bb5f11262d1a0f2f0bbe08c8/vform3/getFS").then((res) => {
389
+ const newFormJson = res.data;
390
+ preForm.value.setFormJson(newFormJson);
391
+ nextTick(() => {
392
+ const newFormData = { input30696: "668899" };
393
+ preForm.value.setFormData(newFormData);
394
+ });
395
+ }).catch((err) => {
396
+ });
397
+ };
398
+ const testSetFormJson = async () => {
399
+ const { widgetList } = await import("./widgetList.js");
400
+ const newFormJson = {
401
+ widgetList,
402
+ formConfig: {
403
+ labelWidth: 150,
404
+ labelPosition: "horizontal",
405
+ size: "",
406
+ labelAlign: "label-right-align",
407
+ cssCode: "",
408
+ customClass: [],
409
+ functions: "",
410
+ onFormCreated: "",
411
+ onFormDataChange: "",
412
+ handleOnSubmit: "",
413
+ onFormValidate: ""
414
+ }
415
+ };
416
+ preForm.value.setFormJson(newFormJson);
417
+ nextTick(() => {
418
+ preForm.value.setFormData({
419
+ input12931: "asdf",
420
+ input23031: "input23031",
421
+ textarea21654: "textarea21654",
422
+ input113152: "input113152",
423
+ input40240: "input40240"
424
+ });
425
+ });
426
+ };
427
+ const testSetFormData = () => {
428
+ const testFD = {
429
+ input89263: "899668"
430
+ };
431
+ preForm.value.setFormData(testFD);
432
+ };
433
+ const testReloadOptionData = () => {
434
+ testOptionData.value["select001"].push({
435
+ label: "aaa",
436
+ value: 888
437
+ });
438
+ preForm.value.reloadOptionData();
439
+ };
440
+ const handleFormChange = (fieldName, newValue, oldValue, formModel) => {
441
+ console.log("formModel", formModel);
442
+ };
443
+ const testOnAppendButtonClick = (clickedWidget) => {
444
+ console.log("test", clickedWidget);
445
+ };
446
+ const testOnButtonClick = (button) => {
447
+ console.log("test", button);
448
+ };
449
+ const onMyEmitTest = (aaa) => {
450
+ console.log("-----", aaa);
451
+ };
452
+ const findWidgetById = (wId) => {
453
+ let foundW = null;
454
+ traverseAllWidgets(props.designer.widgetList, (w) => {
455
+ if (w.id === wId) {
456
+ foundW = w;
457
+ }
458
+ });
459
+ return foundW;
460
+ };
461
+ const onNodeTreeClick = (nodeData, node, nodeEl) => {
462
+ if (nodeData.selectable !== void 0 && !nodeData.selectable) {
463
+ message.info(i18nt("designer.hint.currentNodeCannotBeSelected"));
464
+ } else {
465
+ const selectedId = nodeData.id;
466
+ const foundW = findWidgetById(selectedId);
467
+ if (!!foundW) {
468
+ props.designer.setSelected(foundW);
469
+ }
470
+ }
471
+ };
472
+ __expose({
473
+ saveJson,
474
+ setReadMode,
475
+ showToolButton,
476
+ buildTreeNodeOfWidget,
477
+ refreshNodeTree,
478
+ showNodeTreeDrawer,
479
+ undoHistory,
480
+ redoHistory,
481
+ changeLayoutType,
482
+ clearFormWidget,
483
+ previewForm,
484
+ saveAsFile,
485
+ vsSaveFile,
486
+ importJson,
487
+ doJsonImport,
488
+ exportJson,
489
+ copyFormJson,
490
+ saveFormJson,
491
+ exportCode,
492
+ copyVueCode,
493
+ copyHtmlCode,
494
+ saveVueCode,
495
+ saveHtmlCode,
496
+ generateSFC,
497
+ copyV2SFC,
498
+ copyV3SFC,
499
+ saveV2SFC,
500
+ saveV3SFC,
501
+ insertData,
502
+ showData,
503
+ getFormData,
504
+ copyFormDataJson,
505
+ saveFormData,
506
+ resetForm,
507
+ setFormDisabled,
508
+ setFormEnabled,
509
+ testLoadForm,
510
+ testSetFormJson,
511
+ testSetFormData,
512
+ testReloadOptionData,
513
+ handleFormChange,
514
+ testOnAppendButtonClick,
515
+ testOnButtonClick,
516
+ onMyEmitTest,
517
+ findWidgetById,
518
+ onNodeTreeClick
519
+ });
520
+ return (_ctx, _cache) => {
521
+ const _component_a_button = resolveComponent("a-button");
522
+ const _component_a_radio_button = resolveComponent("a-radio-button");
523
+ const _component_a_radio_group = resolveComponent("a-radio-group");
524
+ const _component_a_tree = resolveComponent("a-tree");
525
+ const _component_a_drawer = resolveComponent("a-drawer");
526
+ const _component_a_alert = resolveComponent("a-alert");
527
+ const _component_a_modal = resolveComponent("a-modal");
528
+ const _component_a_tab_pane = resolveComponent("a-tab-pane");
529
+ const _component_a_tabs = resolveComponent("a-tabs");
530
+ return openBlock(), createElementBlock("div", { class: "toolbar-container" }, [
531
+ createElementVNode("div", { class: "left-toolbar" }, [
532
+ createVNode(_component_a_button, {
533
+ type: "link",
534
+ onClick: _cache[0] || (_cache[0] = ($event) => _ctx.changeLeftWidth())
535
+ }, {
536
+ default: withCtx(() => [
537
+ createVNode(unref(SvgIcon), {
538
+ style: normalizeStyle(`transform:${_ctx.leftWidth === 0 ? "rotate(180deg)" : "rotate(0deg)"}`),
539
+ "icon-class": "a-ipadarrow_back"
540
+ }, null, 8, ["style"])
541
+ ]),
542
+ _: 1
543
+ }),
544
+ createVNode(_component_a_button, {
545
+ type: "link",
546
+ disabled: undoDisabled.value,
547
+ title: unref(i18nt)("designer.toolbar.undoHint"),
548
+ onClick: undoHistory
549
+ }, {
550
+ default: withCtx(() => [
551
+ createVNode(unref(SvgIcon), { "icon-class": "undo" })
552
+ ]),
553
+ _: 1
554
+ }, 8, ["disabled", "title"]),
555
+ createVNode(_component_a_button, {
556
+ type: "link",
557
+ disabled: redoDisabled.value,
558
+ title: unref(i18nt)("designer.toolbar.redoHint"),
559
+ onClick: redoHistory
560
+ }, {
561
+ default: withCtx(() => [
562
+ createVNode(unref(SvgIcon), { "icon-class": "redo" })
563
+ ]),
564
+ _: 1
565
+ }, 8, ["disabled", "title"]),
566
+ createVNode(_component_a_radio_group, {
567
+ value: layoutType.value,
568
+ "onUpdate:value": _cache[4] || (_cache[4] = ($event) => layoutType.value = $event)
569
+ }, {
570
+ default: withCtx(() => [
571
+ createVNode(_component_a_radio_button, {
572
+ value: "PC",
573
+ type: layoutType.value === "PC" ? "primary" : "",
574
+ onClick: _cache[1] || (_cache[1] = ($event) => changeLayoutType("PC"))
575
+ }, {
576
+ default: withCtx(() => [
577
+ createTextVNode(toDisplayString(unref(i18nt)("designer.toolbar.pcLayout")), 1)
578
+ ]),
579
+ _: 1
580
+ }, 8, ["type"]),
581
+ createVNode(_component_a_radio_button, {
582
+ value: "Pad",
583
+ type: layoutType.value === "Pad" ? "primary" : "",
584
+ onClick: _cache[2] || (_cache[2] = ($event) => changeLayoutType("Pad"))
585
+ }, {
586
+ default: withCtx(() => [
587
+ createTextVNode(toDisplayString(unref(i18nt)("designer.toolbar.padLayout")), 1)
588
+ ]),
589
+ _: 1
590
+ }, 8, ["type"]),
591
+ createVNode(_component_a_radio_button, {
592
+ type: layoutType.value === "H5" ? "primary" : "",
593
+ onClick: _cache[3] || (_cache[3] = ($event) => changeLayoutType("H5")),
594
+ value: "H5"
595
+ }, {
596
+ default: withCtx(() => [
597
+ createTextVNode(toDisplayString(unref(i18nt)("designer.toolbar.mobileLayout")), 1)
598
+ ]),
599
+ _: 1
600
+ }, 8, ["type"])
601
+ ]),
602
+ _: 1
603
+ }, 8, ["value"])
604
+ ]),
605
+ createVNode(_component_a_drawer, {
606
+ title: unref(i18nt)("designer.toolbar.nodeTreeTitle"),
607
+ direction: "ltr",
608
+ visible: showNodeTreeDrawerFlag.value,
609
+ "onUpdate:visible": _cache[5] || (_cache[5] = ($event) => showNodeTreeDrawerFlag.value = $event),
610
+ width: 280,
611
+ "destroy-on-close": true,
612
+ class: "node-tree-drawer"
613
+ }, {
614
+ default: withCtx(() => [
615
+ createVNode(_component_a_tree, {
616
+ ref_key: "nodeTree",
617
+ ref: nodeTree,
618
+ treeData: nodeTreeData.value,
619
+ "default-expand-all": "",
620
+ "highlight-current": "",
621
+ class: "node-tree",
622
+ "icon-class": "el-icon-arrow-right",
623
+ fieldNames: { children: "children", title: "label", key: "id" }
624
+ }, null, 8, ["treeData"])
625
+ ]),
626
+ _: 1
627
+ }, 8, ["title", "visible"]),
628
+ createElementVNode("div", { class: "right-toolbar" }, [
629
+ createElementVNode("div", { class: "right-toolbar-con" }, [
630
+ showToolButton("clearDesignerButton") ? (openBlock(), createBlock(_component_a_button, {
631
+ key: 0,
632
+ type: "link",
633
+ onClick: clearFormWidget
634
+ }, {
635
+ default: withCtx(() => [
636
+ createVNode(unref(SvgIcon), { "icon-class": "el-delete" }),
637
+ createTextVNode(toDisplayString(unref(i18nt)("designer.toolbar.clear")), 1)
638
+ ]),
639
+ _: 1
640
+ })) : createCommentVNode("", true),
641
+ showToolButton("previewFormButton") ? (openBlock(), createBlock(_component_a_button, {
642
+ key: 1,
643
+ type: "link",
644
+ onClick: previewForm
645
+ }, {
646
+ default: withCtx(() => [
647
+ createVNode(unref(SvgIcon), { "icon-class": "el-view" }),
648
+ createTextVNode(toDisplayString(unref(i18nt)("designer.toolbar.preview")), 1)
649
+ ]),
650
+ _: 1
651
+ })) : createCommentVNode("", true),
652
+ showToolButton("importJsonButton") ? (openBlock(), createBlock(_component_a_button, {
653
+ key: 2,
654
+ type: "link",
655
+ onClick: importJson
656
+ }, {
657
+ default: withCtx(() => [
658
+ createTextVNode(toDisplayString(unref(i18nt)("designer.toolbar.importJson")), 1)
659
+ ]),
660
+ _: 1
661
+ })) : createCommentVNode("", true),
662
+ showToolButton("exportJsonButton") ? (openBlock(), createBlock(_component_a_button, {
663
+ key: 3,
664
+ type: "link",
665
+ onClick: exportJson
666
+ }, {
667
+ default: withCtx(() => [
668
+ createTextVNode(toDisplayString(unref(i18nt)("designer.toolbar.exportJson")), 1)
669
+ ]),
670
+ _: 1
671
+ })) : createCommentVNode("", true),
672
+ showToolButton("exportCodeButton") ? (openBlock(), createBlock(_component_a_button, {
673
+ key: 4,
674
+ type: "link",
675
+ onClick: saveJson
676
+ }, {
677
+ default: withCtx(() => [
678
+ createTextVNode(" 保存 ")
679
+ ]),
680
+ _: 1
681
+ })) : createCommentVNode("", true),
682
+ createVNode(_component_a_button, {
683
+ type: "link",
684
+ onClick: _cache[6] || (_cache[6] = ($event) => _ctx.changeRightWidth())
685
+ }, {
686
+ default: withCtx(() => [
687
+ createVNode(unref(SvgIcon), {
688
+ style: normalizeStyle(`transform:${_ctx.rightWidth === 0 ? "rotate(0deg)" : "rotate(180deg)"}`),
689
+ "icon-class": "a-ipadarrow_back"
690
+ }, null, 8, ["style"])
691
+ ]),
692
+ _: 1
693
+ }),
694
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.$slots, (idx, slotName) => {
695
+ return renderSlot(_ctx.$slots, slotName, {}, void 0, true);
696
+ }), 256))
697
+ ])
698
+ ]),
699
+ createVNode(unref(TpfModal), {
700
+ title: unref(i18nt)("designer.toolbar.preview"),
701
+ visible: showPreviewDialogFlag.value,
702
+ "onUpdate:visible": _cache[8] || (_cache[8] = ($event) => showPreviewDialogFlag.value = $event),
703
+ "show-close": true,
704
+ "close-on-click-modal": false,
705
+ "close-on-press-escape": false,
706
+ center: "",
707
+ "destroy-on-close": true,
708
+ "append-to-body": true,
709
+ class: "drag-dialog",
710
+ width: "75%",
711
+ fullscreen: layoutType.value === "H5" || layoutType.value === "Pad"
712
+ }, {
713
+ footerRight: withCtx(() => [
714
+ createVNode(_component_a_button, { onClick: showData }, {
715
+ default: withCtx(() => [
716
+ createTextVNode("数据回显")
717
+ ]),
718
+ _: 1
719
+ }),
720
+ createVNode(_component_a_button, {
721
+ type: "primary",
722
+ onClick: getFormData
723
+ }, {
724
+ default: withCtx(() => [
725
+ createTextVNode(toDisplayString(unref(i18nt)("designer.hint.getFormData")), 1)
726
+ ]),
727
+ _: 1
728
+ }),
729
+ createVNode(_component_a_button, {
730
+ type: "primary",
731
+ onClick: resetForm
732
+ }, {
733
+ default: withCtx(() => [
734
+ createTextVNode(toDisplayString(unref(i18nt)("designer.hint.resetForm")), 1)
735
+ ]),
736
+ _: 1
737
+ }),
738
+ createVNode(_component_a_button, {
739
+ type: "primary",
740
+ onClick: setFormDisabled
741
+ }, {
742
+ default: withCtx(() => [
743
+ createTextVNode(toDisplayString(unref(i18nt)("designer.hint.disableForm")), 1)
744
+ ]),
745
+ _: 1
746
+ }),
747
+ createVNode(_component_a_button, {
748
+ type: "primary",
749
+ onClick: setFormEnabled
750
+ }, {
751
+ default: withCtx(() => [
752
+ createTextVNode(toDisplayString(unref(i18nt)("designer.hint.enableForm")), 1)
753
+ ]),
754
+ _: 1
755
+ }),
756
+ createVNode(_component_a_button, {
757
+ onClick: _cache[7] || (_cache[7] = ($event) => showPreviewDialogFlag.value = false)
758
+ }, {
759
+ default: withCtx(() => [
760
+ createTextVNode(toDisplayString(unref(i18nt)("designer.hint.closePreview")), 1)
761
+ ]),
762
+ _: 1
763
+ })
764
+ ]),
765
+ default: withCtx(() => [
766
+ createElementVNode("div", null, [
767
+ createElementVNode("div", {
768
+ class: normalizeClass(["form-render-wrapper", [
769
+ layoutType.value === "H5" ? "h5-layout" : layoutType.value === "Pad" ? "pad-layout" : ""
770
+ ]])
771
+ }, [
772
+ createVNode(unref(VFormRender), {
773
+ vfCtx: vfCtx.value,
774
+ ref_key: "preForm",
775
+ ref: preForm,
776
+ "form-json": unref(cloneDeep)(formJson.value),
777
+ "form-data": testFormData.value,
778
+ "preview-state": true,
779
+ "option-data": testOptionData.value,
780
+ "global-dsv": designerDsv.value,
781
+ onMyEmitTest,
782
+ onAppendButtonClick: testOnAppendButtonClick,
783
+ onButtonClick: testOnButtonClick,
784
+ onFormChange: handleFormChange
785
+ }, null, 8, ["vfCtx", "form-json", "form-data", "option-data", "global-dsv"])
786
+ ], 2)
787
+ ])
788
+ ]),
789
+ _: 1
790
+ }, 8, ["title", "visible", "fullscreen"]),
791
+ createVNode(_component_a_modal, {
792
+ title: unref(i18nt)("designer.toolbar.importJson"),
793
+ visible: showImportJsonDialogFlag.value,
794
+ "onUpdate:visible": _cache[11] || (_cache[11] = ($event) => showImportJsonDialogFlag.value = $event),
795
+ "show-close": true,
796
+ class: "drag-dialog",
797
+ "append-to-body": true,
798
+ center: "",
799
+ width: "1200px",
800
+ "close-on-click-modal": false,
801
+ "close-on-press-escape": false,
802
+ "destroy-on-close": true
803
+ }, {
804
+ footer: withCtx(() => [
805
+ createElementVNode("div", { class: "dialog-footer" }, [
806
+ createVNode(_component_a_button, {
807
+ type: "primary",
808
+ onClick: doJsonImport
809
+ }, {
810
+ default: withCtx(() => [
811
+ createTextVNode(toDisplayString(unref(i18nt)("designer.hint.import")), 1)
812
+ ]),
813
+ _: 1
814
+ }),
815
+ createVNode(_component_a_button, {
816
+ onClick: _cache[10] || (_cache[10] = ($event) => showImportJsonDialogFlag.value = false)
817
+ }, {
818
+ default: withCtx(() => [
819
+ createTextVNode(toDisplayString(unref(i18nt)("designer.hint.cancel")), 1)
820
+ ]),
821
+ _: 1
822
+ })
823
+ ])
824
+ ]),
825
+ default: withCtx(() => [
826
+ createVNode(_component_a_alert, {
827
+ type: "info",
828
+ message: unref(i18nt)("designer.hint.importJsonHint"),
829
+ "show-icon": "",
830
+ class: "alert-padding"
831
+ }, null, 8, ["message"]),
832
+ createVNode(unref(CodeEditor), {
833
+ mode: "json",
834
+ readonly: false,
835
+ modelValue: importTemplate.value,
836
+ "onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => importTemplate.value = $event)
837
+ }, null, 8, ["modelValue"])
838
+ ]),
839
+ _: 1
840
+ }, 8, ["title", "visible"]),
841
+ createVNode(_component_a_modal, {
842
+ title: unref(i18nt)("designer.toolbar.exportJson"),
843
+ visible: showExportJsonDialogFlag.value,
844
+ "onUpdate:visible": _cache[14] || (_cache[14] = ($event) => showExportJsonDialogFlag.value = $event),
845
+ "show-close": true,
846
+ class: "drag-dialog",
847
+ center: "",
848
+ "append-to-body": "",
849
+ width: "1200px",
850
+ "close-on-click-modal": false,
851
+ "close-on-press-escape": false,
852
+ "destroy-on-close": true
853
+ }, {
854
+ footer: withCtx(() => [
855
+ createElementVNode("div", { class: "dialog-footer" }, [
856
+ createVNode(_component_a_button, {
857
+ type: "primary",
858
+ class: "copy-json-btn",
859
+ "data-clipboard-text": jsonRawContent.value,
860
+ onClick: copyFormJson
861
+ }, {
862
+ default: withCtx(() => [
863
+ createTextVNode(toDisplayString(unref(i18nt)("designer.hint.copyJson")), 1)
864
+ ]),
865
+ _: 1
866
+ }, 8, ["data-clipboard-text"]),
867
+ createVNode(_component_a_button, { onClick: saveFormJson }, {
868
+ default: withCtx(() => [
869
+ createTextVNode(toDisplayString(unref(i18nt)("designer.hint.saveFormJson")), 1)
870
+ ]),
871
+ _: 1
872
+ }),
873
+ createVNode(_component_a_button, {
874
+ onClick: _cache[13] || (_cache[13] = ($event) => showExportJsonDialogFlag.value = false)
875
+ }, {
876
+ default: withCtx(() => [
877
+ createTextVNode(toDisplayString(unref(i18nt)("designer.hint.closePreview")), 1)
878
+ ]),
879
+ _: 1
880
+ })
881
+ ])
882
+ ]),
883
+ default: withCtx(() => [
884
+ createVNode(unref(CodeEditor), {
885
+ mode: "json",
886
+ readonly: true,
887
+ modelValue: jsonContent.value,
888
+ "onUpdate:modelValue": _cache[12] || (_cache[12] = ($event) => jsonContent.value = $event)
889
+ }, null, 8, ["modelValue"])
890
+ ]),
891
+ _: 1
892
+ }, 8, ["title", "visible"]),
893
+ createVNode(unref(TpfModal), {
894
+ title: unref(i18nt)("designer.hint.exportFormData"),
895
+ visible: showFormDataDialogFlag.value,
896
+ "onUpdate:visible": _cache[17] || (_cache[17] = ($event) => showFormDataDialogFlag.value = $event),
897
+ width: "1200px"
898
+ }, {
899
+ footerRight: withCtx(() => [
900
+ createVNode(_component_a_button, {
901
+ type: "primary",
902
+ class: "copy-form-data-json-btn",
903
+ "data-clipboard-text": formDataRawJson.value,
904
+ onClick: copyFormDataJson
905
+ }, {
906
+ default: withCtx(() => [
907
+ createTextVNode(toDisplayString(unref(i18nt)("designer.hint.copyFormData")), 1)
908
+ ]),
909
+ _: 1
910
+ }, 8, ["data-clipboard-text"]),
911
+ createVNode(_component_a_button, { onClick: saveFormData }, {
912
+ default: withCtx(() => [
913
+ createTextVNode(toDisplayString(unref(i18nt)("designer.hint.saveFormData")), 1)
914
+ ]),
915
+ _: 1
916
+ }),
917
+ createVNode(_component_a_button, {
918
+ onClick: _cache[16] || (_cache[16] = ($event) => showFormDataDialogFlag.value = false)
919
+ }, {
920
+ default: withCtx(() => [
921
+ createTextVNode(toDisplayString(unref(i18nt)("designer.hint.closePreview")), 1)
922
+ ]),
923
+ _: 1
924
+ })
925
+ ]),
926
+ default: withCtx(() => [
927
+ createVNode(unref(CodeEditor), {
928
+ mode: "json",
929
+ readonly: true,
930
+ modelValue: formDataJson.value,
931
+ "onUpdate:modelValue": _cache[15] || (_cache[15] = ($event) => formDataJson.value = $event)
932
+ }, null, 8, ["modelValue"])
933
+ ]),
934
+ _: 1
935
+ }, 8, ["title", "visible"]),
936
+ showExportSFCDialogFlag.value ? (openBlock(), createBlock(_component_a_modal, {
937
+ key: 0,
938
+ title: unref(i18nt)("designer.toolbar.generateSFC"),
939
+ visible: showExportSFCDialogFlag.value,
940
+ "onUpdate:visible": _cache[22] || (_cache[22] = ($event) => showExportSFCDialogFlag.value = $event),
941
+ "append-to-body": "",
942
+ "show-close": true,
943
+ class: "drag-dialog",
944
+ center: "",
945
+ width: "65%",
946
+ "close-on-click-modal": false,
947
+ "close-on-press-escape": false,
948
+ "destroy-on-close": true
949
+ }, {
950
+ footer: withCtx(() => [
951
+ createElementVNode("div", { class: "dialog-footer" }, [
952
+ createVNode(_component_a_button, {
953
+ type: "primary",
954
+ class: "copy-vue2-sfc-btn",
955
+ "data-clipboard-text": sfcCode.value,
956
+ onClick: copyV2SFC
957
+ }, {
958
+ default: withCtx(() => [
959
+ createTextVNode(toDisplayString(unref(i18nt)("designer.hint.copyVue2SFC")), 1)
960
+ ]),
961
+ _: 1
962
+ }, 8, ["data-clipboard-text"]),
963
+ createVNode(_component_a_button, {
964
+ type: "primary",
965
+ class: "copy-vue3-sfc-btn",
966
+ "data-clipboard-text": sfcCodeV3.value,
967
+ onClick: copyV3SFC
968
+ }, {
969
+ default: withCtx(() => [
970
+ createTextVNode(toDisplayString(unref(i18nt)("designer.hint.copyVue3SFC")), 1)
971
+ ]),
972
+ _: 1
973
+ }, 8, ["data-clipboard-text"]),
974
+ createVNode(_component_a_button, { onClick: saveV2SFC }, {
975
+ default: withCtx(() => [
976
+ createTextVNode(toDisplayString(unref(i18nt)("designer.hint.saveVue2SFC")), 1)
977
+ ]),
978
+ _: 1
979
+ }),
980
+ createVNode(_component_a_button, { onClick: saveV3SFC }, {
981
+ default: withCtx(() => [
982
+ createTextVNode(toDisplayString(unref(i18nt)("designer.hint.saveVue3SFC")), 1)
983
+ ]),
984
+ _: 1
985
+ }),
986
+ createVNode(_component_a_button, {
987
+ onClick: _cache[21] || (_cache[21] = ($event) => showExportSFCDialogFlag.value = false)
988
+ }, {
989
+ default: withCtx(() => [
990
+ createTextVNode(toDisplayString(unref(i18nt)("designer.hint.closePreview")), 1)
991
+ ]),
992
+ _: 1
993
+ })
994
+ ])
995
+ ]),
996
+ default: withCtx(() => [
997
+ createVNode(_component_a_tabs, {
998
+ type: "border-card",
999
+ class: "no-box-shadow no-padding",
1000
+ activeKey: activeSFCTab.value,
1001
+ "onUpdate:activeKey": _cache[20] || (_cache[20] = ($event) => activeSFCTab.value = $event)
1002
+ }, {
1003
+ default: withCtx(() => [
1004
+ createVNode(_component_a_tab_pane, {
1005
+ tab: "Vue2",
1006
+ key: "vue2"
1007
+ }, {
1008
+ default: withCtx(() => [
1009
+ createVNode(unref(CodeEditor), {
1010
+ mode: "html",
1011
+ readonly: true,
1012
+ modelValue: sfcCode.value,
1013
+ "onUpdate:modelValue": _cache[18] || (_cache[18] = ($event) => sfcCode.value = $event),
1014
+ "user-worker": false
1015
+ }, null, 8, ["modelValue"])
1016
+ ]),
1017
+ _: 1
1018
+ }),
1019
+ createVNode(_component_a_tab_pane, {
1020
+ tab: "Vue3",
1021
+ key: "vue3"
1022
+ }, {
1023
+ default: withCtx(() => [
1024
+ createVNode(unref(CodeEditor), {
1025
+ mode: "html",
1026
+ readonly: true,
1027
+ modelValue: sfcCodeV3.value,
1028
+ "onUpdate:modelValue": _cache[19] || (_cache[19] = ($event) => sfcCodeV3.value = $event),
1029
+ "user-worker": false
1030
+ }, null, 8, ["modelValue"])
1031
+ ]),
1032
+ _: 1
1033
+ })
1034
+ ]),
1035
+ _: 1
1036
+ }, 8, ["activeKey"])
1037
+ ]),
1038
+ _: 1
1039
+ }, 8, ["title", "visible"])) : createCommentVNode("", true)
1040
+ ]);
1041
+ };
1042
+ }
1043
+ });
1044
+ export {
1045
+ _sfc_main as default
1046
+ };