vxe-table 4.6.5 → 4.6.6

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 (149) hide show
  1. package/es/button/style.css +6 -6
  2. package/es/checkbox/src/group.js +7 -1
  3. package/es/custom/src/hook.js +1 -0
  4. package/es/custom/src/panel.js +207 -45
  5. package/es/custom/style.css +326 -80
  6. package/es/export/src/export-panel.js +1 -1
  7. package/es/export/src/import-panel.js +1 -1
  8. package/es/icon/style.css +1 -1
  9. package/es/input/style.css +0 -1
  10. package/es/loading/src/loading.js +1 -1
  11. package/es/loading/style.css +1 -1
  12. package/es/locale/lang/en-US.js +18 -7
  13. package/es/locale/lang/es-ES.js +18 -7
  14. package/es/locale/lang/ja-JP.js +18 -6
  15. package/es/locale/lang/pt-BR.js +18 -7
  16. package/es/locale/lang/zh-CN.js +18 -7
  17. package/es/locale/lang/zh-TC.js +18 -7
  18. package/es/modal/src/modal.js +1 -1
  19. package/es/radio/src/group.js +7 -1
  20. package/es/style.css +1 -1
  21. package/es/style.min.css +1 -1
  22. package/es/table/src/columnInfo.js +3 -3
  23. package/es/table/src/table.js +60 -36
  24. package/es/table/style.css +4 -4
  25. package/es/tools/log.js +1 -1
  26. package/es/v-x-e-table/index.js +1 -1
  27. package/es/v-x-e-table/style.css +1 -1
  28. package/es/vxe-button/style.css +6 -6
  29. package/es/vxe-input/style.css +0 -1
  30. package/es/vxe-loading/style.css +1 -1
  31. package/es/vxe-table/style.css +4 -4
  32. package/es/vxe-table-custom-module/style.css +326 -80
  33. package/lib/button/style/style.css +6 -6
  34. package/lib/button/style/style.min.css +1 -1
  35. package/lib/checkbox/src/group.js +7 -1
  36. package/lib/checkbox/src/group.min.js +1 -1
  37. package/lib/custom/src/hook.js +1 -0
  38. package/lib/custom/src/hook.min.js +1 -1
  39. package/lib/custom/src/panel.js +185 -30
  40. package/lib/custom/src/panel.min.js +1 -1
  41. package/lib/custom/style/style.css +326 -80
  42. package/lib/custom/style/style.min.css +1 -1
  43. package/lib/export/src/export-panel.js +1 -1
  44. package/lib/export/src/export-panel.min.js +1 -1
  45. package/lib/export/src/import-panel.js +1 -1
  46. package/lib/export/src/import-panel.min.js +1 -1
  47. package/lib/icon/style/style.css +1 -1
  48. package/lib/icon/style/style.min.css +1 -1
  49. package/lib/index.umd.js +288 -84
  50. package/lib/index.umd.min.js +1 -1
  51. package/lib/input/style/style.css +0 -1
  52. package/lib/input/style/style.min.css +1 -1
  53. package/lib/loading/src/loading.js +1 -1
  54. package/lib/loading/src/loading.min.js +1 -1
  55. package/lib/loading/style/style.css +1 -1
  56. package/lib/loading/style/style.min.css +1 -1
  57. package/lib/locale/lang/en-US.js +18 -7
  58. package/lib/locale/lang/en-US.min.js +1 -1
  59. package/lib/locale/lang/en-US.umd.js +18 -7
  60. package/lib/locale/lang/es-ES.js +18 -7
  61. package/lib/locale/lang/es-ES.min.js +1 -1
  62. package/lib/locale/lang/es-ES.umd.js +18 -7
  63. package/lib/locale/lang/ja-JP.js +18 -6
  64. package/lib/locale/lang/ja-JP.min.js +1 -1
  65. package/lib/locale/lang/ja-JP.umd.js +18 -6
  66. package/lib/locale/lang/pt-BR.js +18 -7
  67. package/lib/locale/lang/pt-BR.min.js +1 -1
  68. package/lib/locale/lang/pt-BR.umd.js +18 -7
  69. package/lib/locale/lang/zh-CN.js +18 -7
  70. package/lib/locale/lang/zh-CN.min.js +1 -1
  71. package/lib/locale/lang/zh-CN.umd.js +18 -7
  72. package/lib/locale/lang/zh-HK.min.js +1 -1
  73. package/lib/locale/lang/zh-HK.umd.js +18 -7
  74. package/lib/locale/lang/zh-MO.min.js +1 -1
  75. package/lib/locale/lang/zh-MO.umd.js +18 -7
  76. package/lib/locale/lang/zh-TC.js +18 -7
  77. package/lib/locale/lang/zh-TC.min.js +1 -1
  78. package/lib/locale/lang/zh-TC.umd.js +18 -7
  79. package/lib/locale/lang/zh-TW.min.js +1 -1
  80. package/lib/locale/lang/zh-TW.umd.js +18 -7
  81. package/lib/modal/src/modal.js +1 -1
  82. package/lib/modal/src/modal.min.js +1 -1
  83. package/lib/radio/src/group.js +7 -1
  84. package/lib/radio/src/group.min.js +1 -1
  85. package/lib/style.css +1 -1
  86. package/lib/style.min.css +1 -1
  87. package/lib/table/src/columnInfo.js +3 -3
  88. package/lib/table/src/columnInfo.min.js +1 -1
  89. package/lib/table/src/table.js +61 -36
  90. package/lib/table/src/table.min.js +1 -1
  91. package/lib/table/style/style.css +4 -4
  92. package/lib/table/style/style.min.css +1 -1
  93. package/lib/tools/log.js +1 -1
  94. package/lib/tools/log.min.js +1 -1
  95. package/lib/v-x-e-table/index.js +1 -1
  96. package/lib/v-x-e-table/index.min.js +1 -1
  97. package/lib/v-x-e-table/style/style.css +1 -1
  98. package/lib/v-x-e-table/style/style.min.css +1 -1
  99. package/lib/vxe-button/style/style.css +6 -6
  100. package/lib/vxe-button/style/style.min.css +1 -1
  101. package/lib/vxe-input/style/style.css +0 -1
  102. package/lib/vxe-input/style/style.min.css +1 -1
  103. package/lib/vxe-loading/style/style.css +1 -1
  104. package/lib/vxe-loading/style/style.min.css +1 -1
  105. package/lib/vxe-table/style/style.css +4 -4
  106. package/lib/vxe-table/style/style.min.css +1 -1
  107. package/lib/vxe-table-custom-module/style/style.css +326 -80
  108. package/lib/vxe-table-custom-module/style/style.min.css +1 -1
  109. package/package.json +1 -1
  110. package/packages/checkbox/src/group.ts +8 -1
  111. package/packages/custom/src/hook.ts +1 -0
  112. package/packages/custom/src/panel.ts +213 -45
  113. package/packages/export/src/export-panel.ts +1 -1
  114. package/packages/export/src/import-panel.ts +1 -1
  115. package/packages/loading/src/loading.ts +1 -1
  116. package/packages/locale/lang/en-US.ts +18 -7
  117. package/packages/locale/lang/es-ES.ts +18 -7
  118. package/packages/locale/lang/ja-JP.ts +18 -6
  119. package/packages/locale/lang/pt-BR.ts +18 -7
  120. package/packages/locale/lang/zh-CN.ts +18 -7
  121. package/packages/locale/lang/zh-TC.ts +18 -7
  122. package/packages/modal/src/modal.ts +1 -1
  123. package/packages/radio/src/group.ts +8 -1
  124. package/packages/table/src/columnInfo.ts +9 -6
  125. package/packages/table/src/table.ts +62 -39
  126. package/packages/table/src/util.ts +1 -1
  127. package/styles/base/common.scss +4 -4
  128. package/styles/button.scss +5 -5
  129. package/styles/custom.scss +192 -86
  130. package/styles/helpers/mixin.scss +1 -1
  131. package/styles/input.scss +1 -2
  132. package/styles/loading.scss +1 -1
  133. package/styles/modal.scss +2 -2
  134. package/styles/select.scss +1 -1
  135. package/styles/table.scss +2 -2
  136. package/types/table.d.ts +32 -22
  137. package/types/v-x-e-table/renderer.d.ts +1 -0
  138. /package/es/icon/style/{iconfont.1714102086168.ttf → iconfont.1714295309081.ttf} +0 -0
  139. /package/es/icon/style/{iconfont.1714102086168.woff → iconfont.1714295309081.woff} +0 -0
  140. /package/es/icon/style/{iconfont.1714102086168.woff2 → iconfont.1714295309081.woff2} +0 -0
  141. /package/es/{iconfont.1714102086168.ttf → iconfont.1714295309081.ttf} +0 -0
  142. /package/es/{iconfont.1714102086168.woff → iconfont.1714295309081.woff} +0 -0
  143. /package/es/{iconfont.1714102086168.woff2 → iconfont.1714295309081.woff2} +0 -0
  144. /package/lib/icon/style/{iconfont.1714102086168.ttf → iconfont.1714295309081.ttf} +0 -0
  145. /package/lib/icon/style/{iconfont.1714102086168.woff → iconfont.1714295309081.woff} +0 -0
  146. /package/lib/icon/style/{iconfont.1714102086168.woff2 → iconfont.1714295309081.woff2} +0 -0
  147. /package/lib/{iconfont.1714102086168.ttf → iconfont.1714295309081.ttf} +0 -0
  148. /package/lib/{iconfont.1714102086168.woff → iconfont.1714295309081.woff} +0 -0
  149. /package/lib/{iconfont.1714102086168.woff2 → iconfont.1714295309081.woff2} +0 -0
