UNPKG

vxe-table-ro-test

Version:

一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟树、列拖拽,懒加载、快捷菜单、数据校验、树形结构、打印、导入导出、自定义模板、渲染器、JSON 配置式...

1 lines 8.89 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_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}}const{getConfig,getIcon,getI18n,renderer,commands,createEvent,useFns}=_ui.VxeUI;var _default=exports.default=(0,_vue.defineComponent)({name:"VxeToolbar",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:()=>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){const{slots:d,emit:r}=e;var o=_xeUtils.default.uniqueId();const v=_ui.VxeUI.getComponent("VxeButton"),m=useFns.useSize(u)["computeSize"],p=(0,_vue.reactive)({isRefresh:!1,connectFlag:0,columns:[]}),g={connectTable:null},b=(0,_vue.ref)(),t={refElem:b},_={xID:o,props:u,context:e,reactData:p,internalData:g,getRefMaps:()=>t};const f=(0,_vue.inject)("$xeGrid",null),x=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().toolbar.refresh,!0),u.refresh)),O=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().toolbar.import,!0),u.import)),T=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().toolbar.export,!0),u.export)),h=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().toolbar.print,!0),u.print)),C=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().toolbar.zoom,!0),u.zoom)),L=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().toolbar.custom,!0),u.custom)),n=(0,_vue.computed)(()=>{var e=g["connectTable"];if((p.connectFlag||e)&&e)return e=e.getComputeMaps()["computeCustomOpts"],e.value;return{trigger:""}}),y=(0,_vue.computed)(()=>{return n.value.trigger}),l=()=>{var e=g["connectTable"];if(e)return!0;(0,_log.errLog)("vxe.error.barUnableLink")},E=({$event:e})=>{var o=g["connectTable"];o&&(o.triggerCustomEvent?o.triggerCustomEvent(e):(0,_log.errLog)("vxe.error.reqModule",["VxeTableCustomModule"]))},k=({$event:e})=>{var o=g["connectTable"];o?o.customOpenEvent(e):(0,_log.errLog)("vxe.error.reqModule",["VxeTableCustomModule"])},I=({$event:e})=>{var o=g["connectTable"];const t=o;if(t){const r=t.reactData["customStore"];r.activeBtn=!1,setTimeout(()=>{r.activeBtn||r.activeWrapper||t.customCloseEvent(e)},350)}},R=({$event:e})=>{var o=p["isRefresh"],t=x.value;if(!o){o=t.queryMethod||t.query;if(o){p.isRefresh=!0;try{Promise.resolve(o({})).catch(e=>e).then(()=>{p.isRefresh=!1})}catch(e){p.isRefresh=!1}}else f&&(p.isRefresh=!0,f.triggerToolbarCommitEvent({code:t.code||"reload"},e).catch(e=>e).then(()=>{p.isRefresh=!1}))}},N=({$event:e})=>{f&&f.triggerZoomEvent(e)},$=(e,o)=>{var t,r=g["connectTable"],n=o["code"];n&&(f?f.triggerToolbarBtnEvent(o,e):(t=commands.get(n),o={code:n,button:o,$table:r,$grid:f,$event:e},t&&((r=t.tableCommandMethod||t.commandMethod)?r(o):"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notCommands",[n])),_.dispatchEvent("button-click",o,e)))},B=(e,o)=>{var t,r=g["connectTable"],n=o["code"];n&&(f?f.triggerToolbarTolEvent(o,e):(t=commands.get(n),o={code:n,tool:o,$table:r,$grid:f,$event:e},t&&((r=t.tableCommandMethod||t.commandMethod)?r(o):"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notCommands",[n])),_.dispatchEvent("tool-click",o,e)))},M=()=>{var e;l()&&(e=g["connectTable"],e)&&e.openImport()},V=()=>{var e;l()&&(e=g["connectTable"],e)&&e.openExport()},F=()=>{var e;l()&&(e=g["connectTable"],e)&&e.openPrint()};Object.assign(_,{dispatchEvent:(e,o,t)=>{r(e,createEvent(t,{$toolbar:_},o))},syncUpdate(e){g.connectTable=e.$table,p.columns=e.collectColumn,p.connectFlag++}});const S=(e,t)=>{e=e.dropdowns;return e?e.map((o,e)=>!1!==o.visible&&v?(0,_vue.h)(v,{key:e,disabled:o.disabled,loading:o.loading,type:o.type,mode:o.mode,icon:o.icon,circle:o.circle,round:o.round,status:o.status,content:o.name,title:o.title,routerLink:o.routerLink,permissionCode:o.permissionCode,prefixTooltip:o.prefixTooltip,suffixTooltip:o.suffixTooltip,onClick:({$event:e})=>(t?$:B)(e,o)}):(0,_vue.createCommentVNode)()):[]};return _.renderVN=()=>{var{perfect:e,loading:o,refresh:t,zoom:r,custom:n,className:l}=u,i=g["connectTable"],a=m.value,s=d.tools,c=d.buttons;return(0,_vue.h)("div",{ref:b,class:["vxe-toolbar",l?_xeUtils.default.isFunction(l)?l({$toolbar:_}):l:"",{["size--"+a]:a,"is--perfect":e,"is--loading":o}]},[(0,_vue.h)("div",{class:"vxe-buttons--wrapper"},c?c({$grid:f,$table:i}):(()=>{var e=u["buttons"],o=g["connectTable"];const i=o,a=[];return e&&e.forEach(o=>{var e,t,r,{dropdowns:n,buttonRender:l}=o;!1!==o.visible&&(e=l?renderer.get(l.name):null,l&&e&&e.renderToolbarButton?(t=e.toolbarButtonClassName,r={$grid:f,$table:i,button:o},a.push((0,_vue.h)("span",{class:["vxe-button--item",t?_xeUtils.default.isFunction(t)?t(r):t:""]},(0,_vn.getSlotVNs)(e.renderToolbarButton(l,r))))):v&&a.push((0,_vue.h)(v,{disabled:o.disabled,loading:o.loading,type:o.type,mode:o.mode,icon:o.icon,circle:o.circle,round:o.round,status:o.status,content:o.name,title:o.title,routerLink:o.routerLink,permissionCode:o.permissionCode,prefixTooltip:o.prefixTooltip,suffixTooltip:o.suffixTooltip,destroyOnClose:o.destroyOnClose,placement:o.placement,transfer:o.transfer,onClick:({$event:e})=>$(e,o)},n&&n.length?{dropdowns:()=>S(o,!0)}:{})))}),a})()),(0,_vue.h)("div",{class:"vxe-tools--wrapper"},s?s({$grid:f,$table:i}):(()=>{var e=u["tools"],o=g["connectTable"];const s=o,c=[];return e&&e.forEach((o,e)=>{var t,r,n,l,{dropdowns:i,toolRender:a}=o;!1!==o.visible&&(t=a?a.name:null,r=a?renderer.get(t):null,a&&r&&r.renderToolbarTool?(n=r.toolbarToolClassName,l={$grid:f,$table:s,tool:o},c.push((0,_vue.h)("span",{key:t,class:["vxe-tool--item",n?_xeUtils.default.isFunction(n)?n(l):n:""]},(0,_vn.getSlotVNs)(r.renderToolbarTool(a,l))))):v&&c.push((0,_vue.h)(v,{key:e,disabled:o.disabled,loading:o.loading,type:o.type,mode:o.mode,icon:o.icon,circle:o.circle,round:o.round,status:o.status,content:o.name,title:o.title,routerLink:o.routerLink,permissionCode:o.permissionCode,prefixTooltip:o.prefixTooltip,suffixTooltip:o.suffixTooltip,destroyOnClose:o.destroyOnClose,placement:o.placement,transfer:o.transfer,onClick:({$event:e})=>B(e,o)},i&&i.length?{dropdowns:()=>S(o,!1)}:{})))}),c})()),(0,_vue.h)("div",{class:"vxe-tools--operate"},[u.import&&(l=O.value,v)?(0,_vue.h)(v,{key:"import",circle:!0,icon:l.icon||getIcon().TOOLBAR_TOOLS_IMPORT,title:getI18n("vxe.toolbar.import"),onClick:M}):(0,_vue.createCommentVNode)(),u.export&&(a=T.value,v)?(0,_vue.h)(v,{key:"export",circle:!0,icon:a.icon||getIcon().TOOLBAR_TOOLS_EXPORT,title:getI18n("vxe.toolbar.export"),onClick:V}):(0,_vue.createCommentVNode)(),u.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:F}):(0,_vue.createCommentVNode)(),t&&(o=x.value,v)?(0,_vue.h)(v,{key:"refresh",circle:!0,icon:p.isRefresh?o.iconLoading||getIcon().TOOLBAR_TOOLS_REFRESH_LOADING:o.icon||getIcon().TOOLBAR_TOOLS_REFRESH,title:getI18n("vxe.toolbar.refresh"),onClick:R}):(0,_vue.createCommentVNode)(),r&&f&&(c=C.value,f)&&v?(0,_vue.h)(v,{key:"zoom",circle:!0,icon:f.isMaximized()?c.iconOut||getIcon().TOOLBAR_TOOLS_MINIMIZE:c.iconIn||getIcon().TOOLBAR_TOOLS_FULLSCREEN,title:getI18n("vxe.toolbar.zoom"+(f.isMaximized()?"Out":"In")),onClick:N}):(0,_vue.createCommentVNode)(),n&&(s=L.value,i=y.value,l={},"manual"!==i&&("hover"===i?(l.onMouseenter=k,l.onMouseleave=I):l.onClick=E),v)?(0,_vue.h)(v,Object.assign({key:"custom",circle:!0,icon:s.icon||getIcon().TOOLBAR_TOOLS_CUSTOM,title:getI18n("vxe.toolbar.custom"),className:"vxe-toolbar-custom-target"},l)):(0,_vue.createCommentVNode)()])])},(0,_vue.nextTick)(()=>{var e=u["refresh"],o=x.value,o=o.queryMethod||o.query,e=(!e||f||o||(0,_log.warnLog)("vxe.error.notFunc",["queryMethod"]),L.value);"development"===process.env.NODE_ENV&&(e.isFooter&&(0,_log.warnLog)("vxe.error.delProp",["toolbar.custom.isFooter","table.custom-config.showFooter"]),e.showFooter&&(0,_log.warnLog)("vxe.error.delProp",["toolbar.custom.showFooter","table.custom-config.showFooter"]),e.immediate&&(0,_log.warnLog)("vxe.error.delProp",["toolbar.custom.immediate","table.custom-config.immediate"]),e.trigger)&&(0,_log.warnLog)("vxe.error.delProp",["toolbar.custom.trigger","table.custom-config.trigger"]),"development"===process.env.NODE_ENV&&(u.refresh||u.import||u.export||u.print||u.zoom)&&!v&&(0,_log.errLog)("vxe.error.reqComp",["vxe-button"])}),_},render(){return this.renderVN()}});