vxe-table 4.3.0-beta.6 → 4.3.0

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 (177) hide show
  1. package/README.en.md +3 -3
  2. package/README.md +3 -3
  3. package/README.zh-TW.md +3 -3
  4. package/es/checkbox/src/checkbox.js +20 -7
  5. package/es/checkbox/src/group.js +14 -2
  6. package/es/checkbox/style.css +1 -1
  7. package/es/export/style.css +1 -13
  8. package/es/filter/style.css +1 -13
  9. package/es/form/src/form.js +1 -1
  10. package/es/grid/style.css +1 -1
  11. package/es/icon/index.js +8 -4
  12. package/es/icon/src/icon.js +23 -0
  13. package/es/icon/style.css +98 -525
  14. package/es/input/style.css +1 -1
  15. package/es/list/src/list.js +1 -1
  16. package/es/loading/src/loading.js +33 -23
  17. package/es/locale/lang/en-US.js +1 -1
  18. package/es/locale/lang/ja-JP.js +1 -1
  19. package/es/locale/lang/zh-CN.js +1 -1
  20. package/es/locale/lang/zh-TC.js +1 -1
  21. package/es/modal/src/modal.js +17 -7
  22. package/es/modal/style.css +14 -13
  23. package/es/pager/style.css +1 -1
  24. package/es/radio/style.css +1 -1
  25. package/es/select/src/select.js +25 -3
  26. package/es/style.css +1 -1
  27. package/es/style.min.css +1 -1
  28. package/es/table/src/body.js +17 -10
  29. package/es/table/src/props.js +2 -0
  30. package/es/table/src/table.js +8 -1
  31. package/es/table/style.css +4 -2
  32. package/es/toolbar/style.css +2 -10
  33. package/es/tools/log.js +1 -1
  34. package/es/v-x-e-table/index.js +1 -1
  35. package/es/v-x-e-table/style.css +99 -526
  36. package/es/vxe-checkbox/style.css +1 -1
  37. package/es/vxe-grid/style.css +1 -1
  38. package/es/vxe-icon/style.css +98 -525
  39. package/es/vxe-input/style.css +1 -1
  40. package/es/vxe-modal/style.css +14 -13
  41. package/es/vxe-module-export/style.css +1 -13
  42. package/es/vxe-module-filter/style.css +1 -13
  43. package/es/vxe-pager/style.css +1 -1
  44. package/es/vxe-radio/style.css +1 -1
  45. package/es/vxe-table/style.css +4 -2
  46. package/es/vxe-toolbar/style.css +2 -10
  47. package/helper/vetur/attributes.json +17 -5
  48. package/helper/vetur/tags.json +10 -2
  49. package/lib/checkbox/src/checkbox.js +23 -7
  50. package/lib/checkbox/src/checkbox.min.js +1 -1
  51. package/lib/checkbox/src/group.js +21 -1
  52. package/lib/checkbox/src/group.min.js +1 -1
  53. package/lib/checkbox/style/style.css +1 -1
  54. package/lib/checkbox/style/style.min.css +1 -1
  55. package/lib/export/style/style.css +1 -13
  56. package/lib/export/style/style.min.css +1 -1
  57. package/lib/filter/style/style.css +1 -13
  58. package/lib/filter/style/style.min.css +1 -1
  59. package/lib/form/src/form.js +1 -1
  60. package/lib/form/src/form.min.js +1 -1
  61. package/lib/grid/style/style.css +1 -1
  62. package/lib/grid/style/style.min.css +1 -1
  63. package/lib/icon/index.js +15 -4
  64. package/lib/icon/index.min.js +1 -1
  65. package/lib/icon/src/icon.js +35 -0
  66. package/lib/icon/src/icon.min.js +1 -0
  67. package/lib/icon/style/style.css +98 -525
  68. package/lib/icon/style/style.min.css +1 -1
  69. package/lib/index.umd.js +201 -53
  70. package/lib/index.umd.min.js +1 -1
  71. package/lib/input/style/style.css +1 -1
  72. package/lib/input/style/style.min.css +1 -1
  73. package/lib/list/src/list.js +1 -1
  74. package/lib/list/src/list.min.js +1 -1
  75. package/lib/loading/src/loading.js +28 -18
  76. package/lib/loading/src/loading.min.js +1 -1
  77. package/lib/locale/lang/en-US.js +1 -1
  78. package/lib/locale/lang/en-US.min.js +1 -1
  79. package/lib/locale/lang/en-US.umd.js +1 -1
  80. package/lib/locale/lang/ja-JP.js +1 -1
  81. package/lib/locale/lang/ja-JP.min.js +1 -1
  82. package/lib/locale/lang/ja-JP.umd.js +1 -1
  83. package/lib/locale/lang/zh-CN.js +1 -1
  84. package/lib/locale/lang/zh-CN.min.js +1 -1
  85. package/lib/locale/lang/zh-CN.umd.js +1 -1
  86. package/lib/locale/lang/zh-HK.min.js +1 -1
  87. package/lib/locale/lang/zh-HK.umd.js +1 -1
  88. package/lib/locale/lang/zh-MO.min.js +1 -1
  89. package/lib/locale/lang/zh-MO.umd.js +1 -1
  90. package/lib/locale/lang/zh-TC.js +1 -1
  91. package/lib/locale/lang/zh-TC.min.js +1 -1
  92. package/lib/locale/lang/zh-TC.umd.js +1 -1
  93. package/lib/locale/lang/zh-TW.min.js +1 -1
  94. package/lib/locale/lang/zh-TW.umd.js +1 -1
  95. package/lib/modal/src/modal.js +20 -7
  96. package/lib/modal/src/modal.min.js +1 -1
  97. package/lib/modal/style/style.css +14 -13
  98. package/lib/modal/style/style.min.css +1 -1
  99. package/lib/pager/style/style.css +1 -1
  100. package/lib/pager/style/style.min.css +1 -1
  101. package/lib/radio/style/style.css +1 -1
  102. package/lib/radio/style/style.min.css +1 -1
  103. package/lib/select/src/select.js +37 -3
  104. package/lib/select/src/select.min.js +1 -1
  105. package/lib/style.css +1 -1
  106. package/lib/style.min.css +1 -1
  107. package/lib/table/src/body.js +16 -7
  108. package/lib/table/src/body.min.js +1 -1
  109. package/lib/table/src/props.js +2 -0
  110. package/lib/table/src/props.min.js +1 -1
  111. package/lib/table/src/table.js +8 -1
  112. package/lib/table/src/table.min.js +1 -1
  113. package/lib/table/style/style.css +4 -2
  114. package/lib/table/style/style.min.css +1 -1
  115. package/lib/toolbar/style/style.css +2 -10
  116. package/lib/toolbar/style/style.min.css +1 -1
  117. package/lib/tools/log.js +1 -1
  118. package/lib/tools/log.min.js +1 -1
  119. package/lib/v-x-e-table/index.js +1 -1
  120. package/lib/v-x-e-table/index.min.js +1 -1
  121. package/lib/v-x-e-table/style/style.css +99 -526
  122. package/lib/v-x-e-table/style/style.min.css +1 -1
  123. package/lib/vxe-checkbox/style/style.css +1 -1
  124. package/lib/vxe-checkbox/style/style.min.css +1 -1
  125. package/lib/vxe-grid/style/style.css +1 -1
  126. package/lib/vxe-grid/style/style.min.css +1 -1
  127. package/lib/vxe-icon/style/style.css +98 -525
  128. package/lib/vxe-icon/style/style.min.css +1 -1
  129. package/lib/vxe-input/style/style.css +1 -1
  130. package/lib/vxe-input/style/style.min.css +1 -1
  131. package/lib/vxe-modal/style/style.css +14 -13
  132. package/lib/vxe-modal/style/style.min.css +1 -1
  133. package/lib/vxe-module-export/style/style.css +1 -13
  134. package/lib/vxe-module-export/style/style.min.css +1 -1
  135. package/lib/vxe-module-filter/style/style.css +1 -13
  136. package/lib/vxe-module-filter/style/style.min.css +1 -1
  137. package/lib/vxe-pager/style/style.css +1 -1
  138. package/lib/vxe-pager/style/style.min.css +1 -1
  139. package/lib/vxe-radio/style/style.css +1 -1
  140. package/lib/vxe-radio/style/style.min.css +1 -1
  141. package/lib/vxe-table/style/style.css +4 -2
  142. package/lib/vxe-table/style/style.min.css +1 -1
  143. package/lib/vxe-toolbar/style/style.css +2 -10
  144. package/lib/vxe-toolbar/style/style.min.css +1 -1
  145. package/package.json +2 -2
  146. package/packages/checkbox/src/checkbox.ts +20 -7
  147. package/packages/checkbox/src/group.ts +18 -3
  148. package/packages/form/src/form.ts +1 -1
  149. package/packages/icon/index.ts +11 -4
  150. package/packages/icon/src/icon.ts +25 -0
  151. package/packages/list/src/list.ts +1 -1
  152. package/packages/loading/src/loading.ts +34 -22
  153. package/packages/locale/lang/en-US.ts +1 -1
  154. package/packages/locale/lang/ja-JP.ts +1 -1
  155. package/packages/locale/lang/zh-CN.ts +1 -1
  156. package/packages/locale/lang/zh-TC.ts +1 -1
  157. package/packages/modal/src/modal.ts +21 -7
  158. package/packages/select/src/select.ts +27 -3
  159. package/packages/table/src/body.ts +15 -8
  160. package/packages/table/src/props.ts +2 -0
  161. package/packages/table/src/table.ts +9 -1
  162. package/styles/base/checked.scss +2 -2
  163. package/styles/export.scss +0 -29
  164. package/styles/filter.scss +0 -29
  165. package/styles/icon.scss +126 -29
  166. package/styles/input.scss +1 -1
  167. package/styles/loading.scss +1 -1
  168. package/styles/modal.scss +19 -16
  169. package/styles/table.scss +3 -0
  170. package/styles/toolbar.scss +0 -20
  171. package/styles/variable.scss +2 -1
  172. package/types/checkbox-group.d.ts +8 -1
  173. package/types/icon.d.ts +46 -1
  174. package/types/modal.d.ts +1 -0
  175. package/types/select.d.ts +2 -0
  176. package/types/table.d.ts +9 -0
  177. package/types/v-x-e-table/index.d.ts +1 -1
