@kp-ui/lowcode 1.0.33 → 1.0.35
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 +2 -2
- 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/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/http-editor/index.vue2.js +1 -2
- package/src/hooks/useFilePreview.js +15 -5
- package/src/utils/request/fmtHttpParams.js +23 -7
- package/styles/style.css +1 -1
- package/types/src/components/CustomRender/components/AttachmentRender.d.ts.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- package/types/src/components/form-designer/widget-panel/advanced/diy-compontent.d.ts.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- package/types/src/components/form-render/index.d.ts +2 -2
- 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/utils/request/handleAxiosError.js +0 -31
- package/src/utils/request/http.js +0 -88
|
@@ -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__1746769978374__");
|
|
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__1746769978374__";
|
|
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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kp-ui/lowcode",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.35",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"types": "main.d.ts",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@element-plus/icons-vue": "^0.2.4",
|
|
12
|
-
"@kp-ui/tool": "
|
|
12
|
+
"@kp-ui/tool": "1.0.20",
|
|
13
13
|
"animate.css": "^4.1.1",
|
|
14
14
|
"ant-design-vue": "3.2.20",
|
|
15
15
|
"axios": "^1.3.5",
|
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
|
}
|
|
@@ -142,7 +142,11 @@ const fieldMixin = {
|
|
|
142
142
|
if (this.field.type !== "picture-upload" && this.field.type !== "file-upload" || this.designState === true) {
|
|
143
143
|
return;
|
|
144
144
|
}
|
|
145
|
-
|
|
145
|
+
console.log("fieldModel", this.fieldModel);
|
|
146
|
+
if (this.fieldModel) {
|
|
147
|
+
if (typeof this.fieldModel === "string") {
|
|
148
|
+
this.fieldModel = JSON.parse(this.fieldModel);
|
|
149
|
+
}
|
|
146
150
|
if (Array.isArray(this.fieldModel)) {
|
|
147
151
|
this.fileList = deepClone(this.fieldModel);
|
|
148
152
|
} else {
|
|
@@ -558,6 +562,9 @@ const fieldMixin = {
|
|
|
558
562
|
return this.$refs["fieldEditor"];
|
|
559
563
|
},
|
|
560
564
|
showFileList(list) {
|
|
565
|
+
if (typeof list === "string") {
|
|
566
|
+
list = JSON.parse(list);
|
|
567
|
+
}
|
|
561
568
|
if (!isArray(list)) return [];
|
|
562
569
|
const res = list.map((item, uid) => ({
|
|
563
570
|
...item,
|
|
@@ -92,7 +92,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
92
92
|
_: 1
|
|
93
93
|
}, 8, ["designer", "field", "rules", "design-state", "parent-widget", "parent-list", "index-of-parent-list", "sub-form-row-index", "sub-form-col-index", "sub-form-row-id"])) : createCommentVNode("", true);
|
|
94
94
|
}
|
|
95
|
-
const fileUploadWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-
|
|
95
|
+
const fileUploadWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-7804efd1"]]);
|
|
96
96
|
export {
|
|
97
97
|
fileUploadWidget as default
|
|
98
98
|
};
|
|
@@ -6,6 +6,7 @@ import fieldMixin from "./fieldMixin.js";
|
|
|
6
6
|
import SvgIcon from "../../../svg-icon/index.vue.js";
|
|
7
7
|
import { useFilesystemApi } from "../../../../api/useFilesystemApi/filesystem/index.js";
|
|
8
8
|
import { PaperClipOutlined } from "@ant-design/icons-vue";
|
|
9
|
+
import { getUserInfo } from "@kp-ui/tool";
|
|
9
10
|
const filesystemApi = useFilesystemApi();
|
|
10
11
|
const _sfc_main = {
|
|
11
12
|
name: "file-upload-widget",
|
|
@@ -97,19 +98,11 @@ const _sfc_main = {
|
|
|
97
98
|
this.unregisterFromRefList();
|
|
98
99
|
},
|
|
99
100
|
methods: {
|
|
100
|
-
initFieldModel() {
|
|
101
|
-
const {
|
|
102
|
-
fieldModel
|
|
103
|
-
} = this.field;
|
|
104
|
-
if (fieldModel) {
|
|
105
|
-
console.log(fieldModel);
|
|
106
|
-
}
|
|
107
|
-
},
|
|
108
101
|
iconRender({
|
|
109
|
-
file
|
|
102
|
+
file
|
|
110
103
|
}) {
|
|
111
104
|
try {
|
|
112
|
-
const fieldTypes =
|
|
105
|
+
const fieldTypes = file.fileName.slice(file.fileName.lastIndexOf("."));
|
|
113
106
|
if ([".xls", ".xlsx"].includes(fieldTypes.toLowerCase())) {
|
|
114
107
|
return createVNode(SvgIcon, {
|
|
115
108
|
"icon-class": "excel"
|
|
@@ -129,9 +122,6 @@ const _sfc_main = {
|
|
|
129
122
|
}
|
|
130
123
|
return createVNode(PaperClipOutlined, null, null);
|
|
131
124
|
},
|
|
132
|
-
// onPreview(file) {
|
|
133
|
-
// filesystemApi.downloadFileObject({ fileCode: file.fileCode });
|
|
134
|
-
// },
|
|
135
125
|
handleCancel() {
|
|
136
126
|
this.previewVisible = false;
|
|
137
127
|
},
|
|
@@ -140,39 +130,39 @@ const _sfc_main = {
|
|
|
140
130
|
return this.fileList[fileCode];
|
|
141
131
|
} else {
|
|
142
132
|
const fileUrlObj = await filesystemApi.getPreviewFileUrl({
|
|
143
|
-
fileCode
|
|
133
|
+
fileCode
|
|
144
134
|
});
|
|
145
|
-
fileUrlObj.data.value;
|
|
135
|
+
const url = fileUrlObj.data.value;
|
|
136
|
+
this.fileList[fileCode] = url;
|
|
137
|
+
return url;
|
|
146
138
|
}
|
|
147
139
|
},
|
|
148
|
-
async handlePreview(
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
const url = await this.getFileUrl(file2.fileCode);
|
|
140
|
+
async handlePreview(file) {
|
|
141
|
+
if ([".png", ".jpg", ".jpeg", ".gif"].includes(file.fileType)) {
|
|
142
|
+
const url = await this.getFileUrl(file.fileCode);
|
|
152
143
|
this.previewImage = url;
|
|
153
144
|
this.previewVisible = true;
|
|
154
|
-
this.previewTitle =
|
|
145
|
+
this.previewTitle = file.fileName;
|
|
155
146
|
} else {
|
|
156
|
-
const localUserInfo = getUserInfo();
|
|
157
|
-
const employeeId = (_a = localUserInfo == null ? void 0 : localUserInfo.loginInfo) == null ? void 0 : _a.employeeId;
|
|
158
147
|
const {
|
|
159
148
|
tokenId,
|
|
160
|
-
tenantId
|
|
161
|
-
|
|
149
|
+
tenantId,
|
|
150
|
+
employeeId
|
|
151
|
+
} = getUserInfo();
|
|
162
152
|
const doMain = getDoMain();
|
|
163
153
|
const obj = {
|
|
164
154
|
tenantId,
|
|
165
155
|
tokenId,
|
|
166
156
|
employeeId,
|
|
167
|
-
fileCode:
|
|
157
|
+
fileCode: file.fileCode
|
|
168
158
|
};
|
|
169
159
|
window.open(`${doMain}/view-file/preview?${queryString.stringify(obj)}`);
|
|
170
160
|
}
|
|
171
161
|
},
|
|
172
|
-
handleOnBeforeUpload(
|
|
162
|
+
handleOnBeforeUpload(file) {
|
|
173
163
|
if (!!this.field.options.onBeforeUpload) {
|
|
174
164
|
const bfFunc = new Function("file", this.field.options.onBeforeUpload);
|
|
175
|
-
const result = bfFunc.call(this,
|
|
165
|
+
const result = bfFunc.call(this, file);
|
|
176
166
|
if (typeof result === "boolean") {
|
|
177
167
|
return result;
|
|
178
168
|
} else {
|
|
@@ -181,8 +171,8 @@ const _sfc_main = {
|
|
|
181
171
|
}
|
|
182
172
|
return true;
|
|
183
173
|
},
|
|
184
|
-
removeFile(
|
|
185
|
-
const findInx = this.fileList.findIndex((item) => item.uid ===
|
|
174
|
+
removeFile(file) {
|
|
175
|
+
const findInx = this.fileList.findIndex((item) => item.uid === file.uid);
|
|
186
176
|
this.fileList.splice(findInx, 1);
|
|
187
177
|
this.handleChangeEvent(this.fileList);
|
|
188
178
|
},
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import i18n from "../../utils/i18n.js";
|
|
2
2
|
import CodeEditor from "../code-editor/index.vue.js";
|
|
3
3
|
import { isArray } from "lodash-es";
|
|
4
|
-
import { getHttp } from "
|
|
4
|
+
import { getHttp, getLocat, replaceVars } from "@kp-ui/tool";
|
|
5
5
|
import CodeModalEditor from "../code-editor/code-modal-editor.vue.js";
|
|
6
|
-
import { getLocat, replaceVars } from "@kp-ui/tool";
|
|
7
6
|
const _sfc_main = {
|
|
8
7
|
name: "http-editor",
|
|
9
8
|
inheritAttrs: false,
|
|
@@ -7,6 +7,9 @@ const getDoMain = () => {
|
|
|
7
7
|
};
|
|
8
8
|
function useFilePreview() {
|
|
9
9
|
const fileUrlCache = ref(/* @__PURE__ */ new Map());
|
|
10
|
+
const previewVisible = ref(false);
|
|
11
|
+
const previewTitle = ref("");
|
|
12
|
+
const previewImage = ref("");
|
|
10
13
|
const filesystemApi = useFilesystemApi();
|
|
11
14
|
const getPreviewFileUrl = async (fileCode) => {
|
|
12
15
|
if (fileUrlCache.value.has(fileCode)) {
|
|
@@ -26,11 +29,8 @@ function useFilePreview() {
|
|
|
26
29
|
return Promise.all(res);
|
|
27
30
|
};
|
|
28
31
|
const handlePreview = async (file) => {
|
|
29
|
-
var _a, _b;
|
|
30
32
|
if (![".png", ".jpg", ".jpeg", ".gif"].includes(file.fileType || "")) {
|
|
31
|
-
const
|
|
32
|
-
const employeeId = (_a = localUserInfo == null ? void 0 : localUserInfo.loginInfo) == null ? void 0 : _a.employeeId;
|
|
33
|
-
const { tokenId, tenantId } = (_b = localUserInfo == null ? void 0 : localUserInfo.loginInfo) == null ? void 0 : _b.userToken;
|
|
33
|
+
const { tokenId, tenantId, employeeId } = getUserInfo();
|
|
34
34
|
const doMain = getDoMain();
|
|
35
35
|
const obj = {
|
|
36
36
|
tenantId,
|
|
@@ -38,8 +38,11 @@ function useFilePreview() {
|
|
|
38
38
|
employeeId,
|
|
39
39
|
fileCode: file.fileCode
|
|
40
40
|
};
|
|
41
|
-
console.log({ doMain });
|
|
42
41
|
window.open(`${doMain}/view-file/preview?${queryString.stringify(obj)}`);
|
|
42
|
+
} else {
|
|
43
|
+
previewTitle.value = file.fileName;
|
|
44
|
+
previewImage.value = await getPreviewFileUrl(file.fileCode);
|
|
45
|
+
previewVisible.value = true;
|
|
43
46
|
}
|
|
44
47
|
};
|
|
45
48
|
const handleDownload = async (file) => {
|
|
@@ -49,8 +52,15 @@ function useFilePreview() {
|
|
|
49
52
|
console.error("下载文件失败:", error);
|
|
50
53
|
}
|
|
51
54
|
};
|
|
55
|
+
const handleCancel = () => {
|
|
56
|
+
previewVisible.value = false;
|
|
57
|
+
};
|
|
52
58
|
return {
|
|
59
|
+
previewVisible,
|
|
60
|
+
previewTitle,
|
|
53
61
|
fileUrlCache,
|
|
62
|
+
previewImage,
|
|
63
|
+
handleCancel,
|
|
54
64
|
handleDownload,
|
|
55
65
|
handlePreview,
|
|
56
66
|
getPreviewData,
|
|
@@ -1,5 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { getHttp, getLocat } from "@kp-ui/tool";
|
|
2
|
+
const replaceVars = (sendParams, paramsMap) => {
|
|
3
|
+
Object.entries(sendParams).forEach(([key, value]) => {
|
|
4
|
+
if (key) {
|
|
5
|
+
Object.keys(value).forEach((field) => {
|
|
6
|
+
if (paramsMap[field] !== void 0) {
|
|
7
|
+
sendParams[key][field] = paramsMap[field];
|
|
8
|
+
} else {
|
|
9
|
+
sendParams[key][field] = null;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
return sendParams;
|
|
15
|
+
};
|
|
3
16
|
async function fmtHttpParams(req, params = {}) {
|
|
4
17
|
const request = getHttp();
|
|
5
18
|
const { data, vfCtx, ...args } = params;
|
|
@@ -7,13 +20,16 @@ async function fmtHttpParams(req, params = {}) {
|
|
|
7
20
|
if (!http.url) return;
|
|
8
21
|
const paramsMap = { ...getLocat(), ...data, ...vfCtx, ...args };
|
|
9
22
|
const method = http.method || "get";
|
|
10
|
-
|
|
11
|
-
...http,
|
|
12
|
-
method,
|
|
23
|
+
let sendParams = {
|
|
13
24
|
params: http.method === "get" ? { ...http.params, ...data } : { ...http.params },
|
|
14
25
|
data: http.method === "post" ? { ...http.data, ...data } : { ...http.data }
|
|
15
|
-
}
|
|
16
|
-
|
|
26
|
+
};
|
|
27
|
+
sendParams = replaceVars(sendParams, paramsMap);
|
|
28
|
+
let p = {
|
|
29
|
+
...http,
|
|
30
|
+
method,
|
|
31
|
+
...sendParams
|
|
32
|
+
};
|
|
17
33
|
if (dataReqHandlerCode) {
|
|
18
34
|
const dataReqHandlerCodeFn = new Function("data", dataReqHandlerCode);
|
|
19
35
|
p = dataReqHandlerCodeFn.call(this, p);
|