UNPKG

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 4.42 kB
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 errLog=(0,_log.createComponentLog)("table").errLog,{getI18n,getIcon,renderEmptyElement}=_ui.VxeUI;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableImportPanel",props:{defaultOptions:{type:Object,default:()=>({})},storeData:{type:Object,default:()=>({})}},setup(c){let _=_ui.VxeUI.getComponent("VxeModal"),x=_ui.VxeUI.getComponent("VxeButton"),g=_ui.VxeUI.getComponent("VxeSelect"),h=(0,_vue.inject)("$xeTable",{}),f=h.getComputeMaps().computeImportOpts,b=(0,_vue.reactive)({loading:!1}),C=(0,_vue.ref)(),y=(0,_vue.computed)(()=>{var e=c.storeData;return e.filename+"."+e.type}),E=(0,_vue.computed)(()=>{var e=c.storeData;return e.file&&e.type}),I=(0,_vue.computed)(()=>{var e=c.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(", *.")}),D=()=>{var e=c.storeData;Object.assign(e,{filename:"",sheetName:"",type:""})},V=()=>{let{storeData:t,defaultOptions:e}=c;h.readFile(e).then(e=>{e=e.file;Object.assign(t,(0,_utils.parseFile)(e),{file:e})}).catch(()=>{})},O=()=>{(0,_vue.nextTick)(()=>{var e=C.value;e&&e.focus()})},w=()=>{var e=c.storeData;e.visible=!1},M=()=>{let{storeData:e,defaultOptions:t}=c;var l=f.value;b.loading=!0,h.importByFile(e.file,Object.assign({},l,t)).then(()=>{b.loading=!1,e.visible=!1}).catch(()=>{b.loading=!1})};return(0,_vue.nextTick)(()=>{_||errLog("vxe.error.reqComp",["vxe-modal"]),x||errLog("vxe.error.reqComp",["vxe-button"]),g||errLog("vxe.error.reqComp",["vxe-select"])}),()=>{let t=h.xeGrid,l=h.xeGantt,{defaultOptions:o,storeData:a}=c,r=y.value,i=E.value;var e=f.value;let n=I.value;var u=e.modelOptions||{};let s=e.settingOptions||{};e=o.slots||{};let p=e.top,v=e.bottom,m=e.default,d=e.footer;return _?(0,_vue.h)(_,{id:"VXE_IMPORT_MODAL",modelValue:a.visible,title:u.title||getI18n("vxe.import.impTitle"),className:"vxe-table-export-popup-wrapper",width:u.width||540,height:u.height,minWidth:u.minWidth||360,minHeight:u.minHeight||240,mask:(0,_utils.getDefaultConfig)(u.mask,!0),lockView:(0,_utils.getDefaultConfig)(u.lockView,!0),showFooter:!0,escClosable:!0,maskClosable:!0,position:u.position,fullscreen:u.fullscreen,remember:u.remember,showMinimize:u.showMinimize,showMaximize:(0,_utils.getDefaultConfig)(u.showMaximize,!0),resize:(0,_utils.getDefaultConfig)(u.resize,!0),loading:b.loading,"onUpdate:modelValue"(e){a.visible=e},onShow:O},{default:()=>{var e={$table:h,$grid:t,$gantt:l,options:o,params:o.params};return(0,_vue.h)("div",{class:"vxe-table-export--panel"},[p?(0,_vue.h)("div",{class:"vxe-table-export--panel-top"},h.callSlot(p,e)):renderEmptyElement(h),(0,_vue.h)("div",{class:"vxe-table-export--panel-body"},m?h.callSlot(m,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:D})]):(0,_vue.h)("button",{ref:C,class:"vxe-table-export--select--file",onClick:V},getI18n("vxe.import.impSelect"))])]),(0,_vue.h)("tr",[(0,_vue.h)("td",getI18n("vxe.import.impType")),(0,_vue.h)("td",n)]),!1===s.showMode?renderEmptyElement(h):(0,_vue.h)("tr",[(0,_vue.h)("td",getI18n("vxe.import.impMode")),(0,_vue.h)("td",[g?(0,_vue.h)(g,{modelValue:o.mode,options:a.modeList,"onUpdate:modelValue"(e){o.mode=e}}):renderEmptyElement(h)])])])])]),v?(0,_vue.h)("div",{class:"vxe-table-export--panel-bottom"},h.callSlot(v,e)):renderEmptyElement(h)])},footer(){var e={$table:h,$grid:t,$gantt:l,options:o,params:o.params};return(0,_vue.h)("div",{class:"vxe-table-export--panel-footer"},d?h.callSlot(d,e):[(0,_vue.h)("div",{class:"vxe-table-export--panel-btns"},[x?(0,_vue.h)(x,{content:getI18n("vxe.import.impCancel"),onClick:w}):renderEmptyElement(h),x?(0,_vue.h)(x,{status:"primary",disabled:!i||b.loading,content:getI18n("vxe.import.impConfirm"),onClick:M}):renderEmptyElement(h)])])}}):renderEmptyElement(h)}}});