vxe-table 4.22.0-beta.0 → 4.22.0

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 (71) hide show
  1. package/dist/all.esm.js +82 -43
  2. package/dist/style.css +1 -1
  3. package/es/grid/src/grid.js +2 -2
  4. package/es/style.css +1 -1
  5. package/es/table/module/edit/hook.js +4 -2
  6. package/es/table/module/export/hook.js +7 -5
  7. package/es/table/module/filter/hook.js +5 -3
  8. package/es/table/module/filter/panel.js +5 -3
  9. package/es/table/src/body.js +5 -3
  10. package/es/table/src/cell.js +16 -6
  11. package/es/table/src/columnInfo.js +3 -2
  12. package/es/table/src/footer.js +3 -2
  13. package/es/table/src/header.js +6 -4
  14. package/es/table/src/props.js +4 -0
  15. package/es/table/src/table.js +13 -5
  16. package/es/toolbar/src/toolbar.js +7 -4
  17. package/es/ui/index.js +1 -1
  18. package/es/ui/src/log.js +1 -1
  19. package/lib/grid/src/grid.js +2 -2
  20. package/lib/grid/src/grid.min.js +1 -1
  21. package/lib/index.umd.js +100 -47
  22. package/lib/index.umd.min.js +1 -1
  23. package/lib/style.css +1 -1
  24. package/lib/table/module/edit/hook.js +5 -2
  25. package/lib/table/module/edit/hook.min.js +1 -1
  26. package/lib/table/module/export/hook.js +8 -5
  27. package/lib/table/module/export/hook.min.js +1 -1
  28. package/lib/table/module/filter/hook.js +6 -3
  29. package/lib/table/module/filter/hook.min.js +1 -1
  30. package/lib/table/module/filter/panel.js +6 -3
  31. package/lib/table/module/filter/panel.min.js +1 -1
  32. package/lib/table/src/body.js +6 -3
  33. package/lib/table/src/body.min.js +1 -1
  34. package/lib/table/src/cell.js +26 -6
  35. package/lib/table/src/cell.min.js +1 -1
  36. package/lib/table/src/columnInfo.js +6 -4
  37. package/lib/table/src/columnInfo.min.js +1 -1
  38. package/lib/table/src/footer.js +4 -2
  39. package/lib/table/src/footer.min.js +1 -1
  40. package/lib/table/src/header.js +7 -4
  41. package/lib/table/src/header.min.js +1 -1
  42. package/lib/table/src/props.js +4 -0
  43. package/lib/table/src/props.min.js +1 -1
  44. package/lib/table/src/table.js +7 -7
  45. package/lib/table/src/table.min.js +1 -1
  46. package/lib/toolbar/src/toolbar.js +11 -4
  47. package/lib/toolbar/src/toolbar.min.js +1 -1
  48. package/lib/ui/index.js +1 -1
  49. package/lib/ui/index.min.js +1 -1
  50. package/lib/ui/src/log.js +1 -1
  51. package/lib/ui/src/log.min.js +1 -1
  52. package/package.json +2 -2
  53. package/packages/grid/src/grid.ts +2 -2
  54. package/packages/table/module/edit/hook.ts +4 -2
  55. package/packages/table/module/export/hook.ts +7 -5
  56. package/packages/table/module/filter/hook.ts +6 -4
  57. package/packages/table/module/filter/panel.ts +5 -3
  58. package/packages/table/src/body.ts +5 -3
  59. package/packages/table/src/cell.ts +16 -6
  60. package/packages/table/src/columnInfo.ts +4 -2
  61. package/packages/table/src/footer.ts +3 -2
  62. package/packages/table/src/header.ts +6 -4
  63. package/packages/table/src/props.ts +4 -0
  64. package/packages/table/src/table.ts +14 -5
  65. package/packages/toolbar/src/toolbar.ts +7 -4
  66. /package/es/{iconfont.1789131679524.ttf → iconfont.1789914604819.ttf} +0 -0
  67. /package/es/{iconfont.1789131679524.woff → iconfont.1789914604819.woff} +0 -0
  68. /package/es/{iconfont.1789131679524.woff2 → iconfont.1789914604819.woff2} +0 -0
  69. /package/lib/{iconfont.1789131679524.ttf → iconfont.1789914604819.ttf} +0 -0
  70. /package/lib/{iconfont.1789131679524.woff → iconfont.1789914604819.woff} +0 -0
  71. /package/lib/{iconfont.1789131679524.woff2 → iconfont.1789914604819.woff2} +0 -0
@@ -458,13 +458,17 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
458
458
  const buttonSuffixSlot = slots.buttonSuffix || slots['button-suffix'];
459
459
  const btnVNs = [];
