vxe-table 3.8.22 → 3.8.24

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 (131) hide show
  1. package/helper/vetur/attributes.json +1 -1966
  2. package/helper/vetur/tags.json +1 -648
  3. package/lib/button/src/button.js +4 -2
  4. package/lib/button/src/button.min.js +1 -1
  5. package/lib/button/style/style.css +9 -0
  6. package/lib/button/style/style.min.css +1 -1
  7. package/lib/custom/src/mixin.js +1 -1
  8. package/lib/custom/src/mixin.min.js +1 -1
  9. package/lib/custom/src/panel.js +169 -72
  10. package/lib/custom/src/panel.min.js +1 -1
  11. package/lib/custom/style/style.css +16 -34
  12. package/lib/custom/style/style.min.css +1 -1
  13. package/lib/edit/src/mixin.js +8 -2
  14. package/lib/edit/src/mixin.min.js +1 -1
  15. package/lib/export/src/export-panel.js +7 -1
  16. package/lib/export/src/export-panel.min.js +1 -1
  17. package/lib/form/src/form.js +0 -3
  18. package/lib/form/src/form.min.js +1 -1
  19. package/lib/icon/style/style.css +1 -1
  20. package/lib/icon/style/style.min.css +1 -1
  21. package/lib/index.css +1 -1
  22. package/lib/index.umd.js +4638 -4302
  23. package/lib/index.umd.min.js +1 -1
  24. package/lib/input/src/input.js +9 -2
  25. package/lib/input/src/input.min.js +1 -1
  26. package/lib/keyboard/src/mixin.js +1 -1
  27. package/lib/keyboard/src/mixin.min.js +1 -1
  28. package/lib/locale/lang/en-US.js +200 -9
  29. package/lib/locale/lang/en-US.min.js +1 -1
  30. package/lib/locale/lang/en-US.umd.js +200 -9
  31. package/lib/locale/lang/es-ES.js +201 -10
  32. package/lib/locale/lang/es-ES.min.js +1 -1
  33. package/lib/locale/lang/es-ES.umd.js +201 -10
  34. package/lib/locale/lang/ja-JP.js +213 -22
  35. package/lib/locale/lang/ja-JP.min.js +1 -1
  36. package/lib/locale/lang/ja-JP.umd.js +213 -22
  37. package/lib/locale/lang/pt-BR.js +200 -9
  38. package/lib/locale/lang/pt-BR.min.js +1 -1
  39. package/lib/locale/lang/pt-BR.umd.js +200 -9
  40. package/lib/locale/lang/zh-CN.js +195 -4
  41. package/lib/locale/lang/zh-CN.min.js +1 -1
  42. package/lib/locale/lang/zh-CN.umd.js +195 -4
  43. package/lib/locale/lang/zh-HK.min.js +1 -1
  44. package/lib/locale/lang/zh-HK.umd.js +199 -8
  45. package/lib/locale/lang/zh-MO.min.js +1 -1
  46. package/lib/locale/lang/zh-MO.umd.js +199 -8
  47. package/lib/locale/lang/zh-TC.js +199 -8
  48. package/lib/locale/lang/zh-TC.min.js +1 -1
  49. package/lib/locale/lang/zh-TC.umd.js +199 -8
  50. package/lib/locale/lang/zh-TW.min.js +1 -1
  51. package/lib/locale/lang/zh-TW.umd.js +199 -8
  52. package/lib/menu/src/panel.js +24 -8
  53. package/lib/menu/src/panel.min.js +1 -1
  54. package/lib/menu/style/style.css +10 -27
  55. package/lib/menu/style/style.min.css +1 -1
  56. package/lib/select/src/select.js +5 -4
  57. package/lib/select/src/select.min.js +1 -1
  58. package/lib/style.css +1 -1
  59. package/lib/style.min.css +1 -1
  60. package/lib/table/src/body.js +1 -0
  61. package/lib/table/src/body.min.js +1 -1
  62. package/lib/table/src/cell.js +9 -7
  63. package/lib/table/src/cell.min.js +1 -1
  64. package/lib/table/src/methods.js +41 -54
  65. package/lib/table/src/methods.min.js +1 -1
  66. package/lib/table/style/style.css +1 -0
  67. package/lib/table/style/style.min.css +1 -1
  68. package/lib/textarea/src/textarea.js +2 -2
  69. package/lib/textarea/src/textarea.min.js +1 -1
  70. package/lib/textarea/style/style.css +4 -3
  71. package/lib/textarea/style/style.min.css +1 -1
  72. package/lib/tools/log.js +1 -1
  73. package/lib/tools/log.min.js +1 -1
  74. package/lib/tooltip/src/tooltip.js +23 -7
  75. package/lib/tooltip/src/tooltip.min.js +1 -1
  76. package/lib/v-x-e-table/index.js +7 -1
  77. package/lib/v-x-e-table/index.min.js +1 -1
  78. package/lib/v-x-e-table/src/conf.js +1 -0
  79. package/lib/v-x-e-table/src/conf.min.js +1 -1
  80. package/lib/validator/src/mixin.js +1 -1
  81. package/lib/validator/src/mixin.min.js +1 -1
  82. package/lib/vxe-button/style/style.css +9 -0
  83. package/lib/vxe-button/style/style.min.css +1 -1
  84. package/lib/vxe-table/style/style.css +1 -0
  85. package/lib/vxe-table/style/style.min.css +1 -1
  86. package/lib/vxe-table-custom-module/style/style.css +16 -34
  87. package/lib/vxe-table-custom-module/style/style.min.css +1 -1
  88. package/lib/vxe-table-menu-module/style/style.css +10 -27
  89. package/lib/vxe-table-menu-module/style/style.min.css +1 -1
  90. package/lib/vxe-textarea/style/style.css +4 -3
  91. package/lib/vxe-textarea/style/style.min.css +1 -1
  92. package/package.json +1 -1
  93. package/packages/button/src/button.js +4 -3
  94. package/packages/custom/src/mixin.js +1 -1
  95. package/packages/custom/src/panel.js +179 -86
  96. package/packages/edit/src/mixin.js +8 -2
  97. package/packages/export/src/export-panel.js +11 -3
  98. package/packages/form/src/form.js +0 -3
  99. package/packages/input/src/input.js +9 -2
  100. package/packages/keyboard/src/mixin.js +1 -1
  101. package/packages/locale/lang/en-US.js +200 -9
  102. package/packages/locale/lang/es-ES.js +201 -10
  103. package/packages/locale/lang/ja-JP.js +213 -22
  104. package/packages/locale/lang/pt-BR.js +200 -9
  105. package/packages/locale/lang/zh-CN.js +195 -4
  106. package/packages/locale/lang/zh-TC.js +199 -8
  107. package/packages/menu/src/panel.js +38 -10
  108. package/packages/select/src/select.js +5 -4
  109. package/packages/table/src/body.js +1 -1
  110. package/packages/table/src/cell.js +6 -5
  111. package/packages/table/src/methods.js +36 -46
  112. package/packages/textarea/src/textarea.js +3 -3
  113. package/packages/tooltip/src/tooltip.js +23 -7
  114. package/packages/v-x-e-table/index.js +5 -0
  115. package/packages/v-x-e-table/src/conf.js +1 -0
  116. package/packages/validator/src/mixin.js +1 -1
  117. package/styles/button.scss +9 -0
  118. package/styles/custom.scss +21 -37
  119. package/styles/menu.scss +21 -39
  120. package/styles/table.scss +1 -0
  121. package/styles/textarea.scss +3 -2
  122. package/styles/variable.scss +1 -1
  123. package/types/column.d.ts +57 -1
  124. package/types/module/menu.d.ts +40 -3
  125. package/types/v-x-e-table/renderer.d.ts +6 -1
  126. /package/lib/icon/style/{iconfont.1724292682903.ttf → iconfont.1725243866550.ttf} +0 -0
  127. /package/lib/icon/style/{iconfont.1724292682903.woff → iconfont.1725243866550.woff} +0 -0
  128. /package/lib/icon/style/{iconfont.1724292682903.woff2 → iconfont.1725243866550.woff2} +0 -0
  129. /package/lib/{iconfont.1724292682903.ttf → iconfont.1725243866550.ttf} +0 -0
  130. /package/lib/{iconfont.1724292682903.woff → iconfont.1725243866550.woff} +0 -0
  131. /package/lib/{iconfont.1724292682903.woff2 → iconfont.1725243866550.woff2} +0 -0
