@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.
Files changed (65) hide show
  1. package/_virtual/virtual_svg-icons-register.js +2 -2
  2. package/package.json +2 -2
  3. package/render.js +44 -18
  4. package/src/api/useFilesystemApi/filesystem/index.js +1 -1
  5. package/src/components/CustomRender/components/AttachmentRender.vue.js +1 -1
  6. package/src/components/CustomRender/components/AttachmentRender.vue2.js +38 -55
  7. package/src/components/form-designer/form-widget/field-widget/fieldMixin.js +8 -1
  8. package/src/components/form-designer/form-widget/field-widget/file-upload-widget.vue.js +1 -1
  9. package/src/components/form-designer/form-widget/field-widget/file-upload-widget.vue2.js +19 -29
  10. package/src/components/http-editor/index.vue2.js +1 -2
  11. package/src/hooks/useFilePreview.js +15 -5
  12. package/src/utils/request/fmtHttpParams.js +23 -7
  13. package/styles/style.css +1 -1
  14. package/types/src/components/CustomRender/components/AttachmentRender.d.ts.map +1 -1
  15. package/types/src/components/form-designer/widget-panel/advanced/attachment-render.d.ts.map +1 -1
  16. package/types/src/components/form-designer/widget-panel/advanced/bpmn-editor.d.ts.map +1 -1
  17. package/types/src/components/form-designer/widget-panel/advanced/cascader.d.ts.map +1 -1
  18. package/types/src/components/form-designer/widget-panel/advanced/code-editor.d.ts.map +1 -1
  19. package/types/src/components/form-designer/widget-panel/advanced/diy-compontent.d.ts.map +1 -1
  20. package/types/src/components/form-designer/widget-panel/advanced/file-upload.d.ts.map +1 -1
  21. package/types/src/components/form-designer/widget-panel/advanced/rich-editor.d.ts.map +1 -1
  22. package/types/src/components/form-designer/widget-panel/advanced/slot.d.ts.map +1 -1
  23. package/types/src/components/form-designer/widget-panel/advanced/tree-select.d.ts.map +1 -1
  24. package/types/src/components/form-designer/widget-panel/basicFields/button.d.ts.map +1 -1
  25. package/types/src/components/form-designer/widget-panel/basicFields/checkbox.d.ts.map +1 -1
  26. package/types/src/components/form-designer/widget-panel/basicFields/color.d.ts.map +1 -1
  27. package/types/src/components/form-designer/widget-panel/basicFields/date.d.ts.map +1 -1
  28. package/types/src/components/form-designer/widget-panel/basicFields/dateRange.d.ts.map +1 -1
  29. package/types/src/components/form-designer/widget-panel/basicFields/divider.d.ts.map +1 -1
  30. package/types/src/components/form-designer/widget-panel/basicFields/dropdown.d.ts.map +1 -1
  31. package/types/src/components/form-designer/widget-panel/basicFields/htmlText.d.ts.map +1 -1
  32. package/types/src/components/form-designer/widget-panel/basicFields/input.d.ts.map +1 -1
  33. package/types/src/components/form-designer/widget-panel/basicFields/number.d.ts.map +1 -1
  34. package/types/src/components/form-designer/widget-panel/basicFields/radio.d.ts.map +1 -1
  35. package/types/src/components/form-designer/widget-panel/basicFields/rate.d.ts.map +1 -1
  36. package/types/src/components/form-designer/widget-panel/basicFields/select.d.ts.map +1 -1
  37. package/types/src/components/form-designer/widget-panel/basicFields/slider.d.ts.map +1 -1
  38. package/types/src/components/form-designer/widget-panel/basicFields/staticText.d.ts.map +1 -1
  39. package/types/src/components/form-designer/widget-panel/basicFields/switch.d.ts.map +1 -1
  40. package/types/src/components/form-designer/widget-panel/basicFields/textarea.d.ts.map +1 -1
  41. package/types/src/components/form-designer/widget-panel/basicFields/time.d.ts.map +1 -1
  42. package/types/src/components/form-designer/widget-panel/basicFields/timeRange.d.ts.map +1 -1
  43. package/types/src/components/form-designer/widget-panel/business/department-select.d.ts.map +1 -1
  44. package/types/src/components/form-designer/widget-panel/business/material-select.d.ts.map +1 -1
  45. package/types/src/components/form-designer/widget-panel/business/operation-select.d.ts.map +1 -1
  46. package/types/src/components/form-designer/widget-panel/business/post-select.d.ts.map +1 -1
  47. package/types/src/components/form-designer/widget-panel/business/project-group-select.d.ts.map +1 -1
  48. package/types/src/components/form-designer/widget-panel/business/project-select.d.ts.map +1 -1
  49. package/types/src/components/form-designer/widget-panel/business/user-select.d.ts.map +1 -1
  50. package/types/src/components/form-designer/widget-panel/containers/data-table.d.ts.map +1 -1
  51. package/types/src/components/form-designer/widget-panel/containers/grid-col.d.ts.map +1 -1
  52. package/types/src/components/form-designer/widget-panel/containers/grid-sub-form.d.ts.map +1 -1
  53. package/types/src/components/form-designer/widget-panel/containers/grid.d.ts.map +1 -1
  54. package/types/src/components/form-designer/widget-panel/containers/tab.d.ts.map +1 -1
  55. package/types/src/components/form-designer/widget-panel/containers/vf-box.d.ts.map +1 -1
  56. package/types/src/components/form-designer/widget-panel/containers/vf-collapse.d.ts.map +1 -1
  57. package/types/src/components/form-designer/widget-panel/containers/vf-dialog.d.ts.map +1 -1
  58. package/types/src/components/form-render/index.d.ts +2 -2
  59. package/types/src/components/form-render/index.d.ts.map +1 -1
  60. package/types/src/hooks/useFilePreview.d.ts +4 -0
  61. package/types/src/hooks/useFilePreview.d.ts.map +1 -1
  62. package/types/src/utils/request/http.d.ts +2 -3
  63. package/types/src/utils/request/http.d.ts.map +1 -1
  64. package/src/utils/request/handleAxiosError.js +0 -31
  65. 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("__svg__icons__dom__1746607584219__");
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 = "__svg__icons__dom__1746607584219__";
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.33",
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": "^1.0.10",
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(this.formConfig.cssCode, !!this.previewState ? "" : this.formId);
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$("fieldChange", (fieldName, newValue, oldValue, subFormName, subFormRowIndex) => {
325
- this.handleFieldDataChange(fieldName, newValue, oldValue, subFormName, subFormRowIndex);
326
- this.$emit(
327
- "formChange",
328
- fieldName,
329
- newValue,
330
- oldValue,
331
- this.formDataModel,
332
- subFormName,
333
- subFormRowIndex
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(this.formJsonObj.widgetList, widgetName, true);
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(this.formJsonObj.widgetList, widgetName, true);
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(curDS, localDsv, this, false, this.$message);
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": "200px" } };
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-20edc56d"]]);
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,4 +1,4 @@
1
- import { getHttp } from "../../../utils/request/http.js";
1
+ import { getHttp } from "@kp-ui/tool";
2
2
  import { saveAs } from "file-saver";
3
3
  const useFilesystemApi = () => {
4
4
  const http = getHttp();
@@ -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-412620ec"]]);
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, watch, computed, onMounted, resolveComponent, createElementBlock, createCommentVNode, openBlock, createElementVNode, createVNode, withCtx, Fragment, renderList, createBlock, unref, toDisplayString } from "vue";
2
- import { Image, Button } from "ant-design-vue";
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: "image-preview" };
12
- const _hoisted_4 = { class: "file-name" };
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 { getPreviewData, handlePreview, handleDownload } = useFilePreview();
20
+ const {
21
+ previewVisible,
22
+ previewTitle,
23
+ previewImage,
24
+ handleCancel,
25
+ handlePreview,
26
+ handleDownload
27
+ } = useFilePreview();
21
28
  const attachmentList = ref([]);
22
- ref(false);
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
- );
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 _component_a_image_preview_group = resolveComponent("a-image-preview-group");
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
- createElementVNode("div", _hoisted_3, [
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", _hoisted_4, toDisplayString(file.fileName), 1),
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
- if (!!this.fieldModel) {
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-a39df179"]]);
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: file2
102
+ file
110
103
  }) {
111
104
  try {
112
- const fieldTypes = file2.fileName.slice(file2.fileName.lastIndexOf("."));
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: file.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(file2) {
149
- var _a, _b;
150
- if ([".png", ".jpg", ".jpeg", ".gif"].includes(file2.fileType)) {
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 = file2.fileName;
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
- } = (_b = localUserInfo == null ? void 0 : localUserInfo.loginInfo) == null ? void 0 : _b.userToken;
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: file2.fileCode
157
+ fileCode: file.fileCode
168
158
  };
169
159
  window.open(`${doMain}/view-file/preview?${queryString.stringify(obj)}`);
170
160
  }
171
161
  },
172
- handleOnBeforeUpload(file2) {
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, file2);
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(file2) {
185
- const findInx = this.fileList.findIndex((item) => item.uid === file2.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 "../../utils/request/http.js";
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 localUserInfo = getUserInfo();
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 { getLocat, replaceVars } from "@kp-ui/tool";
2
- import { getHttp } from "./http.js";
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
- const sendParams = JSON.stringify({
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
- let p = JSON.parse(replaceVars(sendParams, paramsMap));
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);