vxe-table 4.17.20 → 4.17.21

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 (34) hide show
  1. package/es/grid/src/grid.js +136 -30
  2. package/es/style.css +1 -1
  3. package/es/table/render/index.js +113 -4
  4. package/es/table/src/cell.js +3 -3
  5. package/es/table/src/table.js +27 -14
  6. package/es/ui/index.js +3 -2
  7. package/es/ui/src/log.js +1 -1
  8. package/lib/grid/src/grid.js +152 -43
  9. package/lib/grid/src/grid.min.js +1 -1
  10. package/lib/index.umd.js +310 -64
  11. package/lib/index.umd.min.js +1 -1
  12. package/lib/style.css +1 -1
  13. package/lib/table/render/index.js +140 -10
  14. package/lib/table/render/index.min.js +1 -1
  15. package/lib/table/src/cell.js +6 -3
  16. package/lib/table/src/cell.min.js +1 -1
  17. package/lib/table/src/table.js +5 -4
  18. package/lib/table/src/table.min.js +1 -1
  19. package/lib/ui/index.js +3 -2
  20. package/lib/ui/index.min.js +1 -1
  21. package/lib/ui/src/log.js +1 -1
  22. package/lib/ui/src/log.min.js +1 -1
  23. package/package.json +2 -2
  24. package/packages/grid/src/grid.ts +132 -29
  25. package/packages/table/render/index.ts +115 -4
  26. package/packages/table/src/cell.ts +3 -3
  27. package/packages/table/src/table.ts +26 -12
  28. package/packages/ui/index.ts +2 -1
  29. /package/es/{iconfont.1764045862093.ttf → iconfont.1764298161293.ttf} +0 -0
  30. /package/es/{iconfont.1764045862093.woff → iconfont.1764298161293.woff} +0 -0
  31. /package/es/{iconfont.1764045862093.woff2 → iconfont.1764298161293.woff2} +0 -0
  32. /package/lib/{iconfont.1764045862093.ttf → iconfont.1764298161293.ttf} +0 -0
  33. /package/lib/{iconfont.1764045862093.woff → iconfont.1764298161293.woff} +0 -0
  34. /package/lib/{iconfont.1764045862093.woff2 → iconfont.1764298161293.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.17.20";
16
+ const version = exports.version = "4.17.21";
17
17
  _core.VxeUI.version = version;
18
18
  _core.VxeUI.tableVersion = version;
19
19
  _core.VxeUI.setConfig({
@@ -292,9 +292,10 @@ _core.VxeUI.setConfig({
292
292
  showResponseMsg: true,
293
293
  showActionMsg: true,
294
294
  response: {
295
- list: null,
295
+ list: 'list',
296
296
  result: 'result',
297
297
  total: 'page.total',
298
+ footerData: 'footerData',
298
299
  message: 'message'
299
300
  }
300
301
  // beforeItem: null,
@@ -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.17.20",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"},menuConfig:{destroyOnClose:!0},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:{destroyOnClose:!0,multiple:!0,showIcon:!0},floatingFilterConfig:{},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,showRootLine:!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_MENU_OPTION_LOADING:iconPrefix+"repeat roll",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.17.21",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"},menuConfig:{destroyOnClose:!0},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:{destroyOnClose:!0,multiple:!0,showIcon:!0},floatingFilterConfig:{},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,showRootLine:!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:"list",result:"result",total:"page.total",footerData:"footerData",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_MENU_OPTION_LOADING:iconPrefix+"repeat roll",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.17.20"}`;
11
+ const version = `table v${"4.17.21"}`;
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.17.20",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.17.21",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.17.20",
3
+ "version": "4.17.21",
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.21"
69
+ "vxe-gantt": "~4.0.25"
70
70
  },
71
71
  "vetur": {
72
72
  "tags": "helper/vetur/tags.json",
@@ -23,6 +23,7 @@ const tableComponentMethodKeys: (keyof VxeTableMethods)[] = ['clearAll', 'syncDa
23
23
 
24
24
  function createInternalData (): GridInternalData {
25
25
  return {
26
+ uFoot: false
26
27
  }
27
28
  }
28
29
 
@@ -51,6 +52,7 @@ export default defineVxeComponent({
51
52
  filterData: [],
52
53
  formData: {},
53
54
  sortData: [],
55
+ footerData: [],
54
56
  tZindex: 0,
55
57
  tablePage: {
56
58
  total: 0,
@@ -149,21 +151,30 @@ export default defineVxeComponent({
149
151
  const computeTableExtendProps = computed(() => {
150
152
  const rest: Record<string, any> = {}
151
153
  tableComponentPropKeys.forEach((key) => {
152
- rest[key] = props[key]
154
+ if (props[key] !== undefined) {
155
+ rest[key] = props[key]
156
+ }
153
157
  })
154
158
  return rest
155
159
  })
156
160
 
157
161
  const computeTableProps = computed(() => {
158
- const { seqConfig, pagerConfig, editConfig, proxyConfig } = props
159
- const { isZMax, tablePage } = reactData
162
+ const { showFooter, seqConfig, pagerConfig, editConfig, proxyConfig } = props
163
+ const { isZMax, tablePage, footerData } = reactData
160
164
  const tableExtendProps = computeTableExtendProps.value
161
165
  const proxyOpts = computeProxyOpts.value
162
166
  const pagerOpts = computePagerOpts.value
163
167
  const isLoading = computeIsLoading.value
164
168
  const tProps = Object.assign({}, tableExtendProps)
169
+ if (showFooter && !tProps.footerData) {
170
+ // 如果未设置自己的标位数据,则使用代理的
171
+ tProps.footerData = footerData
172
+ } else if (proxyOpts.footer && footerData.length) {
173
+ // 如果代理标为数据,且未请求到数据,则用自己的
174
+ tProps.footerData = footerData
175
+ }
165
176
  if (isZMax) {
166
- if (tableExtendProps.maxHeight) {
177
+ if (tProps.maxHeight) {
167
178
  tProps.maxHeight = '100%'
168
179
  } else {
169
180
  tProps.height = '100%'
@@ -423,9 +434,12 @@ export default defineVxeComponent({
423
434
  reactData.filterData = params.filterList
424
435
  if (proxyConfig && isEnableConf(proxyOpts)) {
425
436
  reactData.tablePage.currentPage = 1
437
+ internalData.uFoot = true
426
438
  $xeGrid.commitProxy('query').then((rest) => {
427
439
  $xeGrid.dispatchEvent('proxy-query', rest, params.$event)
428
440
  })
441
+ internalData.uFoot = false
442
+ updateQueryFooter()
429
443
  }
430
444
  }
431
445
  }
@@ -447,9 +461,12 @@ export default defineVxeComponent({
447
461
  return
448
462
  }
449
463
  if (proxyConfig && isEnableConf(proxyOpts)) {
464
+ internalData.uFoot = true
450
465
  $xeGrid.commitProxy('reload').then((rest) => {
451
466
  $xeGrid.dispatchEvent('proxy-query', { ...rest, isReload: true }, params.$event)
452
467
  })
468
+ internalData.uFoot = false
469
+ updateQueryFooter()
453
470
  }
454
471
  $xeGrid.dispatchEvent('form-submit', params, params.$event)
455
472
  }
@@ -463,9 +480,12 @@ export default defineVxeComponent({
463
480
  if ($xeTable) {
464
481
  $xeTable.clearScroll()
465
482
  }
483
+ internalData.uFoot = true
466
484
  $xeGrid.commitProxy('reload').then((rest) => {
467
485
  $xeGrid.dispatchEvent('proxy-query', { ...rest, isReload: true }, $event)
468
486
  })
487
+ internalData.uFoot = false
488
+ updateQueryFooter()
469
489
  }
470
490
  $xeGrid.dispatchEvent('form-reset', params, $event)
471
491
  }
@@ -917,7 +937,13 @@ export default defineVxeComponent({
917
937
  if (!proxyInited) {
918
938
  reactData.proxyInited = true
919
939
  if (proxyOpts.autoLoad !== false) {
920
- nextTick().then(() => $xeGrid.commitProxy('initial')).then((rest) => {
940
+ nextTick().then(() => {
941
+ internalData.uFoot = true
942
+ const rest = $xeGrid.commitProxy('initial')
943
+ internalData.uFoot = false
944
+ updateQueryFooter()
945
+ return rest
946
+ }).then((rest) => {
921
947
  dispatchEvent('proxy-query', { ...rest, isInited: true }, new Event('initial'))
922
948
  })
923
949
  }
@@ -925,6 +951,14 @@ export default defineVxeComponent({
925
951
  }
926
952
  }
927
953
 
954
+ const updateQueryFooter = () => {
955
+ const proxyOpts = computeProxyOpts.value
956
+ const { ajax } = proxyOpts
957
+ if (ajax && ajax.queryFooter) {
958
+ return $xeGrid.commitProxy('queryFooter')
959
+ }
960
+ }
961
+
928
962
  const handleGlobalKeydownEvent = (evnt: KeyboardEvent) => {
929
963
  const zoomOpts = computeZoomOpts.value
930
964
  const isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE)
@@ -947,15 +981,15 @@ export default defineVxeComponent({
947
981
  * @param {String/Object} code 字符串或对象
948
982
  */
949
983
  commitProxy (proxyTarget: string | VxeToolbarPropTypes.ButtonConfig, ...args: any[]) {
950
- const { proxyConfig, toolbarConfig, pagerConfig, editRules, validConfig } = props
984
+ const { showFooter, proxyConfig, toolbarConfig, pagerConfig, editRules, validConfig } = props
951
985
  const { tablePage } = reactData
952
986
  const isActiveMsg = computeIsActiveMsg.value
953
987
  const isRespMsg = computeIsRespMsg.value
954
988
  const proxyOpts = computeProxyOpts.value
955
989
  const pagerOpts = computePagerOpts.value
956
990
  const toolbarOpts = computeToolbarOpts.value
957
- const { beforeQuery, afterQuery, beforeDelete, afterDelete, beforeSave, afterSave, ajax = {} } = proxyOpts
958
- const resConfigs = proxyOpts.response || proxyOpts.props || {}
991
+ const { beforeQuery, afterQuery, beforeQueryFooter, afterQueryFooter, beforeDelete, afterDelete, beforeSave, afterSave, ajax = {} } = proxyOpts
992
+ const resConfigs = (proxyOpts.response || proxyOpts.props || {}) as VxeGridDefines.ProxyConfigResponseConfig
959
993
  const $xeTable = refTable.value
960
994
  if (!$xeTable) {
961
995
  return nextTick()
@@ -1006,10 +1040,10 @@ export default defineVxeComponent({
1006
1040
  case 'initial':
1007
1041
  case 'reload':
1008
1042
  case 'query': {
1009
- const ajaxMethods = ajax.query
1010
- const querySuccessMethods = ajax.querySuccess
1011
- const queryErrorMethods = ajax.queryError
1012
- if (ajaxMethods) {
1043
+ const qMethods = ajax.query
1044
+ const qsMethods = ajax.querySuccess
1045
+ const qeMethods = ajax.queryError
1046
+ if (qMethods) {
1013
1047
  const isInited = code === 'initial'
1014
1048
  const isReload = code === 'reload'
1015
1049
  if (!isInited && reactData.tableLoading) {
@@ -1089,24 +1123,25 @@ export default defineVxeComponent({
1089
1123
  sorts: sortList,
1090
1124
  filters: filterList,
1091
1125
  form: formData,
1092
- options: ajaxMethods
1126
+ options: qMethods
1093
1127
  }
1094
1128
  reactData.sortData = sortList
1095
1129
  reactData.filterData = filterList
1096
1130
  reactData.tableLoading = true
1097
1131
  return Promise.all([
1098
- Promise.resolve((beforeQuery || ajaxMethods)(commitParams, ...args)),
1132
+ Promise.resolve((beforeQuery || qMethods)(commitParams, ...args)),
1099
1133
  operPromise
1100
1134
  ]).then(([rest]) => {
1101
1135
  let tableData: any[] = []
1102
1136
  reactData.tableLoading = false
1103
1137
  if (rest) {
1138
+ const reParams = { data: rest, $table: $xeTable, $grid: $xeGrid, $gantt: null }
1104
1139
  if (pagerConfig && isEnableConf(pagerOpts)) {
1105
1140
  const totalProp = resConfigs.total
1106
- const total = (XEUtils.isFunction(totalProp) ? totalProp({ data: rest, $table: $xeTable, $grid: $xeGrid, $gantt: null }) : XEUtils.get(rest, totalProp || 'page.total')) || 0
1141
+ const total = (XEUtils.isFunction(totalProp) ? totalProp(reParams) : XEUtils.get(rest, totalProp || 'page.total')) || 0
1107
1142
  tablePage.total = XEUtils.toNumber(total)
1108
1143
  const resultProp = resConfigs.result
1109
- tableData = (XEUtils.isFunction(resultProp) ? resultProp({ data: rest, $table: $xeTable, $grid: $xeGrid, $gantt: null }) : XEUtils.get(rest, resultProp || 'result')) || []
1144
+ tableData = (XEUtils.isFunction(resultProp) ? resultProp(reParams) : XEUtils.get(rest, resultProp || 'result')) || []
1110
1145
  // 检验当前页码,不能超出当前最大页数
1111
1146
  const pageCount = Math.max(Math.ceil(total / tablePage.pageSize), 1)
1112
1147
  if (tablePage.currentPage > pageCount) {
@@ -1114,7 +1149,18 @@ export default defineVxeComponent({
1114
1149
  }
1115
1150
  } else {
1116
1151
  const listProp = resConfigs.list
1117
- tableData = (listProp ? (XEUtils.isFunction(listProp) ? listProp({ data: rest, $table: $xeTable, $grid: $xeGrid, $gantt: null }) : XEUtils.get(rest, listProp)) : rest) || []
1152
+ if (XEUtils.isArray(rest)) {
1153
+ tableData = rest
1154
+ } else if (listProp) {
1155
+ tableData = (XEUtils.isFunction(listProp) ? listProp(reParams) : XEUtils.get(rest, listProp)) || []
1156
+ }
1157
+ }
1158
+ if (showFooter) {
1159
+ const fdProp = resConfigs.footerData
1160
+ const footerList = fdProp ? (XEUtils.isFunction(fdProp) ? fdProp(reParams) : XEUtils.get(rest, fdProp)) : []
1161
+ if (XEUtils.isArray(footerList)) {
1162
+ reactData.footerData = footerList
1163
+ }
1118
1164
  }
1119
1165
  }
1120
1166
  if ($xeTable) {
@@ -1130,14 +1176,14 @@ export default defineVxeComponent({
1130
1176
  if (afterQuery) {
1131
1177
  afterQuery(commitParams, ...args)
1132
1178
  }
1133
- if (querySuccessMethods) {
1134
- querySuccessMethods({ ...commitParams, response: rest })
1179
+ if (qsMethods) {
1180
+ qsMethods({ ...commitParams, response: rest })
1135
1181
  }
1136
1182
  return { status: true }
1137
1183
  }).catch((rest) => {
1138
1184
  reactData.tableLoading = false
1139
- if (queryErrorMethods) {
1140
- queryErrorMethods({ ...commitParams, response: rest })
1185
+ if (qeMethods) {
1186
+ qeMethods({ ...commitParams, response: rest })
1141
1187
  }
1142
1188
  return { status: false }
1143
1189
  })
@@ -1146,11 +1192,50 @@ export default defineVxeComponent({
1146
1192
  }
1147
1193
  break
1148
1194
  }
1195
+ case 'queryFooter': {
1196
+ const qfMethods = ajax.queryFooter
1197
+ const qfSuccessMethods = ajax.queryFooterSuccess
1198
+ const qfErrorMethods = ajax.queryFooterError
1199
+ if (qfMethods) {
1200
+ let filterList: VxeTableDefines.FilterCheckedParams[] = []
1201
+ if ($xeTable) {
1202
+ filterList = $xeTable.getCheckedFilters()
1203
+ }
1204
+ const commitParams = {
1205
+ $table: $xeTable,
1206
+ $grid: $xeGrid,
1207
+ $gantt: null,
1208
+ code,
1209
+ button,
1210
+ filters: filterList,
1211
+ form: formData,
1212
+ options: qfMethods
1213
+ }
1214
+ return Promise.resolve((beforeQueryFooter || qfMethods)(commitParams, ...args)).then(rest => {
1215
+ reactData.footerData = XEUtils.isArray(rest) ? rest : []
1216
+ if (afterQueryFooter) {
1217
+ afterQueryFooter(commitParams, ...args)
1218
+ }
1219
+ if (qfSuccessMethods) {
1220
+ qfSuccessMethods({ ...commitParams, response: rest })
1221
+ }
1222
+ return { status: true }
1223
+ }).catch((rest) => {
1224
+ if (qfErrorMethods) {
1225
+ qfErrorMethods({ ...commitParams, response: rest })
1226
+ }
1227
+ return { status: false }
1228
+ })
1229
+ } else {
1230
+ errLog('vxe.error.notFunc', ['[grid] proxy-config.ajax.queryFooter'])
1231
+ }
1232
+ break
1233
+ }
1149
1234
  case 'delete': {
1150
- const ajaxMethods = ajax.delete
1235
+ const dMethods = ajax.delete
1151
1236
  const deleteSuccessMethods = ajax.deleteSuccess
1152
1237
  const deleteErrorMethods = ajax.deleteError
1153
- if (ajaxMethods) {
1238
+ if (dMethods) {
1154
1239
  const selectRecords = $xeGrid.getCheckboxRecords()
1155
1240
  const removeRecords = selectRecords.filter(row => !$xeTable.isInsertByRow(row))
1156
1241
  const body = { removeRecords }
@@ -1162,7 +1247,7 @@ export default defineVxeComponent({
1162
1247
  button,
1163
1248
  body,
1164
1249
  form: formData,
1165
- options: ajaxMethods
1250
+ options: dMethods
1166
1251
  }
1167
1252
  if (selectRecords.length) {
1168
1253
  return handleDeleteRow(code, 'vxe.grid.deleteSelectRecord', () => {
@@ -1170,7 +1255,7 @@ export default defineVxeComponent({
1170
1255
  return $xeTable.remove(selectRecords)
1171
1256
  }
1172
1257
  reactData.tableLoading = true
1173
- return Promise.resolve((beforeDelete || ajaxMethods)(commitParams, ...args))
1258
+ return Promise.resolve((beforeDelete || dMethods)(commitParams, ...args))
1174
1259
  .then(rest => {
1175
1260
  reactData.tableLoading = false
1176
1261
  $xeTable.setPendingRow(removeRecords, false)
@@ -1182,7 +1267,10 @@ export default defineVxeComponent({
1182
1267
  if (afterDelete) {
1183
1268
  afterDelete(commitParams, ...args)
1184
1269
  } else {
1270
+ internalData.uFoot = true
1185
1271
  $xeGrid.commitProxy('query')
1272
+ internalData.uFoot = false
1273
+ updateQueryFooter()
1186
1274
  }
1187
1275
  if (deleteSuccessMethods) {
1188
1276
  deleteSuccessMethods({ ...commitParams, response: rest })
@@ -1263,7 +1351,10 @@ export default defineVxeComponent({
1263
1351
  if (afterSave) {
1264
1352
  afterSave(commitParams, ...args)
1265
1353
  } else {
1354
+ internalData.uFoot = true
1266
1355
  $xeGrid.commitProxy('query')
1356
+ internalData.uFoot = false
1357
+ updateQueryFooter()
1267
1358
  }
1268
1359
  if (saveSuccessMethods) {
1269
1360
  saveSuccessMethods({ ...commitParams, response: rest })
@@ -1501,11 +1592,23 @@ export default defineVxeComponent({
1501
1592
  },
1502
1593
  triggerToolbarCommitEvent (params, evnt) {
1503
1594
  const { code } = params
1504
- return $xeGrid.commitProxy(params, evnt).then((rest) => {
1505
- if (code && rest && rest.status && ['query', 'reload', 'delete', 'save'].includes(code)) {
1506
- $xeGrid.dispatchEvent(code === 'delete' || code === 'save' ? `proxy-${code as 'delete' | 'save'}` : 'proxy-query', { ...rest, isReload: code === 'reload' }, evnt)
1595
+ if (code) {
1596
+ const isUf = ['reload', 'delete', 'save'].includes(code)
1597
+ if (isUf) {
1598
+ internalData.uFoot = true
1507
1599
  }
1508
- })
1600
+ const rest = $xeGrid.commitProxy(params, evnt).then((rest) => {
1601
+ if (rest && rest.status && ['query', 'reload', 'delete', 'save'].includes(code)) {
1602
+ $xeGrid.dispatchEvent(code === 'delete' || code === 'save' ? `proxy-${code as 'delete' | 'save'}` : 'proxy-query', { ...rest, isReload: code === 'reload' }, evnt)
1603
+ }
1604
+ })
1605
+ internalData.uFoot = false
1606
+ if (isUf) {
1607
+ updateQueryFooter()
1608
+ }
1609
+ return rest
1610
+ }
1611
+ return nextTick()
1509
1612
  },
1510
1613
  triggerToolbarBtnEvent (button, evnt) {
1511
1614
  $xeGrid.triggerToolbarCommitEvent(button, evnt)
@@ -645,9 +645,8 @@ function oldSelectEditRender (renderOpts: VxeGlobalRendererHandles.RenderTableEd
645
645
  ]
646
646
  }
647
647
 
648
- function getSelectCellValue (renderOpts: VxeGlobalRendererHandles.RenderTableEditOptions, { row, column }: any) {
648
+ function handleSelectCellValue (cellValue: any, renderOpts: VxeGlobalRendererHandles.RenderTableCellOptions) {
649
649
  const { options, optionGroups, optionProps = {}, optionGroupProps = {}, props = {} } = renderOpts
650
- const cellValue = XEUtils.get(row, column.field)
651
650
  let selectItem: any
652
651
  const labelProp = optionProps.label || 'label'
653
652
  const valueProp = optionProps.value || 'value'
@@ -684,14 +683,18 @@ function getSelectCellValue (renderOpts: VxeGlobalRendererHandles.RenderTableEdi
684
683
  return ''
685
684
  }
686
685
 
686
+ function getSelectCellValue (renderOpts: VxeGlobalRendererHandles.RenderTableCellOptions, { row, column }: any) {
687
+ const cellValue = XEUtils.get(row, column.field)
688
+ return handleSelectCellValue(cellValue, renderOpts)
689
+ }
690
+
687
691
  function handleExportSelectMethod (params: any) {
688
692
  const { row, column, options } = params
689
693
  return options.original ? getCellValue(row, column) : getSelectCellValue(column.editRender || column.cellRender, params)
690
694
  }
691
695
 
692
- function getTreeSelectCellValue (renderOpts: VxeGlobalRendererHandles.RenderTableEditOptions, { row, column }: any) {
696
+ function handleTreeSelectCellValue (cellValue: any, renderOpts: VxeGlobalRendererHandles.RenderTableEditOptions) {
693
697
  const { options, optionProps = {} } = renderOpts
694
- const cellValue = XEUtils.get(row, column.field)
695
698
  const labelProp = optionProps.label || 'label'
696
699
  const valueProp = optionProps.value || 'value'
697
700
  const childrenProp = optionProps.children || 'children'
@@ -709,6 +712,11 @@ function getTreeSelectCellValue (renderOpts: VxeGlobalRendererHandles.RenderTabl
709
712
  return ''
710
713
  }
711
714
 
715
+ function getTreeSelectCellValue (renderOpts: VxeGlobalRendererHandles.RenderTableEditOptions, { row, column }: any) {
716
+ const cellValue = XEUtils.get(row, column.field)
717
+ return handleTreeSelectCellValue(cellValue, renderOpts)
718
+ }
719
+
712
720
  function handleExportTreeSelectMethod (params: any) {
713
721
  const { row, column, options } = params
714
722
  return options.original ? getCellValue(row, column) : getTreeSelectCellValue(column.editRender || column.cellRender, params)
@@ -770,6 +778,91 @@ function handleNumberCell (renderOpts: VxeGlobalRendererHandles.RenderTableDefau
770
778
  : {})
771
779
  }
772
780
 
781
+ function handleFormatSelect (renderOpts: VxeGlobalRendererHandles.RenderTableDefaultOptions, params: VxeGlobalRendererHandles.TableCellFormatterParams | VxeGlobalRendererHandles.TableCellCopyMethodParams) {
782
+ const { cellValue } = params
783
+ return handleSelectCellValue(cellValue, renderOpts)
784
+ }
785
+
786
+ function handleSetSelectValue (renderOpts: VxeGlobalRendererHandles.RenderTableDefaultOptions, params: VxeGlobalRendererHandles.TableCellFormatterParams | VxeGlobalRendererHandles.TableCellCopyMethodParams) {
787
+ const { row, column, cellValue } = params
788
+ const { field } = column
789
+ if (field) {
790
+ const { options, optionGroups, optionProps = {}, optionGroupProps = {}, props } = renderOpts
791
+ if (isEmptyValue(cellValue)) {
792
+ XEUtils.set(row, field, props && props.multiple ? [] : null)
793
+ return
794
+ }
795
+ const isMultiVal = XEUtils.indexOf(`${cellValue}`, ',') > -1
796
+ const labelProp = optionProps.label || 'label'
797
+ const valueProp = optionProps.value || 'value'
798
+ const labelMpas: Record<string, any> = {}
799
+ if (optionGroups && optionGroups.length) {
800
+ const groupOptions = optionGroupProps.options || 'options'
801
+ for (let i = 0; i < optionGroups.length; i++) {
802
+ const opts = optionGroups[i][groupOptions] || {}
803
+ for (let j = 0; j < opts.length; j++) {
804
+ const item = opts[j]
805
+ if (isMultiVal) {
806
+ labelMpas[item[labelProp]] = item
807
+ /* eslint-disable eqeqeq */
808
+ } else if (item[labelProp] == cellValue) {
809
+ XEUtils.set(row, field, item[valueProp])
810
+ return
811
+ }
812
+ }
813
+ }
814
+ } else {
815
+ if (options) {
816
+ for (let i = 0; i < options.length; i++) {
817
+ const item = options[i]
818
+ if (isMultiVal) {
819
+ labelMpas[item[labelProp]] = item
820
+ /* eslint-disable eqeqeq */
821
+ } else if (item[labelProp] == cellValue) {
822
+ XEUtils.set(row, field, item[valueProp])
823
+ return
824
+ }
825
+ }
826
+ }
827
+ }
828
+ if (isMultiVal) {
829
+ XEUtils.set(row, field, (isMultiVal
830
+ ? cellValue.split(',')
831
+ : [cellValue]).map((label: any) => {
832
+ const item = labelMpas[label]
833
+ return item ? item[valueProp] : label
834
+ }))
835
+ } else {
836
+ XEUtils.set(row, field, cellValue)
837
+ }
838
+ }
839
+ }
840
+
841
+ function handleFormatTreeSelect (renderOpts: VxeGlobalRendererHandles.RenderTableDefaultOptions, params: VxeGlobalRendererHandles.TableCellFormatterParams | VxeGlobalRendererHandles.TableCellCopyMethodParams) {
842
+ const { cellValue } = params
843
+ return handleTreeSelectCellValue(cellValue, renderOpts)
844
+ }
845
+
846
+ function handleSetTreeSelectValue (renderOpts: VxeGlobalRendererHandles.RenderTableDefaultOptions, params: VxeGlobalRendererHandles.TableCellFormatterParams | VxeGlobalRendererHandles.TableCellCopyMethodParams) {
847
+ const { row, column, cellValue } = params
848
+ const { field } = column
849
+ if (field) {
850
+ const { options, optionProps = {} } = renderOpts
851
+ const labelProp = optionProps.label || 'label'
852
+ const valueProp = optionProps.value || 'value'
853
+ const childrenProp = optionProps.children || 'children'
854
+ const matchRest = XEUtils.findTree(options || [], item => XEUtils.get(item, labelProp) === cellValue, { children: childrenProp })
855
+ if (matchRest) {
856
+ const selectItem = matchRest.item
857
+ if (selectItem) {
858
+ XEUtils.set(row, field, selectItem[valueProp])
859
+ return
860
+ }
861
+ }
862
+ XEUtils.set(row, field, cellValue)
863
+ }
864
+ }
865
+
773
866
  /**
774
867
  * 表格 - 渲染器
775
868
  */
@@ -803,6 +896,9 @@ renderer.mixin({
803
896
  renderOpts.optionGroups ? renderNativeOptgroups(renderOpts, params, renderNativeOptions) : renderNativeOptions(renderOpts.options, renderOpts, params))
804
897
  })
805
898
  },
899
+ tableCellFormatter: handleFormatSelect,
900
+ tableCellCopyMethod: handleFormatSelect,
901
+ tableCellPasteMethod: handleSetSelectValue,
806
902
  tableFilterDefaultMethod: handleFilterMethod,
807
903
  tableExportMethod: handleExportSelectMethod
808
904
  },
@@ -1040,6 +1136,9 @@ renderer.mixin({
1040
1136
  ...getFloatingFilterOns(renderOpts, params, option)
1041
1137
  })
1042
1138
  },
1139
+ tableCellFormatter: handleFormatSelect,
1140
+ tableCellCopyMethod: handleFormatSelect,
1141
+ tableCellPasteMethod: handleSetSelectValue,
1043
1142
  tableFilterDefaultMethod: handleFilterMethod,
1044
1143
  tableExportMethod: handleExportSelectMethod
1045
1144
  },
@@ -1086,6 +1185,9 @@ renderer.mixin({
1086
1185
  renderTableDefault (renderOpts, params) {
1087
1186
  return getCellLabelVNs(renderOpts, params, getSelectCellValue(renderOpts, params))
1088
1187
  },
1188
+ tableCellFormatter: handleFormatSelect,
1189
+ tableCellCopyMethod: handleFormatSelect,
1190
+ tableCellPasteMethod: handleSetSelectValue,
1089
1191
  tableFilterDefaultMethod: handleFilterMethod,
1090
1192
  tableExportMethod: handleExportSelectMethod
1091
1193
  },
@@ -1095,6 +1197,9 @@ renderer.mixin({
1095
1197
  renderTableCell (renderOpts, params) {
1096
1198
  return getCellLabelVNs(renderOpts, params, getTreeSelectCellValue(renderOpts, params))
1097
1199
  },
1200
+ tableCellFormatter: handleFormatTreeSelect,
1201
+ tableCellCopyMethod: handleFormatTreeSelect,
1202
+ tableCellPasteMethod: handleSetTreeSelectValue,
1098
1203
  tableExportMethod: handleExportTreeSelectMethod
1099
1204
  },
1100
1205
  /**
@@ -1110,6 +1215,9 @@ renderer.mixin({
1110
1215
  renderTableDefault (renderOpts, params) {
1111
1216
  return getCellLabelVNs(renderOpts, params, getTreeSelectCellValue(renderOpts, params))
1112
1217
  },
1218
+ tableCellFormatter: handleFormatTreeSelect,
1219
+ tableCellCopyMethod: handleFormatTreeSelect,
1220
+ tableCellPasteMethod: handleSetTreeSelectValue,
1113
1221
  tableExportMethod: handleExportTreeSelectMethod
1114
1222
  },
1115
1223
  VxeTableSelect: {
@@ -1118,6 +1226,9 @@ renderer.mixin({
1118
1226
  renderTableCell (renderOpts, params) {
1119
1227
  return getCellLabelVNs(renderOpts, params, getTreeSelectCellValue(renderOpts, params))
1120
1228
  },
1229
+ tableCellFormatter: handleFormatTreeSelect,
1230
+ tableCellCopyMethod: handleFormatTreeSelect,
1231
+ tableCellPasteMethod: handleSetTreeSelectValue,
1121
1232
  tableExportMethod: handleExportTreeSelectMethod
1122
1233
  },
1123
1234
  VxeColorPicker: {
@@ -496,7 +496,7 @@ export const Cell = {
496
496
  const { rowGroupExpandedFlag } = tableReactData
497
497
  const { rowGroupExpandedMaps } = tableInternalData
498
498
  const aggregateOpts = computeAggregateOpts.value
499
- const { mode, padding, indent } = aggregateOpts
499
+ const { mode, padding, indent, showIcon, iconOpen, iconClose } = aggregateOpts
500
500
  const rowid = getRowid($table, row)
501
501
  const isExpand = !!rowGroupExpandedFlag && !!rowGroupExpandedMaps[rowid]
502
502
  return h('div', {
@@ -509,7 +509,7 @@ export const Cell = {
509
509
  }
510
510
  : undefined
511
511
  }, [
512
- row.isAggregate
512
+ showIcon && row.isAggregate
513
513
  ? h('span', {
514
514
  class: 'vxe-row-group--node-btn',
515
515
  onClick (evnt: MouseEvent) {
@@ -517,7 +517,7 @@ export const Cell = {
517
517
  }
518
518
  }, [
519
519
  h('i', {
520
- class: isExpand ? getIcon().TABLE_ROW_GROUP_OPEN : getIcon().TABLE_ROW_GROUP_CLOSE
520
+ class: isExpand ? (iconOpen || getIcon().TABLE_ROW_GROUP_OPEN) : (iconClose || getIcon().TABLE_ROW_GROUP_CLOSE)
521
521
  })
522
522
  ])
523
523
  : renderEmptyElement($table),