@@ -3,6 +3,7 @@ import UtilTools from '../../tools/utils'
3
3
  import DomTools from '../../tools/dom'
4
4
  import GlobalConfig from '../../v-x-e-table/src/conf'
5
5
  import XEUtils from 'xe-utils'
6
+ import VxeButtonComponent from '../../button/src/button'
6
7
 
7
8
  const { formatText } = UtilTools
8
9
  const { addClass, removeClass } = DomTools
@@ -24,7 +25,7 @@ function updateDropHint (_vm, evnt) {
24
25
  }
25
26
 
26
27
  const renderSimplePanel = (h, _vm) => {
27
- const { _e, $xetable, customStore } = _vm
28
+ const { _e, $xetable, customStore, dragColumn } = _vm
28
29
  const { customColumnList, customOpts, isMaxFixedColumn } = $xetable
29
30
  const { maxHeight } = customStore
30
31
  const { checkMethod, visibleMethod, allowVisible, allowSort, allowFixed, trigger, placement } = customOpts
@@ -43,6 +44,7 @@ const renderSimplePanel = (h, _vm) => {
43
44
  const isColGroup = column.children && column.children.length
44
45
  const colTitle = formatText(column.getTitle(), 1)
45
46
  const isDisabled = checkMethod ? !checkMethod({ column }) : false
47
+ const isHidden = !isChecked
46
48
  colVNs.push(
47
49
  h('li', {
48
50
  key: column.id,
@@ -50,6 +52,7 @@ const renderSimplePanel = (h, _vm) => {
50
52
  colid: column.id
51
53
  },
52
54
  class: ['vxe-table-custom--option', `level--${column.level}`, {
55
+ 'is--hidden': isHidden,
53
56
  'is--group': isColGroup
54
57
  }],
55
58
  on: {
@@ -84,11 +87,13 @@ const renderSimplePanel = (h, _vm) => {
84
87
  class: 'vxe-table-custom--sort-option'
85
88
  }, [
86
89
  h('span', {
87
- class: 'vxe-table-custom--sort-btn',
90
+ class: ['vxe-table-custom--sort-btn', {
91
+ 'is--disabled': isHidden
92
+ }],
88
93
  attrs: {
89
94
  title: GlobalConfig.i18n('vxe.custom.setting.sortHelpTip')
90
95
  },
91
- on: {
96
+ on: isHidden ? {} : {
92
97
  mousedown: _vm.sortMousedownEvent,
93
98
  mouseup: _vm.sortMouseupEvent
94
99
  }
@@ -99,22 +104,30 @@ const renderSimplePanel = (h, _vm) => {
99
104
  ])
100
105
  ])
101
106
  : _e(),
102
- h('div', {
103
- class: 'vxe-table-custom--checkbox-label',
104
- attrs: {
105
- title: colTitle
106
- }
107
- }, colTitle),
107
+ column.type === 'html'
108
+ ? h('div', {
109
+ key: '1',
110
+ class: 'vxe-table-custom--checkbox-label',
111
+ domProps: {
112
+ innerHTML: colTitle
113
+ }
114
+ }) : h('div', {
115
+ key: '0',
116
+ class: 'vxe-table-custom--checkbox-label',
117
+ attrs: {
118
+ title: colTitle
119
+ }
120
+ }, colTitle),
108
121
  !parent && allowFixed
109
122
  ? h('div', {
110
123
  class: 'vxe-table-custom--fixed-option'
111
124
  }, [
112
- h('span', {
113
- class: ['vxe-table-custom--fixed-left-option', column.renderFixed === 'left' ? GlobalConfig.icon.TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE : GlobalConfig.icon.TOOLBAR_TOOLS_FIXED_LEFT, {
114
- 'is--checked': column.renderFixed === 'left',
115
- 'is--disabled': isMaxFixedColumn && !column.renderFixed
116
- }],
117
- attrs: {
125
+ h(VxeButtonComponent, {
126
+ props: {
127
+ mode: 'text',
128
+ icon: column.renderFixed === 'left' ? GlobalConfig.icon.TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE : GlobalConfig.icon.TOOLBAR_TOOLS_FIXED_LEFT,
129
+ status: column.renderFixed === 'left' ? 'primary' : '',
130
+ disabled: isHidden || (isMaxFixedColumn && !column.renderFixed),
118
131
  title: GlobalConfig.i18n(column.renderFixed === 'left' ? 'vxe.toolbar.cancelFixed' : 'vxe.toolbar.fixedLeft')
119
132
  },
120
133
  on: {
@@ -123,16 +136,15 @@ const renderSimplePanel = (h, _vm) => {
123
136
  }
124
137
  }
125
138
  }),
126
- h('span', {
127
- class: ['vxe-table-custom--fixed-right-option', column.renderFixed === 'right' ? GlobalConfig.icon.TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE : GlobalConfig.icon.TOOLBAR_TOOLS_FIXED_RIGHT, {
128
- 'is--checked': column.renderFixed === 'right',
129
- 'is--disabled': isMaxFixedColumn && !column.renderFixed
130
- }],
131
- attrs: {
139
+ h(VxeButtonComponent, {
140
+ props: {
141
+ mode: 'text',
142
+ icon: column.renderFixed === 'right' ? GlobalConfig.icon.TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE : GlobalConfig.icon.TOOLBAR_TOOLS_FIXED_RIGHT,
143
+ status: column.renderFixed === 'right' ? 'primary' : '',
144
+ disabled: isHidden || (isMaxFixedColumn && !column.renderFixed),
132
145
  title: GlobalConfig.i18n(column.renderFixed === 'right' ? 'vxe.toolbar.cancelFixed' : 'vxe.toolbar.fixedRight')
133
146
  },
134
147
  on: {
135
-
136
148
  click: () => {
137
149
  _vm.changeFixedOption(column, 'right')
138
150
  }
@@ -174,7 +186,7 @@ const renderSimplePanel = (h, _vm) => {
174
186
  title: GlobalConfig.i18n('vxe.table.allTitle')
175
187
  },
176
188
  on: {
177
- click: _vm.allCustomEvent
189
+ click: _vm.allOptionEvent
178
190
  }
179
191
  }, [
180
192
  h('span', {
@@ -203,32 +215,52 @@ const renderSimplePanel = (h, _vm) => {
203
215
  h('div', {
204
216
  ref: 'dragHintElemRef',
205
217
  class: 'vxe-table-custom-popup--drag-hint'
206
- }, GlobalConfig.i18n('vxe.custom.cstmDragTarget', [_vm.dragColumn ? _vm.dragColumn.getTitle() : '']))
218
+ }, GlobalConfig.i18n('vxe.custom.cstmDragTarget', [dragColumn && dragColumn.type !== 'html' ? dragColumn.getTitle() : '']))
207
219
  ]),
208
220
  customOpts.showFooter
209
221
  ? h('div', {
210
222
  class: 'vxe-table-custom--footer'
211
223
  }, [
212
- h('button', {
213
- class: 'btn--reset',
224
+ h(VxeButtonComponent, {
225
+ props: {
226
+ mode: 'text',
227
+ content: customOpts.resetButtonText || GlobalConfig.i18n('vxe.table.customRestore')
228
+ },
214
229
  on: {
215
230
  click: _vm.resetCustomEvent
216
231
  }
217
- }, customOpts.resetButtonText || GlobalConfig.i18n('vxe.table.customRestore')),
232
+ }),
218
233
  customOpts.immediate
219
- ? _e()
220
- : h('button', {
221
- class: 'btn--cancel',
234
+ ? h(VxeButtonComponent, {
235
+ props: {
236
+ mode: 'text',
237
+ content: customOpts.closeButtonText || GlobalConfig.i18n('vxe.table.customClose')
238
+ },
239
+ on: {
240
+ click: _vm.cancelCloseEvent
241
+ }
242
+ })
243
+ : h(VxeButtonComponent, {
244
+ props: {
245
+ mode: 'text',
246
+ content: customOpts.resetButtonText || GlobalConfig.i18n('vxe.table.customCancel')
247
+ },
222
248
  on: {
223
249
  click: _vm.cancelCustomEvent
224
250
  }
225
- }, customOpts.resetButtonText || GlobalConfig.i18n('vxe.table.customCancel')),
226
- h('button', {
227
- class: 'btn--confirm',
228
- on: {
229
- click: _vm.confirmCustomEvent
230
- }
231
- }, customOpts.confirmButtonText || GlobalConfig.i18n('vxe.table.customConfirm'))
251
+ }),
252
+ customOpts.immediate
253
+ ? _e()
254
+ : h(VxeButtonComponent, {
255
+ props: {
256
+ mode: 'text',
257
+ status: 'primary',
258
+ content: customOpts.confirmButtonText || GlobalConfig.i18n('vxe.table.customConfirm')
259
+ },
260
+ on: {
261
+ click: _vm.confirmCustomEvent
262
+ }
263
+ })
232
264
  ])
233
265
  : null
234
266
  ]
@@ -250,6 +282,7 @@ const renderPopupPanel = (h, _vm) => {
250
282
  const colTitle = formatText(column.getTitle(), 1)
251
283
  const isColGroup = column.children && column.children.length
252
284
  const isDisabled = checkMethod ? !checkMethod({ column }) : false
285
+ const isHidden = !isChecked
253
286
  trVNs.push(
254
287
  h('tr', {
255
288
  key: column.id,
@@ -296,11 +329,13 @@ const renderPopupPanel = (h, _vm) => {
296
329
  }, [
297
330
  column.level === 1
298
331
  ? h('span', {
299
- class: 'vxe-table-custom-popup--column-sort-btn',
332
+ class: ['vxe-table-custom-popup--column-sort-btn', {
333
+ 'is--disabled': isHidden
334
+ }],
300
335
  attrs: {
301
336
  title: GlobalConfig.i18n('vxe.custom.setting.sortHelpTip')
302
337
  },
303
- on: {
338
+ on: isHidden ? {} : {
304
339
  mousedown: _vm.sortMousedownEvent,
305
340
  mouseup: _vm.sortMouseupEvent
306
341
  }
@@ -315,22 +350,31 @@ const renderPopupPanel = (h, _vm) => {
315
350
  h('td', {
316
351
  class: 'vxe-table-custom-popup--column-item col--name'
317
352
  }, [
318
- h('div', {
319
- class: 'vxe-table-custom-popup--name',
320
- attrs: {
321
- title: colTitle
322
- }
323
- }, colTitle)
353
+ column.type === 'html'
354
+ ? h('div', {
355
+ key: '1',
356
+ class: 'vxe-table-custom-popup--name',
357
+ domProps: {
358
+ innerHTML: colTitle
359
+ }
360
+ }) : h('div', {
361
+ key: '0',
362
+ class: 'vxe-table-custom-popup--name',
363
+ attrs: {
364
+ title: colTitle
365
+ }
366
+ }, colTitle)
324
367
  ]),
325
368
  allowResizable
326
369
  ? h('td', {
327
370
  class: 'vxe-table-custom-popup--column-item col--resizable'
328
371
  }, [
329
- !isChecked || (column.children && column.children.length)
372
+ column.children && column.children.length
330
373
  ? h('span', '-')
331
374
  : h('vxe-input', {
332
375
  props: {
333
376
  type: 'integer',
377
+ disabled: isHidden,
334
378
  value: column.renderResizeWidth
335
379
  },
336
380
  on: {
@@ -352,19 +396,17 @@ const renderPopupPanel = (h, _vm) => {
352
396
  value: column.renderFixed || '',
353
397
  type: 'button',
354
398
  size: 'mini',
399
+ disabled: isHidden,
355
400
  options: [
356
- { label: GlobalConfig.i18n('vxe.custom.setting.fixedLeft'), value: 'left', disabled: isMaxFixedColumn },
357
- { label: GlobalConfig.i18n('vxe.custom.setting.fixedUnset'), value: '' },
358
- { label: GlobalConfig.i18n('vxe.custom.setting.fixedRight'), value: 'right', disabled: isMaxFixedColumn }
401
+ { label: GlobalConfig.i18n('vxe.custom.setting.fixedLeft'), value: 'left', disabled: isHidden || isMaxFixedColumn },
402
+ { label: GlobalConfig.i18n('vxe.custom.setting.fixedUnset'), value: '', disabled: isHidden },
403
+ { label: GlobalConfig.i18n('vxe.custom.setting.fixedRight'), value: 'right', disabled: isHidden || isMaxFixedColumn }
359
404
  ]
360
405
  },
361
406
  on: {
362
407
  input (value) {
363
408
  column.renderFixed = value
364
409
  }
365
- // onChange () {
366
- // changePopupFixedOption(column)
367
- // }
368
410
  }
369
411
  })
370
412
  ])
@@ -453,7 +495,7 @@ const renderPopupPanel = (h, _vm) => {
453
495
  title: GlobalConfig.i18n('vxe.table.allTitle')
454
496
  },
455
497
  on: {
456
- click: _vm.allCustomEvent
498
+ click: _vm.allOptionEvent
457
499
  }
458
500
 
459
501
  }, [
@@ -514,7 +556,7 @@ const renderPopupPanel = (h, _vm) => {
514
556
  return h('div', {
515
557
  class: 'vxe-table-custom-popup--footer'
516
558
  }, [
517
- h('vxe-button', {
559
+ h(VxeButtonComponent, {
518
560
  props: {
519
561
  content: customOpts.resetButtonText || GlobalConfig.i18n('vxe.custom.cstmRestore')
520
562
  },
@@ -522,7 +564,7 @@ const renderPopupPanel = (h, _vm) => {
522
564
  click: _vm.resetCustomEvent
523
565
  }
524
566
  }),
525
- h('vxe-button', {
567
+ h(VxeButtonComponent, {
526
568
  props: {
527
569
  content: customOpts.resetButtonText || GlobalConfig.i18n('vxe.custom.cstmCancel')
528
570
  },
@@ -530,7 +572,7 @@ const renderPopupPanel = (h, _vm) => {
530
572
  click: _vm.cancelCustomEvent
531
573
  }
532
574
  }),
533
- h('vxe-button', {
575
+ h(VxeButtonComponent, {
534
576
  props: {
535
577
  status: 'primary',
536
578
  content: customOpts.confirmButtonText || GlobalConfig.i18n('vxe.custom.cstmConfirm')
@@ -596,7 +638,10 @@ export default {
596
638
  const { customOpts, customColumnList } = $xetable
597
639
  const { allowVisible, allowSort, allowFixed, allowResizable } = customOpts
598
640
  XEUtils.eachTree(customColumnList, (column, index, items, path, parent) => {
599
- if (!parent) {
641
+ if (parent) {
642
+ // 更新子列信息
643
+ column.fixed = parent.fixed
644
+ } else {
600
645
  if (allowSort) {
601
646
  const sortIndex = index + 1
602
647
  column.renderSortNumber = sortIndex
@@ -621,6 +666,11 @@ export default {
621
666
  $xetable.emitCustomEvent('confirm', evnt)
622
667
  $xetable.saveCustomStore('confirm')
623
668
  },
669
+ cancelCloseEvent ({ $event }) {
670
+ const { $xetable } = this
671
+ $xetable.closeCustom()
672
+ $xetable.emitCustomEvent('cancel', $event)
673
+ },
624
674
  cancelCustomEvent (evnt) {
625
675
  const { $xetable } = this
626
676
  const { customStore, customOpts, customColumnList } = $xetable
@@ -701,49 +751,81 @@ export default {
701
751
  const { $xetable } = this
702
752
  const { customOpts } = $xetable
703
753
  const isChecked = !column.renderVisible
704
- XEUtils.eachTree([column], (item) => {
705
- item.renderVisible = isChecked
706
- item.halfVisible = false
707
- })
708
- this.handleOptionCheck(column)
709
754
  if (customOpts.immediate) {
755
+ XEUtils.eachTree([column], (item) => {
756
+ item.visible = isChecked
757
+ item.renderVisible = isChecked
758
+ item.halfVisible = false
759
+ })
710
760
  $xetable.handleCustom()
711
761
  $xetable.saveCustomStore('update:visible')
762
+ } else {
763
+ XEUtils.eachTree([column], (item) => {
764
+ item.renderVisible = isChecked
765
+ item.halfVisible = false
766
+ })
712
767
  }
768
+ this.handleOptionCheck(column)
713
769
  $xetable.checkCustomStatus()
714
770
  },
715
771
  changeFixedOption (column, colFixed) {
716
772
  const { $xetable } = this
717
- const { isMaxFixedColumn } = $xetable
718
- if (column.renderFixed === colFixed) {
719
- column.renderFixed = ''
720
- // $xeTable.clearColumnFixed(column)
773
+ const { isMaxFixedColumn, customOpts } = $xetable
774
+ if (customOpts.immediate) {
775
+ if (column.renderFixed === colFixed) {
776
+ XEUtils.eachTree([column], col => {
777
+ col.fixed = ''
778
+ col.renderFixed = ''
779
+ })
780
+ } else {
781
+ if (!isMaxFixedColumn || column.renderFixed) {
782
+ XEUtils.eachTree([column], col => {
783
+ col.fixed = colFixed
784
+ col.renderFixed = colFixed
785
+ })
786
+ }
787
+ }
788
+ $xetable.handleCustom()
789
+ $xetable.saveCustomStore('update:fixed')
721
790
  } else {
722
- if (!isMaxFixedColumn || column.renderFixed) {
723
- column.renderFixed = colFixed
724
- // $xeTable.setColumnFixed(column, colFixed)
791
+ if (column.renderFixed === colFixed) {
792
+ XEUtils.eachTree([column], col => {
793
+ col.renderFixed = ''
794
+ })
795
+ } else {
796
+ if (!isMaxFixedColumn || column.renderFixed) {
797
+ XEUtils.eachTree([column], col => {
798
+ col.renderFixed = colFixed
799
+ })
800
+ }
725
801
  }
726
802
  }
727
803
  },
728
- // changePopupFixedOption (column) {
729
- // const { $xetable } = this
730
- // const { isMaxFixedColumn } = $xetable
731
- // if (!isMaxFixedColumn) {
732
- // $xetable.setColumnFixed(column, column.fixed)
733
- // }
734
- // },
735
- allCustomEvent () {
804
+ allOptionEvent () {
736
805
  const { $xetable, customStore } = this
737
- const { customOpts, customColumnList } = $xetable
806
+ const { customColumnList, customOpts } = $xetable
738
807
  const { checkMethod } = customOpts
739
808
  const isAll = !customStore.isAll
740
- XEUtils.eachTree(customColumnList, (column) => {
741
- if (!checkMethod || checkMethod({ column })) {
742
- column.renderVisible = isAll
743
- column.halfVisible = false
744
- }
745
- })
746
- customStore.isAll = isAll
809
+ if (customOpts.immediate) {
810
+ XEUtils.eachTree(customColumnList, (column) => {
811
+ if (!checkMethod || checkMethod({ column })) {
812
+ column.visible = isAll
813
+ column.renderVisible = isAll
814
+ column.halfVisible = false
815
+ }
816
+ })
817
+ customStore.isAll = isAll
818
+ $xetable.handleCustom()
819
+ $xetable.saveCustomStore('update:visible')
820
+ } else {
821
+ XEUtils.eachTree(customColumnList, (column) => {
822
+ if (!checkMethod || checkMethod({ column })) {
823
+ column.renderVisible = isAll
824
+ column.halfVisible = false
825
+ }
826
+ })
827
+ customStore.isAll = isAll
828
+ }
747
829
  $xetable.checkCustomStatus()
748
830
  },
749
831
  sortMousedownEvent (evnt) {
@@ -777,7 +859,7 @@ export default {
777
859
  },
778
860
  sortDragendEvent (evnt) {
779
861
  const { $xetable, prevDropTrEl } = this
780
- const { customColumnList } = $xetable
862
+ const { customColumnList, customOpts } = $xetable
781
863
  const trEl = evnt.currentTarget
782
864
  const dragHintEl = this.$refs.dragHintElemRef
783
865
  if (prevDropTrEl) {
@@ -813,6 +895,17 @@ export default {
813
895
  }
814
896
  removeClass(trEl, 'active--drag-target')
815
897
  removeClass(trEl, 'active--drag-origin')
898
+
899
+ if (customOpts.immediate) {
900
+ XEUtils.eachTree(customColumnList, (column, index, items, path, parent) => {
901
+ if (!parent) {
902
+ const sortIndex = index + 1
903
+ column.renderSortNumber = sortIndex
904
+ }
905
+ })
906
+ $xetable.handleCustom()
907
+ $xetable.saveCustomStore('update:sort')
908
+ }
816
909
  },
817
910
  sortDragoverEvent (evnt) {
818
911
  const { $xetable, prevDropTrEl } = this
@@ -426,7 +426,7 @@ export default {
426
426
  /**
427
427
  * 处理激活编辑
428
428
  */
429
- handleActived (params, evnt) {
429
+ handleEdit (params, evnt) {
430
430
  const { editStore, editOpts, tableColumn, editConfig, mouseConfig } = this
431
431
  const { mode } = editOpts
432
432
  const { actived, focused } = editStore
@@ -516,6 +516,12 @@ export default {
516
516
  }
517
517
  return this.$nextTick()
518
518
  },
519
+ /**
520
+ * @deprecated
521
+ */
522
+ handleActived (params, evnt) {
523
+ return this.handleEdit(params, evnt)
524
+ },
519
525
  _getColumnModel (row, column) {
520
526
  const { model, editRender } = column
521
527
  if (editRender) {
@@ -688,7 +694,7 @@ export default {
688
694
  return this.scrollToRow(row, true).then(() => {
689
695
  const cell = this.getCellElement(row, column)
690
696
  if (cell) {
691
- this.handleActived({ row, rowIndex: this.getRowIndex(row), column, columnIndex: this.getColumnIndex(column), cell, $table: this })
697
+ this.handleEdit({ row, rowIndex: this.getRowIndex(row), column, columnIndex: this.getColumnIndex(column), cell, $table: this })
692
698
  this.lastCallTime = Date.now()
693
699
  }
694
700
  })
@@ -56,6 +56,7 @@ export default {
56
56
  const isColGroup = column.children && column.children.length
57
57
  const isChecked = column.checked
58
58
  const indeterminate = column.halfChecked
59
+ const isHtml = column.type === 'html'
59
60
  cols.push(
60
61
  h('li', {
61
62
  class: ['vxe-export--panel-column-option', `level--${column.level}`, {
@@ -78,9 +79,16 @@ export default {
78
79
  h('span', {
79
80
  class: ['vxe-checkbox--icon', indeterminate ? GlobalConfig.icon.TABLE_CHECKBOX_INDETERMINATE : (isChecked ? GlobalConfig.icon.TABLE_CHECKBOX_CHECKED : GlobalConfig.icon.TABLE_CHECKBOX_UNCHECKED)]
80
81
  }),
81
- h('span', {
82
- class: 'vxe-checkbox--label'
83
- }, colTitle)
82
+ isHtml
83
+ ? h('span', {
84
+ key: '1',
85
+ class: 'vxe-checkbox--label',
86
+ innerHTML: colTitle
87
+ })
88
+ : h('span', {
89
+ key: '0',
90
+ class: 'vxe-checkbox--label'
91
+ }, colTitle)
84
92
  ])
85
93
  )
86
94
  })
@@ -159,9 +159,6 @@ export default {
159
159
  [`size--${vSize}`]: vSize,
160
160
  'is--loading': loading
161
161
  }],
162
- attrs: {
163
- spellcheck: false
164
- },
165
162
  on: {
166
163
  submit: this.submitEvent,
167
164
  reset: this.resetEvent
@@ -1297,11 +1297,18 @@ export default {
1297
1297
  const isShiftKey = evnt.shiftKey
1298
1298
  const isAltKey = evnt.altKey
1299
1299
  const keyCode = evnt.keyCode
1300
+ const isEsc = keyCode === 27
1301
+ const isUpArrow = keyCode === 38
1302
+ const isDwArrow = keyCode === 40
1300
1303
  if (!isCtrlKey && !isShiftKey && !isAltKey && (keyCode === 32 || ((!exponential || keyCode !== 69) && (keyCode >= 65 && keyCode <= 90)) || (keyCode >= 186 && keyCode <= 188) || keyCode >= 191)) {
1301
1304
  evnt.preventDefault()
1302
1305
  }
1303
- if (controls) {
1304
- this.numberKeydownEvent(evnt)
1306
+ if (isEsc) {
1307
+ this.afterCheckValue()
1308
+ } else if (isUpArrow || isDwArrow) {
1309
+ if (controls) {
1310
+ this.numberKeydownEvent(evnt)
1311
+ }
1305
1312
  }
1306
1313
  }
1307
1314
  this.triggerEvent(evnt)
@@ -97,7 +97,7 @@ export default {
97
97
  if (editConfig) {
98
98
  if (editOpts.trigger === 'click' || editOpts.trigger === 'dblclick') {
99
99
  if (editOpts.mode === 'row') {
100
- this.handleActived(params, evnt)
100
+ this.handleEdit(params, evnt)
101
101
  } else {
102
102
  this.scrollToRow(params.row, params.column)
103
103
  .then(() => this.handleSelected(params, evnt))