import{p as x,u as te,a as ae}from"./DYLUgmZy.js";import{d as se,H as le,i as k,s as P,j as ne,c as m,a as i,b as a,w as s,m as e,a2 as T,p as z,r as _,o as r,e as c,R as oe,F as j,f as ie,A as b,z as ue,t as o,l as p,g as de}from"./DPwbf7XO.js";import{U as H}from"./Ce_WBGpl.js";import"./Cv7upGT6.js";import"./Dl1HJz7f.js";const re={class:"users-page"},ce={class:"page-header"},_e={class:"stat-icon"},pe={class:"stat-info"},me={class:"stat-value"},fe={class:"stat-label"},ve={class:"panel"},ye={class:"panel-header"},ge={key:0,class:"user-info-cell"},ke={class:"user-info-text"},be={class:"user-name"},he={class:"user-sub"},we={key:1,style:{"font-size":"13px"}},xe={key:0},ze={key:1,style:{color:"rgba(0,0,0,0.45)","font-size":"12px"}},Ce={key:2,class:"text-gray-400"},Se={key:3,style:{"font-size":"13px"}},Ue={key:0,style:{color:"#059669"}},Ie={key:1,style:{color:"rgba(0,0,0,0.45)","font-size":"12px"}},Re={key:4,class:"text-sm text-gray"},Te={class:"user-detail-header"},Be={class:"detail-name"},Ve={class:"detail-sub"},$e={style:{color:"#059669"}},Ae=se({__name:"users",setup(Fe){le({title:"用户管理 - 平台管理"});const C=k(!1),B=k([]),S=k(void 0),U=k(""),y=P({current:1,pageSize:20,total:0,showSizeChanger:!0,showQuickJumper:!0}),h=P([{icon:"👥",label:"总用户数",value:0,color:"blue"},{icon:"✅",label:"正常用户",value:0,color:"green"},{icon:"🔒",label:"冻结用户",value:0,color:"red"},{icon:"🛡️",label:"管理员",value:0,color:"orange"}]),M=[{title:"用户信息",key:"userInfo",width:220},{title:"联系方式",key:"contact",width:180},{title:"账号状态",key:"status",width:110},{title:"余额/积分",key:"balance",width:140},{title:"注册时间",key:"createTime",width:110},{title:"操作",key:"action",width:220}],I=k(!1),n=k(null);async function w(){C.value=!0;try{const u=await x({page:y.current,limit:y.pageSize,status:S.value,keywords:U.value||void 0});B.value=u?.list||[],y.total=u?.count||0,O()}catch{z.error("加载用户列表失败")}finally{C.value=!1}}async function O(){try{const[u,t,f,g]=await Promise.allSettled([x({page:1,limit:1}),x({page:1,limit:1,status:0}),x({page:1,limit:1,status:1}),x({page:1,limit:1,isAdmin:1})]);u.status==="fulfilled"&&(h[0].value=u.value?.count||0),t.status==="fulfilled"&&(h[1].value=t.value?.count||0),f.status==="fulfilled"&&(h[2].value=f.value?.count||0),g.status==="fulfilled"&&(h[3].value=g.value?.count||0)}catch{}}function V(){y.current=1,w()}function E(u){y.current=u.current,y.pageSize=u.pageSize,w()}function J(u){n.value=u,I.value=!0}async function K(u){const t=u.status===0?1:0;try{await te(u.userId,t),z.success(t===1?"用户已冻结":"用户已解冻"),w()}catch(f){z.error(f?.message||"操作失败")}}async function L(u){try{await ae(u.userId,"123456"),z.success(`已重置「${u.nickname||u.username}」的密码为 123456`)}catch(t){z.error(t?.message||"重置失败")}}return ne(()=>w()),(u,t)=>{const f=_("a-button"),g=_("a-space"),Q=_("a-col"),q=_("a-row"),R=_("a-select-option"),G=_("a-select"),W=_("a-input-search"),$=_("a-avatar"),A=_("a-tag"),F=_("a-badge"),N=_("a-popconfirm"),X=_("a-table"),Y=_("a-divider"),v=_("a-descriptions-item"),Z=_("a-descriptions"),ee=_("a-modal");return r(),m("div",re,[i("div",ce,[t[4]||(t[4]=i("div",null,[i("h2",{class:"page-title"},"👥 用户管理"),i("p",{class:"page-desc"},"管理平台所有注册用户,可查看用户信息、调整状态")],-1)),a(g,null,{default:s(()=>[a(f,{onClick:w,loading:e(C)},{icon:s(()=>[a(e(oe))]),default:s(()=>[t[3]||(t[3]=c(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),a(q,{gutter:[16,16],class:"mb-6"},{default:s(()=>[(r(!0),m(j,null,ie(e(h),d=>(r(),b(Q,{xs:12,md:6,key:d.label},{default:s(()=>[i("div",{class:ue(["stat-card",d.color])},[i("div",_e,o(d.icon),1),i("div",pe,[i("div",me,o(d.value),1),i("div",fe,o(d.label),1)])],2)]),_:2},1024))),128))]),_:1}),i("div",ve,[i("div",ye,[t[8]||(t[8]=i("span",{class:"panel-title"},"📋 用户列表",-1)),a(g,{wrap:""},{default:s(()=>[a(G,{value:e(S),"onUpdate:value":t[0]||(t[0]=d=>T(S)?S.value=d:null),style:{width:"120px"},onChange:V},{default:s(()=>[a(R,{value:void 0},{default:s(()=>[...t[5]||(t[5]=[c("全部状态",-1)])]),_:1}),a(R,{value:0},{default:s(()=>[...t[6]||(t[6]=[c("正常",-1)])]),_:1}),a(R,{value:1},{default:s(()=>[...t[7]||(t[7]=[c("已冻结",-1)])]),_:1})]),_:1},8,["value"]),a(W,{value:e(U),"onUpdate:value":t[1]||(t[1]=d=>T(U)?U.value=d:null),placeholder:"搜索用户名/手机/邮箱",style:{width:"220px"},onSearch:V},null,8,["value"])]),_:1})]),a(X,{columns:M,"data-source":e(B),loading:e(C),pagination:e(y),"row-key":"userId",onChange:E,size:"middle"},{bodyCell:s(({column:d,record:l})=>[d.key==="userInfo"?(r(),m("div",ge,[a($,{size:38,src:l.avatar||l.avatarUrl},{icon:s(()=>[a(e(H))]),_:1},8,["src"]),i("div",ke,[i("div",be,[c(o(l.nickname||l.username)+" ",1),l.isAdmin?(r(),b(A,{key:0,color:"red",style:{"margin-left":"6px","font-size":"10px"}},{default:s(()=>[...t[9]||(t[9]=[c("管理员",-1)])]),_:1})):p("",!0)]),i("div",he,"@"+o(l.username),1)])])):p("",!0),d.key==="contact"?(r(),m("div",we,[l.phone||l.mobile?(r(),m("div",xe,"📱 "+o(l.phone||l.mobile),1)):p("",!0),l.email?(r(),m("div",ze,o(l.email),1)):p("",!0),!l.phone&&!l.mobile&&!l.email?(r(),m("span",Ce,"-")):p("",!0)])):p("",!0),d.key==="status"?(r(),b(F,{key:2,status:l.status===0?"success":"error",text:l.status===0?"正常":"已冻结"},null,8,["status","text"])):p("",!0),d.key==="balance"?(r(),m("div",Se,[l.balance!==void 0?(r(),m("div",Ue,"💰 ¥"+o((l.balance/100).toFixed(2)),1)):p("",!0),l.points!==void 0?(r(),m("div",Ie,"🏆 "+o(l.points)+" 积分",1)):p("",!0)])):p("",!0),d.key==="createTime"?(r(),m("span",Re,o(l.createTime?.substring(0,10)||"-"),1)):p("",!0),d.key==="action"?(r(),b(g,{key:5},{default:s(()=>[a(f,{type:"link",size:"small",onClick:D=>J(l)},{default:s(()=>[...t[10]||(t[10]=[c("详情",-1)])]),_:1},8,["onClick"]),a(N,{title:l.status===0?"确认冻结此用户账号?":"确认解冻此用户账号?",onConfirm:D=>K(l)},{default:s(()=>[a(f,{type:"link",size:"small",danger:l.status===0},{default:s(()=>[c(o(l.status===0?"冻结":"解冻"),1)]),_:2},1032,["danger"])]),_:2},1032,["title","onConfirm"]),a(N,{title:"确认重置密码为 123456?",onConfirm:D=>L(l)},{default:s(()=>[a(f,{type:"link",size:"small"},{default:s(()=>[...t[11]||(t[11]=[c("重置密码",-1)])]),_:1})]),_:1},8,["onConfirm"])]),_:2},1024)):p("",!0)]),_:1},8,["data-source","loading","pagination"])]),a(ee,{open:e(I),"onUpdate:open":t[2]||(t[2]=d=>T(I)?I.value=d:null),title:`用户详情:${e(n)?.nickname||e(n)?.username||""}`,width:"680px",footer:null},{default:s(()=>[e(n)?(r(),m(j,{key:0},[i("div",Te,[a($,{size:64,src:e(n).avatar||e(n).avatarUrl},{icon:s(()=>[a(e(H))]),_:1},8,["src"]),i("div",null,[i("div",Be,o(e(n).nickname||e(n).username),1),i("div",Ve,"@"+o(e(n).username),1),a(g,{style:{"margin-top":"8px"}},{default:s(()=>[e(n).isAdmin?(r(),b(A,{key:0,color:"red"},{default:s(()=>[...t[12]||(t[12]=[c("管理员",-1)])]),_:1})):p("",!0),a(F,{status:e(n).status===0?"success":"error",text:e(n).status===0?"账号正常":"已冻结"},null,8,["status","text"])]),_:1})])]),a(Y),a(Z,{column:2,size:"small"},{default:s(()=>[a(v,{label:"用户ID"},{default:s(()=>[c(o(e(n).userId),1)]),_:1}),a(v,{label:"手机号"},{default:s(()=>[c(o(e(n).phone||e(n).mobile||"-"),1)]),_:1}),a(v,{label:"邮箱"},{default:s(()=>[c(o(e(n).email||"-"),1)]),_:1}),a(v,{label:"性别"},{default:s(()=>[c(o(e(n).sex==="1"?"男":e(n).sex==="2"?"女":"-"),1)]),_:1}),a(v,{label:"余额"},{default:s(()=>[i("span",$e,"¥"+o(((e(n).balance||0)/100).toFixed(2)),1)]),_:1}),a(v,{label:"积分"},{default:s(()=>[c(o(e(n).points??"-"),1)]),_:1}),a(v,{label:"注册时间",span:2},{default:s(()=>[c(o(e(n).createTime||"-"),1)]),_:1}),e(n).address?(r(),b(v,{key:0,label:"地址",span:2},{default:s(()=>[c(o([e(n).province,e(n).city,e(n).region,e(n).address].filter(Boolean).join(" ")),1)]),_:1})):p("",!0)]),_:1})],64)):p("",!0)]),_:1},8,["open","title"])])}}}),Me=de(Ae,[["__scopeId","data-v-0c7d49a8"]]);export{Me as default};