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