vxe-table 4.3.8 → 4.3.10

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 (61) 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/grid/src/grid.js +51 -21
  5. package/es/icon/style/{iconfont.1673016604432.ttf → iconfont.1676040467680.ttf} +0 -0
  6. package/es/icon/style/{iconfont.1673016604432.woff → iconfont.1676040467680.woff} +0 -0
  7. package/es/icon/style/{iconfont.1673016604432.woff2 → iconfont.1676040467680.woff2} +0 -0
  8. package/es/icon/style.css +1 -1
  9. package/es/{iconfont.1673016604432.ttf → iconfont.1676040467680.ttf} +0 -0
  10. package/es/{iconfont.1673016604432.woff → iconfont.1676040467680.woff} +0 -0
  11. package/es/{iconfont.1673016604432.woff2 → iconfont.1676040467680.woff2} +0 -0
  12. package/es/input/src/input.js +4 -4
  13. package/es/list/src/list.js +4 -1
  14. package/es/pager/src/pager.js +8 -2
  15. package/es/style.css +1 -1
  16. package/es/style.min.css +1 -1
  17. package/es/table/src/cell.js +2 -2
  18. package/es/table/src/table.js +151 -138
  19. package/es/toolbar/src/toolbar.js +2 -2
  20. package/es/tools/log.js +1 -1
  21. package/es/v-x-e-table/index.js +1 -1
  22. package/lib/grid/src/grid.js +72 -26
  23. package/lib/grid/src/grid.min.js +1 -1
  24. package/lib/icon/style/{iconfont.1673016604432.ttf → iconfont.1676040467680.ttf} +0 -0
  25. package/lib/icon/style/{iconfont.1673016604432.woff → iconfont.1676040467680.woff} +0 -0
  26. package/lib/icon/style/{iconfont.1673016604432.woff2 → iconfont.1676040467680.woff2} +0 -0
  27. package/lib/icon/style/style.css +1 -1
  28. package/lib/icon/style/style.min.css +1 -1
  29. package/lib/{iconfont.1673016604432.ttf → iconfont.1676040467680.ttf} +0 -0
  30. package/lib/{iconfont.1673016604432.woff → iconfont.1676040467680.woff} +0 -0
  31. package/lib/{iconfont.1673016604432.woff2 → iconfont.1676040467680.woff2} +0 -0
  32. package/lib/index.umd.js +277 -195
  33. package/lib/index.umd.min.js +1 -1
  34. package/lib/input/src/input.js +4 -4
  35. package/lib/input/src/input.min.js +1 -1
  36. package/lib/list/src/list.js +5 -0
  37. package/lib/list/src/list.min.js +1 -1
  38. package/lib/pager/src/pager.js +8 -2
  39. package/lib/pager/src/pager.min.js +1 -1
  40. package/lib/style.css +1 -1
  41. package/lib/style.min.css +1 -1
  42. package/lib/table/src/cell.js +2 -2
  43. package/lib/table/src/cell.min.js +1 -1
  44. package/lib/table/src/table.js +172 -159
  45. package/lib/table/src/table.min.js +1 -1
  46. package/lib/toolbar/src/toolbar.js +4 -2
  47. package/lib/toolbar/src/toolbar.min.js +1 -1
  48. package/lib/tools/log.js +1 -1
  49. package/lib/tools/log.min.js +1 -1
  50. package/lib/v-x-e-table/index.js +1 -1
  51. package/lib/v-x-e-table/index.min.js +1 -1
  52. package/package.json +1 -1
  53. package/packages/grid/src/grid.ts +50 -20
  54. package/packages/input/src/input.ts +4 -4
  55. package/packages/list/src/list.ts +5 -1
  56. package/packages/pager/src/pager.ts +8 -2
  57. package/packages/table/src/cell.ts +3 -3
  58. package/packages/table/src/table.ts +146 -130
  59. package/packages/toolbar/src/toolbar.ts +2 -2
  60. package/types/grid.d.ts +4 -0
  61. package/types/table.d.ts +1 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _exportNames={use:!0,t:!0,_t:!0,config:!0,v:!0,VXETable:!0},_xeUtils=(exports.VXETable=void 0,exports._t=_t,exports.default=exports.config=void 0,exports.t=t,exports.use=use,exports.v=void 0,_interopRequireDefault(require("xe-utils"))),_conf=_interopRequireDefault(require("./src/conf")),_interceptor=require("./src/interceptor"),_renderer=(Object.keys(_interceptor).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_interceptor[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _interceptor[e]}})}),require("./src/renderer")),_commands=(Object.keys(_renderer).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_renderer[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _renderer[e]}})}),require("./src/commands")),_menus=(Object.keys(_commands).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_commands[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _commands[e]}})}),require("./src/menus")),_formats=(Object.keys(_menus).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_menus[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _menus[e]}})}),require("./src/formats")),_hooks=(Object.keys(_formats).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_formats[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _formats[e]}})}),require("./src/hooks")),_setup=(Object.keys(_hooks).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_hooks[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _hooks[e]}})}),require("./src/setup")),_utils=(Object.keys(_setup).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_setup[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _setup[e]}})}),require("../tools/utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getExportOrImpotType(e,r){var o=[];return _xeUtils.default.objectEach(e,function(e,t){0!==e&&e!==r||o.push(t)}),o}var installedPlugins=[];function use(e,t){return e&&e.install&&-1===installedPlugins.indexOf(e)&&(e.install(VXETable,t),installedPlugins.push(e)),VXETable}function t(e,t){return _conf.default.i18n(e,t)}function _t(e,t){return e?_xeUtils.default.toValueString(_conf.default.translate?_conf.default.translate(e,t):e):""}var VXETableConfig=function(){function e(){}return Object.defineProperty(e.prototype,"zIndex",{get:function(){return(0,_utils.getLastZIndex)()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"nextZIndex",{get:function(){return(0,_utils.nextZIndex)()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"exportTypes",{get:function(){return getExportOrImpotType(_conf.default.export.types,1)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"importTypes",{get:function(){return getExportOrImpotType(_conf.default.export.types,2)},enumerable:!1,configurable:!0}),e}(),config=new VXETableConfig,v=(exports.config=config,"v4"),VXETable={v:exports.v=v,version:"4.3.8",setup:_setup.setup,interceptor:_interceptor.interceptor,renderer:_renderer.renderer,commands:_commands.commands,formats:_formats.formats,menus:_menus.menus,hooks:_hooks.hooks,config:config,use:use,t:t,_t:_t},_default=exports.VXETable=VXETable;exports.default=_default;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _exportNames={use:!0,t:!0,_t:!0,config:!0,v:!0,VXETable:!0},_xeUtils=(exports.VXETable=void 0,exports._t=_t,exports.default=exports.config=void 0,exports.t=t,exports.use=use,exports.v=void 0,_interopRequireDefault(require("xe-utils"))),_conf=_interopRequireDefault(require("./src/conf")),_interceptor=require("./src/interceptor"),_renderer=(Object.keys(_interceptor).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_interceptor[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _interceptor[e]}})}),require("./src/renderer")),_commands=(Object.keys(_renderer).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_renderer[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _renderer[e]}})}),require("./src/commands")),_menus=(Object.keys(_commands).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_commands[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _commands[e]}})}),require("./src/menus")),_formats=(Object.keys(_menus).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_menus[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _menus[e]}})}),require("./src/formats")),_hooks=(Object.keys(_formats).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_formats[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _formats[e]}})}),require("./src/hooks")),_setup=(Object.keys(_hooks).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_hooks[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _hooks[e]}})}),require("./src/setup")),_utils=(Object.keys(_setup).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_setup[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _setup[e]}})}),require("../tools/utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getExportOrImpotType(e,r){var o=[];return _xeUtils.default.objectEach(e,function(e,t){0!==e&&e!==r||o.push(t)}),o}var installedPlugins=[];function use(e,t){return e&&e.install&&-1===installedPlugins.indexOf(e)&&(e.install(VXETable,t),installedPlugins.push(e)),VXETable}function t(e,t){return _conf.default.i18n(e,t)}function _t(e,t){return e?_xeUtils.default.toValueString(_conf.default.translate?_conf.default.translate(e,t):e):""}var VXETableConfig=function(){function e(){}return Object.defineProperty(e.prototype,"zIndex",{get:function(){return(0,_utils.getLastZIndex)()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"nextZIndex",{get:function(){return(0,_utils.nextZIndex)()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"exportTypes",{get:function(){return getExportOrImpotType(_conf.default.export.types,1)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"importTypes",{get:function(){return getExportOrImpotType(_conf.default.export.types,2)},enumerable:!1,configurable:!0}),e}(),config=new VXETableConfig,v=(exports.config=config,"v4"),VXETable={v:exports.v=v,version:"4.3.10",setup:_setup.setup,interceptor:_interceptor.interceptor,renderer:_renderer.renderer,commands:_commands.commands,formats:_formats.formats,menus:_menus.menus,hooks:_hooks.hooks,config:config,use:use,t:t,_t:_t},_default=exports.VXETable=VXETable;exports.default=_default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxe-table",
3
- "version": "4.3.8",
3
+ "version": "4.3.10",
4
4
  "description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器等...",
5
5
  "scripts": {
6
6
  "update": "npm install --legacy-peer-deps",
@@ -25,6 +25,9 @@ const gridComponentEmits: VxeGridEmits = [
25
25
  'form-reset',
26
26
  'form-collapse',
27
27
  'form-toggle-collapse',
28
+ 'proxy-query',
29
+ 'proxy-delete',
30
+ 'proxy-save',
28
31
  'toolbar-button-click',
29
32
  'toolbar-tool-click',
30
33
  'zoom'
@@ -296,7 +299,7 @@ export default defineComponent({
296
299
  if (selectRecords.length) {
297
300
  return VXETable.modal.confirm({ id: `cfm_${code}`, content: GlobalConfig.i18n(alertKey), escClosable: true }).then((type) => {
298
301
  if (type === 'confirm') {
299
- callback()
302
+ return callback()
300
303
  }
301
304
  })
302
305
  } else {
@@ -324,7 +327,9 @@ export default defineComponent({
324
327
  tablePage.pageSize = pageSize
325
328
  gridMethods.dispatchEvent('page-change', params)
326
329
  if (proxyConfig) {
327
- gridMethods.commitProxy('query')
330
+ gridMethods.commitProxy('query').then((rest) => {
331
+ gridMethods.dispatchEvent('proxy-query', rest, params.$event)
332
+ })
328
333
  }
329
334
  }
330
335
 
@@ -338,7 +343,9 @@ export default defineComponent({
338
343
  reactData.sortData = params.sortList
339
344
  if (proxyConfig) {
340
345
  reactData.tablePage.currentPage = 1
341
- gridMethods.commitProxy('query')
346
+ gridMethods.commitProxy('query').then((rest) => {
347
+ gridMethods.dispatchEvent('proxy-query', rest, params.$event)
348
+ })
342
349
  }
343
350
  }
344
351
  gridMethods.dispatchEvent('sort-change', params)
@@ -354,7 +361,9 @@ export default defineComponent({
354
361
  reactData.filterData = params.filterList
355
362
  if (proxyConfig) {
356
363
  reactData.tablePage.currentPage = 1
357
- gridMethods.commitProxy('query')
364
+ gridMethods.commitProxy('query').then((rest) => {
365
+ gridMethods.dispatchEvent('proxy-query', rest, params.$event)
366
+ })
358
367
  }
359
368
  }
360
369
  gridMethods.dispatchEvent('filter-change', params)
@@ -363,7 +372,9 @@ export default defineComponent({
363
372
  const submitFormEvent: VxeFormEvents.Submit = (params) => {
364
373
  const { proxyConfig } = props
365
374
  if (proxyConfig) {
366
- gridMethods.commitProxy('reload')
375
+ gridMethods.commitProxy('reload').then((rest) => {
376
+ gridMethods.dispatchEvent('proxy-query', { ...rest, isReload: true }, params.$event)
377
+ })
367
378
  }
368
379
  gridMethods.dispatchEvent('form-submit', params)
369
380
  }
@@ -371,7 +382,9 @@ export default defineComponent({
371
382
  const resetFormEvent: VxeFormEvents.Reset = (params) => {
372
383
  const { proxyConfig } = props
373
384
  if (proxyConfig) {
374
- gridMethods.commitProxy('reload')
385
+ gridMethods.commitProxy('reload').then((rest) => {
386
+ gridMethods.dispatchEvent('proxy-query', { ...rest, isReload: true }, params.$event)
387
+ })
375
388
  }
376
389
  gridMethods.dispatchEvent('form-reset', params)
377
390
  }
@@ -663,7 +676,9 @@ export default defineComponent({
663
676
  if (!proxyInited) {
664
677
  reactData.proxyInited = true
665
678
  if (proxyOpts.autoLoad !== false) {
666
- nextTick(() => gridMethods.commitProxy('_init'))
679
+ nextTick().then(() => gridMethods.commitProxy('_init')).then((rest) => {
680
+ gridMethods.dispatchEvent('proxy-query', { ...rest, isInited: true }, new Event('init'))
681
+ })
667
682
  }
668
683
  }
669
684
  }
@@ -699,11 +714,9 @@ export default defineComponent({
699
714
  const btnParams = button ? button.params : null
700
715
  switch (code) {
701
716
  case 'insert':
702
- $xetable.insert({})
703
- break
717
+ return $xetable.insert({})
704
718
  case 'insert_actived':
705
- $xetable.insert({}).then(({ row }) => $xetable.setActiveRow(row))
706
- break
719
+ return $xetable.insert({}).then(({ row }) => $xetable.setEditRow(row))
707
720
  case 'mark_cancel':
708
721
  triggerPendingEvent(code)
709
722
  break
@@ -722,8 +735,7 @@ export default defineComponent({
722
735
  $xetable.openExport(btnParams)
723
736
  break
724
737
  case 'reset_custom':
725
- $xetable.resetColumn(true)
726
- break
738
+ return $xetable.resetColumn(true)
727
739
  case '_init':
728
740
  case 'reload':
729
741
  case 'query': {
@@ -769,9 +781,11 @@ export default defineComponent({
769
781
  filterList = $xetable.getCheckedFilters()
770
782
  }
771
783
  }
772
- const params: any = {
784
+ const commitParams = {
773
785
  code,
774
786
  button,
787
+ isInited,
788
+ isReload,
775
789
  $grid: $xegrid,
776
790
  page: pageParams,
777
791
  sort: sortList.length ? sortList[0] : {},
@@ -783,9 +797,8 @@ export default defineComponent({
783
797
  reactData.sortData = sortList
784
798
  reactData.filterData = filterList
785
799
  reactData.tableLoading = true
786
- const applyArgs = [params].concat(args)
800
+ const applyArgs = [commitParams].concat(args)
787
801
  return Promise.resolve((beforeQuery || ajaxMethods)(...applyArgs))
788
- .catch(e => e)
789
802
  .then(rest => {
790
803
  reactData.tableLoading = false
791
804
  if (rest) {
@@ -807,6 +820,9 @@ export default defineComponent({
807
820
  if (afterQuery) {
808
821
  afterQuery(...applyArgs)
809
822
  }
823
+ return { status: true }
824
+ }).catch(() => {
825
+ return { status: false }
810
826
  })
811
827
  } else {
812
828
  if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
@@ -821,7 +837,8 @@ export default defineComponent({
821
837
  const selectRecords = gridExtendTableMethods.getCheckboxRecords()
822
838
  const removeRecords = selectRecords.filter(row => !$xetable.isInsertByRow(row))
823
839
  const body = { removeRecords }
824
- const applyArgs = [{ $grid: $xegrid, code, button, body, options: ajaxMethods }].concat(args)
840
+ const commitParams = { $grid: $xegrid, code, button, body, options: ajaxMethods }
841
+ const applyArgs = [commitParams].concat(args)
825
842
  if (selectRecords.length) {
826
843
  return handleDeleteRow(code, 'vxe.grid.deleteSelectRecord', () => {
827
844
  if (!removeRecords.length) {
@@ -846,6 +863,7 @@ export default defineComponent({
846
863
  } else {
847
864
  gridMethods.commitProxy('query')
848
865
  }
866
+ return { status: true }
849
867
  })
850
868
  .catch(rest => {
851
869
  reactData.tableLoading = false
@@ -857,6 +875,7 @@ export default defineComponent({
857
875
  }
858
876
  VXETable.modal.message({ id: code, content: getRespMsg(rest, 'vxe.grid.operError'), status: 'error' })
859
877
  }
878
+ return { status: false }
860
879
  })
861
880
  })
862
881
  } else {
@@ -882,7 +901,8 @@ export default defineComponent({
882
901
  if (ajaxMethods) {
883
902
  const body = Object.assign({ pendingRecords: reactData.pendingRecords }, $xetable.getRecordset())
884
903
  const { insertRecords, removeRecords, updateRecords, pendingRecords } = body
885
- const applyArgs = [{ $grid: $xegrid, code, button, body, options: ajaxMethods }].concat(args)
904
+ const commitParams = { $grid: $xegrid, code, button, body, options: ajaxMethods }
905
+ const applyArgs = [commitParams].concat(args)
886
906
  // 排除掉新增且标记为删除的数据
887
907
  if (insertRecords.length) {
888
908
  body.pendingRecords = pendingRecords.filter((row) => $xetable.findRowIndexOf(insertRecords, row) === -1)
@@ -921,6 +941,7 @@ export default defineComponent({
921
941
  } else {
922
942
  gridMethods.commitProxy('query')
923
943
  }
944
+ return { status: true }
924
945
  })
925
946
  .catch(rest => {
926
947
  reactData.tableLoading = false
@@ -933,6 +954,7 @@ export default defineComponent({
933
954
  }
934
955
  VXETable.modal.message({ id: code, content: getRespMsg(rest, 'vxe.grid.operError'), status: 'error' })
935
956
  }
957
+ return { status: false }
936
958
  })
937
959
  } else {
938
960
  if (isMsg) {
@@ -1065,12 +1087,20 @@ export default defineComponent({
1065
1087
  }
1066
1088
  return 0
1067
1089
  },
1090
+ triggerToolbarCommitEvent (params, evnt) {
1091
+ const { code } = params
1092
+ return gridMethods.commitProxy(params, evnt).then((rest) => {
1093
+ if (code && rest && rest.status && ['query', 'reload', 'delete', 'save'].includes(code)) {
1094
+ gridMethods.dispatchEvent(code === 'delete' || code === 'save' ? `proxy-${code as 'delete' | 'save'}` : 'proxy-query', { ...rest, isReload: code === 'reload' }, evnt)
1095
+ }
1096
+ })
1097
+ },
1068
1098
  triggerToolbarBtnEvent (button, evnt) {
1069
- gridMethods.commitProxy(button, evnt)
1099
+ gridPrivateMethods.triggerToolbarCommitEvent(button, evnt)
1070
1100
  gridMethods.dispatchEvent('toolbar-button-click', { code: button.code, button }, evnt)
1071
1101
  },
1072
1102
  triggerToolbarTolEvent (tool, evnt) {
1073
- gridMethods.commitProxy(tool, evnt)
1103
+ gridPrivateMethods.triggerToolbarCommitEvent(tool, evnt)
1074
1104
  gridMethods.dispatchEvent('toolbar-tool-click', { code: tool.code, tool, $event: evnt })
1075
1105
  },
1076
1106
  triggerZoomEvent (evnt) {
@@ -705,6 +705,10 @@ export default defineComponent({
705
705
 
706
706
  const focusEvent = (evnt: Event & { type: 'focus' }) => {
707
707
  reactData.isActivated = true
708
+ const isDatePickerType = computeIsDatePickerType.value
709
+ if (isDatePickerType) {
710
+ datePickerOpenEvent(evnt)
711
+ }
708
712
  triggerEvent(evnt)
709
713
  }
710
714
 
@@ -1582,10 +1586,6 @@ export default defineComponent({
1582
1586
  }
1583
1587
 
1584
1588
  const clickEvent = (evnt: Event & { type: 'click' }) => {
1585
- const isDatePickerType = computeIsDatePickerType.value
1586
- if (isDatePickerType) {
1587
- datePickerOpenEvent(evnt)
1588
- }
1589
1589
  triggerEvent(evnt)
1590
1590
  }
1591
1591
 
@@ -1,4 +1,4 @@
1
- import { defineComponent, h, PropType, ref, Ref, computed, onUnmounted, watch, reactive, nextTick } from 'vue'
1
+ import { defineComponent, h, PropType, ref, Ref, computed, onUnmounted, watch, reactive, nextTick, onActivated } from 'vue'
2
2
  import XEUtils from 'xe-utils'
3
3
  import GlobalConfig from '../../v-x-e-table/src/conf'
4
4
  import { useSize } from '../../hooks/size'
@@ -287,6 +287,10 @@ export default defineComponent({
287
287
  }
288
288
  })
289
289
 
290
+ onActivated(() => {
291
+ recalculate().then(() => refreshScroll())
292
+ })
293
+
290
294
  let resizeObserver: XEResizeObserver
291
295
 
292
296
  nextTick(() => {
@@ -101,7 +101,7 @@ export default defineComponent({
101
101
 
102
102
  const triggerJumpEvent = (evnt: Event) => {
103
103
  const inputElem: HTMLInputElement = evnt.target as HTMLInputElement
104
- const inpValue = XEUtils.toNumber(inputElem.value)
104
+ const inpValue = XEUtils.toInteger(inputElem.value)
105
105
  const pageCount = computePageCount.value
106
106
  const current = inpValue <= 0 ? 1 : inpValue >= pageCount ? pageCount : inpValue
107
107
  inputElem.value = XEUtils.toValueString(current)
@@ -165,8 +165,14 @@ export default defineComponent({
165
165
  const pageSizeEvent: VxeSelectEvents.Change = (params) => {
166
166
  const { value } = params
167
167
  const pageSize = XEUtils.toNumber(value)
168
+ const pageCount = getPageCount(props.total, pageSize)
169
+ let currentPage = props.currentPage
170
+ if (currentPage > pageCount) {
171
+ currentPage = pageCount
172
+ emit('update:currentPage', pageCount)
173
+ }
168
174
  emit('update:pageSize', pageSize)
169
- pagerMethods.dispatchEvent('page-change', { type: 'size', pageSize, currentPage: Math.min(props.currentPage, getPageCount(props.total, pageSize)) })
175
+ pagerMethods.dispatchEvent('page-change', { type: 'size', pageSize, currentPage })
170
176
  }
171
177
 
172
178
  const jumpInputEvent = (evnt: KeyboardEvent) => {
@@ -25,7 +25,7 @@ function renderHelpIcon (params: VxeTableDefines.CellRenderHeaderParams) {
25
25
  ] : []
26
26
  }
27
27
 
28
- function renderTitleContent (params: VxeTableDefines.CellRenderHeaderParams, content: SlotVNodeType[]) {
28
+ function renderTitleContent (params: VxeTableDefines.CellRenderHeaderParams, content: SlotVNodeType | SlotVNodeType[]) {
29
29
  const { $table, column } = params
30
30
  const { props, internalData } = $table
31
31
  const { computeTooltipOpts } = $table.getComputeMaps()
@@ -164,7 +164,7 @@ export const Cell = {
164
164
  return renderTitleContent(params, getSlotVNs(compConf.renderHeader(renderOpts, params)))
165
165
  }
166
166
  }
167
- return renderTitleContent(params, [formatText(column.getTitle(), 1)])
167
+ return renderTitleContent(params, formatText(column.getTitle(), 1))
168
168
  },
169
169
  renderDefaultHeader (params: VxeTableDefines.CellRenderHeaderParams) {
170
170
  return renderHelpIcon(params).concat(Cell.renderHeaderTitle(params))
@@ -273,7 +273,7 @@ export const Cell = {
273
273
  const { $table, column } = params
274
274
  const { slots } = column
275
275
  const headerSlot = slots ? slots.header : null
276
- return renderTitleContent(params, headerSlot ? $table.callSlot(headerSlot, params) : [formatText(column.getTitle(), 1)])
276
+ return renderTitleContent(params, headerSlot ? $table.callSlot(headerSlot, params) : formatText(column.getTitle(), 1))
277
277
  },
278
278
  renderSeqCell (params: VxeTableDefines.CellRenderBodyParams) {
279
279
  const { $table, column } = params