vxe-table 4.13.51 → 4.13.53

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 (143) hide show
  1. package/README.md +1 -3
  2. package/es/locale/lang/ar-EG.js +1 -0
  3. package/es/locale/lang/de-DE.js +1 -0
  4. package/es/locale/lang/en-US.js +1 -0
  5. package/es/locale/lang/es-ES.js +1 -0
  6. package/es/locale/lang/fr-FR.js +1 -0
  7. package/es/locale/lang/hu-HU.js +1 -0
  8. package/es/locale/lang/hy-AM.js +1 -0
  9. package/es/locale/lang/id-ID.js +1 -0
  10. package/es/locale/lang/it-IT.js +1 -0
  11. package/es/locale/lang/ja-JP.js +1 -0
  12. package/es/locale/lang/ko-KR.js +1 -0
  13. package/es/locale/lang/ms-MY.js +1 -0
  14. package/es/locale/lang/nb-NO.js +1 -0
  15. package/es/locale/lang/pt-BR.js +1 -0
  16. package/es/locale/lang/ru-RU.js +1 -0
  17. package/es/locale/lang/th-TH.js +1 -0
  18. package/es/locale/lang/ug-CN.js +1 -0
  19. package/es/locale/lang/uk-UA.js +1 -0
  20. package/es/locale/lang/uz-UZ.js +1 -0
  21. package/es/locale/lang/vi-VN.js +1 -0
  22. package/es/locale/lang/zh-CHT.js +1 -0
  23. package/es/locale/lang/zh-CN.js +1 -0
  24. package/es/style.css +1 -1
  25. package/es/table/module/filter/hook.js +1 -1
  26. package/es/table/src/footer.js +2 -2
  27. package/es/table/src/table.js +7 -0
  28. package/es/ui/index.js +1 -1
  29. package/es/ui/src/log.js +1 -1
  30. package/lib/index.umd.js +9 -7
  31. package/lib/index.umd.min.js +1 -1
  32. package/lib/locale/lang/ar-EG.js +1 -0
  33. package/lib/locale/lang/ar-EG.min.js +1 -1
  34. package/lib/locale/lang/ar-EG.umd.js +1 -0
  35. package/lib/locale/lang/de-DE.js +1 -0
  36. package/lib/locale/lang/de-DE.min.js +1 -1
  37. package/lib/locale/lang/de-DE.umd.js +1 -0
  38. package/lib/locale/lang/en-US.js +1 -0
  39. package/lib/locale/lang/en-US.min.js +1 -1
  40. package/lib/locale/lang/en-US.umd.js +1 -0
  41. package/lib/locale/lang/es-ES.js +1 -0
  42. package/lib/locale/lang/es-ES.min.js +1 -1
  43. package/lib/locale/lang/es-ES.umd.js +1 -0
  44. package/lib/locale/lang/fr-FR.js +1 -0
  45. package/lib/locale/lang/fr-FR.min.js +1 -1
  46. package/lib/locale/lang/fr-FR.umd.js +1 -0
  47. package/lib/locale/lang/hu-HU.js +1 -0
  48. package/lib/locale/lang/hu-HU.min.js +1 -1
  49. package/lib/locale/lang/hu-HU.umd.js +1 -0
  50. package/lib/locale/lang/hy-AM.js +1 -0
  51. package/lib/locale/lang/hy-AM.min.js +1 -1
  52. package/lib/locale/lang/hy-AM.umd.js +1 -0
  53. package/lib/locale/lang/id-ID.js +1 -0
  54. package/lib/locale/lang/id-ID.min.js +1 -1
  55. package/lib/locale/lang/id-ID.umd.js +1 -0
  56. package/lib/locale/lang/it-IT.js +1 -0
  57. package/lib/locale/lang/it-IT.min.js +1 -1
  58. package/lib/locale/lang/it-IT.umd.js +1 -0
  59. package/lib/locale/lang/ja-JP.js +1 -0
  60. package/lib/locale/lang/ja-JP.min.js +1 -1
  61. package/lib/locale/lang/ja-JP.umd.js +1 -0
  62. package/lib/locale/lang/ko-KR.js +1 -0
  63. package/lib/locale/lang/ko-KR.min.js +1 -1
  64. package/lib/locale/lang/ko-KR.umd.js +1 -0
  65. package/lib/locale/lang/ms-MY.js +1 -0
  66. package/lib/locale/lang/ms-MY.min.js +1 -1
  67. package/lib/locale/lang/ms-MY.umd.js +1 -0
  68. package/lib/locale/lang/nb-NO.js +1 -0
  69. package/lib/locale/lang/nb-NO.min.js +1 -1
  70. package/lib/locale/lang/nb-NO.umd.js +1 -0
  71. package/lib/locale/lang/pt-BR.js +1 -0
  72. package/lib/locale/lang/pt-BR.min.js +1 -1
  73. package/lib/locale/lang/pt-BR.umd.js +1 -0
  74. package/lib/locale/lang/ru-RU.js +1 -0
  75. package/lib/locale/lang/ru-RU.min.js +1 -1
  76. package/lib/locale/lang/ru-RU.umd.js +1 -0
  77. package/lib/locale/lang/th-TH.js +1 -0
  78. package/lib/locale/lang/th-TH.min.js +1 -1
  79. package/lib/locale/lang/th-TH.umd.js +1 -0
  80. package/lib/locale/lang/ug-CN.js +1 -0
  81. package/lib/locale/lang/ug-CN.min.js +1 -1
  82. package/lib/locale/lang/ug-CN.umd.js +1 -0
  83. package/lib/locale/lang/uk-UA.js +1 -0
  84. package/lib/locale/lang/uk-UA.min.js +1 -1
  85. package/lib/locale/lang/uk-UA.umd.js +1 -0
  86. package/lib/locale/lang/uz-UZ.js +1 -0
  87. package/lib/locale/lang/uz-UZ.min.js +1 -1
  88. package/lib/locale/lang/uz-UZ.umd.js +1 -0
  89. package/lib/locale/lang/vi-VN.js +1 -0
  90. package/lib/locale/lang/vi-VN.min.js +1 -1
  91. package/lib/locale/lang/vi-VN.umd.js +1 -0
  92. package/lib/locale/lang/zh-CHT.js +1 -0
  93. package/lib/locale/lang/zh-CHT.min.js +1 -1
  94. package/lib/locale/lang/zh-CHT.umd.js +1 -0
  95. package/lib/locale/lang/zh-CN.js +1 -0
  96. package/lib/locale/lang/zh-CN.min.js +1 -1
  97. package/lib/locale/lang/zh-CN.umd.js +1 -0
  98. package/lib/style.css +1 -1
  99. package/lib/table/module/filter/hook.js +1 -1
  100. package/lib/table/module/filter/hook.min.js +1 -1
  101. package/lib/table/src/footer.js +3 -2
  102. package/lib/table/src/footer.min.js +1 -1
  103. package/lib/table/src/table.js +2 -2
  104. package/lib/table/src/table.min.js +1 -1
  105. package/lib/ui/index.js +1 -1
  106. package/lib/ui/index.min.js +1 -1
  107. package/lib/ui/src/log.js +1 -1
  108. package/lib/ui/src/log.min.js +1 -1
  109. package/package.json +2 -2
  110. package/packages/locale/lang/ar-EG.ts +1 -0
  111. package/packages/locale/lang/de-DE.ts +1 -0
  112. package/packages/locale/lang/en-US.ts +1 -0
  113. package/packages/locale/lang/es-ES.ts +1 -0
  114. package/packages/locale/lang/fr-FR.ts +1 -0
  115. package/packages/locale/lang/hu-HU.ts +1 -0
  116. package/packages/locale/lang/hy-AM.ts +1 -0
  117. package/packages/locale/lang/id-ID.ts +1 -0
  118. package/packages/locale/lang/it-IT.ts +1 -0
  119. package/packages/locale/lang/ja-JP.ts +1 -0
  120. package/packages/locale/lang/ko-KR.ts +1 -0
  121. package/packages/locale/lang/ms-MY.ts +1 -0
  122. package/packages/locale/lang/nb-NO.ts +1 -0
  123. package/packages/locale/lang/pt-BR.ts +1 -0
  124. package/packages/locale/lang/ru-RU.ts +1 -0
  125. package/packages/locale/lang/th-TH.ts +1 -0
  126. package/packages/locale/lang/ug-CN.ts +1 -0
  127. package/packages/locale/lang/uk-UA.ts +1 -0
  128. package/packages/locale/lang/uz-UZ.ts +1 -0
  129. package/packages/locale/lang/vi-VN.ts +1 -0
  130. package/packages/locale/lang/zh-CHT.ts +1 -0
  131. package/packages/locale/lang/zh-CN.ts +1 -0
  132. package/packages/table/module/filter/hook.ts +1 -1
  133. package/packages/table/src/footer.ts +2 -2
  134. package/packages/table/src/table.ts +7 -0
  135. package/README.en.md +0 -189
  136. package/README.ja-JP.md +0 -189
  137. package/README.zh-TW.md +0 -188
  138. /package/es/{iconfont.1751422680625.ttf → iconfont.1751969999028.ttf} +0 -0
  139. /package/es/{iconfont.1751422680625.woff → iconfont.1751969999028.woff} +0 -0
  140. /package/es/{iconfont.1751422680625.woff2 → iconfont.1751969999028.woff2} +0 -0
  141. /package/lib/{iconfont.1751422680625.ttf → iconfont.1751969999028.ttf} +0 -0
  142. /package/lib/{iconfont.1751422680625.woff → iconfont.1751969999028.woff} +0 -0
  143. /package/lib/{iconfont.1751422680625.woff2 → iconfont.1751969999028.woff2} +0 -0
