var Ne=Object.defineProperty,Ue=Object.defineProperties;var xe=Object.getOwnPropertyDescriptors;var ae=Object.getOwnPropertySymbols;var Ce=Object.prototype.hasOwnProperty,Se=Object.prototype.propertyIsEnumerable;var le=(c,m,s)=>m in c?Ne(c,m,{enumerable:!0,configurable:!0,writable:!0,value:s}):c[m]=s,D=(c,m)=>{for(var s in m||(m={}))Ce.call(m,s)&&le(c,s,m[s]);if(ae)for(var s of ae(m))Se.call(m,s)&&le(c,s,m[s]);return c},F=(c,m)=>Ue(c,xe(m));var S=(c,m,s)=>new Promise((N,h)=>{var P=f=>{try{C(s.next(f))}catch(z){h(z)}},U=f=>{try{C(s.throw(f))}catch(z){h(z)}},C=f=>f.done?N(f.value):Promise.resolve(f.value).then(P,U);C((s=s.apply(c,m)).next())});import{q as he,Q as Pe,N as ze,R as Oe,S as I,O as r,o as p,c as b,a as _,b as a,x as t,L as Q,d as y,T as qe,u as L,U as Ae,B as u,F as E,y as J,C as x,t as k,V as Re,W as te,j as ne,X as Te,Y as $e,Z as Be,$ as Ee}from"./index-1786807848259.js";/* empty css */import{_ as Ve}from"./_plugin-vue_export-helper-c27b6911-1786807848259.js";const je={class:"admin-page"},Me={class:"admin-page-heading"},De={class:"admin-table-toolbar"},Fe={style:{color:"#8c97a8"}},Qe={key:0,class:"user-identity"},Le={key:1,class:"muted"},Je={key:2,class:"contact-cell"},We={class:"form-grid"},Xe={class:"drawer-footer"},Ye={__name:"UserManagement",setup(c){const m=[{title:"用户",key:"identity",fixed:"left",width:190},{title:"所属部门",dataIndex:"deptName",key:"deptName",width:150,ellipsis:!0},{title:"角色",key:"roleNames",width:180,ellipsis:!0},{title:"联系方式",key:"contact",width:180},{title:"最后登录 IP",dataIndex:"loginIp",key:"loginIp",width:140},{title:"最后登录时间",dataIndex:"loginDate",key:"loginDate",width:170},{title:"创建时间",dataIndex:"createTime",key:"createTime",width:170},{title:"状态",key:"status",width:100,fixed:"right"},{title:"操作",key:"operation",width:220,fixed:"right"}],s=Q({userName:"",nickName:"",phonenumber:"",deptId:void 0,roleId:void 0,status:void 0}),N=Q({departments:[],roles:[]}),h=y([]),P=y(!1),U=y(!1),C=y(!1),f=y(""),z=y(),V=y(""),j=y(!1),M=y(null),O=y(""),W=y(!1),w=Q({current:1,pageSize:20,total:0,showSizeChanger:!0,showQuickJumper:!0,showTotal:n=>`共 ${n} 条`}),o=Q(X()),se={userName:[{required:!0,message:"请输入用户账号"}],nickName:[{required:!0,message:"请输入用户昵称"}],password:[{required:!0,min:8,max:64,message:"初始密码长度应为 8 至 64 位"}],email:[{type:"email",message:"邮箱格式不正确"}]};he(()=>S(this,null,function*(){var v;const[n,e]=yield Promise.all([Pe(),ze()]);N.departments=n.departments||[],N.roles=n.roles||[],V.value=String(((v=e.user)==null?void 0:v.userId)||""),yield q()}));function X(){return{userName:"",nickName:"",password:"",deptId:void 0,roleIds:[],phonenumber:"",email:"",sex:"0",status:"0",areaCode:"",remark:""}}function q(){return S(this,null,function*(){P.value=!0;try{const n=yield Oe(F(D({},s),{pageNum:w.current,pageSize:w.pageSize}));h.value=(n.rows||[]).map(e=>F(D({},e),{roleIds:e.roleIdsCsv?e.roleIdsCsv.split(",").filter(Boolean):[]})),w.total=Number(n.total||0)}catch(n){I.error(n.message)}finally{P.value=!1}})}function T(){w.current=1,q()}function oe(){Object.assign(s,{userName:"",nickName:"",phonenumber:"",deptId:void 0,roleId:void 0,status:void 0}),T()}function ue(n){w.current=n.current,w.pageSize=n.pageSize,q()}function re(){f.value="",Object.assign(o,X()),U.value=!0}function de(n){f.value=String(n.userId),Object.assign(o,X(),n,{roleIds:n.roleIds||[]}),U.value=!0}function ie(){return S(this,null,function*(){var n;try{yield(n=z.value)==null?void 0:n.validate()}catch(e){return}C.value=!0;try{const e=F(D({},o),{userId:f.value||void 0});f.value&&delete e.password;const v=f.value?yield Te(e):yield $e(e);I.success(v.message),U.value=!1,yield q()}catch(e){I.error(e.message)}finally{C.value=!1}})}function pe(n,e){return S(this,null,function*(){const v=n.status;n.status=e?"0":"1";try{const g=yield Be({userId:n.userId,status:n.status});I.success(g.message)}catch(g){n.status=v,I.error(g.message)}})}function me(n){M.value=n,O.value="",j.value=!0}function G(){return S(this,null,function*(){if(O.value.length<8||O.value.length>64)return I.warning("新密码长度应为 8 至 64 位");W.value=!0;try{const n=yield qe({userId:M.value.userId,password:O.value});I.success(n.message),j.value=!1}catch(n){I.error(n.message)}finally{W.value=!1}})}function ve(n){return S(this,null,function*(){try{const e=yield Ee(n.userId);I.success(e.message),h.value.length===1&&w.current>1&&(w.current-=1),yield q()}catch(e){I.error(e.message)}})}return(n,e)=>{const v=r("a-button"),g=r("a-input"),d=r("a-form-item"),A=r("a-select-option"),$=r("a-select"),Y=r("a-space"),Z=r("a-form"),H=r("a-card"),fe=r("a-avatar"),ce=r("a-tag"),ge=r("a-switch"),_e=r("a-popconfirm"),ye=r("a-table"),K=r("a-input-password"),B=r("a-radio"),ee=r("a-radio-group"),ke=r("a-textarea"),we=r("a-drawer"),Ie=r("a-alert"),be=r("a-modal");return p(),b("div",je,[_("div",Me,[e[22]||(e[22]=_("h1",null,"用户管理",-1)),a(v,{type:"primary",onClick:re},{icon:t(()=>[a(L(Ae))]),default:t(()=>[e[21]||(e[21]=u(" 新增用户 ",-1))]),_:1})]),a(H,{class:"admin-query-card",bordered:!1},{default:t(()=>[a(Z,{class:"admin-query-form",model:s},{default:t(()=>[a(d,{label:"用户账号"},{default:t(()=>[a(g,{value:s.userName,"onUpdate:value":e[0]||(e[0]=l=>s.userName=l),"allow-clear":"",placeholder:"请输入用户账号",onPressEnter:T},null,8,["value"])]),_:1}),a(d,{label:"用户昵称"},{default:t(()=>[a(g,{value:s.nickName,"onUpdate:value":e[1]||(e[1]=l=>s.nickName=l),"allow-clear":"",placeholder:"请输入用户昵称",onPressEnter:T},null,8,["value"])]),_:1}),a(d,{label:"手机号码"},{default:t(()=>[a(g,{value:s.phonenumber,"onUpdate:value":e[2]||(e[2]=l=>s.phonenumber=l),"allow-clear":"",placeholder:"请输入手机号码",onPressEnter:T},null,8,["value"])]),_:1}),a(d,{label:"部门"},{default:t(()=>[a($,{value:s.deptId,"onUpdate:value":e[3]||(e[3]=l=>s.deptId=l),"allow-clear":"",placeholder:"全部部门"},{default:t(()=>[(p(!0),b(E,null,J(N.departments,l=>(p(),x(A,{key:l.deptId,value:l.deptId},{default:t(()=>[u(k(l.deptName),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1}),a(d,{label:"角色"},{default:t(()=>[a($,{value:s.roleId,"onUpdate:value":e[4]||(e[4]=l=>s.roleId=l),"allow-clear":"",placeholder:"全部角色"},{default:t(()=>[(p(!0),b(E,null,J(N.roles,l=>(p(),x(A,{key:l.roleId,value:l.roleId},{default:t(()=>[u(k(l.roleName),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1}),a(d,{label:"状态"},{default:t(()=>[a($,{value:s.status,"onUpdate:value":e[5]||(e[5]=l=>s.status=l),"allow-clear":"",placeholder:"全部状态"},{default:t(()=>[a(A,{value:"0"},{default:t(()=>[...e[23]||(e[23]=[u("正常",-1)])]),_:1}),a(A,{value:"1"},{default:t(()=>[...e[24]||(e[24]=[u("停用",-1)])]),_:1})]),_:1},8,["value"])]),_:1}),a(d,{class:"admin-query-actions"},{default:t(()=>[a(Y,null,{default:t(()=>[a(v,{type:"primary",onClick:T},{default:t(()=>[a(L(Re)),e[25]||(e[25]=u(" 查询",-1))]),_:1}),a(v,{onClick:oe},{default:t(()=>[a(L(te)),e[26]||(e[26]=u(" 重置",-1))]),_:1})]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),a(H,{class:"admin-table-card",bordered:!1},{default:t(()=>[_("div",De,[e[27]||(e[27]=_("strong",null,"用户列表",-1)),a(Y,null,{default:t(()=>[_("span",Fe,"共 "+k(w.total)+" 条",1),a(v,{type:"text",loading:P.value,onClick:q},{default:t(()=>[a(L(te))]),_:1},8,["loading"])]),_:1})]),a(ye,{"row-key":"userId",columns:m,"data-source":h.value,loading:P.value,pagination:w,scroll:{x:1360},onChange:ue},{bodyCell:t(({column:l,record:i})=>[l.key==="identity"?(p(),b("div",Qe,[a(fe,{size:34,class:"user-avatar"},{default:t(()=>[u(k(String(i.nickName||i.userName).slice(0,1)),1)]),_:2},1024),_("div",null,[_("strong",null,k(i.nickName||"—"),1),_("span",null,k(i.userName),1)])])):l.key==="roleNames"?(p(),b(E,{key:1},[i.roleNames?(p(),x(ce,{key:0,color:"blue"},{default:t(()=>[u(k(i.roleNames),1)]),_:2},1024)):(p(),b("span",Le,"未分配"))],64)):l.key==="contact"?(p(),b("div",Je,[_("span",null,k(i.phonenumber||"—"),1),_("small",null,k(i.email||""),1)])):l.key==="status"?(p(),x(ge,{key:3,checked:i.status==="0","checked-children":"正常","un-checked-children":"停用",disabled:String(i.userId)===String(V.value),onChange:R=>pe(i,R)},null,8,["checked","disabled","onChange"])):l.key==="operation"?(p(),x(Y,{key:4,size:4},{default:t(()=>[a(v,{type:"link",size:"small",onClick:R=>de(i)},{default:t(()=>[...e[28]||(e[28]=[u("编辑",-1)])]),_:1},8,["onClick"]),a(v,{type:"link",size:"small",onClick:R=>me(i)},{default:t(()=>[...e[29]||(e[29]=[u("重置密码",-1)])]),_:1},8,["onClick"]),a(_e,{title:"确认删除该用户吗?","ok-text":"删除","cancel-text":"取消",disabled:String(i.userId)===String(V.value),onConfirm:R=>ve(i)},{default:t(()=>[a(v,{type:"link",danger:"",size:"small",disabled:String(i.userId)===String(V.value)},{default:t(()=>[...e[30]||(e[30]=[u("删除",-1)])]),_:1},8,["disabled"])]),_:2},1032,["disabled","onConfirm"])]),_:2},1024)):ne("",!0)]),_:1},8,["data-source","loading","pagination"])]),_:1}),a(we,{open:U.value,"onUpdate:open":e[18]||(e[18]=l=>U.value=l),title:f.value?"编辑用户":"新增用户",width:"520","destroy-on-close":!0},{footer:t(()=>[_("div",Xe,[a(v,{onClick:e[17]||(e[17]=l=>U.value=!1)},{default:t(()=>[...e[36]||(e[36]=[u("取消",-1)])]),_:1}),a(v,{type:"primary",loading:C.value,onClick:ie},{default:t(()=>[...e[37]||(e[37]=[u("保存",-1)])]),_:1},8,["loading"])])]),default:t(()=>[a(Z,{ref_key:"formRef",ref:z,model:o,rules:se,layout:"vertical"},{default:t(()=>[_("div",We,[a(d,{label:"用户账号",name:"userName"},{default:t(()=>[a(g,{value:o.userName,"onUpdate:value":e[6]||(e[6]=l=>o.userName=l),maxlength:30,placeholder:"请输入用户账号"},null,8,["value"])]),_:1}),a(d,{label:"用户昵称",name:"nickName"},{default:t(()=>[a(g,{value:o.nickName,"onUpdate:value":e[7]||(e[7]=l=>o.nickName=l),maxlength:30,placeholder:"请输入用户昵称"},null,8,["value"])]),_:1}),f.value?ne("",!0):(p(),x(d,{key:0,label:"初始密码",name:"password"},{default:t(()=>[a(K,{value:o.password,"onUpdate:value":e[8]||(e[8]=l=>o.password=l),placeholder:"8 至 64 位"},null,8,["value"])]),_:1})),a(d,{label:"手机号码",name:"phonenumber"},{default:t(()=>[a(g,{value:o.phonenumber,"onUpdate:value":e[9]||(e[9]=l=>o.phonenumber=l),maxlength:50,placeholder:"请输入手机号码"},null,8,["value"])]),_:1}),a(d,{label:"所属部门",name:"deptId"},{default:t(()=>[a($,{value:o.deptId,"onUpdate:value":e[10]||(e[10]=l=>o.deptId=l),"allow-clear":"",placeholder:"请选择部门"},{default:t(()=>[(p(!0),b(E,null,J(N.departments,l=>(p(),x(A,{key:l.deptId,value:l.deptId},{default:t(()=>[u(k(l.deptName),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1}),a(d,{label:"用户角色",name:"roleIds"},{default:t(()=>[a($,{value:o.roleIds,"onUpdate:value":e[11]||(e[11]=l=>o.roleIds=l),mode:"multiple",placeholder:"请选择角色"},{default:t(()=>[(p(!0),b(E,null,J(N.roles,l=>(p(),x(A,{key:l.roleId,value:l.roleId},{default:t(()=>[u(k(l.roleName),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1}),a(d,{label:"性别",name:"sex"},{default:t(()=>[a(ee,{value:o.sex,"onUpdate:value":e[12]||(e[12]=l=>o.sex=l)},{default:t(()=>[a(B,{value:"0"},{default:t(()=>[...e[31]||(e[31]=[u("男",-1)])]),_:1}),a(B,{value:"1"},{default:t(()=>[...e[32]||(e[32]=[u("女",-1)])]),_:1}),a(B,{value:"2"},{default:t(()=>[...e[33]||(e[33]=[u("未知",-1)])]),_:1})]),_:1},8,["value"])]),_:1}),a(d,{label:"账号状态",name:"status"},{default:t(()=>[a(ee,{value:o.status,"onUpdate:value":e[13]||(e[13]=l=>o.status=l)},{default:t(()=>[a(B,{value:"0"},{default:t(()=>[...e[34]||(e[34]=[u("正常",-1)])]),_:1}),a(B,{value:"1"},{default:t(()=>[...e[35]||(e[35]=[u("停用",-1)])]),_:1})]),_:1},8,["value"])]),_:1})]),a(d,{label:"邮箱",name:"email"},{default:t(()=>[a(g,{value:o.email,"onUpdate:value":e[14]||(e[14]=l=>o.email=l),maxlength:50,placeholder:"请输入邮箱"},null,8,["value"])]),_:1}),a(d,{label:"行政区代码",name:"areaCode"},{default:t(()=>[a(g,{value:o.areaCode,"onUpdate:value":e[15]||(e[15]=l=>o.areaCode=l),placeholder:"请输入行政区代码"},null,8,["value"])]),_:1}),a(d,{label:"备注",name:"remark"},{default:t(()=>[a(ke,{value:o.remark,"onUpdate:value":e[16]||(e[16]=l=>o.remark=l),rows:3,maxlength:500,"show-count":"",placeholder:"请输入备注"},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1},8,["open","title"]),a(be,{open:j.value,"onUpdate:open":e[20]||(e[20]=l=>j.value=l),title:"重置用户密码","confirm-loading":W.value,onOk:G},{default:t(()=>{var l,i;return[a(Ie,{type:"warning","show-icon":"",message:`正在为 ${((l=M.value)==null?void 0:l.nickName)||((i=M.value)==null?void 0:i.userName)||""} 重置密码`},null,8,["message"]),a(Z,{layout:"vertical",style:{"margin-top":"18px"}},{default:t(()=>[a(d,{label:"新密码",required:""},{default:t(()=>[a(K,{value:O.value,"onUpdate:value":e[19]||(e[19]=R=>O.value=R),placeholder:"请输入 8 至 64 位新密码",onPressEnter:G},null,8,["value"])]),_:1})]),_:1})]}),_:1},8,["open","confirm-loading"])])}}},ea=Ve(Ye,[["__scopeId","data-v-c3907d06"]]);export{ea as default};