460
460
  if (buttons) {
461
+ const {
462
+ computeRendererOpts
463
+ } = $table ? $table.getComputeMaps() : {};
464
+ const rendererOpts = (computeRendererOpts ? computeRendererOpts.value : null) || {};
461
465
  buttons.forEach((item, index) => {
462
466
  const {
463
467
  dropdowns,
464
468
  buttonRender
465
469
  } = item;
466
470
  if (item.visible !== false) {
467
- const compConf = buttonRender ? renderer.get(buttonRender.name) : null;
471
+ const compConf = buttonRender && buttonRender.name ? rendererOpts[buttonRender.name] || renderer.get(buttonRender.name) : null;
468
472
  if (buttonRender && compConf && compConf.renderToolbarButton) {
469
473
  const toolbarButtonClassName = compConf.toolbarButtonClassName;
470
474
  const params = {
@@ -533,14 +537,17 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
533
537
  const toolSuffixSlot = slots.toolSuffix || slots['tool-suffix'];
534
538
  const btnVNs = [];
535
539
  if (tools) {
540
+ const {
541
+ computeRendererOpts
542
+ } = $table ? $table.getComputeMaps() : {};
543
+ const rendererOpts = (computeRendererOpts ? computeRendererOpts.value : null) || {};
536
544
  tools.forEach((item, tIndex) => {
537
545
  const {
538
546
  dropdowns,
539
547
  toolRender
540
548
  } = item;
541
549
  if (item.visible !== false) {
542
- const rdName = toolRender ? toolRender.name : null;
543
- const compConf = toolRender ? renderer.get(rdName) : null;
550
+ const compConf = toolRender && toolRender.name ? rendererOpts[toolRender.name] || renderer.get(toolRender.name) : null;
544
551
  if (toolRender && compConf && compConf.renderToolbarTool) {
545
552
  const toolbarToolClassName = compConf.toolbarToolClassName;
546
553
  const params = {
@@ -550,7 +557,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
550
557
  tool: item
551
558
  };
552
559
  btnVNs.push((0, _vue.h)('span', {
553
- key: rdName,
560
+ key: tIndex,
554
561
  class: ['vxe-tool--item', toolbarToolClassName ? _xeUtils.default.isFunction(toolbarToolClassName) ? toolbarToolClassName(params) : toolbarToolClassName : '']
555
562
  }, (0, _vn.getSlotVNs)(compConf.renderToolbarTool(toolRender, params))));
556
563
  } else {
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{warnLog,errLog}=(0,_log.createComponentLog)("toolbar"),{getConfig,getIcon,getI18n,renderer,commands,createEvent,useFns}=_ui.VxeUI;function createReactData(){return{isRefresh:!1,connectFlag:0,columns:[]}}function createInternalData(){return{connectTable:null}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeToolbar",props:{loading:Boolean,refresh:[Boolean,Object],refreshOptions:Object,import:[Boolean,Object],importOptions:Object,export:[Boolean,Object],exportOptions:Object,print:[Boolean,Object],printOptions:Object,zoom:[Boolean,Object],zoomOptions:Object,custom:[Boolean,Object],customOptions:Object,buttons:{type:Array,default:()=>getConfig().toolbar.buttons},tools:{type:Array,default:()=>getConfig().toolbar.tools},perfect:{type:Boolean,default:()=>getConfig().toolbar.perfect},size:{type:String,default:()=>getConfig().toolbar.size||getConfig().size},className:[String,Function]},emits:["button-click","tool-click"],setup(u,e){let{slots:v,emit:r}=e;var t=_xeUtils.default.uniqueId();let p=_ui.VxeUI.getComponent("VxeButton"),g=(0,_vue.inject)("$xeGrid",null),b=(0,_vue.inject)("$xeGantt",null),l=g||b,s=useFns.useSize(u).computeSize,c=(0,_vue.reactive)(createReactData()),m=createInternalData(),d=(0,_vue.ref)(),o={refElem:d},f={xID:t,props:u,context:e,reactData:c,internalData:m,getRefMaps:()=>o};let _=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().toolbar.refresh,!0),u.refreshOptions,u.refresh)),x=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().toolbar.import,!0),u.importOptions,u.import)),O=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().toolbar.export,!0),u.exportOptions,u.export)),h=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().toolbar.print,!0),u.printOptions,u.print)),T=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().toolbar.zoom,!0),u.zoomOptions,u.zoom)),C=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().toolbar.custom,!0),u.customOptions,u.custom)),n=(0,_vue.computed)(()=>{var e=m.connectTable;if((c.connectFlag||e)&&e)return e=e.getComputeMaps().computeCustomOpts,e.value;return{trigger:""}}),$=(0,_vue.computed)(()=>n.value.trigger),a=()=>{var e=m.connectTable;if(e)return!0;errLog("vxe.error.barUnableLink")},L=({$event:e})=>{var t=m.connectTable;t&&t.triggerCustomEvent&&t.triggerCustomEvent(e)},j=({$event:e})=>{var t=m.connectTable;t&&t.customOpenEvent(e)},k=({$event:t})=>{var e=m.connectTable;let o=e;if(o){let e=o.reactData.customStore;e.activeBtn=!1,setTimeout(()=>{e.activeBtn||e.activeWrapper||o.customCloseEvent(t)},350)}},I=({$event:e})=>{var t=c.isRefresh,o=_.value;if(!t){t=o.queryMethod||o.query;if(t){c.isRefresh=!0;try{Promise.resolve(t({})).catch(e=>e).then(()=>{c.isRefresh=!1})}catch(e){c.isRefresh=!1}}else l&&(c.isRefresh=!0,l.triggerToolbarCommitEvent({code:o.code||"reload"},e).catch(()=>{}).then(()=>{c.isRefresh=!1}))}},R=({$event:e})=>{l?l.triggerZoomEvent(e):warnLog("vxe.error.notProp",["zoom"])},P=()=>{var e;a()&&(e=m.connectTable,e)&&e.importData()},w=()=>{var e;a()&&(e=m.connectTable,e)&&e.openImport()},B=()=>{var e;a()&&(e=m.connectTable,e)&&e.exportData()},S=()=>{var e;a()&&(e=m.connectTable,e)&&e.openExport()},z=()=>{var e;a()&&(e=m.connectTable,e)&&e.print()},N=()=>{var e;a()&&(e=m.connectTable,e)&&e.openPrint()},i=(e,t,o)=>{switch(t.code){case"print":z();break;case"open_print":N();break;case"custom":L(e);break;case"export":B();break;case"open_export":S();break;case"import":P();break;case"open_import":w();break;case"zoom":R(e);break;case"refresh":I(e);break;default:o()}},U=(e,o)=>{let r=e.$event;var t=m.connectTable;let n=t,a=o.code;a&&i(e,o,()=>{var e,t;l?l.triggerToolbarBtnEvent(o,r):(t=commands.get(a),e={code:a,button:o,$table:n,$grid:g,$gantt:b,$event:r},t&&((t=t.tableCommandMethod||t.commandMethod)?t(e):errLog("vxe.error.notCommands",[a])),f.dispatchEvent("button-click",e,r))})},y=(e,o)=>{let r=e.$event;var t=m.connectTable;let n=t,a=o.code;a&&i(e,o,()=>{var e,t;l?l.triggerToolbarTolEvent(o,r):(t=commands.get(a),e={code:a,button:null,tool:o,$table:n,$grid:g,$gantt:b,$event:r},t&&((t=t.tableCommandMethod||t.commandMethod)?t(e):errLog("vxe.error.notCommands",[a])),f.dispatchEvent("tool-click",e,r))})};Object.assign(f,{dispatchEvent:(e,t,o)=>{r(e,createEvent(o,{$toolbar:f},t))},syncUpdate(e){m.connectTable=e.$table,c.columns=e.collectColumn,c.connectFlag++}});let E=(e,o)=>{e=e.dropdowns;return e?e.map((t,e)=>!1!==t.visible&&p?(0,_vue.h)(p,Object.assign(Object.assign({key:e},Object.assign({},t,{content:t.content||t.name,options:void 0})),{onClick:e=>(o?U:y)(e,t)})):(0,_vue.createCommentVNode)()):[]};return f.renderVN=()=>{var{perfect:e,loading:t,refresh:o,zoom:r,custom:n,className:a}=u,i=s.value;return(0,_vue.h)("div",{ref:d,class:["vxe-toolbar",a?_xeUtils.default.isFunction(a)?a({$toolbar:f}):a:"",{["size--"+i]:i,"is--perfect":e,"is--loading":t}]},[(0,_vue.h)("div",{class:"vxe-buttons--wrapper"},(()=>{var e=u.buttons,t=m.connectTable;let l=t;var t=v.buttons,o=v.buttonPrefix||v["button-prefix"],r=v.buttonSuffix||v["button-suffix"];let s=[];return e&&e.forEach((t,e)=>{var o,r,n,{dropdowns:a,buttonRender:i}=t;!1!==t.visible&&(o=i?renderer.get(i.name):null,i&&o&&o.renderToolbarButton?(r=o.toolbarButtonClassName,n={$grid:g,$gantt:b,$table:l,button:t},s.push((0,_vue.h)("span",{key:"br"+(t.code||e),class:["vxe-button--item",r?_xeUtils.default.isFunction(r)?r(n):r:""]},(0,_vn.getSlotVNs)(o.renderToolbarButton(i,n))))):p&&s.push((0,_vue.h)(p,Object.assign(Object.assign({key:"bd"+(t.code||e)},Object.assign({},t,{content:t.content||t.name,options:void 0})),{onClick:e=>U(e,t)}),a&&a.length?{dropdowns:()=>E(t,!0)}:{})))}),[(0,_vue.h)("div",{class:"vxe-button--prefix-wrapper"},o?(0,_vn.getSlotVNs)(o({buttons:e||[],$grid:g,$gantt:b,$table:l})):[]),(0,_vue.h)("div",{class:"vxe-button--item-wrapper"},t?(0,_vn.getSlotVNs)(t({buttons:e||[],$grid:g,$gantt:b,$table:l})):s),(0,_vue.h)("div",{class:"vxe-button--suffix-wrapper"},r?(0,_vn.getSlotVNs)(r({buttons:e||[],$grid:g,$gantt:b,$table:l})):[])]})()),(0,_vue.h)("div",{class:"vxe-tools--wrapper"},(()=>{var e=u.tools,t=m.connectTable;let s=t;var t=v.tools,o=v.toolPrefix||v["tool-prefix"],r=v.toolSuffix||v["tool-suffix"];let c=[];return e&&e.forEach((t,e)=>{var o,r,n,a,{dropdowns:i,toolRender:l}=t;!1!==t.visible&&(o=l?l.name:null,r=l?renderer.get(o):null,l&&r&&r.renderToolbarTool?(n=r.toolbarToolClassName,a={$grid:g,$gantt:b,$table:s,tool:t},c.push((0,_vue.h)("span",{key:o,class:["vxe-tool--item",n?_xeUtils.default.isFunction(n)?n(a):n:""]},(0,_vn.getSlotVNs)(r.renderToolbarTool(l,a))))):p&&c.push((0,_vue.h)(p,Object.assign(Object.assign({key:e},Object.assign({},t,{content:t.content||t.name,options:void 0})),{onClick:e=>y(e,t)}),i&&i.length?{dropdowns:()=>E(t,!1)}:{})))}),[(0,_vue.h)("div",{class:"vxe-tool--prefix-wrapper"},o?(0,_vn.getSlotVNs)(o({tools:e||[],$grid:g,$gantt:b,$table:s})):[]),(0,_vue.h)("div",{class:"vxe-tool--item-wrapper"},t?(0,_vn.getSlotVNs)(t({tools:e||[],$grid:g,$gantt:b,$table:s})):c),(0,_vue.h)("div",{class:"vxe-tool--suffix-wrapper"},r?(0,_vn.getSlotVNs)(r({tools:e||[],$grid:g,$gantt:b,$table:s})):[])]})()),(0,_vue.h)("div",{class:"vxe-tools--operate"},[u.import&&(a=x.value,p)?(0,_vue.h)(p,{key:"import",circle:!0,icon:a.icon||getIcon().TOOLBAR_TOOLS_IMPORT,title:getI18n("vxe.toolbar.import"),onClick:w}):(0,_vue.createCommentVNode)(),u.export&&(i=O.value,p)?(0,_vue.h)(p,{key:"export",circle:!0,icon:i.icon||getIcon().TOOLBAR_TOOLS_EXPORT,title:getI18n("vxe.toolbar.export"),onClick:S}):(0,_vue.createCommentVNode)(),u.print&&(e=h.value,p)?(0,_vue.h)(p,{key:"print",circle:!0,icon:e.icon||getIcon().TOOLBAR_TOOLS_PRINT,title:getI18n("vxe.toolbar.print"),onClick:N}):(0,_vue.createCommentVNode)(),o&&(t=_.value,p)?(0,_vue.h)(p,{key:"refresh",circle:!0,icon:c.isRefresh?t.iconLoading||getIcon().TOOLBAR_TOOLS_REFRESH_LOADING:t.icon||getIcon().TOOLBAR_TOOLS_REFRESH,title:getI18n("vxe.toolbar.refresh"),onClick:I}):(0,_vue.createCommentVNode)(),r&&l&&(a=T.value,l)&&p?(0,_vue.h)(p,{key:"zoom",circle:!0,icon:l.isMaximized()?a.iconOut||getIcon().TOOLBAR_TOOLS_MINIMIZE:a.iconIn||getIcon().TOOLBAR_TOOLS_FULLSCREEN,title:getI18n("vxe.toolbar.zoom"+(l.isMaximized()?"Out":"In")),onClick:R}):(0,_vue.createCommentVNode)(),n&&(i=C.value,e=$.value,o={},"manual"!==e&&("hover"===e?(o.onMouseenter=j,o.onMouseleave=k):o.onClick=L),p)?(0,_vue.h)(p,Object.assign({key:"custom",circle:!0,icon:i.icon||getIcon().TOOLBAR_TOOLS_CUSTOM,title:getI18n("vxe.toolbar.custom"),className:"vxe-toolbar-custom-target"},o)):(0,_vue.createCommentVNode)()])])},(0,_vue.nextTick)(()=>{var e=_.value,e=e.queryMethod||e.query,e=(!u.refresh||l||e||warnLog("vxe.error.notFunc",["queryMethod"]),_xeUtils.default.isPlainObject(u.custom)&&warnLog("vxe.error.delProp",["custom={...}","custom=boolean & custom-options={...}"]),_xeUtils.default.isPlainObject(u.print)&&warnLog("vxe.error.delProp",["print={...}","print=boolean & print-options={...}"]),_xeUtils.default.isPlainObject(u.export)&&warnLog("vxe.error.delProp",["export={...}","export=boolean & export-options={...}"]),_xeUtils.default.isPlainObject(u.import)&&warnLog("vxe.error.delProp",["import={...}","import=boolean & import-options={...}"]),_xeUtils.default.isPlainObject(u.refresh)&&warnLog("vxe.error.delProp",["refresh={...}","refresh=boolean & refresh-options={...}"]),_xeUtils.default.isPlainObject(u.refresh)&&warnLog("vxe.error.delProp",["zoom={...}","zoom=boolean & zoom-options={...}"]),C.value);e.isFooter&&warnLog("vxe.error.delProp",["toolbar.custom.isFooter","table.custom-config.showFooter"]),e.showFooter&&warnLog("vxe.error.delProp",["toolbar.custom.showFooter","table.custom-config.showFooter"]),e.immediate&&warnLog("vxe.error.delProp",["toolbar.custom.immediate","table.custom-config.immediate"]),e.trigger&&warnLog("vxe.error.delProp",["toolbar.custom.trigger","table.custom-config.trigger"]),(u.refresh||u.import||u.export||u.print||u.zoom)&&!p&&errLog("vxe.error.reqComp",["vxe-button"])}),(0,_vue.onBeforeUnmount)(()=>{_xeUtils.default.assign(c,createReactData()),_xeUtils.default.assign(m,createInternalData())}),f},render(){return this.renderVN()}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{warnLog,errLog}=(0,_log.createComponentLog)("toolbar"),{getConfig,getIcon,getI18n,renderer,commands,createEvent,useFns}=_ui.VxeUI;function createReactData(){return{isRefresh:!1,connectFlag:0,columns:[]}}function createInternalData(){return{connectTable:null}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeToolbar",props:{loading:Boolean,refresh:[Boolean,Object],refreshOptions:Object,import:[Boolean,Object],importOptions:Object,export:[Boolean,Object],exportOptions:Object,print:[Boolean,Object],printOptions:Object,zoom:[Boolean,Object],zoomOptions:Object,custom:[Boolean,Object],customOptions:Object,buttons:{type:Array,default:()=>getConfig().toolbar.buttons},tools:{type:Array,default:()=>getConfig().toolbar.tools},perfect:{type:Boolean,default:()=>getConfig().toolbar.perfect},size:{type:String,default:()=>getConfig().toolbar.size||getConfig().size},className:[String,Function]},emits:["button-click","tool-click"],setup(i,e){let{slots:u,emit:r}=e;var t=_xeUtils.default.uniqueId();let v=_ui.VxeUI.getComponent("VxeButton"),p=(0,_vue.inject)("$xeGrid",null),g=(0,_vue.inject)("$xeGantt",null),s=p||g,c=useFns.useSize(i).computeSize,m=(0,_vue.reactive)(createReactData()),b=createInternalData(),d=(0,_vue.ref)(),o={refElem:d},f={xID:t,props:i,context:e,reactData:m,internalData:b,getRefMaps:()=>o};let _=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().toolbar.refresh,!0),i.refreshOptions,i.refresh)),x=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().toolbar.import,!0),i.importOptions,i.import)),O=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().toolbar.export,!0),i.exportOptions,i.export)),h=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().toolbar.print,!0),i.printOptions,i.print)),T=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().toolbar.zoom,!0),i.zoomOptions,i.zoom)),C=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().toolbar.custom,!0),i.customOptions,i.custom)),n=(0,_vue.computed)(()=>{var e=b.connectTable;if((m.connectFlag||e)&&e)return e=e.getComputeMaps().computeCustomOpts,e.value;return{trigger:""}}),$=(0,_vue.computed)(()=>n.value.trigger),a=()=>{var e=b.connectTable;if(e)return!0;errLog("vxe.error.barUnableLink")},L=({$event:e})=>{var t=b.connectTable;t&&t.triggerCustomEvent&&t.triggerCustomEvent(e)},j=({$event:e})=>{var t=b.connectTable;t&&t.customOpenEvent(e)},k=({$event:t})=>{var e=b.connectTable;let o=e;if(o){let e=o.reactData.customStore;e.activeBtn=!1,setTimeout(()=>{e.activeBtn||e.activeWrapper||o.customCloseEvent(t)},350)}},R=({$event:e})=>{var t=m.isRefresh,o=_.value;if(!t){t=o.queryMethod||o.query;if(t){m.isRefresh=!0;try{Promise.resolve(t({})).catch(e=>e).then(()=>{m.isRefresh=!1})}catch(e){m.isRefresh=!1}}else s&&(m.isRefresh=!0,s.triggerToolbarCommitEvent({code:o.code||"reload"},e).catch(()=>{}).then(()=>{m.isRefresh=!1}))}},I=({$event:e})=>{s?s.triggerZoomEvent(e):warnLog("vxe.error.notProp",["zoom"])},P=()=>{var e;a()&&(e=b.connectTable,e)&&e.importData()},w=()=>{var e;a()&&(e=b.connectTable,e)&&e.openImport()},B=()=>{var e;a()&&(e=b.connectTable,e)&&e.exportData()},S=()=>{var e;a()&&(e=b.connectTable,e)&&e.openExport()},z=()=>{var e;a()&&(e=b.connectTable,e)&&e.print()},N=()=>{var e;a()&&(e=b.connectTable,e)&&e.openPrint()},l=(e,t,o)=>{switch(t.code){case"print":z();break;case"open_print":N();break;case"custom":L(e);break;case"export":B();break;case"open_export":S();break;case"import":P();break;case"open_import":w();break;case"zoom":I(e);break;case"refresh":R(e);break;default:o()}},U=(e,o)=>{let r=e.$event;var t=b.connectTable;let n=t,a=o.code;a&&l(e,o,()=>{var e,t;s?s.triggerToolbarBtnEvent(o,r):(t=commands.get(a),e={code:a,button:o,$table:n,$grid:p,$gantt:g,$event:r},t&&((t=t.tableCommandMethod||t.commandMethod)?t(e):errLog("vxe.error.notCommands",[a])),f.dispatchEvent("button-click",e,r))})},y=(e,o)=>{let r=e.$event;var t=b.connectTable;let n=t,a=o.code;a&&l(e,o,()=>{var e,t;s?s.triggerToolbarTolEvent(o,r):(t=commands.get(a),e={code:a,button:null,tool:o,$table:n,$grid:p,$gantt:g,$event:r},t&&((t=t.tableCommandMethod||t.commandMethod)?t(e):errLog("vxe.error.notCommands",[a])),f.dispatchEvent("tool-click",e,r))})};Object.assign(f,{dispatchEvent:(e,t,o)=>{r(e,createEvent(o,{$toolbar:f},t))},syncUpdate(e){b.connectTable=e.$table,m.columns=e.collectColumn,m.connectFlag++}});let E=(e,o)=>{e=e.dropdowns;return e?e.map((t,e)=>!1!==t.visible&&v?(0,_vue.h)(v,Object.assign(Object.assign({key:e},Object.assign({},t,{content:t.content||t.name,options:void 0})),{onClick:e=>(o?U:y)(e,t)})):(0,_vue.createCommentVNode)()):[]};return f.renderVN=()=>{var{perfect:e,loading:t,refresh:o,zoom:r,custom:n,className:a}=i,l=c.value;return(0,_vue.h)("div",{ref:d,class:["vxe-toolbar",a?_xeUtils.default.isFunction(a)?a({$toolbar:f}):a:"",{["size--"+l]:l,"is--perfect":e,"is--loading":t}]},[(0,_vue.h)("div",{class:"vxe-buttons--wrapper"},(()=>{var e=i.buttons,t=b.connectTable;let s=t;var t=u.buttons,o=u.buttonPrefix||u["button-prefix"],r=u.buttonSuffix||u["button-suffix"];let c=[];if(e){var n=(s?s.getComputeMaps():{}).computeRendererOpts;let i=(n?n.value:null)||{};e.forEach((t,e)=>{var o,r,n,{dropdowns:a,buttonRender:l}=t;!1!==t.visible&&(o=l&&l.name?i[l.name]||renderer.get(l.name):null,l&&o&&o.renderToolbarButton?(r=o.toolbarButtonClassName,n={$grid:p,$gantt:g,$table:s,button:t},c.push((0,_vue.h)("span",{key:"br"+(t.code||e),class:["vxe-button--item",r?_xeUtils.default.isFunction(r)?r(n):r:""]},(0,_vn.getSlotVNs)(o.renderToolbarButton(l,n))))):v&&c.push((0,_vue.h)(v,Object.assign(Object.assign({key:"bd"+(t.code||e)},Object.assign({},t,{content:t.content||t.name,options:void 0})),{onClick:e=>U(e,t)}),a&&a.length?{dropdowns:()=>E(t,!0)}:{})))})}return[(0,_vue.h)("div",{class:"vxe-button--prefix-wrapper"},o?(0,_vn.getSlotVNs)(o({buttons:e||[],$grid:p,$gantt:g,$table:s})):[]),(0,_vue.h)("div",{class:"vxe-button--item-wrapper"},t?(0,_vn.getSlotVNs)(t({buttons:e||[],$grid:p,$gantt:g,$table:s})):c),(0,_vue.h)("div",{class:"vxe-button--suffix-wrapper"},r?(0,_vn.getSlotVNs)(r({buttons:e||[],$grid:p,$gantt:g,$table:s})):[])]})()),(0,_vue.h)("div",{class:"vxe-tools--wrapper"},(()=>{var e=i.tools,t=b.connectTable;let s=t;var t=u.tools,o=u.toolPrefix||u["tool-prefix"],r=u.toolSuffix||u["tool-suffix"];let c=[];if(e){var n=(s?s.getComputeMaps():{}).computeRendererOpts;let i=(n?n.value:null)||{};e.forEach((t,e)=>{var o,r,n,{dropdowns:a,toolRender:l}=t;!1!==t.visible&&(o=l&&l.name?i[l.name]||renderer.get(l.name):null,l&&o&&o.renderToolbarTool?(r=o.toolbarToolClassName,n={$grid:p,$gantt:g,$table:s,tool:t},c.push((0,_vue.h)("span",{key:e,class:["vxe-tool--item",r?_xeUtils.default.isFunction(r)?r(n):r:""]},(0,_vn.getSlotVNs)(o.renderToolbarTool(l,n))))):v&&c.push((0,_vue.h)(v,Object.assign(Object.assign({key:e},Object.assign({},t,{content:t.content||t.name,options:void 0})),{onClick:e=>y(e,t)}),a&&a.length?{dropdowns:()=>E(t,!1)}:{})))})}return[(0,_vue.h)("div",{class:"vxe-tool--prefix-wrapper"},o?(0,_vn.getSlotVNs)(o({tools:e||[],$grid:p,$gantt:g,$table:s})):[]),(0,_vue.h)("div",{class:"vxe-tool--item-wrapper"},t?(0,_vn.getSlotVNs)(t({tools:e||[],$grid:p,$gantt:g,$table:s})):c),(0,_vue.h)("div",{class:"vxe-tool--suffix-wrapper"},r?(0,_vn.getSlotVNs)(r({tools:e||[],$grid:p,$gantt:g,$table:s})):[])]})()),(0,_vue.h)("div",{class:"vxe-tools--operate"},[i.import&&(a=x.value,v)?(0,_vue.h)(v,{key:"import",circle:!0,icon:a.icon||getIcon().TOOLBAR_TOOLS_IMPORT,title:getI18n("vxe.toolbar.import"),onClick:w}):(0,_vue.createCommentVNode)(),i.export&&(l=O.value,v)?(0,_vue.h)(v,{key:"export",circle:!0,icon:l.icon||getIcon().TOOLBAR_TOOLS_EXPORT,title:getI18n("vxe.toolbar.export"),onClick:S}):(0,_vue.createCommentVNode)(),i.print&&(e=h.value,v)?(0,_vue.h)(v,{key:"print",circle:!0,icon:e.icon||getIcon().TOOLBAR_TOOLS_PRINT,title:getI18n("vxe.toolbar.print"),onClick:N}):(0,_vue.createCommentVNode)(),o&&(t=_.value,v)?(0,_vue.h)(v,{key:"refresh",circle:!0,icon:m.isRefresh?t.iconLoading||getIcon().TOOLBAR_TOOLS_REFRESH_LOADING:t.icon||getIcon().TOOLBAR_TOOLS_REFRESH,title:getI18n("vxe.toolbar.refresh"),onClick:R}):(0,_vue.createCommentVNode)(),r&&s&&(a=T.value,s)&&v?(0,_vue.h)(v,{key:"zoom",circle:!0,icon:s.isMaximized()?a.iconOut||getIcon().TOOLBAR_TOOLS_MINIMIZE:a.iconIn||getIcon().TOOLBAR_TOOLS_FULLSCREEN,title:getI18n("vxe.toolbar.zoom"+(s.isMaximized()?"Out":"In")),onClick:I}):(0,_vue.createCommentVNode)(),n&&(l=C.value,e=$.value,o={},"manual"!==e&&("hover"===e?(o.onMouseenter=j,o.onMouseleave=k):o.onClick=L),v)?(0,_vue.h)(v,Object.assign({key:"custom",circle:!0,icon:l.icon||getIcon().TOOLBAR_TOOLS_CUSTOM,title:getI18n("vxe.toolbar.custom"),className:"vxe-toolbar-custom-target"},o)):(0,_vue.createCommentVNode)()])])},(0,_vue.nextTick)(()=>{var e=_.value,e=e.queryMethod||e.query,e=(!i.refresh||s||e||warnLog("vxe.error.notFunc",["queryMethod"]),_xeUtils.default.isPlainObject(i.custom)&&warnLog("vxe.error.delProp",["custom={...}","custom=boolean & custom-options={...}"]),_xeUtils.default.isPlainObject(i.print)&&warnLog("vxe.error.delProp",["print={...}","print=boolean & print-options={...}"]),_xeUtils.default.isPlainObject(i.export)&&warnLog("vxe.error.delProp",["export={...}","export=boolean & export-options={...}"]),_xeUtils.default.isPlainObject(i.import)&&warnLog("vxe.error.delProp",["import={...}","import=boolean & import-options={...}"]),_xeUtils.default.isPlainObject(i.refresh)&&warnLog("vxe.error.delProp",["refresh={...}","refresh=boolean & refresh-options={...}"]),_xeUtils.default.isPlainObject(i.refresh)&&warnLog("vxe.error.delProp",["zoom={...}","zoom=boolean & zoom-options={...}"]),C.value);e.isFooter&&warnLog("vxe.error.delProp",["toolbar.custom.isFooter","table.custom-config.showFooter"]),e.showFooter&&warnLog("vxe.error.delProp",["toolbar.custom.showFooter","table.custom-config.showFooter"]),e.immediate&&warnLog("vxe.error.delProp",["toolbar.custom.immediate","table.custom-config.immediate"]),e.trigger&&warnLog("vxe.error.delProp",["toolbar.custom.trigger","table.custom-config.trigger"]),(i.refresh||i.import||i.export||i.print||i.zoom)&&!v&&errLog("vxe.error.reqComp",["vxe-button"])}),(0,_vue.onBeforeUnmount)(()=>{_xeUtils.default.assign(m,createReactData()),_xeUtils.default.assign(b,createInternalData())}),f},render(){return this.renderVN()}});
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.22.0-beta.0";
16
+ const version = exports.version = "4.22.0";
17
17
  _core.VxeUI.version = version;
