eoss-ui 0.7.18 → 0.7.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 (248) hide show
  1. package/lib/button-group.js +151 -4
  2. package/lib/calogin.js +233 -233
  3. package/lib/eoss-ui.common.js +947 -795
  4. package/lib/flow-list.js +81 -81
  5. package/lib/flow.js +299 -296
  6. package/lib/index.js +1 -1
  7. package/lib/main.js +142 -142
  8. package/lib/qr-code.js +13 -13
  9. package/lib/switch.js +9 -7
  10. package/lib/tree.js +3 -3
  11. package/package.json +160 -160
  12. package/packages/button/index.js +5 -5
  13. package/packages/button/src/main.vue +418 -418
  14. package/packages/button-group/index.js +5 -5
  15. package/packages/button-group/src/main.vue +346 -298
  16. package/packages/calendar/index.js +5 -5
  17. package/packages/calogin/index.js +5 -5
  18. package/packages/calogin/src/main.vue +412 -412
  19. package/packages/calogin/src/plugin.js +915 -915
  20. package/packages/card/index.js +5 -5
  21. package/packages/card/src/main.vue +156 -156
  22. package/packages/cascader/index.js +5 -5
  23. package/packages/cascader/src/main.vue +168 -168
  24. package/packages/checkbox-group/index.js +5 -5
  25. package/packages/checkbox-group/src/main.vue +333 -333
  26. package/packages/clients/index.js +5 -5
  27. package/packages/clients/src/main.vue +151 -151
  28. package/packages/data-table/index.js +5 -5
  29. package/packages/data-table/src/children.vue +39 -39
  30. package/packages/data-table/src/column.vue +988 -988
  31. package/packages/data-table/src/main.vue +1831 -1831
  32. package/packages/data-table/src/sizer.vue +195 -195
  33. package/packages/data-table-form/index.js +5 -5
  34. package/packages/data-table-form/src/checkbox.vue +101 -101
  35. package/packages/data-table-form/src/colgroup.vue +17 -17
  36. package/packages/data-table-form/src/main.vue +181 -181
  37. package/packages/data-table-form/src/radio.vue +65 -65
  38. package/packages/data-table-form/src/table.vue +233 -233
  39. package/packages/data-table-form/src/tbody.vue +336 -336
  40. package/packages/data-table-form/src/thead.vue +68 -68
  41. package/packages/date-picker/index.js +5 -5
  42. package/packages/date-picker/src/main.vue +236 -236
  43. package/packages/dialog/index.js +5 -5
  44. package/packages/enable-drag/index.js +5 -5
  45. package/packages/enterprise/index.js +5 -5
  46. package/packages/enterprise/src/main.vue +66 -66
  47. package/packages/error-page/index.js +5 -5
  48. package/packages/error-page/src/main.vue +44 -44
  49. package/packages/flow/index.js +5 -5
  50. package/packages/flow/src/component/Circulate.vue +413 -413
  51. package/packages/flow/src/component/CommonOpinions.vue +373 -372
  52. package/packages/flow/src/component/CustomPreset.vue +322 -322
  53. package/packages/flow/src/component/FileList.vue +97 -97
  54. package/packages/flow/src/component/FreeCirculation.vue +240 -240
  55. package/packages/flow/src/component/Preset.vue +255 -255
  56. package/packages/flow/src/component/SendMsg.vue +242 -242
  57. package/packages/flow/src/component/TimeLimit.vue +190 -190
  58. package/packages/flow/src/component/taskUnionExamine.vue +650 -649
  59. package/packages/flow/src/form.vue +121 -121
  60. package/packages/flow/src/freeStartFlow.vue +2847 -2847
  61. package/packages/flow/src/main.vue +3802 -3801
  62. package/packages/flow/src/processForm.vue +1287 -1287
  63. package/packages/flow/src/processReject.vue +308 -308
  64. package/packages/flow/src/reset.vue +941 -941
  65. package/packages/flow/src/startTaskRead.vue +691 -691
  66. package/packages/flow/src/supervise.vue +159 -159
  67. package/packages/flow/src/table.vue +58 -58
  68. package/packages/flow-group/index.js +5 -5
  69. package/packages/flow-group/src/main.vue +696 -696
  70. package/packages/flow-list/index.js +5 -5
  71. package/packages/flow-list/src/main.vue +1770 -1770
  72. package/packages/form/index.js +5 -5
  73. package/packages/form/src/main.vue +3901 -3901
  74. package/packages/form/src/table.vue +1512 -1512
  75. package/packages/handle-user/index.js +5 -5
  76. package/packages/handle-user/src/main.vue +137 -137
  77. package/packages/handler/index.js +5 -5
  78. package/packages/handler/src/main.vue +497 -497
  79. package/packages/icon/index.js +5 -5
  80. package/packages/icon/src/main.vue +104 -104
  81. package/packages/icons/index.js +5 -5
  82. package/packages/icons/src/main.vue +81 -81
  83. package/packages/input/index.js +5 -5
  84. package/packages/input/src/main.vue +356 -356
  85. package/packages/input-number/index.js +5 -5
  86. package/packages/input-number/src/main.vue +106 -106
  87. package/packages/label/index.js +5 -5
  88. package/packages/label/src/main.vue +457 -457
  89. package/packages/layout/index.js +5 -5
  90. package/packages/layout/src/item.vue +152 -152
  91. package/packages/layout/src/main.vue +31 -31
  92. package/packages/login/index.js +5 -5
  93. package/packages/login/src/main.vue +1993 -1993
  94. package/packages/login/src/resetPassword.vue +557 -557
  95. package/packages/main/index.js +5 -5
  96. package/packages/main/src/default/message.vue +249 -249
  97. package/packages/main/src/default/notice.vue +157 -157
  98. package/packages/main/src/default/userinfo.vue +502 -502
  99. package/packages/main/src/public/online.vue +89 -89
  100. package/packages/main/src/public/search.vue +464 -464
  101. package/packages/main/src/public/settings.vue +221 -221
  102. package/packages/main/src/simplicity/apps.vue +388 -388
  103. package/packages/main/src/simplicity/avatar.vue +82 -82
  104. package/packages/main/src/simplicity/handler.vue +263 -263
  105. package/packages/main/src/simplicity/index.vue +2125 -2125
  106. package/packages/main/src/simplicity/lists.vue +84 -84
  107. package/packages/main/src/simplicity/menu-list.vue +135 -135
  108. package/packages/main/src/simplicity/message.vue +259 -259
  109. package/packages/main/src/simplicity/notice.vue +190 -190
  110. package/packages/main/src/simplicity/router-page.vue +45 -45
  111. package/packages/main/src/simplicity/sub-menu.vue +264 -264
  112. package/packages/main/src/simplicity/user.vue +259 -259
  113. package/packages/main/src/simplicity/userinfo.vue +398 -398
  114. package/packages/menu/index.js +5 -5
  115. package/packages/menu/src/main.vue +584 -584
  116. package/packages/nav/index.js +5 -5
  117. package/packages/nav/src/main.vue +351 -351
  118. package/packages/notify/index.js +5 -5
  119. package/packages/notify/src/main.vue +538 -538
  120. package/packages/page/index.js +5 -5
  121. package/packages/page/src/main.vue +167 -167
  122. package/packages/pagination/index.js +5 -5
  123. package/packages/pagination/src/main.vue +96 -96
  124. package/packages/player/index.js +5 -5
  125. package/packages/player/src/main.vue +194 -194
  126. package/packages/qr-code/index.js +5 -5
  127. package/packages/qr-code/src/main.vue +170 -170
  128. package/packages/radio-group/index.js +6 -6
  129. package/packages/radio-group/src/main.vue +319 -319
  130. package/packages/retrial-auth/index.js +5 -5
  131. package/packages/retrial-auth/src/main.vue +280 -280
  132. package/packages/select/index.js +5 -5
  133. package/packages/select/src/main.vue +782 -782
  134. package/packages/select-ganged/index.js +5 -5
  135. package/packages/select-ganged/src/main.vue +724 -724
  136. package/packages/selector/index.js +5 -5
  137. package/packages/selector/src/main.vue +761 -761
  138. package/packages/selector-panel/index.js +5 -5
  139. package/packages/selector-panel/src/main.vue +1027 -1027
  140. package/packages/selector-panel/src/selection.vue +170 -170
  141. package/packages/selector-panel/src/tree.vue +129 -129
  142. package/packages/sizer/index.js +5 -5
  143. package/packages/sizer/src/main.vue +254 -254
  144. package/packages/steps/index.js +5 -5
  145. package/packages/steps/src/main.vue +181 -181
  146. package/packages/switch/index.js +5 -5
  147. package/packages/switch/src/main.vue +170 -154
  148. package/packages/table-form/index.js +5 -5
  149. package/packages/tabs/index.js +5 -5
  150. package/packages/tabs/src/main.vue +788 -788
  151. package/packages/tabs-panel/index.js +5 -5
  152. package/packages/tabs-panel/src/main.vue +29 -29
  153. package/packages/theme-chalk/src/base.scss +261 -261
  154. package/packages/theme-chalk/src/button-group.scss +176 -176
  155. package/packages/theme-chalk/src/button.scss +24 -24
  156. package/packages/theme-chalk/src/calendar.scss +113 -113
  157. package/packages/theme-chalk/src/card.scss +99 -99
  158. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  159. package/packages/theme-chalk/src/clients.scss +87 -87
  160. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  161. package/packages/theme-chalk/src/data-table.scss +293 -293
  162. package/packages/theme-chalk/src/date-picker.scss +7 -7
  163. package/packages/theme-chalk/src/dialog.scss +77 -77
  164. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  165. package/packages/theme-chalk/src/enterprise.scss +5 -5
  166. package/packages/theme-chalk/src/error-page.scss +18 -18
  167. package/packages/theme-chalk/src/flow-group.scss +110 -110
  168. package/packages/theme-chalk/src/flow-list.scss +39 -39
  169. package/packages/theme-chalk/src/flow.scss +348 -348
  170. package/packages/theme-chalk/src/form.scss +501 -501
  171. package/packages/theme-chalk/src/handle-user.scss +40 -40
  172. package/packages/theme-chalk/src/handler.scss +148 -148
  173. package/packages/theme-chalk/src/icon.scss +1817 -1817
  174. package/packages/theme-chalk/src/icons.scss +99 -99
  175. package/packages/theme-chalk/src/input.scss +9 -9
  176. package/packages/theme-chalk/src/label.scss +24 -24
  177. package/packages/theme-chalk/src/layout.scss +46 -46
  178. package/packages/theme-chalk/src/login.scss +984 -984
  179. package/packages/theme-chalk/src/main.scss +663 -663
  180. package/packages/theme-chalk/src/menu.scss +222 -222
  181. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  182. package/packages/theme-chalk/src/nav.scss +111 -111
  183. package/packages/theme-chalk/src/page.scss +3 -3
  184. package/packages/theme-chalk/src/pagination.scss +29 -29
  185. package/packages/theme-chalk/src/player.scss +9 -9
  186. package/packages/theme-chalk/src/qr-code.scss +17 -17
  187. package/packages/theme-chalk/src/radio-group.scss +9 -9
  188. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  189. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  190. package/packages/theme-chalk/src/select.scss +8 -8
  191. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  192. package/packages/theme-chalk/src/selector.scss +92 -92
  193. package/packages/theme-chalk/src/simplicity.scss +1366 -1366
  194. package/packages/theme-chalk/src/sizer.scss +36 -36
  195. package/packages/theme-chalk/src/steps.scss +88 -88
  196. package/packages/theme-chalk/src/switch.scss +3 -3
  197. package/packages/theme-chalk/src/table-form.scss +1 -1
  198. package/packages/theme-chalk/src/tabs.scss +87 -87
  199. package/packages/theme-chalk/src/tips.scss +7 -7
  200. package/packages/theme-chalk/src/toolbar.scss +179 -179
  201. package/packages/theme-chalk/src/tree-group.scss +72 -72
  202. package/packages/theme-chalk/src/tree.scss +165 -165
  203. package/packages/theme-chalk/src/upload.scss +172 -172
  204. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  205. package/packages/tips/index.js +5 -5
  206. package/packages/tips/src/main.vue +141 -141
  207. package/packages/toolbar/index.js +5 -5
  208. package/packages/toolbar/src/main.vue +430 -430
  209. package/packages/tree/index.js +5 -5
  210. package/packages/tree/src/main.vue +1 -1
  211. package/packages/tree-group/index.js +5 -5
  212. package/packages/upload/index.js +5 -5
  213. package/packages/upload/src/main.vue +1343 -1343
  214. package/packages/upload/src/picture.js +15 -15
  215. package/packages/wujie/index.js +5 -5
  216. package/packages/wujie/src/main.vue +145 -145
  217. package/packages/wxlogin/index.js +5 -5
  218. package/packages/wxlogin/src/main.vue +128 -128
  219. package/src/config/api.js +315 -315
  220. package/src/config/image.js +2 -2
  221. package/src/index.js +163 -163
  222. package/src/utils/bus.js +3 -3
  223. package/src/utils/date-util.js +312 -312
  224. package/src/utils/http.js +50 -50
  225. package/src/utils/rules.js +18 -18
  226. package/src/utils/store.js +21 -21
  227. package/src/utils/webSocket.js +107 -107
  228. package/packages/.DS_Store +0 -0
  229. package/packages/autocomplete/.DS_Store +0 -0
  230. package/packages/calogin/.DS_Store +0 -0
  231. package/packages/date-picker/.DS_Store +0 -0
  232. package/packages/date-picker/src/.DS_Store +0 -0
  233. package/packages/flow/.DS_Store +0 -0
  234. package/packages/flow/src/.DS_Store +0 -0
  235. package/packages/flow-list/.DS_Store +0 -0
  236. package/packages/form/.DS_Store +0 -0
  237. package/packages/login/.DS_Store +0 -0
  238. package/packages/main/.DS_Store +0 -0
  239. package/packages/main/src/.DS_Store +0 -0
  240. package/packages/menu/.DS_Store +0 -0
  241. package/packages/scrollbar/.DS_Store +0 -0
  242. package/packages/select/.DS_Store +0 -0
  243. package/packages/selector/.DS_Store +0 -0
  244. package/packages/selector-panel/.DS_Store +0 -0
  245. package/packages/theme-chalk/src/.DS_Store +0 -0
  246. package/packages/upload/.DS_Store +0 -0
  247. package/src/.DS_Store +0 -0
  248. package/src/utils/.DS_Store +0 -0
