imatrix-ui 0.2.5-up → 0.2.7-up

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 (206) hide show
  1. package/README.md +7 -7
  2. package/index.html +13 -13
  3. package/lib/super-ui.css +1 -1
  4. package/lib/super-ui.js +2732 -1940
  5. package/lib/super-ui.umd.cjs +24 -24
  6. package/package.json +1 -1
  7. package/packages/IntervalSelection/index.js +6 -6
  8. package/packages/IntervalSelection/src/quarterScope.vue +405 -405
  9. package/packages/IntervalSelection/src/sectionDate.vue +475 -475
  10. package/packages/breadcrumb/index.js +6 -6
  11. package/packages/breadcrumb/src/breadcrumb.vue +81 -81
  12. package/packages/department-tree/index.js +6 -6
  13. package/packages/department-tree/src/department-tree.vue +113 -113
  14. package/packages/department-tree-inline/index.js +6 -6
  15. package/packages/department-tree-inline/src/department-multi-tree-inline.vue +472 -472
  16. package/packages/department-tree-inline/src/department-single-tree-inline.vue +340 -340
  17. package/packages/department-tree-inline/src/department-tree-inline.vue +86 -86
  18. package/packages/department-tree-inline/src/department-tree-service.js +344 -344
  19. package/packages/department-tree-inline/src/search-result.vue +235 -235
  20. package/packages/department-user-tree/index.js +6 -6
  21. package/packages/department-user-tree/src/department-user-multiple-tree.vue +129 -129
  22. package/packages/department-user-tree/src/department-user-single-tree.vue +94 -94
  23. package/packages/department-user-tree/src/department-user-tree.vue +114 -114
  24. package/packages/department-user-tree-inline/index.js +9 -9
  25. package/packages/department-user-tree-inline/src/department-user-multiple-tree-inline.vue +731 -731
  26. package/packages/department-user-tree-inline/src/department-user-single-tree-inline.vue +334 -334
  27. package/packages/department-user-tree-inline/src/department-user-tree-inline.vue +87 -87
  28. package/packages/department-user-tree-inline/src/department-user-tree-multi-service.js +309 -309
  29. package/packages/department-user-tree-inline/src/department-user-tree-single-service.js +179 -179
  30. package/packages/department-user-tree-inline/src/search-result.vue +273 -273
  31. package/packages/directives/prevent-reclick.js +22 -22
  32. package/packages/dynamic-source-select/index.js +6 -6
  33. package/packages/dynamic-source-select/src/dynamic-source-select-service.js +106 -106
  34. package/packages/dynamic-source-select/src/dynamic-source-select.vue +675 -675
  35. package/packages/dynamic-source-select/src/events.js +78 -78
  36. package/packages/fs-preview/index.js +6 -6
  37. package/packages/fs-preview/src/fs-preview.vue +287 -287
  38. package/packages/fs-upload/index.js +6 -6
  39. package/packages/fs-upload/src/fs-upload-multi.vue +443 -443
  40. package/packages/fs-upload/src/fs-upload-single.vue +353 -350
  41. package/packages/fs-upload/src/fs-upload.vue +191 -191
  42. package/packages/fs-upload/src/see-big-picture.vue +67 -67
  43. package/packages/fs-upload-list/index.js +6 -6
  44. package/packages/fs-upload-list/src/fs-upload-list.vue +372 -372
  45. package/packages/hamburger/index.js +6 -6
  46. package/packages/hamburger/src/hamburger.vue +40 -40
  47. package/packages/index.js +123 -123
  48. package/packages/multipart-upload/index.js +6 -6
  49. package/packages/multipart-upload/src/index.vue +66 -66
  50. package/packages/multipart-upload/src/multipart-upload-form.vue +377 -377
  51. package/packages/multipart-upload/src/multipart-upload-list.vue +517 -517
  52. package/packages/organization-input/index.js +6 -6
  53. package/packages/organization-input/src/organization-input.vue +583 -583
  54. package/packages/plugins/export-data-new.js +623 -623
  55. package/packages/plugins/export-data.js +431 -431
  56. package/packages/plugins/index.js +15 -15
  57. package/packages/plugins/public-method.js +47 -47
  58. package/packages/remove-department/index.js +6 -6
  59. package/packages/remove-department/src/remove-department.vue +200 -200
  60. package/packages/remove-department/src/remove-dept-service.js +31 -31
  61. package/packages/remove-user/index.js +6 -6
  62. package/packages/remove-user/src/remove-user-service.js +31 -31
  63. package/packages/remove-user/src/remove-user.vue +226 -226
  64. package/packages/remove-workgroup/index.js +6 -6
  65. package/packages/remove-workgroup/src/remove-workgroup-service.js +31 -31
  66. package/packages/remove-workgroup/src/remove-workgroup.vue +183 -183
  67. package/packages/rich-editor/index.js +7 -7
  68. package/packages/rich-editor/index.vue +297 -297
  69. package/packages/rich-editor/langs/zh-Hans.js +438 -438
  70. package/packages/rich-editor/viewer.vue +105 -105
  71. package/packages/scan-code-input/index.js +6 -6
  72. package/packages/scan-code-input/src/events.js +34 -34
  73. package/packages/scan-code-input/src/scan-code-input-colse.vue +140 -140
  74. package/packages/scan-code-input/src/scan-code-input.vue +132 -132
  75. package/packages/secret-info/index.js +7 -7
  76. package/packages/secret-info/index.vue +100 -100
  77. package/packages/super-grid/index.js +7 -7
  78. package/packages/super-grid/src/apis.js +1092 -1092
  79. package/packages/super-grid/src/columns-config.vue +427 -427
  80. package/packages/super-grid/src/custom-formatter.js +394 -394
  81. package/packages/super-grid/src/eventBus.js +2 -2
  82. package/packages/super-grid/src/events.js +56 -56
  83. package/packages/super-grid/src/formValidatorUtil.js +300 -300
  84. package/packages/super-grid/src/formatter.js +196 -196
  85. package/packages/super-grid/src/group-column.vue +99 -99
  86. package/packages/super-grid/src/header-context-menu.vue +82 -82
  87. package/packages/super-grid/src/index-column.vue +69 -69
  88. package/packages/super-grid/src/public-methods.js +30 -30
  89. package/packages/super-grid/src/row-operation.vue +193 -193
  90. package/packages/super-grid/src/search-button.vue +74 -74
  91. package/packages/super-grid/src/search-condition-input.vue +73 -73
  92. package/packages/super-grid/src/search-condition-list.vue +68 -68
  93. package/packages/super-grid/src/search-form-advancedQuery.vue +819 -819
  94. package/packages/super-grid/src/search-form-dialog.vue +77 -77
  95. package/packages/super-grid/src/search-form-item.vue +495 -495
  96. package/packages/super-grid/src/search-form-number.vue +111 -111
  97. package/packages/super-grid/src/search-form-ordinarySearch.vue +239 -239
  98. package/packages/super-grid/src/search-form.vue +762 -762
  99. package/packages/super-grid/src/search-methods.js +592 -592
  100. package/packages/super-grid/src/selection-column.vue +46 -46
  101. package/packages/super-grid/src/store.js +3 -3
  102. package/packages/super-grid/src/super-grid-service.js +728 -728
  103. package/packages/super-grid/src/super-grid.vue +3011 -3011
  104. package/packages/super-grid/src/utils.js +880 -880
  105. package/packages/super-grid/src/view-image-dialog.vue +176 -176
  106. package/packages/super-nine-grid/index.js +7 -7
  107. package/packages/super-nine-grid/src/apis.js +108 -108
  108. package/packages/super-nine-grid/src/custom-formatter.js +73 -73
  109. package/packages/super-nine-grid/src/formatter.js +134 -134
  110. package/packages/super-nine-grid/src/search-form-number.vue +35 -35
  111. package/packages/super-nine-grid/src/search-form.vue +700 -700
  112. package/packages/super-nine-grid/src/search-methods.js +151 -151
  113. package/packages/super-nine-grid/src/store.js +3 -3
  114. package/packages/super-nine-grid/src/super-grid-service.js +107 -107
  115. package/packages/svg-icon/index.js +6 -6
  116. package/packages/svg-icon/src/svg-icon.vue +43 -43
  117. package/packages/utils/date-util.js +292 -292
  118. package/packages/utils/dom.js +227 -227
  119. package/packages/utils/gogocodeTransfer.js +59 -59
  120. package/packages/utils/memory-cache-utils.js +117 -117
  121. package/packages/utils/utils.js +180 -180
  122. package/packages/utils/value-set.js +97 -97
  123. package/packages/valid-code/index.js +7 -7
  124. package/packages/valid-code/src/valid-code.vue +104 -104
  125. package/packages/workflow-button/index.js +6 -6
  126. package/packages/workflow-button/src/workflow-button.vue +550 -550
  127. package/packages/workflow-history-list/index.js +6 -6
  128. package/packages/workflow-history-list/src/api.js +7 -7
  129. package/packages/workflow-history-list/src/workflow-history-list.vue +291 -291
  130. package/packages/workgroup-tree/index.js +6 -6
  131. package/packages/workgroup-tree/src/workgroup-tree.vue +86 -86
  132. package/packages/workgroup-tree-inline/index.js +6 -6
  133. package/packages/workgroup-tree-inline/src/search-result.vue +222 -222
  134. package/packages/workgroup-tree-inline/src/workgroup-tree-inline.vue +516 -516
  135. package/packages/workgroup-tree-inline/src/workgroup-tree-service.js +93 -93
  136. package/packages/workgroup-user-tree/index.js +6 -6
  137. package/packages/workgroup-user-tree/src/workgroup-user-tree.vue +103 -103
  138. package/packages/workgroup-user-tree-inline/index.js +9 -9
  139. package/packages/workgroup-user-tree-inline/src/search-result.vue +266 -266
  140. package/packages/workgroup-user-tree-inline/src/workgroup-tree-inline-service.js +239 -239
  141. package/packages/workgroup-user-tree-inline/src/workgroup-user-tree-inline.vue +657 -657
  142. package/packages/year-range-picker/index.js +6 -6
  143. package/packages/year-range-picker/src/year-range-picker.vue +53 -53
  144. package/src/api/sso-service.js +172 -172
  145. package/src/api/tab.js +36 -36
  146. package/src/api/user-service.js +11 -11
  147. package/src/directives/permission/index.js +13 -13
  148. package/src/directives/permission/permission.js +20 -20
  149. package/src/i18n/langs/cn.js +259 -259
  150. package/src/i18n/langs/en.js +269 -269
  151. package/src/index.js +93 -93
  152. package/src/plugins.js +18 -18
  153. package/src/router/index.js +8 -26
  154. package/src/store/getters.js +15 -15
  155. package/src/store/index.js +19 -19
  156. package/src/store/modules/app.js +54 -54
  157. package/src/store/modules/tab-content.js +36 -36
  158. package/src/store/modules/user.js +285 -285
  159. package/src/utils/auth.js +61 -61
  160. package/src/utils/calculator/calculator-factory-wf.js +558 -558
  161. package/src/utils/calculator/calculator-factory.js +145 -145
  162. package/src/utils/calculator/calculator-util.js +166 -166
  163. package/src/utils/eventBus.js +2 -2
  164. package/src/utils/iconUtils.js +28 -28
  165. package/src/utils/index.js +102 -102
  166. package/src/utils/jump-page-utils.js +824 -824
  167. package/src/utils/menu.js +19 -19
  168. package/src/utils/permission.js +31 -31
  169. package/src/utils/permissionAuth.js +96 -96
  170. package/src/utils/range-selector.js +188 -188
  171. package/src/utils/request.js +269 -269
  172. package/src/utils/restful-interface-utils.js +57 -57
  173. package/src/utils/util.js +703 -703
  174. package/src/utils/validate.js +34 -34
  175. package/src/utils/watermark.js +108 -108
  176. package/src/utils/workflow-util.js +93 -93
  177. package/src/views/404.vue +248 -248
  178. package/src/views/dsc-component/Sidebar/Item.vue +84 -84
  179. package/src/views/dsc-component/Sidebar/Link.vue +38 -38
  180. package/src/views/dsc-component/Sidebar/SidebarItem.vue +198 -198
  181. package/src/views/dsc-component/Sidebar/index.vue +229 -228
  182. package/src/views/dsc-component/tabs/tab-content.vue +203 -203
  183. package/src/views/error-page/401.vue +106 -106
  184. package/src/views/error-page/404.vue +248 -248
  185. package/src/views/layout/EmptyLayout.vue +3 -3
  186. package/src/views/layout/Layout.vue +81 -81
  187. package/src/views/layout/NewLayout.vue +18 -18
  188. package/src/views/layout/components/AppMain.vue +39 -39
  189. package/src/views/layout/components/Breadcrumb/index.vue +158 -156
  190. package/src/views/layout/components/Menubar/Item.vue +79 -79
  191. package/src/views/layout/components/Menubar/Link.vue +38 -38
  192. package/src/views/layout/components/Menubar/index.vue +210 -210
  193. package/src/views/layout/components/Sidebar/Item.vue +53 -53
  194. package/src/views/layout/components/Sidebar/Link.vue +38 -38
  195. package/src/views/layout/components/Sidebar/index.vue +141 -141
  196. package/src/views/layout/components/iframe-page.vue +38 -38
  197. package/src/views/layout/components/index.js +4 -4
  198. package/src/views/layout/components/tabs/tab-content.vue +207 -207
  199. package/src/views/layout/mixin/ResizeHandler.js +41 -41
  200. package/src/views/layout/tab-content-iframe-index.vue +38 -38
  201. package/src/views/layout/tab-content-index.vue +93 -93
  202. package/src/views/login/authredirect.vue +10 -10
  203. package/src/views/login/index.vue +296 -296
  204. package/src/views/login/update-password.vue +243 -243
  205. package/src/views/redirect/index.vue +14 -14
  206. package/src/views/wf-history/tache-subprocess-history.vue +45 -45