18
18
  _core.VxeUI.tableVersion = version;
19
19
  _core.VxeUI.setConfig({
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.VXETable=void 0,Object.defineProperty(exports,"VxeUI",{enumerable:!0,get:function(){return _core.VxeUI}}),exports.version=exports.validators=exports.use=exports.t=exports.setup=exports.setTheme=exports.setLanguage=exports.setIcon=exports.setI18n=exports.setConfig=exports.saveFile=exports.renderer=exports.readFile=exports.print=exports.modal=exports.menus=exports.log=exports.interceptor=exports.hooks=exports.globalResize=exports.globalEvents=exports.getTheme=exports.getIcon=exports.getI18n=exports.getConfig=exports.formats=exports.default=exports.config=exports.commands=exports.clipboard=exports._t=void 0;var _core=require("@vxe-ui/core"),_utils=require("./src/utils");let version=exports.version="4.22.0-beta.0",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},currentRowConfig:{strict:!0},currentColumnConfig:{strict:!0},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:{mode:"tooltip",enterable:!0,defaultPlacement:"top"},headerTooltipConfig:{mode:"tooltip",enterable:!0},footerTooltipConfig:{mode:"tooltip",enterable:!0},validConfig:{showErrorMessage:!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,allowAlign:!0,showSortDragButton:!0,showFooter:!0,placement:"top-right",storeOptions:{visible:!0,resizable:!0,sort:!0,fixed:!0,align:!0,headerAlign:!0,footerAlign:!0,aggFunc:!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,maxHeight:280},floatingFilterConfig:{},aggregateConfig:{padding:!0,placement:"left",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,isReuseKeep:!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}},undoRedoHistoryConfig:{stackSize:50}},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_CUSTOM_FIXED_LEFT:iconPrefix+"fixed-left",TABLE_CUSTOM_FIXED_RIGHT:iconPrefix+"fixed-right",TABLE_CUSTOM_ALIGN_LEFT:iconPrefix+"align-left",TABLE_CUSTOM_ALIGN_CENTER:iconPrefix+"align-center",TABLE_CUSTOM_ALIGN_RIGHT:iconPrefix+"align-right",TABLE_CUSTOM_MOVE_UP:iconPrefix+"arrows-up",TABLE_CUSTOM_MOVE_DN:iconPrefix+"arrows-down",TABLE_CUSTOM_PUT_TOP:iconPrefix+"top",TABLE_CUSTOM_PUT_BOTTOM:iconPrefix+"bottom",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+"setting",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,i){return _core.VxeUI.modal.alert(e,o,i)},confirm(e,o,i){return _core.VxeUI.modal.confirm(e,o,i)},message(e,o){return _core.VxeUI.modal.message(e,o)},notification(e,o,i){return _core.VxeUI.modal.notification(e,o,i)}});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.22.0",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},currentRowConfig:{strict:!0},currentColumnConfig:{strict:!0},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:{mode:"tooltip",enterable:!0,defaultPlacement:"top"},headerTooltipConfig:{mode:"tooltip",enterable:!0},footerTooltipConfig:{mode:"tooltip",enterable:!0},validConfig:{showErrorMessage:!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,allowAlign:!0,showSortDragButton:!0,showFooter:!0,placement:"top-right",storeOptions:{visible:!0,resizable:!0,sort:!0,fixed:!0,align:!0,headerAlign:!0,footerAlign:!0,aggFunc:!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,maxHeight:280},floatingFilterConfig:{},aggregateConfig:{padding:!0,placement:"left",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,isReuseKeep:!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}},undoRedoHistoryConfig:{stackSize:50}},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_CUSTOM_FIXED_LEFT:iconPrefix+"fixed-left",TABLE_CUSTOM_FIXED_RIGHT:iconPrefix+"fixed-right",TABLE_CUSTOM_ALIGN_LEFT:iconPrefix+"align-left",TABLE_CUSTOM_ALIGN_CENTER:iconPrefix+"align-center",TABLE_CUSTOM_ALIGN_RIGHT:iconPrefix+"align-right",TABLE_CUSTOM_MOVE_UP:iconPrefix+"arrows-up",TABLE_CUSTOM_MOVE_DN:iconPrefix+"arrows-down",TABLE_CUSTOM_PUT_TOP:iconPrefix+"top",TABLE_CUSTOM_PUT_BOTTOM:iconPrefix+"bottom",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+"setting",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,i){return _core.VxeUI.modal.alert(e,o,i)},confirm(e,o,i){return _core.VxeUI.modal.confirm(e,o,i)},message(e,o){return _core.VxeUI.modal.message(e,o)},notification(e,o,i){return _core.VxeUI.modal.notification(e,o,i)}});var _default=exports.default=_core.VxeUI;
package/lib/ui/src/log.js CHANGED
@@ -9,7 +9,7 @@ var _core = require("@vxe-ui/core");
9
9
  const {
10
10
  log
11
11
  } = _core.VxeUI;
