UNPKG

vxe-table

Version:

一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟滚动、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、虚拟列表、模态窗口、自定义模板、渲染器、贼灵活的配置项、扩展接口等...

1 lines 11.4 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _ctor=_interopRequireDefault(require("xe-utils/ctor")),_conf=_interopRequireDefault(require("../../conf")),_vXETable=_interopRequireDefault(require("../../v-x-e-table")),_size=_interopRequireDefault(require("../../mixins/size")),_tools=require("../../tools");function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _defineProperty(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function renderBtns(i,s){var c=s._e,t=s.$scopedSlots,r=s.$xegrid,l=s.$xetable,e=s.buttons,o=void 0===e?[]:e;return t.buttons?t.buttons.call(s,{$grid:r,$table:l},i):o.map(function(e){var t=e.dropdowns,o=e.buttonRender,n=o?_vXETable.default.renderer.get(o.name):null;return!1===e.visible?c():n&&n.renderButton?i("span",{class:"vxe-button--item"},n.renderButton.call(s,i,o,{$grid:r,$table:l,button:e})):i("vxe-button",{on:{click:function(t){return s.btnEvent(t,e)}},props:{disabled:e.disabled,loading:e.loading,type:e.type,icon:e.icon,circle:e.circle,round:e.round,status:e.status,content:_tools.UtilTools.getFuncText(e.name),destroyOnClose:e.destroyOnClose,placement:e.placement,transfer:e.transfer},scopedSlots:t&&t.length?{dropdowns:function(){return t.map(function(e){return!1===e.visible?c():i("vxe-button",{on:{click:function(t){return s.btnEvent(t,e)}},props:{disabled:e.disabled,loading:e.loading,type:e.type,icon:e.icon,circle:e.circle,round:e.round,status:e.status,content:_tools.UtilTools.getFuncText(e.name)}})})}}:null})})}function renderRightTools(t,e){var o=e.$scopedSlots,n=e.$xegrid,i=e.$xetable;return o.tools?o.tools.call(e,{$grid:n,$table:i},t):[]}function renderCustoms(s,c){var t=c.$xetable,e=c.customStore,o=c.customOpts,n=c.columns,r=[],i={},l={},u=t?t.customOpts.checkMethod:null;return"manual"===o.trigger||("hover"===o.trigger?(i.mouseenter=c.handleMouseenterSettingEvent,i.mouseleave=c.handleMouseleaveSettingEvent,l.mouseenter=c.handleWrapperMouseenterEvent,l.mouseleave=c.handleWrapperMouseleaveEvent):i.click=c.handleClickSettingEvent),_ctor.default.eachTree(n,function(t){var e=_tools.UtilTools.formatText(t.getTitle(),1),o=t.getKey(),n=t.children&&t.children.length,i=!!u&&!u({column:t});(n||o)&&r.push(s("li",{class:["vxe-custom--option","level--".concat(t.level),{"is--group":n,"is--checked":t.visible,"is--indeterminate":t.halfVisible,"is--disabled":i}],attrs:{title:e},on:{click:function(){i||c.changeCustomOption(t)}}},[s("span",{class:"vxe-checkbox--icon vxe-checkbox--checked-icon"}),s("span",{class:"vxe-checkbox--icon vxe-checkbox--unchecked-icon"}),s("span",{class:"vxe-checkbox--icon vxe-checkbox--indeterminate-icon"}),s("span",{class:"vxe-checkbox--label"},e)]))}),s("div",{class:["vxe-custom--wrapper",{"is--active":e.visible}],ref:"customWrapper"},[s("vxe-button",{props:{circle:!0,icon:o.icon||_conf.default.icon.TOOLBAR_TOOLS_CUSTOM},attrs:{title:_conf.default.i18n("vxe.toolbar.custom")},on:i}),s("div",{class:"vxe-custom--option-wrapper"},[s("ul",{class:"vxe-custom--header"},[s("li",{class:["vxe-custom--option",{"is--checked":e.isAll,"is--indeterminate":e.isIndeterminate}],attrs:{title:_conf.default.i18n("vxe.table.allTitle")},on:{click:c.allCustomEvent}},[s("span",{class:"vxe-checkbox--icon vxe-checkbox--checked-icon"}),s("span",{class:"vxe-checkbox--icon vxe-checkbox--unchecked-icon"}),s("span",{class:"vxe-checkbox--icon vxe-checkbox--indeterminate-icon"}),s("span",{class:"vxe-checkbox--label"},_conf.default.i18n("vxe.toolbar.customAll"))])]),s("ul",{class:"vxe-custom--body",on:l},r),!1===o.isFooter?null:s("div",{class:"vxe-custom--footer"},[s("button",{class:"btn--confirm",on:{click:c.confirmCustomEvent}},_conf.default.i18n("vxe.toolbar.customConfirm")),s("button",{class:"btn--reset",on:{click:c.resetCustomEvent}},_conf.default.i18n("vxe.toolbar.customRestore"))])])])}var _default2={name:"VxeToolbar",mixins:[_size.default],props:{loading:Boolean,refresh:[Boolean,Object],import:[Boolean,Object],export:[Boolean,Object],print:[Boolean,Object],zoom:[Boolean,Object],custom:[Boolean,Object],buttons:{type:Array,default:function(){return _conf.default.toolbar.buttons}},perfect:{type:Boolean,default:function(){return _conf.default.toolbar.perfect}},size:{type:String,default:function(){return _conf.default.toolbar.size||_conf.default.size}}},inject:{$xegrid:{default:null}},data:function(){return{$xetable:null,isRefresh:!1,columns:[],customStore:{isAll:!1,isIndeterminate:!1,visible:!1}}},computed:{refreshOpts:function(){return Object.assign({},_conf.default.toolbar.refresh,this.refresh)},importOpts:function(){return Object.assign({},_conf.default.toolbar.import,this.import)},exportOpts:function(){return Object.assign({},_conf.default.toolbar.export,this.export)},printOpts:function(){return Object.assign({},_conf.default.toolbar.print,this.print)},zoomOpts:function(){return Object.assign({},_conf.default.toolbar.zoom,this.zoom)},customOpts:function(){return Object.assign({},_conf.default.toolbar.custom,this.custom)}},created:function(){var e=this,o=this.refresh,n=this.refreshOpts;this.$nextTick(function(){var t=e.fintTable();!o||e.$xegrid||n.query||_tools.UtilTools.warn("vxe.error.notFunc",["query"]),t&&t.connect(e)}),_tools.GlobalEvent.on(this,"mousedown",this.handleGlobalMousedownEvent),_tools.GlobalEvent.on(this,"blur",this.handleGlobalBlurEvent)},destroyed:function(){_tools.GlobalEvent.off(this,"mousedown"),_tools.GlobalEvent.off(this,"blur")},render:function(t){var e,o=this._e,n=this.$xegrid,i=this.perfect,s=this.loading,c=this.importOpts,r=this.exportOpts,l=this.refresh,u=this.refreshOpts,a=this.zoom,h=this.zoomOpts,f=this.custom,d=this.vSize;return t("div",{class:["vxe-toolbar",(e={},_defineProperty(e,"size--".concat(d),d),_defineProperty(e,"is--perfect",i),_defineProperty(e,"is--loading",s),e)]},[t("div",{class:"vxe-button--wrapper"},renderBtns(t,this)),t("div",{class:"vxe-tools--wrapper"},renderRightTools(t,this)),t("div",{class:"vxe-tools--operate"},[this.import?t("vxe-button",{props:{circle:!0,icon:c.icon||_conf.default.icon.TOOLBAR_TOOLS_IMPORT},attrs:{title:_conf.default.i18n("vxe.toolbar.import")},on:{click:this.importEvent}}):o(),this.export?t("vxe-button",{props:{circle:!0,icon:r.icon||_conf.default.icon.TOOLBAR_TOOLS_EXPORT},attrs:{title:_conf.default.i18n("vxe.toolbar.export")},on:{click:this.exportEvent}}):o(),this.print?t("vxe-button",{props:{circle:!0,icon:this.printOpts.icon||_conf.default.icon.TOOLBAR_TOOLS_PRINT},attrs:{title:_conf.default.i18n("vxe.toolbar.print")},on:{click:this.printEvent}}):o(),l?t("vxe-button",{props:{circle:!0,icon:this.isRefresh?u.iconLoading||_conf.default.icon.TOOLBAR_TOOLS_REFRESH_LOADING:u.icon||_conf.default.icon.TOOLBAR_TOOLS_REFRESH},attrs:{title:_conf.default.i18n("vxe.toolbar.refresh")},on:{click:this.refreshEvent}}):o(),a&&n?t("vxe-button",{props:{circle:!0,icon:n.isMaximized()?h.iconOut||_conf.default.icon.TOOLBAR_TOOLS_ZOOM_OUT:h.iconIn||_conf.default.icon.TOOLBAR_TOOLS_ZOOM_IN},attrs:{title:_conf.default.i18n("vxe.toolbar.zoom".concat(n.isMaximized()?"Out":"In"))},on:{click:n.triggerZoomEvent}}):o(),f?renderCustoms(t,this):o()])])},methods:{syncUpdate:function(t){var e=t.collectColumn,o=t.$table;this.$xetable=o,this.columns=e},fintTable:function(){var t=this.$parent.$children,o=t.indexOf(this);return _ctor.default.find(t,function(t,e){return t&&t.refreshColumn&&o<e&&"vxe-table"===t.$vnode.componentOptions.tag})},checkTable:function(){if(this.$xetable)return!0;_tools.UtilTools.error("vxe.error.barUnableLink")},showCustom:function(){this.customStore.visible=!0,this.checkCustomStatus()},closeCustom:function(){var t=this.custom,e=this.customStore;e.visible&&(e.visible=!1,t&&!e.immediate&&this.handleCustoms())},confirmCustomEvent:function(t){this.closeCustom(),this.emitCustomEvent("confirm",t)},customOpenEvent:function(t){var e=this.customStore;this.checkTable()&&(e.visible||(this.showCustom(),this.emitCustomEvent("open",t)))},customColseEvent:function(t){this.customStore.visible&&(this.closeCustom(),this.emitCustomEvent("close",t))},resetCustomEvent:function(t){var e=this.$xetable,o=this.columns,n=e.customOpts.checkMethod;_ctor.default.eachTree(o,function(t){n&&!n({column:t})||(t.visible=t.defaultVisible,t.halfVisible=!1),t.resizeWidth=0}),e.saveCustomResizable(!0),this.closeCustom(),this.emitCustomEvent("reset",t)},emitCustomEvent:function(t,e){var o=this.$xetable,n=this.$xegrid;(n||o).$emit("custom",{type:t,$table:o,$grid:n,$event:e})},changeCustomOption:function(t){var e=!t.visible;_ctor.default.eachTree([t],function(t){t.visible=e,t.halfVisible=!1}),this.handleOptionCheck(t),this.custom&&this.customOpts.immediate&&this.handleCustoms(),this.checkCustomStatus()},handleOptionCheck:function(e){var t=_ctor.default.findTree(this.columns,function(t){return t===e});if(t&&t.parent){var o=t.parent;o.children&&o.children.length&&(o.visible=o.children.every(function(t){return t.visible}),o.halfVisible=!o.visible&&o.children.some(function(t){return t.visible||t.halfVisible}),this.handleOptionCheck(o))}},handleCustoms:function(){var t=this.$xetable;t.saveCustomVisible(),t.analyColumnWidth(),t.refreshColumn()},checkCustomStatus:function(){var t=this.$xetable,e=this.columns,o=t.customOpts.checkMethod;this.customStore.isAll=e.every(function(t){return!!o&&!o({column:t})||t.visible}),this.customStore.isIndeterminate=!this.customStore.isAll&&e.some(function(t){return(!o||o({column:t}))&&(t.visible||t.halfVisible)})},allCustomEvent:function(){var t=this.$xetable,e=this.columns,o=this.customStore,n=t.customOpts.checkMethod,i=!o.isAll;_ctor.default.eachTree(e,function(t){n&&!n({column:t})||(t.visible=i,t.halfVisible=!1)}),o.isAll=i,this.checkCustomStatus()},handleGlobalMousedownEvent:function(t){_tools.DomTools.getEventTargetNode(t,this.$refs.customWrapper).flag||this.customColseEvent(t)},handleGlobalBlurEvent:function(t){this.customColseEvent(t)},handleClickSettingEvent:function(t){this.customStore.visible?this.customColseEvent(t):this.customOpenEvent(t)},handleMouseenterSettingEvent:function(t){this.customStore.activeBtn=!0,this.customOpenEvent(t)},handleMouseleaveSettingEvent:function(t){var e=this,o=this.customStore;o.activeBtn=!1,setTimeout(function(){o.activeBtn||o.activeWrapper||e.customColseEvent(t)},300)},handleWrapperMouseenterEvent:function(t){this.customStore.activeWrapper=!0,this.customOpenEvent(t)},handleWrapperMouseleaveEvent:function(t){var e=this,o=this.customStore;o.activeWrapper=!1,setTimeout(function(){o.activeBtn||o.activeWrapper||e.customColseEvent(t)},300)},refreshEvent:function(){var t=this,e=this.$xegrid,o=this.refreshOpts;if(!this.isRefresh)if(o.query){this.isRefresh=!0;try{Promise.resolve(o.query()).catch(function(t){return t}).then(function(){t.isRefresh=!1})}catch(t){this.isRefresh=!1}}else e&&(this.isRefresh=!0,e.commitProxy("reload").catch(function(t){return t}).then(function(){t.isRefresh=!1}))},btnEvent:function(t,e){var o=this.$xegrid,n=this.$xetable,i=e.code;if(i)if(o)o.triggerToolbarBtnEvent(e,t);else{var s=_vXETable.default.commands.get(i),c={code:i,button:e,$xegrid:o,$table:n,$event:t};s&&s.call(this,c,t),this.$emit("button-click",c)}},importEvent:function(){this.checkTable()&&this.$xetable.openImport(this.importOpts)},exportEvent:function(){this.checkTable()&&this.$xetable.openExport(this.exportOpts)},printEvent:function(){this.checkTable()&&this.$xetable.openPrint(this.printOpts)}}};exports.default=_default2;