agilebuilder-ui 1.1.39 → 1.1.40-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 (53) hide show
  1. package/lib/{401-10773a45.js → 401-09411643.js} +1 -1
  2. package/lib/{404-bc7b5bc4.js → 404-78725820.js} +1 -1
  3. package/lib/{iframe-page-593fe033.js → iframe-page-532b68e3.js} +1 -1
  4. package/lib/{index-5276895e.js → index-147b8176.js} +9499 -9462
  5. package/lib/super-ui.css +1 -1
  6. package/lib/super-ui.js +1 -1
  7. package/lib/super-ui.umd.cjs +64 -64
  8. package/lib/{tab-content-iframe-index-12a5a7c2.js → tab-content-iframe-index-ca45a6b8.js} +1 -1
  9. package/lib/{tab-content-index-6901441f.js → tab-content-index-6fe04e7b.js} +1 -1
  10. package/lib/{tache-subprocess-history-8fd8d5f7.js → tache-subprocess-history-61019029.js} +1 -1
  11. package/package.json +1 -1
  12. package/packages/department-tree-inline/src/department-single-tree-inline.vue +3 -1
  13. package/packages/department-user-tree-inline/src/department-user-multiple-tree-inline.vue +5 -1
  14. package/packages/department-user-tree-inline/src/department-user-single-tree-inline.vue +2 -1
  15. package/packages/department-user-tree-inline/src/department-user-tree-multi-service.js +0 -1
  16. package/packages/department-user-tree-mobile/src/department-user-tree-inline-app.vue +3 -1
  17. package/packages/fs-preview/src/fs-preview.vue +202 -65
  18. package/packages/fs-upload-list/src/fs-upload-list.vue +67 -192
  19. package/packages/fs-upload-new/src/fs-button-upload.vue +4 -4
  20. package/packages/fs-upload-new/src/fs-drag-upload.vue +4 -4
  21. package/packages/fs-upload-new/src/fs-preview-new.vue +6 -7
  22. package/packages/fs-upload-new/src/fs-upload-new.vue +13 -13
  23. package/packages/organization-input/src/organization-input.vue +3 -3
  24. package/packages/super-grid/src/components/mobile-table-card.jsx +0 -1
  25. package/packages/super-grid/src/custom-formatter.js +1 -1
  26. package/packages/super-grid/src/dynamic-input.vue +3 -26
  27. package/packages/super-grid/src/normal-column-content.vue +25 -18
  28. package/packages/super-grid/src/row-operation.vue +13 -9
  29. package/packages/super-grid/src/search-form-item.vue +47 -4
  30. package/packages/super-grid/src/search-form-mobile.vue +5 -0
  31. package/packages/super-grid/src/search-form-ordinarySearch.vue +5 -0
  32. package/packages/super-grid/src/search-methods.js +489 -575
  33. package/packages/super-grid/src/super-grid.vue +13 -0
  34. package/packages/utils/organization.ts +56 -40
  35. package/packages/workflow-history-list/src/workflow-history-list.vue +41 -3
  36. package/src/directives/permission/permission.js +7 -1
  37. package/src/i18n/langs/cn.js +10 -3
  38. package/src/i18n/langs/en.js +10 -3
  39. package/src/styles/mixin.scss +2 -2
  40. package/src/styles/table.scss +8 -7
  41. package/src/styles/theme/dark-blue/scrollbar-style.scss +2 -2
  42. package/src/styles/theme/gray/scrollbar-style.scss +2 -2
  43. package/src/styles/theme/green/scrollbar-style.scss +2 -2
  44. package/src/styles/theme/ocean-blue/scrollbar-style.scss +2 -2
  45. package/src/styles/theme/tiffany-blue-mobile/scrollbar-style.scss +2 -2
  46. package/src/utils/file-util.ts +12 -4
  47. package/src/utils/jump-page-utils.js +1 -0
  48. package/src/utils/permission.js +2 -2
  49. package/src/utils/permissionAuth.js +4 -2
  50. package/src/views/dsc-component/Sidebar/Item.vue +3 -3
  51. package/src/views/dsc-component/Sidebar/index.vue +0 -2
  52. package/src/views/layout/components/Menubar/Item.vue +6 -0
  53. package/src/views/layout/components/Menubar/SidebarItem.vue +37 -17
