agilebuilder-ui 1.1.29-dingtalkphoto2 → 1.1.30-sit1

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 (56) hide show
  1. package/lib/{401-0311919c.js → 401-4b9f051d.js} +1 -1
  2. package/lib/{404-d3325636.js → 404-402fd5f3.js} +1 -1
  3. package/lib/{iframe-page-9bc89f23.js → iframe-page-018ff792.js} +1 -1
  4. package/lib/{index-3a58d4bf.js → index-c0c9807f.js} +19187 -19200
  5. package/lib/super-ui.css +1 -1
  6. package/lib/super-ui.js +1 -1
  7. package/lib/super-ui.umd.cjs +94 -91
  8. package/lib/{tab-content-iframe-index-b9af19c7.js → tab-content-iframe-index-bccda4d3.js} +1 -1
  9. package/lib/{tab-content-index-c4821c60.js → tab-content-index-fc423676.js} +25 -24
  10. package/lib/{tache-subprocess-history-35f638e5.js → tache-subprocess-history-30f0a85b.js} +1 -1
  11. package/package.json +1 -1
  12. package/packages/dynamic-source-select/src/dynamic-source-select.vue +5 -1
  13. package/packages/fs-preview/src/fs-preview.vue +75 -53
  14. package/packages/fs-upload-list/src/fs-upload-list.vue +12 -10
  15. package/packages/fs-upload-new/src/file-upload-mobile/file-upload-app.vue +17 -9
  16. package/packages/fs-upload-new/src/file-upload-mobile/file-upload-browser.vue +6 -3
  17. package/packages/fs-upload-new/src/file-upload-mobile/file-upload.vue +1 -1
  18. package/packages/multipart-upload/src/multipart-upload-form.vue +12 -7
  19. package/packages/organization-input/src/organization-input.vue +1 -1
  20. package/packages/row-form/operation.vue +1 -0
  21. package/packages/super-grid/src/components/mobile-table-card.jsx +12 -2
  22. package/packages/super-grid/src/custom-formatter.js +10 -7
  23. package/packages/super-grid/src/dynamic-input.vue +12 -11
  24. package/packages/super-grid/src/index-column.vue +24 -15
  25. package/packages/super-grid/src/normal-column-content.vue +19 -2
  26. package/packages/super-grid/src/normal-column.vue +14 -13
  27. package/packages/super-grid/src/row-operation.vue +49 -27
  28. package/packages/super-grid/src/selection-column.vue +2 -12
  29. package/packages/super-grid/src/super-grid.vue +28 -8
  30. package/packages/workflow-history-list/src/workflow-history-list.vue +101 -160
  31. package/src/components/Affix/index.vue +19 -12
  32. package/src/i18n/langs/cn.js +293 -294
  33. package/src/i18n/langs/en.js +292 -304
  34. package/src/permission.js +1 -1
  35. package/src/store/modules/table.js +1 -0
  36. package/src/styles/_layout-custom-properties.scss +2 -2
  37. package/src/styles/display-layout.scss +16 -4
  38. package/src/styles/index.scss +17 -16
  39. package/src/styles/theme/black/index.scss +6 -0
  40. package/src/styles/theme/dark-blue/button.scss +6 -6
  41. package/src/styles/theme/dark-blue/card.scss +11 -15
  42. package/src/styles/theme/dark-blue/index.scss +1 -4
  43. package/src/styles/theme/dark-blue/sidebar.scss +0 -5
  44. package/src/styles/theme/default.scss +1 -1
  45. package/src/styles/theme/green/button.scss +2 -2
  46. package/src/styles/theme/green/index.scss +1 -4
  47. package/src/styles/theme/green/sidebar.scss +0 -5
  48. package/src/styles/theme/ocean-blue/button.scss +2 -2
  49. package/src/styles/theme/ocean-blue/index.scss +1 -4
  50. package/src/styles/theme/ocean-blue/sidebar.scss +0 -5
  51. package/src/styles/theme/tiffany-blue-mobile/button.scss +2 -2
  52. package/src/styles/theme/tiffany-blue-mobile/index.scss +1 -5
  53. package/src/styles/theme/tiffany-blue-mobile/sidebar.scss +0 -5
  54. package/src/utils/iframe-communicator.js +222 -222
  55. package/src/utils/jump-page-utils.js +1 -1
  56. package/vite.config.js +2 -1
@@ -1,5 +1,5 @@
1
1
  import { openBlock as r, createElementBlock as t, createCommentVNode as o } from "vue";
