UNPKG

vxe-table

Version:

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

1 lines 7.7 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _ctor=_interopRequireDefault(require("xe-utils/ctor")),_conf=_interopRequireDefault(require("../../conf")),_modal=_interopRequireDefault(require("../../modal/src/modal")),_input=_interopRequireDefault(require("../../input/src/input")),_checkbox=_interopRequireDefault(require("../../checkbox/src/checkbox")),_select=_interopRequireDefault(require("../../select/src/select")),_option=_interopRequireDefault(require("../../select/src/option")),_tools=require("../../tools");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default={name:"VxeExportPanel",props:{defaultOptions:Object,storeData:Object},components:{VxeModal:_modal.default,VxeInput:_input.default,VxeCheckbox:_checkbox.default,VxeSelect:_select.default,VxeOption:_option.default},data:function(){return{isAll:!1,isIndeterminate:!1,loading:!1}},computed:{vSize:function(){return this.size||this.$parent.size||this.$parent.vSize},checkedAll:function(){return this.storeData.columns.every(function(e){return e.checked})},showSheet:function(){return-1<["html","xml","xlsx"].indexOf(this.defaultOptions.type)},supportMerge:function(){var e=this.storeData,t=this.defaultOptions;return!t.original&&(e.isPrint||-1<["html","xlsx"].indexOf(t.type))}},render:function(o){var i=this,e=this._e,t=this.checkedAll,n=this.isAll,c=this.isIndeterminate,l=this.showSheet,r=this.supportMerge,a=this.defaultOptions,s=this.storeData,p=s.hasMerge,u=s.isPrint,d=s.hasColgroup,x=a.isHeader,h=[];return _ctor.default.eachTree(s.columns,function(e){var t=_tools.UtilTools.formatText(e.getTitle(),1),n=e.children&&e.children.length;h.push(o("li",{class:["vxe-export--panel-column-option","level--".concat(e.level),{"is--group":n,"is--checked":e.checked,"is--indeterminate":e.halfChecked,"is--disabled":e.disabled}],attrs:{title:t},on:{click:function(){e.disabled||i.changeOption(e)}}},[o("span",{class:"vxe-checkbox--icon vxe-checkbox--checked-icon"}),o("span",{class:"vxe-checkbox--icon vxe-checkbox--unchecked-icon"}),o("span",{class:"vxe-checkbox--icon vxe-checkbox--indeterminate-icon"}),o("span",{class:"vxe-checkbox--label"},t)]))}),o("vxe-modal",{res:"modal",props:{value:s.visible,title:_conf.default.i18n(u?"vxe.export.printTitle":"vxe.export.expTitle"),width:660,mask:!0,lockView:!0,showFooter:!1,escClosable:!0,maskClosable:!0,loading:this.loading},on:{input:function(e){s.visible=e},show:this.showEvent}},[o("div",{class:"vxe-export--panel"},[o("table",{attrs:{cellspacing:0,cellpadding:0,border:0}},[o("tbody",[[u?e():o("tr",[o("td",_conf.default.i18n("vxe.export.expName")),o("td",[o("vxe-input",{ref:"filename",props:{value:a.filename,type:"text",clearable:!0,placeholder:_conf.default.i18n("vxe.export.expNamePlaceholder")},on:{input:function(e){a.filename=e}}})])]),u?e():o("tr",[o("td",_conf.default.i18n("vxe.export.expType")),o("td",[o("vxe-select",{props:{value:a.type},on:{input:function(e){a.type=e}}},s.typeList.map(function(e){return o("vxe-option",{props:{value:e.value,label:_conf.default.i18n(e.label)}})}))])]),u||l?o("tr",[o("td",_conf.default.i18n("vxe.export.expSheetName")),o("td",[o("vxe-input",{ref:"sheetname",props:{value:a.sheetName,type:"text",clearable:!0,placeholder:_conf.default.i18n("vxe.export.expSheetNamePlaceholder")},on:{input:function(e){a.sheetName=e}}})])]):e(),o("tr",[o("td",_conf.default.i18n("vxe.export.expMode")),o("td",[o("vxe-select",{props:{value:a.mode},on:{input:function(e){a.mode=e}}},s.modeList.map(function(e){return o("vxe-option",{props:{value:e.value,label:_conf.default.i18n(e.label)}})}))])]),o("tr",[o("td",[_conf.default.i18n("vxe.export.expColumn")]),o("td",[o("div",{class:"vxe-export--panel-column"},[o("ul",{class:"vxe-export--panel-column-header"},[o("li",{class:["vxe-export--panel-column-option",{"is--checked":n,"is--indeterminate":c}],attrs:{title:_conf.default.i18n("vxe.table.allTitle")},on:{click:this.allColumnEvent}},[o("span",{class:"vxe-checkbox--icon vxe-checkbox--checked-icon"}),o("span",{class:"vxe-checkbox--icon vxe-checkbox--unchecked-icon"}),o("span",{class:"vxe-checkbox--icon vxe-checkbox--indeterminate-icon"}),o("span",{class:"vxe-checkbox--label"},_conf.default.i18n("vxe.export.expCurrentColumn"))])]),o("ul",{class:"vxe-export--panel-column-body"},h)])])]),o("tr",[o("td",_conf.default.i18n("vxe.export.expOpts")),o("td",[o("div",{class:"vxe-export--panel-option-row"},[o("vxe-checkbox",{props:{value:x,title:_conf.default.i18n("vxe.export.expHeaderTitle"),content:_conf.default.i18n("vxe.export.expOptHeader")},on:{input:function(e){a.isHeader=e}}}),o("vxe-checkbox",{props:{value:a.isFooter,disabled:!s.hasFooter,title:_conf.default.i18n("vxe.export.expFooterTitle"),content:_conf.default.i18n("vxe.export.expOptFooter")},on:{input:function(e){a.isFooter=e}}})]),o("div",{class:"vxe-export--panel-option-row"},[o("vxe-checkbox",{props:{value:!!(x&&d&&r)&&a.isColgroup,disabled:!x||!d||!r,title:_conf.default.i18n("vxe.export.expColgroupTitle"),content:_conf.default.i18n("vxe.export.expOptColgroup")},on:{input:function(e){a.isColgroup=e}}}),o("vxe-checkbox",{props:{value:!!(p&&r&&t)&&a.isMerge,disabled:!p||!r||!t,title:_conf.default.i18n("vxe.export.expMergeTitle"),content:_conf.default.i18n("vxe.export.expOptMerge")},on:{input:function(e){a.isMerge=e}}}),o("vxe-checkbox",{props:{value:a.original,title:_conf.default.i18n("vxe.export.expOriginalTitle"),content:_conf.default.i18n("vxe.export.expOptOriginal")},on:{input:function(e){a.original=e}}})])])])]])]),o("div",{class:"vxe-export--panel-btns"},[o("vxe-button",{props:{content:_conf.default.i18n("vxe.export.expCancel")},on:{click:this.cancelEvent}}),o("vxe-button",{ref:"confirmBtn",props:{status:"primary",content:_conf.default.i18n(u?"vxe.export.expPrint":"vxe.export.expConfirm")},on:{click:this.confirmEvent}})])])])},methods:{changeOption:function(e){var t=!e.checked;_ctor.default.eachTree([e],function(e){e.checked=t,e.halfChecked=!1}),this.handleOptionCheck(e),this.checkStatus()},handleOptionCheck:function(t){var e=_ctor.default.findTree(this.storeData.columns,function(e){return e===t});if(e&&e.parent){var n=e.parent;n.children&&n.children.length&&(n.checked=n.children.every(function(e){return e.checked}),n.halfChecked=!n.checked&&n.children.some(function(e){return e.checked||e.halfChecked}),this.handleOptionCheck(n))}},checkStatus:function(){var e=this.storeData.columns;this.isAll=e.every(function(e){return e.disabled||e.checked}),this.isIndeterminate=!this.isAll&&e.some(function(e){return!e.disabled&&(e.checked||e.halfChecked)})},allColumnEvent:function(){var t=!this.isAll;_ctor.default.eachTree(this.storeData.columns,function(e){e.disabled||(e.checked=t,e.halfChecked=!1)}),this.isAll=t,this.checkStatus()},showEvent:function(){var n=this;this.$nextTick(function(){var e=n.$refs,t=e.filename||e.sheetname||e.confirmBtn;t&&t.focus()}),this.checkStatus()},getExportOption:function(){var e=this.checkedAll,t=this.storeData,n=this.defaultOptions,o=_ctor.default.searchTree(t.columns,function(e){return e.checked},{children:"children",mapChildren:"childNodes",original:!0});return Object.assign({columns:o},n,{isMerge:!!e&&n.isMerge})},cancelEvent:function(){this.storeData.visible=!1},confirmEvent:function(e){this.storeData.isPrint?this.printEvent(e):this.exportEvent(e)},printEvent:function(){var e=this.$parent;this.storeData.visible=!1,e.print(Object.assign({},e.printOpts,this.getExportOption()))},exportEvent:function(){var e=this,t=this.$parent;this.loading=!0,t.exportData(Object.assign({},t.exportOpts,this.getExportOption())).then(function(){e.loading=!1,e.storeData.visible=!1}).catch(function(){e.loading=!1})}}};exports.default=_default;