package/lib/ui/index.js CHANGED
@@ -13,7 +13,7 @@ Object.defineProperty(exports, "VxeUI", {
13
13
  exports.version = exports.validators = exports.use = exports.t = exports.setup = exports.setTheme = exports.setLanguage = exports.setIcon = exports.setI18n = exports.setConfig = exports.saveFile = exports.renderer = exports.readFile = exports.print = exports.modal = exports.menus = exports.log = exports.interceptor = exports.hooks = exports.globalResize = exports.globalEvents = exports.getTheme = exports.getIcon = exports.getI18n = exports.getConfig = exports.formats = exports.default = exports.config = exports.commands = exports.clipboard = exports._t = void 0;
14
14
  var _core = require("@vxe-ui/core");
15
15
  var _utils = require("./src/utils");
16
- const version = exports.version = "4.13.51";
16
+ const version = exports.version = "4.13.53";
17
17
  _core.VxeUI.version = version;
18
18
  _core.VxeUI.tableVersion = version;
19
19
  _core.VxeUI.setConfig({
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.VXETable=void 0,Object.defineProperty(exports,"VxeUI",{enumerable:!0,get:function(){return _core.VxeUI}}),exports.version=exports.validators=exports.use=exports.t=exports.setup=exports.setTheme=exports.setLanguage=exports.setIcon=exports.setI18n=exports.setConfig=exports.saveFile=exports.renderer=exports.readFile=exports.print=exports.modal=exports.menus=exports.log=exports.interceptor=exports.hooks=exports.globalResize=exports.globalEvents=exports.getTheme=exports.getIcon=exports.getI18n=exports.getConfig=exports.formats=exports.default=exports.config=exports.commands=exports.clipboard=exports._t=void 0;var _core=require("@vxe-ui/core"),_utils=require("./src/utils");let version=exports.version="4.13.51",iconPrefix=(_core.VxeUI.version=version,_core.VxeUI.tableVersion=version,_core.VxeUI.setConfig({emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,autoResize:!0,minHeight:144,resizeConfig:{},resizableConfig:{dragMode:"auto",showDragTip:!0,isSyncAutoHeight:!0,isSyncAutoWidth:!0,minHeight:18},radioConfig:{strict:!0},rowDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0,showDragTip:!0},columnDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0,showDragTip:!0},checkboxConfig:{strict:!0},tooltipConfig:{enterable:!0},validConfig:{showMessage:!0,autoClear:!0,autoPos:!0,message:"inline",msgMode:"single",theme:"beautify"},columnConfig:{maxFixedSize:4},cellConfig:{padding:!0},headerCellConfig:{height:"unset"},footerCellConfig:{height:"unset"},customConfig:{allowVisible:!0,allowResizable:!0,allowFixed:!0,allowSort:!0,showFooter:!0,placement:"top-right",storeOptions:{visible:!0,resizable:!0,sort:!0,fixed:!0},modalOptions:{showMaximize:!0,mask:!0,lockView:!0,resize:!0,escClosable:!0},drawerOptions:{mask:!0,lockView:!0,escClosable:!0,resize:!0}},sortConfig:{showIcon:!0,allowClear:!0,allowBtn:!0,iconLayout:"vertical"},filterConfig:{showIcon:!0},aggregateConfig:{padding:!0,rowField:"id",parentField:"_X_ROW_PARENT_KEY",childrenField:"_X_ROW_CHILDREN",mapChildrenField:"_X_ROW_CHILD_LIST",indent:20,showIcon:!0,maxGroupSize:4,showAggFuncTitle:!0},treeConfig:{padding:!0,rowField:"id",parentField:"parentId",childrenField:"children",hasChildField:"hasChild",mapChildrenField:"_X_ROW_CHILD",indent:20,showIcon:!0},expandConfig:{showIcon:!0,mode:"fixed"},editConfig:{showIcon:!0,showAsterisk:!0,autoFocus:!0},importConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},exportConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},printConfig:{},mouseConfig:{extension:!0},keyboardConfig:{isAll:!0,isEsc:!0},areaConfig:{autoClear:!0,selectCellByHeader:!0,selectCellByBody:!0,extendDirection:{top:!0,left:!0,bottom:!0,right:!0}},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},virtualXConfig:{gt:24,preSize:1,oSize:0},virtualYConfig:{gt:100,preSize:1,oSize:0},scrollbarConfig:{}},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,showResponseMsg:!0,showActiveMsg:!0,props:{list:null,result:"result",total:"page.total",message:"message"}}},toolbar:{}}),"vxe-table-icon-"),setTheme=(_core.VxeUI.setIcon({TABLE_SORT_ASC:iconPrefix+"caret-up",TABLE_SORT_DESC:iconPrefix+"caret-down",TABLE_FILTER_NONE:iconPrefix+"funnel",TABLE_FILTER_MATCH:iconPrefix+"funnel",TABLE_EDIT:iconPrefix+"edit",TABLE_TITLE_PREFIX:iconPrefix+"question-circle-fill",TABLE_TITLE_SUFFIX:iconPrefix+"question-circle-fill",TABLE_TREE_LOADED:iconPrefix+"spinner roll",TABLE_TREE_OPEN:iconPrefix+"caret-right rotate90",TABLE_TREE_CLOSE:iconPrefix+"caret-right",TABLE_EXPAND_LOADED:iconPrefix+"spinner roll",TABLE_EXPAND_OPEN:iconPrefix+"arrow-right rotate90",TABLE_EXPAND_CLOSE:iconPrefix+"arrow-right",TABLE_CHECKBOX_CHECKED:iconPrefix+"checkbox-checked-fill",TABLE_CHECKBOX_UNCHECKED:iconPrefix+"checkbox-unchecked",TABLE_CHECKBOX_INDETERMINATE:iconPrefix+"checkbox-indeterminate-fill",TABLE_CHECKBOX_DISABLED_UNCHECKED:iconPrefix+"checkbox-unchecked-fill",TABLE_RADIO_CHECKED:iconPrefix+"radio-checked-fill",TABLE_RADIO_UNCHECKED:iconPrefix+"radio-unchecked",TABLE_RADIO_DISABLED_UNCHECKED:iconPrefix+"radio-unchecked-fill",TABLE_CUSTOM_SORT:iconPrefix+"drag-handle",TABLE_MENU_OPTIONS:iconPrefix+"arrow-right",TABLE_DRAG_ROW:iconPrefix+"drag-handle",TABLE_DRAG_COLUMN:iconPrefix+"drag-handle",TABLE_DRAG_STATUS_ROW:iconPrefix+"sort",TABLE_DRAG_STATUS_SUB_ROW:iconPrefix+"add-sub",TABLE_DRAG_STATUS_AGG_GROUP:iconPrefix+"grouping",TABLE_DRAG_STATUS_AGG_VALUES:iconPrefix+"values",TABLE_DRAG_STATUS_COLUMN:iconPrefix+"swap",TABLE_DRAG_DISABLED:iconPrefix+"no-drop",TABLE_ROW_GROUP_OPEN:iconPrefix+"arrow-right rotate90",TABLE_ROW_GROUP_CLOSE:iconPrefix+"arrow-right",TABLE_AGGREGATE_GROUPING:iconPrefix+"grouping",TABLE_AGGREGATE_VALUES:iconPrefix+"values",TABLE_AGGREGATE_SORT:iconPrefix+"drag-handle",TABLE_AGGREGATE_DELETE:iconPrefix+"close",TOOLBAR_TOOLS_REFRESH:iconPrefix+"repeat",TOOLBAR_TOOLS_REFRESH_LOADING:iconPrefix+"repeat roll",TOOLBAR_TOOLS_IMPORT:iconPrefix+"upload",TOOLBAR_TOOLS_EXPORT:iconPrefix+"download",TOOLBAR_TOOLS_PRINT:iconPrefix+"print",TOOLBAR_TOOLS_FULLSCREEN:iconPrefix+"fullscreen",TOOLBAR_TOOLS_MINIMIZE:iconPrefix+"minimize",TOOLBAR_TOOLS_CUSTOM:iconPrefix+"custom-column",TOOLBAR_TOOLS_FIXED_LEFT:iconPrefix+"fixed-left",TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE:iconPrefix+"fixed-left-fill",TOOLBAR_TOOLS_FIXED_RIGHT:iconPrefix+"fixed-right",TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE:iconPrefix+"fixed-right-fill"}),exports.setTheme=_core.VxeUI.setTheme),getTheme=exports.getTheme=_core.VxeUI.getTheme,setConfig=exports.setConfig=_core.VxeUI.setConfig,getConfig=exports.getConfig=_core.VxeUI.getConfig,setIcon=exports.setIcon=_core.VxeUI.setIcon,getIcon=exports.getIcon=_core.VxeUI.getIcon,setLanguage=exports.setLanguage=_core.VxeUI.setLanguage,setI18n=exports.setI18n=_core.VxeUI.setI18n,getI18n=exports.getI18n=_core.VxeUI.getI18n,globalEvents=exports.globalEvents=_core.VxeUI.globalEvents,globalResize=exports.globalResize=_core.VxeUI.globalResize,renderer=exports.renderer=_core.VxeUI.renderer,validators=exports.validators=_core.VxeUI.validators,menus=exports.menus=_core.VxeUI.menus,formats=exports.formats=_core.VxeUI.formats,commands=exports.commands=_core.VxeUI.commands,interceptor=exports.interceptor=_core.VxeUI.interceptor,clipboard=exports.clipboard=_core.VxeUI.clipboard,log=exports.log=_core.VxeUI.log,hooks=exports.hooks=_core.VxeUI.hooks,use=exports.use=_core.VxeUI.use,setup=e=>_core.VxeUI.setConfig(e),config=(exports.setup=setup,_core.VxeUI.setup=setup,e=>_core.VxeUI.setConfig(e)),t=(exports.config=config,_core.VxeUI.config=config,(e,o)=>_core.VxeUI.getI18n(e,o)),_t=(exports.t=t,_core.VxeUI.t=t,(e,o)=>(0,_utils.getFuncText)(e,o)),VXETable=(exports._t=_t,_core.VxeUI._t=_t,exports.VXETable=_core.VxeUI),saveFile=e=>_core.VxeUI.saveFile(e),readFile=(exports.saveFile=saveFile,e=>_core.VxeUI.readFile(e)),print=(exports.readFile=readFile,e=>_core.VxeUI.print(e)),modal=(exports.print=print,exports.modal={get(e){return _core.VxeUI.modal.get(e)},close(e){return _core.VxeUI.modal.close(e)},open(e){return _core.VxeUI.modal.open(e)},alert(e,o,r){return _core.VxeUI.modal.alert(e,o,r)},confirm(e,o,r){return _core.VxeUI.modal.confirm(e,o,r)},message(e,o){return _core.VxeUI.modal.message(e,o)},notification(e,o,r){return _core.VxeUI.modal.notification(e,o,r)}});var _default=exports.default=_core.VxeUI;
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.VXETable=void 0,Object.defineProperty(exports,"VxeUI",{enumerable:!0,get:function(){return _core.VxeUI}}),exports.version=exports.validators=exports.use=exports.t=exports.setup=exports.setTheme=exports.setLanguage=exports.setIcon=exports.setI18n=exports.setConfig=exports.saveFile=exports.renderer=exports.readFile=exports.print=exports.modal=exports.menus=exports.log=exports.interceptor=exports.hooks=exports.globalResize=exports.globalEvents=exports.getTheme=exports.getIcon=exports.getI18n=exports.getConfig=exports.formats=exports.default=exports.config=exports.commands=exports.clipboard=exports._t=void 0;var _core=require("@vxe-ui/core"),_utils=require("./src/utils");let version=exports.version="4.13.53",iconPrefix=(_core.VxeUI.version=version,_core.VxeUI.tableVersion=version,_core.VxeUI.setConfig({emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,autoResize:!0,minHeight:144,resizeConfig:{},resizableConfig:{dragMode:"auto",showDragTip:!0,isSyncAutoHeight:!0,isSyncAutoWidth:!0,minHeight:18},radioConfig:{strict:!0},rowDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0,showDragTip:!0},columnDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0,showDragTip:!0},checkboxConfig:{strict:!0},tooltipConfig:{enterable:!0},validConfig:{showMessage:!0,autoClear:!0,autoPos:!0,message:"inline",msgMode:"single",theme:"beautify"},columnConfig:{maxFixedSize:4},cellConfig:{padding:!0},headerCellConfig:{height:"unset"},footerCellConfig:{height:"unset"},customConfig:{allowVisible:!0,allowResizable:!0,allowFixed:!0,allowSort:!0,showFooter:!0,placement:"top-right",storeOptions:{visible:!0,resizable:!0,sort:!0,fixed:!0},modalOptions:{showMaximize:!0,mask:!0,lockView:!0,resize:!0,escClosable:!0},drawerOptions:{mask:!0,lockView:!0,escClosable:!0,resize:!0}},sortConfig:{showIcon:!0,allowClear:!0,allowBtn:!0,iconLayout:"vertical"},filterConfig:{showIcon:!0},aggregateConfig:{padding:!0,rowField:"id",parentField:"_X_ROW_PARENT_KEY",childrenField:"_X_ROW_CHILDREN",mapChildrenField:"_X_ROW_CHILD_LIST",indent:20,showIcon:!0,maxGroupSize:4,showAggFuncTitle:!0},treeConfig:{padding:!0,rowField:"id",parentField:"parentId",childrenField:"children",hasChildField:"hasChild",mapChildrenField:"_X_ROW_CHILD",indent:20,showIcon:!0},expandConfig:{showIcon:!0,mode:"fixed"},editConfig:{showIcon:!0,showAsterisk:!0,autoFocus:!0},importConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},exportConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},printConfig:{},mouseConfig:{extension:!0},keyboardConfig:{isAll:!0,isEsc:!0},areaConfig:{autoClear:!0,selectCellByHeader:!0,selectCellByBody:!0,extendDirection:{top:!0,left:!0,bottom:!0,right:!0}},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},virtualXConfig:{gt:24,preSize:1,oSize:0},virtualYConfig:{gt:100,preSize:1,oSize:0},scrollbarConfig:{}},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,showResponseMsg:!0,showActiveMsg:!0,props:{list:null,result:"result",total:"page.total",message:"message"}}},toolbar:{}}),"vxe-table-icon-"),setTheme=(_core.VxeUI.setIcon({TABLE_SORT_ASC:iconPrefix+"caret-up",TABLE_SORT_DESC:iconPrefix+"caret-down",TABLE_FILTER_NONE:iconPrefix+"funnel",TABLE_FILTER_MATCH:iconPrefix+"funnel",TABLE_EDIT:iconPrefix+"edit",TABLE_TITLE_PREFIX:iconPrefix+"question-circle-fill",TABLE_TITLE_SUFFIX:iconPrefix+"question-circle-fill",TABLE_TREE_LOADED:iconPrefix+"spinner roll",TABLE_TREE_OPEN:iconPrefix+"caret-right rotate90",TABLE_TREE_CLOSE:iconPrefix+"caret-right",TABLE_EXPAND_LOADED:iconPrefix+"spinner roll",TABLE_EXPAND_OPEN:iconPrefix+"arrow-right rotate90",TABLE_EXPAND_CLOSE:iconPrefix+"arrow-right",TABLE_CHECKBOX_CHECKED:iconPrefix+"checkbox-checked-fill",TABLE_CHECKBOX_UNCHECKED:iconPrefix+"checkbox-unchecked",TABLE_CHECKBOX_INDETERMINATE:iconPrefix+"checkbox-indeterminate-fill",TABLE_CHECKBOX_DISABLED_UNCHECKED:iconPrefix+"checkbox-unchecked-fill",TABLE_RADIO_CHECKED:iconPrefix+"radio-checked-fill",TABLE_RADIO_UNCHECKED:iconPrefix+"radio-unchecked",TABLE_RADIO_DISABLED_UNCHECKED:iconPrefix+"radio-unchecked-fill",TABLE_CUSTOM_SORT:iconPrefix+"drag-handle",TABLE_MENU_OPTIONS:iconPrefix+"arrow-right",TABLE_DRAG_ROW:iconPrefix+"drag-handle",TABLE_DRAG_COLUMN:iconPrefix+"drag-handle",TABLE_DRAG_STATUS_ROW:iconPrefix+"sort",TABLE_DRAG_STATUS_SUB_ROW:iconPrefix+"add-sub",TABLE_DRAG_STATUS_AGG_GROUP:iconPrefix+"grouping",TABLE_DRAG_STATUS_AGG_VALUES:iconPrefix+"values",TABLE_DRAG_STATUS_COLUMN:iconPrefix+"swap",TABLE_DRAG_DISABLED:iconPrefix+"no-drop",TABLE_ROW_GROUP_OPEN:iconPrefix+"arrow-right rotate90",TABLE_ROW_GROUP_CLOSE:iconPrefix+"arrow-right",TABLE_AGGREGATE_GROUPING:iconPrefix+"grouping",TABLE_AGGREGATE_VALUES:iconPrefix+"values",TABLE_AGGREGATE_SORT:iconPrefix+"drag-handle",TABLE_AGGREGATE_DELETE:iconPrefix+"close",TOOLBAR_TOOLS_REFRESH:iconPrefix+"repeat",TOOLBAR_TOOLS_REFRESH_LOADING:iconPrefix+"repeat roll",TOOLBAR_TOOLS_IMPORT:iconPrefix+"upload",TOOLBAR_TOOLS_EXPORT:iconPrefix+"download",TOOLBAR_TOOLS_PRINT:iconPrefix+"print",TOOLBAR_TOOLS_FULLSCREEN:iconPrefix+"fullscreen",TOOLBAR_TOOLS_MINIMIZE:iconPrefix+"minimize",TOOLBAR_TOOLS_CUSTOM:iconPrefix+"custom-column",TOOLBAR_TOOLS_FIXED_LEFT:iconPrefix+"fixed-left",TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE:iconPrefix+"fixed-left-fill",TOOLBAR_TOOLS_FIXED_RIGHT:iconPrefix+"fixed-right",TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE:iconPrefix+"fixed-right-fill"}),exports.setTheme=_core.VxeUI.setTheme),getTheme=exports.getTheme=_core.VxeUI.getTheme,setConfig=exports.setConfig=_core.VxeUI.setConfig,getConfig=exports.getConfig=_core.VxeUI.getConfig,setIcon=exports.setIcon=_core.VxeUI.setIcon,getIcon=exports.getIcon=_core.VxeUI.getIcon,setLanguage=exports.setLanguage=_core.VxeUI.setLanguage,setI18n=exports.setI18n=_core.VxeUI.setI18n,getI18n=exports.getI18n=_core.VxeUI.getI18n,globalEvents=exports.globalEvents=_core.VxeUI.globalEvents,globalResize=exports.globalResize=_core.VxeUI.globalResize,renderer=exports.renderer=_core.VxeUI.renderer,validators=exports.validators=_core.VxeUI.validators,menus=exports.menus=_core.VxeUI.menus,formats=exports.formats=_core.VxeUI.formats,commands=exports.commands=_core.VxeUI.commands,interceptor=exports.interceptor=_core.VxeUI.interceptor,clipboard=exports.clipboard=_core.VxeUI.clipboard,log=exports.log=_core.VxeUI.log,hooks=exports.hooks=_core.VxeUI.hooks,use=exports.use=_core.VxeUI.use,setup=e=>_core.VxeUI.setConfig(e),config=(exports.setup=setup,_core.VxeUI.setup=setup,e=>_core.VxeUI.setConfig(e)),t=(exports.config=config,_core.VxeUI.config=config,(e,o)=>_core.VxeUI.getI18n(e,o)),_t=(exports.t=t,_core.VxeUI.t=t,(e,o)=>(0,_utils.getFuncText)(e,o)),VXETable=(exports._t=_t,_core.VxeUI._t=_t,exports.VXETable=_core.VxeUI),saveFile=e=>_core.VxeUI.saveFile(e),readFile=(exports.saveFile=saveFile,e=>_core.VxeUI.readFile(e)),print=(exports.readFile=readFile,e=>_core.VxeUI.print(e)),modal=(exports.print=print,exports.modal={get(e){return _core.VxeUI.modal.get(e)},close(e){return _core.VxeUI.modal.close(e)},open(e){return _core.VxeUI.modal.open(e)},alert(e,o,r){return _core.VxeUI.modal.alert(e,o,r)},confirm(e,o,r){return _core.VxeUI.modal.confirm(e,o,r)},message(e,o){return _core.VxeUI.modal.message(e,o)},notification(e,o,r){return _core.VxeUI.modal.notification(e,o,r)}});var _default=exports.default=_core.VxeUI;
package/lib/ui/src/log.js CHANGED
@@ -8,6 +8,6 @@ var _core = require("@vxe-ui/core");
8
8
  const {
9
9
  log
10
10
  } = _core.VxeUI;