@@ -1,264 +1,264 @@
1
- <template>
2
- <el-drawer
3
- class="es-simplicity-subMenus"
4
- direction="ltr"
5
- modal-class="es-simplicity-apps-modal"
6
- size="auto"
7
- :modal-append-to-body="false"
8
- :close-on-press-escape="false"
9
- :modal="false"
10
- :with-header="false"
11
- :wrapperClosable="false"
12
- :visible.sync="show"
13
- >
14
- <div
15
- class="es-simplicity-menus"
16
- :class="{ 'es-simplicity-menus-plus': mode == 'plus' }"
17
- >
18
- <div class="es-simplicity-menus-box" :style="{ width: width + 'px' }">
19
- <div class="es-simplicity-menus-title">
20
- <span class="es-simplicity-menus-title-text" v-if="!fold">{{
21
- title || text
22
- }}</span>
23
- <i
24
- class="es-icon-shouqicaidan es-simplicity-menus-title-icon"
25
- v-show="!fold"
26
- @click="handleFold(true)"
27
- ></i>
28
- <i
29
- class="es-icon-shouqicaidan-right es-simplicity-menus-title-icon"
30
- v-show="fold"
31
- @click="handleFold(false)"
32
- ></i>
33
- </div>
34
- <div v-if="collapse" class="es-simplicity-menus-scrollbar">
35
- <es-menu
36
- popperClass="es-simplicity_menus"
37
- :menu-class="
38
- fold
39
- ? 'es-simplicity_menus es-simplicity_menus-fold'
40
- : 'es-simplicity_menus'
41
- "
42
- :fourthTabs="true"
43
- :data="menus"
44
- :menuIcon="menuIcon"
45
- :color="color"
46
- :backgroundColor="backgroundColor"
47
- :show-title="false"
48
- :collapse="fold"
49
- @select="handleSelect"
50
- ></es-menu>
51
- </div>
52
- <menu-list
53
- v-else
54
- :active="actives[0]"
55
- :data="menus"
56
- :menuIcon="menuIcon"
57
- :color="color"
58
- :backgroundColor="backgroundColor"
59
- :fold="fold"
60
- :width="size"
61
- @menter="
62
- (res) => {
63
- this.getData(res, 0, true);
64
- }
65
- "
66
- @mleave="
67
- (res) => {
68
- this.getData(res, 0, false);
69
- }
70
- "
71
- @hover="handleHover"
72
- @command="handleCommand"
73
- ></menu-list>
74
- </div>
75
- <div
76
- class="es-simplicity-menus-view"
77
- @mouseleave="handleLeave"
78
- @mouseenter="handleEnter"
79
- v-show="subMenus.length"
80
- >
81
- <div
82
- class="es-simplicity-menus-box"
83
- v-for="(item, index) in subMenus"
84
- :key="item.id"
85
- >
86
- <div class="es-simplicity-menus-title">
87
- <span class="es-simplicity-menus-title-text">{{
88
- item.name || item.text || item.title
89
- }}</span>
90
- </div>
91
- <menu-list
92
- :active="actives[index + 1]"
93
- :data="[...item.children, ...item.fourthTabs]"
94
- :menuIcon="menuIcon"
95
- :color="color"
96
- :backgroundColor="backgroundColor"
97
- :width="size"
98
- @menter="
99
- (res) => {
100
- getData(res, index + 1, true);
101
- }
102
- "
103
- @mleave="
104
- (res) => {
105
- getData(res, index + 1, false);
106
- }
107
- "
108
- @command="handleCommand"
109
- ></menu-list>
110
- </div>
111
- </div>
112
- </div>
113
- </el-drawer>
114
- </template>
115
-
116
- <script>
117
- import MenuList from './menu-list.vue';
118
- export default {
119
- name: 'SubMenu',
120
- components: { MenuList },
121
- props: {
122
- mode: String,
123
- collapse: Boolean,
124
- title: String,
125
- active: String,
126
- closed: Boolean,
127
- color: {
128
- type: [String, Array],
129
- default: '#fff'
130
- },
131
- backgroundColor: {
132
- type: [String, Array],
133
- default() {
134
- return [
135
- '#FF9C52',
136
- '#2591F7',
137
- '#17C27B',
138
- '#1265D7',
139
- '#FFC724',
140
- '#E34D59'
141
- ];
142
- }
143
- },
144
- size: {
145
- type: Number,
146
- default: 220
147
- },
148
- visible: Boolean,
149
- text: String,
150
- menuIcon: String,
151
- children: {
152
- type: Array,
153
- default() {
154
- return [];
155
- }
156
- },
157
- fourthTabs: {
158
- type: Array,
159
- default() {
160
- return [];
161
- }
162
- }
163
- },
164
- data() {
165
- return {
166
- fold: this.closed,
167
- width: this.size,
168
- subMenus: [],
169
- isEnter: false,
170
- timer: null,
171
- actives: []
172
- };
173
- },
174
- computed: {
175
- menus() {
176
- return [...this.children, ...this.fourthTabs];
177
- },
178
- show: {
179
- get() {
180
- return this.visible;
181
- },
182
- set(val) {
183
- this.$emit('update:visible', val);
184
- return val;
185
- }
186
- }
187
- },
188
- watch: {
189
- closed(val) {
190
- this.fold = val;
191
- if (val) {
192
- this.width = 48;
193
- } else {
194
- this.width = this.size;
195
- }
196
- }
197
- },
198
- created() {},
199
- mounted() {},
200
- methods: {
201
- handleFold(res) {
202
- this.fold = res;
203
- if (res) {
204
- this.width = 48;
205
- } else {
206
- this.width = this.size;
207
- }
208
- this.$emit('update:closed', res);
209
- },
210
- handleCommand(res) {
211
- this.$emit('command', res);
212
- },
213
- handleSelect(res) {
214
- this.$emit('command', res.node);
215
- },
216
- getData(res, n, is) {
217
- this.isEnter = is;
218
- if (is) {
219
- this.actives.splice(n);
220
- if (this.actives[n]) {
221
- this.actives[n] = res.id;
222
- } else {
223
- this.actives.push(res.id);
224
- }
225
- this.subMenus.splice(n);
226
- let { children, fourthTabs } = res;
227
- if (
228
- (children && children.length) ||
229
- (fourthTabs && fourthTabs.length)
230
- ) {
231
- this.subMenus = this.subMenus.concat(res);
232
- }
233
- } else {
234
- if (n == 0) {
235
- clearTimeout(this.timer);
236
- this.timer = setTimeout(() => {
237
- if (res && !this.isEnter) {
238
- this.subMenus = [];
239
- this.actives = [];
240
- }
241
- }, 300);
242
- }
243
- }
244
- },
245
- handleHover(res) {
246
- this.isEnter = res;
247
- //if(this)
248
- },
249
- clearSubmenu() {
250
- this.$refs.menus.clearActive();
251
- this.subMenus = [];
252
- },
253
- handleLeave() {
254
- this.subMenus = [];
255
- this.actives = [];
256
- },
257
- handleEnter() {
258
- this.isEnter = true;
259
- }
260
- }
261
- };
262
- </script>
263
-
264
- <style lang="scss" scoped></style>
1
+ <template>
2
+ <el-drawer
3
+ class="es-simplicity-subMenus"
4
+ direction="ltr"
5
+ modal-class="es-simplicity-apps-modal"
6
+ size="auto"
7
+ :modal-append-to-body="false"
8
+ :close-on-press-escape="false"
9
+ :modal="false"
10
+ :with-header="false"
11
+ :wrapperClosable="false"
12
+ :visible.sync="show"
13
+ >
14
+ <div
15
+ class="es-simplicity-menus"
16
+ :class="{ 'es-simplicity-menus-plus': mode == 'plus' }"
17
+ >
18
+ <div class="es-simplicity-menus-box" :style="{ width: width + 'px' }">
19
+ <div class="es-simplicity-menus-title">
20
+ <span class="es-simplicity-menus-title-text" v-if="!fold">{{
21
+ title || text
22
+ }}</span>
23
+ <i
24
+ class="es-icon-shouqicaidan es-simplicity-menus-title-icon"
25
+ v-show="!fold"
26
+ @click="handleFold(true)"
27
+ ></i>
28
+ <i
29
+ class="es-icon-shouqicaidan-right es-simplicity-menus-title-icon"
30
+ v-show="fold"
31
+ @click="handleFold(false)"
32
+ ></i>
33
+ </div>
34
+ <div v-if="collapse" class="es-simplicity-menus-scrollbar">
35
+ <es-menu
36
+ popperClass="es-simplicity_menus"
37
+ :menu-class="
38
+ fold
39
+ ? 'es-simplicity_menus es-simplicity_menus-fold'
40
+ : 'es-simplicity_menus'
41
+ "
42
+ :fourthTabs="true"
43
+ :data="menus"
44
+ :menuIcon="menuIcon"
45
+ :color="color"
46
+ :backgroundColor="backgroundColor"
47
+ :show-title="false"
48
+ :collapse="fold"
49
+ @select="handleSelect"
50
+ ></es-menu>
51
+ </div>
52
+ <menu-list
53
+ v-else
54
+ :active="actives[0]"
55
+ :data="menus"
56
+ :menuIcon="menuIcon"
57
+ :color="color"
58
+ :backgroundColor="backgroundColor"
59
+ :fold="fold"
60
+ :width="size"
61
+ @menter="
62
+ (res) => {
63
+ this.getData(res, 0, true);
64
+ }
65
+ "
66
+ @mleave="
67
+ (res) => {
68
+ this.getData(res, 0, false);
69
+ }
70
+ "
71
+ @hover="handleHover"
72
+ @command="handleCommand"
73
+ ></menu-list>
74
+ </div>
75
+ <div
76
+ class="es-simplicity-menus-view"
77
+ @mouseleave="handleLeave"
78
+ @mouseenter="handleEnter"
79
+ v-show="subMenus.length"
80
+ >
81
+ <div
82
+ class="es-simplicity-menus-box"
83
+ v-for="(item, index) in subMenus"
84
+ :key="item.id"
85
+ >
86
+ <div class="es-simplicity-menus-title">
87
+ <span class="es-simplicity-menus-title-text">{{
88
+ item.name || item.text || item.title
89
+ }}</span>
90
+ </div>
91
+ <menu-list
92
+ :active="actives[index + 1]"
93
+ :data="[...item.children, ...item.fourthTabs]"
94
+ :menuIcon="menuIcon"
95
+ :color="color"
96
+ :backgroundColor="backgroundColor"
97
+ :width="size"
98
+ @menter="
99
+ (res) => {
100
+ getData(res, index + 1, true);
101
+ }
102
+ "
103
+ @mleave="
104
+ (res) => {
105
+ getData(res, index + 1, false);
106
+ }
107
+ "
108
+ @command="handleCommand"
109
+ ></menu-list>
110
+ </div>
111
+ </div>
112
+ </div>
113
+ </el-drawer>
114
+ </template>
115
+
116
+ <script>
117
+ import MenuList from './menu-list.vue';
118
+ export default {
119
+ name: 'SubMenu',
120
+ components: { MenuList },
121
+ props: {
122
+ mode: String,
123
+ collapse: Boolean,
124
+ title: String,
125
+ active: String,
126
+ closed: Boolean,
127
+ color: {
128
+ type: [String, Array],
129
+ default: '#fff'
130
+ },
131
+ backgroundColor: {
132
+ type: [String, Array],
133
+ default() {
134
+ return [
135
+ '#FF9C52',
136
+ '#2591F7',
137
+ '#17C27B',
138
+ '#1265D7',
139
+ '#FFC724',
140
+ '#E34D59'
141
+ ];
142
+ }
143
+ },
144
+ size: {
145
+ type: Number,
146
+ default: 220
147
+ },
148
+ visible: Boolean,
149
+ text: String,
150
+ menuIcon: String,
151
+ children: {
152
+ type: Array,
153
+ default() {
154
+ return [];
155
+ }
156
+ },
157
+ fourthTabs: {
158
+ type: Array,
159
+ default() {
160
+ return [];
161
+ }
162
+ }
163
+ },
164
+ data() {
165
+ return {
166
+ fold: this.closed,
167
+ width: this.size,
168
+ subMenus: [],
169
+ isEnter: false,
170
+ timer: null,
171
+ actives: []
172
+ };
173
+ },
174
+ computed: {
175
+ menus() {
176
+ return [...this.children, ...this.fourthTabs];
177
+ },
178
+ show: {
179
+ get() {
180
+ return this.visible;
181
+ },
182
+ set(val) {
183
+ this.$emit('update:visible', val);
184
+ return val;
185
+ }
186
+ }
187
+ },
188
+ watch: {
189
+ closed(val) {
190
+ this.fold = val;
191
+ if (val) {
192
+ this.width = 48;
193
+ } else {
194
+ this.width = this.size;
195
+ }
196
+ }
197
+ },
198
+ created() {},
199
+ mounted() {},
200
+ methods: {
201
+ handleFold(res) {
202
+ this.fold = res;
203
+ if (res) {
204
+ this.width = 48;
205
+ } else {
206
+ this.width = this.size;
207
+ }
208
+ this.$emit('update:closed', res);
209
+ },
210
+ handleCommand(res) {
211
+ this.$emit('command', res);
212
+ },
213
+ handleSelect(res) {
214
+ this.$emit('command', res.node);
215
+ },
216
+ getData(res, n, is) {
217
+ this.isEnter = is;
218
+ if (is) {
219
+ this.actives.splice(n);
220
+ if (this.actives[n]) {
221
+ this.actives[n] = res.id;
222
+ } else {
223
+ this.actives.push(res.id);
224
+ }
225
+ this.subMenus.splice(n);
226
+ let { children, fourthTabs } = res;
227
+ if (
228
+ (children && children.length) ||
229
+ (fourthTabs && fourthTabs.length)
230
+ ) {
231
+ this.subMenus = this.subMenus.concat(res);
232
+ }
233
+ } else {
234
+ if (n == 0) {
235
+ clearTimeout(this.timer);
236
+ this.timer = setTimeout(() => {
237
+ if (res && !this.isEnter) {
238
+ this.subMenus = [];
239
+ this.actives = [];
240
+ }
241
+ }, 300);
242
+ }
243
+ }
244
+ },
245
+ handleHover(res) {
246
+ this.isEnter = res;
247
+ //if(this)
248
+ },
249
+ clearSubmenu() {
250
+ this.$refs.menus.clearActive();
251
+ this.subMenus = [];
252
+ },
253
+ handleLeave() {
254
+ this.subMenus = [];
255
+ this.actives = [];
256
+ },
257
+ handleEnter() {
258
+ this.isEnter = true;
259
+ }
260
+ }
261
+ };
262
+ </script>
263
+
264
+ <style lang="scss" scoped></style>