eoss 0.1.0-alpha.44 → 0.1.0-alpha.45

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 (45) hide show
  1. package/lib/button-group.js +11 -9
  2. package/lib/button.js +5 -3
  3. package/lib/cascader.js +3 -3
  4. package/lib/color-picker.js +6 -3
  5. package/lib/date-picker.js +5 -3
  6. package/lib/eoss.common.js +516 -188
  7. package/lib/index.js +1 -1
  8. package/lib/input-number.js +6 -2
  9. package/lib/input.js +148 -87
  10. package/lib/select.js +212 -11
  11. package/lib/switch.js +6 -3
  12. package/lib/table-column.js +10 -1
  13. package/lib/table.js +64 -22
  14. package/lib/tag.js +2 -0
  15. package/lib/theme-chalk/base.css +1 -1
  16. package/lib/theme-chalk/cascader.css +1 -1
  17. package/lib/theme-chalk/icons.css +1 -1
  18. package/lib/theme-chalk/index.css +1 -1
  19. package/lib/theme-chalk/main.css +1 -1
  20. package/lib/theme-chalk/pagination.css +1 -1
  21. package/lib/theme-chalk/select.css +1 -1
  22. package/lib/theme-chalk/table-column.css +1 -1
  23. package/lib/theme-chalk/table.css +1 -1
  24. package/lib/theme-chalk/tag.css +1 -1
  25. package/lib/time-picker.js +5 -3
  26. package/lib/time-select.js +5 -3
  27. package/package.json +1 -1
  28. package/packages/button/src/button-group.vue +9 -7
  29. package/packages/button/src/button.vue +7 -5
  30. package/packages/cascader/src/cascader.vue +1 -1
  31. package/packages/color-picker/src/color-picker.vue +4 -1
  32. package/packages/date-picker/src/picker.vue +3 -1
  33. package/packages/input/src/input.vue +94 -60
  34. package/packages/input-number/src/input-number.vue +5 -1
  35. package/packages/select/src/select.vue +182 -12
  36. package/packages/switch/src/switch.vue +4 -1
  37. package/packages/table/src/table-column.js +7 -1
  38. package/packages/table/src/table-header.js +52 -7
  39. package/packages/table/src/util.js +3 -0
  40. package/packages/tag/src/tag.vue +2 -0
  41. package/packages/theme-chalk/src/base.scss +7 -0
  42. package/packages/theme-chalk/src/icons.scss +13 -1
  43. package/packages/theme-chalk/src/table.scss +12 -2
  44. package/packages/theme-chalk/src/tag.scss +303 -242
  45. package/src/index.js +1 -1
@@ -14844,7 +14844,9 @@ var buttonvue_type_script_lang_js_extends = Object.assign || function (target) {
14844
14844
  // 点击事件回调函数
14845
14845
  event: [Function, String],
14846
14846
  // 传递给点击事件的参数
14847
- param: [Object, String, Number, Array]
14847
+ param: [Object, String, Number, Array],
14848
+ // table行数据
14849
+ rowData: Object
14848
14850
  },
14849
14851
 
14850
14852
  computed: {
@@ -14910,12 +14912,12 @@ var buttonvue_type_script_lang_js_extends = Object.assign || function (target) {
14910
14912
 
14911
14913
  // 调用自定义事件处理函数(如果提供)
14912
14914
  if (this.event && typeof this.event === 'function') {
14913
- this.event(this.param, this, evt);
14915
+ this.event(this.param, this.rowData, this, evt);
14914
14916
  return;
14915
14917
  }
14916
14918
 
14917
14919
  // 触发组件的click事件
14918
- this.$emit('click', evt, this.param, this);
14920
+ this.$emit('click', evt, this, this.param, this.rowData);
14919
14921
  }
14920
14922
  },
14921
14923
 
@@ -15036,8 +15038,8 @@ src_button.install = function (Vue) {
15036
15038
  };
15037
15039
 
15038
15040
  /* harmony default export */ var packages_button = (src_button);
