import{a as le}from"./refresh-92333034.js";import{d as J,am as S,n as V,r as g,b4 as K,m as ne,ar as M,au as $,av as l,aB as e,aF as E,aC as u,c3 as oe,c4 as ie,ay as w,aJ as G,aK as re,c5 as ue,q as de,as as pe,at as Q,aw as p,ax as ce,aV as me,az as O,c6 as fe,c7 as _e,c8 as ve,aP as we,bg as ge}from"./index-e7476adc.js";import{u as ye}from"./use-loading-ce4e05eb.js";import{l as be,_ as he}from"./instance-a6a881dc.js";import{_ as H}from"./Input-5c51dd0a.js";import{_ as W,a as X}from"./FormItem-0f13e718.js";import{_ as ke}from"./Switch-51a9c7a6.js";import{_ as Y}from"./Select-24ba44f4.js";import{N as C}from"./Space-70cacec1.js";import{_ as xe}from"./column-setting.vue_vue_type_script_setup_true_lang-e2c810f8.js";import{N as Ue}from"./Image-b645358c.js";import{N as A}from"./Tag-4d6be00a.js";import{N as Ce}from"./Popconfirm-36f064ca.js";import{N as Ie}from"./Tooltip-15ee251f.js";import{_ as Pe}from"./DataTable-d97e4148.js";import"./format-length-c9d165c6.js";import"./Eye-aa255ab4.js";import"./Add-bec77709.js";import"./next-frame-once-7035a838.js";import"./setting-outlined-da9e4a67.js";import"./utils-0d1ba756.js";const De=J({name:"TableActionModal",__name:"table-action-modal",props:{visible:{type:Boolean},type:{default:"add"},editData:{default:{}},roleList:{}},emits:["update:visible"],setup(h,{emit:N}){const y=h,T=S().url+"/file/upload",k=V({get(){return y.visible},set(o){N("update:visible",o)}}),I=()=>{k.value=!1},x=V(()=>({add:"添加用户",edit:"编辑用户"})[y.type]),m=g(),t=K(D()),P={id:{required:!1},username:[{required:!0,message:"请输入用户名"}],password:[{required:!0,message:"请输入密码"}],confirmPassword:[{required:!0,message:"请输入确认密码"},{validator:(o,n)=>n!==t.password?Promise.reject("两次输入密码不一致"):Promise.resolve()}],nickname:[{required:!0,message:"请输入昵称"}],status:[{required:!0,message:"请选择状态"}],avatar:[{required:!1,message:"请上传头像"}],roleId:[{required:!0,message:"请选择用户角色"}]};function D(){return{id:"",username:"",nickname:"",password:"",confirmPassword:"",status:1,avatar:"",roleId:4}}const F=g([]);function d(o){Object.assign(t,o),o.id&&(F.value[0]={id:o.id,status:"finished",name:"用户头像",url:S().fileUrl+o.avatar})}function B(){({add:()=>{const n=D();d(n)},edit:()=>{y.editData&&d(y.editData)}})[y.type]()}async function L(){var n,f;await((n=m.value)==null?void 0:n.validate());let o=null;t.id?o=await oe(t):o=await ie(t),o&&((f=window.$message)==null||f.success(t.id?"修改成功!":"新增成功!"),I())}const q=({file:o,data:n,headers:f,withCredentials:_,action:v,onFinish:U,onError:z,onProgress:b})=>{const a=new FormData;a.append("file",o.file),be.post(v,{withCredentials:_,headers:f,body:a,onUploadProgress:({percent:s})=>{b({percent:Math.ceil(s)})}}).then(({json:s})=>{var i;t.avatar=s.data.path,(i=window.$message)==null||i.success("上传成功!"),U()}).catch(s=>{var i;(i=window.$message)==null||i.error("上传失败!",s),z()})};return ne(()=>y.visible,o=>{o&&B()}),(o,n)=>{const f=H,_=W,v=ke,U=Y,z=he,b=w,a=C,s=X,i=G;return M(),$(i,{show:k.value,"onUpdate:show":n[6]||(n[6]=r=>k.value=r),preset:"card",title:x.value,class:"w-400px"},{default:l(()=>[e(s,{ref_key:"formRef",ref:m,"label-placement":"left","label-width":80,model:t,rules:P},{default:l(()=>[e(_,{label:"用户名",path:"username"},{default:l(()=>[e(f,{value:t.username,"onUpdate:value":n[0]||(n[0]=r=>t.username=r),disabled:t.id===1},null,8,["value","disabled"])]),_:1}),x.value==="添加用户"?(M(),$(_,{key:0,label:"密码",path:"password"},{default:l(()=>[e(f,{value:t.password,"onUpdate:value":n[1]||(n[1]=r=>t.password=r),"show-password-on":"click",type:"password"},null,8,["value"])]),_:1})):E("",!0),x.value==="添加用户"?(M(),$(_,{key:1,label:"确认密码",path:"confirmPassword"},{default:l(()=>[e(f,{value:t.confirmPassword,"onUpdate:value":n[2]||(n[2]=r=>t.confirmPassword=r),"show-password-on":"click",type:"password"},null,8,["value"])]),_:1})):E("",!0),e(_,{label:"昵称",path:"nickname"},{default:l(()=>[e(f,{value:t.nickname,"onUpdate:value":n[3]||(n[3]=r=>t.nickname=r)},null,8,["value"])]),_:1}),e(_,{label:"状态",path:"roleId"},{default:l(()=>[e(v,{value:t.status,"onUpdate:value":n[4]||(n[4]=r=>t.status=r),"checked-value":1,"unchecked-value":0},{checked:l(()=>[u(" 有效 ")]),unchecked:l(()=>[u(" 禁用 ")]),_:1},8,["value"])]),_:1}),e(_,{label:"用户角色",path:"roleId"},{default:l(()=>[e(U,{value:t.roleId,"onUpdate:value":n[5]||(n[5]=r=>t.roleId=r),options:o.roleList,"label-field":"name","value-field":"id",placeholder:"请选择用户角色",disabled:t.id===1},null,8,["value","options","disabled"])]),_:1}),e(_,{label:"头像",path:"avatar"},{default:l(()=>[e(z,{action:T,"list-type":"image-card",accept:"image/*",max:1,"custom-request":q,"default-file-list":F.value},{default:l(()=>[u(" 点击上传 ")]),_:1},8,["default-file-list"])]),_:1}),e(a,{class:"w-full pt-16px",size:24,justify:"end"},{default:l(()=>[e(b,{class:"w-72px",onClick:I},{default:l(()=>[u("取消")]),_:1}),e(b,{class:"w-72px",type:"primary",onClick:L},{default:l(()=>[u("确定 ")]),_:1})]),_:1})]),_:1},8,["model"])]),_:1},8,["show","title"])}}});const Fe=S();function ze(h){return h&&h.indexOf("http")===-1?Fe.fileUrl+h:h}const Ne={class:"overflow-hidden"},qe={class:"flex-col h-full"},Me={class:"mr-2"},aa=J({__name:"index",setup(h){const{loading:N,startLoading:y,endLoading:T}=ye(!1),{bool:k,setTrue:I}=re(),x=g([]),m=g({page:1,row:10,likeQuery:"",roleId:null});async function t(){y();const a=await fe(m.value);x.value=a.list,v.itemCount=a.meta.total,T()}const P=g([{key:"id",title:"ID",width:80},{key:"username",title:"用户名"},{key:"nickname",title:"昵称"},{key:"avatar",title:"头像",render:a=>e(Ue,{width:"50",height:"50",objectFit:"cover",lazy:!0,style:{backgroundColor:"transparent"},src:ze(a.avatar)},null)},{key:"status",title:"状态",render:a=>e(A,{type:a.status===1?"success":"error"},{default:()=>[a.status===1?"正常":"禁用"]})},{key:"roleId",title:"角色",render:a=>e(A,{type:"primary"},{default:()=>[a.role.name]})},{key:"actions",title:"操作",render:a=>e(C,null,{default:()=>[e(w,{type:"primary",size:"small",text:!0,onClick:()=>f(a.id)},{default:()=>[u("编辑")]}),e(w,{onClick:()=>B(a.id,a.username),text:!0,type:"primary",size:"small",tag:"div"},{default:()=>[u("重置密码")]}),e(Ce,{onPositiveClick:()=>_(a.id)},{default:()=>"确认删除",trigger:()=>a.id===1?e(Ie,null,{trigger:()=>e(w,{type:"error",size:"small",disabled:a.id===1,tag:"div",text:!0},{default:()=>[u("删除")]}),default:()=>"主用户不可删除"}):e(w,{text:!0,type:"error",size:"small",tag:"div"},{default:()=>[u("删除")]})})]})}]),D=g("add");function F(a){D.value=a}const d=g({showFlag:!1,userId:0,resetPassword:"",username:""});function B(a,s){d.value={showFlag:!0,userId:a,resetPassword:"",username:s}}async function L(){var s;await _e(d.value)&&((s=window==null?void 0:window.$message)==null||s.success("重置成功"),d.value.showFlag=!1,await t())}const q=g(null);function o(a){q.value=a}function n(){I(),F("add")}function f(a){const s=x.value.find(i=>i.id===a);s&&o(s),F("edit"),I()}async function _(a){var i;await ue({id:a})&&((i=window==null?void 0:window.$message)==null||i.success("删除成功"),await t())}const v=K({page:1,pageSize:10,showSizePicker:!0,pageSizes:[10,15,20,25,30],itemCount:0,prefix:()=>"共"+v.itemCount+"条",onChange:a=>{v.page=a,m.value.page=a,t()},onUpdatePageSize:a=>{v.pageSize=a,v.page=1,m.value.page=1,m.value.row=a,t()}}),U=g([]);async function z(){const a=await ve();U.value=a}z();async function b(){v.page=1,await t()}return de(async()=>{await b()}),(a,s)=>{const i=H,r=Y,R=we,Z=le,ee=Pe,ae=ge,j=W,te=X,se=G;return M(),pe("div",Ne,[e(ae,{title:"用户管理",bordered:!1,class:"h-full rounded-8px shadow-sm"},{default:l(()=>[Q("div",qe,[e(p(C),{class:"pb-12px",justify:"space-between"},{default:l(()=>[e(p(C),null,{default:l(()=>[e(i,{value:m.value.likeQuery,"onUpdate:value":s[0]||(s[0]=c=>m.value.likeQuery=c),placeholder:"请输入 ID、用户名、昵称 进行搜索",clearable:"",style:{width:"300px"},onChange:t},null,8,["value"]),e(r,{value:m.value.roleId,"onUpdate:value":[s[1]||(s[1]=c=>m.value.roleId=c),b],options:U.value,"label-field":"name","value-field":"id",placeholder:"全部角色",style:{width:"120px"},clearable:""},null,8,["value","options"]),e(p(w),{onClick:t},{default:l(()=>[e(R,{icon:"mdi:magnify",class:"mr-4px text-20px"}),u(" 搜索 ")]),_:1}),e(p(w),{type:"primary",onClick:n},{default:l(()=>[e(R,{icon:"mdi:plus",class:"mr-4px text-20px"}),u(" 新增 ")]),_:1})]),_:1}),e(p(C),{align:"center",size:18},{default:l(()=>[e(p(w),{size:"small",type:"primary",onClick:t},{default:l(()=>[e(Z,{class:ce(["mr-4px text-16px",{"animate-spin":p(N)}])},null,8,["class"]),u(" 刷新表格 ")]),_:1}),e(xe,{columns:P.value,"onUpdate:columns":s[2]||(s[2]=c=>P.value=c)},null,8,["columns"])]),_:1})]),_:1}),e(ee,{columns:P.value,data:x.value,loading:p(N),pagination:v,"flex-height":"",class:"flex-1-hidden"},null,8,["columns","data","loading","pagination"]),e(De,{visible:p(k),"onUpdate:visible":[s[3]||(s[3]=c=>me(k)?k.value=c:null),b],type:D.value,"edit-data":q.value,"role-list":U.value},null,8,["visible","type","edit-data","role-list"])])]),_:1}),e(se,{show:d.value.showFlag,"onUpdate:show":s[6]||(s[6]=c=>d.value.showFlag=c),title:"重置密码",class:"w-400px",preset:"card"},{default:l(()=>[e(te,{"label-placement":"left","label-width":80},{default:l(()=>[e(j,{label:"用户名"},{default:l(()=>[Q("span",Me,"ID: "+O(d.value.userId),1),e(p(A),{class:"mr-2",type:"primary"},{default:l(()=>[u(O(d.value.username),1)]),_:1})]),_:1}),e(j,{label:"新密码"},{default:l(()=>[e(i,{value:d.value.resetPassword,"onUpdate:value":s[4]||(s[4]=c=>d.value.resetPassword=c),placeholder:"请输入新密码 默认 123456",type:"password","show-password-on":"click"},null,8,["value"])]),_:1})]),_:1}),e(p(C),{class:"w-full pt-16px",size:24,justify:"end"},{default:l(()=>[e(p(w),{class:"w-72px",onClick:s[5]||(s[5]=c=>d.value.showFlag=!1)},{default:l(()=>[u("取消")]),_:1}),e(p(w),{class:"w-72px",type:"primary",onClick:L},{default:l(()=>[u("确定 ")]),_:1})]),_:1})]),_:1},8,["show"])])}}});export{aa as default}; //# sourceMappingURL=index-a6f0be7a.js.map