eoss-ui 0.6.38 → 0.6.39

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 (261) hide show
  1. package/lib/button-group.js +535 -374
  2. package/lib/button.js +535 -374
  3. package/lib/checkbox-group.js +536 -375
  4. package/lib/config/api.js +31 -19
  5. package/lib/data-table-form.js +547 -386
  6. package/lib/data-table.js +547 -382
  7. package/lib/date-picker.js +535 -374
  8. package/lib/dialog.js +535 -374
  9. package/lib/eoss-ui.common.js +11182 -4328
  10. package/lib/error-page.js +4 -4
  11. package/lib/flow-group.js +553 -377
  12. package/lib/flow-list.js +621 -460
  13. package/lib/flow.js +9822 -2988
  14. package/lib/form.js +540 -379
  15. package/lib/handle-user.js +536 -375
  16. package/lib/handler.js +536 -375
  17. package/lib/icon.js +536 -375
  18. package/lib/index.js +1 -1
  19. package/lib/input-number.js +535 -374
  20. package/lib/input.js +535 -374
  21. package/lib/layout.js +2 -2
  22. package/lib/login.js +550 -389
  23. package/lib/main.js +704 -543
  24. package/lib/nav.js +535 -374
  25. package/lib/notify.js +127 -109
  26. package/lib/page.js +535 -374
  27. package/lib/pagination.js +535 -374
  28. package/lib/player.js +535 -374
  29. package/lib/qr-code.js +548 -387
  30. package/lib/radio-group.js +536 -375
  31. package/lib/retrial-auth.js +538 -377
  32. package/lib/select-ganged.js +536 -375
  33. package/lib/select.js +536 -375
  34. package/lib/selector-panel.js +558 -396
  35. package/lib/selector.js +539 -378
  36. package/lib/sizer.js +541 -380
  37. package/lib/steps.js +535 -374
  38. package/lib/switch.js +535 -374
  39. package/lib/table-form.js +535 -374
  40. package/lib/tabs.js +539 -378
  41. package/lib/theme-chalk/flow.css +1 -1
  42. package/lib/theme-chalk/index.css +1 -1
  43. package/lib/tips.js +536 -375
  44. package/lib/tree-group.js +535 -374
  45. package/lib/tree.js +536 -375
  46. package/lib/upload.js +545 -384
  47. package/lib/utils/util.js +411 -268
  48. package/lib/wujie.js +535 -374
  49. package/lib/wxlogin.js +535 -374
  50. package/package.json +159 -158
  51. package/packages/button/index.js +5 -5
  52. package/packages/button/src/main.vue +418 -418
  53. package/packages/button-group/index.js +5 -5
  54. package/packages/button-group/src/main.vue +298 -298
  55. package/packages/calendar/index.js +5 -5
  56. package/packages/card/index.js +5 -5
  57. package/packages/card/src/main.vue +156 -156
  58. package/packages/cascader/index.js +5 -5
  59. package/packages/cascader/src/main.vue +168 -168
  60. package/packages/checkbox-group/index.js +5 -5
  61. package/packages/checkbox-group/src/main.vue +333 -333
  62. package/packages/clients/index.js +5 -5
  63. package/packages/clients/src/main.vue +144 -144
  64. package/packages/data-table/index.js +5 -5
  65. package/packages/data-table/src/children.vue +39 -39
  66. package/packages/data-table/src/column.vue +983 -983
  67. package/packages/data-table/src/main.vue +1820 -1816
  68. package/packages/data-table/src/sizer.vue +195 -195
  69. package/packages/data-table-form/index.js +5 -5
  70. package/packages/data-table-form/src/checkbox.vue +101 -101
  71. package/packages/data-table-form/src/colgroup.vue +17 -17
  72. package/packages/data-table-form/src/main.vue +181 -181
  73. package/packages/data-table-form/src/radio.vue +65 -65
  74. package/packages/data-table-form/src/table.vue +233 -233
  75. package/packages/data-table-form/src/tbody.vue +336 -336
  76. package/packages/data-table-form/src/thead.vue +68 -68
  77. package/packages/date-picker/index.js +5 -5
  78. package/packages/date-picker/src/main.vue +236 -236
  79. package/packages/dialog/index.js +5 -5
  80. package/packages/enterprise/index.js +5 -5
  81. package/packages/enterprise/src/main.vue +66 -66
  82. package/packages/error-page/index.js +5 -5
  83. package/packages/error-page/src/main.vue +44 -44
  84. package/packages/flow/index.js +5 -5
  85. package/packages/flow/src/component/CommonOpinions.vue +345 -341
  86. package/packages/flow/src/component/CustomPreset.vue +322 -322
  87. package/packages/flow/src/component/FileList.vue +99 -99
  88. package/packages/flow/src/component/Preset.vue +255 -255
  89. package/packages/flow/src/component/SendMsg.vue +229 -229
  90. package/packages/flow/src/component/TimeLimit.vue +190 -190
  91. package/packages/flow/src/component/taskUnionExamine.vue +603 -547
  92. package/packages/flow/src/form.vue +121 -121
  93. package/packages/flow/src/freeStartFlow.vue +2843 -0
  94. package/packages/flow/src/main.vue +2864 -2731
  95. package/packages/flow/src/processForm.vue +1007 -954
  96. package/packages/flow/src/processReject.vue +293 -293
  97. package/packages/flow/src/reset.vue +901 -0
  98. package/packages/flow/src/selectUser.vue +5 -0
  99. package/packages/flow/src/startTaskRead.vue +596 -596
  100. package/packages/flow/src/table.vue +58 -58
  101. package/packages/flow-group/index.js +5 -5
  102. package/packages/flow-group/src/main.vue +688 -684
  103. package/packages/flow-list/index.js +5 -5
  104. package/packages/flow-list/src/main.vue +1172 -1172
  105. package/packages/form/index.js +5 -5
  106. package/packages/form/src/main.vue +3584 -3584
  107. package/packages/form/src/table.vue +1420 -1420
  108. package/packages/handle-user/index.js +5 -5
  109. package/packages/handle-user/src/main.vue +138 -138
  110. package/packages/handler/index.js +5 -5
  111. package/packages/handler/src/main.vue +388 -388
  112. package/packages/icon/index.js +5 -5
  113. package/packages/icon/src/main.vue +101 -101
  114. package/packages/icons/index.js +5 -5
  115. package/packages/icons/src/main.vue +81 -81
  116. package/packages/input/index.js +5 -5
  117. package/packages/input/src/main.vue +356 -356
  118. package/packages/input-number/index.js +5 -5
  119. package/packages/input-number/src/main.vue +106 -106
  120. package/packages/label/index.js +5 -5
  121. package/packages/label/src/main.vue +457 -457
  122. package/packages/layout/index.js +5 -5
  123. package/packages/layout/src/item.vue +152 -152
  124. package/packages/layout/src/main.vue +31 -31
  125. package/packages/login/index.js +5 -5
  126. package/packages/login/src/main.vue +1892 -1894
  127. package/packages/login/src/resetPassword.vue +562 -562
  128. package/packages/main/index.js +5 -5
  129. package/packages/main/src/default/message.vue +249 -249
  130. package/packages/main/src/default/notice.vue +157 -157
  131. package/packages/main/src/default/userinfo.vue +505 -505
  132. package/packages/main/src/public/online.vue +89 -89
  133. package/packages/main/src/public/search.vue +454 -454
  134. package/packages/main/src/public/settings.vue +221 -221
  135. package/packages/main/src/simplicity/apps.vue +388 -388
  136. package/packages/main/src/simplicity/avatar.vue +82 -82
  137. package/packages/main/src/simplicity/handler.vue +221 -221
  138. package/packages/main/src/simplicity/index.vue +1993 -1993
  139. package/packages/main/src/simplicity/lists.vue +84 -84
  140. package/packages/main/src/simplicity/menu-list.vue +128 -128
  141. package/packages/main/src/simplicity/message.vue +259 -259
  142. package/packages/main/src/simplicity/notice.vue +190 -190
  143. package/packages/main/src/simplicity/router-page.vue +45 -45
  144. package/packages/main/src/simplicity/sub-menu.vue +241 -241
  145. package/packages/main/src/simplicity/user.vue +257 -257
  146. package/packages/main/src/simplicity/userinfo.vue +312 -312
  147. package/packages/menu/index.js +5 -5
  148. package/packages/menu/src/main.vue +536 -536
  149. package/packages/nav/index.js +5 -5
  150. package/packages/nav/src/main.vue +402 -402
  151. package/packages/notify/index.js +5 -5
  152. package/packages/notify/src/main.vue +538 -538
  153. package/packages/page/index.js +5 -5
  154. package/packages/page/src/main.vue +167 -167
  155. package/packages/pagination/index.js +5 -5
  156. package/packages/pagination/src/main.vue +96 -96
  157. package/packages/player/index.js +5 -5
  158. package/packages/player/src/main.vue +194 -194
  159. package/packages/qr-code/index.js +5 -5
  160. package/packages/qr-code/src/main.vue +170 -170
  161. package/packages/radio-group/index.js +6 -6
  162. package/packages/radio-group/src/main.vue +319 -319
  163. package/packages/retrial-auth/index.js +5 -5
  164. package/packages/retrial-auth/src/main.vue +280 -280
  165. package/packages/select/index.js +5 -5
  166. package/packages/select/src/main.vue +775 -775
  167. package/packages/select-ganged/index.js +5 -5
  168. package/packages/select-ganged/src/main.vue +724 -724
  169. package/packages/selector/index.js +5 -5
  170. package/packages/selector/src/main.vue +677 -677
  171. package/packages/selector-panel/index.js +5 -5
  172. package/packages/selector-panel/src/main.vue +1028 -1027
  173. package/packages/selector-panel/src/selection.vue +177 -177
  174. package/packages/selector-panel/src/tree.vue +129 -129
  175. package/packages/sizer/index.js +5 -5
  176. package/packages/sizer/src/main.vue +254 -254
  177. package/packages/steps/index.js +5 -5
  178. package/packages/steps/src/main.vue +181 -181
  179. package/packages/switch/index.js +5 -5
  180. package/packages/switch/src/main.vue +154 -154
  181. package/packages/table-form/index.js +5 -5
  182. package/packages/tabs/index.js +5 -5
  183. package/packages/tabs/src/main.vue +788 -788
  184. package/packages/tabs-panel/index.js +5 -5
  185. package/packages/tabs-panel/src/main.vue +29 -29
  186. package/packages/theme-chalk/lib/flow.css +1 -1
  187. package/packages/theme-chalk/lib/index.css +1 -1
  188. package/packages/theme-chalk/src/base.scss +260 -260
  189. package/packages/theme-chalk/src/button-group.scss +175 -175
  190. package/packages/theme-chalk/src/button.scss +24 -24
  191. package/packages/theme-chalk/src/calendar.scss +113 -113
  192. package/packages/theme-chalk/src/card.scss +99 -99
  193. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  194. package/packages/theme-chalk/src/clients.scss +87 -87
  195. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  196. package/packages/theme-chalk/src/data-table.scss +293 -293
  197. package/packages/theme-chalk/src/date-picker.scss +7 -7
  198. package/packages/theme-chalk/src/dialog.scss +77 -77
  199. package/packages/theme-chalk/src/enterprise.scss +5 -5
  200. package/packages/theme-chalk/src/error-page.scss +18 -18
  201. package/packages/theme-chalk/src/flow-group.scss +110 -110
  202. package/packages/theme-chalk/src/flow-list.scss +36 -36
  203. package/packages/theme-chalk/src/flow.scss +310 -308
  204. package/packages/theme-chalk/src/form.scss +496 -496
  205. package/packages/theme-chalk/src/handle-user.scss +40 -40
  206. package/packages/theme-chalk/src/handler.scss +143 -143
  207. package/packages/theme-chalk/src/icon.scss +1760 -1760
  208. package/packages/theme-chalk/src/icons.scss +99 -99
  209. package/packages/theme-chalk/src/input.scss +9 -9
  210. package/packages/theme-chalk/src/label.scss +24 -24
  211. package/packages/theme-chalk/src/layout.scss +46 -46
  212. package/packages/theme-chalk/src/login.scss +939 -939
  213. package/packages/theme-chalk/src/main.scss +632 -632
  214. package/packages/theme-chalk/src/menu.scss +222 -222
  215. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  216. package/packages/theme-chalk/src/nav.scss +125 -125
  217. package/packages/theme-chalk/src/page.scss +3 -3
  218. package/packages/theme-chalk/src/pagination.scss +29 -29
  219. package/packages/theme-chalk/src/player.scss +9 -9
  220. package/packages/theme-chalk/src/qr-code.scss +17 -17
  221. package/packages/theme-chalk/src/radio-group.scss +9 -9
  222. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  223. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  224. package/packages/theme-chalk/src/select.scss +8 -8
  225. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  226. package/packages/theme-chalk/src/selector.scss +91 -91
  227. package/packages/theme-chalk/src/simplicity.scss +1262 -1262
  228. package/packages/theme-chalk/src/sizer.scss +36 -36
  229. package/packages/theme-chalk/src/steps.scss +88 -88
  230. package/packages/theme-chalk/src/switch.scss +3 -3
  231. package/packages/theme-chalk/src/table-form.scss +1 -1
  232. package/packages/theme-chalk/src/tabs.scss +87 -87
  233. package/packages/theme-chalk/src/tips.scss +7 -7
  234. package/packages/theme-chalk/src/toolbar.scss +179 -179
  235. package/packages/theme-chalk/src/tree-group.scss +72 -72
  236. package/packages/theme-chalk/src/tree.scss +165 -165
  237. package/packages/theme-chalk/src/upload.scss +167 -167
  238. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  239. package/packages/tips/index.js +5 -5
  240. package/packages/tips/src/main.vue +141 -141
  241. package/packages/toolbar/index.js +5 -5
  242. package/packages/toolbar/src/main.vue +430 -430
  243. package/packages/tree/index.js +5 -5
  244. package/packages/tree-group/index.js +5 -5
  245. package/packages/upload/index.js +5 -5
  246. package/packages/upload/src/main.vue +1334 -1334
  247. package/packages/upload/src/picture.js +15 -15
  248. package/packages/wujie/index.js +5 -5
  249. package/packages/wujie/src/main.vue +145 -145
  250. package/packages/wxlogin/index.js +5 -5
  251. package/packages/wxlogin/src/main.vue +128 -128
  252. package/src/config/api.js +248 -236
  253. package/src/config/image.js +2 -2
  254. package/src/index.js +1 -1
  255. package/src/utils/bus.js +3 -3
  256. package/src/utils/date-util.js +312 -312
  257. package/src/utils/http.js +50 -50
  258. package/src/utils/rules.js +18 -18
  259. package/src/utils/store.js +21 -21
  260. package/src/utils/util.js +398 -258
  261. package/src/utils/webSocket.js +107 -107
@@ -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>