vxe-table 4.16.9 → 4.16.11

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 (54) hide show
  1. package/README.en.md +1 -1
  2. package/README.ja-JP.md +1 -1
  3. package/README.md +1 -1
  4. package/README.zh-TW.md +1 -1
  5. package/es/grid/src/grid.js +1 -1
  6. package/es/style.css +1 -1
  7. package/es/table/module/menu/hook.js +3 -3
  8. package/es/table/src/body.js +2 -1
  9. package/es/table/src/cell.js +43 -25
  10. package/es/table/src/footer.js +3 -3
  11. package/es/table/src/header.js +2 -1
  12. package/es/table/src/props.js +4 -0
  13. package/es/table/src/table.js +49 -15
  14. package/es/ui/index.js +7 -1
  15. package/es/ui/src/log.js +1 -1
  16. package/lib/grid/src/grid.js +1 -1
  17. package/lib/grid/src/grid.min.js +1 -1
  18. package/lib/index.umd.js +100 -59
  19. package/lib/index.umd.min.js +1 -1
  20. package/lib/style.css +1 -1
  21. package/lib/table/module/menu/hook.js +3 -3
  22. package/lib/table/module/menu/hook.min.js +1 -1
  23. package/lib/table/src/body.js +2 -1
  24. package/lib/table/src/body.min.js +1 -1
  25. package/lib/table/src/cell.js +60 -32
  26. package/lib/table/src/cell.min.js +1 -1
  27. package/lib/table/src/footer.js +3 -3
  28. package/lib/table/src/footer.min.js +1 -1
  29. package/lib/table/src/header.js +2 -1
  30. package/lib/table/src/header.min.js +1 -1
  31. package/lib/table/src/props.js +4 -0
  32. package/lib/table/src/props.min.js +1 -1
  33. package/lib/table/src/table.js +14 -14
  34. package/lib/table/src/table.min.js +1 -1
  35. package/lib/ui/index.js +7 -1
  36. package/lib/ui/index.min.js +1 -1
  37. package/lib/ui/src/log.js +1 -1
  38. package/lib/ui/src/log.min.js +1 -1
  39. package/package.json +2 -2
  40. package/packages/grid/src/grid.ts +1 -1
  41. package/packages/table/module/menu/hook.ts +3 -3
  42. package/packages/table/src/body.ts +2 -1
  43. package/packages/table/src/cell.ts +41 -25
  44. package/packages/table/src/footer.ts +3 -3
  45. package/packages/table/src/header.ts +2 -1
  46. package/packages/table/src/props.ts +4 -0
  47. package/packages/table/src/table.ts +48 -15
  48. package/packages/ui/index.ts +6 -0
  49. /package/es/{iconfont.1757392740800.ttf → iconfont.1757578456216.ttf} +0 -0
  50. /package/es/{iconfont.1757392740800.woff → iconfont.1757578456216.woff} +0 -0
  51. /package/es/{iconfont.1757392740800.woff2 → iconfont.1757578456216.woff2} +0 -0
  52. /package/lib/{iconfont.1757392740800.ttf → iconfont.1757578456216.ttf} +0 -0
  53. /package/lib/{iconfont.1757392740800.woff → iconfont.1757578456216.woff} +0 -0
  54. /package/lib/{iconfont.1757392740800.woff2 → iconfont.1757578456216.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.16.9";
16
+ const version = exports.version = "4.16.11";
17
17
  _core.VxeUI.version = version;
18
18
  _core.VxeUI.tableVersion = version;
19
19
  _core.VxeUI.setConfig({
@@ -75,6 +75,12 @@ _core.VxeUI.setConfig({
75
75
  tooltipConfig: {
76
76
  enterable: true
77
77
  },
78
+ headerTooltipConfig: {
79
+ enterable: true
80
+ },
81
+ footerTooltipConfig: {
82
+ enterable: true
83
+ },
78
84
  validConfig: {
79
85
  showMessage: true,
80
86
  autoClear: true,
@@ -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.16.9",iconPrefix=(_core.VxeUI.version=version,_core.VxeUI.tableVersion=version,_core.VxeUI.setConfig({emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,autoResize:!0,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:{autoOptions:{isCalcHeader:!0,isCalcBody:!0,isCalcFooter:!0},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:{multiple:!0,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:{x:{visible:!0},y:{visible:!0}}},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,showLoading:!0,showResponseMsg:!0,showActionMsg:!0,response:{list:null,result:"result",total:"page.total",message:"message"}}},toolbar:{},gantt:{}}),"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.16.11",iconPrefix=(_core.VxeUI.version=version,_core.VxeUI.tableVersion=version,_core.VxeUI.setConfig({emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,autoResize:!0,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},headerTooltipConfig:{enterable:!0},footerTooltipConfig:{enterable:!0},validConfig:{showMessage:!0,autoClear:!0,autoPos:!0,message:"inline",msgMode:"single",theme:"beautify"},columnConfig:{autoOptions:{isCalcHeader:!0,isCalcBody:!0,isCalcFooter:!0},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:{multiple:!0,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:{x:{visible:!0},y:{visible:!0}}},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,showLoading:!0,showResponseMsg:!0,showActionMsg:!0,response:{list:null,result:"result",total:"page.total",message:"message"}}},toolbar:{},gantt:{}}),"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.16.9"}`;
11
+ const version = `table v${"4.16.11"}`;
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.16.9",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.16.11",warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxe-table",
3
- "version": "4.16.9",
3
+ "version": "4.16.11",
4
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",
@@ -66,7 +66,7 @@
66
66
  "typescript": "~4.7.4",
67
67
  "vue": "3.4.27",
68
68
  "vue-router": "~4.5.1",
69
- "vxe-gantt": "~4.0.11"
69
+ "vxe-gantt": "~4.0.12"
70
70
  },
71
71
  "vetur": {
72
72
  "tags": "helper/vetur/tags.json",
@@ -19,7 +19,7 @@ import type { VxeTableMethods, VxeGridConstructor, VxeGridEmits, GridReactData,
19
19
  const { getConfig, getI18n, commands, hooks, useFns, createEvent, globalEvents, GLOBAL_EVENT_KEYS, renderEmptyElement } = VxeUI
20
20
 
21
21
  const tableComponentPropKeys = Object.keys(tableProps) as (keyof VxeTableProps)[]
22
- const tableComponentMethodKeys: (keyof VxeTableMethods)[] = ['clearAll', 'syncData', 'updateData', 'loadData', 'reloadData', 'reloadRow', 'loadColumn', 'reloadColumn', 'getRowNode', 'getColumnNode', 'getRowIndex', 'getVTRowIndex', 'getVMRowIndex', 'getColumnIndex', 'getVTColumnIndex', 'getVMColumnIndex', 'setRow', 'createData', 'createRow', 'revertData', 'clearData', 'isRemoveByRow', 'isInsertByRow', 'isUpdateByRow', 'getColumns', 'getColumnById', 'getColumnByField', 'getTableColumn', 'getFullColumns', 'getData', 'getCheckboxRecords', 'getParentRow', 'getTreeRowChildren', 'getTreeParentRow', 'getRowSeq', 'getRowById', 'getRowid', 'getTableData', 'getFullData', 'setColumnFixed', 'clearColumnFixed', 'setColumnWidth', 'getColumnWidth', 'recalcRowHeight', 'setRowHeightConf', 'getRowHeightConf', 'setRowHeight', 'getRowHeight', 'hideColumn', 'showColumn', 'resetColumn', 'refreshColumn', 'refreshScroll', 'recalculate', 'closeTooltip', 'isAllCheckboxChecked', 'isAllCheckboxIndeterminate', 'getCheckboxIndeterminateRecords', 'setCheckboxRow', 'setCheckboxRowKey', 'isCheckedByCheckboxRow', 'isCheckedByCheckboxRowKey', 'isIndeterminateByCheckboxRow', 'isIndeterminateByCheckboxRowKey', 'toggleCheckboxRow', 'setAllCheckboxRow', 'getRadioReserveRecord', 'clearRadioReserve', 'getCheckboxReserveRecords', 'clearCheckboxReserve', 'toggleAllCheckboxRow', 'clearCheckboxRow', 'setCurrentRow', 'isCheckedByRadioRow', 'isCheckedByRadioRowKey', 'setRadioRow', 'setRadioRowKey', 'clearCurrentRow', 'clearRadioRow', 'getCurrentRecord', 'getRadioRecord', 'getCurrentColumn', 'setCurrentColumn', 'clearCurrentColumn', 'setPendingRow', 'togglePendingRow', 'hasPendingByRow', 'isPendingByRow', 'getPendingRecords', 'clearPendingRow', 'setFilterByEvent', 'sort', 'setSort', 'setSortByEvent', 'clearSort', 'clearSortByEvent', 'isSort', 'getSortColumns', 'closeFilter', 'isFilter', 'clearFilterByEvent', 'isActiveFilterByColumn', 'isRowExpandLoaded', 'clearRowExpandLoaded', 'reloadRowExpand', 'reloadRowExpand', 'toggleRowExpand', 'setAllRowExpand', 'setRowExpand', 'isExpandByRow', 'isRowExpandByRow', 'clearRowExpand', 'clearRowExpandReserve', 'getRowExpandRecords', 'getTreeExpandRecords', 'isTreeExpandLoaded', 'clearTreeExpandLoaded', 'reloadTreeExpand', 'reloadTreeChilds', 'toggleTreeExpand', 'setAllTreeExpand', 'setTreeExpand', 'isTreeExpandByRow', 'clearTreeExpand', 'clearTreeExpandReserve', 'getScroll', 'scrollTo', 'scrollToRow', 'scrollToColumn', 'clearScroll', 'updateFooter', 'updateStatus', 'setMergeCells', 'removeInsertRow', 'removeMergeCells', 'getMergeCells', 'setMergeHeaderCells', 'removeMergeHeaderCells', 'getMergeHeaderCells', 'clearMergeHeaderCells', 'clearMergeCells', 'setMergeFooterItems', 'removeMergeFooterItems', 'getMergeFooterItems', 'clearMergeFooterItems', 'getCustomStoreData', 'setRowGroupExpand', 'setRowGroupExpandByField', 'setAllRowGroupExpand', 'clearRowGroupExpand', 'isRowGroupExpandByRow', 'isRowGroupRecord', 'isAggregateRecord', 'isAggregateExpandByRow', 'getAggregateContentByRow', 'getAggregateRowChildren', 'setRowGroups', 'clearRowGroups', 'openTooltip', 'moveColumnTo', 'moveRowTo', 'getCellLabel', 'getCellElement', 'focus', 'blur', 'connect', 'connectToolbar']
22
+ const tableComponentMethodKeys: (keyof VxeTableMethods)[] = ['clearAll', 'syncData', 'updateData', 'loadData', 'reloadData', 'reloadRow', 'loadColumn', 'reloadColumn', 'getRowNode', 'getColumnNode', 'getRowIndex', 'getVTRowIndex', 'getVMRowIndex', 'getColumnIndex', 'getVTColumnIndex', 'getVMColumnIndex', 'setRow', 'createData', 'createRow', 'revertData', 'clearData', 'isRemoveByRow', 'isInsertByRow', 'isUpdateByRow', 'getColumns', 'getColumnById', 'getColumnByField', 'getTableColumn', 'getFullColumns', 'getData', 'getCheckboxRecords', 'getParentRow', 'getTreeRowChildren', 'getTreeRowLevel', 'getTreeParentRow', 'getRowSeq', 'getRowById', 'getRowid', 'getTableData', 'getFullData', 'setColumnFixed', 'clearColumnFixed', 'setColumnWidth', 'getColumnWidth', 'recalcRowHeight', 'setRowHeightConf', 'getRowHeightConf', 'setRowHeight', 'getRowHeight', 'hideColumn', 'showColumn', 'resetColumn', 'refreshColumn', 'refreshScroll', 'recalculate', 'closeTooltip', 'isAllCheckboxChecked', 'isAllCheckboxIndeterminate', 'getCheckboxIndeterminateRecords', 'setCheckboxRow', 'setCheckboxRowKey', 'isCheckedByCheckboxRow', 'isCheckedByCheckboxRowKey', 'isIndeterminateByCheckboxRow', 'isIndeterminateByCheckboxRowKey', 'toggleCheckboxRow', 'setAllCheckboxRow', 'getRadioReserveRecord', 'clearRadioReserve', 'getCheckboxReserveRecords', 'clearCheckboxReserve', 'toggleAllCheckboxRow', 'clearCheckboxRow', 'setCurrentRow', 'isCheckedByRadioRow', 'isCheckedByRadioRowKey', 'setRadioRow', 'setRadioRowKey', 'clearCurrentRow', 'clearRadioRow', 'getCurrentRecord', 'getRadioRecord', 'getCurrentColumn', 'setCurrentColumn', 'clearCurrentColumn', 'setPendingRow', 'togglePendingRow', 'hasPendingByRow', 'isPendingByRow', 'getPendingRecords', 'clearPendingRow', 'setFilterByEvent', 'sort', 'setSort', 'setSortByEvent', 'clearSort', 'clearSortByEvent', 'isSort', 'getSortColumns', 'closeFilter', 'isFilter', 'clearFilterByEvent', 'isActiveFilterByColumn', 'isRowExpandLoaded', 'clearRowExpandLoaded', 'reloadRowExpand', 'reloadRowExpand', 'toggleRowExpand', 'setAllRowExpand', 'setRowExpand', 'isExpandByRow', 'isRowExpandByRow', 'clearRowExpand', 'clearRowExpandReserve', 'getRowExpandRecords', 'getTreeExpandRecords', 'isTreeExpandLoaded', 'clearTreeExpandLoaded', 'reloadTreeExpand', 'reloadTreeChilds', 'toggleTreeExpand', 'setAllTreeExpand', 'setTreeExpand', 'isTreeExpandByRow', 'clearTreeExpand', 'clearTreeExpandReserve', 'getScroll', 'scrollTo', 'scrollToRow', 'scrollToColumn', 'clearScroll', 'updateFooter', 'updateStatus', 'setMergeCells', 'removeInsertRow', 'removeMergeCells', 'getMergeCells', 'setMergeHeaderCells', 'removeMergeHeaderCells', 'getMergeHeaderCells', 'clearMergeHeaderCells', 'clearMergeCells', 'setMergeFooterItems', 'removeMergeFooterItems', 'getMergeFooterItems', 'clearMergeFooterItems', 'getCustomStoreData', 'setRowGroupExpand', 'setRowGroupExpandByField', 'setAllRowGroupExpand', 'clearRowGroupExpand', 'isRowGroupExpandByRow', 'isRowGroupRecord', 'isAggregateRecord', 'isAggregateExpandByRow', 'getAggregateContentByRow', 'getAggregateRowChildren', 'setRowGroups', 'clearRowGroups', 'openTooltip', 'moveColumnTo', 'moveRowTo', 'getCellLabel', 'getCellElement', 'focus', 'blur', 'connect', 'connectToolbar']
23
23
 
24
24
  function createInternalData (): GridInternalData {
25
25
  return {
@@ -14,7 +14,7 @@ hooks.add('tableMenuModule', {
14
14
  setupTable ($xeTable) {
15
15
  const { xID, props, reactData, internalData } = $xeTable
16
16
  const { refElem, refTableFilter, refTableMenu } = $xeTable.getRefMaps()
17
- const { computeMouseOpts, computeIsMenu, computeMenuOpts } = $xeTable.getComputeMaps()
17
+ const { computeMouseOpts, computeIsContentMenu, computeMenuOpts } = $xeTable.getComputeMaps()
18
18
 
19
19
  let menuMethods = {} as TableMenuMethods
20
20
  let menuPrivateMethods = {} as TableMenuPrivateMethods
@@ -24,7 +24,7 @@ hooks.add('tableMenuModule', {
24
24
  */
25
25
  const handleOpenMenuEvent = (evnt: any, type: 'header' | 'body' | 'footer', params: any) => {
26
26
  const { ctxMenuStore } = reactData
27
- const isMenu = computeIsMenu.value
27
+ const isContentMenu = computeIsContentMenu.value
28
28
  const menuOpts = computeMenuOpts.value
29
29
  const config = menuOpts[type]
30
30
  const visibleMethod = menuOpts.visibleMethod
@@ -32,7 +32,7 @@ hooks.add('tableMenuModule', {
32
32
  const { options, disabled } = config
33
33
  if (disabled) {
34
34
  evnt.preventDefault()
35
- } else if (isMenu && options && options.length) {
35
+ } else if (isContentMenu && options && options.length) {
36
36
  params.options = options
37
37
  $xeTable.preventEvent(evnt, 'event.showMenu', params, () => {
38
38
  if (!visibleMethod || visibleMethod(params)) {
@@ -855,7 +855,8 @@ export default defineVxeComponent({
855
855
  }),
856
856
  mouseConfig && mouseOpts.area
857
857
  ? h('div', {
858
- class: 'vxe-table--cell-area'
858
+ class: 'vxe-table--cell-area',
859
+ xid: xID
859
860
  }, [
860
861
  h('span', {
861
862
  class: 'vxe-table--cell-main-area'
@@ -183,12 +183,12 @@ function renderTitleContent (params: VxeTableDefines.CellRenderHeaderParams & {
183
183
  const { $table, column } = params
184
184
  const tableProps = $table.props
185
185
  const tableReactData = $table.reactData
186
- const { computeTooltipOpts } = $table.getComputeMaps()
186
+ const { computeHeaderTooltipOpts } = $table.getComputeMaps()
187
187
  const { showHeaderOverflow: allColumnHeaderOverflow } = tableProps
188
188
  const { isRowGroupStatus } = tableReactData
189
189
  const { showHeaderOverflow } = column
190
- const tooltipOpts = computeTooltipOpts.value
191
- const showAllTip = tooltipOpts.showAll
190
+ const headerTooltipOpts = computeHeaderTooltipOpts.value
191
+ const showAllTip = headerTooltipOpts.showAll
192
192
  const headOverflow = XEUtils.eqNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow
193
193
  const showTitle = headOverflow === 'title'
194
194
  const showTooltip = headOverflow === true || headOverflow === 'tooltip'
@@ -810,7 +810,9 @@ export const Cell = {
810
810
  const { treeConfig } = tableProps
811
811
  const { updateCheckboxFlag, isRowGroupStatus } = tableReactData
812
812
  const { selectCheckboxMaps, treeIndeterminateRowMaps } = tableInternalData
813
- const { computeCheckboxOpts } = $table.getComputeMaps()
813
+ const { computeCheckboxOpts, computeAggregateOpts } = $table.getComputeMaps()
814
+ const aggregateOpts = computeAggregateOpts.value
815
+ const { mapChildrenField } = aggregateOpts
814
816
  const checkboxOpts = computeCheckboxOpts.value
815
817
  const { labelField, checkMethod, visibleMethod } = checkboxOpts
816
818
  const { slots } = column
@@ -818,23 +820,29 @@ export const Cell = {
818
820
  const checkboxSlot = slots ? slots.checkbox : null
819
821
  let indeterminate = false
820
822
  let isChecked = false
821
- const isVisible = !visibleMethod || visibleMethod({ $table, row })
822
- let isDisabled = !!checkMethod
823
+ let isVisible = true
824
+ let isDisabled = false
823
825
  const ons: Record<string, any> = {}
824
826
  if (!isHidden) {
825
827
  const rowid = getRowid($table, row)
826
828
  isChecked = !!updateCheckboxFlag && !!selectCheckboxMaps[rowid]
827
- ons.onClick = (evnt: MouseEvent) => {
828
- if (!isDisabled && isVisible) {
829
- $table.triggerCheckRowEvent(evnt, params, !isChecked)
829
+ if (checkMethod && isRowGroupStatus && $table.isAggregateRecord(row)) {
830
+ const childList: any[] = row[mapChildrenField || '']
831
+ if (!childList || !childList.length || childList.every(item => !checkMethod({ $table, row: item }))) {
832
+ isDisabled = true
830
833
  }
831
- }
832
- if (checkMethod) {
833
- isDisabled = !checkMethod({ $table, row })
834
+ } else {
835
+ isVisible = !visibleMethod || visibleMethod({ $table, row })
836
+ isDisabled = checkMethod ? !checkMethod({ $table, row }) : !!checkMethod
834
837
  }
835
838
  if (treeConfig || isRowGroupStatus) {
836
839
  indeterminate = !!treeIndeterminateRowMaps[rowid]
837
840
  }
841
+ ons.onClick = (evnt: MouseEvent) => {
842
+ if (!isDisabled && isVisible) {
843
+ $table.triggerCheckRowEvent(evnt, params, !isChecked)
844
+ }
845
+ }
838
846
  }
839
847
  const checkboxParams = { ...params, checked: isChecked, disabled: isDisabled, visible: isVisible, indeterminate }
840
848
  if (checkboxSlot) {
@@ -878,34 +886,42 @@ export const Cell = {
878
886
  const { treeConfig } = tableProps
879
887
  const { updateCheckboxFlag, isRowGroupStatus } = tableReactData
880
888
  const { treeIndeterminateRowMaps } = tableInternalData
881
- const { computeCheckboxOpts } = $table.getComputeMaps()
889
+ const { computeCheckboxOpts, computeAggregateOpts } = $table.getComputeMaps()
890
+ const aggregateOpts = computeAggregateOpts.value
891
+ const { mapChildrenField } = aggregateOpts
882
892
  const checkboxOpts = computeCheckboxOpts.value
883
893
  const { labelField, checkField, checkMethod, visibleMethod } = checkboxOpts
884
894
  const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField
885
895
  const { slots } = column
886
896
  const defaultSlot = slots ? slots.default : null
887
897
  const checkboxSlot = slots ? slots.checkbox : null
888
- let isIndeterminate = false
898
+ let indeterminate = false
889
899
  let isChecked = false
890
- const isVisible = !visibleMethod || visibleMethod({ $table, row })
891
- let isDisabled = !!checkMethod
900
+ let isVisible = true
901
+ let isDisabled = false
892
902
  const ons: Record<string, any> = {}
893
903
  if (!isHidden) {
894
904
  const rowid = getRowid($table, row)
895
905
  isChecked = !!updateCheckboxFlag && XEUtils.get(row, checkField)
906
+ if (checkMethod && isRowGroupStatus && $table.isAggregateRecord(row)) {
907
+ const childList: any[] = row[mapChildrenField || '']
908
+ if (!childList || !childList.length || childList.every(item => !checkMethod({ $table, row: item }))) {
909
+ isDisabled = true
910
+ }
911
+ } else {
912
+ isVisible = !visibleMethod || visibleMethod({ $table, row })
913
+ isDisabled = checkMethod ? !checkMethod({ $table, row }) : !!checkMethod
914
+ }
915
+ if (treeConfig || isRowGroupStatus) {
916
+ indeterminate = !!treeIndeterminateRowMaps[rowid]
917
+ }
896
918
  ons.onClick = (evnt: MouseEvent) => {
897
919
  if (!isDisabled && isVisible) {
898
920
  $table.triggerCheckRowEvent(evnt, params, !isChecked)
899
921
  }
900
922
  }
901
- if (checkMethod) {
902
- isDisabled = !checkMethod({ $table, row })
903
- }
904
- if (treeConfig || isRowGroupStatus) {
905
- isIndeterminate = !!treeIndeterminateRowMaps[rowid]
906
- }
907
923
  }
908
- const checkboxParams = { ...params, checked: isChecked, disabled: isDisabled, visible: isVisible, indeterminate: isIndeterminate }
924
+ const checkboxParams = { ...params, checked: isChecked, disabled: isDisabled, visible: isVisible, indeterminate }
909
925
  if (checkboxSlot) {
910
926
  return renderCellBaseVNs(params, $table.callSlot(checkboxSlot, checkboxParams))
911
927
  }
@@ -913,7 +929,7 @@ export const Cell = {
913
929
  if (isVisible) {
914
930
  checkVNs.push(
915
931
  h('span', {
916
- class: ['vxe-checkbox--icon', isIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isChecked ? getIcon().TABLE_CHECKBOX_CHECKED : (isDisabled ? getIcon().TABLE_CHECKBOX_DISABLED_UNCHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED))]
932
+ class: ['vxe-checkbox--icon', indeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isChecked ? getIcon().TABLE_CHECKBOX_CHECKED : (isDisabled ? getIcon().TABLE_CHECKBOX_DISABLED_UNCHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED))]
917
933
  })
918
934
  )
919
935
  if (defaultSlot || labelField) {
@@ -929,7 +945,7 @@ export const Cell = {
929
945
  class: ['vxe-cell--checkbox', {
930
946
  'is--checked': isChecked,
931
947
  'is--disabled': isDisabled,
932
- 'is--indeterminate': indeterminateField && !isChecked ? row[indeterminateField] : isIndeterminate,
948
+ 'is--indeterminate': indeterminateField && !isChecked ? row[indeterminateField] : indeterminate,
933
949
  'is--hidden': !isVisible
934
950
  }],
935
951
  ...ons
@@ -35,7 +35,7 @@ export default defineVxeComponent({
35
35
  const $xeTable = inject('$xeTable', {} as VxeTableConstructor & VxeTableMethods & VxeTablePrivateMethods)
36
36
 
37
37
  const { xID, props: tableProps, reactData: tableReactData, internalData: tableInternalData } = $xeTable
38
- const { computeTooltipOpts, computeColumnOpts, computeCellOpts, computeFooterCellOpts, computeDefaultRowHeight, computeResizableOpts, computeVirtualXOpts } = $xeTable.getComputeMaps()
38
+ const { computeFooterTooltipOpts, computeColumnOpts, computeCellOpts, computeFooterCellOpts, computeDefaultRowHeight, computeResizableOpts, computeVirtualXOpts } = $xeTable.getComputeMaps()
39
39
 
40
40
  const refElem = ref() as Ref<HTMLDivElement>
41
41
  const refFooterScroll = ref() as Ref<HTMLDivElement>
@@ -53,7 +53,7 @@ export default defineVxeComponent({
53
53
  const { scrollXLoad, scrollYLoad, overflowX, currentColumn, mergeFootFlag } = tableReactData
54
54
  const { fullColumnIdData, mergeFooterList, mergeFooterCellMaps, scrollXStore } = tableInternalData
55
55
  const virtualXOpts = computeVirtualXOpts.value
56
- const tooltipOpts = computeTooltipOpts.value
56
+ const footerTooltipOpts = computeFooterTooltipOpts.value
57
57
  const resizableOpts = computeResizableOpts.value
58
58
  const { isAllColumnDrag } = resizableOpts
59
59
  const columnOpts = computeColumnOpts.value
@@ -68,7 +68,7 @@ export default defineVxeComponent({
68
68
  const colRest = fullColumnIdData[colid] || {}
69
69
  const renderOpts = editRender || cellRender
70
70
  const compConf = renderOpts ? renderer.get(renderOpts.name) : null
71
- const showAllTip = tooltipOpts.showAll
71
+ const showAllTip = footerTooltipOpts.showAll
72
72
  const fixedHiddenColumn = overflowX && (fixedType ? column.fixed !== fixedType : !!column.fixed)
73
73
  const isPadding = XEUtils.isBoolean(footerCellOpts.padding) ? footerCellOpts.padding : cellOpts.padding
74
74
  const footOverflow = XEUtils.eqNull(showFooterOverflow) ? allColumnFooterOverflow : showFooterOverflow
@@ -393,7 +393,8 @@ export default defineVxeComponent({
393
393
  ]),
394
394
  mouseConfig && mouseOpts.area
395
395
  ? h('div', {
396
- class: 'vxe-table--cell-area'
396
+ class: 'vxe-table--cell-area',
397
+ xid: xID
397
398
  }, [
398
399
  h('span', {
399
400
  class: 'vxe-table--cell-main-area'
@@ -247,6 +247,10 @@ export const tableProps = {
247
247
  checkboxConfig: Object as PropType<VxeTablePropTypes.CheckboxConfig>,
248
248
  // tooltip 配置项
249
249
  tooltipConfig: Object as PropType<VxeTablePropTypes.TooltipConfig>,
250
+ // 表头 tooltip 配置项
251
+ headerTooltipConfig: Object as PropType<VxeTablePropTypes.HeaderTooltipConfig>,
252
+ // 表尾 tooltip 配置项
253
+ footerTooltipConfig: Object as PropType<VxeTablePropTypes.FooterTooltipConfig>,
250
254
  // 导出配置项
251
255
  exportConfig: Object as PropType<VxeTablePropTypes.ExportConfig>,
252
256
  // 导入配置项
@@ -581,6 +581,14 @@ export default defineVxeComponent({
581
581
  return Object.assign({}, getConfig().tooltip, getConfig().table.tooltipConfig, props.tooltipConfig)
582
582
  })
583
583
 
584
+ const computeHeaderTooltipOpts = computed(() => {
585
+ return Object.assign({}, getConfig().tooltip, getConfig().table.headerTooltipConfig, props.headerTooltipConfig)
586
+ })
587
+
588
+ const computeFooterTooltipOpts = computed(() => {
589
+ return Object.assign({}, getConfig().tooltip, getConfig().table.footerTooltipConfig, props.footerTooltipConfig)
590
+ })
591
+
584
592
  const computeTableTipConfig = computed(() => {
585
593
  const { tooltipStore } = reactData
586
594
  const tooltipOpts = computeTooltipOpts.value
@@ -674,6 +682,11 @@ export default defineVxeComponent({
674
682
  })
675
683
 
676
684
  const computeIsMenu = computed(() => {
685
+ const isContentMenu = computeIsContentMenu.value
686
+ return isContentMenu
687
+ })
688
+
689
+ const computeIsContentMenu = computed(() => {
677
690
  const menuOpts = computeMenuOpts.value
678
691
  const headerMenu = computeHeaderMenu.value
679
692
  const bodyMenu = computeBodyMenu.value
@@ -891,6 +904,8 @@ export default defineVxeComponent({
891
904
  computeRadioOpts,
892
905
  computeCheckboxOpts,
893
906
  computeTooltipOpts,
907
+ computeHeaderTooltipOpts,
908
+ computeFooterTooltipOpts,
894
909
  computeEditOpts,
895
910
  computeSortOpts,
896
911
  computeFilterOpts,
@@ -903,6 +918,7 @@ export default defineVxeComponent({
903
918
  computeBodyMenu,
904
919
  computeFooterMenu,
905
920
  computeIsMenu,
921
+ computeIsContentMenu,
906
922
  computeMenuList,
907
923
  computeMenuOpts,
908
924
  computeExportOpts,
@@ -7632,7 +7648,7 @@ export default defineVxeComponent({
7632
7648
  const { mouseConfig, keyboardConfig, treeConfig, editConfig, highlightCurrentRow, highlightCurrentColumn } = props
7633
7649
  const { ctxMenuStore, editStore, currentRow } = reactData
7634
7650
  const { afterFullData } = internalData
7635
- const isMenu = computeIsMenu.value
7651
+ const isContentMenu = computeIsContentMenu.value
7636
7652
  const bodyMenu = computeBodyMenu.value
7637
7653
  const keyboardOpts = computeKeyboardOpts.value
7638
7654
  const mouseOpts = computeMouseOpts.value
@@ -7660,7 +7676,7 @@ export default defineVxeComponent({
7660
7676
  const hasShiftKey = evnt.shiftKey
7661
7677
  const isAltKey = evnt.altKey
7662
7678
  const operArrow = isLeftArrow || isUpArrow || isRightArrow || isDwArrow
7663
- const operCtxMenu = isMenu && ctxMenuStore.visible && (isEnter || isSpacebar || operArrow)
7679
+ const operCtxMenu = isContentMenu && ctxMenuStore.visible && (isEnter || isSpacebar || operArrow)
7664
7680
  const isEditStatus = isEnableConf(editConfig) && actived.column && actived.row
7665
7681
  const beforeEditMethod = editOpts.beforeEditMethod || editOpts.activeMethod
7666
7682
  if (operCtxMenu) {
@@ -8222,16 +8238,15 @@ export default defineVxeComponent({
8222
8238
  * @param {Event} evnt 事件
8223
8239
  * @param {Row} row 行对象
8224
8240
  */
8225
- const handleTooltip = (evnt: MouseEvent, type: 'header' | 'body' | 'footer', tdEl: HTMLTableCellElement, overflowElem: HTMLElement | null, tipElem: HTMLElement | null, params: any) => {
8241
+ const handleTooltip = (evnt: MouseEvent, tipOpts: VxeTablePropTypes.TooltipConfig | VxeTablePropTypes.HeaderTooltipConfig | VxeTablePropTypes.FooterTooltipConfig, type: 'header' | 'body' | 'footer', tdEl: HTMLTableCellElement, overflowElem: HTMLElement | null, tipElem: HTMLElement | null, params: any) => {
8226
8242
  const tipOverEl = overflowElem || tdEl
8227
8243
  if (!tipOverEl) {
8228
8244
  return nextTick()
8229
8245
  }
8230
8246
  params.cell = tdEl
8231
8247
  const { tooltipStore } = reactData
8232
- const tooltipOpts = computeTooltipOpts.value
8233
8248
  const { column, row } = params
8234
- const { showAll, contentMethod } = tooltipOpts
8249
+ const { showAll, contentMethod } = tipOpts
8235
8250
  const customContent = contentMethod ? contentMethod(params) : null
8236
8251
  const useCustom = contentMethod && !XEUtils.eqNull(customContent)
8237
8252
  const content = useCustom ? customContent : XEUtils.toString(column.type === 'html' ? tipOverEl.innerText : tipOverEl.textContent).trim()
@@ -8244,7 +8259,7 @@ export default defineVxeComponent({
8244
8259
  visible: true,
8245
8260
  content: tipContent,
8246
8261
  type,
8247
- currOpts: {}
8262
+ currOpts: tipOpts
8248
8263
  })
8249
8264
  nextTick(() => {
8250
8265
  const $tooltip = refTooltip.value
@@ -8302,8 +8317,10 @@ export default defineVxeComponent({
8302
8317
  const parentPaddingSize = height === '100%' || height === 'auto' ? getPaddingTopBottomSize(parentElem) : 0
8303
8318
  let parentWrapperHeight = 0
8304
8319
  if (parentElem) {
8305
- if ($xeGGWrapper && hasClass(parentElem, 'vxe-grid--table-wrapper')) {
8306
- parentWrapperHeight = $xeGGWrapper.getParentHeight()
8320
+ if ($xeGantt && hasClass(parentElem, 'vxe-gantt--table-wrapper')) {
8321
+ parentWrapperHeight = $xeGantt.getParentHeight()
8322
+ } else if ($xeGrid && hasClass(parentElem, 'vxe-grid--table-wrapper')) {
8323
+ parentWrapperHeight = $xeGrid.getParentHeight()
8307
8324
  } else {
8308
8325
  parentWrapperHeight = parentElem.clientHeight
8309
8326
  }
@@ -9144,6 +9161,8 @@ export default defineVxeComponent({
9144
9161
  const { treeConfig } = props
9145
9162
  const { isRowGroupStatus } = reactData
9146
9163
  const { afterFullData, afterTreeFullData, afterGroupFullData, checkboxReserveRowMap, selectCheckboxMaps, treeIndeterminateRowMaps } = internalData
9164
+ const aggregateOpts = computeAggregateOpts.value
9165
+ const { mapChildrenField } = aggregateOpts
9147
9166
  const checkboxOpts = computeCheckboxOpts.value
9148
9167
  const { checkField, checkMethod, showReserveStatus } = checkboxOpts
9149
9168
  const { handleGetRowId } = createHandleGetRowId($xeTable)
@@ -9159,7 +9178,18 @@ export default defineVxeComponent({
9159
9178
  ? row => {
9160
9179
  const childRowid = handleGetRowId(row)
9161
9180
  const selected = checkField ? XEUtils.get(row, checkField) : selectCheckboxMaps[childRowid]
9162
- if (checkMethod({ $table: $xeTable, row })) {
9181
+ if (isRowGroupStatus && $xeTable.isAggregateRecord(row)) {
9182
+ const childList: any[] = row[mapChildrenField || '']
9183
+ if (selected) {
9184
+ vLen++
9185
+ sLen++
9186
+ } else if (treeIndeterminateRowMaps[childRowid]) {
9187
+ vLen++
9188
+ hLen++
9189
+ } else if (childList && childList.length && childList.some(item => checkMethod({ $table: $xeTable, row: item }))) {
9190
+ vLen++
9191
+ }
9192
+ } else if (checkMethod({ $table: $xeTable, row })) {
9163
9193
  if (selected) {
9164
9194
  sLen++
9165
9195
  } else if (treeIndeterminateRowMaps[childRowid]) {
@@ -9353,6 +9383,7 @@ export default defineVxeComponent({
9353
9383
  */
9354
9384
  triggerHeaderTooltipEvent (evnt, params) {
9355
9385
  const { tooltipStore } = reactData
9386
+ const headerTooltipOpts = computeHeaderTooltipOpts.value
9356
9387
  const { column } = params
9357
9388
  handleTargetEnterEvent(true)
9358
9389
  const titleElem = evnt.currentTarget as HTMLDivElement
@@ -9373,7 +9404,7 @@ export default defineVxeComponent({
9373
9404
  }
9374
9405
  if (tooltipStore.column !== column || !tooltipStore.visible) {
9375
9406
  const ctEl = thEl.querySelector<HTMLElement>('.vxe-cell--title')
9376
- handleTooltip(evnt, 'header', thEl, (hasClass(thEl, 'col--ellipsis') ? ctEl : cWrapperEl) || cWrapperEl, ctEl || cellEl, params)
9407
+ handleTooltip(evnt, headerTooltipOpts, 'header', thEl, (hasClass(thEl, 'col--ellipsis') ? ctEl : cWrapperEl) || cWrapperEl, ctEl || cellEl, params)
9377
9408
  }
9378
9409
  },
9379
9410
  /**
@@ -9383,6 +9414,7 @@ export default defineVxeComponent({
9383
9414
  const { editConfig } = props
9384
9415
  const { editStore } = reactData
9385
9416
  const { tooltipStore } = reactData
9417
+ const tooltipOpts = computeTooltipOpts.value
9386
9418
  const editOpts = computeEditOpts.value
9387
9419
  const { actived } = editStore
9388
9420
  const { row, column } = params
@@ -9409,7 +9441,7 @@ export default defineVxeComponent({
9409
9441
  if (!tipEl) {
9410
9442
  tipEl = ctEl
9411
9443
  }
9412
- handleTooltip(evnt, 'body', tdEl, ovEl || ctEl, tipEl, params)
9444
+ handleTooltip(evnt, tooltipOpts, 'body', tdEl, ovEl || ctEl, tipEl, params)
9413
9445
  }
9414
9446
  },
9415
9447
  /**
@@ -9418,6 +9450,7 @@ export default defineVxeComponent({
9418
9450
  triggerFooterTooltipEvent (evnt, params) {
9419
9451
  const { column } = params
9420
9452
  const { tooltipStore } = reactData
9453
+ const footerTooltipOpts = computeFooterTooltipOpts.value
9421
9454
  const tdEl = evnt.currentTarget as HTMLTableCellElement
9422
9455
  handleTargetEnterEvent(tooltipStore.column !== column || !!tooltipStore.row)
9423
9456
  if (tooltipStore.column !== column || !tooltipStore.visible) {
@@ -9430,7 +9463,7 @@ export default defineVxeComponent({
9430
9463
  if (!tipEl) {
9431
9464
  tipEl = ctEl
9432
9465
  }
9433
- handleTooltip(evnt, 'footer', tdEl, ovEl || ctEl, tipEl, params)
9466
+ handleTooltip(evnt, footerTooltipOpts, 'footer', tdEl, ovEl || ctEl, tipEl, params)
9434
9467
  }
9435
9468
  },
9436
9469
  handleTargetLeaveEvent () {
@@ -9663,7 +9696,7 @@ export default defineVxeComponent({
9663
9696
  }
9664
9697
  }
9665
9698
  }
9666
- if (!checkMethod || checkMethod({ $table: $xeTable, row })) {
9699
+ if (isRowGroupStatus || !checkMethod || checkMethod({ $table: $xeTable, row })) {
9667
9700
  $xeTable.handleBatchSelectRows([row], checked)
9668
9701
  $xeTable.checkSelectionStatus()
9669
9702
  dispatchEvent('checkbox-change', Object.assign({
@@ -12261,7 +12294,7 @@ export default defineVxeComponent({
12261
12294
  const mouseOpts = computeMouseOpts.value
12262
12295
  const areaOpts = computeAreaOpts.value
12263
12296
  const loadingOpts = computeLoadingOpts.value
12264
- const isMenu = computeIsMenu.value
12297
+ const isContentMenu = computeIsContentMenu.value
12265
12298
  const currLoading = reactData.isColLoading || reactData.isRowLoading || loading
12266
12299
  const resizableOpts = computeResizableOpts.value
12267
12300
  const isArea = mouseConfig && mouseOpts.area
@@ -12478,7 +12511,7 @@ export default defineVxeComponent({
12478
12511
  /**
12479
12512
  * 快捷菜单
12480
12513
  */
12481
- isMenu
12514
+ isContentMenu
12482
12515
  ? h(TableMenuPanelComponent, {
12483
12516
  key: 'tm',
12484
12517
  ref: refTableMenu
@@ -68,6 +68,12 @@ VxeUI.setConfig({
68
68
  tooltipConfig: {
69
69
  enterable: true
70
70
  },
71
+ headerTooltipConfig: {
72
+ enterable: true
73
+ },
74
+ footerTooltipConfig: {
75
+ enterable: true
76
+ },
71
77
  validConfig: {
72
78
  showMessage: true,
73
79
  autoClear: true,