12
- const tableVersion = `table v${"4.22.0-beta.0"}`;
12
+ const tableVersion = `table v${"4.22.0"}`;
13
13
  function createComponentLog(name) {
14
14
  const uiVersion = _core.VxeUI.uiVersion ? `ui v${_core.VxeUI.uiVersion}` : '';
15
15
  const ganttVersion = _core.VxeUI.ganttVersion ? `gantt v${_core.VxeUI.ganttVersion}` : '';
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.createComponentLog=createComponentLog,exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");let log=_core.VxeUI.log,tableVersion="table v4.22.0-beta.0";function createComponentLog(e){var r=_core.VxeUI.uiVersion?"ui v"+_core.VxeUI.uiVersion:"",o=_core.VxeUI.ganttVersion?"gantt v"+_core.VxeUI.ganttVersion:"",t=_core.VxeUI.designVersion?"design v"+_core.VxeUI.designVersion:"",r=[r,tableVersion,o,t].filter(e=>e).join(" ");return{warnLog:log.create("warn",r+"] ["+e),errLog:log.create("error",r+"] ["+e)}}let warnLog=exports.warnLog=log.create("warn",tableVersion),errLog=exports.errLog=log.create("error",tableVersion);
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.createComponentLog=createComponentLog,exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");let log=_core.VxeUI.log,tableVersion="table v4.22.0";function createComponentLog(e){var r=_core.VxeUI.uiVersion?"ui v"+_core.VxeUI.uiVersion:"",o=_core.VxeUI.ganttVersion?"gantt v"+_core.VxeUI.ganttVersion:"",t=_core.VxeUI.designVersion?"design v"+_core.VxeUI.designVersion:"",r=[r,tableVersion,o,t].filter(e=>e).join(" ");return{warnLog:log.create("warn",r+"] ["+e),errLog:log.create("error",r+"] ["+e)}}let warnLog=exports.warnLog=log.create("warn",tableVersion),errLog=exports.errLog=log.create("error",tableVersion);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxe-table",
3
- "version": "4.22.0-beta.0",
3
+ "version": "4.22.0",
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": "~5.9.3",
67
67
  "vue": "3.4.27",
68
68
  "vue-router": "~4.5.1",
69
- "vxe-pc-ui": "4.18.11"
69
+ "vxe-pc-ui": "4.18.16"
70
70
  },
