eoss-ui 0.6.19 → 0.6.20

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 (102) hide show
  1. package/lib/eoss-ui.common.js +780 -678
  2. package/lib/flow.js +619 -515
  3. package/lib/index.js +1 -1
  4. package/lib/login.js +3 -2
  5. package/lib/main.js +143 -146
  6. package/lib/qr-code.js +13 -13
  7. package/lib/theme-chalk/index.css +1 -1
  8. package/lib/theme-chalk/login.css +1 -1
  9. package/package.json +157 -157
  10. package/packages/button/src/main.vue +418 -418
  11. package/packages/button-group/src/main.vue +298 -298
  12. package/packages/checkbox-group/src/main.vue +333 -333
  13. package/packages/clients/src/main.vue +144 -144
  14. package/packages/data-table/src/children.vue +39 -39
  15. package/packages/data-table/src/column.vue +983 -983
  16. package/packages/data-table/src/main.vue +1812 -1812
  17. package/packages/data-table/src/sizer.vue +195 -195
  18. package/packages/date-picker/src/main.vue +236 -236
  19. package/packages/flow/src/component/CustomPreset.vue +1 -1
  20. package/packages/flow/src/component/Preset.vue +1 -1
  21. package/packages/flow/src/component/SendMsg.vue +3 -1
  22. package/packages/flow/src/component/taskUnionExamine.vue +38 -20
  23. package/packages/flow/src/main.vue +2731 -2711
  24. package/packages/flow/src/processForm.vue +13 -2
  25. package/packages/flow/src/processReject.vue +14 -3
  26. package/packages/flow/src/startTaskRead.vue +23 -5
  27. package/packages/flow-group/src/main.vue +684 -684
  28. package/packages/form/src/main.vue +3582 -3582
  29. package/packages/form/src/table.vue +1420 -1420
  30. package/packages/handle-user/src/main.vue +134 -134
  31. package/packages/handler/src/main.vue +374 -374
  32. package/packages/icon/src/main.vue +101 -101
  33. package/packages/input/src/main.vue +356 -356
  34. package/packages/login/src/main.vue +1851 -1850
  35. package/packages/login/src/resetPassword.vue +557 -557
  36. package/packages/main/src/default/message.vue +249 -249
  37. package/packages/main/src/default/notice.vue +157 -157
  38. package/packages/main/src/default/userinfo.vue +494 -494
  39. package/packages/main/src/public/online.vue +89 -89
  40. package/packages/main/src/public/search.vue +454 -454
  41. package/packages/main/src/public/settings.vue +221 -221
  42. package/packages/main/src/simplicity/apps.vue +388 -388
  43. package/packages/main/src/simplicity/avatar.vue +82 -82
  44. package/packages/main/src/simplicity/handler.vue +183 -183
  45. package/packages/main/src/simplicity/index.vue +1930 -1931
  46. package/packages/main/src/simplicity/lists.vue +84 -84
  47. package/packages/main/src/simplicity/menu-list.vue +128 -128
  48. package/packages/main/src/simplicity/message.vue +259 -259
  49. package/packages/main/src/simplicity/notice.vue +190 -190
  50. package/packages/main/src/simplicity/router-page.vue +45 -45
  51. package/packages/main/src/simplicity/sub-menu.vue +241 -241
  52. package/packages/main/src/simplicity/user.vue +248 -248
  53. package/packages/main/src/simplicity/userinfo.vue +304 -304
  54. package/packages/menu/src/main.vue +536 -536
  55. package/packages/pagination/src/main.vue +96 -96
  56. package/packages/qr-code/src/main.vue +170 -170
  57. package/packages/radio-group/src/main.vue +319 -319
  58. package/packages/select/src/main.vue +761 -761
  59. package/packages/selector/src/main.vue +677 -677
  60. package/packages/selector-panel/src/main.vue +1020 -1020
  61. package/packages/selector-panel/src/selection.vue +160 -160
  62. package/packages/tabs/src/main.vue +788 -788
  63. package/packages/theme-chalk/lib/index.css +1 -1
  64. package/packages/theme-chalk/lib/login.css +1 -1
  65. package/packages/theme-chalk/src/base.scss +260 -260
  66. package/packages/theme-chalk/src/button-group.scss +175 -175
  67. package/packages/theme-chalk/src/calendar.scss +113 -113
  68. package/packages/theme-chalk/src/clients.scss +87 -87
  69. package/packages/theme-chalk/src/common/var.scss +1 -4
  70. package/packages/theme-chalk/src/data-table.scss +276 -276
  71. package/packages/theme-chalk/src/dialog.scss +77 -77
  72. package/packages/theme-chalk/src/flow-group.scss +110 -110
  73. package/packages/theme-chalk/src/form.scss +496 -496
  74. package/packages/theme-chalk/src/handler.scss +133 -133
  75. package/packages/theme-chalk/src/icon.scss +1745 -1745
  76. package/packages/theme-chalk/src/icons.scss +99 -99
  77. package/packages/theme-chalk/src/login.scss +917 -926
  78. package/packages/theme-chalk/src/main.scss +632 -632
  79. package/packages/theme-chalk/src/menu.scss +222 -222
  80. package/packages/theme-chalk/src/nav.scss +125 -125
  81. package/packages/theme-chalk/src/pagination.scss +29 -29
  82. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  83. package/packages/theme-chalk/src/simplicity.scss +1246 -1246
  84. package/packages/theme-chalk/src/tabs.scss +87 -87
  85. package/packages/theme-chalk/src/toolbar.scss +179 -179
  86. package/packages/theme-chalk/src/tree-group.scss +72 -72
  87. package/packages/theme-chalk/src/tree.scss +165 -165
  88. package/packages/upload/src/main.vue +1313 -1313
  89. package/packages/wujie/src/main.vue +145 -145
  90. package/src/config/api.js +236 -236
  91. package/src/config/image.js +2 -2
  92. package/src/index.js +157 -157
  93. package/packages/.DS_Store +0 -0
  94. package/packages/checkbox-group/.DS_Store +0 -0
  95. package/packages/data-table/.DS_Store +0 -0
  96. package/packages/dialog/.DS_Store +0 -0
  97. package/packages/handler/.DS_Store +0 -0
  98. package/packages/login/.DS_Store +0 -0
  99. package/packages/main/.DS_Store +0 -0
  100. package/packages/main/src/.DS_Store +0 -0
  101. package/packages/theme-chalk/src/.DS_Store +0 -0
  102. package/src/.DS_Store +0 -0