@@ -1,5 +1,5 @@
1
1
  import { openBlock as r, createElementBlock as t, createCommentVNode as o } from "vue";
2
- import { _ as s } from "./index-5276895e.js";
2
+ import { _ as s } from "./index-147b8176.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,4 +1,4 @@
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-5276895e.js";
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-147b8176.js";
2
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 C, renderList as T, 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);
@@ -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-5276895e.js";
2
+ import { _ as I } from "./index-147b8176.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.39",
3
+ "version": "1.1.40-sit1",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "main": "./lib/super-ui.js",
@@ -253,7 +253,9 @@ export default {
253
253
  containBranch: this.containBranch,
254
254
  zhName: department.name,
255
255
  enName: department.enName,
256
- department: department
256
+ department: department,
257
+ leader: department.leader,
258
+ leaderName: department.leaderName
257
259
  }
258
260
  this.selectNodeInfo = selectNodeInfo
259
261
  },
@@ -609,7 +609,8 @@ export default {
609
609
  emails: [],
610
610
  telephones: [],
611
611
  users: [],
612
- divisionManager: []
612
+ divisionManager: [],
613
+ divisionManagerName: []
613
614
  }
614
615
  // 是否需要显示提示框,默认不显示
615
616
  var showTip = false
@@ -625,6 +626,9 @@ export default {
625
626
  if (userData.divisionManager && userData.divisionManager !== '') {
626
627
  selectNodeInfo.divisionManager.push(userData.divisionManager)
627
628
  }
629
+ if (userData.divisionManagerName && userData.divisionManagerName !== '') {
630
+ selectNodeInfo.divisionManagerName.push(userData.divisionManagerName)
631
+ }
628
632
  if (userData.email && userData.email !== '') {
629
633
  selectNodeInfo.emails.push(userData.email)
630
634
  }
@@ -252,7 +252,8 @@ export default {
252
252
  user: user,
253
253
  enName: user.enName,
254
254
  subCompanyName: user.subCompanyName,
255
- divisionManager: user.divisionManager
255
+ divisionManager: user.divisionManager,
256
+ divisionManagerName: user.divisionManagerName
256
257
  }
257
258
  // 表示是勾选单选按钮或 选中树节点
258
259
  this.selectNodeInfo = selectNodeInfo
@@ -183,7 +183,6 @@ const departmentUserTreeMultiService = {
183
183
  },
184
184
  // 加载指定部门节点
185
185
  loadPointDepartments() {
186
- debugger
187
186
  let url = window.$vueApp.config.globalProperties.baseAPI + '/component/organization-trees/point-department-users'
188
187
  if (this.limitFilterColumn) {
189
188
  url += '/' + this.limitFilterColumn
@@ -368,7 +368,9 @@ function saveDept() {
368
368
  userEnNames: [],
369
369
  emails: [],
370
370
  telephones: [],
371
- users: []
371
+ users: [],
372
+ divisionManager: [],
373
+ divisionManagerName: []
372
374
  }
373
375
  const departmentIds = []
374
376
  selectDepts.value.forEach((node) => {
@@ -1,18 +1,78 @@
1
1
  <template>
2
- <div v-if="label">
3
- <div ref="filePreviewRef" @dblclick="dblclickEvent" style="display: flex; align-items: center; gap: 5px">
4
- <el-icon><el-icon-paperclip /></el-icon>
5
- {{ label }}
6
- <el-tooltip v-if="!disabled || fileSetObj.absolutePreview" :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 v-if="!disabled || fileSetObj.absoluteDownloadable" :content="$t('imatrixUIPublicModel.download')">
12
- <el-icon style="cursor: pointer; color: #409eff" @click="donwloadViewFile()">
13
- <el-icon-download />
14
- </el-icon>
15
- </el-tooltip>
2
+ <div ref="fsPreviewRef">
3
+ <div ref="filePreviewRef" @dblclick="dblclickEvent" class="fs-preview-container">
4
+ <slot name="prefix"></slot>
5
+ <template v-if="firstFileName">
6
+ <div class="fs-preview-container">
7
+ <super-icon :iconValue="getFileIconByName(firstFileName)" />
8
+ </div>
9
+ <span :title="firstFileName" ref="nameRef" class="amb-list-preivew-name">
10
+ {{ firstFileName }}
11
+ </span>
12
+ </template>
13
+ <div v-if="firstFileName" ref="toolRef" class="fs-preview-tool">
14
+ <el-link v-if="enableDelete && !disabled" type="danger" :underline="false" @click="deleteFirst()">
15
+ {{ $t('fsUpload.delete') }}
16
+ </el-link>
17
+ <el-link
18
+ v-if="!disabled || !fileSetObj.disabledNoPreview"
19
+ type="primary"
20
+ :underline="false"
21
+ @click="previewFirst()"
22
+ >
23
+ {{ $t('fsUpload.preview') }}
24
+ </el-link>
25
+ <el-link
26
+ v-if="!disabled || !fileSetObj.disabledNoDownload"
27
+ type="primary"
28
+ :underline="false"
29
+ @click="downloadFirst()"
30
+ >
31
+ {{ $t('fsUpload.download') }}
32
+ </el-link>
33
+ <el-divider v-if="showMultipleFile" direction="vertical" />
34
+ <el-popover :width="450" trigger="click">
35
+ <template #reference>
36
+ <el-button v-if="showMultipleFile" type="primary" round size="small" @click="showMultiView">
37
+ 更多
38
+ <el-icon><ArrowDownBold /></el-icon>
39
+ </el-button>
40
+ </template>
41
+ <div style="max-height: 300px; overflow-y: auto">
42
+ <div v-for="(item, index) in fileList" :ref="item.serverPath" :key="item.serverPath" class="file-item">
43
+ <div style="display: flex; align-items: center; flex: 1">
44
+ <span>
45
+ <super-icon :iconValue="getFileIconByName(item.showName)" />
46
+ </span>
47
+ <span class="amb-list-preivew-name" style="width: 230px; margin-left: 10px">
48
+ {{ item.showName }}
49
+ </span>
50
+ </div>
51
+ <div class="file-actions">
52
+ <el-link v-if="enableDelete" type="danger" underline @click="deleteFile(item)">
53
+ {{ $t('fsUpload.delete') }}
54
+ </el-link>
55
+ <el-link
56
+ type="primary"
57
+ v-if="!disabled || !fileSetObj.disabledNoPreview"
58
+ underline
59
+ @click="previewSingle(item)"
60
+ >
61
+ {{ $t('fsUpload.preview') }}
62
+ </el-link>
63
+ <el-link
64
+ type="primary"
65
+ v-if="!disabled || !fileSetObj.disabledNoDownload"
66
+ underline
67
+ @click="donwloadFile(index)"
68
+ >
69
+ {{ $t('fsUpload.download') }}
70
+ </el-link>
71
+ </div>
72
+ </div>
73
+ </div>
74
+ </el-popover>
75
+ </div>
16
76
  </div>
17
77
  <el-image-viewer
18
78
  v-if="showPreviewSingleImage"
@@ -20,53 +80,6 @@
20
80
  :url-list="[previewImageInfo.src]"
21
81
  @close="showPreviewSingleImage = false"
22
82
  />
23
- <el-dialog
24
- layout-mobile="bottom"
25
- :append-to-body="true"
26
- :show-close="true"
27
- :title="$t('imatrixUIPublicModel.preview')"
28
- v-model="showPreviewMulti"
29
- width="30%"
30
- @close="$emit('close')"
31
- >
32
- <template v-slot:title>
33
- <span
34
- >{{ $t('imatrixUIPublicModel.preview') }}
35
- <!-- <i v-if="downloadable" class="el-icon-download" style="padding-left:5px;cursor:pointer;color:#409EFF" @click="downloadFile()" /> -->
36
- <!-- <i v-if="deleteable" class="el-icon-delete" style="padding-left:5px;cursor:pointer;color:#F56C6C" @click="deleteFile()" /> -->
37
- </span>
38
- </template>
39
- <el-table :show-header="false" :data="fileList" max-height="60vh">
40
- <el-table-column prop="showName" show-overflow-tooltip>
41
- <template v-slot="scope">
42
- <div style="display: flex; align-items: center">
43
- <super-icon :iconValue="getFileIconByName(scope.row.showName)" />
44
- <span style="margin-left: 10px; cursor: pointer" @click="previewSingle(scope.row)">
45
- {{ scope.row.showName }}
46
- </span>
47
- </div>
48
- </template>
49
- </el-table-column>
50
- <el-table-column width="80" align="center">
51
- <template v-slot="scope">
52
- <div style="margin: -10px 0">
53
- <el-tooltip :content="$t('imatrixUIPublicModel.preview')" class="item" effect="dark" placement="top">
54
- <el-button type="text" @click="previewSingle(scope.row)">
55
- <el-icon style="cursor: pointer"><el-icon-view /></el-icon>
56
- </el-button>
57
- </el-tooltip>
58
- <el-tooltip :content="$t('imatrixUIPublicModel.download')" class="item" effect="dark" placement="top">
59
- <el-button type="text" @click="donwloadFile(scope.$index, fileList)">
60
- <el-icon v-if="downloadable" style="cursor: pointer">
61
- <el-icon-download />
62
- </el-icon>
63
- </el-button>
64
- </el-tooltip>
65
- </div>
66
- </template>
67
- </el-table-column>
68
- </el-table>
69
- </el-dialog>
70
83
  </div>
71
84
  </template>
72
85
 
@@ -80,6 +93,7 @@ import { packageFile } from '../../super-grid/src/utils'
80
93
  import { getToken } from '../../../src/utils/auth'
81
94
  import { getFileIconByName } from '../../../src/utils/file-util'
82
95
  import { Base64 } from 'js-base64'
96
+ import { ElMessage } from 'element-plus'
83
97
  export default {
84
98
  components: {
85
99
  ElIconPaperclip,
@@ -88,6 +102,10 @@ export default {
88
102
  },
89
103
  name: 'FsPreview',
90
104
  props: {
105
+ width: {
106
+ type: [String, Number],
107
+ default: '100%'
108
+ },
91
109
  label: {
92
110
  type: String,
93
111
  default: null
@@ -115,6 +133,10 @@ export default {
115
133
  disabled: {
116
134
  type: Boolean,
117
135
  default: false
136
+ },
137
+ enableDelete: {
138
+ type: Boolean,
139
+ default: false
118
140
  }
119
141
  },
120
142
  data() {
@@ -124,7 +146,23 @@ export default {
124
146
  previewImageInfo: {},
125
147
  fileList: [],
126
148
  downloadable: true,
127
- keyValueParam: {}
149
+ keyValueParam: {},
150
+ showMultipleFile: false,
151
+ firstFileUUid: ''
152
+ }
153
+ },
154
+ computed: {
155
+ firstFileName() {
156
+ if (this.label?.indexOf(',') > -1) {
157
+ this.showMultipleFile = true
158
+ return this.label.split(',')[0]
159
+ } else {
160
+ this.showMultipleFile = false
161
+ return this.label
162
+ }
163
+ },
164
+ lab() {
165
+ return this.label || this.fileInfo.showName || '文件预览'
128
166
  }
129
167
  },
130
168
  created() {
@@ -137,6 +175,25 @@ export default {
137
175
  dblclickEvent() {
138
176
  clearTimeout(this.time)
139
177
  },
178
+ getFirstFile() {
179
+ const { showName, serverPath } = this.getShowNameAndUuidKey()
180
+ if (serverPath) {
181
+ const uuids = serverPath.split(',')
182
+ if (uuids.length > 1) {
183
+ return { showName: showName.split(',')[0], serverPath: serverPath.split(',')[0] }
184
+ } else {
185
+ return { showName: showName, serverPath: serverPath }
186
+ }
187
+ }
188
+ return null
189
+ },
190
+ previewFirst() {
191
+ this.previewSingle(this.getFirstFile())
192
+ },
193
+ downloadFirst() {
194
+ const { showName, serverPath } = this.getFirstFile()
195
+ this.download(showName, serverPath)
196
+ },
140
197
  previewSingle(fileInfo) {
141
198
  fileInfo = packageFile(fileInfo.showName, fileInfo.serverPath)
142
199
  if (isImage(fileInfo.showName)) {
@@ -174,8 +231,10 @@ export default {
174
231
  }
175
232
  },
176
233
  previewMuti() {
234
+ if (this.disabled && this.fileSetObj.disabledNoPreview) {
235
+ return
236
+ }
177
237
  const { showName, serverPath } = this.getShowNameAndUuidKey()
178
- debugger
179
238
  if (serverPath) {
180
239
  const uuids = serverPath.split(',')
181
240
  if (uuids.length > 1) {
@@ -248,7 +307,7 @@ export default {
248
307
  window.open(previewUrl, showName)
249
308
  }
250
309
  },
251
- donwloadFile(index, fileList) {
310
+ donwloadFile(index) {
252
311
  const showName = this.formatFileName(this.fileList[index].showName)
253
312
  if (!this.fileList[index].src) {
254
313
  this.download(showName, this.fileList[index].serverPath)
@@ -302,15 +361,93 @@ export default {
302
361
  },
303
362
  getFileIconByName(fileName) {
304
363
  return getFileIconByName(fileName)
364
+ },
365
+ showMultiView() {
366
+ const { showName, serverPath } = this.getShowNameAndUuidKey()
367
+ if (serverPath) {
368
+ const uuids = serverPath.split(',')
369
+ if (uuids.length > 1) {
370
+ const baseURL = window.$vueApp.config.globalProperties.baseURL
371
+ const baseAPI = window.$vueApp.config.globalProperties.baseAPI
372
+ let tempAction = baseURL + '/common/fs-upload/search-file-names'
373
+ if (isPlateSys(window.$vueApp.config.globalProperties.systemCode)) {
374
+ tempAction = baseAPI + '/api/search-file-names'
375
+ }
376
+ this.$http.post(tempAction, uuids).then((result) => {
377
+ this.fileList = []
378
+ uuids.forEach((uuid) => {
379
+ this.fileList.push({ showName: result[uuid], serverPath: uuid })
380
+ })
381
+ })
382
+ }
383
+ }
384
+ },
385
+ deleteFirst() {
386
+ const fileInfo = this.getFirstFile()
387
+ this.$emit('delete-file', fileInfo)
388
+ this.fileList = this.fileList.filter((item) => item.serverPath !== fileInfo.serverPath)
389
+ ElMessage.success('文件已删除')
390
+ },
391
+ deleteFile(fileInfo) {
392
+ this.$emit('delete-file', fileInfo)
393
+ this.fileList = this.fileList.filter((item) => item.serverPath !== fileInfo.serverPath)
394
+ ElMessage.success('文件已删除')
305
395
  }
306
396
  },
307
- emits: ['close']
397
+ emits: ['close', 'delete-file']
308
398
  }
309
399
  </script>
310
400
 
311
401
  <style lang="scss" scoped>
402
+ .fs-preview-container {
403
+ display: flex;
404
+ align-items: center;
405
+ gap: 5px;
406
+ justify-content: space-between;
407
+ }
408
+
409
+ .fs-preview-tool {
410
+ display: flex;
411
+ align-items: center;
412
+ flex-shrink: 0;
413
+ min-width: max-content;
414
+ margin-left: auto; /* 添加这行,将工具栏推到右侧 */
415
+ }
312
416
  .amb-color-iconfont {
313
417
  width: 30px;
314
418
  height: 30px;
315
419
  }
420
+ .amb-list-preivew-name {
421
+ overflow: hidden;
422
+ text-overflow: ellipsis;
423
+ white-space: nowrap;
424
+ }
425
+
426
+ .el-link + .el-link {
427
+ margin-left: 5px;
428
+ }
429
+ .file-item {
430
+ display: flex;
431
+ align-items: center;
432
+ justify-content: space-between; /* 添加这行来分布空间 */
433
+ gap: 10px;
434
+ height: 40px;
435
+ padding: 10px;
436
+ border-radius: 8px;
437
+ transition: background-color 0.2s;
438
+
439
+ &:hover {
440
+ color: var(--el-button-hover-text-color, #409eff);
441
+ border-color: var(--el-button-hover-border-color, rgb(197.7, 225.9, 255));
442
+ background-color: var(--el-button-hover-bg-color, rgb(235.9, 245.3, 255));
443
+ outline: none;
444
+ }
445
+ }
446
+
447
+ .file-actions {
448
+ display: flex;
449
+ align-items: center;
450
+ gap: 5px;
451
+ flex-shrink: 0; /* 防止按钮被压缩 */
452
+ }
316
453
  </style>