71
71
  "vetur": {
72
72
  "tags": "helper/vetur/tags.json",
@@ -587,7 +587,7 @@ export default defineVxeComponent({
587
587
  // 处理插槽
588
588
  formOpts.items.forEach((item) => {
589
589
  XEUtils.each(item.slots, (func) => {
590
- if (!XEUtils.isFunction(func)) {
590
+ if (func && !XEUtils.isFunction(func)) {
591
591
  if (slots[func]) {
592
592
  formSlots[func] = slots[func] as any
593
593
  }
@@ -1768,7 +1768,7 @@ export default defineVxeComponent({
1768
1768
  XEUtils.eachTree(columns, (column) => {
1769
1769
  if (column.slots) {
1770
1770
  XEUtils.each(column.slots, (func) => {
1771
- if (!XEUtils.isFunction(func)) {
1771
+ if (func && !XEUtils.isFunction(func)) {
1772
1772
  if (!slots[func]) {
1773
1773
  errLog('vxe.error.notSlot', [func])
1774
1774
  }
@@ -18,7 +18,7 @@ hooks.add('tableEditModule', {
18
18
  setupTable ($xeTable) {
19
19
  const { props, reactData, internalData } = $xeTable
20
20
  const { refElem } = $xeTable.getRefMaps()
21
- const { computeMouseOpts, computeEditOpts, computeCheckboxOpts, computeTreeOpts, computeValidOpts } = $xeTable.getComputeMaps()
21
+ const { computeMouseOpts, computeEditOpts, computeCheckboxOpts, computeTreeOpts, computeValidOpts, computeRendererOpts } = $xeTable.getComputeMaps()
22
22
 
23
23
  const browseObj = XEUtils.browse()
24
24
 
@@ -968,7 +968,9 @@ hooks.add('tableEditModule', {
968
968
  const { editRender } = column
969
969
  const editOpts = computeEditOpts.value
970
970
  if (editConfig && isEnableConf(editRender)) {
971
- const compRender = renderer.get(editRender.name)
971
+ const rendererOpts = computeRendererOpts.value
972
+ const renderName = editRender.name
973
+ const compRender = renderName ? (rendererOpts[renderName] || renderer.get(renderName)) : null
972
974
  let autoFocus: boolean | string | ((params: VxeGlobalRendererHandles.TableAutoFocusParams) => HTMLElement | null) | null | undefined = editRender.autofocus || editRender.autoFocus
973
975
  let autoSelect = editRender.autoSelect || editRender.autoselect
974
976
  let inputElem: HTMLElement | null = null
@@ -304,7 +304,7 @@ const tableExportMethodKeys: (keyof TableExportMethods)[] = ['exportData', 'impo
304
304
  hooks.add('tableExportModule', {
305
305
  setupTable ($xeTable) {
306
306
  const { props, reactData, internalData } = $xeTable
307
- const { computeTreeOpts, computePrintOpts, computeExportOpts, computeImportOpts, computeSeqOpts, computeRadioOpts, computeCheckboxOpts, computeColumnOpts, computeAggregateOpts } = $xeTable.getComputeMaps()
307
+ const { computeTreeOpts, computePrintOpts, computeExportOpts, computeImportOpts, computeSeqOpts, computeRadioOpts, computeCheckboxOpts, computeColumnOpts, computeAggregateOpts, computeRendererOpts } = $xeTable.getComputeMaps()
308
308
 
309
309
  const getSeq = (cellValue: any, row: any, $rowIndex: number, column: VxeTableDefines.ColumnInfo, $columnIndex: number) => {
310
310
  const seqOpts = computeSeqOpts.value
@@ -349,6 +349,7 @@ hooks.add('tableExportModule', {
349
349
  const treeOpts = computeTreeOpts.value
350
350
  const columnOpts = computeColumnOpts.value
351
351
  const aggregateOpts = computeAggregateOpts.value
352
+ const rendererOpts = computeRendererOpts.value
352
353
  if (!htmlCellElem) {
353
354
  htmlCellElem = document.createElement('div')
354
355
  }
@@ -381,7 +382,7 @@ hooks.add('tableExportModule', {
381
382
  const renderOpts = editRender || cellRender
382
383
  let bodyExportMethod: VxeColumnPropTypes.ExportMethod | undefined = column.exportMethod || columnOpts.exportMethod
383
384
  if (!bodyExportMethod && renderOpts && renderOpts.name) {
384
- const compConf = renderer.get(renderOpts.name)
385
+ const compConf = rendererOpts[renderOpts.name] || renderer.get(renderOpts.name)
385
386
  if (compConf) {
386
387
  bodyExportMethod = compConf.tableExportMethod || compConf.exportMethod
387
388
  }
@@ -521,7 +522,7 @@ hooks.add('tableExportModule', {
521
522
  const renderOpts = column.editRender || column.cellRender
522
523
  let bodyExportMethod: VxeColumnPropTypes.ExportMethod | undefined = column.exportMethod || columnOpts.exportMethod
523
524
  if (!bodyExportMethod && renderOpts && renderOpts.name) {
524
- const compConf = renderer.get(renderOpts.name)
525
+ const compConf = rendererOpts[renderOpts.name] || renderer.get(renderOpts.name)
525
526
  if (compConf) {
526
527
  bodyExportMethod = compConf.tableExportMethod || compConf.exportMethod
527
528
  }
@@ -588,7 +589,7 @@ hooks.add('tableExportModule', {
588
589
  const renderOpts = column.editRender || column.cellRender
589
590
  let bodyExportMethod: VxeColumnPropTypes.ExportMethod | undefined = column.exportMethod || columnOpts.exportMethod
590
591
  if (!bodyExportMethod && renderOpts && renderOpts.name) {
591
- const compConf = renderer.get(renderOpts.name)
592
+ const compConf = rendererOpts[renderOpts.name] || renderer.get(renderOpts.name)
592
593
  if (compConf) {
593
594
  bodyExportMethod = compConf.tableExportMethod || compConf.exportMethod
594
595
  }
@@ -649,10 +650,11 @@ hooks.add('tableExportModule', {
649
650
 
650
651
  const getFooterCellValue = (opts: VxeTablePropTypes.ExportHandleOptions, row: any, column: VxeTableDefines.ColumnInfo) => {
651
652
  const columnOpts = computeColumnOpts.value
653
+ const rendererOpts = computeRendererOpts.value
652
654
  const renderOpts = column.editRender || column.cellRender
653
655
  let footLabelMethod: VxeColumnPropTypes.FooterExportMethod | undefined = column.footerExportMethod
654
656
  if (!footLabelMethod && renderOpts && renderOpts.name) {
655
- const compConf = renderer.get(renderOpts.name)
657
+ const compConf = rendererOpts[renderOpts.name] || renderer.get(renderOpts.name)
656
658
  if (compConf) {
657
659
  footLabelMethod = compConf.tableFooterExportMethod || compConf.footerExportMethod
658
660
  }
@@ -21,7 +21,7 @@ hooks.add('tableFilterModule', {
21
21
 
22
22
  const { props, reactData, internalData } = $xeTable
23
23
  const { refElem, refTableFilter } = $xeTable.getRefMaps()
24
- const { computeFilterOpts, computeMouseOpts } = $xeTable.getComputeMaps()
24
+ const { computeFilterOpts, computeMouseOpts, computeRendererOpts } = $xeTable.getComputeMaps()
25
25
 
26
26
  const updatePopupStyle = () => {
27
27
  const { filterStore } = reactData
@@ -32,9 +32,10 @@ hooks.add('tableFilterModule', {
32
32
  }
33
33
  const tableEl = refElem.value
34
34
  const filterOpts = computeFilterOpts.value
35
+ const rendererOpts = computeRendererOpts.value
35
36
  const { maxHeight: customMaxHeight, transfer, zIndex } = filterOpts
36
37
  const filterRender = column ? column.filterRender : null
37
- const compConf = filterRender && isEnableConf(filterRender) ? renderer.get(filterRender.name) : null
38
+ const compConf = filterRender && isEnableConf(filterRender) && filterRender.name ? (rendererOpts[filterRender.name] || renderer.get(filterRender.name)) : null
38
39
 
39
40
  const headerScrollElem = getRefElem(elemStore['main-header-scroll'])
40
41
  if (!headerScrollElem) {
@@ -169,7 +170,8 @@ hooks.add('tableFilterModule', {
169
170
  if (column) {
170
171
  const { filters, filterRender } = column
171
172
  if (filters) {
172
- const compConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null
173
+ const rendererOpts = computeRendererOpts.value
174
+ const compConf = isEnableConf(filterRender) && filterRender.name ? (rendererOpts[filterRender.name] || renderer.get(filterRender.name)) : null
173
175
  const frMethod = column.filterResetMethod || (compConf ? (compConf.tableFilterResetMethod || compConf.filterResetMethod) : null)
174
176
  filters.forEach((item: any) => {
175
177
  item._checked = false
@@ -179,7 +181,7 @@ hooks.add('tableFilterModule', {
179
181
  }
180
182
  })
181
183
  if (frMethod) {
182
- frMethod({ options: filters, column, $table: $xeTable })
184
+ frMethod({ options: filters as VxeTableDefines.FilterOption[], column, $table: $xeTable })
183
185
  }
184
186
  }
185
187
  }
@@ -27,7 +27,7 @@ export default defineVxeComponent({
27
27
 
28
28
  const $xeTable = inject('$xeTable', {} as VxeTableConstructor & VxeTableMethods & VxeTablePrivateMethods)
29
29
  const { reactData: tableReactData, internalData: tableInternalData, getComputeMaps } = $xeTable
30
- const { computeFilterOpts } = getComputeMaps()
30
+ const { computeFilterOpts, computeRendererOpts } = getComputeMaps()
31
31
 
32
32
  const refElem = ref<HTMLDivElement>()
33
33
 
@@ -223,10 +223,11 @@ export default defineVxeComponent({
223
223
  return []
224
224
  }
225
225
  const filterOpts = computeFilterOpts.value
226
+ const rendererOpts = computeRendererOpts.value
226
227
  const hasCheckOption = computeHasCheckOption.value
227
228
  const { filterRender, filterMultiple } = column
228
229
  const { confirmButtonText, resetButtonText, showFooter } = filterOpts
229
- const compConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null
230
+ const compConf = filterRender && isEnableConf(filterRender) && filterRender.name ? (rendererOpts[filterRender.name] || renderer.get(filterRender.name)) : null
230
231
  const isDisabled = !hasCheckOption && !filterStore.isAllSelected && !filterStore.isIndeterminate
231
232
  let showFlFoot = !!filterMultiple
232
233
  if (XEUtils.isBoolean(showFooter)) {
@@ -261,8 +262,9 @@ export default defineVxeComponent({
261
262
  if (!column) {
262
263
  return renderEmptyElement($xeFilterPanel)
263
264
  }
265
+ const rendererOpts = computeRendererOpts.value
264
266
  const filterRender = column ? column.filterRender : null
265
- const compConf = filterRender && isEnableConf(filterRender) ? renderer.get(filterRender.name) : null
267
+ const compConf = filterRender && isEnableConf(filterRender) && filterRender.name ? (rendererOpts[filterRender.name] || renderer.get(filterRender.name)) : null
266
268
  const filterClassName = compConf ? (compConf.tableFilterClassName || compConf.filterClassName) : ''
267
269
  const params = Object.assign({}, tableInternalData._currFilterParams, { $panel: $xeFilterPanel, $table: $xeTable })
268
270
  const tableProps = $xeTable.props
@@ -29,7 +29,7 @@ export default defineVxeComponent({
29
29
  const $xeTable = inject('$xeTable', {} as VxeTableConstructor & VxeTablePrivateMethods)
30
30
 
31
31
  const { xID, props: tableProps, context: tableContext, reactData: tableReactData, internalData: tableInternalData } = $xeTable
32
- const { computeEditOpts, computeMouseOpts, computeCellOffsetWidth, computeAreaOpts, computeDefaultRowHeight, computeEmptyOpts, computeTooltipOpts, computeRadioOpts, computeExpandOpts, computeTreeOpts, computeCheckboxOpts, computeCellOpts, computeValidOpts, computeRowOpts, computeColumnOpts, computeRowDragOpts, computeResizableOpts, computeVirtualXOpts, computeVirtualYOpts, computeIsBodyRenderOptimize } = $xeTable.getComputeMaps()
32
+ const { computeEditOpts, computeMouseOpts, computeCellOffsetWidth, computeAreaOpts, computeDefaultRowHeight, computeEmptyOpts, computeTooltipOpts, computeRadioOpts, computeExpandOpts, computeTreeOpts, computeCheckboxOpts, computeCellOpts, computeValidOpts, computeRowOpts, computeColumnOpts, computeRowDragOpts, computeResizableOpts, computeVirtualXOpts, computeVirtualYOpts, computeIsBodyRenderOptimize, computeRendererOpts } = $xeTable.getComputeMaps()
33
33
 
34
34
  const refElem = ref() as Ref<HTMLDivElement>
35
35
  const refBodyScroll = ref() as Ref<HTMLDivElement>
@@ -132,6 +132,7 @@ export default defineVxeComponent({
132
132
  const resizableOpts = computeResizableOpts.value
133
133
  const virtualXOpts = computeVirtualXOpts.value
134
134
  const virtualYOpts = computeVirtualYOpts.value
135
+ const rendererOpts = computeRendererOpts.value
135
136
  const { isAllColumnDrag, isAllRowDrag } = resizableOpts
136
137
  const rowOpts = computeRowOpts.value
137
138
  const rowDragOpts = computeRowDragOpts.value
@@ -150,7 +151,7 @@ export default defineVxeComponent({
150
151
  const colid = column.id
151
152
  const colRest = fullColumnIdData[colid] || {}
152
153
  const renderOpts = editRender || cellRender
153
- const compConf = renderOpts ? renderer.get(renderOpts.name) : null
154
+ const compConf = renderOpts && renderOpts.name ? (rendererOpts[renderOpts.name] || renderer.get(renderOpts.name)) : null
154
155
  const compCellClassName = compConf ? (compConf.tableCellClassName || compConf.cellClassName) : null
155
156
  const compCellStyle = compConf ? (compConf.tableCellStyle || compConf.cellStyle) : ''
156
157
  const showAllTip = tooltipOpts.showAll
@@ -834,7 +835,8 @@ export default defineVxeComponent({
834
835
  if (emptySlot) {
835
836
  emptyContent = $xeTable.callSlot(emptySlot, emptyParams)
836
837
  } else {
837
- const compConf = emptyOpts.name ? renderer.get(emptyOpts.name) : null
838
+ const rendererOpts = computeRendererOpts.value
839
+ const compConf = emptyOpts.name ? (rendererOpts[emptyOpts.name] || renderer.get(emptyOpts.name)) : null
838
840
  const rtEmptyView = compConf ? (compConf.renderTableEmpty || compConf.renderTableEmptyView || compConf.renderEmpty) : null
839
841
  if (rtEmptyView) {
840
842
  emptyContent = getSlotVNs(rtEmptyView(emptyOpts, emptyParams))
@@ -246,7 +246,9 @@ function getFooterContent (params: VxeTableDefines.CellRenderFooterParams & { $t
246
246
  const renderOpts = editRenderOpts || cellRenderOpts
247
247
  const itemValue = $table.getFooterCellLabel(row, column)
248
248
  if (renderOpts) {
249
- const compConf = renderer.get(renderOpts.name)
249
+ const { computeRendererOpts } = $table.getComputeMaps()
250
+ const rendererOpts = computeRendererOpts.value
251
+ const compConf = renderOpts.name ? (rendererOpts[renderOpts.name] || renderer.get(renderOpts.name)) : null
250
252
  if (compConf) {
251
253
  const rtFooter = compConf.renderTableFooter || compConf.renderFooter
252
254
  if (rtFooter) {
@@ -393,7 +395,9 @@ export const Cell = {
393
395
  }
394
396
 
395
397
  if (renderOpts) {
396
- const compConf = renderer.get(renderOpts.name)
398
+ const { computeRendererOpts } = $table.getComputeMaps()
399
+ const rendererOpts = computeRendererOpts.value
400
+ const compConf = renderOpts.name ? (rendererOpts[renderOpts.name] || renderer.get(renderOpts.name)) : null
397
401
  if (compConf) {
398
402
  const rtHeader = compConf.renderTableHeader || compConf.renderHeader
399
403
  if (rtHeader) {
@@ -486,9 +490,11 @@ export const Cell = {
486
490
  if (defaultSlot) {
487
491
  return renderCellBaseVNs(params, $table.callSlot(defaultSlot, params))
488
492
  }
493
+ const { computeRendererOpts } = $table.getComputeMaps()
494
+ const rendererOpts = computeRendererOpts.value
489
495
  // 如果是编辑模式-查看:slot default > formatter > cellRender.renderTableDefault > editRender.renderTableCell > editRender.renderTableDefault > cellRender.tableCellFormatter > editRender.tableCellFormatter > field
490
496
  // 如果是查看表格:slot default > formatter > cellRender.renderTableDefault > cellRender.tableCellFormatter > field
491
- const cellCompConf = cellRenderOpts ? renderer.get(cellRenderOpts.name) : null
497
+ const cellCompConf = cellRenderOpts && cellRenderOpts.name ? (rendererOpts[cellRenderOpts.name] || renderer.get(cellRenderOpts.name)) : null
492
498
  if (cellRenderOpts) {
493
499
  const cellDefaultRenderFn = cellCompConf ? (cellCompConf.renderTableDefault || cellCompConf.renderDefault) : null
494
500
  if (cellDefaultRenderFn && cellRenderOpts) {
@@ -496,7 +502,7 @@ export const Cell = {
496
502
  }
497
503
  }
498
504
  if (editRenderOpts) {
499
- const editCompConf = editRenderOpts ? renderer.get(editRenderOpts.name) : null
505
+ const editCompConf = editRenderOpts && editRenderOpts.name ? (rendererOpts[editRenderOpts.name] || renderer.get(editRenderOpts.name)) : null
500
506
  const editCellRenderFn = editCompConf
501
507
  ? (
502
508
  (editCompConf.renderTableCell || editCompConf.renderCell) ||
@@ -1079,7 +1085,9 @@ export const Cell = {
1079
1085
  return $table.callSlot(contentSlot, params)
1080
1086
  }
1081
1087
  if (contentRender) {
1082
- const compConf = renderer.get(contentRender.name)
1088
+ const { computeRendererOpts } = $table.getComputeMaps()
1089
+ const rendererOpts = computeRendererOpts.value
1090
+ const compConf = contentRender.name ? (rendererOpts[contentRender.name] || renderer.get(contentRender.name)) : null
1083
1091
  if (compConf) {
1084
1092
  const rtExpand = compConf.renderTableExpand || compConf.renderExpand
1085
1093
  if (rtExpand) {
@@ -1308,7 +1316,9 @@ export const Cell = {
1308
1316
  if (editSlot) {
1309
1317
  return $table.callSlot(editSlot, cellParams)
1310
1318
  }
1311
- const compConf = renderer.get(editRenderOpts.name)
1319
+ const { computeRendererOpts } = $table.getComputeMaps()
1320
+ const rendererOpts = computeRendererOpts.value
1321
+ const compConf = editRenderOpts.name ? (rendererOpts[editRenderOpts.name] || renderer.get(editRenderOpts.name)) : null
1312
1322
  const rtEdit = compConf ? (compConf.renderTableEdit || compConf.renderEdit) : null
1313
1323
  if (rtEdit) {
1314
1324
  return getSlotVNs(rtEdit(editRenderOpts, cellParams))
@@ -19,6 +19,8 @@ export class ColumnInfo {
19
19
  const $xeGantt = $xeTable.xeGantt
20
20
  const $xeGGWrapper = $xeGrid || $xeGantt
21
21
 
22
+ const { computeRendererOpts, computeTreeOpts } = $xeTable.getComputeMaps()
23
+
22
24
  const { type, field, width, visible, fixed, align, headerAlign, footerAlign, aggFunc, formatter, filterMultiple, cellRender, editRender, filterRender } = colConfs
23
25
 
24
26
  const colId = colConfs.colId || XEUtils.uniqueId('col_')
@@ -26,7 +28,8 @@ export class ColumnInfo {
26
28
  const defaultVisible = XEUtils.isBoolean(visible) ? visible : true
27
29
  const defaultRenderWidth = width && isPx(width) && width !== 'auto' ? Math.max(0, XEUtils.toInteger(width)) : 0
28
30
 
29
- const flCompConf = filterRender && isEnableConf(filterRender) ? renderer.get(filterRender.name) : null
31
+ const rendererOpts = computeRendererOpts.value
32
+ const flCompConf = filterRender && isEnableConf(filterRender) && filterRender.name ? (rendererOpts[filterRender.name] || renderer.get(filterRender.name)) : null
30
33
  const ctFilterOptions = flCompConf ? flCompConf.createTableFilterOptions : null
31
34
 
32
35
  const filters = toFilters(colConfs.filters, colId)
@@ -43,7 +46,6 @@ export class ColumnInfo {
43
46
  }
44
47
  if (type === 'expand') {
45
48
  const { treeConfig } = tableProps
46
- const { computeTreeOpts } = $xeTable.getComputeMaps()
47
49
  const treeOpts = computeTreeOpts.value
48
50
  if (treeConfig && (treeOpts.showLine || treeOpts.line)) {
49
51
  errLog('vxe.error.errConflicts', ['tree-config.showLine', 'column.type=expand'])
@@ -37,7 +37,7 @@ export default defineVxeComponent({
37
37
  const $xeTable = inject('$xeTable', {} as VxeTableConstructor & VxeTableMethods & VxeTablePrivateMethods)
38
38
 
39
39
  const { xID, props: tableProps, reactData: tableReactData, internalData: tableInternalData } = $xeTable
40
- const { computeFooterTooltipOpts, computeColumnOpts, computeCellOpts, computeFooterCellOpts, computeDefaultRowHeight, computeResizableOpts, computeVirtualXOpts, computeIsFooterRenderOptimize } = $xeTable.getComputeMaps()
40
+ const { computeFooterTooltipOpts, computeColumnOpts, computeCellOpts, computeFooterCellOpts, computeDefaultRowHeight, computeResizableOpts, computeVirtualXOpts, computeIsFooterRenderOptimize, computeRendererOpts } = $xeTable.getComputeMaps()
41
41
 
42
42
  const refElem = ref() as Ref<HTMLDivElement>
43
43
  const refFooterScroll = ref() as Ref<HTMLDivElement>
@@ -63,13 +63,14 @@ export default defineVxeComponent({
63
63
  const cellOpts = computeCellOpts.value
64
64
  const footerCellOpts = computeFooterCellOpts.value
65
65
  const currCellHeight = getCalcHeight(footerCellOpts.height) || defaultRowHeight
66
+ const rendererOpts = computeRendererOpts.value
66
67
 
67
68
  return tableColumn.map((column, $columnIndex) => {
68
69
  const { type, showFooterOverflow, footerAlign, align, footerClassName, editRender, cellRender } = column
69
70
  const colid = column.id
70
71
  const colRest = fullColumnIdData[colid] || {}
71
72
  const renderOpts = editRender || cellRender
72
- const compConf = renderOpts ? renderer.get(renderOpts.name) : null
73
+ const compConf = renderOpts && renderOpts.name ? (rendererOpts[renderOpts.name] || renderer.get(renderOpts.name)) : null
73
74
  const showAllTip = footerTooltipOpts.showAll
74
75
  const fixedHiddenColumn = overflowX && (fixedType ? column.fixed !== fixedType : !!column.fixed)
75
76
 
@@ -29,7 +29,7 @@ export default defineVxeComponent({
29
29
  const $xeTable = inject('$xeTable', {} as VxeTableConstructor & VxeTableMethods & VxeTablePrivateMethods)
30
30
 
31
31
  const { xID, props: tableProps, reactData: tableReactData, internalData: tableInternalData } = $xeTable
32
- const { computeColumnOpts, computeColumnDragOpts, computeCellOpts, computeMouseOpts, computeHeaderCellOpts, computeDefaultRowHeight, computeVirtualXOpts, computeFloatingFilterOpts, computeIsHeaderRenderOptimize, computeHeaderTooltipOpts } = $xeTable.getComputeMaps()
32
+ const { computeColumnOpts, computeColumnDragOpts, computeCellOpts, computeMouseOpts, computeHeaderCellOpts, computeDefaultRowHeight, computeVirtualXOpts, computeFloatingFilterOpts, computeIsHeaderRenderOptimize, computeHeaderTooltipOpts, computeRendererOpts } = $xeTable.getComputeMaps()
33
33
 
34
34
  const headerColumn = ref<VxeTableDefines.ColumnInfo[][]>([])
35
35
 
@@ -73,6 +73,7 @@ export default defineVxeComponent({
73
73
  const cellOpts = computeCellOpts.value
74
74
  const defaultRowHeight = computeDefaultRowHeight.value
75
75
  const headerCellOpts = computeHeaderCellOpts.value
76
+ const rendererOpts = computeRendererOpts.value
76
77
  const currCellHeight = getCalcHeight(headerCellOpts.height) || defaultRowHeight
77
78
  const { disabledMethod: dragDisabledMethod, isCrossDrag, isPeerDrag } = columnDragOpts
78
79
  const isLastRow = _rowIndex === headerGroups.length - 1
@@ -82,7 +83,7 @@ export default defineVxeComponent({
82
83
  const colid = column.id
83
84
  const colRest = fullColumnIdData[colid] || {}
84
85
  const renderOpts = editRender || cellRender
85
- const compConf = renderOpts ? renderer.get(renderOpts.name) : null
86
+ const compConf = renderOpts && renderOpts.name ? (rendererOpts[renderOpts.name] || renderer.get(renderOpts.name)) : null
86
87
  const isColGroup = column.children && column.children.length
87
88
  const fixedHiddenColumn = overflowX && !isColGroup && (fixedType ? column.fixed !== fixedType : !!column.fixed)
88
89
 
@@ -278,6 +279,7 @@ export default defineVxeComponent({
278
279
  const defaultRowHeight = computeDefaultRowHeight.value
279
280
  const headerCellOpts = computeHeaderCellOpts.value
280
281
  const floatingFilterOpts = computeFloatingFilterOpts.value
282
+ const rendererOpts = computeRendererOpts.value
281
283
  const { cellClassName } = floatingFilterOpts
282
284
  const currCellHeight = getCalcHeight(headerCellOpts.height) || defaultRowHeight
283
285
 
@@ -287,8 +289,8 @@ export default defineVxeComponent({
287
289
  const colRest = fullColumnIdData[colid] || {}
288
290
  const renderOpts = editRender || cellRender
289
291
  const flSlot = slots ? (slots.floatingFilter || slots['floating-filter']) : null
290
- const compConf = renderOpts ? renderer.get(renderOpts.name) : null
291
- const flCompConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null
292
+ const compConf = renderOpts && renderOpts.name ? (rendererOpts[renderOpts.name] || renderer.get(renderOpts.name)) : null
293
+ const flCompConf = isEnableConf(filterRender) && filterRender.name ? (rendererOpts[filterRender.name] || renderer.get(filterRender.name)) : null
292
294
  const rtFloatingFilter = flCompConf ? flCompConf.renderTableFloatingFilter : null
293
295
  const fixedHiddenColumn = overflowX && (fixedType ? column.fixed !== fixedType : !!column.fixed)
294
296
  const isPadding = XEUtils.isBoolean(headerCellOpts.padding) ? headerCellOpts.padding : cellOpts.padding
@@ -319,6 +319,10 @@ export const tableProps = {
319
319
  type: Number as PropType<VxeTablePropTypes.DelayHover>,
320
320
  default: () => getConfig().table.delayHover as number
321
321
  },
322
+ /**
323
+ * 渲染器配置项
324
+ */
325
+ rendererConfig: Object as PropType<VxeTablePropTypes.RendererConfig>,
322
326
  // 额外的参数
323
327
  params: Object as PropType<VxeTablePropTypes.Params>
324
328
  }