@@ -1,443 +1,443 @@
1
- <template>
2
- <div v-loading="loading">
3
- <el-button
4
- v-if="isShowButton && !disabled"
5
- size="small"
6
- type="primary"
7
- :icon="ElIconUpload2"
8
- @click="selectDataFile"
9
- >
10
- {{ $t('fsUpload.upload') }}
11
- </el-button>
12
- <input
13
- ref="uploadTemplate"
14
- type="file"
15
- name="uploadTemplate"
16
- style="display: none"
17
- :accept="accepts"
18
- @change="upload"
19
- />
20
- <div v-if="unifiedEnclosures && unifiedEnclosures.length > 0 && isShowData">
21
- <div v-if="isImg">
22
- <el-table
23
- :data="unifiedEnclosures"
24
- :height="tableHeight"
25
- style="width: 100%"
26
- >
27
- <el-table-column :label="$t('fsUpload.name')" width="240">
28
- <template v-slot="scope">
29
- <el-link
30
- :href="
31
- baseURL +
32
- '/common/fs-upload/download?serverPath=' +
33
- scope.row.uuid +
34
- '&showName=' +
35
- scope.row.fileName
36
- "
37
- type="primary"
38
- >
39
- {{ scope.row.fileName }}
40
- </el-link>
41
- </template>
42
- </el-table-column>
43
- <el-table-column :label="$t('fsUpload.picture')" width="240">
44
- <template v-slot="scope">
45
- <el-image
46
- :src="
47
- baseURL +
48
- '/common/fs-upload/download?serverPath=' +
49
- scope.row.uuid +
50
- '&showName=' +
51
- scope.row.fileName
52
- "
53
- :preview-src-list="[
54
- baseURL +
55
- '/common/fs-upload/download?serverPath=' +
56
- scope.row.uuid +
57
- '&showName=' +
58
- scope.row.fileName,
59
- ]"
60
- @click="bigPicture(scope.$index)"
61
- />
62
- </template>
63
- </el-table-column>
64
- <el-table-column
65
- v-if="!disabled"
66
- :label="$t('fsUpload.operating')"
67
- width="120"
68
- >
69
- <template v-slot="scope">
70
- <el-button
71
- size="mini"
72
- type="danger"
73
- @click="deleteFile(scope.$index)"
74
- >
75
- {{ $t('fsUpload.delete') }}
76
- </el-button>
77
- </template>
78
- </el-table-column>
79
- </el-table>
80
- </div>
81
- <div v-else-if="isShowList">
82
- <el-table
83
- :data="unifiedEnclosures"
84
- :height="tableHeight"
85
- style="width: 100%"
86
- >
87
- <el-table-column :label="$t('fsUpload.name')" width="240">
88
- <template v-slot="scope">
89
- <el-link
90
- :href="
91
- baseURL +
92
- '/common/fs-upload/download?serverPath=' +
93
- scope.row.uuid +
94
- '&showName=' +
95
- scope.row.fileName
96
- "
97
- type="primary"
98
- >
99
- {{ scope.row.fileName }}
100
- </el-link>
101
- </template>
102
- </el-table-column>
103
- <el-table-column width="200" :label="$t('fsUpload.operating')">
104
- <template v-slot="scope">
105
- <el-button
106
- v-if="!disabled"
107
- size="mini"
108
- type="danger"
109
- @click="deleteFile(scope.$index)"
110
- >
111
- {{ $t('fsUpload.delete') }}
112
- </el-button>
113
- <el-button size="mini" @click="preview(scope.row)">
114
- {{ $t('fsUpload.preview') }}
115
- </el-button>
116
- </template>
117
- </el-table-column>
118
- </el-table>
119
- </div>
120
- <div v-else>
121
- <div v-for="(item, index) in unifiedEnclosures" :key="index">
122
- <el-link
123
- :href="
124
- baseURL +
125
- '/common/fs-upload/download?serverPath=' +
126
- item.uuid +
127
- '&showName=' +
128
- item.fileName
129
- "
130
- type="primary"
131
- >
132
- {{ item.fileName }}
133
- </el-link>
134
- <el-tooltip :content="$t('fsUpload.delete')" effect="light">
135
- <el-icon v-if="!disabled" @click="deleteFile(index)" style="color: red; margin-left: 10px"
136
- ><el-icon-delete
137
- /></el-icon>
138
- </el-tooltip>
139
- <el-tooltip
140
- :content="$t('fsUpload.preview')"
141
- style="margin-left: 10px"
142
- effect="light"
143
- >
144
- <el-icon @click="preview(item)"><el-icon-view /></el-icon>
145
- </el-tooltip>
146
- </div>
147
- </div>
148
- </div>
149
- <see-big-picture
150
- v-if="bigPictureVisible"
151
- :show-index="showIndex"
152
- :unified-enclosures="unifiedEnclosures"
153
- @close="bigPictureVisible = false"
154
- />
155
- </div>
156
- </template>
157
-
158
- <script>
159
- import {
160
- Delete as ElIconDelete,
161
- View as ElIconView,
162
- Upload as ElIconUpload2,
163
- } from '@element-plus/icons-vue'
164
- import { $on, $off, $once, $emit } from '../../utils/gogocodeTransfer'
165
- import * as Vue from 'vue'
166
- import seeBigPicture from './see-big-picture.vue'
167
- import { getToken } from '../../../src/utils/auth'
168
- import {
169
- isPlateSys,
170
- getSystemFrontendUrl,
171
- } from '../../../src//utils//common-util.js'
172
- export default {
173
- data() {
174
- return {
175
- unifiedEnclosures: [],
176
- bigPictureVisible: false,
177
- baseURL: '',
178
- accepts: '',
179
- showIndex: 0,
180
- loading: '',
181
- ElIconUpload2,
182
- }
183
- },
184
- components: {
185
- seeBigPicture,
186
- ElIconDelete,
187
- ElIconView,
188
- },
189
- name: 'FsUploadMulti',
190
- props: {
191
- /**
192
- * 系统编码
193
- */
194
- systemCode: {
195
- type: String,
196
- default: null,
197
- },
198
- /**
199
- * 上传限制的类型
200
- */
201
- accept: {
202
- type: String,
203
- default: null,
204
- },
205
- /**
206
- * 是否是图片
207
- */
208
- isImg: {
209
- type: Boolean,
210
- default: false,
211
- },
212
- /**
213
- * 针对多选情况
214
- * 是否显示拼接字符串
215
- * 如果未选择,直接显示表单
216
- */
217
- isShowList: {
218
- type: Boolean,
219
- default: true,
220
- },
221
- /**
222
- * 针对图片类型
223
- * 具体参考element-ui中的图片参数fit属性
224
- */
225
- fit: {
226
- type: String,
227
- default: null,
228
- },
229
- /**
230
- * 禁止编辑
231
- */
232
- disabled: {
233
- type: Boolean,
234
- default: false,
235
- },
236
- /**
237
- * 是否显示按钮
238
- */
239
- isShowButton: {
240
- type: Boolean,
241
- default: true,
242
- },
243
- /**
244
- * 是否显示数据
245
- */
246
- isShowData: {
247
- type: Boolean,
248
- default: true,
249
- },
250
- /**
251
- * 回传数据
252
- */
253
- data: {
254
- type: Array,
255
- default: null,
256
- },
257
- /** 图片显示数量 */
258
- imgSize: {
259
- type: Number,
260
- default: 0,
261
- },
262
- /** 设置附件的上传数量 */
263
- fileSize: {
264
- type: Number,
265
- default: 0,
266
- },
267
- /** 设置table高度 */
268
- tableHeight: {
269
- type: String,
270
- default: null,
271
- },
272
- },
273
- created() {
274
- this.baseURL = window.$vueApp.config.globalProperties.baseURL
275
- if (this.data) {
276
- this.unifiedEnclosures = this.data
277
- }
278
- this.judgeImg()
279
- },
280
- methods: {
281
- // 预览图片
282
- bigPicture(index) {
283
- this.showIndex = index
284
- this.bigPictureVisible = true
285
- },
286
- // 成功后返回数据
287
- onSuccess() {
288
- const data = this.unifiedEnclosures
289
- $emit(this, 'onSuccess', data)
290
- },
291
- // 判断是否是图片格式,如果是限制只能上传图片
292
- judgeImg() {
293
- if (this.isImg) {
294
- this.accepts = 'image/*'
295
- } else {
296
- if (this.accept) {
297
- this.accepts = this.accept
298
- }
299
- }
300
- },
301
- selectDataFile() {
302
- this.$refs.uploadTemplate.click()
303
- },
304
- deleteFile(index) {
305
- this.deleteUuid = this.unifiedEnclosures[index].uuid
306
- this.unifiedEnclosures.splice(index, 1)
307
- this.deleteSuccess()
308
- },
309
- deleteSuccess() {
310
- const data = this.unifiedEnclosures
311
- $emit(this, 'deleteSuccess', this.deleteUuid, data)
312
- },
313
- // 预览
314
- preview(row) {
315
- if (window.$vueApp.config.globalProperties.isOffice) {
316
- const jwt = getToken()
317
- const map = {
318
- fileName:
319
- window.$vueApp.config.globalProperties.officeweb365Url +
320
- '/common/fs-upload/download?serverPath=' +
321
- row.uuid +
322
- '&showName=' +
323
- row.fileName +
324
- '&jwt=' +
325
- jwt,
326
- }
327
- const http = this.$http
328
- http
329
- .post(
330
- window.$vueApp.config.globalProperties.baseURL +
331
- '/common/fs-upload/des-encrypt',
332
- map
333
- )
334
- .then((data) => {
335
- window.open(window.$vueApp.config.globalProperties.isOffice + data)
336
- })
337
- } else {
338
- let showName
339
- const split = row.fileName.split('.')
340
- if (
341
- split[split.length - 1].toLowerCase() === 'xls' ||
342
- split[split.length - 1].toLowerCase() === 'xlsx' ||
343
- split[split.length - 1].toLowerCase() === 'csv'
344
- ) {
345
- showName = split[0] + '.html'
346
- } else {
347
- showName = split[0] + '.pdf'
348
- }
349
- const token = getToken()
350
- if (window.$vueApp.config.globalProperties.customPreviewUrl) {
351
- window.open(
352
- getSystemFrontendUrl(
353
- window.$vueApp.config.globalProperties.portalUrl
354
- ) +
355
- '/#/file-service/preview?serverPath=' +
356
- row.uuid +
357
- '&showName=' +
358
- encodeURI(row.fileName),
359
- showName
360
- )
361
- } else {
362
- let url =
363
- window.$vueApp.config.globalProperties.baseURL +
364
- '/common/fs-upload/preview?serverPath=' +
365
- row.uuid +
366
- '&showName=' +
367
- row.fileName +
368
- '&jwt=' +
369
- token
370
- if (isPlateSys(window.$vueApp.config.globalProperties.systemCode)) {
371
- url =
372
- window.$vueApp.config.globalProperties.baseAPI +
373
- '/common/fs-upload/preview?serverPath=' +
374
- row.uuid +
375
- '&showName=' +
376
- row.fileName +
377
- '&jwt=' +
378
- token
379
- }
380
- window.open(url, showName)
381
- }
382
- }
383
- },
384
- // 上传
385
- upload(params) {
386
- let message
387
- if (this.fileSize) {
388
- if (
389
- this.fileSize !== 0 &&
390
- this.unifiedEnclosures.length >= this.fileSize
391
- ) {
392
- message =
393
- this.$t('fsUpload.theNumberOfUploadsExceedsTheLimitTheLimitIs') +
394
- ':' +
395
- this.fileSize
396
- }
397
- }
398
-
399
- if (!message) {
400
- this.loading = true
401
- const param = new FormData()
402
- param.append('file', this.$refs.uploadTemplate.files[0])
403
- const http = this.$http
404
- http.headers = "'Content-Type': 'multipart/form-data'"
405
- http
406
- .post(
407
- window.$vueApp.config.globalProperties.baseURL +
408
- '/common/fs-upload/upload-template/' +
409
- this.systemCode,
410
- param,
411
- { headers: { 'Content-Type': 'multipart/form-data' } }
412
- )
413
- .then((data) => {
414
- this.unifiedEnclosures.push(data)
415
- params.target.value = ''
416
- console.log('data', data)
417
- this.judgeImg()
418
- console.log(' this.unifiedEnclosures', this.unifiedEnclosures)
419
- this.onSuccess()
420
- this.$message({
421
- showClose: true,
422
- type: 'success',
423
- message: this.$t('fsUpload.uploadSucceeded'),
424
- })
425
- this.loading = false
426
- })
427
- .catch(() => {
428
- params.target.value = ''
429
- this.loading = false
430
- })
431
- } else {
432
- params.target.value = ''
433
- this.$message({
434
- showClose: true,
435
- type: 'warning',
436
- message: message,
437
- })
438
- }
439
- },
440
- },
441
- emits: ['onSuccess', 'deleteSuccess'],
442
- }
443
- </script>
1
+ <template>
2
+ <div v-loading="loading">
3
+ <el-button
4
+ v-if="isShowButton && !disabled"
5
+ size="small"
6
+ type="primary"
7
+ :icon="ElIconUpload2"
8
+ @click="selectDataFile"
9
+ >
10
+ {{ $t('fsUpload.upload') }}
11
+ </el-button>
12
+ <input
13
+ ref="uploadTemplate"
14
+ type="file"
15
+ name="uploadTemplate"
16
+ style="display: none"
17
+ :accept="accepts"
18
+ @change="upload"
19
+ />
20
+ <div v-if="unifiedEnclosures && unifiedEnclosures.length > 0 && isShowData">
21
+ <div v-if="isImg">
22
+ <el-table
23
+ :data="unifiedEnclosures"
24
+ :height="tableHeight"
25
+ style="width: 100%"
26
+ >
27
+ <el-table-column :label="$t('fsUpload.name')" width="240">
28
+ <template v-slot="scope">
29
+ <el-link
30
+ :href="
31
+ baseURL +
32
+ '/common/fs-upload/download?serverPath=' +
33
+ scope.row.uuid +
34
+ '&showName=' +
35
+ scope.row.fileName
36
+ "
37
+ type="primary"
38
+ >
39
+ {{ scope.row.fileName }}
40
+ </el-link>
41
+ </template>
42
+ </el-table-column>
43
+ <el-table-column :label="$t('fsUpload.picture')" width="240">
44
+ <template v-slot="scope">
45
+ <el-image
46
+ :src="
47
+ baseURL +
48
+ '/common/fs-upload/download?serverPath=' +
49
+ scope.row.uuid +
50
+ '&showName=' +
51
+ scope.row.fileName
52
+ "
53
+ :preview-src-list="[
54
+ baseURL +
55
+ '/common/fs-upload/download?serverPath=' +
56
+ scope.row.uuid +
57
+ '&showName=' +
58
+ scope.row.fileName,
59
+ ]"
60
+ @click="bigPicture(scope.$index)"
61
+ />
62
+ </template>
63
+ </el-table-column>
64
+ <el-table-column
65
+ v-if="!disabled"
66
+ :label="$t('fsUpload.operating')"
67
+ width="120"
68
+ >
69
+ <template v-slot="scope">
70
+ <el-button
71
+ size="mini"
72
+ type="danger"
73
+ @click="deleteFile(scope.$index)"
74
+ >
75
+ {{ $t('fsUpload.delete') }}
76
+ </el-button>
77
+ </template>
78
+ </el-table-column>
79
+ </el-table>
80
+ </div>
81
+ <div v-else-if="isShowList">
82
+ <el-table
83
+ :data="unifiedEnclosures"
84
+ :height="tableHeight"
85
+ style="width: 100%"
86
+ >
87
+ <el-table-column :label="$t('fsUpload.name')" width="240">
88
+ <template v-slot="scope">
89
+ <el-link
90
+ :href="
91
+ baseURL +
92
+ '/common/fs-upload/download?serverPath=' +
93
+ scope.row.uuid +
94
+ '&showName=' +
95
+ scope.row.fileName
96
+ "
97
+ type="primary"
98
+ >
99
+ {{ scope.row.fileName }}
100
+ </el-link>
101
+ </template>
102
+ </el-table-column>
103
+ <el-table-column width="200" :label="$t('fsUpload.operating')">
104
+ <template v-slot="scope">
105
+ <el-button
106
+ v-if="!disabled"
107
+ size="mini"
108
+ type="danger"
109
+ @click="deleteFile(scope.$index)"
110
+ >
111
+ {{ $t('fsUpload.delete') }}
112
+ </el-button>
113
+ <el-button size="mini" @click="preview(scope.row)">
114
+ {{ $t('fsUpload.preview') }}
115
+ </el-button>
116
+ </template>
117
+ </el-table-column>
118
+ </el-table>
119
+ </div>
120
+ <div v-else>
121
+ <div v-for="(item, index) in unifiedEnclosures" :key="index">
122
+ <el-link
123
+ :href="
124
+ baseURL +
125
+ '/common/fs-upload/download?serverPath=' +
126
+ item.uuid +
127
+ '&showName=' +
128
+ item.fileName
129
+ "
130
+ type="primary"
131
+ >
132
+ {{ item.fileName }}
133
+ </el-link>
134
+ <el-tooltip :content="$t('fsUpload.delete')" effect="light">
135
+ <el-icon v-if="!disabled" @click="deleteFile(index)" style="color: red; margin-left: 10px"
136
+ ><el-icon-delete
137
+ /></el-icon>
138
+ </el-tooltip>
139
+ <el-tooltip
140
+ :content="$t('fsUpload.preview')"
141
+ style="margin-left: 10px"
142
+ effect="light"
143
+ >
144
+ <el-icon @click="preview(item)"><el-icon-view /></el-icon>
145
+ </el-tooltip>
146
+ </div>
147
+ </div>
148
+ </div>
149
+ <see-big-picture
150
+ v-if="bigPictureVisible"
151
+ :show-index="showIndex"
152
+ :unified-enclosures="unifiedEnclosures"
153
+ @close="bigPictureVisible = false"
154
+ />
155
+ </div>
156
+ </template>
157
+
158
+ <script>
159
+ import {
160
+ Delete as ElIconDelete,
161
+ View as ElIconView,
162
+ Upload as ElIconUpload2,
163
+ } from '@element-plus/icons-vue'
164
+ import { $on, $off, $once, $emit } from '../../utils/gogocodeTransfer'
165
+ import * as Vue from 'vue'
166
+ import seeBigPicture from './see-big-picture.vue'
167
+ import { getToken } from '../../../src/utils/auth'
168
+ import {
169
+ isPlateSys,
170
+ getSystemFrontendUrl,
171
+ } from '../../../src//utils//common-util.js'
172
+ export default {
173
+ data() {
174
+ return {
175
+ unifiedEnclosures: [],
176
+ bigPictureVisible: false,
177
+ baseURL: '',
178
+ accepts: '',
179
+ showIndex: 0,
180
+ loading: '',
181
+ ElIconUpload2,
182
+ }
183
+ },
184
+ components: {
185
+ seeBigPicture,
186
+ ElIconDelete,
187
+ ElIconView,
188
+ },
189
+ name: 'FsUploadMulti',
190
+ props: {
191
+ /**
192
+ * 系统编码
193
+ */
194
+ systemCode: {
195
+ type: String,
196
+ default: null,
197
+ },
198
+ /**
199
+ * 上传限制的类型
200
+ */
201
+ accept: {
202
+ type: String,
203
+ default: null,
204
+ },
205
+ /**
206
+ * 是否是图片
207
+ */
208
+ isImg: {
209
+ type: Boolean,
210
+ default: false,
211
+ },
212
+ /**
213
+ * 针对多选情况
214
+ * 是否显示拼接字符串
215
+ * 如果未选择,直接显示表单
216
+ */
217
+ isShowList: {
218
+ type: Boolean,
219
+ default: true,
220
+ },
221
+ /**
222
+ * 针对图片类型
223
+ * 具体参考element-ui中的图片参数fit属性
224
+ */
225
+ fit: {
226
+ type: String,
227
+ default: null,
228
+ },
229
+ /**
230
+ * 禁止编辑
231
+ */
232
+ disabled: {
233
+ type: Boolean,
234
+ default: false,
235
+ },
236
+ /**
237
+ * 是否显示按钮
238
+ */
239
+ isShowButton: {
240
+ type: Boolean,
241
+ default: true,
242
+ },
243
+ /**
244
+ * 是否显示数据
245
+ */
246
+ isShowData: {
247
+ type: Boolean,
248
+ default: true,
249
+ },
250
+ /**
251
+ * 回传数据
252
+ */
253
+ data: {
254
+ type: Array,
255
+ default: null,
256
+ },
257
+ /** 图片显示数量 */
258
+ imgSize: {
259
+ type: Number,
260
+ default: 0,
261
+ },
262
+ /** 设置附件的上传数量 */
263
+ fileSize: {
264
+ type: Number,
265
+ default: 0,
266
+ },
267
+ /** 设置table高度 */
268
+ tableHeight: {
269
+ type: String,
270
+ default: null,
271
+ },
272
+ },
273
+ created() {
274
+ this.baseURL = window.$vueApp.config.globalProperties.baseURL
275
+ if (this.data) {
276
+ this.unifiedEnclosures = this.data
277
+ }
278
+ this.judgeImg()
279
+ },
280
+ methods: {
281
+ // 预览图片
282
+ bigPicture(index) {
283
+ this.showIndex = index
284
+ this.bigPictureVisible = true
285
+ },
286
+ // 成功后返回数据
287
+ onSuccess() {
288
+ const data = this.unifiedEnclosures
289
+ $emit(this, 'onSuccess', data)
290
+ },
291
+ // 判断是否是图片格式,如果是限制只能上传图片
292
+ judgeImg() {
293
+ if (this.isImg) {
294
+ this.accepts = 'image/*'
295
+ } else {
296
+ if (this.accept) {
297
+ this.accepts = this.accept
298
+ }
299
+ }
300
+ },
301
+ selectDataFile() {
302
+ this.$refs.uploadTemplate.click()
303
+ },
304
+ deleteFile(index) {
305
+ this.deleteUuid = this.unifiedEnclosures[index].uuid
306
+ this.unifiedEnclosures.splice(index, 1)
307
+ this.deleteSuccess()
308
+ },
309
+ deleteSuccess() {
310
+ const data = this.unifiedEnclosures
311
+ $emit(this, 'deleteSuccess', this.deleteUuid, data)
312
+ },
313
+ // 预览
314
+ preview(row) {
315
+ if (window.$vueApp.config.globalProperties.isOffice) {
316
+ const jwt = getToken()
317
+ const map = {
318
+ fileName:
319
+ window.$vueApp.config.globalProperties.officeweb365Url +
320
+ '/common/fs-upload/download?serverPath=' +
321
+ row.uuid +
322
+ '&showName=' +
323
+ row.fileName +
324
+ '&jwt=' +
325
+ jwt,
326
+ }
327
+ const http = this.$http
328
+ http
329
+ .post(
330
+ window.$vueApp.config.globalProperties.baseURL +
331
+ '/common/fs-upload/des-encrypt',
332
+ map
333
+ )
334
+ .then((data) => {
335
+ window.open(window.$vueApp.config.globalProperties.isOffice + data)
336
+ })
337
+ } else {
338
+ let showName
339
+ const split = row.fileName.split('.')
340
+ if (
341
+ split[split.length - 1].toLowerCase() === 'xls' ||
342
+ split[split.length - 1].toLowerCase() === 'xlsx' ||
343
+ split[split.length - 1].toLowerCase() === 'csv'
344
+ ) {
345
+ showName = split[0] + '.html'
346
+ } else {
347
+ showName = split[0] + '.pdf'
348
+ }
349
+ const token = getToken()
350
+ if (window.$vueApp.config.globalProperties.customPreviewUrl) {
351
+ window.open(
352
+ getSystemFrontendUrl(
353
+ window.$vueApp.config.globalProperties.portalUrl
354
+ ) +
355
+ '/#/file-service/preview?serverPath=' +
356
+ row.uuid +
357
+ '&showName=' +
358
+ encodeURI(row.fileName),
359
+ showName
360
+ )
361
+ } else {
362
+ let url =
363
+ window.$vueApp.config.globalProperties.baseURL +
364
+ '/common/fs-upload/preview?serverPath=' +
365
+ row.uuid +
366
+ '&showName=' +
367
+ row.fileName +
368
+ '&jwt=' +
369
+ token
370
+ if (isPlateSys(window.$vueApp.config.globalProperties.systemCode)) {
371
+ url =
372
+ window.$vueApp.config.globalProperties.baseAPI +
373
+ '/common/fs-upload/preview?serverPath=' +
374
+ row.uuid +
375
+ '&showName=' +
376
+ row.fileName +
377
+ '&jwt=' +
378
+ token
379
+ }
380
+ window.open(url, showName)
381
+ }
382
+ }
383
+ },
384
+ // 上传
385
+ upload(params) {
386
+ let message
387
+ if (this.fileSize) {
388
+ if (
389
+ this.fileSize !== 0 &&
390
+ this.unifiedEnclosures.length >= this.fileSize
391
+ ) {
392
+ message =
393
+ this.$t('fsUpload.theNumberOfUploadsExceedsTheLimitTheLimitIs') +
394
+ ':' +
395
+ this.fileSize
396
+ }
397
+ }
398
+
399
+ if (!message) {
400
+ this.loading = true
401
+ const param = new FormData()
402
+ param.append('file', this.$refs.uploadTemplate.files[0])
403
+ const http = this.$http
404
+ http.headers = "'Content-Type': 'multipart/form-data'"
405
+ http
406
+ .post(
407
+ window.$vueApp.config.globalProperties.baseURL +
408
+ '/common/fs-upload/upload-template/' +
409
+ this.systemCode,
410
+ param,
411
+ { headers: { 'Content-Type': 'multipart/form-data' } }
412
+ )
413
+ .then((data) => {
414
+ this.unifiedEnclosures.push(data)
415
+ params.target.value = ''
416
+ console.log('data', data)
417
+ this.judgeImg()
418
+ console.log(' this.unifiedEnclosures', this.unifiedEnclosures)
419
+ this.onSuccess()
420
+ this.$message({
421
+ showClose: true,
422
+ type: 'success',
423
+ message: this.$t('fsUpload.uploadSucceeded'),
424
+ })
425
+ this.loading = false
426
+ })
427
+ .catch(() => {
428
+ params.target.value = ''
429
+ this.loading = false
430
+ })
431
+ } else {
432
+ params.target.value = ''
433
+ this.$message({
434
+ showClose: true,
435
+ type: 'warning',
436
+ message: message,
437
+ })
438
+ }
439
+ },
440
+ },
441
+ emits: ['onSuccess', 'deleteSuccess'],
442
+ }
443
+ </script>