@kp-ui/lowcode 1.0.32 → 1.0.34
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/package.json +27 -26
- package/render.js +44 -18
- package/src/api/useFilesystemApi/filesystem/index.js +1 -1
- package/src/components/CustomRender/components/AttachmentRender.vue.js +1 -1
- package/src/components/CustomRender/components/AttachmentRender.vue2.js +38 -55
- package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue.js +103 -234
- package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue2.js +236 -0
- package/src/components/form-designer/form-widget/container-widget/{grid-widget.vue2.js → grid-widget.vue.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/{table-widget.vue2.js → table-widget.vue.js} +1 -1
- package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue.js +156 -126
- package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue2.js +128 -0
- package/src/components/form-designer/form-widget/field-widget/fieldMixin.js +8 -1
- 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 +19 -29
- package/src/components/form-designer/form-widget/index.vue.js +4 -4
- package/src/components/form-designer/toolbar-panel/index.vue.js +3 -2
- package/src/components/form-designer/widget-panel/advanced/attachment-render.js +1 -1
- package/src/components/form-designer/widget-panel/advanced/bpmn-editor.js +1 -1
- package/src/components/form-designer/widget-panel/advanced/cascader.js +1 -1
- package/src/components/form-designer/widget-panel/advanced/code-editor.js +1 -1
- package/src/components/form-designer/widget-panel/advanced/diy-compontent.js +1 -1
- package/src/components/form-designer/widget-panel/advanced/slot.js +1 -1
- package/src/components/form-designer/widget-panel/advanced/tree-select.js +1 -1
- package/src/components/form-designer/widget-panel/basicFields/button.js +1 -1
- package/src/components/form-designer/widget-panel/basicFields/checkbox.js +1 -1
- package/src/components/form-designer/widget-panel/basicFields/color.js +1 -1
- package/src/components/form-designer/widget-panel/basicFields/date.js +1 -1
- package/src/components/form-designer/widget-panel/basicFields/dateRange.js +1 -1
- package/src/components/form-designer/widget-panel/basicFields/divider.js +1 -1
- package/src/components/form-designer/widget-panel/basicFields/dropdown.js +1 -1
- package/src/components/form-designer/widget-panel/basicFields/htmlText.js +1 -1
- package/src/components/form-designer/widget-panel/basicFields/input.js +1 -1
- package/src/components/form-designer/widget-panel/basicFields/number.js +1 -1
- package/src/components/form-designer/widget-panel/basicFields/radio.js +1 -1
- package/src/components/form-designer/widget-panel/basicFields/rate.js +1 -1
- package/src/components/form-designer/widget-panel/basicFields/select.js +1 -1
- package/src/components/form-designer/widget-panel/basicFields/slider.js +1 -1
- package/src/components/form-designer/widget-panel/basicFields/staticText.js +1 -1
- package/src/components/form-designer/widget-panel/basicFields/switch.js +1 -1
- package/src/components/form-designer/widget-panel/basicFields/textarea.js +1 -1
- package/src/components/form-designer/widget-panel/basicFields/time.js +1 -1
- package/src/components/form-designer/widget-panel/basicFields/timeRange.js +1 -1
- package/src/components/form-designer/widget-panel/business/department-select.js +1 -1
- package/src/components/form-designer/widget-panel/business/material-select.js +1 -1
- package/src/components/form-designer/widget-panel/business/operation-select.js +1 -1
- package/src/components/form-designer/widget-panel/business/post-select.js +1 -1
- package/src/components/form-designer/widget-panel/business/project-group-select.js +1 -1
- package/src/components/form-designer/widget-panel/business/project-select.js +1 -1
- package/src/components/form-designer/widget-panel/business/user-select.js +1 -1
- package/src/components/form-designer/widget-panel/containers/data-table.js +1 -1
- package/src/components/form-designer/widget-panel/containers/grid-col.js +1 -1
- package/src/components/form-designer/widget-panel/containers/grid-sub-form.js +1 -1
- package/src/components/form-designer/widget-panel/containers/grid.js +1 -1
- package/src/components/form-designer/widget-panel/containers/tab-pane.js +1 -1
- package/src/components/form-designer/widget-panel/containers/tab.js +1 -1
- package/src/components/form-designer/widget-panel/containers/vf-box.js +1 -1
- package/src/components/form-designer/widget-panel/containers/vf-collapse.js +1 -1
- package/src/components/form-designer/widget-panel/containers/vf-dialog.js +1 -1
- package/src/components/http-editor/index.vue.js +1 -1
- package/src/components/http-editor/index.vue2.js +1 -2
- package/src/hooks/useFilePreview.js +16 -6
- package/src/utils/request/fmtHttpParams.js +21 -7
- package/src/utils/sfc-generator.js +1 -0
- package/src/utils/util.js +1 -21
- package/styles/style.css +1 -1
- package/types/src/components/CustomRender/components/AttachmentRender.d.ts.map +1 -1
- package/types/src/components/form-render/index.d.ts.map +1 -1
- package/types/src/hooks/useFilePreview.d.ts +4 -0
- package/types/src/hooks/useFilePreview.d.ts.map +1 -1
- package/types/src/utils/request/http.d.ts +2 -3
- package/types/src/utils/request/http.d.ts.map +1 -1
- package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue3.js +0 -105
- package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue4.js +0 -158
- package/src/utils/request/handleAxiosError.js +0 -31
- package/src/utils/request/http.js +0 -88
- package/src/utils/request/useGetUseInfo.js +0 -9
- package/types/src/utils/request/useGetUseInfo.d.ts +0 -23
- package/types/src/utils/request/useGetUseInfo.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__1746762172972__");
|
|
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__1746762172972__";
|
|
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/package.json
CHANGED
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
2
|
+
"name": "@kp-ui/lowcode",
|
|
3
|
+
"version": "1.0.34",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"access": "public"
|
|
6
|
+
},
|
|
7
|
+
"main": "index.js",
|
|
8
|
+
"module": "index.js",
|
|
9
|
+
"types": "main.d.ts",
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"@element-plus/icons-vue": "^0.2.4",
|
|
12
|
+
"@kp-ui/tool": "1.0.20",
|
|
13
|
+
"animate.css": "^4.1.1",
|
|
14
|
+
"ant-design-vue": "3.2.20",
|
|
15
|
+
"axios": "^1.3.5",
|
|
16
|
+
"bpmn-js": "13.2.0",
|
|
17
|
+
"clipboard": "^2.0.8",
|
|
18
|
+
"core-js": "^3.6.5",
|
|
19
|
+
"dayjs": "^1.11.10",
|
|
20
|
+
"file-saver": "^2.0.5",
|
|
21
|
+
"json-bigint": "^1.0.0",
|
|
22
|
+
"lodash-es": "^4.17.21",
|
|
23
|
+
"mitt": "^3.0.0",
|
|
24
|
+
"query-string": "^9.1.1",
|
|
25
|
+
"sortablejs": "1.14.0",
|
|
26
|
+
"vue": "3.3.11",
|
|
27
|
+
"vue3-quill": "^0.2.6"
|
|
28
|
+
}
|
|
28
29
|
}
|
package/render.js
CHANGED
|
@@ -213,7 +213,10 @@ const _sfc_main = {
|
|
|
213
213
|
},
|
|
214
214
|
insertCustomStyleAndScriptNode() {
|
|
215
215
|
if (!!this.formConfig && !!this.formConfig.cssCode) {
|
|
216
|
-
insertCustomCssToHead(
|
|
216
|
+
insertCustomCssToHead(
|
|
217
|
+
this.formConfig.cssCode,
|
|
218
|
+
!!this.previewState ? "" : this.formId
|
|
219
|
+
);
|
|
217
220
|
}
|
|
218
221
|
if (!!this.formConfig && !!this.formConfig.functions) {
|
|
219
222
|
insertGlobalFunctionsToHtml(
|
|
@@ -321,18 +324,27 @@ const _sfc_main = {
|
|
|
321
324
|
},
|
|
322
325
|
addFieldChangeEventHandler() {
|
|
323
326
|
this.off$("fieldChange");
|
|
324
|
-
this.on$(
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
327
|
+
this.on$(
|
|
328
|
+
"fieldChange",
|
|
329
|
+
(fieldName, newValue, oldValue, subFormName, subFormRowIndex) => {
|
|
330
|
+
this.handleFieldDataChange(
|
|
331
|
+
fieldName,
|
|
332
|
+
newValue,
|
|
333
|
+
oldValue,
|
|
334
|
+
subFormName,
|
|
335
|
+
subFormRowIndex
|
|
336
|
+
);
|
|
337
|
+
this.$emit(
|
|
338
|
+
"formChange",
|
|
339
|
+
fieldName,
|
|
340
|
+
newValue,
|
|
341
|
+
oldValue,
|
|
342
|
+
this.formDataModel,
|
|
343
|
+
subFormName,
|
|
344
|
+
subFormRowIndex
|
|
345
|
+
);
|
|
346
|
+
}
|
|
347
|
+
);
|
|
336
348
|
},
|
|
337
349
|
addFieldValidateEventHandler() {
|
|
338
350
|
this.off$("fieldValidation");
|
|
@@ -388,7 +400,11 @@ const _sfc_main = {
|
|
|
388
400
|
}
|
|
389
401
|
},
|
|
390
402
|
findWidgetOfSubFormAndSetDisabled(widgetName, disabledFlag) {
|
|
391
|
-
const widgetSchema = getFieldWidgetByName(
|
|
403
|
+
const widgetSchema = getFieldWidgetByName(
|
|
404
|
+
this.formJsonObj.widgetList,
|
|
405
|
+
widgetName,
|
|
406
|
+
true
|
|
407
|
+
);
|
|
392
408
|
if (!!widgetSchema && !!widgetSchema.options && widgetSchema.options.hasOwnProperty("disabled")) {
|
|
393
409
|
widgetSchema.options.disabled = disabledFlag;
|
|
394
410
|
}
|
|
@@ -408,7 +424,11 @@ const _sfc_main = {
|
|
|
408
424
|
}
|
|
409
425
|
},
|
|
410
426
|
findWidgetOfSubFormAndSetHidden(widgetName, hiddenFlag) {
|
|
411
|
-
const widgetSchema = getFieldWidgetByName(
|
|
427
|
+
const widgetSchema = getFieldWidgetByName(
|
|
428
|
+
this.formJsonObj.widgetList,
|
|
429
|
+
widgetName,
|
|
430
|
+
true
|
|
431
|
+
);
|
|
412
432
|
if (!!widgetSchema && !!widgetSchema.options && widgetSchema.options.hasOwnProperty("hidden")) {
|
|
413
433
|
widgetSchema.options.hidden = hiddenFlag;
|
|
414
434
|
}
|
|
@@ -456,7 +476,13 @@ const _sfc_main = {
|
|
|
456
476
|
overwriteObj(localDsv, this.globalDsv || {});
|
|
457
477
|
let dsResult = null;
|
|
458
478
|
try {
|
|
459
|
-
dsResult = await runDataSourceRequest(
|
|
479
|
+
dsResult = await runDataSourceRequest(
|
|
480
|
+
curDS,
|
|
481
|
+
localDsv,
|
|
482
|
+
this,
|
|
483
|
+
false,
|
|
484
|
+
this.$message
|
|
485
|
+
);
|
|
460
486
|
this.dsResultCache[dsName] = dsResult;
|
|
461
487
|
this.broadcast("FieldWidget", "loadOptionItemsFromDataSet", dsName);
|
|
462
488
|
} catch (err) {
|
|
@@ -903,7 +929,7 @@ const _sfc_main = {
|
|
|
903
929
|
//--------------------- 以上为组件支持外部调用的API方法 end ------------------//
|
|
904
930
|
}
|
|
905
931
|
};
|
|
906
|
-
const _hoisted_1 = { style: { "min-height": "
|
|
932
|
+
const _hoisted_1 = { style: { "min-height": "260px" } };
|
|
907
933
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
908
934
|
const _component_a_form = resolveComponent("a-form");
|
|
909
935
|
const _component_a_spin = resolveComponent("a-spin");
|
|
@@ -975,7 +1001,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
975
1001
|
_: 3
|
|
976
1002
|
}, 8, ["component-size"]);
|
|
977
1003
|
}
|
|
978
|
-
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-
|
|
1004
|
+
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-fe3f93b2"]]);
|
|
979
1005
|
export {
|
|
980
1006
|
index as default
|
|
981
1007
|
};
|
|
@@ -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-3adb70ed"]]);
|
|
5
5
|
export {
|
|
6
6
|
AttachmentRender as default
|
|
7
7
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { defineComponent, ref,
|
|
2
|
-
import {
|
|
1
|
+
import { defineComponent, ref, watchEffect, onMounted, resolveComponent, createElementBlock, createCommentVNode, openBlock, createElementVNode, createVNode, Fragment, renderList, unref, toDisplayString, withCtx } from "vue";
|
|
2
|
+
import { Button } from "ant-design-vue";
|
|
3
3
|
import { DownloadOutlined, EyeOutlined } from "@ant-design/icons-vue";
|
|
4
4
|
import { useFilePreview } from "../../../hooks/useFilePreview.js";
|
|
5
5
|
import FileIcon from "../../svg-icon/FileIcon.js";
|
|
@@ -8,8 +8,8 @@ const _hoisted_1 = {
|
|
|
8
8
|
class: "attachment-render"
|
|
9
9
|
};
|
|
10
10
|
const _hoisted_2 = { class: "file-list" };
|
|
11
|
-
const _hoisted_3 = { class: "
|
|
12
|
-
const _hoisted_4 =
|
|
11
|
+
const _hoisted_3 = { class: "file-name" };
|
|
12
|
+
const _hoisted_4 = ["src"];
|
|
13
13
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
14
14
|
__name: "AttachmentRender",
|
|
15
15
|
props: {
|
|
@@ -17,68 +17,35 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
17
17
|
},
|
|
18
18
|
setup(__props) {
|
|
19
19
|
const props = __props;
|
|
20
|
-
const {
|
|
20
|
+
const {
|
|
21
|
+
previewVisible,
|
|
22
|
+
previewTitle,
|
|
23
|
+
previewImage,
|
|
24
|
+
handleCancel,
|
|
25
|
+
handlePreview,
|
|
26
|
+
handleDownload
|
|
27
|
+
} = useFilePreview();
|
|
21
28
|
const attachmentList = ref([]);
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
);
|
|
44
|
-
const isImageFile = (file) => {
|
|
45
|
-
const imageExtensions = [".jpg", ".jpeg", ".png", ".gif", ".bmp", ".webp"];
|
|
46
|
-
return imageExtensions.some((ext) => file.fileType.toLowerCase().endsWith(ext));
|
|
47
|
-
};
|
|
48
|
-
const fileList = computed(() => {
|
|
49
|
-
return attachmentList.value.filter((file) => !isImageFile(file));
|
|
50
|
-
});
|
|
51
|
-
const imageList = computed(() => {
|
|
52
|
-
return attachmentList.value.filter((file) => isImageFile(file));
|
|
29
|
+
watchEffect(() => {
|
|
30
|
+
if (typeof props.data === "string") {
|
|
31
|
+
attachmentList.value = JSON.parse(props.data);
|
|
32
|
+
} else {
|
|
33
|
+
attachmentList.value = props.data;
|
|
34
|
+
}
|
|
53
35
|
});
|
|
54
36
|
onMounted(() => {
|
|
55
|
-
console.log(121212121);
|
|
56
37
|
});
|
|
57
38
|
return (_ctx, _cache) => {
|
|
58
|
-
const
|
|
39
|
+
const _component_a_modal = resolveComponent("a-modal");
|
|
59
40
|
return attachmentList.value.length ? (openBlock(), createElementBlock("div", _hoisted_1, [
|
|
60
41
|
createElementVNode("div", _hoisted_2, [
|
|
61
|
-
|
|
62
|
-
createVNode(_component_a_image_preview_group, null, {
|
|
63
|
-
default: withCtx(() => [
|
|
64
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(imageList.value, (file) => {
|
|
65
|
-
return openBlock(), createBlock(unref(Image), {
|
|
66
|
-
key: file.fileCode,
|
|
67
|
-
src: file.previewUrl,
|
|
68
|
-
class: "preview-image"
|
|
69
|
-
}, null, 8, ["src"]);
|
|
70
|
-
}), 128))
|
|
71
|
-
]),
|
|
72
|
-
_: 1
|
|
73
|
-
})
|
|
74
|
-
]),
|
|
75
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(fileList.value, (file, index) => {
|
|
42
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(attachmentList.value, (file, index) => {
|
|
76
43
|
return openBlock(), createElementBlock("div", {
|
|
77
44
|
key: index,
|
|
78
45
|
class: "file-item"
|
|
79
46
|
}, [
|
|
80
47
|
createVNode(unref(FileIcon), { file }, null, 8, ["file"]),
|
|
81
|
-
createElementVNode("span",
|
|
48
|
+
createElementVNode("span", _hoisted_3, toDisplayString(file.fileName), 1),
|
|
82
49
|
createVNode(unref(Button), {
|
|
83
50
|
type: "link",
|
|
84
51
|
onClick: () => unref(handleDownload)(file)
|
|
@@ -99,7 +66,23 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
99
66
|
}, 1032, ["onClick"])
|
|
100
67
|
]);
|
|
101
68
|
}), 128))
|
|
102
|
-
])
|
|
69
|
+
]),
|
|
70
|
+
createVNode(_component_a_modal, {
|
|
71
|
+
visible: unref(previewVisible),
|
|
72
|
+
class: "tpf-modal",
|
|
73
|
+
title: unref(previewTitle),
|
|
74
|
+
footer: null,
|
|
75
|
+
onCancel: unref(handleCancel),
|
|
76
|
+
width: "960px"
|
|
77
|
+
}, {
|
|
78
|
+
default: withCtx(() => [
|
|
79
|
+
createElementVNode("img", {
|
|
80
|
+
style: { "width": "100%" },
|
|
81
|
+
src: unref(previewImage)
|
|
82
|
+
}, null, 8, _hoisted_4)
|
|
83
|
+
]),
|
|
84
|
+
_: 1
|
|
85
|
+
}, 8, ["visible", "title", "onCancel"])
|
|
103
86
|
])) : createCommentVNode("", true);
|
|
104
87
|
};
|
|
105
88
|
}
|