11
- const version = `table v${"4.13.51"}`;
11
+ const version = `table v${"4.13.53"}`;
12
12
  const warnLog = exports.warnLog = log.create('warn', version);
13
13
  const errLog = exports.errLog = log.create('error', version);
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");let log=_core.VxeUI.log,version="table v4.13.51",warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");let log=_core.VxeUI.log,version="table v4.13.53",warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vxe-table",
3
- "version": "4.13.51",
4
- "description": "一个基于 vue PC 端表格组件,支持增删改查、虚拟树、拖拽排序,懒加载、快捷菜单、数据校验、树形结构、打印、导入导出、自定义模板、渲染器、JSON 配置式...",
3
+ "version": "4.13.53",
4
+ "description": "A PC-end table component based on Vxe UI, supporting copy-paste, data pivot table, and high-performance virtual list table solution.",
5
5
  "scripts": {
6
6
  "update": "npm install --legacy-peer-deps",
7
7
  "serve": "vue-cli-service serve",
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: 'يمكن تحديد ملفات {0} فقط على الأكثر!',
338
338
  overCountExtraErr: 'تم تجاوز الحد الأقصى لعدد {0} ، وسيتم تجاهل الملفات الزائدة {1}!',
339
339
  overSizeErr: 'لا يمكن أن يتجاوز حجم الملف الأقصى {0}!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: 'إعادة التحميل',
341
342
  uploadProgress: 'تحميل {0} ٪',
342
343
  uploadErr: 'فشل التحميل',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: 'Nur {0} -Dateien können höchstens ausgewählt werden!',
338
338
  overCountExtraErr: 'Die maximale Anzahl von {0} wurde überschritten, und die überschüssigen {1} -Dateien werden ignoriert!',
339
339
  overSizeErr: 'Die maximale Dateigröße darf {0} nicht überschreiten!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: 'Wiederbelastung',
341
342
  uploadProgress: 'Hochladen {0}%',
342
343
  uploadErr: 'Upload fehlgeschlagen',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: 'Only {0} files can be selected at most!',
338
338
  overCountExtraErr: 'The maximum number of {0} has been exceeded, and the excess {1} files will be ignored!',
339
339
  overSizeErr: 'The maximum file size cannot exceed {0}!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: 'Re-upload',
341
342
  uploadProgress: 'Uploading {0}%',
342
343
  uploadErr: 'Upload failed',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: '¡Solo los archivos {0} se pueden seleccionar como máximo!',
338
338
  overCountExtraErr: 'Se ha excedido el número máximo de {0}, ¡y los archivos de exceso {1} se ignorarán!',
339
339
  overSizeErr: '¡El tamaño máximo del archivo no puede exceder {0}!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: 'Volver a cargar',
341
342
  uploadProgress: 'Cargando {0}%',
342
343
  uploadErr: 'Carga falló',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: 'Seuls les fichiers {0} peuvent être sélectionnés au maximum!',
338
338
  overCountExtraErr: 'Le nombre maximum de {0} a été dépassé et les fichiers excédentaires {1} seront ignorés!',
339
339
  overSizeErr: 'La taille maximale du fichier ne peut pas dépasser {0}!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: 'Télécharger à nouveau',
341
342
  uploadProgress: 'Téléchargement {0}%',
342
343
  uploadErr: 'Le téléchargement a échoué',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: 'Csak a {0} fájlok választhatók legfeljebb!',
338
338
  overCountExtraErr: 'A {0} maximális számát túllépték, és a {1} felesleges fájlokat figyelmen kívül hagyják!',
339
339
  overSizeErr: 'A maximális fájlméret nem haladhatja meg a {0}!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: 'Újból feltölt',
341
342
  uploadProgress: 'Feltöltés {0}%',
342
343
  uploadErr: 'A feltöltés sikertelen',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: '最多只能选择{0}个文件!',
338
338
  overCountExtraErr: '已超出最大数量{0}个,超出的{1}个文件将被忽略!',
339
339
  overSizeErr: '文件大小最大不能超过{0}!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: '重新上传',
341
342
  uploadProgress: '上传中 {0}%',
342
343
  uploadErr: '上传失败',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: 'Hanya {0} file yang paling banyak dapat dipilih!',
338
338
  overCountExtraErr: 'Jumlah maksimum {0} telah terlampaui, dan file kelebihan {1} akan diabaikan!',
339
339
  overSizeErr: 'Ukuran file maksimum tidak dapat melebihi {0}!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: 'Mengunggah ulang',
341
342
  uploadProgress: 'Mengunggah {0}%',
342
343
  uploadErr: 'Unggah gagal',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: 'Solo i file {0} possono essere selezionati al massimo!',
338
338
  overCountExtraErr: 'Il numero massimo di {0} è stato superato e i file in eccesso {1} verranno ignorati!',
339
339
  overSizeErr: 'La dimensione massima del file non può superare {0}!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: 'Ri-caricamento',
341
342
  uploadProgress: 'Caricamento {0}%',
342
343
  uploadErr: 'Caricamento non riuscito',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: 'せいぜい{0}ファイルのみを選択できます!',
338
338
  overCountExtraErr: '{0}の最大数は超えており、過剰な{1}ファイルは無視されます!',
339
339
  overSizeErr: '最大ファイルサイズは{0}を超えることはできません!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: '再アップロード',
341
342
  uploadProgress: '{0}%のアップロード',
342
343
  uploadErr: 'アップロードに失敗しました',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: '{0} 파일 만 최대 선택할 수 있습니다!',
338
338
  overCountExtraErr: '{0}의 최대 수가 초과되었고 초과 {1} 파일은 무시됩니다!',
339
339
  overSizeErr: '최대 파일 크기는 {0}을 초과 할 수 없습니다!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: '재 포장',
341
342
  uploadProgress: '업로드 {0}%',
342
343
  uploadErr: '업로드 실패',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: 'Hanya {0} fail boleh dipilih paling banyak!',
338
338
  overCountExtraErr: 'Jumlah maksimum {0} telah melebihi, dan lebihan fail {1} ​​akan diabaikan!',
339
339
  overSizeErr: 'Saiz fail maksimum tidak boleh melebihi {0}!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: 'Muat naik semula',
341
342
  uploadProgress: 'Memuat naik {0}%',
342
343
  uploadErr: 'Muat naik gagal',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: 'Bare {0} filer kan velges på det meste!',
338
338
  overCountExtraErr: 'Det maksimale antallet {0} er overskredet, og overskuddet {1} filer vil bli ignorert!',
339
339
  overSizeErr: 'Maksimal filstørrelse kan ikke overstige {0}!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: 'Last opp på nytt',
341
342
  uploadProgress: 'Last opp {0}%',
342
343
  uploadErr: 'Opplasting mislyktes',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: 'Somente os arquivos {0} podem ser selecionados no máximo!',
338
338
  overCountExtraErr: 'O número máximo de {0} foi excedido e os arquivos excedentes {1} serão ignorados!',
339
339
  overSizeErr: 'O tamanho máximo do arquivo não pode exceder {0}!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: 'Re-applar',
341
342
  uploadProgress: 'Upload {0}%',
342
343
  uploadErr: 'Falha no upload',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: 'Только файлы {0} могут быть выбраны наибольшим количеством!',
338
338
  overCountExtraErr: 'Максимальное количество {0} было превышено, и избыточные файлы {1} будут игнорированы!',
339
339
  overSizeErr: 'Максимальный размер файла не может превышать {0}!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: 'Повторная загрузка',
341
342
  uploadProgress: 'Загрузка {0}%',
342
343
  uploadErr: 'Загрузка не удалась',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: 'สามารถเลือกไฟล์ {0} ได้อย่างมากเท่านั้น!',
338
338
  overCountExtraErr: 'เกินจำนวนสูงสุดของ {0} และไฟล์ {1} ส่วนเกินจะถูกละเว้น!',
339
339
  overSizeErr: 'ขนาดไฟล์สูงสุดไม่เกิน {0}!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: 'อัปเดตใหม่',
341
342
  uploadProgress: 'การอัปโหลด {0}%',
342
343
  uploadErr: 'การอัปโหลดล้มเหลว',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: 'ئەڭ كۆپ تاللاشقا بولىدىغان ھۆججەت سانى{0} پارچە',
338
338
  overCountExtraErr: 'ئەڭ كۆپ چەك {0}دانە ,ئارتىپ كەتكەن {1} دانە ھۆججەت قالدۇرۇلدى ',
339
339
  overSizeErr: 'ھۆججەت چوڭ-كىچىكلىكى {0}!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: 'قايتا چىقىرىڭ',
341
342
  uploadProgress: 'يوللىنىۋاتىدۇ {0}%',
342
343
  uploadErr: 'چىقىرىش مەغلۇپ بولدى',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: 'Лише {0} файли можна вибрати щонайбільше!',
338
338
  overCountExtraErr: 'Максимальна кількість {0} була перевищена, а надлишки {1} файлів будуть ігноровані!',
339
339
  overSizeErr: 'Максимальний розмір файлу не може перевищувати {0}!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: 'Переробляти',
341
342
  uploadProgress: 'Завантаження {0}%',
342
343
  uploadErr: 'Завантаження не вдалося',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: "Faqat {0} fayllari ko'pini tanlab olish mumkin!",
338
338
  overCountExtraErr: "{0} maksimal soni oshib ketdi va ortiqcha {1} fayllari e'tiborga olinmaydi!",
339
339
  overSizeErr: 'Fayl hajmi {0} dan oshmasligi kerak!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: 'Qayta yuklamoq',
341
342
  uploadProgress: 'Yuklash {0}%',
342
343
  uploadErr: 'Yuklash muvaffaqiyatsiz tugadi',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: 'Chỉ các tệp {0} có thể được chọn nhiều nhất!',
338
338
  overCountExtraErr: 'Số lượng tối đa của {0} đã bị vượt quá và các tệp dư thừa {1} sẽ bị bỏ qua!',
339
339
  overSizeErr: 'Kích thước tệp tối đa không thể vượt quá {0}!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: 'Tải lại lại',
341
342
  uploadProgress: 'Tải lên {0}%',
342
343
  uploadErr: 'Tải lên không thành công',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: '最多只能選擇{0}個文件!',
338
338
  overCountExtraErr: '已超出最大數量{0}個,超出的{1}個文件將被忽略!',
339
339
  overSizeErr: '文件大小最大不能超過{0}!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: '重新上傳',
341
342
  uploadProgress: '上傳中 {0}%',
342
343
  uploadErr: '上傳失敗',
@@ -337,6 +337,7 @@ export default {
337
337
  overCountErr: '最多只能选择{0}个文件!',
338
338
  overCountExtraErr: '已超出最大数量{0}个,超出的{1}个文件将被忽略!',
339
339
  overSizeErr: '文件大小最大不能超过{0}!',
340
+ manualUpload: '点击上传',
340
341
  reUpload: '重新上传',
341
342
  uploadProgress: '上传中 {0}%',
342
343
  uploadErr: '上传失败',
@@ -9,7 +9,7 @@ import type { TableFilterMethods, TableFilterPrivateMethods } from '../../../../
9
9
 
10
10
  const { renderer, hooks } = VxeUI
11
11
 
12
- const tableFilterMethodKeys: (keyof TableFilterMethods)[] = ['openFilter', 'setFilter', 'clearFilter', 'saveFilterPanel', 'resetFilterPanel', 'getCheckedFilters', 'updateFilterOptionStatus']
12
+ const tableFilterMethodKeys: (keyof TableFilterMethods)[] = ['openFilter', 'setFilter', 'clearFilter', 'saveFilterPanel', 'saveFilterPanelByEvent', 'resetFilterPanel', 'resetFilterPanelByEvent', 'getCheckedFilters', 'updateFilterOptionStatus']
13
13
 
14
14
  hooks.add('tableFilterModule', {
15
15
  setupTable ($xeTable) {
@@ -49,7 +49,7 @@ export default defineVxeComponent({
49
49
 
50
50
  const { fixedType } = props
51
51
  const { resizable: allResizable, border, footerCellClassName, footerCellStyle, footerAlign: allFooterAlign, footerSpanMethod, align: allAlign, columnKey, showFooterOverflow: allColumnFooterOverflow } = tableProps
52
- const { scrollXLoad, scrollYLoad, overflowX, currentColumn } = tableReactData
52
+ const { scrollXLoad, scrollYLoad, overflowX, currentColumn, mergeFootFlag } = tableReactData
53
53
  const { fullColumnIdData, mergeFooterList, mergeFooterCellMaps, scrollXStore } = tableInternalData
54
54
  const virtualXOpts = computeVirtualXOpts.value
55
55
  const tooltipOpts = computeTooltipOpts.value
@@ -126,7 +126,7 @@ export default defineVxeComponent({
126
126
  }
127
127
  let isMergeCell = false
128
128
  // 合并行或列
129
- if (mergeFooterList.length) {
129
+ if (mergeFootFlag && mergeFooterList.length) {
130
130
  const spanRest = mergeFooterCellMaps[`${_rowIndex}:${_columnIndex}`]
131
131
  if (spanRest) {
132
132
  const { rowspan, colspan } = spanRest
@@ -6685,6 +6685,11 @@ export default defineVxeComponent({
6685
6685
  handleBodyMerge(merges)
6686
6686
  $xeTable.handleUpdateBodyMerge()
6687
6687
  return nextTick().then(() => {
6688
+ const { expandColumn } = reactData
6689
+ const { mergeBodyList } = internalData
6690
+ if (expandColumn && mergeBodyList.length) {
6691
+ warnLog('vxe.error.errConflicts', ['type=expand', 'merge-cells | span-method'])
6692
+ }
6688
6693
  $xeTable.updateCellAreas()
6689
6694
  return updateStyle()
6690
6695
  })
@@ -9516,6 +9521,8 @@ export default defineVxeComponent({
9516
9521
  }
9517
9522
 
9518
9523
  return nextTick().then(() => {
9524
+ updateRowOffsetTop()
9525
+ updateRowExpandStyle()
9519
9526
  $xeTable.updateCellAreas()
9520
9527
  $xeTable.recalculate()
9521
9528
  }).then(() => {
package/README.en.md DELETED
@@ -1,189 +0,0 @@
1
- # vxe-table
2
-
3
- [简体中文](README.md) | [繁體中文](README.zh-TW.md) | English | [日本語](README.ja-JP.md)
4
-
5
- [![star](https://gitee.com/x-extends/vxe-table/badge/star.svg?theme=gvp)](https://gitee.com/x-extends/vxe-table/stargazers)
6
- [![npm version](https://img.shields.io/npm/v/vxe-table.svg?style=flat-square)](https://www.npmjs.com/package/vxe-table)
7
- [![NodeJS with Webpack](https://github.com/x-extends/vxe-table/actions/workflows/webpack.yml/badge.svg)](https://github.com/x-extends/vxe-table/actions/workflows/webpack.yml)
8
- [![npm downloads](https://img.shields.io/npm/dt/vxe-table.svg?style=flat-square)](https://npm-stat.com/charts.html?package=vxe-table)
9
- [![issues](https://img.shields.io/github/issues/x-extends/vxe-table.svg)](https://github.com/x-extends/vxe-table/issues)
10
- [![issues closed](https://img.shields.io/github/issues-closed/x-extends/vxe-table.svg)](https://github.com/x-extends/vxe-table/issues?q=is%3Aissue+is%3Aclosed)
11
- [![pull requests](https://img.shields.io/github/issues-pr/x-extends/vxe-table.svg)](https://github.com/x-extends/vxe-table/pulls)
12
- [![pull requests closed](https://img.shields.io/github/issues-pr-closed/x-extends/vxe-table.svg)](https://github.com/x-extends/vxe-table/pulls?q=is%3Apr+is%3Aclosed)
13
- [![npm license](https://img.shields.io/github/license/mashape/apistatus.svg)](LICENSE)
14
-
15
- A [vue](https://www.npmjs.com/package/vue) based PC form component, support add delete change check, virtual tree, drag and drop, lazy loading, shortcut menu, data verification, import/export/print, form rendering, custom template, renderer, JSON configuration...
16
-
17
- ## Browser Support
18
-
19
- ![Edge](https://raw.github.com/alrra/browser-logos/master/src/edge/edge_48x48.png) | ![Chrome](https://raw.github.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png) | ![Firefox](https://raw.github.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png) | ![Opera](https://raw.github.com/alrra/browser-logos/master/src/opera/opera_48x48.png) | ![Safari](https://raw.github.com/alrra/browser-logos/master/src/safari/safari_48x48.png)
20
- --- | --- | --- | --- | --- |
21
- Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ |
22
-
23
- ## Features
24
-
25
- * [x] Basic table
26
- * [x] Configuration grid
27
- * [x] Striped
28
- * [x] Table with border
29
- * [x] Cell style
30
- * [x] Column resizing
31
- * [x] Column drag and drop
32
- * [x] Row drag and drop
33
- * [x] Minimum/maximum height
34
- * [x] Resize height & width
35
- * [x] Fixed column
36
- * [x] Grouping table header
37
- * [x] Table footer
38
- * [x] Highlight row & column
39
- * [x] Table sequence
40
- * [x] Radio
41
- * [x] Checkbox
42
- * [x] Sorting
43
- * [x] Multi field sorting
44
- * [x] Filter
45
- * [x] Merged cells
46
- * [x] Merged footer items
47
- * [x] 行分组
48
- * [x] Import/Export/Print
49
- * [x] Show/Hide column
50
- * [x] Drag and drop/Customize column sorting
51
- * [x] Loading
52
- * [x] Formatted cell
53
- * [x] Slot - template
54
- * [x] Context menu
55
- * [x] Detail - Expandable row
56
- * [x] Toolbar
57
- * [x] Virtual tree
58
- * [x] Editable CRUD
59
- * [x] Validate
60
- * [x] Data Proxy
61
- * [x] Keyboard navigation
62
- * [x] VxeGlobalRenderer
63
- * [x] Virtual scroll
64
- * [x] Virtual merger
65
- * [x] CSS Variable Theme
66
- * [x] ([Enterprise](https://vxetable.cn/pluginDocs/)) Data grouping and aggregation
67
- * [x] ([Enterprise](https://vxetable.cn/pluginDocs/)) Cell area selection
68
- * [x] ([Enterprise](https://vxetable.cn/pluginDocs/)) Cell copy & paste
69
- * [x] ([Enterprise](https://vxetable.cn/pluginDocs/)) Cell find and replace
70
- * [x] ([Enterprise](https://vxetable.cn/pluginDocs/)) Full keyboard operation
71
- * [x] ([Enterprise](https://vxetable.cn/pluginDocs/)) Integrated chart
72
-
73
- ## Installing
74
-
75
- Version: [vue](https://www.npmjs.com/package/vue) 3.x
76
-
77
- ```shell
78
- npm install vxe-table@next
79
- ```
80
-
81
- Get on [unpkg](https://unpkg.com/vxe-table/) and [cdnjs](https://cdn.jsdelivr.net/npm/vxe-table/)
82
-
83
- ### NPM
84
-
85
- ### Use Table
86
-
87
- ```javascript
88
- // ...
89
- import VxeTable from 'vxe-table'
90
- import 'vxe-table/lib/style.css'
91
- // ...
92
-
93
- createApp(App).use(VxeTable).mount('#app')
94
- ```
95
-
96
- ### Use Table and UI
97
-
98
- ```javascript
99
- // ...
100
- import VxeTable from 'vxe-table'
101
- import 'vxe-table/lib/style.css'
102
- // ...
103
-
104
- import VxeUI from 'vxe-pc-ui'
105
- import 'vxe-pc-ui/lib/style.css'
106
- // ...
107
-
108
- createApp(App).use(VxeUI).use(VxeTable).mount('#app')
109
- ```
110
-
111
- ### CDN
112
-
113
- Use a third-party CDN to remember to lock the version number to avoid being affected by incompatible updates.
114
- ***It is not recommended to use the CDN address of a third party in a formal environment because the connection can fail at any time***
115
-
116
- ```HTML
117
- <!-- style -->
118
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vxe-pc-ui/lib/style.css">
119
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vxe-table@next/lib/style.css">
120
- <!-- vue -->
121
- <script src="https://cdn.jsdelivr.net/npm/vue"></script>
122
- <!-- table -->
123
- <script src="https://cdn.jsdelivr.net/npm/xe-utils"></script>
124
- <script src="https://cdn.jsdelivr.net/npm/vxe-pc-ui"></script>
125
- <script src="https://cdn.jsdelivr.net/npm/vxe-table@next"></script>
126
- ```
127
-
128
- ## Example
129
-
130
- ```html
131
- <template>
132
- <div>
133
- <vxe-table :data="tableData">
134
- <vxe-column type="seq" title="Seq" width="60"></vxe-column>
135
- <vxe-column field="name" title="Name"></vxe-column>
136
- <vxe-column field="role" title="Role"></vxe-column>
137
- <vxe-colgroup title="Group1">
138
- <vxe-column field="sex" title="Sex"></vxe-column>
139
- <vxe-column field="address" title="Address"></vxe-column>
140
- </vxe-colgroup>
141
- </vxe-table>
142
- </div>
143
- </template>
144
-
145
- <script lang="ts" setup>
146
- import { ref } from 'vue'
147
-
148
- const tableData = ref([
149
- { id: 10001, name: 'Test1', role: 'Develop', sex: 'Man', address: 'Shenzhen' },
150
- { id: 10002, name: 'Test2', role: 'Test', sex: 'Man', address: 'Guangzhou' },
151
- { id: 10003, name: 'Test3', role: 'PM', sex: 'Man', address: 'Shanghai' }
152
- ])
153
- </script>
154
- ```
155
-
156
- ## Online Documents
157
-
158
- 👉 [UI Document](https://vxeui.com)
159
- 👉 [Table Document](https://vxetable.cn)
160
-
161
- ## Run the project
162
-
163
- Install dependencies
164
-
165
- ```shell
166
- npm run update
167
- ```
168
-
169
- Start local debugging
170
-
171
- ```shell
172
- npm run serve
173
- ```
174
-
175
- Compile packaging, generated compiled directory: es,lib
176
-
177
- ```shell
178
- npm run lib
179
- ```
180
-
181
- ## Contributors
182
-
183
- Thank you to everyone who contributed to this project.
184
-
185
- [![vxe-table](https://contrib.rocks/image?repo=x-extends/vxe-table)](https://github.com/x-extends/vxe-table/graphs/contributors)
186
-
187
- ## License
188
-
189
- [MIT](LICENSE) © 2019-present, Xu Liangzhan