vxe-table
Version:
A PC-end table component based on Vxe UI, supporting copy-paste, data pivot table, and high-performance virtual list table solution.
1 lines • 3.92 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../../ui/src/comp"),_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,renderEmptyElement}=_ui.VxeUI;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableImportPanel",props:{defaultOptions:Object,storeData:Object},setup(d){let m=_ui.VxeUI.getComponent("VxeModal"),c=_ui.VxeUI.getComponent("VxeButton"),_=_ui.VxeUI.getComponent("VxeSelect"),x=(0,_vue.inject)("$xeTable",{}),a=x.getComputeMaps().computeImportOpts,g=(0,_vue.reactive)({loading:!1}),b=(0,_vue.ref)(),h=(0,_vue.computed)(()=>{var e=d.storeData;return e.filename+"."+e.type}),f=(0,_vue.computed)(()=>{var e=d.storeData;return e.file&&e.type}),y=(0,_vue.computed)(()=>{var e=d.storeData;let{type:t,typeList:l}=e;return t?(e=_xeUtils.default.find(l,e=>t===e.value))?e.label:"*.*":"*."+l.map(e=>e.value).join(", *.")}),I=()=>{var e=d.storeData;Object.assign(e,{filename:"",sheetName:"",type:""})},C=()=>{let{storeData:t,defaultOptions:e}=d;x.readFile(e).then(e=>{e=e.file;Object.assign(t,(0,_utils.parseFile)(e),{file:e})}).catch(e=>e)},E=()=>{(0,_vue.nextTick)(()=>{var e=b.value;e&&e.focus()})},V=()=>{var e=d.storeData;e.visible=!1},O=()=>{let{storeData:e,defaultOptions:t}=d;var l=a.value;g.loading=!0,x.importByFile(e.file,Object.assign({},l,t)).then(()=>{g.loading=!1,e.visible=!1}).catch(()=>{g.loading=!1})};return(0,_vue.nextTick)(()=>{m||(0,_log.errLog)("vxe.error.reqComp",["vxe-modal"]),c||(0,_log.errLog)("vxe.error.reqComp",["vxe-button"]),_||(0,_log.errLog)("vxe.error.reqComp",["vxe-select"])}),()=>{let t=x.xeGrid,l=x.xeGantt,{defaultOptions:a,storeData:o}=d,r=h.value,i=f.value,n=y.value;var e=a.slots||{};let u=e.top,p=e.bottom,s=e.default,v=e.footer;return m?(0,_vue.h)(m,{id:"VXE_IMPORT_MODAL",modelValue:o.visible,title:getI18n("vxe.import.impTitle"),className:"vxe-table-export-popup-wrapper",width:540,minWidth:360,minHeight:240,mask:!0,lockView:!0,showFooter:!0,escClosable:!0,maskClosable:!0,showMaximize:!0,resize:!0,loading:g.loading,"onUpdate:modelValue"(e){o.visible=e},onShow:E},{default:()=>{var e={$table:x,$grid:t,$gantt:l,options:a,params:a.params};return(0,_vue.h)("div",{class:"vxe-table-export--panel"},[u?(0,_vue.h)("div",{class:"vxe-table-export--panel-top"},x.callSlot(u,e)):renderEmptyElement(x),(0,_vue.h)("div",{class:"vxe-table-export--panel-body"},s?x.callSlot(s,e):[(0,_vue.h)("table",{class:"vxe-table-export--panel-table",cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("tbody",[(0,_vue.h)("tr",[(0,_vue.h)("td",getI18n("vxe.import.impFile")),(0,_vue.h)("td",[i?(0,_vue.h)("div",{class:"vxe-table-export--selected--file",title:r},[(0,_vue.h)("span",r),(0,_vue.h)("i",{class:getIcon().INPUT_CLEAR,onClick:I})]):(0,_vue.h)("button",{ref:b,class:"vxe-table-export--select--file",onClick:C},getI18n("vxe.import.impSelect"))])]),(0,_vue.h)("tr",[(0,_vue.h)("td",getI18n("vxe.import.impType")),(0,_vue.h)("td",n)]),(0,_vue.h)("tr",[(0,_vue.h)("td",getI18n("vxe.import.impMode")),(0,_vue.h)("td",[_?(0,_vue.h)(_,{modelValue:a.mode,options:o.modeList,"onUpdate:modelValue"(e){a.mode=e}}):renderEmptyElement(x)])])])])]),p?(0,_vue.h)("div",{class:"vxe-table-export--panel-bottom"},x.callSlot(p,e)):renderEmptyElement(x)])},footer(){var e={$table:x,$grid:t,$gantt:l,options:a,params:a.params};return(0,_vue.h)("div",{class:"vxe-table-export--panel-footer"},v?x.callSlot(v,e):[(0,_vue.h)("div",{class:"vxe-table-export--panel-btns"},[c?(0,_vue.h)(c,{content:getI18n("vxe.import.impCancel"),onClick:V}):renderEmptyElement(x),c?(0,_vue.h)(c,{status:"primary",disabled:!i||g.loading,content:getI18n("vxe.import.impConfirm"),onClick:O}):renderEmptyElement(x)])])}}):renderEmptyElement(x)}}});