@@ -128,12 +128,12 @@ class ColumnInfo {
128
128
  rowSpan: 1,
129
129
  // 跨列
130
130
  colSpan: 1,
131
- // 数据排序-自定义排序
131
+ // 数据排序
132
132
  order: null,
133
- // 数据排序-用于多列的先后顺序
134
133
  sortTime: 0,
135
134
  // 列排序
136
- customOrder: 0,
135
+ sortNumber: 0,
136
+ renderSortNumber: 0,
137
137
  renderWidth: 0,
138
138
  renderHeight: 0,
139
139
  resizeWidth: 0,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ColumnInfo=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_formats=require("../../v-x-e-table/src/formats"),_util=require("./util"),_utils=require("../../tools/utils"),_log=require("../../tools/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}class ColumnInfo{title;type;field;constructor(e,r,{renderHeader:t,renderCell:l,renderFooter:o,renderData:i}={}){var d,s=e.xegrid,n=r.formatter,a=!_xeUtils.default.isBoolean(r.visible)||r.visible;"development"===process.env.NODE_ENV&&(d=["seq","checkbox","radio","expand","html"],r.type&&-1===d.indexOf(r.type)&&(0,_log.warnLog)("vxe.error.errProp",["type="+r.type,d.join(", ")]),(_xeUtils.default.isBoolean(r.cellRender)||r.cellRender&&!_xeUtils.default.isObject(r.cellRender))&&(0,_log.warnLog)("vxe.error.errProp",["column.cell-render="+r.cellRender,"column.cell-render={}"]),(_xeUtils.default.isBoolean(r.editRender)||r.editRender&&!_xeUtils.default.isObject(r.editRender))&&(0,_log.warnLog)("vxe.error.errProp",["column.edit-render="+r.editRender,"column.edit-render={}"]),r.cellRender&&r.editRender&&(0,_log.warnLog)("vxe.error.errConflicts",["column.cell-render","column.edit-render"]),"expand"===r.type&&(d=e["props"],d=d["treeConfig"],e=e.getComputeMaps()["computeTreeOpts"],e=e.value,d)&&(e.showLine||e.line)&&(0,_log.errLog)("vxe.error.errConflicts",["tree-config.showLine","column.type=expand"]),n)&&(_xeUtils.default.isString(n)?(d=_formats.formats.get(n)||_xeUtils.default[n])&&_xeUtils.default.isFunction(d.cellFormatMethod)||(0,_log.errLog)("vxe.error.notFormats",[n]):!_xeUtils.default.isArray(n)||(e=_formats.formats.get(n[0])||_xeUtils.default[n[0]])&&_xeUtils.default.isFunction(e.cellFormatMethod)||(0,_log.errLog)("vxe.error.notFormats",[n[0]])),Object.assign(this,{type:r.type,property:r.field,field:r.field,title:r.title,width:r.width,minWidth:r.minWidth,maxWidth:r.maxWidth,resizable:r.resizable,fixed:r.fixed,align:r.align,headerAlign:r.headerAlign,footerAlign:r.footerAlign,showOverflow:r.showOverflow,showHeaderOverflow:r.showHeaderOverflow,showFooterOverflow:r.showFooterOverflow,className:r.className,headerClassName:r.headerClassName,footerClassName:r.footerClassName,formatter:n,sortable:r.sortable,sortBy:r.sortBy,sortType:r.sortType,filters:(0,_util.toFilters)(r.filters),filterMultiple:!_xeUtils.default.isBoolean(r.filterMultiple)||r.filterMultiple,filterMethod:r.filterMethod,filterResetMethod:r.filterResetMethod,filterRecoverMethod:r.filterRecoverMethod,filterRender:r.filterRender,treeNode:r.treeNode,cellType:r.cellType,cellRender:r.cellRender,editRender:r.editRender,contentRender:r.contentRender,headerExportMethod:r.headerExportMethod,exportMethod:r.exportMethod,footerExportMethod:r.footerExportMethod,titleHelp:r.titleHelp,titlePrefix:r.titlePrefix,titleSuffix:r.titleSuffix,params:r.params,id:r.colId||_xeUtils.default.uniqueId("col_"),parentId:null,visible:a,halfVisible:!1,defaultVisible:a,defaultFixed:r.fixed,checked:!1,halfChecked:!1,disabled:!1,level:1,rowSpan:1,colSpan:1,order:null,sortTime:0,customOrder:0,renderWidth:0,renderHeight:0,resizeWidth:0,renderLeft:0,renderArgs:[],model:{},renderHeader:t||r.renderHeader,renderCell:l||r.renderCell,renderFooter:o||r.renderFooter,renderData:i,slots:r.slots}),s&&(d=s.getComputeMaps()["computeProxyOpts"],(e=d.value).beforeColumn)&&e.beforeColumn({$grid:s,column:this})}getTitle(){return(0,_utils.getFuncText)(this.title||("seq"===this.type?_conf.default.i18n("vxe.table.seqTitle"):""))}getKey(){return this.field||(this.type?"type="+this.type:null)}update(e,r){"filters"!==e&&("field"===e&&(this.property=r),this[e]=r)}}exports.ColumnInfo=ColumnInfo;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ColumnInfo=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_formats=require("../../v-x-e-table/src/formats"),_util=require("./util"),_utils=require("../../tools/utils"),_log=require("../../tools/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}class ColumnInfo{title;type;field;constructor(e,r,{renderHeader:t,renderCell:l,renderFooter:o,renderData:i}={}){var d,s=e.xegrid,n=r.formatter,a=!_xeUtils.default.isBoolean(r.visible)||r.visible;"development"===process.env.NODE_ENV&&(d=["seq","checkbox","radio","expand","html"],r.type&&-1===d.indexOf(r.type)&&(0,_log.warnLog)("vxe.error.errProp",["type="+r.type,d.join(", ")]),(_xeUtils.default.isBoolean(r.cellRender)||r.cellRender&&!_xeUtils.default.isObject(r.cellRender))&&(0,_log.warnLog)("vxe.error.errProp",["column.cell-render="+r.cellRender,"column.cell-render={}"]),(_xeUtils.default.isBoolean(r.editRender)||r.editRender&&!_xeUtils.default.isObject(r.editRender))&&(0,_log.warnLog)("vxe.error.errProp",["column.edit-render="+r.editRender,"column.edit-render={}"]),r.cellRender&&r.editRender&&(0,_log.warnLog)("vxe.error.errConflicts",["column.cell-render","column.edit-render"]),"expand"===r.type&&(d=e["props"],d=d["treeConfig"],e=e.getComputeMaps()["computeTreeOpts"],e=e.value,d)&&(e.showLine||e.line)&&(0,_log.errLog)("vxe.error.errConflicts",["tree-config.showLine","column.type=expand"]),n)&&(_xeUtils.default.isString(n)?(d=_formats.formats.get(n)||_xeUtils.default[n])&&_xeUtils.default.isFunction(d.cellFormatMethod)||(0,_log.errLog)("vxe.error.notFormats",[n]):!_xeUtils.default.isArray(n)||(e=_formats.formats.get(n[0])||_xeUtils.default[n[0]])&&_xeUtils.default.isFunction(e.cellFormatMethod)||(0,_log.errLog)("vxe.error.notFormats",[n[0]])),Object.assign(this,{type:r.type,property:r.field,field:r.field,title:r.title,width:r.width,minWidth:r.minWidth,maxWidth:r.maxWidth,resizable:r.resizable,fixed:r.fixed,align:r.align,headerAlign:r.headerAlign,footerAlign:r.footerAlign,showOverflow:r.showOverflow,showHeaderOverflow:r.showHeaderOverflow,showFooterOverflow:r.showFooterOverflow,className:r.className,headerClassName:r.headerClassName,footerClassName:r.footerClassName,formatter:n,sortable:r.sortable,sortBy:r.sortBy,sortType:r.sortType,filters:(0,_util.toFilters)(r.filters),filterMultiple:!_xeUtils.default.isBoolean(r.filterMultiple)||r.filterMultiple,filterMethod:r.filterMethod,filterResetMethod:r.filterResetMethod,filterRecoverMethod:r.filterRecoverMethod,filterRender:r.filterRender,treeNode:r.treeNode,cellType:r.cellType,cellRender:r.cellRender,editRender:r.editRender,contentRender:r.contentRender,headerExportMethod:r.headerExportMethod,exportMethod:r.exportMethod,footerExportMethod:r.footerExportMethod,titleHelp:r.titleHelp,titlePrefix:r.titlePrefix,titleSuffix:r.titleSuffix,params:r.params,id:r.colId||_xeUtils.default.uniqueId("col_"),parentId:null,visible:a,halfVisible:!1,defaultVisible:a,defaultFixed:r.fixed,checked:!1,halfChecked:!1,disabled:!1,level:1,rowSpan:1,colSpan:1,order:null,sortTime:0,sortNumber:0,renderSortNumber:0,renderWidth:0,renderHeight:0,resizeWidth:0,renderLeft:0,renderArgs:[],model:{},renderHeader:t||r.renderHeader,renderCell:l||r.renderCell,renderFooter:o||r.renderFooter,renderData:i,slots:r.slots}),s&&(d=s.getComputeMaps()["computeProxyOpts"],(e=d.value).beforeColumn)&&e.beforeColumn({$grid:s,column:this})}getTitle(){return(0,_utils.getFuncText)(this.title||("seq"===this.type?_conf.default.i18n("vxe.table.seqTitle"):""))}getKey(){return this.field||(this.type?"type="+this.type:null)}update(e,r){"filters"!==e&&("field"===e&&(this.property=r),this[e]=r)}}exports.ColumnInfo=ColumnInfo;
@@ -28,7 +28,7 @@ const isWebkit = _dom.browse['-webkit'] && !_dom.browse.edge;
28
28
  const resizableStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_WIDTH';
29
29
  const visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
30
30
  const fixedStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_FIXED';
31
- const orderStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_ORDER';
31
+ const sortStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_SORT';
32
32
  var _default = exports.default = (0, _vue.defineComponent)({
33
33
  name: 'VxeTable',
34
34
  props: _props.default,
@@ -130,6 +130,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
130
130
  visible: false,
131
131
  maxHeight: 0
132
132
  },
133
+ customColumnList: [],
133
134
  // 当前选中的筛选列
134
135
  filterStore: {
135
136
  isAllSelected: false,
@@ -491,10 +492,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
491
492
  });
492
493
  const computeFixedColumnSize = (0, _vue.computed)(() => {
493
494
  const {
494
- tableFullColumn
495
+ collectColumn
495
496
  } = internalData;
496
497
  let fixedSize = 0;
497
- tableFullColumn.forEach(column => {
498
+ // 只判断第一层
499
+ collectColumn.forEach(column => {
498
500
  if (column.fixed) {
499
501
  fixedSize++;
500
502
  }
@@ -901,11 +903,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
901
903
  const {
902
904
  storage
903
905
  } = customOpts;
904
- const isCustomResizable = storage === true || storage && storage.resizable;
905
- const isCustomVisible = storage === true || storage && storage.visible;
906
- const isCustomFixed = storage === true || storage && storage.fixed;
907
- const isCustomOrder = storage === true || storage && storage.order;
908
- if (customConfig && (isCustomResizable || isCustomVisible || isCustomFixed || isCustomOrder)) {
906
+ const isAllCustom = storage === true;
907
+ const storageOpts = isAllCustom ? {} : Object.assign({}, storage || {});
908
+ const isCustomResizable = isAllCustom || storageOpts.resizable;
909
+ const isCustomVisible = isAllCustom || storageOpts.visible;
910
+ const isCustomFixed = isAllCustom || storageOpts.fixed;
911
+ const isCustomSort = isAllCustom || storageOpts.sort;
912
+ if (customConfig && (isCustomResizable || isCustomVisible || isCustomFixed || isCustomSort)) {
909
913
  const customMap = {};
910
914
  if (!id) {
911
915
  (0, _log.errLog)('vxe.error.reqProp', ['id']);
@@ -940,18 +944,20 @@ var _default = exports.default = (0, _vue.defineComponent)({
940
944
  }
941
945
  }
942
946
  // 自定义顺序
943
- if (isCustomOrder) {
944
- const columnOrderStorage = getCustomStorageMap(orderStorageKey)[id];
945
- if (columnOrderStorage) {
946
- // const colOrderSeqs = columnOrderStorage.split(',')
947
- // colOrderSeqs.forEach((orderConf: any) => {
948
- // const [colKey, order] = orderConf.split('|')
949
- // if (customMap[colKey]) {
950
- // customMap[colKey].order = order
951
- // } else {
952
- // customMap[colKey] = { order }
953
- // }
954
- // })
947
+ if (isCustomSort) {
948
+ const columnSortStorage = getCustomStorageMap(sortStorageKey)[id];
949
+ if (columnSortStorage) {
950
+ const colOrderSeqs = columnSortStorage.split(',');
951
+ colOrderSeqs.forEach(orderConf => {
952
+ const [colKey, sortNumber] = orderConf.split('|');
953
+ if (customMap[colKey]) {
954
+ customMap[colKey].sortNumber = sortNumber;
955
+ } else {
956
+ customMap[colKey] = {
957
+ sortNumber
958
+ };
959
+ }
960
+ });
955
961
  }
956
962
  }
957
963
  // 自定义隐藏列
@@ -992,7 +998,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
992
998
  visible,
993
999
  resizeWidth,
994
1000
  fixed,
995
- order
1001
+ sortNumber
996
1002
  }, colKey) => {
997
1003
  const column = keyMap[colKey];
998
1004
  if (column) {
@@ -1005,8 +1011,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
1005
1011
  if (fixed) {
1006
1012
  column.fixed = fixed;
1007
1013
  }
1008
- if (order) {
1009
- column.customOrder = order;
1014
+ if (sortNumber) {
1015
+ column.renderSortNumber = Number(sortNumber);
1010
1016
  }
1011
1017
  }
1012
1018
  });
@@ -1016,7 +1022,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1016
1022
  * 更新数据列的 Map
1017
1023
  * 牺牲数据组装的耗时,用来换取使用过程中的流畅
1018
1024
  */
1019
- const cacheColumnMap = () => {
1025
+ const cacheColumnMap = isInit => {
1020
1026
  const {
1021
1027
  tableFullColumn,
1022
1028
  collectColumn
@@ -1105,6 +1111,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
1105
1111
  if (fullColumnIdData[colid]) {
1106
1112
  (0, _log.errLog)('vxe.error.colRepet', ['colId', colid]);
1107
1113
  }
1114
+ if (isInit) {
1115
+ column.sortNumber = index;
1116
+ }
1108
1117
  fullColumnIdData[colid] = rest;
1109
1118
  };
1110
1119
  if (isGroup) {
@@ -1480,7 +1489,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1480
1489
  column,
1481
1490
  field,
1482
1491
  property: field,
1483
- order,
1492
+ order: order,
1484
1493
  sortTime: column.sortTime
1485
1494
  });
1486
1495
  }
@@ -2867,7 +2876,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2867
2876
  internalData.collectColumn = collectColumn;
2868
2877
  const tableFullColumn = getColumnList(collectColumn);
2869
2878
  internalData.tableFullColumn = tableFullColumn;
2870
- cacheColumnMap();
2879
+ cacheColumnMap(true);
2871
2880
  restoreCustomStorage();
2872
2881
  parseColumns().then(() => {
2873
2882
  if (reactData.scrollXLoad) {
@@ -3556,7 +3565,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
3556
3565
  */
3557
3566
  getColumnById(colid) {
3558
3567
  const fullColumnIdData = internalData.fullColumnIdData;
3559
- return fullColumnIdData[colid] ? fullColumnIdData[colid].column : null;
3568
+ return colid && fullColumnIdData[colid] ? fullColumnIdData[colid].column : null;
3560
3569
  },
3561
3570
  /**
3562
3571
  * 根据列的字段名获取列
@@ -3564,7 +3573,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
3564
3573
  */
3565
3574
  getColumnByField(field) {
3566
3575
  const fullColumnFieldData = internalData.fullColumnFieldData;
3567
- return fullColumnFieldData[field] ? fullColumnFieldData[field].column : null;
3576
+ return field && fullColumnFieldData[field] ? fullColumnFieldData[field].column : null;
3568
3577
  },
3569
3578
  /**
3570
3579
  * 获取当前表格的列
@@ -3664,7 +3673,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
3664
3673
  const {
3665
3674
  fullDataRowIdData
3666
3675
  } = internalData;
3667
- const rowid = _xeUtils.default.eqNull(cellValue) ? '' : encodeURIComponent(cellValue);
3676
+ const rowid = _xeUtils.default.eqNull(cellValue) ? '' : encodeURIComponent(cellValue || '');
3668
3677
  return fullDataRowIdData[rowid] ? fullDataRowIdData[rowid].row : null;
3669
3678
  },
3670
3679
  /**
@@ -3801,7 +3810,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
3801
3810
  const opts = Object.assign({
3802
3811
  visible: true,
3803
3812
  resizable: options === true,
3804
- fixed: options === true
3813
+ fixed: options === true,
3814
+ sort: options === true
3805
3815
  }, options);
3806
3816
  _xeUtils.default.eachTree(collectColumn, column => {
3807
3817
  if (opts.resizable) {
@@ -3810,6 +3820,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
3810
3820
  if (opts.fixed) {
3811
3821
  column.fixed = column.defaultFixed;
3812
3822
  }
3823
+ if (opts.sort) {
3824
+ column.renderSortNumber = column.sortNumber;
3825
+ }
3813
3826
  if (!checkMethod || checkMethod({
3814
3827
  column
3815
3828
  })) {
@@ -3827,8 +3840,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
3827
3840
  /**
3828
3841
  * 刷新列信息
3829
3842
  * 将固定的列左边、右边分别靠边
3843
+ * 如果传 true 则会检查列顺序并排序
3830
3844
  */
3831
- refreshColumn() {
3845
+ refreshColumn(resiveOrder) {
3846
+ if (resiveOrder) {
3847
+ const columnList = _xeUtils.default.orderBy(internalData.collectColumn, 'renderSortNumber');
3848
+ internalData.collectColumn = columnList;
3849
+ const tableFullColumn = getColumnList(columnList);
3850
+ internalData.tableFullColumn = tableFullColumn;
3851
+ cacheColumnMap();
3852
+ }
3832
3853
  return parseColumns().then(() => {
3833
3854
  return tableMethods.refreshScroll();
3834
3855
  }).then(() => {
@@ -4428,7 +4449,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
4428
4449
  column,
4429
4450
  field,
4430
4451
  property: field,
4431
- order,
4452
+ order: order,
4432
4453
  sortTime: column.sortTime
4433
4454
  });
4434
4455
  }
@@ -6087,7 +6108,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
6087
6108
  const {
6088
6109
  storage
6089
6110
  } = customOpts;
6090
- const isCustomFixed = storage === true || storage && storage.fixed;
6111
+ const isAllStorage = storage === true;
6112
+ const storageOpts = isAllStorage ? {} : Object.assign({}, storage || {});
6113
+ const isCustomFixed = isAllStorage || storageOpts.fixed;
6091
6114
  if (customConfig && isCustomFixed) {
6092
6115
  const columnFixedStorageMap = getCustomStorageMap(fixedStorageKey);
6093
6116
  const colFixeds = [];
@@ -6120,7 +6143,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
6120
6143
  checkMethod,
6121
6144
  storage
6122
6145
  } = customOpts;
6123
- const isCustomVisible = storage === true || storage && storage.visible;
6146
+ const isAllStorage = storage === true;
6147
+ const storageOpts = isAllStorage ? {} : Object.assign({}, storage || {});
6148
+ const isCustomVisible = isAllStorage || storageOpts.visible;
6124
6149
  if (customConfig && isCustomVisible) {
6125
6150
  const columnVisibleStorageMap = getCustomStorageMap(visibleStorageKey);
6126
6151
  const colHides = [];
@@ -6153,7 +6178,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
6153
6178
  handleCustom() {
6154
6179
  tablePrivateMethods.saveCustomVisible();
6155
6180
  tablePrivateMethods.analyColumnWidth();
6156
- return tableMethods.refreshColumn();
6181
+ return tableMethods.refreshColumn(true);
6157
6182
  },
6158
6183
  handleUpdateDataQueue() {
6159
6184
  reactData.upDataFlag++;
@@ -7782,7 +7807,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7782
7807
  ref: refElem,
7783
7808
  class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, {
7784
7809
  [`size--${vSize}`]: vSize,
7785
- [`vaild-msg--${validOpts.msgMode}`]: !!editRules,
7810
+ [`valid-msg--${validOpts.msgMode}`]: !!editRules,
7786
7811
  'vxe-editable': !!editConfig,
7787
7812
  'old-cell-valid': editRules && _conf.default.cellVaildMode === 'obsolete',
7788
7813
  'cell--highlight': highlightCell,