| 1 |
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _ui=require("../../../ui"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../../ui/src/utils"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,getIcon,globalMixins,renderEmptyElement}=_ui.VxeUI;var _default=exports.default={name:"VxeTableExportPanel",mixins:[globalMixins.sizeMixin],props:{defaultOptions:Object,storeData:Object},components:{},inject:{$xeTable:{default:null}},data(){return{isAll:!1,isIndeterminate:!1,loading:!1}},computed:{checkedAll(){return this.storeData.columns.every(e=>e.checked)},showSheet(){return-1<["html","xml","xlsx","pdf"].indexOf(this.defaultOptions.type)},supportMerge(){var{storeData:e,defaultOptions:t}=this;return!t.original&&"current"===t.mode&&(e.isPrint||-1<["html","xlsx"].indexOf(t.type))},supportStyle(){var e=this.defaultOptions;return!e.original&&-1<["xlsx"].indexOf(e.type)}},created(){let e=_ui.VxeUI.getComponent("VxeModal"),t=_ui.VxeUI.getComponent("VxeButton"),l=_ui.VxeUI.getComponent("VxeSelect"),o=_ui.VxeUI.getComponent("VxeInput"),i=_ui.VxeUI.getComponent("VxeCheckbox");this.$nextTick(()=>{e||(0,_log.errLog)("vxe.error.reqComp",["vxe-modal"]),t||(0,_log.errLog)("vxe.error.reqComp",["vxe-button"]),l||(0,_log.errLog)("vxe.error.reqComp",["vxe-select"]),o||(0,_log.errLog)("vxe.error.reqComp",["vxe-input"]),i||(0,_log.errLog)("vxe.error.reqComp",["vxe-checkbox"])})},render(r){let l=this.$xeTable,o=l.$xeGrid,i=l.$xeGantt,{_e:n,checkedAll:a,isAll:s,isIndeterminate:p,showSheet:x,supportMerge:c,supportStyle:d,defaultOptions:h,storeData:v}=this,{hasTree:u,hasMerge:g,isPrint:m,hasColgroup:b,columns:k}=v,C=h.isHeader;var e=h.slots||{};let E=e.top,f=e.bottom,I=e.default,t=e.footer,O=e.parameter,_=[];return _xeUtils.default.eachTree(k,e=>{var t=(0,_utils.formatText)(e.getTitle(),1),l=e.children&&e.children.length,o=e.checked,i=e.halfChecked,n="html"===e.type;_.push(r("li",{class:["vxe-table-export--panel-column-option","level--"+e.level,{"is--group":l,"is--checked":o,"is--indeterminate":i,"is--disabled":e.disabled}],attrs:{title:t},on:{click:()=>{e.disabled||this.changeOption(e)}}},[r("span",{class:["vxe-checkbox--icon",i?getIcon().TABLE_CHECKBOX_INDETERMINATE:o?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]}),n?r("span",{key:"1",class:"vxe-checkbox--label",domProps:{innerHTML:t}}):r("span",{key:"0",class:"vxe-checkbox--label"},t)]))}),r("vxe-modal",{ref:"modal",props:{id:"VXE_EXPORT_MODAL",value:v.visible,title:getI18n(m?"vxe.export.printTitle":"vxe.export.expTitle"),width:660,minWidth:500,minHeight:400,mask:!0,lockView:!0,showFooter:!0,escClosable:!0,maskClosable:!0,showMaximize:!0,resize:!0,loading:this.loading},on:{input(e){v.visible=e},show:this.showEvent},scopedSlots:{default:()=>{var e={$table:l,$grid:o,$gantt:i,options:h,columns:k,params:h.params},t="empty"===h.mode;return r("div",{class:"vxe-table-export--panel"},[E?r("div",{class:"vxe-table-export--panel-top"},l.callSlot(E,e,r)):renderEmptyElement(this),r("div",{class:"vxe-table-export--panel-body"},I?l.callSlot(I,e,r):[r("table",{attrs:{class:"vxe-table-export--panel-table",cellspacing:0,cellpadding:0,border:0}},[r("tbody",[[m?n():r("tr",[r("td",getI18n("vxe.export.expName")),r("td",[r("vxe-input",{ref:"filename",props:{value:h.filename,type:"text",clearable:!0,placeholder:getI18n("vxe.export.expNamePlaceholder")},on:{modelValue(e){h.filename=e}}})])]),m?n():r("tr",[r("td",getI18n("vxe.export.expType")),r("td",[r("vxe-select",{props:{value:h.type,options:v.typeList},on:{modelValue(e){h.type=e}}})])]),m||x?r("tr",[r("td",getI18n("vxe.export.expSheetName")),r("td",[r("vxe-input",{ref:"sheetname",props:{value:h.sheetName,type:"text",clearable:!0,placeholder:getI18n("vxe.export.expSheetNamePlaceholder")},on:{modelValue(e){h.sheetName=e}}})])]):n(),r("tr",[r("td",getI18n("vxe.export.expMode")),r("td",[r("vxe-select",{props:{value:h.mode,options:v.modeList},on:{modelValue(e){h.mode=e}}})])]),r("tr",[r("td",[getI18n("vxe.export.expColumn")]),r("td",[r("div",{class:"vxe-table-export--panel-column"},[r("ul",{class:"vxe-table-export--panel-column-header"},[r("li",{class:["vxe-table-export--panel-column-option",{"is--checked":s,"is--indeterminate":p}],attrs:{title:getI18n("vxe.table.allTitle")},on:{click:this.allColumnEvent}},[r("span",{class:["vxe-checkbox--icon",p?getIcon().TABLE_CHECKBOX_INDETERMINATE:s?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]}),r("span",{class:"vxe-checkbox--label"},getI18n("vxe.export.expCurrentColumn"))])]),r("ul",{class:"vxe-table-export--panel-column-body"},_)])])]),r("tr",[r("td",getI18n("vxe.export.expOpts")),O?r("td",[r("div",{class:"vxe-table-export--panel-option-row"},l.callSlot(O,e,r))]):r("td",[r("div",{class:"vxe-table-export--panel-option-row"},[r("vxe-checkbox",{props:{value:t||C,disabled:t,title:getI18n("vxe.export.expHeaderTitle"),content:getI18n("vxe.export.expOptHeader")},on:{input(e){h.isHeader=e}}}),r("vxe-checkbox",{props:{value:!!C&&h.isTitle,disabled:!C,title:getI18n("vxe.export.expTitleTitle"),content:getI18n("vxe.export.expOptTitle")},on:{input(e){h.isTitle=e}}}),r("vxe-checkbox",{props:{value:!!(C&&b&&c)&&h.isColgroup,disabled:!C||!b||!c,title:getI18n("vxe.export.expColgroupTitle"),content:getI18n("vxe.export.expOptColgroup")},on:{input(e){h.isColgroup=e}}})]),r("div",{class:"vxe-table-export--panel-option-row"},[r("vxe-checkbox",{props:{value:!t&&h.original,disabled:t,title:getI18n("vxe.export.expOriginalTitle"),content:getI18n("vxe.export.expOptOriginal")},on:{input(e){h.original=e}}}),r("vxe-checkbox",{props:{value:!!(g&&c&&a)&&h.isMerge,disabled:t||!g||!c||!a,title:getI18n("vxe.export.expMergeTitle"),content:getI18n("vxe.export.expOptMerge")},on:{input(e){h.isMerge=e}}}),m?n():r("vxe-checkbox",{props:{value:!!d&&h.useStyle,disabled:!d,title:getI18n("vxe.export.expUseStyleTitle"),content:getI18n("vxe.export.expOptUseStyle")},on:{input(e){h.useStyle=e}}}),r("vxe-checkbox",{props:{value:!!u&&h.isAllExpand,disabled:t||!u,title:getI18n("vxe.export.expAllExpandTitle"),content:getI18n("vxe.export.expOptAllExpand")},on:{input(e){h.isAllExpand=e}}})]),r("div",{class:"vxe-table-export--panel-option-row"},[r("vxe-checkbox",{props:{value:h.isFooter,disabled:!v.hasFooter,title:getI18n("vxe.export.expFooterTitle"),content:getI18n("vxe.export.expOptFooter")},on:{input(e){h.isFooter=e}}})])])])]])])]),f?r("div",{class:"vxe-table-export--panel-bottom"},l.callSlot(f,e,r)):renderEmptyElement(this)])},footer:()=>{var e={$table:l,$grid:o,$gantt:i,options:h,columns:k,params:h.params};return r("div",{class:"vxe-table-export--panel-footer"},t?l.callSlot(t,e,r):[r("div",{class:"vxe-table-export--panel-btns"},[r("vxe-button",{props:{content:getI18n("vxe.export.expCancel")},on:{click:this.cancelEvent}}),r("vxe-button",{ref:"confirmBtn",props:{status:"primary",content:getI18n(m?"vxe.export.expPrint":"vxe.export.expConfirm")},on:{click:this.confirmEvent}})])])}}})},methods:{changeOption(e){let t=!e.checked;_xeUtils.default.eachTree([e],e=>{e.checked=t,e.halfChecked=!1}),this.handleOptionCheck(e),this.checkStatus()},handleOptionCheck(t){var e=_xeUtils.default.findTree(this.storeData.columns,e=>e===t);e&&e.parent&&(e=e.parent,e.children)&&e.children.length&&(e.checked=e.children.every(e=>e.checked),e.halfChecked=!e.checked&&e.children.some(e=>e.checked||e.halfChecked),this.handleOptionCheck(e))},checkStatus(){var e=this.storeData.columns;this.isAll=e.every(e=>e.disabled||e.checked),this.isIndeterminate=!this.isAll&&e.some(e=>!e.disabled&&(e.checked||e.halfChecked))},allColumnEvent(){let t=!this.isAll;_xeUtils.default.eachTree(this.storeData.columns,e=>{e.disabled||(e.checked=t,e.halfChecked=!1)}),this.isAll=t,this.checkStatus()},showEvent(){this.$nextTick(()=>{var e=this.$refs,e=e.filename||e.sheetname||e.confirmBtn;e&&e.focus()}),this.checkStatus()},getExportOption(){var{checkedAll:e,storeData:t,defaultOptions:l,supportMerge:o}=this,{hasMerge:t,columns:i}=t,i=_xeUtils.default.searchTree(i,e=>e.checked,{children:"children",mapChildren:"childNodes",original:!0});return Object.assign({},l,{columns:i,isMerge:!!(t&&o&&e)&&l.isMerge})},cancelEvent(){this.storeData.visible=!1},confirmEvent(e){this.storeData.isPrint?this.printEvent(e):this.exportEvent(e)},printEvent(){var e=this.$parent;this.storeData.visible=!1,e.print(Object.assign({},e.printOpts,this.getExportOption()))},exportEvent(){var e=this.$xeTable,t=e.exportOpts;this.loading=!0,e.exportData(Object.assign({},t,this.getExportOption())).then(()=>{this.loading=!1,this.storeData.visible=!1}).catch(()=>{this.loading=!1})}}};
|