15039
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/button/src/button-group.vue?vue&type=template&id=fcac0d6a&
15040
- var button_groupvue_type_template_id_fcac0d6a_render = function () {
15041
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/button/src/button-group.vue?vue&type=template&id=68a3f6ee&
15042
+ var button_groupvue_type_template_id_68a3f6ee_render = function () {
15041
15043
  var _vm = this
15042
15044
  var _h = _vm.$createElement
15043
15045
  var _c = _vm._self._c || _h
@@ -15060,7 +15062,7 @@ var button_groupvue_type_template_id_fcac0d6a_render = function () {
15060
15062
  {
15061
15063
  key: _vm.getItemKey(item, index),
15062
15064
  on: {
15063
- click: function (data, el, evt) {
15065
+ click: function (evt) {
15064
15066
  return _vm.handleClick(item, evt, index)
15065
15067
  },
15066
15068
  },
@@ -15090,11 +15092,11 @@ var button_groupvue_type_template_id_fcac0d6a_render = function () {
15090
15092
  2
15091
15093
  )
15092
15094
  }
15093
- var button_groupvue_type_template_id_fcac0d6a_staticRenderFns = []
15094
- button_groupvue_type_template_id_fcac0d6a_render._withStripped = true
15095
+ var button_groupvue_type_template_id_68a3f6ee_staticRenderFns = []
15096
+ button_groupvue_type_template_id_68a3f6ee_render._withStripped = true
15095
15097
 
15096
15098
 
15097
- // CONCATENATED MODULE: ./packages/button/src/button-group.vue?vue&type=template&id=fcac0d6a&
15099
+ // CONCATENATED MODULE: ./packages/button/src/button-group.vue?vue&type=template&id=68a3f6ee&
15098
15100
 
15099
15101
  // EXTERNAL MODULE: external "eoss/lib/dropdown"
15100
15102
  var dropdown_ = __webpack_require__(25);
@@ -15240,7 +15242,9 @@ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in ob
15240
15242
  stop: {
15241
15243
  type: Boolean,
15242
15244
  default: false
15243
- }
15245
+ },
15246
+ // table行数据
15247
+ rowData: Object
15244
15248
  },
15245
15249
  computed: {
15246
15250
  /**
@@ -15300,7 +15304,7 @@ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in ob
15300
15304
  var visibleButtons = this.contents.filter(function (item) {
15301
15305
  var rules = item.rules;
15302
15306
  if (rules && typeof rules === 'function') {
15303
- return rules(_this.data);
15307
+ return rules(_this.data, _this.rowData);
15304
15308
  }
15305
15309
  return item.hide !== true;
15306
15310
  });
@@ -15357,14 +15361,14 @@ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in ob
15357
15361
  */
15358
15362
  handleClick: function handleClick(item, evt, index) {
15359
15363
  if (item.event && typeof item.event === 'function') {
15360
- if (this.data) {
15361
- item.event(this.data, item, evt, index);
15364
+ if (this.data && this.rowData) {
15365
+ item.event(this.data, this.rowData, item, evt, index);
15362
15366
  return;
15363
15367
  }
15364
15368
  item.event(item, evt, index);
15365
15369
  } else {
15366
- if (this.data) {
15367
- this.$emit('click', this.data, item, evt, index);
15370
+ if (this.data && this.rowData) {
15371
+ this.$emit('click', this.data, this.rowData, item, evt, index);
15368
15372
  return;
15369
15373
  }
15370
15374
  this.$emit('click', item, evt, index);
@@ -15384,8 +15388,8 @@ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in ob
15384
15388
 
15385
15389
  var button_group_component = Object(componentNormalizer["a" /* default */])(
15386
15390
  src_button_groupvue_type_script_lang_js_,
15387
- button_groupvue_type_template_id_fcac0d6a_render,
15388
- button_groupvue_type_template_id_fcac0d6a_staticRenderFns,
15391
+ button_groupvue_type_template_id_68a3f6ee_render,
15392
+ button_groupvue_type_template_id_68a3f6ee_staticRenderFns,
15389
15393
  false,
15390
15394
  null,
15391
15395
  null,
@@ -18720,8 +18724,8 @@ carousel_item.install = function (Vue) {
18720
18724
  };
18721
18725
 
18722
18726
  /* harmony default export */ var packages_carousel_item = (carousel_item);
18723
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/cascader/src/cascader.vue?vue&type=template&id=51872262&
18724
- var cascadervue_type_template_id_51872262_render = function () {
18727
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/cascader/src/cascader.vue?vue&type=template&id=2e83a4a2&
18728
+ var cascadervue_type_template_id_2e83a4a2_render = function () {
18725
18729
  var _vm = this
18726
18730
  var _h = _vm.$createElement
18727
18731
  var _c = _vm._self._c || _h
@@ -18765,7 +18769,7 @@ var cascadervue_type_template_id_51872262_render = function () {
18765
18769
  attrs: {
18766
18770
  size: _vm.realSize,
18767
18771
  placeholder: _vm.placeholder,
18768
- readonly: _vm.inputReadonly,
18772
+ "native-readonly": _vm.inputReadonly,
18769
18773
  disabled: _vm.isDisabled,
18770
18774
  "validate-event": false,
18771
18775
  },
@@ -19032,11 +19036,11 @@ var cascadervue_type_template_id_51872262_render = function () {
19032
19036
  2
19033
19037
  )
19034
19038
  }
19035
- var cascadervue_type_template_id_51872262_staticRenderFns = []
19036
- cascadervue_type_template_id_51872262_render._withStripped = true
19039
+ var cascadervue_type_template_id_2e83a4a2_staticRenderFns = []
19040
+ cascadervue_type_template_id_2e83a4a2_render._withStripped = true
19037
19041
 
19038
19042
 
19039
- // CONCATENATED MODULE: ./packages/cascader/src/cascader.vue?vue&type=template&id=51872262&
19043
+ // CONCATENATED MODULE: ./packages/cascader/src/cascader.vue?vue&type=template&id=2e83a4a2&
19040
19044
 
19041
19045
  // CONCATENATED MODULE: ./src/utils/aria-utils.js
19042
19046
  var aria = aria || {};
@@ -20320,8 +20324,8 @@ var InputSizeMap = {
20320
20324
 
20321
20325
  var cascader_component = Object(componentNormalizer["a" /* default */])(
20322
20326
  src_cascadervue_type_script_lang_js_,
20323
- cascadervue_type_template_id_51872262_render,
20324
- cascadervue_type_template_id_51872262_staticRenderFns,
20327
+ cascadervue_type_template_id_2e83a4a2_render,
20328
+ cascadervue_type_template_id_2e83a4a2_staticRenderFns,
20325
20329
  false,
20326
20330
  null,
20327
20331
  null,
@@ -25358,8 +25362,8 @@ collapse_item.install = function (Vue) {
25358
25362
  };
25359
25363
 
25360
25364
  /* harmony default export */ var packages_collapse_item = (collapse_item);
25361
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/color-picker/src/color-picker.vue?vue&type=template&id=41a44425&
25362
- var color_pickervue_type_template_id_41a44425_render = function () {
25365
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/color-picker/src/color-picker.vue?vue&type=template&id=41259020&
25366
+ var color_pickervue_type_template_id_41259020_render = function () {
25363
25367
  var _vm = this
25364
25368
  var _h = _vm.$createElement
25365
25369
  var _c = _vm._self._c || _h
@@ -25454,11 +25458,11 @@ var color_pickervue_type_template_id_41a44425_render = function () {
25454
25458
  2
25455
25459
  )
25456
25460
  }
25457
- var color_pickervue_type_template_id_41a44425_staticRenderFns = []
25458
- color_pickervue_type_template_id_41a44425_render._withStripped = true
25461
+ var color_pickervue_type_template_id_41259020_staticRenderFns = []
25462
+ color_pickervue_type_template_id_41259020_render._withStripped = true
25459
25463
 
25460
25464
 
25461
- // CONCATENATED MODULE: ./packages/color-picker/src/color-picker.vue?vue&type=template&id=41a44425&
25465
+ // CONCATENATED MODULE: ./packages/color-picker/src/color-picker.vue?vue&type=template&id=41259020&
25462
25466
 
25463
25467
  // CONCATENATED MODULE: ./packages/color-picker/src/color.js
25464
25468
  var color_typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
@@ -27072,7 +27076,10 @@ var picker_dropdown_component = Object(componentNormalizer["a" /* default */])(
27072
27076
  if (value) {
27073
27077
  this.color.fromString(value);
27074
27078
  }
27075
- this.popperElm = this.$refs.dropdown.$el;
27079
+ // 只读态下 dropdown 被 v-if 移除,需防护
27080
+ if (this.$refs.dropdown) {
27081
+ this.popperElm = this.$refs.dropdown.$el;
27082
+ }
27076
27083
  },
27077
27084
  data: function data() {
27078
27085
  var color = new src_color({
@@ -27104,8 +27111,8 @@ var picker_dropdown_component = Object(componentNormalizer["a" /* default */])(
27104
27111
 
27105
27112
  var color_picker_component = Object(componentNormalizer["a" /* default */])(
27106
27113
  src_color_pickervue_type_script_lang_js_,
27107
- color_pickervue_type_template_id_41a44425_render,
27108
- color_pickervue_type_template_id_41a44425_staticRenderFns,
27114
+ color_pickervue_type_template_id_41259020_render,
27115
+ color_pickervue_type_template_id_41259020_staticRenderFns,
27109
27116
  false,
27110
27117
  null,
27111
27118
  null,
@@ -29295,8 +29302,8 @@ data_table.install = function (Vue) {
29295
29302
  };
29296
29303
 
29297
29304
  /* harmony default export */ var packages_data_table = (data_table);
29298
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/picker.vue?vue&type=template&id=41ad8826&
29299
- var pickervue_type_template_id_41ad8826_render = function () {
29305
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/picker.vue?vue&type=template&id=3bc027b2&
29306
+ var pickervue_type_template_id_3bc027b2_render = function () {
29300
29307
  var _vm = this
29301
29308
  var _h = _vm.$createElement
29302
29309
  var _c = _vm._self._c || _h
@@ -29321,7 +29328,7 @@ var pickervue_type_template_id_41ad8826_render = function () {
29321
29328
  staticClass: "es-date-editor",
29322
29329
  class: "es-date-editor--" + _vm.type,
29323
29330
  attrs: {
29324
- readonly:
29331
+ "native-readonly":
29325
29332
  !_vm.editable ||
29326
29333
  _vm.readonly ||
29327
29334
  _vm.type === "dates" ||
@@ -29475,11 +29482,11 @@ var pickervue_type_template_id_41ad8826_render = function () {
29475
29482
  2
29476
29483
  )
29477
29484
  }
29478
- var pickervue_type_template_id_41ad8826_staticRenderFns = []
29479
- pickervue_type_template_id_41ad8826_render._withStripped = true
29485
+ var pickervue_type_template_id_3bc027b2_staticRenderFns = []
29486
+ pickervue_type_template_id_3bc027b2_render._withStripped = true
29480
29487
 
29481
29488
 
29482
- // CONCATENATED MODULE: ./packages/date-picker/src/picker.vue?vue&type=template&id=41ad8826&
29489
+ // CONCATENATED MODULE: ./packages/date-picker/src/picker.vue?vue&type=template&id=3bc027b2&
29483
29490
 
29484
29491
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/picker.vue?vue&type=script&lang=js&
29485
29492
  //
@@ -29581,6 +29588,8 @@ pickervue_type_template_id_41ad8826_render._withStripped = true
29581
29588
  //
29582
29589
  //
29583
29590
  //
29591
+ //
29592
+ //
29584
29593
 
29585
29594
  /**
29586
29595
  * 日期时间选择器基础组件
@@ -30664,8 +30673,8 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
30664
30673
 
30665
30674
  var picker_component = Object(componentNormalizer["a" /* default */])(
30666
30675
  src_pickervue_type_script_lang_js_,
30667
- pickervue_type_template_id_41ad8826_render,
30668
- pickervue_type_template_id_41ad8826_staticRenderFns,
30676
+ pickervue_type_template_id_3bc027b2_render,
30677
+ pickervue_type_template_id_3bc027b2_staticRenderFns,
30669
30678
  false,
30670
30679
  null,
30671
30680
  null,
@@ -98006,8 +98015,8 @@ infinite_scroll_src_main.install = function (Vue) {
98006
98015
  };
98007
98016
 
98008
98017
  /* harmony default export */ var infinite_scroll = (infinite_scroll_src_main);
98009
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/input-number/src/input-number.vue?vue&type=template&id=1bf5c763&
98010
- var input_numbervue_type_template_id_1bf5c763_render = function () {
98018
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/input-number/src/input-number.vue?vue&type=template&id=40f587bb&
98019
+ var input_numbervue_type_template_id_40f587bb_render = function () {
98011
98020
  var _vm = this
98012
98021
  var _h = _vm.$createElement
98013
98022
  var _c = _vm._self._c || _h
@@ -98172,11 +98181,11 @@ var input_numbervue_type_template_id_1bf5c763_render = function () {
98172
98181
  2
98173
98182
  )
98174
98183
  }
98175
- var input_numbervue_type_template_id_1bf5c763_staticRenderFns = []
98176
- input_numbervue_type_template_id_1bf5c763_render._withStripped = true
98184
+ var input_numbervue_type_template_id_40f587bb_staticRenderFns = []
98185
+ input_numbervue_type_template_id_40f587bb_render._withStripped = true
98177
98186
 
98178
98187
 
98179
- // CONCATENATED MODULE: ./packages/input-number/src/input-number.vue?vue&type=template&id=1bf5c763&
98188
+ // CONCATENATED MODULE: ./packages/input-number/src/input-number.vue?vue&type=template&id=40f587bb&
98180
98189
 
98181
98190
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/input-number/src/input-number.vue?vue&type=script&lang=js&
98182
98191
  //
@@ -98649,7 +98658,10 @@ input_numbervue_type_template_id_1bf5c763_render._withStripped = true
98649
98658
  }
98650
98659
  },
98651
98660
  mounted: function mounted() {
98661
+ // 只读态下内部 es-input 被 v-if 移除,ref 不存在,需与 updated 同样防护
98662
+ if (!this.$refs || !this.$refs.input) return;
98652
98663
  var innerInput = this.$refs.input.$refs.input;
98664
+ if (!innerInput) return;
98653
98665
  innerInput.setAttribute('role', 'spinbutton');
98654
98666
  innerInput.setAttribute('aria-valuemax', this.max);
98655
98667
  innerInput.setAttribute('aria-valuemin', this.min);
@@ -98659,6 +98671,7 @@ input_numbervue_type_template_id_1bf5c763_render._withStripped = true
98659
98671
  updated: function updated() {
98660
98672
  if (!this.$refs || !this.$refs.input) return;
98661
98673
  var innerInput = this.$refs.input.$refs.input;
98674
+ if (!innerInput) return;
98662
98675
  innerInput.setAttribute('aria-valuenow', this.currentValue);
98663
98676
  }
98664
98677
  });
@@ -98674,8 +98687,8 @@ input_numbervue_type_template_id_1bf5c763_render._withStripped = true
98674
98687
 
98675
98688
  var input_number_component = Object(componentNormalizer["a" /* default */])(
98676
98689
  src_input_numbervue_type_script_lang_js_,
98677
- input_numbervue_type_template_id_1bf5c763_render,
98678
- input_numbervue_type_template_id_1bf5c763_staticRenderFns,
98690
+ input_numbervue_type_template_id_40f587bb_render,
98691
+ input_numbervue_type_template_id_40f587bb_staticRenderFns,
98679
98692
  false,
98680
98693
  null,
98681
98694
  null,
@@ -98692,8 +98705,8 @@ input_number.install = function (Vue) {
98692
98705
  };
98693
98706
 
98694
98707
  /* harmony default export */ var packages_input_number = (input_number);
98695
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/input/src/input.vue?vue&type=template&id=782c4367&
98696
- var inputvue_type_template_id_782c4367_render = function () {
98708
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/input/src/input.vue?vue&type=template&id=7d4041a6&
98709
+ var inputvue_type_template_id_7d4041a6_render = function () {
98697
98710
  var _vm = this
98698
98711
  var _h = _vm.$createElement
98699
98712
  var _c = _vm._self._c || _h
@@ -98757,62 +98770,76 @@ var inputvue_type_template_id_782c4367_render = function () {
98757
98770
  2
98758
98771
  )
98759
98772
  : _vm._e(),
98760
- _vm.type === "password" ||
98761
- (_vm.showPassword && !_vm.passwordVisible)
98762
- ? _c("input", {
98763
- staticClass: "es-input__hidden",
98764
- staticStyle: {
98765
- position: "absolute",
98766
- top: "-9999px",
98767
- left: "-9999px",
98768
- width: "0",
98769
- height: "0",
98770
- opacity: "0",
98771
- },
98772
- attrs: { type: "password", autocomplete: "off" },
98773
- })
98774
- : _vm._e(),
98775
- _vm.type !== "textarea"
98776
- ? _c(
98777
- "input",
98778
- _vm._b(
98779
- {
98780
- ref: "input",
98781
- staticClass: "es-input__inner",
98782
- class: { "is-round": _vm.round },
98783
- style: _vm.innerStyle,
98784
- attrs: {
98785
- tabindex: _vm.tabindex,
98786
- type: _vm.showPassword
98787
- ? _vm.passwordVisible
98788
- ? "text"
98789
- : "password"
98790
- : _vm.type,
98791
- disabled: _vm.inputDisabled,
98792
- readonly: _vm.inputReadonly,
98793
- autocomplete:
98794
- _vm.type === "password" ||
98795
- (_vm.showPassword && !_vm.passwordVisible)
98796
- ? "new-password"
98797
- : _vm.autoComplete || _vm.autocomplete,
98798
- "aria-label": _vm.label,
98799
- },
98800
- on: {
98801
- compositionstart: _vm.handleCompositionStart,
98802
- compositionupdate: _vm.handleCompositionUpdate,
98803
- compositionend: _vm.handleCompositionEnd,
98804
- input: _vm.handleInput,
98805
- focus: _vm.handleFocus,
98806
- blur: _vm.handleBlur,
98807
- change: _vm.handleChange,
98808
- },
98809
- },
98810
- "input",
98811
- _vm.$attrs,
98812
- false
98813
- )
98814
- )
98815
- : _vm._e(),
98773
+ _vm.inputReadonly
98774
+ ? _c("div", { staticClass: "es-field-readonly" }, [
98775
+ _vm._v(
98776
+ "\n " +
98777
+ _vm._s(
98778
+ _vm.passwordVisible
98779
+ ? _vm.nativeInputValue
98780
+ : _vm.maskedInputValue
98781
+ ) +
98782
+ "\n "
98783
+ ),
98784
+ ])
98785
+ : [
98786
+ _vm.type === "password" ||
98787
+ (_vm.showPassword && !_vm.passwordVisible)
98788
+ ? _c("input", {
98789
+ staticClass: "es-input__hidden",
98790
+ staticStyle: {
98791
+ position: "absolute",
98792
+ top: "-9999px",
98793
+ left: "-9999px",
98794
+ width: "0",
98795
+ height: "0",
98796
+ opacity: "0",
98797
+ },
98798
+ attrs: { type: "password", autocomplete: "off" },
98799
+ })
98800
+ : _vm._e(),
98801
+ _vm.type !== "textarea"
98802
+ ? _c(
98803
+ "input",
98804
+ _vm._b(
98805
+ {
98806
+ ref: "input",
98807
+ staticClass: "es-input__inner",
98808
+ class: { "is-round": _vm.round },
98809
+ style: _vm.innerStyle,
98810
+ attrs: {
98811
+ tabindex: _vm.tabindex,
98812
+ type: _vm.showPassword
98813
+ ? _vm.passwordVisible
98814
+ ? "text"
98815
+ : "password"
98816
+ : _vm.type,
98817
+ disabled: _vm.inputDisabled,
98818
+ readonly: _vm.nativeReadonly,
98819
+ autocomplete:
98820
+ _vm.type === "password" ||
98821
+ (_vm.showPassword && !_vm.passwordVisible)
98822
+ ? "new-password"
98823
+ : _vm.autoComplete || _vm.autocomplete,
98824
+ "aria-label": _vm.label,
98825
+ },
98826
+ on: {
98827
+ compositionstart: _vm.handleCompositionStart,
98828
+ compositionupdate: _vm.handleCompositionUpdate,
98829
+ compositionend: _vm.handleCompositionEnd,
98830
+ input: _vm.handleInput,
98831
+ focus: _vm.handleFocus,
98832
+ blur: _vm.handleBlur,
98833
+ change: _vm.handleChange,
98834
+ },
98835
+ },
98836
+ "input",
98837
+ _vm.$attrs,
98838
+ false
98839
+ )
98840
+ )
98841
+ : _vm._e(),
98842
+ ],
98816
98843
  _vm.$slots.prefix || _vm.prefix || _vm.prefixIcon
98817
98844
  ? _c(
98818
98845
  "span",
@@ -98953,35 +98980,50 @@ var inputvue_type_template_id_782c4367_render = function () {
98953
98980
  )
98954
98981
  : _vm._e(),
98955
98982
  ]
98956
- : _c(
98957
- "textarea",
98958
- _vm._b(
98959
- {
98960
- ref: "textarea",
98961
- staticClass: "es-textarea__inner",
98962
- style: _vm.textareaStyle,
98963
- attrs: {
98964
- tabindex: _vm.tabindex,
98965
- disabled: _vm.inputDisabled,
98966
- readonly: _vm.inputReadonly,
98967
- autocomplete: _vm.autoComplete || _vm.autocomplete,
98968
- "aria-label": _vm.label,
98969
- },
98970
- on: {
98971
- compositionstart: _vm.handleCompositionStart,
98972
- compositionupdate: _vm.handleCompositionUpdate,
98973
- compositionend: _vm.handleCompositionEnd,
98974
- input: _vm.handleInput,
98975
- focus: _vm.handleFocus,
98976
- blur: _vm.handleBlur,
98977
- change: _vm.handleChange,
98978
- },
98979
- },
98980
- "textarea",
98981
- _vm.$attrs,
98982
- false
98983
- )
98984
- ),
98983
+ : [
98984
+ _vm.inputReadonly
98985
+ ? _c(
98986
+ "div",
98987
+ {
98988
+ staticClass:
98989
+ "es-field-readonly es-field-readonly--textarea",
98990
+ staticStyle: {
98991
+ "white-space": "pre-wrap",
98992
+ "word-break": "break-all",
98993
+ },
98994
+ },
98995
+ [_vm._v("\n " + _vm._s(_vm.nativeInputValue) + "\n ")]
98996
+ )
98997
+ : _c(
98998
+ "textarea",
98999
+ _vm._b(
99000
+ {
99001
+ ref: "textarea",
99002
+ staticClass: "es-textarea__inner",
99003
+ style: _vm.textareaStyle,
99004
+ attrs: {
99005
+ tabindex: _vm.tabindex,
99006
+ disabled: _vm.inputDisabled,
99007
+ readonly: _vm.nativeReadonly,
99008
+ autocomplete: _vm.autoComplete || _vm.autocomplete,
99009
+ "aria-label": _vm.label,
99010
+ },
99011
+ on: {
99012
+ compositionstart: _vm.handleCompositionStart,
99013
+ compositionupdate: _vm.handleCompositionUpdate,
99014
+ compositionend: _vm.handleCompositionEnd,
99015
+ input: _vm.handleInput,
99016
+ focus: _vm.handleFocus,
99017
+ blur: _vm.handleBlur,
99018
+ change: _vm.handleChange,
99019
+ },
99020
+ },
99021
+ "textarea",
99022
+ _vm.$attrs,
99023
+ false
99024
+ )
99025
+ ),
99026
+ ],
98985
99027
  _vm.isWordLimitVisible && _vm.type === "textarea"
98986
99028
  ? _c("span", { staticClass: "es-input__count" }, [
98987
99029
  _vm._v(_vm._s(_vm.textLength) + "/" + _vm._s(_vm.upperLimit)),
@@ -98992,11 +99034,11 @@ var inputvue_type_template_id_782c4367_render = function () {
98992
99034
  2
98993
99035
  )
98994
99036
  }
98995
- var inputvue_type_template_id_782c4367_staticRenderFns = []
98996
- inputvue_type_template_id_782c4367_render._withStripped = true
99037
+ var inputvue_type_template_id_7d4041a6_staticRenderFns = []
99038
+ inputvue_type_template_id_7d4041a6_render._withStripped = true
98997
99039
 
98998
99040
 
98999
- // CONCATENATED MODULE: ./packages/input/src/input.vue?vue&type=template&id=782c4367&
99041
+ // CONCATENATED MODULE: ./packages/input/src/input.vue?vue&type=template&id=7d4041a6&
99000
99042
 
99001
99043
  // CONCATENATED MODULE: ./packages/input/src/calcTextareaHeight.js
99002
99044
  var hiddenTextarea = void 0;
@@ -99231,6 +99273,21 @@ function calcTextareaHeight(targetElement) {
99231
99273
  //
99232
99274
  //
99233
99275
  //
99276
+ //
99277
+ //
99278
+ //
99279
+ //
99280
+ //
99281
+ //
99282
+ //
99283
+ //
99284
+ //
99285
+ //
99286
+ //
99287
+ //
99288
+ //
99289
+ //
99290
+ //
99234
99291
 
99235
99292
 
99236
99293
 
@@ -99332,6 +99389,14 @@ function calcTextareaHeight(targetElement) {
99332
99389
  * @default false
99333
99390
  */
99334
99391
  readonly: Boolean,
99392
+ /**
99393
+ * 仅绑定原生 input 的 readonly 属性(行为标志,供 select/cascader/picker 内部使用)
99394
+ * @type {Boolean}
99395
+ * @default false
99396
+ * @description 这些复合组件给内部 es-input 传的 readonly 是"禁止打字但保留输入框结构"
99397
+ * 的行为标志(普通态也常为 true),若走 readonly 会命中只读 div 分支导致布局破坏
99398
+ */
99399
+ nativeReadonly: Boolean,
99335
99400
  /**
99336
99401
  * 输入框类型
99337
99402
  * @type {String}
@@ -99507,6 +99572,15 @@ function calcTextareaHeight(targetElement) {
99507
99572
  nativeInputValue: function nativeInputValue() {
99508
99573
  return this.value === null || this.value === undefined ? '' : String(this.value);
99509
99574
  },
99575
+
99576
+ // 只读 div 用:密码型(含 showPassword 未点眼预览)按原生表现打码,
99577
+ // div 无法应用 type="password",直接以掩码字符回显
99578
+ maskedInputValue: function maskedInputValue() {
99579
+ if (this.type !== 'password' && !(this.showPassword && !this.passwordVisible)) {
99580
+ return this.nativeInputValue;
99581
+ }
99582
+ return '*'.repeat(this.nativeInputValue.length);
99583
+ },
99510
99584
  showClear: function showClear() {
99511
99585
  return this.clearable && !this.inputDisabled && !this.inputReadonly && this.nativeInputValue && (this.focused || this.hovering);
99512
99586
  },
@@ -99852,8 +99926,8 @@ function calcTextareaHeight(targetElement) {
99852
99926
 
99853
99927
  var input_component = Object(componentNormalizer["a" /* default */])(
99854
99928
  src_inputvue_type_script_lang_js_,
99855
- inputvue_type_template_id_782c4367_render,
99856
- inputvue_type_template_id_782c4367_staticRenderFns,
99929
+ inputvue_type_template_id_7d4041a6_render,
99930
+ inputvue_type_template_id_7d4041a6_staticRenderFns,
99857
99931
  false,
99858
99932
  null,
99859
99933
  null,
@@ -153360,8 +153434,8 @@ scrollbar_src_main.install = function (Vue) {
153360
153434
  };
153361
153435
 
153362
153436
  /* harmony default export */ var packages_scrollbar = (scrollbar_src_main);
153363
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/select/src/select.vue?vue&type=template&id=4baed3ce&
153364
- var selectvue_type_template_id_4baed3ce_render = function () {
153437
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/select/src/select.vue?vue&type=template&id=f4dfce0a&
153438
+ var selectvue_type_template_id_f4dfce0a_render = function () {
153365
153439
  var _vm = this
153366
153440
  var _h = _vm.$createElement
153367
153441
  var _c = _vm._self._c || _h
@@ -153694,7 +153768,7 @@ var selectvue_type_template_id_4baed3ce_render = function () {
153694
153768
  autocomplete: _vm.autocomplete,
153695
153769
  size: _vm.selectSize,
153696
153770
  disabled: _vm.selectDisabled,
153697
- readonly: _vm.inputReadonly,
153771
+ "native-readonly": _vm.inputReadonly,
153698
153772
  "validate-event": false,
153699
153773
  tabindex: _vm.tabindex,
153700
153774
  prefix: _vm.prefix,
@@ -153872,6 +153946,12 @@ var selectvue_type_template_id_4baed3ce_render = function () {
153872
153946
  "es-scrollbar",
153873
153947
  {
153874
153948
  directives: [
153949
+ {
153950
+ name: "loading",
153951
+ rawName: "v-loading",
153952
+ value: _vm.isLoading,
153953
+ expression: "isLoading",
153954
+ },
153875
153955
  {
153876
153956
  name: "show",
153877
153957
  rawName: "v-show",
@@ -153891,6 +153971,14 @@ var selectvue_type_template_id_4baed3ce_render = function () {
153891
153971
  "wrap-class": "es-select-dropdown__wrap",
153892
153972
  "view-class": "es-select-dropdown__list",
153893
153973
  listener: true,
153974
+ "infinite-scroll": _vm.innerInfiniteScroll,
153975
+ "infinite-scroll-disabled":
153976
+ _vm.innerInfiniteScrollDisabled,
153977
+ "infinite-scroll-distance":
153978
+ _vm.infiniteScrollDistance,
153979
+ "infinite-scroll-delay": _vm.infiniteScrollDelay,
153980
+ "infinite-scroll-immediate":
153981
+ _vm.infiniteScrollImmediate,
153894
153982
  },
153895
153983
  },
153896
153984
  [
@@ -154024,6 +154112,19 @@ var selectvue_type_template_id_4baed3ce_render = function () {
154024
154112
  : _vm._e(),
154025
154113
  ]
154026
154114
  }),
154115
+ _vm.lazyEnabled && _vm.lazyFinished
154116
+ ? _c(
154117
+ "div",
154118
+ {
154119
+ staticClass: "es-select-dropdown__finished",
154120
+ },
154121
+ [
154122
+ _vm._v(
154123
+ "\n 没有更多数据了\n "
154124
+ ),
154125
+ ]
154126
+ )
154127
+ : _vm._e(),
154027
154128
  ],
154028
154129
  2
154029
154130
  ),
@@ -154063,11 +154164,11 @@ var selectvue_type_template_id_4baed3ce_render = function () {
154063
154164
  2
154064
154165
  )
154065
154166
  }
154066
- var selectvue_type_template_id_4baed3ce_staticRenderFns = []
154067
- selectvue_type_template_id_4baed3ce_render._withStripped = true
154167
+ var selectvue_type_template_id_f4dfce0a_staticRenderFns = []
154168
+ selectvue_type_template_id_f4dfce0a_render._withStripped = true
154068
154169
 
154069
154170
 
154070
- // CONCATENATED MODULE: ./packages/select/src/select.vue?vue&type=template&id=4baed3ce&
154171
+ // CONCATENATED MODULE: ./packages/select/src/select.vue?vue&type=template&id=f4dfce0a&
154071
154172
 
154072
154173
  // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/select/src/select-dropdown.vue?vue&type=template&id=3d0b907d&
154073
154174
  var select_dropdownvue_type_template_id_3d0b907d_render = function () {
@@ -154826,6 +154927,19 @@ var selectvue_type_script_lang_js_this = undefined;
154826
154927
  //
154827
154928
  //
154828
154929
  //
154930
+ //
154931
+ //
154932
+ //
154933
+ //
154934
+ //
154935
+ //
154936
+ //
154937
+ //
154938
+ //
154939
+ //
154940
+ //
154941
+ //
154942
+ //
154829
154943
 
154830
154944
 
154831
154945
 
@@ -155268,7 +155382,70 @@ var selectvue_type_script_lang_js_this = undefined;
155268
155382
  * 选项值的键名
155269
155383
  * @type {String}
155270
155384
  */
155271
- valueKey: String
155385
+ valueKey: String,
155386
+ /**
155387
+ * 无限滚动回调:下拉列表滚动到底部时触发,用于分页加载更多选项
155388
+ * @type {Function}
155389
+ * @description 选项数据由外部接口分页提供时,在回调中请求下一页并追加到 data;
155390
+ * 没有更多数据时由外部置 infiniteScrollDisabled 为 true 停止触发
155391
+ */
155392
+ infiniteScroll: Function,
155393
+ /**
155394
+ * 是否禁用无限滚动
155395
+ * @type {Boolean}
155396
+ * @default false
155397
+ */
155398
+ infiniteScrollDisabled: Boolean,
155399
+ /**
155400
+ * 距底部多少 px 时触发无限滚动
155401
+ * @type {Number}
155402
+ * @default 0
155403
+ */
155404
+ infiniteScrollDistance: {
155405
+ type: Number,
155406
+ default: 0
155407
+ },
155408
+ /**
155409
+ * 无限滚动回调的节流间隔(ms),透传给内部 es-scrollbar
155410
+ * @type {Number}
155411
+ * @default 200
155412
+ */
155413
+ infiniteScrollDelay: {
155414
+ type: Number,
155415
+ default: 200
155416
+ },
155417
+ /**
155418
+ * 是否挂载后立即触发一次回调
155419
+ * @type {Boolean}
155420
+ * @default false
155421
+ * @description 与 es-scrollbar 默认值(true)不同:下拉的滚动条随 select 一起挂载,
155422
+ * 默认 true 会导致下拉尚未打开就自动请求首页,故这里默认关闭
155423
+ */
155424
+ infiniteScrollImmediate: {
155425
+ type: Boolean,
155426
+ default: false
155427
+ },
155428
+ /**
155429
+ * 是否开启选项懒加载(分页加载)
155430
+ * @type {Boolean}
155431
+ * @default false
155432
+ * @description 对 tree 为 false 的平铺 ul 列表生效,两种数据来源均支持:
155433
+ * 1. url 取数:初始化请求第一页,下拉滚动到底部时自动续拉下一页并追加(内部复用无限滚动),
155434
+ * 请求期间列表显示 loading;某页返回条数小于 pageSize 视为加载完毕停止触发
155435
+ * 2. data 外部传入(未配置 url):本地分页,先渲染前 pageSize 条,
155436
+ * 滚动到底部时同步切片追加下一页;data 变化时重置回第一页
155437
+ */
155438
+ lazy: Boolean,
155439
+ /**
155440
+ * 懒加载每页条数(url 取数时作为请求参数 pageNum/pageSize 随 param 一起 POST 给 url;
155441
+ * data 本地懒加载时作为每页切片条数)
155442
+ * @type {Number}
155443
+ * @default 50
155444
+ */
155445
+ pageSize: {
155446
+ type: Number,
155447
+ default: 20
155448
+ }
155272
155449
  },
155273
155450
 
155274
155451
  computed: {
@@ -155282,6 +155459,26 @@ var selectvue_type_script_lang_js_this = undefined;
155282
155459
  return this.valueKey || (this.sysCode ? 'cciValue' : 'value');
155283
155460
  },
155284
155461
 
155462
+ // 懒加载生效条件:开启 lazy、非树形(平铺 ul 列表)、有数据来源(url 取数或 data 传入)
155463
+ lazyEnabled: function lazyEnabled() {
155464
+ return this.lazy && !this.tree && (!!this.url || this.data.length > 0);
155465
+ },
155466
+
155467
+ // 本地懒加载:未配置 url、由外部 data 传入时的分页切片模式
155468
+ localLazyEnabled: function localLazyEnabled() {
155469
+ return this.lazyEnabled && !this.url;
155470
+ },
155471
+
155472
+ // 无限滚动回调:懒加载模式走内部分页续拉,否则透传外部 infiniteScroll
155473
+ innerInfiniteScroll: function innerInfiniteScroll() {
155474
+ return this.lazyEnabled ? this.loadMoreOptions : this.infiniteScroll;
155475
+ },
155476
+
155477
+ // 无限滚动禁用:外部禁用,或懒加载中/已加载完时避免重复触发
155478
+ innerInfiniteScrollDisabled: function innerInfiniteScrollDisabled() {
155479
+ return this.infiniteScrollDisabled || this.lazyEnabled && (this.isLoading || this.lazyFinished);
155480
+ },
155481
+
155285
155482
  model: {
155286
155483
  get: function get() {
155287
155484
  if (this.multiple) {
@@ -155409,7 +155606,14 @@ var selectvue_type_script_lang_js_this = undefined;
155409
155606
  watch: {
155410
155607
  data: {
155411
155608
  handler: function handler(val) {
155412
- this.results = val;
155609
+ if (this.localLazyEnabled) {
155610
+ // 本地懒加载:数据变化时重置回第一页重新切片
155611
+ this.lazyPageNum = 1;
155612
+ this.lazyFinished = false;
155613
+ this.applyLocalLazySlice();
155614
+ } else {
155615
+ this.results = val;
155616
+ }
155413
155617
  },
155414
155618
 
155415
155619
  deep: true
@@ -155592,7 +155796,12 @@ var selectvue_type_script_lang_js_this = undefined;
155592
155796
  isDestroy: false,
155593
155797
  innerStyle: {},
155594
155798
  results: this.data,
155595
- _propsCache: new Map()
155799
+ // 懒加载分页状态:已加载到的页码 / 是否已加载完
155800
+ lazyPageNum: 1,
155801
+ lazyFinished: false,
155802
+ _propsCache: new Map(),
155803
+ // 是否请求中(驱动 es-scrollbar 上的 v-loading)
155804
+ isLoading: false
155596
155805
  };
155597
155806
  },
155598
155807
  created: function created() {
@@ -155623,6 +155832,10 @@ var selectvue_type_script_lang_js_this = undefined;
155623
155832
 
155624
155833
  this.$on('handleOptionClick', this.handleOptionSelect);
155625
155834
  this.$on('setSelected', this.setSelected);
155835
+ // 本地懒加载:初始只渲染 data 的第一页切片
155836
+ if (this.localLazyEnabled) {
155837
+ this.applyLocalLazySlice();
155838
+ }
155626
155839
  this.debouncedGetData();
155627
155840
  },
155628
155841
  mounted: function mounted() {
@@ -155723,26 +155936,88 @@ var selectvue_type_script_lang_js_this = undefined;
155723
155936
  * @param {Object} options - 配置选项
155724
155937
  * @param {String} options.url - 接口地址
155725
155938
  * @param {Object} options.params - 接口参数
155939
+ * @param {Boolean} options.append - 懒加载续拉下一页并追加(仅 lazyEnabled 时生效)
155726
155940
  */
155727
- getData: function getData(_ref) {
155941
+ getData: function getData() {
155728
155942
  var _this10 = this;
155729
155943
 
155730
- var url = _ref.url,
155944
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
155945
+ url = _ref.url,
155731
155946
  _ref$params = _ref.params,
155732
- params = _ref$params === undefined ? {} : _ref$params;
155947
+ params = _ref$params === undefined ? {} : _ref$params,
155948
+ _ref$append = _ref.append,
155949
+ append = _ref$append === undefined ? false : _ref$append;
155733
155950
 
155734
155951
  url = url || this.url;
155735
155952
  params = selectvue_type_script_lang_js_extends({}, this.param, params);
155736
- url && Object(utils_ajax["a" /* ajax */])({
155953
+ if (!url) return;
155954
+ if (this.lazyEnabled) {
155955
+ if (append) {
155956
+ // 续拉下一页
155957
+ this.isLoading = true;
155958
+ params = selectvue_type_script_lang_js_extends({}, params, {
155959
+ pageNum: this.lazyPageNum + 1,
155960
+ pageSize: this.pageSize
155961
+ });
155962
+ } else {
155963
+ // 初始化/参数变化/远程搜索:重置分页请求第一页
155964
+ this.lazyPageNum = 1;
155965
+ this.lazyFinished = false;
155966
+ params = selectvue_type_script_lang_js_extends({}, params, { pageNum: 1, pageSize: this.pageSize });
155967
+ }
155968
+ }
155969
+ Object(utils_ajax["a" /* ajax */])({
155737
155970
  url: url,
155738
155971
  method: 'POST',
155739
155972
  data: params
155740
155973
  }).then(function (res) {
155741
155974
  if (res.rCode === 0) {
155742
- _this10.results = res.results || [];
155975
+ var rows = res.results || [];
155976
+ if (_this10.lazyEnabled && append) {
155977
+ _this10.results = _this10.results.concat(rows);
155978
+ _this10.lazyPageNum += 1;
155979
+ } else {
155980
+ _this10.results = rows;
155981
+ }
155982
+ // 续拉时返回条数不足一页视为已加载完,停止触发并提示没有更多
155983
+ // (首页不足一页属正常小数据量,不显示提示)
155984
+ if (_this10.lazyEnabled && append && rows.length < _this10.pageSize) {
155985
+ _this10.lazyFinished = true;
155986
+ }
155743
155987
  }
155988
+ _this10.isLoading = false;
155989
+ }).catch(function () {
155990
+ _this10.isLoading = false;
155744
155991
  });
155745
155992
  },
155993
+
155994
+ /**
155995
+ * 懒加载:滚动到底部时加载下一页(由内部无限滚动触发,带防重入守卫)
155996
+ * 本地懒加载为同步切片追加,url 懒加载为异步续拉请求
155997
+ */
155998
+ loadMoreOptions: function loadMoreOptions() {
155999
+ if (!this.lazyEnabled || this.isLoading || this.lazyFinished) return;
156000
+ if (this.localLazyEnabled) {
156001
+ this.lazyPageNum += 1;
156002
+ this.applyLocalLazySlice();
156003
+ } else {
156004
+ this.getData({ append: true });
156005
+ }
156006
+ },
156007
+
156008
+ /**
156009
+ * 本地懒加载:按当前 lazyPageNum 对 data 做切片渲染(0 ~ pageNum*pageSize),
156010
+ * 翻过页且切到末尾时置 lazyFinished 停止触发并显示没有更多提示
156011
+ * (首页即覆盖全量属正常小数据量,不置位不提示)
156012
+ */
156013
+ applyLocalLazySlice: function applyLocalLazySlice() {
156014
+ var list = this.data || [];
156015
+ var end = this.lazyPageNum * this.pageSize;
156016
+ this.results = list.slice(0, end);
156017
+ if (this.lazyPageNum > 1 && end >= list.length) {
156018
+ this.lazyFinished = true;
156019
+ }
156020
+ },
155746
156021
  handleComposition: function handleComposition(event) {
155747
156022
  var _this11 = this;
155748
156023
 
@@ -156273,8 +156548,8 @@ var selectvue_type_script_lang_js_this = undefined;
156273
156548
 
156274
156549
  var select_component = Object(componentNormalizer["a" /* default */])(
156275
156550
  src_selectvue_type_script_lang_js_,
156276
- selectvue_type_template_id_4baed3ce_render,
156277
- selectvue_type_template_id_4baed3ce_staticRenderFns,
156551
+ selectvue_type_template_id_f4dfce0a_render,
156552
+ selectvue_type_template_id_f4dfce0a_staticRenderFns,
156278
156553
  false,
156279
156554
  null,
156280
156555
  null,
@@ -161319,8 +161594,8 @@ submenu.install = function (Vue) {
161319
161594
  };
161320
161595
 
161321
161596
  /* harmony default export */ var packages_submenu = (submenu);
161322
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/switch/src/switch.vue?vue&type=template&id=9d50ec44&
161323
- var switchvue_type_template_id_9d50ec44_render = function () {
161597
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/switch/src/switch.vue?vue&type=template&id=dccc51b0&
161598
+ var switchvue_type_template_id_dccc51b0_render = function () {
161324
161599
  var _vm = this
161325
161600
  var _h = _vm.$createElement
161326
161601
  var _c = _vm._self._c || _h
@@ -161453,11 +161728,11 @@ var switchvue_type_template_id_9d50ec44_render = function () {
161453
161728
  ]
161454
161729
  )
161455
161730
  }
161456
- var switchvue_type_template_id_9d50ec44_staticRenderFns = []
161457
- switchvue_type_template_id_9d50ec44_render._withStripped = true
161731
+ var switchvue_type_template_id_dccc51b0_staticRenderFns = []
161732
+ switchvue_type_template_id_dccc51b0_render._withStripped = true
161458
161733
 
161459
161734
 
161460
- // CONCATENATED MODULE: ./packages/switch/src/switch.vue?vue&type=template&id=9d50ec44&
161735
+ // CONCATENATED MODULE: ./packages/switch/src/switch.vue?vue&type=template&id=dccc51b0&
161461
161736
 
161462
161737
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/switch/src/switch.vue?vue&type=script&lang=js&
161463
161738
  //
@@ -161835,7 +162110,10 @@ switchvue_type_template_id_9d50ec44_render._withStripped = true
161835
162110
  if (this.activeColor || this.inactiveColor) {
161836
162111
  this.setBackgroundColor();
161837
162112
  }
161838
- this.$refs.input.checked = this.checked;
162113
+ // 只读态下内部 input 被 v-if 移除,需防护
162114
+ if (this.$refs.input) {
162115
+ this.$refs.input.checked = this.checked;
162116
+ }
161839
162117
  }
161840
162118
  });
161841
162119
  // CONCATENATED MODULE: ./packages/switch/src/switch.vue?vue&type=script&lang=js&
@@ -161850,8 +162128,8 @@ switchvue_type_template_id_9d50ec44_render._withStripped = true
161850
162128
 
161851
162129
  var switch_component = Object(componentNormalizer["a" /* default */])(
161852
162130
  src_switchvue_type_script_lang_js_,
161853
- switchvue_type_template_id_9d50ec44_render,
161854
- switchvue_type_template_id_9d50ec44_staticRenderFns,
162131
+ switchvue_type_template_id_dccc51b0_render,
162132
+ switchvue_type_template_id_dccc51b0_staticRenderFns,
161855
162133
  false,
161856
162134
  null,
161857
162135
  null,
@@ -163702,11 +163980,13 @@ function renderDom(h, _ref5) {
163702
163980
  })
163703
163981
  });
163704
163982
  case 'handle':
163983
+ console.log('handle', data);
163705
163984
  // const contents = events.filter((item) => item.rules && typeof item.rules === 'function' ? item.rules(data.row) : true);
163706
163985
  return h('es-button-group', {
163707
163986
  class: className,
163708
163987
  props: util_extends({
163709
163988
  data: data.row,
163989
+ rowData: data,
163710
163990
  size: 'mini',
163711
163991
  type: 'text',
163712
163992
  stop: true
@@ -163719,6 +163999,7 @@ function renderDom(h, _ref5) {
163719
163999
  class: className,
163720
164000
  props: util_extends({
163721
164001
  param: data.row,
164002
+ rowData: data,
163722
164003
  size: 'mini',
163723
164004
  stop: true
163724
164005
  }, configs),
@@ -168989,40 +169270,79 @@ var convertToRows = function convertToRows(originColumns) {
168989
169270
  * @param {Function} h - Vue渲染函数
168990
169271
  * @param {Object} column - 列配置
168991
169272
  * @returns {VNode|null} 渲染结果
169273
+ * @description button 支持 String(文字按钮)/ Object(图标按钮)/
169274
+ * Array(多个按钮,每项结构同 String/Object,Object 项可配置各自的 event 回调)
168992
169275
  */
168993
169276
  _renderColumnButton: function _renderColumnButton(h, column) {
168994
169277
  var _this7 = this;
168995
169278
 
168996
169279
  if (!column.button) return null;
168997
169280
 
168998
- if (typeof column.button === 'string') {
169281
+ // 数组配置:渲染多个按钮
169282
+ if (Array.isArray(column.button)) {
169283
+ if (!column.button.length) return null;
169284
+ return h(
169285
+ 'span',
169286
+ { 'class': 'es-table__column-buttons' },
169287
+ [column.button.map(function (item, index) {
169288
+ return _this7._renderOneHeaderButton(h, column, item, index);
169289
+ })]
169290
+ );
169291
+ }
169292
+
169293
+ return this._renderOneHeaderButton(h, column, column.button, 0);
169294
+ },
169295
+
169296
+
169297
+ /**
169298
+ * 渲染单个表头按钮
169299
+ * @private
169300
+ * @param {Function} h - Vue渲染函数
169301
+ * @param {Object} column - 列配置
169302
+ * @param {String|Object} button - 按钮配置
169303
+ * @param {number} index - 数组配置时的序号(用作 key)
169304
+ * @returns {VNode|null} 渲染结果
169305
+ */
169306
+ _renderOneHeaderButton: function _renderOneHeaderButton(h, column, button, index) {
169307
+ var _this8 = this;
169308
+
169309
+ if (!button) return null;
169310
+
169311
+ // 数组配置的按钮优先执行各自的 event 回调,其余走原表头点击链路
169312
+ var onClick = function onClick($event) {
169313
+ if (Array.isArray(column.button) && (typeof button === 'undefined' ? 'undefined' : table_header_typeof(button)) === 'object' && typeof button.event === 'function') {
169314
+ $event.stopPropagation();
169315
+ button.event('', column, $event);
169316
+ return;
169317
+ }
169318
+ _this8.handleHeaderClick($event, column);
169319
+ };
169320
+
169321
+ if (typeof button === 'string') {
168999
169322
  return h(
169000
169323
  'es-button',
169001
169324
  {
169002
- attrs: {
169003
- size: 'mini',
169325
+ key: index,
169326
+ attrs: { size: 'mini',
169004
169327
  'native-type': 'button'
169005
169328
  },
169006
169329
  on: {
169007
- 'click': function click($event) {
169008
- return _this7.handleHeaderClick($event, column);
169009
- }
169330
+ 'click': onClick
169010
169331
  }
169011
169332
  },
169012
- [column.button]
169333
+ [button]
169013
169334
  );
169014
169335
  }
169015
169336
 
169016
169337
  return h('es-button', {
169017
- 'class': [column.button.icon || column.icon, column.button.class],
169018
- attrs: { type: column.button.type,
169019
- 'native-type': column.button.nativeType || 'button',
169338
+ key: index,
169339
+ 'class': [button.icon || column.icon, button.class],
169340
+ attrs: { type: button.type,
169341
+ 'native-type': button.nativeType || 'button',
169020
169342
  size: 'mini'
169021
169343
  },
169022
169344
  on: {
169023
- 'click': function click($event) {
169024
- return _this7.handleHeaderClick($event, column);
169025
- }
169345
+ 'click': onClick
169026
169346
  }
169027
169347
  });
169028
169348
  },
@@ -169146,23 +169466,23 @@ var convertToRows = function convertToRows(originColumns) {
169146
169466
  * @private
169147
169467
  */
169148
169468
  _bindResizeEvents: function _bindResizeEvents() {
169149
- var _this8 = this;
169469
+ var _this9 = this;
169150
169470
 
169151
169471
  var handleMouseMove = function handleMouseMove(event) {
169152
- if (!_this8.dragState) return;
169472
+ if (!_this9.dragState) return;
169153
169473
 
169154
- var deltaLeft = event.clientX - _this8.dragState.startMouseLeft;
169155
- var proxyLeft = _this8.dragState.startLeft + deltaLeft;
169156
- var minLeft = _this8.dragState.startColumnLeft + 30;
169474
+ var deltaLeft = event.clientX - _this9.dragState.startMouseLeft;
169475
+ var proxyLeft = _this9.dragState.startLeft + deltaLeft;
169476
+ var minLeft = _this9.dragState.startColumnLeft + 30;
169157
169477
 
169158
- var table = _this8.$parent;
169478
+ var table = _this9.$parent;
169159
169479
  if (table && table.$refs.resizeProxy) {
169160
169480
  table.$refs.resizeProxy.style.left = Math.max(minLeft, proxyLeft) + 'px';
169161
169481
  }
169162
169482
  };
169163
169483
 
169164
169484
  var handleMouseUp = function handleMouseUp(event) {
169165
- _this8._finishResizeColumn(event);
169485
+ _this9._finishResizeColumn(event);
169166
169486
  document.removeEventListener('mousemove', handleMouseMove);
169167
169487
  document.removeEventListener('mouseup', handleMouseUp);
169168
169488
  };
@@ -169214,7 +169534,7 @@ var convertToRows = function convertToRows(originColumns) {
169214
169534
  * @private
169215
169535
  */
169216
169536
  _resetResizeState: function _resetResizeState() {
169217
- var _this9 = this;
169537
+ var _this10 = this;
169218
169538
 
169219
169539
  document.body.style.cursor = '';
169220
169540
  this.dragging = false;
@@ -169223,7 +169543,7 @@ var convertToRows = function convertToRows(originColumns) {
169223
169543
  // 移除noclick类
169224
169544
  if (this.dragState && this.dragState.columnEl) {
169225
169545
  setTimeout(function () {
169226
- Object(utils_dom["i" /* removeClass */])(_this9.dragState.columnEl, 'noclick');
169546
+ Object(utils_dom["i" /* removeClass */])(_this10.dragState.columnEl, 'noclick');
169227
169547
  }, 0);
169228
169548
  }
169229
169549
 
@@ -171502,7 +171822,13 @@ var columnIdSeed = 1;
171502
171822
  labelKey: String,
171503
171823
  valueKey: String,
171504
171824
  icon: String,
171505
- button: [String, Object],
171825
+ /**
171826
+ * 表头按钮配置
171827
+ * @type {String|Object|Array}
171828
+ * @description String 渲染文字按钮;Object 渲染图标按钮(icon/type/class/nativeType/event);
171829
+ * Array 渲染多个按钮,每项结构同 String/Object,Object 项的 event 回调签名为 ('', column, $event)
171830
+ */
171831
+ button: [String, Object, Array],
171506
171832
  className: String,
171507
171833
  labelClassName: String,
171508
171834
  property: String,
@@ -173224,6 +173550,8 @@ tab_pane.install = function (Vue) {
173224
173550
  closable: Boolean,
173225
173551
  /**
173226
173552
  * 类型
173553
+ * @description 可选值:success / info / warning / danger / purple,
173554
+ * 不填为默认蓝色主题;配合 effect(light/dark/plain,默认 light)使用
173227
173555
  */
173228
173556
  type: String,
173229
173557
  /**
@@ -189336,7 +189664,7 @@ if (typeof window !== 'undefined' && window.Vue) {
189336
189664
  }
189337
189665
 
189338
189666
  /* harmony default export */ var src_0 = __webpack_exports__["default"] = ({
189339
- version: '0.1.0-alpha.44',
189667
+ version: '0.1.0-alpha.45',
189340
189668
  install: src_install,
189341
189669
  CollapseTransition: collapse_transition,
189342
189670
  Loading: packages_loading,