2
- import { _ as s } from "./index-3a58d4bf.js";
2
+ import { _ as s } from "./index-c0c9807f.js";
3
3
  const u = ["src"], f = s({ data: () => ({ src: null }), watch: { $route(n, c) {
4
4
  this.src = this.$route.query.src;
5
5
  } }, mounted() {
@@ -1,5 +1,5 @@
1
- import { _ as f, c as $, g as x, b as P, s as h, m as M, M as O, i as I } from "./index-3a58d4bf.js";
2
- import { resolveComponent as u, openBlock as l, createBlock as b, withCtx as g, createVNode as v, TransitionGroup as L, createElementBlock as p, Fragment as T, renderList as C, createElementVNode as m, toDisplayString as w, normalizeClass as S, createCommentVNode as y } from "vue";
1
+ import { _ as f, c as _, g as x, b as P, s as h, m as M, M as O, i as I } from "./index-c0c9807f.js";
2
+ import { resolveComponent as u, openBlock as d, createBlock as b, withCtx as g, createVNode as v, TransitionGroup as L, createElementBlock as p, Fragment as T, renderList as C, createElementVNode as m, toDisplayString as w, normalizeClass as S, createCommentVNode as y } from "vue";
3
3
  const k = { class: "no-redirect" }, A = f({ name: "Breadcrumb", data: () => ({ levelList: null }), computed: { levelListWithTitle() {
4
4
  return this.levelList.filter((e) => e.meta.title !== void 0 && e.meta.title !== null);
5
5
  } }, watch: { $route() {
@@ -8,23 +8,24 @@ const k = { class: "no-redirect" }, A = f({ name: "Breadcrumb", data: () => ({ l
8
8
  this.getBreadcrumb();
9
9
  }, methods: { getBreadcrumb() {
10
10
  const { params: e } = this.$route;
11
+ this.$route.matched;
11
12
  let t = this.$route.matched.filter((a) => {
12
13
  if (a.name) {
13
- var r = $(a.path);
14
+ var r = _(a.path);
14
15
  return a.path = r(e), !0;
15
16
  }
16
17
  });
17
18
  if (t) {
18
19
  let a;
19
- const r = x(), o = window.$vueApp.config.globalProperties.systemNameObj;
20
- o && (a = o[r]), t = [{ path: "/", redirect: "noredirect", meta: { title: a } }].concat(t);
21
- const s = P.get("selectMenu"), d = window.$vueApp.config.globalProperties._selectMenu;
22
- let n;
23
- if (d ? n = d : s && (n = s), n) {
24
- const i = n.substring(0, n.indexOf("~~")), c = n.substring(n.indexOf("~~") + 2);
20
+ const r = x(), n = window.$vueApp.config.globalProperties.systemNameObj;
21
+ n && (a = n[r]), t = [{ path: "/", redirect: "noredirect", meta: { title: a } }].concat(t);
22
+ const s = P.get("selectMenu"), l = window.$vueApp.config.globalProperties._selectMenu;
23
+ let o;
24
+ if (l ? o = l : s && (o = s), o) {
25
+ const i = o.substring(0, o.indexOf("~~")), c = o.substring(o.indexOf("~~") + 2);
25
26
  if (t && t.length > 0) {
26
- const _ = t[t.length - 1];
27
- this.isShouldConcatLastMenu(c, i, _) && t.push({ path: i, meta: { title: c } });
27
+ const $ = t[t.length - 1];
28
+ this.isShouldConcatLastMenu(c, i, $) && t.push({ path: i, meta: { title: c } });
28
29
  } else
29
30
  t.push({ path: i, meta: { title: c } });
30
31
  }
@@ -34,9 +35,9 @@ const k = { class: "no-redirect" }, A = f({ name: "Breadcrumb", data: () => ({ l
34
35
  return !(!this.isTitleNotEqual(e, a) || !this.isPathNotEqual(t, a));
35
36
  }, isTitleNotEqual(e, t) {
36
37
  return !(!e || !t.meta || e === t.meta.title || e === this.$t(t.meta.title));
37
- }, isPathNotEqual: (e, t) => !(!e || !t.path || e === t.path) } }, [["render", function(e, t, a, r, o, s) {
38
- const d = u("el-breadcrumb-item"), n = u("el-breadcrumb");
39
- return l(), b(n, { class: "app-breadcrumb", separator: ">" }, { default: g(() => [v(L, { name: "breadcrumb", tag: "span" }, { default: g(() => [(l(!0), p(T, null, C(s.levelListWithTitle, (i, c) => (l(), b(d, { key: i.path + "-" + c }, { default: g(() => [m("span", k, w(e.$t(i.meta.title)), 1)]), _: 2 }, 1024))), 128))]), _: 1 })]), _: 1 });
38
+ }, isPathNotEqual: (e, t) => !(!e || !t.path || e === t.path) } }, [["render", function(e, t, a, r, n, s) {
39
+ const l = u("el-breadcrumb-item"), o = u("el-breadcrumb");
40
+ return d(), b(o, { class: "app-breadcrumb", separator: ">" }, { default: g(() => [v(L, { name: "breadcrumb", tag: "span" }, { default: g(() => [(d(!0), p(T, null, C(s.levelListWithTitle, (i, c) => (d(), b(l, { key: i.path + "-" + c }, { default: g(() => [m("span", k, w(e.$t(i.meta.title)), 1)]), _: 2 }, 1024))), 128))]), _: 1 })]), _: 1 });
40
41
  }], ["__scopeId", "data-v-768a430c"]]), { body: B } = document, E = { watch: { $route(e) {
41
42
  this.device === "mobile" && this.sidebar.opened && h.dispatch("closeSidebar", { withoutAnimation: !1 });
42
43
  } }, beforeMount() {
@@ -75,8 +76,8 @@ const k = { class: "no-redirect" }, A = f({ name: "Breadcrumb", data: () => ({ l
75
76
  if (e.routePath === "/iframe-page/page") {
76
77
  let a, r = "";
77
78
  if (e.routeQuery)
78
- for (const o in e.routeQuery)
79
- o === "src" ? a = e.routeQuery[o] : r += o + "=" + e.routeQuery[o] + "&";
79
+ for (const n in e.routeQuery)
80
+ n === "src" ? a = e.routeQuery[n] : r += n + "=" + e.routeQuery[n] + "&";
80
81
  a && (t = a), r && (t += "?" + r);
81
82
  } else if (e.routePath.indexOf("http:") < 0 && e.routePath.indexOf("https:") < 0 && (t = "#"), t = e.routePath.indexOf("?") >= 0 ? t + e.routePath + "&" : t + e.routePath + "?", e.routeQuery)
82
83
  for (const a in e.routeQuery)
@@ -86,16 +87,16 @@ const k = { class: "no-redirect" }, A = f({ name: "Breadcrumb", data: () => ({ l
86
87
  if (e && typeof e.data == "string" && e.data === "refreshTabContent")
87
88
  window.location.reload();
88
89
  else if (e && typeof e.data == "string" && e.data.indexOf("loginTimeout") >= 0)
89
- window.parent.postMessage(e.data, "*");
90
+ e.data, window.parent.postMessage(e.data, "*");
90
91
  else if (e && typeof e.data == "string" && e.data === "return-to-system-list") {
91
92
  this.$store.commit("clear_tabs");
92
93
  let t = "_IS_APP_LIST";
93
94
  const a = window.sessionStorage.getItem(t);
94
95
  a !== void 0 && a === "true" ? this.$router.push({ path: "/mms/apps/list" }) : this.$router.push({ path: "/mms/systems/list" });
95
96
  }
96
- } } }, V = ["src"], Q = { key: 1, class: "default-page-tip" }, R = { class: "default-page-tip-msg" }, q = { class: "default-page-tip-item" }, z = { class: "default-page-tip-item" }, j = { class: "main-container" }, W = f({ name: "Layout", components: { Menubar: O, Breadcrumb: A, TabContent: f(N, [["render", function(e, t, a, r, o, s) {
97
- const d = u("el-tab-pane"), n = u("el-tabs");
98
- return e.openTab && e.openTab.length > 0 ? (l(), b(n, { key: 0, modelValue: s.activeIndex, "onUpdate:modelValue": t[0] || (t[0] = (i) => s.activeIndex = i), class: "nav-tab menu-tab-container", closable: "", onTabRemove: s.closeSelectedTag }, { default: g(() => [(l(!0), p(T, null, C(e.openTab, (i) => (l(), b(d, { key: i.code, label: i.name, name: i.code }, { default: g(() => [m("iframe", { ref_for: !0, ref: "tabMainContent", src: s.getFullPath(i), class: "tab-main-content", name: "tab-main-content", frameborder: "0" }, null, 8, V)]), _: 2 }, 1032, ["label", "name"]))), 128))]), _: 1 }, 8, ["modelValue", "onTabRemove"])) : (l(), p("div", Q, [m("div", R, [m("div", q, w(o.defaultPageTipCn), 1), m("div", z, w(o.defaultPageTipEn), 1)])]));
97
+ } } }, V = ["src"], Q = { key: 1, class: "default-page-tip" }, R = { class: "default-page-tip-msg" }, q = { class: "default-page-tip-item" }, z = { class: "default-page-tip-item" }, j = { class: "main-container" }, W = f({ name: "Layout", components: { Menubar: O, Breadcrumb: A, TabContent: f(N, [["render", function(e, t, a, r, n, s) {
98
+ const l = u("el-tab-pane"), o = u("el-tabs");
99
+ return e.openTab && e.openTab.length > 0 ? (d(), b(o, { key: 0, modelValue: s.activeIndex, "onUpdate:modelValue": t[0] || (t[0] = (i) => s.activeIndex = i), class: "nav-tab menu-tab-container", closable: "", onTabRemove: s.closeSelectedTag }, { default: g(() => [(d(!0), p(T, null, C(e.openTab, (i) => (d(), b(l, { key: i.code, label: i.name, name: i.code }, { default: g(() => [m("iframe", { ref_for: !0, ref: "tabMainContent", src: s.getFullPath(i), class: "tab-main-content", name: "tab-main-content", frameborder: "0" }, null, 8, V)]), _: 2 }, 1032, ["label", "name"]))), 128))]), _: 1 }, 8, ["modelValue", "onTabRemove"])) : (d(), p("div", Q, [m("div", R, [m("div", q, w(n.defaultPageTipCn), 1), m("div", z, w(n.defaultPageTipEn), 1)])]));
99
100
  }], ["__scopeId", "data-v-a5252a92"]]) }, mixins: [E], data: () => ({ showMenuRoute: I(), systemCode: null }), computed: { sidebar() {
100
101
  return this.$store.state.app.sidebar;
101
102
  }, device() {
@@ -103,12 +104,12 @@ const k = { class: "no-redirect" }, A = f({ name: "Breadcrumb", data: () => ({ l
103
104
  }, classObj() {
104
105
  return { hideSidebar: !this.sidebar.opened, openSidebar: this.sidebar.opened, withoutAnimation: this.sidebar.withoutAnimation, mobile: this.device === "mobile" };
105
106
  } }, created() {
106
- this.systemCode = window.$vueApp.config.globalProperties.customSystem;
107
+ this.systemCode = window.$vueApp.config.globalProperties.customSystem, this.systemCode;
107
108
  }, methods: { handleClickOutside() {
108
109
  this.$store.dispatch("closeSidebar", { withoutAnimation: !1 });
109
- } } }, [["render", function(e, t, a, r, o, s) {
110
- const d = u("menubar"), n = u("breadcrumb"), i = u("tab-content");
111
- return l(), p("div", { class: S([s.classObj, "app-wrapper"]) }, [s.device === "mobile" && s.sidebar.opened ? (l(), p("div", { key: 0, class: "drawer-bg", onClick: t[0] || (t[0] = (...c) => s.handleClickOutside && s.handleClickOutside(...c)) })) : y("", !0), v(d, { "system-code": o.systemCode, collapse: !0, class: "sidebar-container" }, null, 8, ["system-code"]), m("div", j, [o.showMenuRoute ? (l(), b(n, { key: 0 })) : y("", !0), v(i)])], 2);
110
+ } } }, [["render", function(e, t, a, r, n, s) {
111
+ const l = u("menubar"), o = u("breadcrumb"), i = u("tab-content");
112
+ return d(), p("div", { class: S([s.classObj, "app-wrapper"]) }, [s.device === "mobile" && s.sidebar.opened ? (d(), p("div", { key: 0, class: "drawer-bg", onClick: t[0] || (t[0] = (...c) => s.handleClickOutside && s.handleClickOutside(...c)) })) : y("", !0), v(l, { "system-code": n.systemCode, collapse: !0, class: "sidebar-container" }, null, 8, ["system-code"]), m("div", j, [n.showMenuRoute ? (d(), b(o, { key: 0 })) : y("", !0), v(i)])], 2);
112
113
  }], ["__scopeId", "data-v-5c0a6bf6"]]);
113
114
  export {
114
115
  W as default
@@ -1,5 +1,5 @@
1
1
  import { resolveComponent as t, openBlock as a, createElementBlock as s, createElementVNode as y, createVNode as l, withCtx as r, createTextVNode as n, toDisplayString as p, createCommentVNode as c, createBlock as h } from "vue";
2
- import { _ as I } from "./index-3a58d4bf.js";
2
+ import { _ as I } from "./index-c0c9807f.js";
3
3
  const g = { style: { "padding-bottom": "10px" } }, k = { key: 0, class: "graphDiv" }, N = I({ name: "TacheSubprocessHistory", data: () => ({ type: "graph", workflowId: null }), created() {
4
4
  const o = this.$route.query.workflowId;
5
5
  o && (this.workflowId = parseInt(o));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agilebuilder-ui",
3
- "version": "1.1.29-dingtalkphoto2",
3
+ "version": "1.1.30-sit1",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "main": "./lib/super-ui.js",
@@ -262,7 +262,11 @@ export default {
262
262
  initWatchValue = this.entity[attr]
263
263
  }
264
264
  this.$watch('entity.' + attr, function (newValue, oldValue) {
265
- this.watchAttrValueChange(newValue)
265
+ if (newValue) {
266
+ this.watchAttrValueChange(newValue)
267
+ } else {
268
+ this.watchAttrValueChange('')
269
+ }
266
270
  // this.inputValue('')
267
271
  const items = this.optionItems.filter((item) => item[this.valueAttribute] === newValue)
268
272
  if (!items) {
@@ -1,11 +1,25 @@
1
1
  <template>
2
2
  <div v-if="label">
3
- <div class="list-file" @click="previewMuti()" @dblclick="dblclickEvent">
3
+ <div class="list-file" @dblclick="dblclickEvent">
4
4
  <el-icon><el-icon-paperclip /></el-icon>
5
5
  {{ label }}
6
- <el-icon class="annex-cell"><el-icon-view /></el-icon>
6
+ <el-tooltip :content="$t('imatrixUIPublicModel.preview')">
7
+ <el-icon style="cursor: pointer; color: #409eff; padding-right: 5px" @click="previewMuti()"
8
+ ><el-icon-view
9
+ /></el-icon>
10
+ </el-tooltip>
11
+ <el-tooltip :content="$t('imatrixUIPublicModel.download')">
12
+ <el-icon style="cursor: pointer; color: #409eff" @click="donwloadViewFile()">
13
+ <el-icon-download />
14
+ </el-icon>
15
+ </el-tooltip>
7
16
  </div>
8
- <el-image-viewer v-if="showPreviewSingleImage" teleported :url-list="[previewImageInfo.src]" @close="showPreviewSingleImage = false" />
17
+ <el-image-viewer
18
+ v-if="showPreviewSingleImage"
19
+ teleported
20
+ :url-list="[previewImageInfo.src]"
21
+ @close="showPreviewSingleImage = false"
22
+ />
9
23
  <el-dialog
10
24
  layout-mobile="bottom"
11
25
  :append-to-body="true"
@@ -26,7 +40,7 @@
26
40
  <el-table-column prop="showName" show-overflow-tooltip />
27
41
  <el-table-column width="80" align="center">
28
42
  <template v-slot="scope">
29
- <div style="margin: -10px 0;">
43
+ <div style="margin: -10px 0">
30
44
  <el-tooltip :content="$t('imatrixUIPublicModel.preview')" class="item" effect="dark" placement="top">
31
45
  <el-button type="text" @click="previewSingle(scope.row)">
32
46
  <el-icon style="cursor: pointer"><el-icon-view /></el-icon>
@@ -95,36 +109,15 @@ export default {
95
109
  showPreviewMulti: false,
96
110
  previewImageInfo: {},
97
111
  fileList: [],
98
- downloadable: true
112
+ downloadable: true,
113
+ keyValueParam: {}
99
114
  }
100
115
  },
101
116
  created() {
117
+ this.keyValueParam = this.analysisFileSetObj(this.fileSetObj, this.isSql)
102
118
  if (this.fileSetObj && this.fileSetObj.downloadable !== undefined && this.fileSetObj.downloadable !== null) {
103
119
  this.downloadable = this.fileSetObj.downloadable
104
120
  }
105
- // let fileList = []
106
- // if (this.column.fileSet && this.column.fileSet !== '' && (this.column.componentType === 'annex' || this.column.componentType === 'multipartUpload')) {
107
- // const fileSetObj = JSON.parse(this.column.fileSet)
108
- // const keyValueParam = this.analysisFileSetObj(fileSetObj, this.isSql)
109
- // if (fileSetObj && fileSetObj.multiple) {
110
- // if (fileSetObj.childAnnexDataTableCode) {
111
- // // const lowerStr = fileSetObj.childAnnexDataTableCode.toLowerCase()
112
- // const fileArr = this.entity[this.column.prop]
113
- // // 子表
114
- // fileList = otherFilesToStandard(fileSetObj, keyValueParam, fileArr, null)
115
- // } else {
116
- // const filesStringData = {
117
- // 'showName': getEntityFieldValue(this.entity, keyValueParam.showName),
118
- // 'serverPath': getEntityFieldValue(this.entity, keyValueParam.serverPath)
119
- // }
120
- // fileList = otherFilesToStandard(fileSetObj, keyValueParam, null, filesStringData)
121
- // }
122
- // } else {
123
- // const showName = getEntityFieldValue(this.entity, keyValueParam.showName)
124
- // const serverPath = getEntityFieldValue(this.entity, keyValueParam.serverPath)
125
- // fileList.push(packageFile(showName, serverPath))
126
- // }
127
- // }
128
121
  },
129
122
  methods: {
130
123
  dblclickEvent() {
@@ -132,7 +125,6 @@ export default {
132
125
  },
133
126
  previewSingle(fileInfo) {
134
127
  fileInfo = packageFile(fileInfo.showName, fileInfo.serverPath)
135
- debugger
136
128
  if (isImage(fileInfo.showName)) {
137
129
  this.previewImageInfo = fileInfo
138
130
  this.showPreviewSingleImage = true
@@ -140,29 +132,57 @@ export default {
140
132
  this.previewDoc(fileInfo)
141
133
  }
142
134
  },
143
- previewMuti() {
144
- const keyValueParam = this.analysisFileSetObj(this.fileSetObj, this.isSql)
135
+ donwloadViewFile() {
136
+ const { showName, serverPath } = this.getShowNameAndUuidKey()
137
+ if (serverPath) {
138
+ const uuids = serverPath.split(',')
139
+ if (uuids.length > 1) {
140
+ this.previewMuti()
141
+ } else {
142
+ // 单个文件
143
+ this.download(showName, serverPath)
144
+ }
145
+ }
146
+ },
147
+ getShowNameAndUuidKey() {
148
+ let showName = null
145
149
  let serverPath = null
146
150
  if (this.fileInfo.showName && this.fileInfo.serverPath) {
147
151
  serverPath = this.fileInfo.serverPath
152
+ showName = this.fileInfo.showName
148
153
  } else if (this.entity) {
149
- serverPath = getEntityFieldValue(this.entity, keyValueParam.serverPath)
154
+ serverPath = getEntityFieldValue(this.entity, this.keyValueParam.serverPath)
155
+ showName = getEntityFieldValue(this.entity, this.keyValueParam.showName)
150
156
  }
157
+ return {
158
+ showName: showName,
159
+ serverPath: serverPath
160
+ }
161
+ },
162
+ previewMuti() {
163
+ const { showName, serverPath } = this.getShowNameAndUuidKey()
151
164
  if (serverPath) {
152
165
  const uuids = serverPath.split(',')
153
- const baseURL = window.$vueApp.config.globalProperties.baseURL
154
- const baseAPI = window.$vueApp.config.globalProperties.baseAPI
155
- let tempAction = baseURL + '/common/fs-upload/search-file-names'
156
- if (isPlateSys(window.$vueApp.config.globalProperties.systemCode)) {
157
- tempAction = baseAPI + '/api/search-file-names'
158
- }
159
- this.$http.post(tempAction, uuids).then((result) => {
160
- this.fileList = []
161
- uuids.forEach((uuid) => {
162
- this.fileList.push({ showName: result[uuid], serverPath: uuid })
166
+ if (uuids.length > 1) {
167
+ const baseURL = window.$vueApp.config.globalProperties.baseURL
168
+ const baseAPI = window.$vueApp.config.globalProperties.baseAPI
169
+ let tempAction = baseURL + '/common/fs-upload/search-file-names'
170
+ if (isPlateSys(window.$vueApp.config.globalProperties.systemCode)) {
171
+ tempAction = baseAPI + '/api/search-file-names'
172
+ }
173
+ this.$http.post(tempAction, uuids).then((result) => {
174
+ this.fileList = []
175
+ uuids.forEach((uuid) => {
176
+ this.fileList.push({ showName: result[uuid], serverPath: uuid })
177
+ })
178
+ this.showPreviewMulti = true
163
179
  })
164
- this.showPreviewMulti = true
165
- })
180
+ } else {
181
+ this.previewSingle({
182
+ showName: showName,
183
+ serverPath: serverPath
184
+ })
185
+ }
166
186
  }
167
187
 
168
188
  // var that = this
@@ -214,19 +234,22 @@ export default {
214
234
  }
215
235
  },
216
236
  donwloadFile(index, fileList) {
217
- const token = getToken()
218
237
  const showName = this.formatFileName(this.fileList[index].showName)
219
238
  if (!this.fileList[index].src) {
220
- let url = window.$vueApp.config.globalProperties.baseURL + '/common/super-form/downloads?jwt=' + token
221
- if (isPlateSys(window.$vueApp.config.globalProperties.systemCode)) {
222
- url = window.$vueApp.config.globalProperties.baseAPI + '/component/super-form/downloads?jwt=' + token
223
- }
224
- const src = url + '&showName=' + encodeURI(showName) + '&serverPath=' + this.fileList[index].serverPath
225
- window.open(src)
239
+ this.download(showName, this.fileList[index].serverPath)
226
240
  } else {
227
241
  window.open(this.fileList[index].src)
228
242
  }
229
243
  },
244
+ download(showName, serverPath) {
245
+ const token = getToken()
246
+ let url = window.$vueApp.config.globalProperties.baseURL + '/common/super-form/downloads?jwt=' + token
247
+ if (isPlateSys(window.$vueApp.config.globalProperties.systemCode)) {
248
+ url = window.$vueApp.config.globalProperties.baseAPI + '/component/super-form/downloads?jwt=' + token
249
+ }
250
+ const src = url + '&showName=' + encodeURI(showName) + '&serverPath=' + serverPath
251
+ window.open(src)
252
+ },
230
253
  analysisFileSetObj(fileSetObj, isSql) {
231
254
  let showName = ''
232
255
  let serverPath = ''
@@ -267,5 +290,4 @@ export default {
267
290
  }
268
291
  </script>
269
292
 
270
- <style lang="scss" scoped>
271
- </style>
293
+ <style lang="scss" scoped></style>
@@ -10,16 +10,18 @@
10
10
  :readonly="true"
11
11
  >
12
12
  <template v-slot:append>
13
- <el-button v-if="!disabled" size="default" @click="openAnnexUpload">
14
- <template v-slot:icon>
15
- <el-icon color="black" :size="16"><Upload /></el-icon>
16
- </template>
17
- </el-button>
18
- <el-button size="default" @click="preview">
19
- <template v-slot:icon>
20
- <el-icon color="black" :size="16"><ZoomIn /></el-icon>
21
- </template>
22
- </el-button>
13
+ <div class="group-link-btn-main">
14
+ <el-link v-if="!disabled" type="info" :underline="false" @click="openAnnexUpload">
15
+ <template v-slot:icon>
16
+ <el-icon :size="14"><Upload /></el-icon>
17
+ </template>
18
+ </el-link>
19
+ <el-link size="default" type="info" :underline="false" @click="preview">
20
+ <template v-slot:icon>
21
+ <el-icon :size="14"><ZoomIn /></el-icon>
22
+ </template>
23
+ </el-link>
24
+ </div>
23
25
  </template>
24
26
  </el-input>
25
27
 
@@ -153,13 +153,21 @@ const baseURLVal = ref(baseURL)
153
153
  const baseAPI = window.$vueApp.config.globalProperties.baseAPI
154
154
  const fileUploadRef = ref(null)
155
155
  const emits = defineEmits(['remove', 'uploadend'])
156
-
156
+ const sourceType = ref(['album', 'camera'])
157
+ if (props.openCameraOrChoosePhoto) {
158
+ if (props.openCameraOrChoosePhoto === 'openCamera') {
159
+ sourceType.value = ['camera']
160
+ } else if (props.openCameraOrChoosePhoto === 'openChoosePhoto') {
161
+ sourceType.value = ['album']
162
+ }
163
+ }
157
164
  // 表示点击了选择文件按钮
158
165
  function pickBrowserFiles() {
159
166
  // alert('pickBrowserFiles')
160
167
  console.log('---点击了选择文件按钮---')
161
168
  let message = {
162
169
  type: 'pickFiles',
170
+ sourceType: sourceType.value,
163
171
  multiple: props.multiple,
164
172
  componentId: props.componentId,
165
173
  componentName: props.componentName,
@@ -172,15 +180,15 @@ function pickBrowserFiles() {
172
180
  // message.myCustom = 'window.parent.parent.parent'
173
181
  // // 加上uniapp中的iframe,一共是4层iframe嵌套时.最多支持4层iframe嵌套。
174
182
  // window.parent.parent.parent.postMessage(JSON.stringify(message), '*')
175
- // } else
176
- if(window.parent && window.parent.parent) {
177
- console.log('---点击了选择文件按钮222---')
178
- message.myCustom = 'window.parent.parent'
183
+ // } else
184
+ if (window.parent && window.parent.parent) {
185
+ console.log('---点击了选择文件按钮222---')
186
+ message.myCustom = 'window.parent.parent'
179
187
  // 加上uniapp中的iframe,一共是3层iframe嵌套时
180
188
  window.parent.parent.postMessage(JSON.stringify(message), '*')
181
189
  } else {
182
- console.log('---点击了选择文件按钮444---')
183
- message.myCustom = 'window.parent'
190
+ console.log('---点击了选择文件按钮444---')
191
+ message.myCustom = 'window.parent'
184
192
  window.parent.postMessage(JSON.stringify(message), '*')
185
193
  }
186
194
  }
@@ -243,7 +251,7 @@ function uploadFileSuccess(files) {
243
251
  }
244
252
  }
245
253
  console.log('uploadFileSuccess111111----fileListResult.value=', JSON.stringify(fileListResult.value))
246
-
254
+
247
255
  fileUploadRef.value.changeFileList(fileListResult.value)
248
256
  // this.isUploading = false
249
257
  emits('uploadend', fileListResult.value)
@@ -256,7 +264,7 @@ function removeFile(param) {
256
264
  emits('remove', { rmFiles: [file], serverFiles: fileListResult.value, index: param.index })
257
265
  }
258
266
  }
259
- defineExpose({pickFileDone,uploadFileDone})
267
+ defineExpose({ pickFileDone, uploadFileDone })
260
268
  </script>
261
269
 
262
270
  <style lang="scss" scoped></style>
@@ -21,7 +21,7 @@
21
21
  <input
22
22
  ref="fileRef"
23
23
  type="file"
24
- :multiple="multiple ? true : false"
24
+ :multiple="multipleUpload"
25
25
  name="file"
26
26
  :accept="myAccept"
27
27
  style="display: none"
@@ -34,7 +34,7 @@
34
34
  <input
35
35
  ref="fileRef"
36
36
  type="file"
37
- :multiple="multiple ? true : false"
37
+ :multiple="multipleUpload"
38
38
  capture="environment"
39
39
  name="file"
40
40
  :accept="myAccept"
@@ -181,7 +181,10 @@ const props = defineProps({
181
181
  default: () => {}
182
182
  }
183
183
  })
184
-
184
+ const multipleUpload = ref<string | null>(null)
185
+ if (props.multiple) {
186
+ multipleUpload.value = 'multiple'
187
+ }
185
188
  const isDingTalk = ref(false)
186
189
  const authSource = window.localStorage.getItem('auth_source')
187
190
  if (authSource && authSource === 'dingtalk') {
@@ -224,7 +224,7 @@ function removeFile({ rmFiles, serverFiles, newFiles }) {
224
224
  // 更新字段的值
225
225
  ElMessage({
226
226
  showClose: true,
227
- message: t('fileUpload.updateSuccess'),
227
+ message: t('fsUpload.updateSuccess'),
228
228
  type: 'success'
229
229
  })
230
230
  })
@@ -9,13 +9,18 @@
9
9
  :readonly="true"
10
10
  >
11
11
  <template v-slot:append>
12
- <el-button
13
- v-if="!disabled"
14
- :icon="ElIconUpload2"
15
- size="default"
16
- @click="openAnnexUpload"
17
- />
18
- <el-button :icon="ElIconZoomIn" size="default" @click="preview"/>
12
+ <div class="group-link-btn-main">
13
+ <el-link v-if="!disabled" type="info" :underline="false" @click="openAnnexUpload">
14
+ <template v-slot:icon>
15
+ <el-icon :size="14"><ElIconUpload2 /></el-icon>
16
+ </template>
17
+ </el-link>
18
+ <el-link size="default" type="info" :underline="false" @click="preview">
19
+ <template v-slot:icon>
20
+ <el-icon :size="14"><ElIconZoomIn /></el-icon>
21
+ </template>
22
+ </el-link>
23
+ </div>
19
24
  </template>
20
25
  </el-input>
21
26
 
@@ -581,6 +581,6 @@ export default {
581
581
  </script>
582
582
  <style lang="css">
583
583
  .organization-input .el-input-group__append {
584
- padding: 0 10px;
584
+ padding: 0 10px 0 0;
585
585
  }
586
586
  </style>
@@ -4,6 +4,7 @@
4
4
  v-for="(operation, operationIndex) in column.operations"
5
5
  :key="operationIndex"
6
6
  :class="isShowForm ? '' : 'cell--span'"
7
+ class="buttons-row-operation-span"
7
8
  >
8
9
  <el-dropdown
9
10
  v-if="operation.isGroup"
@@ -1,11 +1,12 @@
1
1
  /** @jsxImportSource vue */
2
- import { defineComponent, ref, computed, watch, defineEmits } from 'vue';
2
+ import { defineComponent, ref, computed, watch, defineEmits, onUnmounted } from 'vue';
3
3
  import { ElCard, ElDrawer, ElTag,ElDescriptions, ElDescriptionsItem, ElButton, ElIcon, ElCheckbox, ElCheckboxGroup, ElBreadcrumb, ElLink, ElEmpty, ElDivider } from 'element-plus';
4
4
  import NormalColumnContent from '../normal-column-content.vue';
5
5
  import CardView from '../../../../src/components/Card';
6
6
  import Scrollbar from '../../../../src/components/Scrollbar';
7
7
  import store from '../store';
8
8
  import { apisMixin } from '../apis'
9
+ import eventBus from '../eventBus'
9
10
 
10
11
  import { ArrowLeft, Bottom, CirclePlus, Loading, Tickets } from '@element-plus/icons-vue';
11
12
  // import { $emit, $off, $on } from '@/utils/gogocodeTransfer'
@@ -84,6 +85,9 @@ export default defineComponent({
84
85
  // 子表打开历史数据
85
86
  const childrenBreadcrumbData = ref([]);
86
87
 
88
+ // 是否自定义 开启 Add
89
+ const customizeAddColumnBtn = ref(undefined)
90
+
87
91
  const setPaginationList = (data) => {
88
92
  if (props.isStackingPaginatedData) {
89
93
  paginationList.value[(props.currentPage ?? 1) - 1] = data
@@ -101,9 +105,11 @@ export default defineComponent({
101
105
  const isFormSubTable = gridParams?.options?.isFormSubTable ?? false
102
106
  const subTableCanAdd = gridParams?.options?.subTableCanAdd ?? false
103
107
  const isOperation = componentDatas.value?.some(({ prop }) => ['operation'].includes(prop))
104
- return showOperationButton && isFormSubTable && subTableCanAdd && isOperation
108
+ return customizeAddColumnBtn ?? (showOperationButton && isFormSubTable && subTableCanAdd && isOperation)
105
109
  })
106
110
 
111
+ eventBus.$on('change-add-state',(is)=> customizeAddColumnBtn.value = is)
112
+
107
113
  // 列表数据
108
114
  const dataList = computed(() => {
109
115
  if (props.isStackingPaginatedData) {
@@ -327,6 +333,10 @@ export default defineComponent({
327
333
  }
328
334
  }
329
335
 
336
+ onUnmounted(() => {
337
+ eventBus.$off('change-add-state')
338
+ })
339
+
330
340
  const getAddBtn = (Fun) => addColumnBtn.value && <ElButton type="primary" plain icon={<CirclePlus />} onClick={() => Fun?.(attrs.listCode)}>Add</ElButton>
331
341
 
332
342
  return {
@@ -306,21 +306,24 @@ const customFormatter = {
306
306
  ).then((openPageParams) => {
307
307
  console.log('doClickHyperLink----openPageParams2222----', openPageParams)
308
308
  if (openPageParams) {
309
+ let openPageParamsResult = {}
309
310
  // 点击列表组件中某元素弹出的页面
310
311
  if (jumpPageSetting && typeof jumpPageSetting === 'string' && jumpPageSetting !== '') {
311
312
  jumpPageSetting = JSON.parse(jumpPageSetting)
312
313
  }
313
- Object.assign(openPageParams, jumpPageSetting)
314
+ Object.assign(openPageParamsResult, jumpPageSetting)
315
+ // 解析结果中的值的优先级高于 跳转配置中的值
316
+ Object.assign(openPageParamsResult, openPageParams)
314
317
  // console.log('clickHyperLink--openPageParams22===', openPageParams, '----jumpPageSetting===', jumpPageSetting)
315
- openPageParams._position = 'list'
316
- openPageParams._listCode = listCode
317
- openPageParams._rowIndex = rowIndex
318
+ openPageParamsResult._position = 'list'
319
+ openPageParamsResult._listCode = listCode
320
+ openPageParamsResult._rowIndex = rowIndex
318
321
  // 行编辑的记录
319
- openPageParams.row = row
322
+ openPageParamsResult.row = row
320
323
  // 列点击时列属性名
321
- openPageParams._columnProp = column.prop
324
+ openPageParamsResult._columnProp = column.prop
322
325
  // 通知父页面弹出页面
323
- this.$emit('open-page', openPageParams)
326
+ this.$emit('open-page', openPageParamsResult)
324
327
  }
325
328
  })
326
329
  },