| 1 |
- import{k as q,E as s,h as L,t as k,z as C,y as N}from"./index.BDe1Jdfj.js";import{createCrudOptions as O}from"./crud.B8meJT9D.js";import{a as x,r as h,q as P,aj as m,J,o as M,K as r,S as n,H as $,u as j,P as d}from"./vue.D1BjjNmv.js";import{_ as E}from"./_plugin-vue_export-helper.DlAUqK2U.js";import"./api.BwnHCOnr.js";import"./authFunction.tUrmQAXy.js";const H=x({name:"device"}),K=x({...H,setup(U,{expose:R}){const{crudBinding:A,crudRef:D,crudExpose:o,crudOptions:W,resetCrudOptions:G}=q({createCrudOptions:O}),p=h(!1),u=h(!1),f=h([]),g=h(!1);R({importLoading:u,exportAllLoading:g});const F=()=>{p.value=!0},S=a=>{f.value=[a.raw]},B=async()=>{if(u.value)return;if(f.value.length===0){s.warning("请先选择文件");return}const a=f.value[0];if(!a){s.error("文件无效,请重新选择");return}const e=new FormData;e.append("file",a);const l=L.get("token");try{u.value=!0;const i=await k({url:"/api/system/device/batch_import/",method:"post",data:e,headers:{"Content-Type":"multipart/form-data",Authorization:l?`JWT ${l}`:""}});console.log("导入resssss:::",i),s.success(i.msg),p.value=!1,f.value=[],o.doRefresh()}catch(i){s.error("导入失败,请检查文件格式或内容"),console.error(i)}finally{u.value=!1}},I=async()=>{const a=o.selectedIds||[];if(console.log("selectedRows::",a),a.length===0){s.warning("请先选择要导出的设备");return}try{await C({url:"/api/system/device/export_selected/",method:"post",data:{device_ids:a},filename:"设备导出"}),s.success("导出成功")}catch(e){s.error("导出失败"),console.error(e)}},V=async()=>{var a,e,l;g.value=!0;try{const i=o!=null&&o.getSearchFormData?o.getSearchFormData():{},y=((l=(e=(a=o==null?void 0:o.crudBinding)==null?void 0:a.value)==null?void 0:e.pagination)==null?void 0:l.pageSize)||50;let v=1;const c=[];for(;;){const t=await k({url:"/api/system/device/",method:"get",params:{...i,page:v,limit:y},timeout:0}),_=Array.isArray(t==null?void 0:t.data)?t.data:Array.isArray(t==null?void 0:t.results)?t.results:[];if(!Array.isArray(_)||_.length===0)break;for(const w of _)(w==null?void 0:w.id)!=null&&c.push(w.id);const b=(t==null?void 0:t.total)??(t==null?void 0:t.count)??void 0;if(b!==void 0&&c.length>=Number(b)||_.length<y)break;v+=1}if(c.length===0){s.warning("当前筛选结果为空,无法导出");return}await C({url:"/api/system/device/export_selected/",method:"post",data:{device_ids:c},filename:"设备导出",timeout:0})}finally{g.value=!1}},z=async()=>{N({url:"/api/system/device/download_template/",method:"get",filename:"设备模板"})},T=async()=>{const a=o.selectedIds||[];if(console.log("selectedRows::",a),a.length===0){s.warning("请先选择要删除的设备");return}try{await k({url:"/api/system/device/multiple_delete/",method:"delete",data:{keys:a}}),s.success("删除成功"),o.clearSelection&&o.clearSelection(),o.doRefresh()}catch(e){s.error("删除失败"),console.error(e)}};return P(async()=>{o.doRefresh()}),(a,e)=>{const l=m("el-button"),i=m("fs-crud"),y=m("el-upload"),v=m("el-dialog"),c=m("fs-page");return M(),J(c,null,{default:r(()=>[n(i,$({ref_key:"crudRef",ref:D},j(A)),{"actionbar-right":r(()=>[n(l,{type:"primary",onClick:F,class:"batch-imports"},{default:r(()=>e[2]||(e[2]=[d("批量导入")])),_:1}),n(l,{type:"primary",onClick:V,loading:g.value},{default:r(()=>e[3]||(e[3]=[d("全部导出")])),_:1},8,["loading"]),n(l,{type:"primary",onClick:I},{default:r(()=>e[4]||(e[4]=[d("批量导出")])),_:1}),n(l,{type:"primary",onClick:z},{default:r(()=>e[5]||(e[5]=[d("下载模板")])),_:1}),n(l,{type:"danger",onClick:T},{default:r(()=>e[6]||(e[6]=[d("批量删除")])),_:1})]),_:1},16),n(v,{modelValue:p.value,"onUpdate:modelValue":e[1]||(e[1]=t=>p.value=t),title:"批量导入设备",width:"30%"},{footer:r(()=>[n(l,{onClick:e[0]||(e[0]=t=>p.value=!1)},{default:r(()=>e[8]||(e[8]=[d("取消")])),_:1}),n(l,{type:"primary",loading:u.value,disabled:u.value,onClick:B},{default:r(()=>e[9]||(e[9]=[d("确认导入")])),_:1},8,["loading","disabled"])]),default:r(()=>[n(y,{ref:"uploadRef","auto-upload":!1,"file-list":f.value,limit:1,"on-change":S,"before-upload":()=>!1,accept:".xls,.xlsx"},{default:r(()=>[n(l,{type:"primary"},{default:r(()=>e[7]||(e[7]=[d("选择文件")])),_:1})]),_:1},8,["file-list"])]),_:1},8,["modelValue"])]),_:1})}}}),ae=E(K,[["__scopeId","data-v-6d2f3655"]]);export{ae as default};
|