eoss-ui 0.5.68 → 0.5.70

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 (96) hide show
  1. package/CHANGELOG.md +929 -0
  2. package/lib/button-group.js +34 -36
  3. package/lib/button.js +34 -36
  4. package/lib/checkbox-group.js +70 -56
  5. package/lib/data-table-form.js +37 -39
  6. package/lib/data-table.js +73 -64
  7. package/lib/date-picker.js +34 -36
  8. package/lib/dialog.js +49 -51
  9. package/lib/eoss-ui.common.js +944 -728
  10. package/lib/flow-group.js +34 -36
  11. package/lib/flow-list.js +36 -38
  12. package/lib/flow.js +40 -42
  13. package/lib/form.js +410 -376
  14. package/lib/handle-user.js +36 -38
  15. package/lib/handler.js +34 -36
  16. package/lib/icon.js +12 -3593
  17. package/lib/icons.js +1 -1
  18. package/lib/index.js +1 -1
  19. package/lib/input-number.js +34 -36
  20. package/lib/input.js +65 -48
  21. package/lib/layout.js +2 -2
  22. package/lib/login.js +131 -114
  23. package/lib/main.js +80 -50
  24. package/lib/menu.js +91 -55
  25. package/lib/nav.js +66 -41
  26. package/lib/page.js +34 -36
  27. package/lib/player.js +36 -38
  28. package/lib/qr-code.js +34 -36
  29. package/lib/radio-group.js +69 -53
  30. package/lib/retrial-auth.js +34 -36
  31. package/lib/select-ganged.js +122 -106
  32. package/lib/select.js +112 -96
  33. package/lib/selector-panel.js +90 -76
  34. package/lib/selector.js +34 -36
  35. package/lib/sizer.js +36 -38
  36. package/lib/steps.js +60 -44
  37. package/lib/switch.js +34 -36
  38. package/lib/table-form.js +36 -38
  39. package/lib/tabs.js +34 -36
  40. package/lib/theme-chalk/base.css +1 -1
  41. package/lib/theme-chalk/fonts/iconfont.ttf +0 -0
  42. package/lib/theme-chalk/fonts/iconfont.woff +0 -0
  43. package/lib/theme-chalk/icon.css +1 -1
  44. package/lib/theme-chalk/index.css +1 -1
  45. package/lib/theme-chalk/login.css +1 -1
  46. package/lib/theme-chalk/main.css +1 -1
  47. package/lib/theme-chalk/menu.css +1 -1
  48. package/lib/theme-chalk/sizer.css +1 -1
  49. package/lib/theme-chalk/upload.css +1 -1
  50. package/lib/tips.js +59 -42
  51. package/lib/tree-group.js +34 -36
  52. package/lib/tree.js +93 -77
  53. package/lib/upload.js +111 -94
  54. package/lib/utils/util.js +34 -36
  55. package/lib/wujie.js +34 -36
  56. package/lib/wxlogin.js +34 -36
  57. package/package.json +2 -2
  58. package/packages/checkbox-group/src/main.vue +7 -1
  59. package/packages/data-table/src/main.vue +13 -6
  60. package/packages/dialog/src/main.vue +2 -3
  61. package/packages/form/src/main.vue +11 -2
  62. package/packages/icon/src/main.vue +10 -3
  63. package/packages/icons/src/icon.json +1 -1
  64. package/packages/input/src/main.vue +8 -1
  65. package/packages/login/src/main.vue +36 -24
  66. package/packages/main/src/main.vue +28 -6
  67. package/packages/menu/src/main.vue +76 -65
  68. package/packages/nav/src/main.vue +23 -4
  69. package/packages/radio-group/src/main.vue +7 -1
  70. package/packages/select/src/main.vue +7 -1
  71. package/packages/select-ganged/src/main.vue +7 -1
  72. package/packages/selector-panel/src/main.vue +7 -1
  73. package/packages/steps/src/main.vue +9 -3
  74. package/packages/theme-chalk/lib/base.css +1 -1
  75. package/packages/theme-chalk/lib/fonts/iconfont.ttf +0 -0
  76. package/packages/theme-chalk/lib/fonts/iconfont.woff +0 -0
  77. package/packages/theme-chalk/lib/icon.css +1 -1
  78. package/packages/theme-chalk/lib/index.css +1 -1
  79. package/packages/theme-chalk/lib/login.css +1 -1
  80. package/packages/theme-chalk/lib/main.css +1 -1
  81. package/packages/theme-chalk/lib/menu.css +1 -1
  82. package/packages/theme-chalk/lib/sizer.css +1 -1
  83. package/packages/theme-chalk/lib/upload.css +1 -1
  84. package/packages/theme-chalk/src/common/var.scss +2 -0
  85. package/packages/theme-chalk/src/fonts/iconfont.ttf +0 -0
  86. package/packages/theme-chalk/src/fonts/iconfont.woff +0 -0
  87. package/packages/theme-chalk/src/icon.scss +430 -426
  88. package/packages/theme-chalk/src/login.scss +2 -3
  89. package/packages/theme-chalk/src/main.scss +14 -5
  90. package/packages/theme-chalk/src/menu.scss +1 -1
  91. package/packages/theme-chalk/src/nav.scss +2 -2
  92. package/packages/tips/src/main.vue +8 -1
  93. package/packages/tree/src/main.vue +8 -2
  94. package/packages/upload/src/main.vue +11 -2
  95. package/src/index.js +1 -1
  96. package/src/utils/util.js +34 -34
