eoss-ui 0.7.50 → 0.7.52

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