UNPKG

vxe-table-select-area

Version:

一个基于 vxe-table 的可区域选中复制、粘贴的组件

1 lines 8.35 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/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")),_utils=_interopRequireDefault(require("../../tools/utils"));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","pdf"].indexOf(this.defaultOptions.type)},supportMerge:function(){var e=this.storeData,t=this.defaultOptions;return!t.original&&"current"===t.mode&&(e.isPrint||-1<["html","xlsx"].indexOf(t.type))},supportStyle:function(){var e=this.defaultOptions;return!e.original&&-1<["xlsx"].indexOf(e.type)}},render:function(l){var r=this,e=this._e,t=this.checkedAll,n=this.isAll,i=this.isIndeterminate,o=this.showSheet,a=this.supportMerge,c=this.supportStyle,s=this.defaultOptions,p=this.storeData,u=p.hasTree,d=p.hasMerge,x=p.isPrint,f=p.hasColgroup,h=s.isHeader,v=[];return _xeUtils.default.eachTree(p.columns,function(e){var t=_utils.default.formatText(e.getTitle(),1),n=e.children&&e.children.length,i=e.checked,o=e.halfChecked;v.push(l("li",{class:["vxe-export--panel-column-option","level--".concat(e.level),{"is--group":n,"is--checked":i,"is--indeterminate":o,"is--disabled":e.disabled}],attrs:{title:t},on:{click:function(){e.disabled||r.changeOption(e)}}},[l("span",{class:["vxe-checkbox--icon",o?_conf.default.icon.TABLE_CHECKBOX_INDETERMINATE:i?_conf.default.icon.TABLE_CHECKBOX_CHECKED:_conf.default.icon.TABLE_CHECKBOX_UNCHECKED]}),l("span",{class:"vxe-checkbox--label"},t)]))}),l("vxe-modal",{res:"modal",props:{value:p.visible,title:_conf.default.i18n(x?"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){p.visible=e},show:this.showEvent}},[l("div",{class:"vxe-export--panel"},[l("table",{attrs:{cellspacing:0,cellpadding:0,border:0}},[l("tbody",[[x?e():l("tr",[l("td",_conf.default.i18n("vxe.export.expName")),l("td",[l("vxe-input",{ref:"filename",props:{value:s.filename,type:"text",clearable:!0,placeholder:_conf.default.i18n("vxe.export.expNamePlaceholder")},on:{modelValue:function(e){s.filename=e}}})])]),x?e():l("tr",[l("td",_conf.default.i18n("vxe.export.expType")),l("td",[l("vxe-select",{props:{value:s.type},on:{input:function(e){s.type=e}}},p.typeList.map(function(e){return l("vxe-option",{props:{value:e.value,label:_conf.default.i18n(e.label)}})}))])]),x||o?l("tr",[l("td",_conf.default.i18n("vxe.export.expSheetName")),l("td",[l("vxe-input",{ref:"sheetname",props:{value:s.sheetName,type:"text",clearable:!0,placeholder:_conf.default.i18n("vxe.export.expSheetNamePlaceholder")},on:{modelValue:function(e){s.sheetName=e}}})])]):e(),l("tr",[l("td",_conf.default.i18n("vxe.export.expMode")),l("td",[l("vxe-select",{props:{value:s.mode},on:{input:function(e){s.mode=e}}},p.modeList.map(function(e){return l("vxe-option",{props:{value:e.value,label:_conf.default.i18n(e.label)}})}))])]),l("tr",[l("td",[_conf.default.i18n("vxe.export.expColumn")]),l("td",[l("div",{class:"vxe-export--panel-column"},[l("ul",{class:"vxe-export--panel-column-header"},[l("li",{class:["vxe-export--panel-column-option",{"is--checked":n,"is--indeterminate":i}],attrs:{title:_conf.default.i18n("vxe.table.allTitle")},on:{click:this.allColumnEvent}},[l("span",{class:["vxe-checkbox--icon",i?_conf.default.icon.TABLE_CHECKBOX_INDETERMINATE:n?_conf.default.icon.TABLE_CHECKBOX_CHECKED:_conf.default.icon.TABLE_CHECKBOX_UNCHECKED]}),l("span",{class:"vxe-checkbox--label"},_conf.default.i18n("vxe.export.expCurrentColumn"))])]),l("ul",{class:"vxe-export--panel-column-body"},v)])])]),l("tr",[l("td",_conf.default.i18n("vxe.export.expOpts")),l("td",[l("div",{class:"vxe-export--panel-option-row"},[l("vxe-checkbox",{props:{value:h,title:_conf.default.i18n("vxe.export.expHeaderTitle"),content:_conf.default.i18n("vxe.export.expOptHeader")},on:{input:function(e){s.isHeader=e}}}),l("vxe-checkbox",{props:{value:s.isFooter,disabled:!p.hasFooter,title:_conf.default.i18n("vxe.export.expFooterTitle"),content:_conf.default.i18n("vxe.export.expOptFooter")},on:{input:function(e){s.isFooter=e}}}),l("vxe-checkbox",{props:{value:s.original,title:_conf.default.i18n("vxe.export.expOriginalTitle"),content:_conf.default.i18n("vxe.export.expOptOriginal")},on:{input:function(e){s.original=e}}})]),l("div",{class:"vxe-export--panel-option-row"},[l("vxe-checkbox",{props:{value:!!(h&&f&&a)&&s.isColgroup,disabled:!h||!f||!a,title:_conf.default.i18n("vxe.export.expColgroupTitle"),content:_conf.default.i18n("vxe.export.expOptColgroup")},on:{input:function(e){s.isColgroup=e}}}),l("vxe-checkbox",{props:{value:!!(d&&a&&t)&&s.isMerge,disabled:!d||!a||!t,title:_conf.default.i18n("vxe.export.expMergeTitle"),content:_conf.default.i18n("vxe.export.expOptMerge")},on:{input:function(e){s.isMerge=e}}}),x?e():l("vxe-checkbox",{props:{value:!!c&&s.useStyle,disabled:!c,title:_conf.default.i18n("vxe.export.expUseStyleTitle"),content:_conf.default.i18n("vxe.export.expOptUseStyle")},on:{input:function(e){s.useStyle=e}}}),l("vxe-checkbox",{props:{value:!!u&&s.isAllExpand,disabled:!u,title:_conf.default.i18n("vxe.export.expAllExpandTitle"),content:_conf.default.i18n("vxe.export.expOptAllExpand")},on:{input:function(e){s.isAllExpand=e}}})])])])]])]),l("div",{class:"vxe-export--panel-btns"},[l("vxe-button",{props:{content:_conf.default.i18n("vxe.export.expCancel")},on:{click:this.cancelEvent}}),l("vxe-button",{ref:"confirmBtn",props:{status:"primary",content:_conf.default.i18n(x?"vxe.export.expPrint":"vxe.export.expConfirm")},on:{click:this.confirmEvent}})])])])},methods:{changeOption:function(e){var t=!e.checked;_xeUtils.default.eachTree([e],function(e){e.checked=t,e.halfChecked=!1}),this.handleOptionCheck(e),this.checkStatus()},handleOptionCheck:function(t){var e=_xeUtils.default.findTree(this.storeData.columns,function(e){return e===t});e&&e.parent&&(e=e.parent).children&&e.children.length&&(e.checked=e.children.every(function(e){return e.checked}),e.halfChecked=!e.checked&&e.children.some(function(e){return e.checked||e.halfChecked}),this.handleOptionCheck(e))},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;_xeUtils.default.eachTree(this.storeData.columns,function(e){e.disabled||(e.checked=t,e.halfChecked=!1)}),this.isAll=t,this.checkStatus()},showEvent:function(){var t=this;this.$nextTick(function(){var e=t.$refs,e=e.filename||e.sheetname||e.confirmBtn;e&&e.focus()}),this.checkStatus()},getExportOption:function(){var e=this.checkedAll,t=this.storeData,n=this.defaultOptions,i=this.supportMerge,o=t.hasMerge,t=t.columns,t=_xeUtils.default.searchTree(t,function(e){return e.checked},{children:"children",mapChildren:"childNodes",original:!0});return Object.assign({},n,{columns:t,isMerge:!!(o&&i&&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;