@kp-ui/lowcode 1.0.30 → 1.0.32
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 +73 -64
- package/src/components/CustomRender/components/AttachmentRender.vue.js +1 -1
- package/src/components/CustomRender/components/AttachmentRender.vue2.js +25 -12
- 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 +234 -104
- package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue3.js +105 -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-item.vue.js +4 -3
- package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue.js +6 -3
- package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue.js +126 -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 +103 -0
- package/src/components/form-designer/form-widget/field-widget/file-upload-widget.vue.js +1 -1
- package/src/components/form-designer/form-widget/field-widget/file-upload-widget.vue2.js +25 -19
- 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 +7 -784
- 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 +24 -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 +4 -3
- package/src/components/form-render/dynamic-dialog.vue.js +7 -2
- package/src/components/form-render/dynamic-drawer.vue.js +5 -2
- package/src/lang/zh-CN.js +4 -5
- package/src/mixins/useDataTableMixin.js +1 -1
- package/src/utils/config.js +0 -2
- 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__1746594346672__");
|
|
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__1746594346672__";
|
|
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,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { resolveComponent, createBlock, openBlock, withCtx, createVNode, createElementVNode, withModifiers, normalizeClass, createElementBlock, Fragment, renderList, resolveDynamicComponent, createSlots, renderSlot, normalizeProps, guardReactiveProps, render, h } 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";
|
|
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";
|
|
15
6
|
import DynamicDialog from "./src/components/form-render/dynamic-dialog.vue.js";
|
|
16
7
|
import DynamicDrawer from "./src/components/form-render/dynamic-drawer.vue.js";
|
|
17
8
|
import { fmtHttpParams } from "./src/utils/request/fmtHttpParams.js";
|
|
18
9
|
/* empty css */
|
|
10
|
+
import _export_sfc from "./_virtual/_plugin-vue_export-helper.js";
|
|
19
11
|
const _sfc_main = {
|
|
20
12
|
name: "VFormRender",
|
|
21
13
|
componentName: "VFormRender",
|
|
@@ -104,6 +96,8 @@ const _sfc_main = {
|
|
|
104
96
|
formDataModel: {
|
|
105
97
|
//
|
|
106
98
|
},
|
|
99
|
+
isLoading: false,
|
|
100
|
+
//是否正在加载中
|
|
107
101
|
widgetRefList: {},
|
|
108
102
|
subFormRefList: {},
|
|
109
103
|
formId: null,
|
|
@@ -153,6 +147,7 @@ const _sfc_main = {
|
|
|
153
147
|
//
|
|
154
148
|
},
|
|
155
149
|
created() {
|
|
150
|
+
this.isLoading = false;
|
|
156
151
|
this.buildFormModel(!this.formJsonObj ? null : this.formJsonObj.widgetList);
|
|
157
152
|
this.initFormObject();
|
|
158
153
|
},
|
|
@@ -161,11 +156,16 @@ const _sfc_main = {
|
|
|
161
156
|
this.initDataSetRequest();
|
|
162
157
|
},
|
|
163
158
|
methods: {
|
|
159
|
+
setLoading(flag) {
|
|
160
|
+
this.isLoading = flag;
|
|
161
|
+
},
|
|
164
162
|
async onFormDetail() {
|
|
165
163
|
var _a;
|
|
166
164
|
const serveList = this.formConfig.serveList;
|
|
167
165
|
if ((_a = serveList.vformDetail.http) == null ? void 0 : _a.url) {
|
|
168
|
-
const res = await fmtHttpParams.call(this, serveList.vformDetail, {
|
|
166
|
+
const res = await fmtHttpParams.call(this, serveList.vformDetail, {
|
|
167
|
+
vfCtx: this.vfCtx
|
|
168
|
+
});
|
|
169
169
|
console.log("res: ", res);
|
|
170
170
|
return res;
|
|
171
171
|
}
|
|
@@ -844,7 +844,7 @@ const _sfc_main = {
|
|
|
844
844
|
formConfig: cloneFormConfigWithoutEventHandler(topFormRef.formConfig)
|
|
845
845
|
};
|
|
846
846
|
const wrapperDivId = generateId() + "";
|
|
847
|
-
const dialogInstance =
|
|
847
|
+
const dialogInstance = h(DynamicDialog, {
|
|
848
848
|
options: dialogCon.options,
|
|
849
849
|
formJson: dFormJson,
|
|
850
850
|
formData: { ...formData },
|
|
@@ -903,70 +903,79 @@ const _sfc_main = {
|
|
|
903
903
|
//--------------------- 以上为组件支持外部调用的API方法 end ------------------//
|
|
904
904
|
}
|
|
905
905
|
};
|
|
906
|
+
const _hoisted_1 = { style: { "min-height": "200px" } };
|
|
906
907
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
907
908
|
const _component_a_form = resolveComponent("a-form");
|
|
909
|
+
const _component_a_spin = resolveComponent("a-spin");
|
|
908
910
|
const _component_a_config_provider = resolveComponent("a-config-provider");
|
|
909
911
|
return openBlock(), createBlock(_component_a_config_provider, {
|
|
910
912
|
"component-size": $options.size,
|
|
911
913
|
input: { autocomplete: "off" }
|
|
912
914
|
}, {
|
|
913
915
|
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
|
-
}, {
|
|
916
|
+
createVNode(_component_a_spin, { spinning: $data.isLoading }, {
|
|
924
917
|
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
|
-
|
|
918
|
+
createElementVNode("div", _hoisted_1, [
|
|
919
|
+
createVNode(_component_a_form, {
|
|
920
|
+
layout: $options.labelPosition,
|
|
921
|
+
class: normalizeClass([[$options.customClass, $data.readModeFlag ? "readonly-mode-form" : ""], "render-form tpf-form"]),
|
|
922
|
+
"label-width": $options.labelWidth,
|
|
923
|
+
"validate-on-rule-change": false,
|
|
924
|
+
model: $data.formDataModel,
|
|
925
|
+
ref: "renderForm",
|
|
926
|
+
onSubmit: _cache[0] || (_cache[0] = withModifiers(() => {
|
|
927
|
+
}, ["prevent"]))
|
|
928
|
+
}, {
|
|
929
|
+
default: withCtx(() => [
|
|
930
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList($options.widgetList, (widget, index2) => {
|
|
931
|
+
return openBlock(), createElementBlock(Fragment, null, [
|
|
932
|
+
"container" === widget.category ? (openBlock(), createBlock(resolveDynamicComponent($options.getContainerWidgetName(widget)), {
|
|
933
|
+
widget,
|
|
934
|
+
key: widget.id,
|
|
935
|
+
"parent-list": $options.widgetList,
|
|
936
|
+
"index-of-parent-list": index2,
|
|
937
|
+
"parent-widget": null
|
|
938
|
+
}, createSlots({ _: 2 }, [
|
|
939
|
+
renderList(Object.keys(_ctx.$slots), (slot) => {
|
|
940
|
+
return {
|
|
941
|
+
name: slot,
|
|
942
|
+
fn: withCtx((scope) => [
|
|
943
|
+
renderSlot(_ctx.$slots, slot, normalizeProps(guardReactiveProps(scope)), void 0, true)
|
|
944
|
+
])
|
|
945
|
+
};
|
|
946
|
+
})
|
|
947
|
+
]), 1032, ["widget", "parent-list", "index-of-parent-list"])) : (openBlock(), createBlock(resolveDynamicComponent($options.getWidgetName(widget)), {
|
|
948
|
+
field: widget,
|
|
949
|
+
"form-model": $data.formDataModel,
|
|
950
|
+
designer: null,
|
|
951
|
+
key: widget.id,
|
|
952
|
+
"parent-list": $options.widgetList,
|
|
953
|
+
"index-of-parent-list": index2,
|
|
954
|
+
"parent-widget": null
|
|
955
|
+
}, createSlots({ _: 2 }, [
|
|
956
|
+
renderList(Object.keys(_ctx.$slots), (slot) => {
|
|
957
|
+
return {
|
|
958
|
+
name: slot,
|
|
959
|
+
fn: withCtx((scope) => [
|
|
960
|
+
renderSlot(_ctx.$slots, slot, normalizeProps(guardReactiveProps(scope)), void 0, true)
|
|
961
|
+
])
|
|
962
|
+
};
|
|
963
|
+
})
|
|
964
|
+
]), 1032, ["field", "form-model", "parent-list", "index-of-parent-list"]))
|
|
965
|
+
], 64);
|
|
966
|
+
}), 256))
|
|
967
|
+
]),
|
|
968
|
+
_: 3
|
|
969
|
+
}, 8, ["layout", "class", "label-width", "model"])
|
|
970
|
+
])
|
|
962
971
|
]),
|
|
963
972
|
_: 3
|
|
964
|
-
}, 8, ["
|
|
973
|
+
}, 8, ["spinning"])
|
|
965
974
|
]),
|
|
966
975
|
_: 3
|
|
967
976
|
}, 8, ["component-size"]);
|
|
968
977
|
}
|
|
969
|
-
const
|
|
978
|
+
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-20edc56d"]]);
|
|
970
979
|
export {
|
|
971
|
-
|
|
980
|
+
index as default
|
|
972
981
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _sfc_main from "./AttachmentRender.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
-
const AttachmentRender = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
4
|
+
const AttachmentRender = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-412620ec"]]);
|
|
5
5
|
export {
|
|
6
6
|
AttachmentRender as default
|
|
7
7
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, ref,
|
|
1
|
+
import { defineComponent, ref, watch, computed, onMounted, resolveComponent, createElementBlock, createCommentVNode, openBlock, createElementVNode, createVNode, withCtx, Fragment, renderList, createBlock, unref, toDisplayString } from "vue";
|
|
2
2
|
import { Image, Button } from "ant-design-vue";
|
|
3
3
|
import { DownloadOutlined, EyeOutlined } from "@ant-design/icons-vue";
|
|
4
4
|
import { useFilePreview } from "../../../hooks/useFilePreview.js";
|
|
@@ -20,17 +20,27 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
20
20
|
const { getPreviewData, handlePreview, handleDownload } = useFilePreview();
|
|
21
21
|
const attachmentList = ref([]);
|
|
22
22
|
ref(false);
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
data =
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
23
|
+
watch(
|
|
24
|
+
() => props.data,
|
|
25
|
+
async (newData) => {
|
|
26
|
+
let data = newData || [];
|
|
27
|
+
if (typeof data === "string") {
|
|
28
|
+
try {
|
|
29
|
+
data = JSON.parse(data);
|
|
30
|
+
} catch (error) {
|
|
31
|
+
console.error("Failed to parse props.data:", error);
|
|
32
|
+
attachmentList.value = [];
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (!Array.isArray(data) || data.length === 0) {
|
|
37
|
+
attachmentList.value = [];
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
attachmentList.value = await getPreviewData(data);
|
|
41
|
+
},
|
|
42
|
+
{ immediate: true }
|
|
43
|
+
);
|
|
34
44
|
const isImageFile = (file) => {
|
|
35
45
|
const imageExtensions = [".jpg", ".jpeg", ".png", ".gif", ".bmp", ".webp"];
|
|
36
46
|
return imageExtensions.some((ext) => file.fileType.toLowerCase().endsWith(ext));
|
|
@@ -41,6 +51,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
41
51
|
const imageList = computed(() => {
|
|
42
52
|
return attachmentList.value.filter((file) => isImageFile(file));
|
|
43
53
|
});
|
|
54
|
+
onMounted(() => {
|
|
55
|
+
console.log(121212121);
|
|
56
|
+
});
|
|
44
57
|
return (_ctx, _cache) => {
|
|
45
58
|
const _component_a_image_preview_group = resolveComponent("a-image-preview-group");
|
|
46
59
|
return attachmentList.value.length ? (openBlock(), createElementBlock("div", _hoisted_1, [
|
|
@@ -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
|
};
|