package/lib/main.js CHANGED
@@ -153,21 +153,17 @@ var JSONbigToString = json_bigint__WEBPACK_IMPORTED_MODULE_3___default()({ store
153
153
  * @param {Array} [encodes] - 需要对参数值进行encodeURIComponent编码的参数值名称
154
154
  **/
155
155
  // 请求
156
- var pendingRequest = new Map();
157
- function getRequestKey(config) {
158
- var method = config.method,
159
- url = config.url,
160
- params = config.params,
161
- data = config.data;
162
-
163
- return [method, url, qs__WEBPACK_IMPORTED_MODULE_2___default.a.stringify(params), qs__WEBPACK_IMPORTED_MODULE_2___default.a.stringify(data)].join('&');
164
- };
165
- function delPendingRequest(config) {
166
- var requestKey = getRequestKey(config);
167
- if (pendingRequest.has(requestKey)) {
168
- pendingRequest.delete(requestKey);
169
- }
170
- }
156
+ // const pendingRequest = new Map();
157
+ // function getRequestKey(config) {
158
+ // const { method, url, params, data } = config;
159
+ // return [method, url, qs.stringify(params), qs.stringify(data)].join('&');
160
+ // };
161
+ // function delPendingRequest(config) {
162
+ // let requestKey = getRequestKey(config);
163
+ // if (pendingRequest.has(requestKey)) {
164
+ // pendingRequest.delete(requestKey);
165
+ // }
166
+ // }
171
167
  var ajax = function ajax(_ref) {
172
168
  var headers = _ref.headers,
173
169
  method = _ref.method,
@@ -216,30 +212,32 @@ var ajax = function ajax(_ref) {
216
212
  http.interceptors.request.use(function (config) {
217
213
  config.headers.common = getStorage();
218
214
  // 根据请求的信息(请求方式,url,请求get/post数据),产生map的key
219
- var requestKey = getRequestKey(config);
220
- // 判断请求是否重复
221
- if (pendingRequest.has(requestKey)) {
222
- // 取消上次请求
223
- var cancel = pendingRequest.get(requestKey);
224
- cancel();
225
- // 删除请求信息
226
- pendingRequest.delete(requestKey);
227
- }
228
- // 把请求信息,添加请求到map当中
229
- // 生成取消方法
230
- config.cancelToken = config.cancelToken || new axios__WEBPACK_IMPORTED_MODULE_1___default.a.CancelToken(function (cancel) {
231
- // 把取消方法添加到map
232
- if (!pendingRequest.has(requestKey)) {
233
- pendingRequest.set(requestKey, cancel);
234
- }
235
- });
215
+ // let requestKey = getRequestKey(config);
216
+ // // 判断请求是否重复
217
+ // if (pendingRequest.has(requestKey)) {
218
+ // // 取消上次请求
219
+ // let cancel = pendingRequest.get(requestKey);
220
+ // cancel();
221
+ // // 删除请求信息
222
+ // pendingRequest.delete(requestKey);
223
+ // }
224
+ // // 把请求信息,添加请求到map当中
225
+ // // 生成取消方法
226
+ // config.cancelToken =
227
+ // config.cancelToken ||
228
+ // new axios.CancelToken(cancel => {
229
+ // // 把取消方法添加到map
230
+ // if (!pendingRequest.has(requestKey)) {
231
+ // pendingRequest.set(requestKey, cancel);
232
+ // }
233
+ // });
236
234
  return config;
237
235
  }, function (err) {
238
236
  return err;
239
237
  });
240
238
  // 响应拦截
241
239
  http.interceptors.response.use(function (response) {
242
- delPendingRequest(response.config);
240
+ // delPendingRequest(response.config);
243
241
  loading && loading.close();
244
242
  if (response.headers.authorization && response.headers.authorization !== getStorage('token')) {
245
243
  if (localStorage.getItem('storage') === 'localStorage' || localStorage.getItem('token') || localStorage.getItem('Authorization')) {
@@ -356,9 +354,9 @@ var ajax = function ajax(_ref) {
356
354
  }
357
355
  }, function (error) {
358
356
  loading && loading.close();
359
- if (!axios__WEBPACK_IMPORTED_MODULE_1___default.a.isCancel(error)) {
360
- delPendingRequest(error.config || {});
361
- }
357
+ // if (!axios.isCancel(error)) {
358
+ // delPendingRequest(error.config || {});
359
+ // }
362
360
  if (error && error.response) {
363
361
  if (error.response.status) {
364
362
  switch (error.response.status) {
@@ -3765,7 +3763,8 @@ module.exports = require("stompjs");
3765
3763
  module.exports = require("sm-crypto");
3766
3764
 
3767
3765
  /***/ }),
3768
- /* 11 */
3766
+ /* 11 */,
3767
+ /* 12 */
3769
3768
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
3770
3769
 
3771
3770
  "use strict";
@@ -3792,13 +3791,12 @@ window.__store = store;
3792
3791
  /* harmony default export */ __webpack_exports__["a"] = (store);
3793
3792
 
3794
3793
  /***/ }),
3795
- /* 12 */
3794
+ /* 13 */
3796
3795
  /***/ (function(module, exports) {
3797
3796
 
3798
3797
  module.exports = require("babel-runtime/regenerator");
3799
3798
 
3800
3799
  /***/ }),
3801
- /* 13 */,
3802
3800
  /* 14 */,
3803
3801
  /* 15 */,
3804
3802
  /* 16 */,
@@ -3828,7 +3826,7 @@ module.exports = require("runtime-import");
3828
3826
  // ESM COMPAT FLAG
3829
3827
  __webpack_require__.r(__webpack_exports__);
3830
3828
 
3831
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/main/src/main.vue?vue&type=template&id=3910f883&
3829
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/main/src/main.vue?vue&type=template&id=098112dd&
3832
3830
  var render = function () {
3833
3831
  var _vm = this
3834
3832
  var _h = _vm.$createElement
@@ -3883,6 +3881,8 @@ var render = function () {
3883
3881
  attrs: {
3884
3882
  mode: "horizontal",
3885
3883
  icons: _vm.icons,
3884
+ "menu-icon": _vm.menuIcon,
3885
+ "sub-icon": _vm.subIcon,
3886
3886
  popperClass: "el-menu--popup-" + _vm.layout,
3887
3887
  data: _vm.navs,
3888
3888
  deep: _vm.layout === "topnav",
@@ -3975,7 +3975,10 @@ var render = function () {
3975
3975
  : _vm._e(),
3976
3976
  ]),
3977
3977
  _c("es-handle-user", {
3978
- attrs: { data: { type: "user" } },
3978
+ attrs: {
3979
+ data: { type: "user" },
3980
+ userModel: _vm.userModel,
3981
+ },
3979
3982
  on: { click: _vm.handleClick },
3980
3983
  }),
3981
3984
  ],
@@ -4021,13 +4024,17 @@ var render = function () {
4021
4024
  "is-top": _vm.layout == "topside",
4022
4025
  data: _vm.menu,
4023
4026
  "default-active": _vm.active,
4024
- width: _vm.navWidth,
4027
+ width: _vm.navsWidth,
4028
+ "nav-width": _vm.navWidth,
4025
4029
  icons: _vm.icons,
4030
+ "menu-icon": _vm.menuIcon,
4031
+ "sub-icon": _vm.subIcon,
4026
4032
  biserial: _vm.biserial,
4027
4033
  title: _vm.showNavTitle ? _vm.title : false,
4028
4034
  showCollapse: _vm.showNavTitle,
4029
4035
  "menu-tips": _vm.menuTips,
4030
4036
  "is-default": _vm.isDefault,
4037
+ paddingLeft: _vm.navPaddingLeft,
4031
4038
  },
4032
4039
  on: {
4033
4040
  open: function (res) {
@@ -4058,6 +4065,7 @@ var render = function () {
4058
4065
  data: _vm.tabs,
4059
4066
  titleIcons: false,
4060
4067
  "default-active": _vm.tabsId,
4068
+ "menu-icon": _vm.menuIcon,
4061
4069
  "menu-tips": _vm.menuTips,
4062
4070
  },
4063
4071
  on: {
@@ -4260,7 +4268,7 @@ var staticRenderFns = []
4260
4268
  render._withStripped = true
4261
4269
 
4262
4270
 
4263
- // CONCATENATED MODULE: ./packages/main/src/main.vue?vue&type=template&id=3910f883&
4271
+ // CONCATENATED MODULE: ./packages/main/src/main.vue?vue&type=template&id=098112dd&
4264
4272
 
4265
4273
  // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/main/src/userinfo.vue?vue&type=template&id=75d533de&
4266
4274
  var userinfovue_type_template_id_75d533de_render = function () {
@@ -4289,7 +4297,7 @@ userinfovue_type_template_id_75d533de_render._withStripped = true
4289
4297
  var api = __webpack_require__(1);
4290
4298
 
4291
4299
  // EXTERNAL MODULE: ./src/utils/store.js
4292
- var store = __webpack_require__(11);
4300
+ var store = __webpack_require__(12);
4293
4301
 
4294
4302
  // EXTERNAL MODULE: ./src/utils/util.js
4295
4303
  var util = __webpack_require__(0);
@@ -5939,7 +5947,7 @@ async_componentvue_type_template_id_8b78c8b6_scoped_true_render._withStripped =
5939
5947
  // CONCATENATED MODULE: ./packages/main/src/async-component/index.vue?vue&type=template&id=8b78c8b6&scoped=true&
5940
5948
 
5941
5949
  // EXTERNAL MODULE: external "babel-runtime/regenerator"
5942
- var regenerator_ = __webpack_require__(12);
5950
+ var regenerator_ = __webpack_require__(13);
5943
5951
  var regenerator_default = /*#__PURE__*/__webpack_require__.n(regenerator_);
5944
5952
 
5945
5953
  // EXTERNAL MODULE: external "runtime-import"
@@ -6349,6 +6357,14 @@ var mainvue_type_script_lang_js_extends = Object.assign || function (target) { f
6349
6357
  //
6350
6358
  //
6351
6359
  //
6360
+ //
6361
+ //
6362
+ //
6363
+ //
6364
+ //
6365
+ //
6366
+ //
6367
+ //
6352
6368
 
6353
6369
 
6354
6370
 
@@ -6381,8 +6397,15 @@ var appCode = util["a" /* default */].getParams('appCode') || util["a" /* defaul
6381
6397
  maxHeight: String,
6382
6398
  //菜单导航地址
6383
6399
  menuUrl: String,
6384
- //菜单展开关闭
6400
+ //菜单展开关闭图标
6385
6401
  icons: Object,
6402
+ //菜单前置默认图标
6403
+ menuIcon: String,
6404
+ //子菜单是否显示前置图标
6405
+ subIcon: {
6406
+ type: Boolean,
6407
+ default: true
6408
+ },
6386
6409
  //logo
6387
6410
  logo: String,
6388
6411
  //菜单显示类型
@@ -6506,7 +6529,10 @@ var appCode = util["a" /* default */].getParams('appCode') || util["a" /* defaul
6506
6529
  type: [Boolean, String],
6507
6530
  default: true
6508
6531
  },
6509
- appCode: String
6532
+ appCode: String,
6533
+ //菜单左边距
6534
+ navPaddingLeft: Number,
6535
+ navWidth: String
6510
6536
  },
6511
6537
  computed: {
6512
6538
  showHeader: function showHeader() {
@@ -6533,7 +6559,7 @@ var appCode = util["a" /* default */].getParams('appCode') || util["a" /* defaul
6533
6559
  }
6534
6560
  return true;
6535
6561
  },
6536
- navWidth: function navWidth() {
6562
+ navsWidth: function navsWidth() {
6537
6563
  return this.layout === 'topside' ? '230px' : undefined;
6538
6564
  },
6539
6565
  showNavTitle: function showNavTitle() {
@@ -7853,8 +7879,12 @@ var appCode = util["a" /* default */].getParams('appCode') || util["a" /* defaul
7853
7879
  }
7854
7880
  }
7855
7881
  } else {
7856
- console.error('缺少路由配置');
7857
- return;
7882
+ this.method = 'iframe';
7883
+ this.refresh = false;
7884
+ this.page = util["a" /* default */].handlerUrl(page, param);
7885
+ this.$nextTick(function () {
7886
+ _this10.refresh = true;
7887
+ });
7858
7888
  }
7859
7889
  }
7860
7890
  }
package/lib/menu.js CHANGED
@@ -87,6 +87,13 @@ module.exports =
87
87
  /************************************************************************/
88
88
  /******/ ({
89
89
 
90
+ /***/ 11:
91
+ /***/ (function(module, exports) {
92
+
93
+ module.exports = require("throttle-debounce");
94
+
95
+ /***/ }),
96
+
90
97
  /***/ 3:
91
98
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
92
99
 
@@ -199,9 +206,13 @@ function normalizeComponent(
199
206
  // ESM COMPAT FLAG
200
207
  __webpack_require__.r(__webpack_exports__);
201
208
 
209
+ // EXTERNAL MODULE: external "throttle-debounce"
210
+ var external_throttle_debounce_ = __webpack_require__(11);
211
+
202
212
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/menu/src/main.vue?vue&type=script&lang=js&
203
213
  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
204
214
 
215
+
205
216
  /* harmony default export */ var mainvue_type_script_lang_js_ = ({
206
217
  name: 'EsMenu',
207
218
  inheritAttrs: false,
@@ -241,6 +252,15 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
241
252
  paddingLeft: {
242
253
  type: Number,
243
254
  default: 14
255
+ },
256
+ menuIcon: {
257
+ type: String,
258
+ default: 'es-icon-application'
259
+ },
260
+ icons: Object,
261
+ subIcon: {
262
+ type: Boolean,
263
+ default: true
244
264
  }
245
265
  },
246
266
  computed: {
@@ -248,37 +268,18 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
248
268
  return this.height === undefined ? this.maxH : this.height;
249
269
  },
250
270
  maxWidth: function maxWidth() {
251
- if (this.mode === 'vertical') {
252
- return this.width;
253
- }
254
271
  return this.maxW;
255
272
  }
256
273
  },
257
274
  watch: {
258
275
  data: {
259
- immediate: true,
260
276
  deep: true,
261
277
  handler: function handler() {
262
- var _this = this;
263
-
264
- if (this.mode === 'vertical') {
265
- this.$nextTick(function () {
266
- _this.maxH = _this.$refs.esMenu.$el.getBoundingClientRect().height + 'px';
267
- });
268
- } else {
269
- this.$nextTick(function () {
270
- var w = 0;
271
- Array.from(_this.$refs.menu.$el.children).forEach(function (item) {
272
- w += item.getBoundingClientRect().width;
273
- });
274
- var styles = window.getComputedStyle(_this.$refs.menu.$el);
275
- w += parseFloat(styles.paddingLeft) + parseFloat(styles.paddingRight);
276
- if (w > _this.$refs.esMenu.$el.getBoundingClientRect().width) {
277
- _this.maxW = w + 'px';
278
- }
279
- });
280
- }
278
+ this.getMaxWidth();
281
279
  }
280
+ },
281
+ width: function width() {
282
+ this.getMaxWidth();
282
283
  }
283
284
  },
284
285
  data: function data() {
@@ -290,19 +291,52 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
290
291
  isChange: false
291
292
  };
292
293
  },
293
- mounted: function mounted() {},
294
+ beforeCreate: function beforeCreate() {
295
+ var _this = this;
296
+
297
+ this.getMaxWidth = Object(external_throttle_debounce_["debounce"])(300, function () {
298
+ _this.getWidth();
299
+ });
300
+ },
301
+ created: function created() {},
302
+ mounted: function mounted() {
303
+ this.getMaxWidth();
304
+ },
294
305
 
295
306
  methods: {
296
- handleReady: function handleReady() {
307
+ getWidth: function getWidth() {
297
308
  var _this2 = this;
298
309
 
310
+ if (this.mode === 'vertical') {
311
+ this.$nextTick(function () {
312
+ _this2.maxH = _this2.$refs.esMenu.$el.getBoundingClientRect().height + 'px';
313
+ var styles = window.getComputedStyle(_this2.$refs.menu.$el.parentNode);
314
+ _this2.maxW = _this2.width ? parseInt(_this2.width, 10) - parseInt(styles.marginLeft, 10) - parseInt(styles.marginRight, 10) + 'px' : '';
315
+ });
316
+ } else {
317
+ this.$nextTick(function () {
318
+ var w = 0;
319
+ Array.from(_this2.$refs.menu.$el.children).forEach(function (item) {
320
+ w += item.getBoundingClientRect().width;
321
+ });
322
+ var styles = window.getComputedStyle(_this2.$refs.menu.$el);
323
+ w += parseFloat(styles.paddingLeft) + parseFloat(styles.paddingRight);
324
+ if (w > _this2.$refs.esMenu.$el.getBoundingClientRect().width) {
325
+ _this2.maxW = w + 'px';
326
+ }
327
+ });
328
+ }
329
+ },
330
+ handleReady: function handleReady() {
331
+ var _this3 = this;
332
+
299
333
  if (this.mode === 'horizontal') {
300
334
  this.$refs.esMenu.wrap.onmouseover = function (e) {
301
- _this2.$refs.esMenu.wrap.addEventListener('mousewheel', _this2.handleWheel, { passive: false }) || _this2.$refs.esMenu.wrap.addEventListener('DOMMouseScroll', _this2.handleWheel, false);
335
+ _this3.$refs.esMenu.wrap.addEventListener('mousewheel', _this3.handleWheel, { passive: false }) || _this3.$refs.esMenu.wrap.addEventListener('DOMMouseScroll', _this3.handleWheel, false);
302
336
  e.preventDefault();
303
337
  };
304
338
  this.$refs.esMenu.wrap.onmouseout = function (e) {
305
- _this2.$refs.esMenu.wrap.removeEventListener('mousewheel', _this2.handleWheel, { passive: false }) || _this2.$refs.esMenu.wrap.removeEventListener('DOMMouseScroll', _this2.handleWheel, false);
339
+ _this3.$refs.esMenu.wrap.removeEventListener('mousewheel', _this3.handleWheel, { passive: false }) || _this3.$refs.esMenu.wrap.removeEventListener('DOMMouseScroll', _this3.handleWheel, false);
306
340
  e.preventDefault();
307
341
  };
308
342
  }
@@ -360,7 +394,7 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
360
394
  }
361
395
  },
362
396
  handleSelect: function handleSelect(key, keyPath, item) {
363
- var _this3 = this;
397
+ var _this4 = this;
364
398
 
365
399
  this.isChange = true;
366
400
  if (this.menuId !== null && keyPath.indexOf(this.menuId) == -1) {
@@ -369,7 +403,7 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
369
403
  var openedMenus = item.rootMenu.openedMenus;
370
404
  openedMenus.forEach(function (item) {
371
405
  if (keyPath.indexOf(item) == -1) {
372
- _this3.$refs.menu.close(item);
406
+ _this4.$refs.menu.close(item);
373
407
  }
374
408
  });
375
409
  }
@@ -402,18 +436,24 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
402
436
  mode: this.mode
403
437
  });
404
438
  },
405
- getSub: function getSub(item, h, popper, fourthTabs) {
406
- var _this4 = this;
439
+ getSub: function getSub(item, h, popper, fourthTabs, subIcon) {
440
+ var _this5 = this;
407
441
 
408
442
  if (popper) {
409
443
  popper += this.popperClass !== undefined ? ' ' + this.popperClass : ' es-menu-popper-' + this.mode;
410
444
  } else {
411
445
  popper = this.popperClass !== undefined ? this.popperClass : ' es-menu-popper-' + this.mode;
412
446
  }
413
- var title = [h('i', {
414
- class: [item.icons ? this.unicode(item.icons) ? item.icons : 'es-icon iconfont' : 'es-icon-application', 'es-menu-item-icon'],
415
- domProps: item.icons === '' || this.unicode(item.icons) ? {} : { innerHTML: item.icons }
416
- }), h('div', {
447
+ var title = [];
448
+ if (subIcon) {
449
+ title.push(h('es-icon', {
450
+ props: {
451
+ contents: item.icons || this.menuIcon
452
+ },
453
+ class: ['es-menu-item-icon']
454
+ }));
455
+ }
456
+ title.push(h('div', {
417
457
  class: ['es-menu-title-text es-menu-title-' + this.mode]
418
458
  }, [h('el-badge', {
419
459
  class: ['es-badge', {
@@ -431,14 +471,14 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
431
471
  max: 99,
432
472
  hidden: !item.tips
433
473
  }
434
- }, [item.text])])];
474
+ }, [item.text])]));
435
475
  var doms = [h('template', { slot: 'title' }, this.titleIcons ? title : [title[1]])];
436
476
  if (this.deep && item.children && item.children.length && (!item.extendData || item.extendData.businessStatus != 0)) {
437
477
  doms = doms.concat(item.children.map(function (ele, index) {
438
478
  if (!ele) {
439
479
  console.error('\u5BF9\u8C61\u5B50\u6570\u636E\u4E2D\u7B2C[' + index + ']\u6761\u6570\u636E\u9519\u8BEF', item);
440
480
  } else {
441
- return _this4.getSub(ele, h, popper);
481
+ return _this5.getSub(ele, h, popper, false, _this5.subIcon);
442
482
  }
443
483
  }));
444
484
  return [h('el-submenu', {
@@ -456,7 +496,7 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
456
496
  if (!ele) {
457
497
  console.error('\u5BF9\u8C61\u5B50\u6570\u636E\u4E2D\u7B2C[' + index + ']\u6761\u6570\u636E\u9519\u8BEF', item);
458
498
  } else {
459
- return _this4.getSub(ele, h, popper, true);
499
+ return _this5.getSub(ele, h, popper, true, _this5.subIcon);
460
500
  }
461
501
  }));
462
502
  return [h('el-submenu', {
@@ -484,28 +524,23 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
484
524
  }
485
525
  }, this.titleIcons ? title : [title[1]])];
486
526
  }
487
- },
488
- unicode: function unicode(res) {
489
- if (!res) {
490
- return false;
491
- }
492
- var reg = new RegExp(/^es-\S+/, 'g');
493
- return res.match(reg) ? res.match(reg).length : 0;
494
527
  }
495
528
  },
496
529
  render: function render(h) {
497
- var _this5 = this;
530
+ var _this6 = this;
498
531
 
499
532
  var doms = [];
500
533
  this.data.forEach(function (item) {
501
534
  if (item.children && item.children.length && (!item.extendData || item.extendData.businessStatus != 0)) {
502
- doms = doms.concat(_this5.getSub(item, h, 'es-sub-menu'));
535
+ doms = doms.concat(_this6.getSub(item, h, 'es-sub-menu', false, true));
503
536
  } else {
504
- var title = [h('i', {
505
- class: [item.icons ? _this5.unicode(item.icons) ? item.icons : 'es-icon iconfont' : 'es-icon-application', 'es-menu-item-icon'],
506
- domProps: item.icons === '' || _this5.unicode(item.icons) ? {} : { innerHTML: item.icons }
537
+ var title = [h('es-icon', {
538
+ props: {
539
+ contents: item.icons || _this6.menuIcon
540
+ },
541
+ class: ['es-menu-item-icon']
507
542
  }), h('div', {
508
- class: ['es-menu-title-text es-menu-title-' + _this5.mode]
543
+ class: ['es-menu-title-text es-menu-title-' + _this6.mode]
509
544
  }, [h('el-badge', {
510
545
  class: ['es-badge', {
511
546
  'es-badge-right': item.tips && typeof item.tips !== 'boolean',
@@ -521,9 +556,9 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
521
556
  }
522
557
  }, [item.text])])];
523
558
  doms.push(h('el-menu-item', {
524
- class: ['es-menu-item-' + _this5.mode],
559
+ class: ['es-menu-item-' + _this6.mode],
525
560
  props: {
526
- paddingLeft: _this5.paddingLeft,
561
+ paddingLeft: _this6.paddingLeft,
527
562
  disabled: item.extendData && item.extendData.businessStatus == 0
528
563
  },
529
564
  attrs: {
@@ -531,7 +566,7 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
531
566
  index: item.id,
532
567
  key: item.id
533
568
  }
534
- }, _this5.titleIcons ? title : [title[1]]));
569
+ }, _this6.titleIcons ? title : [title[1]]));
535
570
  }
536
571
  });
537
572
  return h('el-scrollbar', {
@@ -549,7 +584,8 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
549
584
  defaultActive: this.defaultActive,
550
585
  collapse: this.collapse,
551
586
  mode: this.mode,
552
- uniqueOpened: this.uniqueOpened
587
+ uniqueOpened: this.uniqueOpened,
588
+ icons: this.icons
553
589
  },
554
590
  style: { width: this.maxWidth },
555
591
  attrs: _extends({}, this.$attrs),