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