@blueking/vxe-table
Version:
一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟树、列拖拽,懒加载、快捷菜单、数据校验、树形结构、打印、导入导出、自定义模板、渲染器、JSON 配置式...
1 lines • 3.92 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_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}=_ui.VxeUI;var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableImportPanel",props:{defaultOptions:Object,storeData:Object},setup(s){let p=_ui.VxeUI.getComponent("VxeModal"),d=_ui.VxeUI.getComponent("VxeButton"),m=_ui.VxeUI.getComponent("VxeSelect"),_=(0,_vue.inject)("$xeTable",{}),a=_.getComputeMaps().computeImportOpts,c=(0,_vue.reactive)({loading:!1}),x=(0,_vue.ref)(),g=(0,_vue.computed)(()=>{var e=s.storeData;return e.filename+"."+e.type}),b=(0,_vue.computed)(()=>{var e=s.storeData;return e.file&&e.type}),h=(0,_vue.computed)(()=>{var e=s.storeData;let{type:t,typeList:o}=e;return t?(e=_xeUtils.default.find(o,e=>t===e.value))?e.label:"*.*":"*."+o.map(e=>e.value).join(", *.")}),f=()=>{var e=s.storeData;Object.assign(e,{filename:"",sheetName:"",type:""})},C=()=>{let{storeData:t,defaultOptions:e}=s;_.readFile(e).then(e=>{e=e.file;Object.assign(t,(0,_utils.parseFile)(e),{file:e})}).catch(e=>e)},V=()=>{(0,_vue.nextTick)(()=>{var e=x.value;e&&e.focus()})},I=()=>{var e=s.storeData;e.visible=!1},O=()=>{let{storeData:e,defaultOptions:t}=s;var o=a.value;c.loading=!0,_.importByFile(e.file,Object.assign({},o,t)).then(()=>{c.loading=!1,e.visible=!1}).catch(()=>{c.loading=!1})};return"development"===process.env.NODE_ENV&&(0,_vue.nextTick)(()=>{p||(0,_log.errLog)("vxe.error.reqComp",["vxe-modal"]),d||(0,_log.errLog)("vxe.error.reqComp",["vxe-button"]),m||(0,_log.errLog)("vxe.error.reqComp",["vxe-select"])}),()=>{let{defaultOptions:t,storeData:o}=s,a=g.value,l=b.value,r=h.value;var e=t.slots||{};let i=e.top,u=e.bottom,v=e.default,n=e.footer;return p?(0,_vue.h)(p,{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:c.loading,"onUpdate:modelValue"(e){o.visible=e},onShow:V},{default:()=>{var e={$table:_,$grid:_.xegrid,options:t,params:t.params};return(0,_vue.h)("div",{class:"vxe-table-export--panel"},[i?(0,_vue.h)("div",{class:"vxe-table-export--panel-top"},_.callSlot(i,e)):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-table-export--panel-body"},v?_.callSlot(v,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",[l?(0,_vue.h)("div",{class:"vxe-table-export--selected--file",title:a},[(0,_vue.h)("span",a),(0,_vue.h)("i",{class:getIcon().INPUT_CLEAR,onClick:f})]):(0,_vue.h)("button",{ref:x,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",r)]),(0,_vue.h)("tr",[(0,_vue.h)("td",getI18n("vxe.import.impMode")),(0,_vue.h)("td",[m?(0,_vue.h)(m,{modelValue:t.mode,options:o.modeList,"onUpdate:modelValue"(e){t.mode=e}}):(0,_vue.createCommentVNode)()])])])])]),u?(0,_vue.h)("div",{class:"vxe-table-export--panel-bottom"},_.callSlot(u,e)):(0,_vue.createCommentVNode)()])},footer(){var e={$table:_,$grid:_.xegrid,options:t,params:t.params};return(0,_vue.h)("div",{class:"vxe-table-export--panel-footer"},n?_.callSlot(n,e):[(0,_vue.h)("div",{class:"vxe-table-export--panel-btns"},[d?(0,_vue.h)(d,{content:getI18n("vxe.import.impCancel"),onClick:I}):(0,_vue.createCommentVNode)(),d?(0,_vue.h)(d,{status:"primary",disabled:!l||c.loading,content:getI18n("vxe.import.impConfirm"),onClick:O}):(0,_vue.createCommentVNode)()])])}}):(0,_vue.createCommentVNode)()}}});