@@ -1,388 +1,388 @@
1
- <template>
2
- <el-drawer
3
- class="es-simplicity-apps"
4
- direction="ltr"
5
- modal-class="es-simplicity-apps-modal"
6
- size="90%"
7
- :modal-append-to-body="false"
8
- :with-header="false"
9
- :visible.sync="show"
10
- >
11
- <div class="es-simplicity_apps">
12
- <div class="es-simplicity_apps-all">
13
- <div class="es-simplicity_apps-title">
14
- 所有业务系统
15
- <el-input
16
- class="es-simplicity_apps-search"
17
- size="medium"
18
- placeholder="请输入关键字"
19
- prefix-icon="el-icon-search"
20
- v-model="value"
21
- >
22
- </el-input>
23
- </div>
24
- <div class="es-simplicity_apps-box" @mousewheel="handleWheel">
25
- <ul class="es-simplicity_apps-list">
26
- <li
27
- v-for="item in _applications"
28
- class="es-simplicity_apps-list-item"
29
- :key="item.id"
30
- >
31
- <div
32
- class="es-simplicity_apps-list-content"
33
- :class="{ 'es-simplicity_apps-disabled': !item.permission }"
34
- @click="handleClick(item)"
35
- >
36
- <el-badge v-bind="getBadge(item)">
37
- <es-icon
38
- class="es-simplicity_apps-icon"
39
- :contents="item.icons || item.icon || menuIcon"
40
- ></es-icon>
41
- </el-badge>
42
- <div class="es-simplicity_apps-text">
43
- {{ item.text || item.name }}
44
- </div>
45
- <div class="es-simplicity_apps-hover">
46
- <es-icon
47
- class="es-simplicity_apps-icon"
48
- :contents="
49
- item.permission ? 'es-icon-jiantou-next' : 'es-icon-mm'
50
- "
51
- ></es-icon>
52
- <div class="es-simplicity_apps-text">
53
- {{ item.permission ? '进入系统' : '暂无权限' }}
54
- </div>
55
- </div>
56
- </div>
57
- </li>
58
- </ul>
59
- </div>
60
- <el-pagination
61
- class="es-simplicity_apps-pagination"
62
- background
63
- layout="total,prev, pager, next"
64
- total-text="共 {total} 个业务系统"
65
- :page-size="appSize"
66
- :total="apps.length"
67
- :current-page.sync="appNum"
68
- @current-change="
69
- (res) => {
70
- this.handleChange(res, 0);
71
- }
72
- "
73
- >
74
- </el-pagination>
75
- </div>
76
- <div class="es-simplicity_apps-other">
77
- <div class="es-simplicity_apps-business">
78
- <div class="es-simplicity_apps-title">专项业务系统</div>
79
- <ul class="es-simplicity_apps-list">
80
- <li
81
- v-for="(item, index) in _business"
82
- class="es-simplicity_apps-list-item"
83
- :key="item.id"
84
- >
85
- <div
86
- class="es-simplicity_apps-list-content"
87
- :class="{ 'es-simplicity_apps-disabled': !item.permission }"
88
- @click="handleClick(item)"
89
- >
90
- <es-icon
91
- class="es-simplicity_app-icon"
92
- :style="setStyle(index)"
93
- :contents="item.icons || item.icon || menuIcon"
94
- ></es-icon>
95
- <el-badge
96
- v-bind="getBadge(item)"
97
- class="es-simplicity_apps-texts"
98
- >
99
- <div class="es-simplicity_apps-text">
100
- {{ item.text || item.name }}
101
- </div>
102
- </el-badge>
103
- <div class="es-simplicity_apps-hover">
104
- <es-icon
105
- class="es-simplicity_apps-icon"
106
- :contents="
107
- item.permission ? 'es-icon-jiantou-next' : 'es-icon-mm'
108
- "
109
- ></es-icon>
110
- <div class="es-simplicity_apps-text">
111
- {{ item.permission ? '进入系统' : '暂无权限' }}
112
- </div>
113
- </div>
114
- </div>
115
- </li>
116
- </ul>
117
- <el-pagination
118
- class="es-simplicity_apps-pagination"
119
- background
120
- layout="total,prev, pager, next"
121
- total-text="共 {total} 专项业务系统"
122
- :page-size="bsSize"
123
- :total="business.length"
124
- @current-change="
125
- (res) => {
126
- this.handleChange(res, 1);
127
- }
128
- "
129
- >
130
- </el-pagination>
131
- </div>
132
- <div class="es-simplicity_apps-systems">
133
- <div class="es-simplicity_apps-title">系统设置</div>
134
- <ul class="es-simplicity_apps-list">
135
- <li
136
- v-for="(item, index) in _systems"
137
- class="es-simplicity_apps-list-item"
138
- :key="item.id"
139
- >
140
- <div
141
- class="es-simplicity_apps-list-content"
142
- :class="{ 'es-simplicity_apps-disabled': !item.permission }"
143
- @click="handleClick(item)"
144
- >
145
- <es-icon
146
- class="es-simplicity_app-icon"
147
- :style="setStyle(index)"
148
- :contents="item.icons || item.icon || menuIcon"
149
- ></es-icon>
150
- <el-badge
151
- v-bind="getBadge(item)"
152
- class="es-simplicity_apps-texts"
153
- >
154
- <div class="es-simplicity_apps-text">
155
- {{ item.text || item.name }}
156
- </div>
157
- </el-badge>
158
- <div class="es-simplicity_apps-hover">
159
- <es-icon
160
- class="es-simplicity_apps-icon"
161
- :contents="
162
- item.permission ? 'es-icon-jiantou-next' : 'es-icon-mm'
163
- "
164
- ></es-icon>
165
- <div class="es-simplicity_apps-text">
166
- {{ item.permission ? '进入系统' : '暂无权限' }}
167
- </div>
168
- </div>
169
- </div>
170
- </li>
171
- </ul>
172
- <el-pagination
173
- class="es-simplicity_apps-pagination"
174
- background
175
- layout="total,prev, pager, next"
176
- total-text="共 {total} 系统设置"
177
- hide-on-single-page
178
- :page-size="sysSize"
179
- :total="systems.length"
180
- @current-change="
181
- (res) => {
182
- this.handleChange(res, 2);
183
- }
184
- "
185
- >
186
- </el-pagination>
187
- </div>
188
- </div>
189
- </div>
190
- </el-drawer>
191
- </template>
192
-
193
- <script>
194
- import util from 'eoss-ui/src/utils/util';
195
- import { debounce } from 'throttle-debounce';
196
- import { recordUserApp } from 'eoss-ui/src/config/api.js';
197
- export default {
198
- name: 'Apps',
199
- components: {},
200
- props: {
201
- user: Object,
202
- visible: Boolean,
203
- //菜单、应用默认图标
204
- menuIcon: String,
205
- color: {
206
- type: [String, Array],
207
- default: '#fff'
208
- },
209
- backgroundColor: {
210
- type: [String, Array],
211
- default() {
212
- return [
213
- '#0B3978',
214
- '#2591F7',
215
- '#69C0FF',
216
- '#E34D59',
217
- '#2591F7',
218
- '#FF9C52',
219
- '#17C27B'
220
- ];
221
- }
222
- },
223
- applications: {
224
- type: Array,
225
- default() {
226
- return [];
227
- }
228
- },
229
- //业务系统
230
- business: {
231
- type: Array,
232
- default() {
233
- return [];
234
- }
235
- },
236
- //系统管理
237
- systems: {
238
- type: Array,
239
- default() {
240
- return [];
241
- }
242
- }
243
- },
244
- data() {
245
- return {
246
- value: '',
247
- apps: [],
248
- appSize: 20,
249
- appNum: 1,
250
- bsSize: 8,
251
- bsNum: 1,
252
- sysSize: 2,
253
- sysNum: 1
254
- };
255
- },
256
- computed: {
257
- show: {
258
- get() {
259
- return this.visible;
260
- },
261
- set(val) {
262
- this.$emit('update:visible', val);
263
- return val;
264
- }
265
- },
266
- _applications() {
267
- return this.apps.filter((item, index) => {
268
- return (
269
- index > (this.appNum - 1) * this.appSize - 1 &&
270
- index < this.appNum * this.appSize
271
- );
272
- });
273
- },
274
- _business() {
275
- return this.business.filter((item, index) => {
276
- return (
277
- index > (this.bsNum - 1) * this.bsSize - 1 &&
278
- index < this.bsNum * this.bsSize
279
- );
280
- });
281
- },
282
- _systems() {
283
- return this.systems.filter((item, index) => {
284
- return (
285
- index > (this.sysNum - 1) * this.sysSize - 1 &&
286
- index < this.sysNum * this.sysSize
287
- );
288
- });
289
- }
290
- },
291
- watch: {
292
- applications: {
293
- deep: true,
294
- handler() {
295
- this.getApps();
296
- }
297
- },
298
- value() {
299
- this.getApps();
300
- }
301
- },
302
- beforeCreate() {
303
- this.getApps = debounce(500, () => {
304
- this.getApp();
305
- });
306
- },
307
- created() {},
308
- mounted() {
309
- this.getApps();
310
- },
311
- methods: {
312
- getApp() {
313
- this.apps = this.value
314
- ? this.applications.filter((item) => {
315
- return (item.name || item.text).indexOf(this.value) > -1;
316
- })
317
- : this.applications;
318
- },
319
- setStyle(num) {
320
- let obj = {};
321
- if (this.color) {
322
- obj.color = this.color;
323
- if (Array.isArray(this.color)) {
324
- obj.color = this.color[num % this.color.length];
325
- } else {
326
- obj.color = this.color;
327
- }
328
- }
329
- if (this.backgroundColor) {
330
- if (Array.isArray(this.backgroundColor)) {
331
- obj.backgroundColor =
332
- this.backgroundColor[num % this.backgroundColor.length];
333
- } else {
334
- obj.backgroundColor = this.backgroundColor;
335
- }
336
- }
337
- return obj;
338
- },
339
- handleChange(res, index) {
340
- let name = ['appNum', 'bsNum', 'sysNum'];
341
- this[name[index]] = res;
342
- },
343
- handleWheel(e) {
344
- let direction = e.deltaY > 0 ? 'down' : 'up'; //deltaY为正则滚轮向下,为负滚轮向上
345
- let total = Math.ceil(this.apps.length / this.appSize);
346
- if (direction == 'up' && this.appNum > 1) {
347
- this.appNum -= 1;
348
- }
349
- if (direction == 'down' && this.appNum < total) {
350
- this.appNum += 1;
351
- }
352
- },
353
- handleClick(res) {
354
- util
355
- .ajax({
356
- url: recordUserApp,
357
- params: {
358
- userId: this.user.userId,
359
- appId: res.id
360
- }
361
- })
362
- .then(() => {})
363
- .catch(() => {});
364
- this.$emit('click', res);
365
- },
366
- /**
367
- * @desc:获取气泡提醒
368
- * @author huangbo
369
- * @date 2024年9月7日
370
- **/
371
- getBadge(res) {
372
- let num = res.tips || 0;
373
- return num === true
374
- ? {
375
- isDot: true
376
- //hidden: item.tips
377
- }
378
- : {
379
- value: num,
380
- max: 99,
381
- hidden: !num
382
- };
383
- }
384
- }
385
- };
386
- </script>
387
-
388
- <style lang="scss" scoped></style>
1
+ <template>
2
+ <el-drawer
3
+ class="es-simplicity-apps"
4
+ direction="ltr"
5
+ modal-class="es-simplicity-apps-modal"
6
+ size="90%"
7
+ :modal-append-to-body="false"
8
+ :with-header="false"
9
+ :visible.sync="show"
10
+ >
11
+ <div class="es-simplicity_apps">
12
+ <div class="es-simplicity_apps-all">
13
+ <div class="es-simplicity_apps-title">
14
+ 所有业务系统
15
+ <el-input
16
+ class="es-simplicity_apps-search"
17
+ size="medium"
18
+ placeholder="请输入关键字"
19
+ prefix-icon="el-icon-search"
20
+ v-model="value"
21
+ >
22
+ </el-input>
23
+ </div>
24
+ <div class="es-simplicity_apps-box" @mousewheel="handleWheel">
25
+ <ul class="es-simplicity_apps-list">
26
+ <li
27
+ v-for="item in _applications"
28
+ class="es-simplicity_apps-list-item"
29
+ :key="item.id"
30
+ >
31
+ <div
32
+ class="es-simplicity_apps-list-content"
33
+ :class="{ 'es-simplicity_apps-disabled': !item.permission }"
34
+ @click="handleClick(item)"
35
+ >
36
+ <el-badge v-bind="getBadge(item)">
37
+ <es-icon
38
+ class="es-simplicity_apps-icon"
39
+ :contents="item.icons || item.icon || menuIcon"
40
+ ></es-icon>
41
+ </el-badge>
42
+ <div class="es-simplicity_apps-text">
43
+ {{ item.text || item.name }}
44
+ </div>
45
+ <div class="es-simplicity_apps-hover">
46
+ <es-icon
47
+ class="es-simplicity_apps-icon"
48
+ :contents="
49
+ item.permission ? 'es-icon-jiantou-next' : 'es-icon-mm'
50
+ "
51
+ ></es-icon>
52
+ <div class="es-simplicity_apps-text">
53
+ {{ item.permission ? '进入系统' : '暂无权限' }}
54
+ </div>
55
+ </div>
56
+ </div>
57
+ </li>
58
+ </ul>
59
+ </div>
60
+ <el-pagination
61
+ class="es-simplicity_apps-pagination"
62
+ background
63
+ layout="total,prev, pager, next"
64
+ total-text="共 {total} 个业务系统"
65
+ :page-size="appSize"
66
+ :total="apps.length"
67
+ :current-page.sync="appNum"
68
+ @current-change="
69
+ (res) => {
70
+ this.handleChange(res, 0);
71
+ }
72
+ "
73
+ >
74
+ </el-pagination>
75
+ </div>
76
+ <div class="es-simplicity_apps-other">
77
+ <div class="es-simplicity_apps-business">
78
+ <div class="es-simplicity_apps-title">专项业务系统</div>
79
+ <ul class="es-simplicity_apps-list">
80
+ <li
81
+ v-for="(item, index) in _business"
82
+ class="es-simplicity_apps-list-item"
83
+ :key="item.id"
84
+ >
85
+ <div
86
+ class="es-simplicity_apps-list-content"
87
+ :class="{ 'es-simplicity_apps-disabled': !item.permission }"
88
+ @click="handleClick(item)"
89
+ >
90
+ <es-icon
91
+ class="es-simplicity_app-icon"
92
+ :style="setStyle(index)"
93
+ :contents="item.icons || item.icon || menuIcon"
94
+ ></es-icon>
95
+ <el-badge
96
+ v-bind="getBadge(item)"
97
+ class="es-simplicity_apps-texts"
98
+ >
99
+ <div class="es-simplicity_apps-text">
100
+ {{ item.text || item.name }}
101
+ </div>
102
+ </el-badge>
103
+ <div class="es-simplicity_apps-hover">
104
+ <es-icon
105
+ class="es-simplicity_apps-icon"
106
+ :contents="
107
+ item.permission ? 'es-icon-jiantou-next' : 'es-icon-mm'
108
+ "
109
+ ></es-icon>
110
+ <div class="es-simplicity_apps-text">
111
+ {{ item.permission ? '进入系统' : '暂无权限' }}
112
+ </div>
113
+ </div>
114
+ </div>
115
+ </li>
116
+ </ul>
117
+ <el-pagination
118
+ class="es-simplicity_apps-pagination"
119
+ background
120
+ layout="total,prev, pager, next"
121
+ total-text="共 {total} 专项业务系统"
122
+ :page-size="bsSize"
123
+ :total="business.length"
124
+ @current-change="
125
+ (res) => {
126
+ this.handleChange(res, 1);
127
+ }
128
+ "
129
+ >
130
+ </el-pagination>
131
+ </div>
132
+ <div class="es-simplicity_apps-systems">
133
+ <div class="es-simplicity_apps-title">系统设置</div>
134
+ <ul class="es-simplicity_apps-list">
135
+ <li
136
+ v-for="(item, index) in _systems"
137
+ class="es-simplicity_apps-list-item"
138
+ :key="item.id"
139
+ >
140
+ <div
141
+ class="es-simplicity_apps-list-content"
142
+ :class="{ 'es-simplicity_apps-disabled': !item.permission }"
143
+ @click="handleClick(item)"
144
+ >
145
+ <es-icon
146
+ class="es-simplicity_app-icon"
147
+ :style="setStyle(index)"
148
+ :contents="item.icons || item.icon || menuIcon"
149
+ ></es-icon>
150
+ <el-badge
151
+ v-bind="getBadge(item)"
152
+ class="es-simplicity_apps-texts"
153
+ >
154
+ <div class="es-simplicity_apps-text">
155
+ {{ item.text || item.name }}
156
+ </div>
157
+ </el-badge>
158
+ <div class="es-simplicity_apps-hover">
159
+ <es-icon
160
+ class="es-simplicity_apps-icon"
161
+ :contents="
162
+ item.permission ? 'es-icon-jiantou-next' : 'es-icon-mm'
163
+ "
164
+ ></es-icon>
165
+ <div class="es-simplicity_apps-text">
166
+ {{ item.permission ? '进入系统' : '暂无权限' }}
167
+ </div>
168
+ </div>
169
+ </div>
170
+ </li>
171
+ </ul>
172
+ <el-pagination
173
+ class="es-simplicity_apps-pagination"
174
+ background
175
+ layout="total,prev, pager, next"
176
+ total-text="共 {total} 系统设置"
177
+ hide-on-single-page
178
+ :page-size="sysSize"
179
+ :total="systems.length"
180
+ @current-change="
181
+ (res) => {
182
+ this.handleChange(res, 2);
183
+ }
184
+ "
185
+ >
186
+ </el-pagination>
187
+ </div>
188
+ </div>
189
+ </div>
190
+ </el-drawer>
191
+ </template>
192
+
193
+ <script>
194
+ import util from 'eoss-ui/src/utils/util';
195
+ import { debounce } from 'throttle-debounce';
196
+ import { recordUserApp } from 'eoss-ui/src/config/api.js';
197
+ export default {
198
+ name: 'Apps',
199
+ components: {},
200
+ props: {
201
+ user: Object,
202
+ visible: Boolean,
203
+ //菜单、应用默认图标
204
+ menuIcon: String,
205
+ color: {
206
+ type: [String, Array],
207
+ default: '#fff'
208
+ },
209
+ backgroundColor: {
210
+ type: [String, Array],
211
+ default() {
212
+ return [
213
+ '#0B3978',
214
+ '#2591F7',
215
+ '#69C0FF',
216
+ '#E34D59',
217
+ '#2591F7',
218
+ '#FF9C52',
219
+ '#17C27B'
220
+ ];
221
+ }
222
+ },
223
+ applications: {
224
+ type: Array,
225
+ default() {
226
+ return [];
227
+ }
228
+ },
229
+ //业务系统
230
+ business: {
231
+ type: Array,
232
+ default() {
233
+ return [];
234
+ }
235
+ },
236
+ //系统管理
237
+ systems: {
238
+ type: Array,
239
+ default() {
240
+ return [];
241
+ }
242
+ }
243
+ },
244
+ data() {
245
+ return {
246
+ value: '',
247
+ apps: [],
248
+ appSize: 20,
249
+ appNum: 1,
250
+ bsSize: 8,
251
+ bsNum: 1,
252
+ sysSize: 2,
253
+ sysNum: 1
254
+ };
255
+ },
256
+ computed: {
257
+ show: {
258
+ get() {
259
+ return this.visible;
260
+ },
261
+ set(val) {
262
+ this.$emit('update:visible', val);
263
+ return val;
264
+ }
265
+ },
266
+ _applications() {
267
+ return this.apps.filter((item, index) => {
268
+ return (
269
+ index > (this.appNum - 1) * this.appSize - 1 &&
270
+ index < this.appNum * this.appSize
271
+ );
272
+ });
273
+ },
274
+ _business() {
275
+ return this.business.filter((item, index) => {
276
+ return (
277
+ index > (this.bsNum - 1) * this.bsSize - 1 &&
278
+ index < this.bsNum * this.bsSize
279
+ );
280
+ });
281
+ },
282
+ _systems() {
283
+ return this.systems.filter((item, index) => {
284
+ return (
285
+ index > (this.sysNum - 1) * this.sysSize - 1 &&
286
+ index < this.sysNum * this.sysSize
287
+ );
288
+ });
289
+ }
290
+ },
291
+ watch: {
292
+ applications: {
293
+ deep: true,
294
+ handler() {
295
+ this.getApps();
296
+ }
297
+ },
298
+ value() {
299
+ this.getApps();
300
+ }
301
+ },
302
+ beforeCreate() {
303
+ this.getApps = debounce(500, () => {
304
+ this.getApp();
305
+ });
306
+ },
307
+ created() {},
308
+ mounted() {
309
+ this.getApps();
310
+ },
311
+ methods: {
312
+ getApp() {
313
+ this.apps = this.value
314
+ ? this.applications.filter((item) => {
315
+ return (item.name || item.text).indexOf(this.value) > -1;
316
+ })
317
+ : this.applications;
318
+ },
319
+ setStyle(num) {
320
+ let obj = {};
321
+ if (this.color) {
322
+ obj.color = this.color;
323
+ if (Array.isArray(this.color)) {
324
+ obj.color = this.color[num % this.color.length];
325
+ } else {
326
+ obj.color = this.color;
327
+ }
328
+ }
329
+ if (this.backgroundColor) {
330
+ if (Array.isArray(this.backgroundColor)) {
331
+ obj.backgroundColor =
332
+ this.backgroundColor[num % this.backgroundColor.length];
333
+ } else {
334
+ obj.backgroundColor = this.backgroundColor;
335
+ }
336
+ }
337
+ return obj;
338
+ },
339
+ handleChange(res, index) {
340
+ let name = ['appNum', 'bsNum', 'sysNum'];
341
+ this[name[index]] = res;
342
+ },
343
+ handleWheel(e) {
344
+ let direction = e.deltaY > 0 ? 'down' : 'up'; //deltaY为正则滚轮向下,为负滚轮向上
345
+ let total = Math.ceil(this.apps.length / this.appSize);
346
+ if (direction == 'up' && this.appNum > 1) {
347
+ this.appNum -= 1;
348
+ }
349
+ if (direction == 'down' && this.appNum < total) {
350
+ this.appNum += 1;
351
+ }
352
+ },
353
+ handleClick(res) {
354
+ util
355
+ .ajax({
356
+ url: recordUserApp,
357
+ params: {
358
+ userId: this.user.userId,
359
+ appId: res.id
360
+ }
361
+ })
362
+ .then(() => {})
363
+ .catch(() => {});
364
+ this.$emit('click', res);
365
+ },
366
+ /**
367
+ * @desc:获取气泡提醒
368
+ * @author huangbo
369
+ * @date 2024年9月7日
370
+ **/
371
+ getBadge(res) {
372
+ let num = res.tips || 0;
373
+ return num === true
374
+ ? {
375
+ isDot: true
376
+ //hidden: item.tips
377
+ }
378
+ : {
379
+ value: num,
380
+ max: 99,
381
+ hidden: !num
382
+ };
383
+ }
384
+ }
385
+ };
386
+ </script>
387
+
388
+ <style lang="scss" scoped></style>