@@ -175,7 +175,7 @@
175
175
  .vxe-input .vxe-input--date-picker-icon[class*="vxe-icon-"],
176
176
  .vxe-input .vxe-input--search-icon[class*="vxe-icon-"],
177
177
  .vxe-input .vxe-input--password-icon[class*="vxe-icon-"] {
178
- font-size: 1.5em; }
178
+ font-size: 1.2em; }
179
179
 
180
180
  .vxe-input .vxe-input--date-picker-suffix {
181
181
  display: flex;
@@ -311,7 +311,7 @@ export default defineComponent({
311
311
  */
312
312
  h(VxeLoading, {
313
313
  class: 'vxe-list--loading',
314
- loading: loading
314
+ modelValue: loading
315
315
  })
316
316
  ]);
317
317
  };
@@ -1,31 +1,41 @@
1
- import { defineComponent, h } from 'vue';
1
+ import { defineComponent, h, computed } from 'vue';
2
2
  import GlobalConfig from '../../v-x-e-table/src/conf';
3
3
  export default defineComponent({
4
4
  name: 'VxeLoading',
5
5
  props: {
6
- loading: Boolean
6
+ modelValue: Boolean,
7
+ icon: String,
8
+ text: String
7
9
  },
8
- render: function () {
9
- var icon = GlobalConfig.icon.LOADING;
10
- var loadingText = GlobalConfig.loadingText;
11
- var text = loadingText === null ? loadingText : GlobalConfig.i18n('vxe.loading.text');
12
- return h('div', {
13
- class: ['vxe-loading', {
14
- 'is--visible': this.loading
15
- }]
16
- }, [
17
- h('div', {
18
- class: 'vxe-loading--chunk'
10
+ setup: function (props) {
11
+ var computeLoadingIcon = computed(function () {
12
+ return props.icon || GlobalConfig.icon.LOADING;
13
+ });
14
+ var computeLoadingText = computed(function () {
15
+ var loadingText = GlobalConfig.loadingText;
16
+ return props.text || (loadingText === null ? loadingText : GlobalConfig.i18n('vxe.loading.text'));
17
+ });
18
+ return function () {
19
+ var loadingIcon = computeLoadingIcon.value;
20
+ var loadingText = computeLoadingText.value;
21
+ return h('div', {
22
+ class: ['vxe-loading', {
23
+ 'is--visible': props.modelValue
24
+ }]
19
25
  }, [
20
- icon ? h('i', {
21
- class: icon
22
- }) : h('div', {
23
- class: 'vxe-loading--spinner'
24
- }),
25
- text ? h('div', {
26
- class: 'vxe-loading--text'
27
- }, "".concat(text)) : null
28
- ])
29
- ]);
26
+ h('div', {
27
+ class: 'vxe-loading--chunk'
28
+ }, [
29
+ loadingIcon ? h('i', {
30
+ class: loadingIcon
31
+ }) : h('div', {
32
+ class: 'vxe-loading--spinner'
33
+ }),
34
+ loadingText ? h('div', {
35
+ class: 'vxe-loading--text'
36
+ }, "".concat(loadingText)) : null
37
+ ])
38
+ ]);
39
+ };
30
40
  }
31
41
  });
@@ -1,7 +1,7 @@
1
1
  export default {
2
2
  vxe: {
3
3
  loading: {
4
- text: 'Loading'
4
+ text: 'Loading...'
5
5
  },
6
6
  error: {
7
7
  groupFixed: 'If you use group headers, the fixed columns must be set by group.',
@@ -1,7 +1,7 @@
1
1
  export default {
2
2
  vxe: {
3
3
  loading: {
4
- text: 'Loading'
4
+ text: 'Loading...'
5
5
  },
6
6
  error: {
7
7
  groupFixed: 'グループのヘッダを使用すると、固定列はグループで設定しなければなりません',
@@ -1,7 +1,7 @@
1
1
  export default {
2
2
  vxe: {
3
3
  loading: {
4
- text: '加载中'
4
+ text: '加载中...'
5
5
  },
6
6
  error: {
7
7
  groupFixed: '如果使用分组表头,固定列必须按组设置',
@@ -1,7 +1,7 @@
1
1
  export default {
2
2
  vxe: {
3
3
  loading: {
4
- text: '加載中'
4
+ text: '加載中...'
5
5
  },
6
6
  error: {
7
7
  groupFixed: '如果使用分組表頭,固定列必須按組設定',
@@ -664,25 +664,35 @@ export default defineComponent({
664
664
  var _a = props.slots, propSlots = _a === void 0 ? {} : _a, showClose = props.showClose, showZoom = props.showZoom, title = props.title;
665
665
  var zoomLocat = reactData.zoomLocat;
666
666
  var titleSlot = slots.title || propSlots.title;
667
- var titVNs = titleSlot ? getSlotVNs(titleSlot({ $modal: $xemodal })) : [
668
- h('span', {
669
- class: 'vxe-modal--title'
670
- }, title ? getFuncText(title) : GlobalConfig.i18n('vxe.alert.title'))
667
+ var cornerSlot = slots.corner || propSlots.corner;
668
+ var titVNs = [
669
+ h('div', {
670
+ class: 'vxe-modal--header-title'
671
+ }, titleSlot ? getSlotVNs(titleSlot({ $modal: $xemodal })) : (title ? getFuncText(title) : GlobalConfig.i18n('vxe.alert.title')))
671
672
  ];
673
+ var rightVNs = [];
674
+ if (cornerSlot) {
675
+ rightVNs.push(h('span', {
676
+ class: 'vxe-modal--corner-warpper'
677
+ }, getSlotVNs(cornerSlot({ $modal: $xemodal }))));
678
+ }
672
679
  if (showZoom) {
673
- titVNs.push(h('i', {
680
+ rightVNs.push(h('i', {
674
681
  class: ['vxe-modal--zoom-btn', 'trigger--btn', zoomLocat ? GlobalConfig.icon.MODAL_ZOOM_OUT : GlobalConfig.icon.MODAL_ZOOM_IN],
675
682
  title: GlobalConfig.i18n("vxe.modal.zoom".concat(zoomLocat ? 'Out' : 'In')),
676
683
  onClick: toggleZoomEvent
677
684
  }));
678
685
  }
679
686
  if (showClose) {
680
- titVNs.push(h('i', {
687
+ rightVNs.push(h('i', {
681
688
  class: ['vxe-modal--close-btn', 'trigger--btn', GlobalConfig.icon.MODAL_CLOSE],
682
689
  title: GlobalConfig.i18n('vxe.modal.close'),
683
690
  onClick: closeEvent
684
691
  }));
685
692
  }
693
+ titVNs.push(h('div', {
694
+ class: 'vxe-modal--header-right'
695
+ }, rightVNs));
686
696
  return titVNs;
687
697
  };
688
698
  var renderHeaders = function () {
@@ -729,7 +739,7 @@ export default defineComponent({
729
739
  */
730
740
  contVNs.push(h(VxeLoading, {
731
741
  class: 'vxe-modal--loading',
732
- loading: props.loading
742
+ modelValue: props.loading
733
743
  }));
734
744
  }
735
745
  return [
@@ -47,7 +47,7 @@
47
47
  .vxe-modal--wrapper.is--loading .vxe-modal--header,
48
48
  .vxe-modal--wrapper.is--loading .vxe-modal--footer {
49
49
  position: relative;
50
- border-bottom-color: rgba(0, 0, 0, 0.2); }
50
+ border-bottom-color: rgba(255, 255, 255, 0.5); }
51
51
  .vxe-modal--wrapper.is--loading .vxe-modal--header:before,
52
52
  .vxe-modal--wrapper.is--loading .vxe-modal--footer:before {
53
53
  content: "";
@@ -61,7 +61,7 @@
61
61
  -moz-user-select: none;
62
62
  -ms-user-select: none;
63
63
  user-select: none;
64
- background-color: rgba(0, 0, 0, 0.2); }
64
+ background-color: rgba(255, 255, 255, 0.5); }
65
65
  .vxe-modal--wrapper:not(.lock--view) {
66
66
  pointer-events: none; }
67
67
  .vxe-modal--wrapper:not(.type--message).lock--scroll {
@@ -120,8 +120,6 @@
120
120
  overflow: auto; }
121
121
  .vxe-modal--wrapper.type--modal .vxe-modal--body .vxe-modal--content, .vxe-modal--wrapper.type--alert .vxe-modal--body .vxe-modal--content, .vxe-modal--wrapper.type--confirm .vxe-modal--body .vxe-modal--content {
122
122
  overflow: auto; }
123
- .vxe-modal--wrapper.type--modal .vxe-modal--header {
124
- padding: 0.6em 4.6em 0.6em 1em; }
125
123
  .vxe-modal--wrapper.type--alert .vxe-modal--status-wrapper, .vxe-modal--wrapper.type--confirm .vxe-modal--status-wrapper {
126
124
  font-size: 1.6em;
127
125
  padding-left: 10px; }
@@ -174,10 +172,11 @@
174
172
  display: flex;
175
173
  flex-grow: 1; }
176
174
  .vxe-modal--wrapper .vxe-modal--header {
175
+ display: flex;
176
+ flex-direction: row;
177
177
  flex-shrink: 0;
178
178
  font-size: 1.1em;
179
179
  font-weight: 700;
180
- padding: 0.6em 2.8em 0.6em 1em;
181
180
  border-bottom: 1px solid #ebeef5;
182
181
  background-color: #F8F8F8;
183
182
  border-radius: 4px 4px 0 0;
@@ -185,23 +184,25 @@
185
184
  -moz-user-select: none;
186
185
  -ms-user-select: none;
187
186
  user-select: none; }
188
- .vxe-modal--wrapper .vxe-modal--header.is--draggable {
187
+ .vxe-modal--wrapper .vxe-modal--header.is--draggable .vxe-modal--header-title {
189
188
  cursor: move; }
190
- .vxe-modal--wrapper .vxe-modal--header.is--ellipsis {
189
+ .vxe-modal--wrapper .vxe-modal--header.is--ellipsis .vxe-modal--header-title {
191
190
  overflow: hidden;
192
191
  text-overflow: ellipsis;
193
192
  white-space: nowrap; }
193
+ .vxe-modal--wrapper .vxe-modal--header-title {
194
+ flex-grow: 1;
195
+ padding: 0.6em 0 0.6em 1em; }
196
+ .vxe-modal--wrapper .vxe-modal--header-right {
197
+ flex-shrink: 0;
198
+ padding: 0.6em 1em 0.6em 0; }
194
199
  .vxe-modal--wrapper .vxe-modal--zoom-btn,
195
200
  .vxe-modal--wrapper .vxe-modal--close-btn {
196
- position: absolute;
197
- right: 14px;
198
- z-index: 1;
199
- cursor: pointer; }
201
+ cursor: pointer;
202
+ margin-left: 0.6em; }
200
203
  .vxe-modal--wrapper .vxe-modal--zoom-btn:hover,
201
204
  .vxe-modal--wrapper .vxe-modal--close-btn:hover {
202
205
  color: #409eff; }
203
- .vxe-modal--wrapper .vxe-modal--zoom-btn {
204
- right: 44px; }
205
206
  .vxe-modal--wrapper .vxe-modal--footer {
206
207
  flex-shrink: 0;
207
208
  text-align: right;
@@ -50,7 +50,7 @@
50
50
  -moz-user-select: none;
51
51
  -ms-user-select: none;
52
52
  user-select: none;
53
- background-color: rgba(0, 0, 0, 0.2); }
53
+ background-color: rgba(255, 255, 255, 0.5); }
54
54
  .vxe-pager .vxe-pager--prev-btn,
55
55
  .vxe-pager .vxe-pager--next-btn,
56
56
  .vxe-pager .vxe-pager--num-btn,
@@ -180,7 +180,7 @@
180
180
  .vxe-radio {
181
181
  cursor: pointer; }
182
182
  .vxe-radio .vxe-radio--icon {
183
- font-size: 1.34em; }
183
+ font-size: 1.4em; }
184
184
  .vxe-radio .vxe-radio--icon {
185
185
  color: #dcdfe6;
186
186
  vertical-align: middle;
@@ -31,6 +31,7 @@ export default defineComponent({
31
31
  optionGroupProps: Object,
32
32
  optionConfig: Object,
33
33
  className: [String, Function],
34
+ max: { type: [String, Number], default: null },
34
35
  size: { type: String, default: function () { return GlobalConfig.select.size || GlobalConfig.size; } },
35
36
  filterable: Boolean,
36
37
  filterMethod: Function,
@@ -111,6 +112,13 @@ export default defineComponent({
111
112
  var groupPropsOpts = computeGroupPropsOpts.value;
112
113
  return groupPropsOpts.options || 'options';
113
114
  });
115
+ var computeIsMaximize = computed(function () {
116
+ var modelValue = props.modelValue, multiple = props.multiple, max = props.max;
117
+ if (multiple && max) {
118
+ return (modelValue ? modelValue.length : 0) >= XEUtils.toNumber(max);
119
+ }
120
+ return false;
121
+ });
114
122
  var computeOptionOpts = computed(function () {
115
123
  return Object.assign({}, GlobalConfig.select.optionConfig, props.optionConfig);
116
124
  });
@@ -646,6 +654,19 @@ export default defineComponent({
646
654
  showOptionPanel();
647
655
  }
648
656
  };
657
+ var checkOptionDisabled = function (isSelected, option, group) {
658
+ if (option.disabled) {
659
+ return true;
660
+ }
661
+ if (group && group.disabled) {
662
+ return true;
663
+ }
664
+ var isMaximize = computeIsMaximize.value;
665
+ if (isMaximize && !isSelected) {
666
+ return true;
667
+ }
668
+ return false;
669
+ };
649
670
  var renderOption = function (list, group) {
650
671
  var optionKey = props.optionKey, modelValue = props.modelValue, multiple = props.multiple;
651
672
  var currentValue = reactData.currentValue;
@@ -656,16 +677,17 @@ export default defineComponent({
656
677
  var useKey = optionOpts.useKey;
657
678
  return list.map(function (option, cIndex) {
658
679
  var slots = option.slots, className = option.className;
659
- var isVisible = !isGroup || isOptionVisible(option);
660
- var isDisabled = (group && group.disabled) || option.disabled;
661
680
  var optionValue = option[valueField];
681
+ var isSelected = multiple ? (modelValue && modelValue.indexOf(optionValue) > -1) : modelValue === optionValue;
682
+ var isVisible = !isGroup || isOptionVisible(option);
683
+ var isDisabled = checkOptionDisabled(isSelected, option, group);
662
684
  var optid = getOptid(option);
663
685
  var defaultSlot = slots ? slots.default : null;
664
686
  return isVisible ? h('div', {
665
687
  key: useKey || optionKey ? optid : cIndex,
666
688
  class: ['vxe-select-option', className ? (XEUtils.isFunction(className) ? className({ option: option, $select: $xeselect }) : className) : '', {
667
689
  'is--disabled': isDisabled,
668
- 'is--selected': multiple ? (modelValue && modelValue.indexOf(optionValue) > -1) : modelValue === optionValue,
690
+ 'is--selected': isSelected,
669
691
  'is--hover': currentValue === optionValue
670
692
  }],
671
693
  // attrs