2 lines
21 KiB
JavaScript
2 lines
21 KiB
JavaScript
import{H as O,r as $,j as ee,b as te,k as re,c as s,o as S,l as Q,w as t,e as i,f as e,h as d,t as g,L as H,I as de,d as N,J as K,u as Se,z as $e,g as Ue,M as Me,E as J,n as oe}from"./index-fa7a0ed8.js";import{_ as ae}from"./_plugin-vue_export-helper-c27b6911.js";const Pe=r=>O({url:"/admin/api/v1/users",method:"get",params:r}),Be=r=>O({url:"/admin/api/v1/users",method:"post",data:r}),Fe=(r,P)=>O({url:`/admin/api/v1/users/${r}`,method:"put",data:P}),ie=r=>O({url:"/admin/api/v1/users/batch",method:"delete",data:{ids:r}}),Re=(r,P)=>O({url:`/admin/api/v1/users/${r}/status`,method:"put",data:{status:P}}),Ae=r=>O({url:`/admin/api/v1/users/${r}/order-stats`,method:"get"}),Le=(r,P)=>O({url:`/admin/api/v1/users/${r}/login-logs`,method:"get",params:P});const Ne={class:"dialog-footer"},Ye={__name:"UserForm",props:{visible:{type:Boolean,default:!1},userData:{type:Object,default:null}},emits:["update:visible","success"],setup(r,{emit:P}){const D=r,F=P,B=$(),z=$(!1),h=ee({get:()=>D.visible,set:m=>F("update:visible",m)}),v=ee(()=>{var m;return!!((m=D.userData)!=null&&m.id)}),n=te({nickname:"",phone:"",gender:"unknown",points:0,status:"active",password:"",remark:""}),b={nickname:[{required:!0,message:"请输入用户名",trigger:"blur"},{min:2,max:20,message:"用户名长度在 2 到 20 个字符",trigger:"blur"}],phone:[{required:!0,message:"请输入手机号",trigger:"blur"},{pattern:/^1[3-9]\d{9}$/,message:"请输入正确的手机号",trigger:"blur"}],points:[{required:!0,message:"请输入用户积分",trigger:"blur"},{type:"number",min:0,max:999999,message:"积分范围为0-999999",trigger:"blur"}],status:[{required:!0,message:"请选择状态",trigger:"change"}],password:[{required:!0,message:"请输入密码",trigger:"blur"},{min:6,max:20,message:"密码长度在 6 到 20 个字符",trigger:"blur"}]};re(()=>D.userData,m=>{m?Object.assign(n,{nickname:m.nickname||"",phone:m.phone||"",gender:m.gender||"unknown",points:m.points||0,status:m.status!==void 0?m.status:"active",password:"",remark:m.remark||""}):Object.assign(n,{nickname:"",phone:"",gender:"unknown",points:0,status:"active",password:"",remark:""})},{immediate:!0});const T=async()=>{if(B.value)try{await B.value.validate(),z.value=!0;const m={...n};v.value&&delete m.password,v.value?await Fe(D.userData.id,m):await Be(m),F("success"),k()}catch(m){console.error("提交失败:",m)}finally{z.value=!1}},k=()=>{var m;(m=B.value)==null||m.resetFields(),F("update:visible",!1)};return(m,c)=>{const Y=s("el-input"),U=s("el-form-item"),A=s("el-col"),E=s("el-row"),p=s("el-radio"),l=s("el-radio-group"),R=s("el-input-number"),M=s("el-form"),w=s("el-button"),y=s("el-dialog");return S(),Q(y,{modelValue:h.value,"onUpdate:modelValue":c[7]||(c[7]=f=>h.value=f),title:v.value?"编辑用户":"新增用户",width:"600px",onClose:k},{footer:t(()=>[i("div",Ne,[e(w,{onClick:k},{default:t(()=>[...c[13]||(c[13]=[d("取消",-1)])]),_:1}),e(w,{type:"primary",loading:z.value,onClick:T},{default:t(()=>[d(g(z.value?"提交中...":"确定"),1)]),_:1},8,["loading"])])]),default:t(()=>[e(M,{ref_key:"formRef",ref:B,model:n,rules:b,"label-width":"100px"},{default:t(()=>[e(E,{gutter:20},{default:t(()=>[e(A,{span:12},{default:t(()=>[e(U,{label:"用户名",prop:"nickname"},{default:t(()=>[e(Y,{modelValue:n.nickname,"onUpdate:modelValue":c[0]||(c[0]=f=>n.nickname=f),placeholder:"请输入用户名"},null,8,["modelValue"])]),_:1})]),_:1}),e(A,{span:12},{default:t(()=>[e(U,{label:"手机号",prop:"phone"},{default:t(()=>[e(Y,{modelValue:n.phone,"onUpdate:modelValue":c[1]||(c[1]=f=>n.phone=f),placeholder:"请输入手机号"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(E,{gutter:20},{default:t(()=>[e(A,{span:12},{default:t(()=>[e(U,{label:"性别",prop:"gender"},{default:t(()=>[e(l,{modelValue:n.gender,"onUpdate:modelValue":c[2]||(c[2]=f=>n.gender=f)},{default:t(()=>[e(p,{label:"male"},{default:t(()=>[...c[8]||(c[8]=[d("男",-1)])]),_:1}),e(p,{label:"female"},{default:t(()=>[...c[9]||(c[9]=[d("女",-1)])]),_:1}),e(p,{label:"unknown"},{default:t(()=>[...c[10]||(c[10]=[d("未知",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(E,{gutter:20},{default:t(()=>[e(A,{span:12},{default:t(()=>[e(U,{label:"用户积分",prop:"points"},{default:t(()=>[e(R,{modelValue:n.points,"onUpdate:modelValue":c[3]||(c[3]=f=>n.points=f),min:0,max:999999,placeholder:"请输入用户积分",style:{width:"100%"}},null,8,["modelValue"])]),_:1})]),_:1}),e(A,{span:12},{default:t(()=>[e(U,{label:"状态",prop:"status"},{default:t(()=>[e(l,{modelValue:n.status,"onUpdate:modelValue":c[4]||(c[4]=f=>n.status=f)},{default:t(()=>[e(p,{label:"active"},{default:t(()=>[...c[11]||(c[11]=[d("正常",-1)])]),_:1}),e(p,{label:"inactive"},{default:t(()=>[...c[12]||(c[12]=[d("禁用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),v.value?H("",!0):(S(),Q(U,{key:0,label:"密码",prop:"password"},{default:t(()=>[e(Y,{modelValue:n.password,"onUpdate:modelValue":c[5]||(c[5]=f=>n.password=f),type:"password",placeholder:"请输入密码","show-password":""},null,8,["modelValue"])]),_:1})),e(U,{label:"备注",prop:"remark"},{default:t(()=>[e(Y,{modelValue:n.remark,"onUpdate:modelValue":c[6]||(c[6]=f=>n.remark=f),type:"textarea",rows:3,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])}}},Ee=ae(Ye,[["__scopeId","data-v-26a87b4f"]]);const Ie={key:0,class:"user-detail"},je={class:"detail-section"},Oe={class:"avatar-section"},Te={class:"user-name"},qe={class:"detail-section"},He={class:"stat-item"},Ke={class:"stat-value"},Ge={class:"stat-item"},Je={class:"stat-value"},Qe={class:"stat-item"},We={class:"stat-value"},Xe={class:"stat-item"},Ze={class:"stat-value"},et={key:0,class:"detail-section"},tt={class:"detail-section"},at={key:0,style:{"text-align":"center",padding:"20px",color:"#999"}},lt={key:1,style:{"margin-top":"16px","text-align":"right"}},st={key:1,class:"detail-section"},nt={class:"remark-content"},ot={class:"dialog-footer"},it={__name:"UserDetail",props:{visible:{type:Boolean,default:!1},userData:{type:Object,default:null}},emits:["update:visible"],setup(r,{emit:P}){const D=r,F=P,B=ee({get:()=>D.visible,set:p=>F("update:visible",p)}),z=$([]),h=$(!1),v=$({page:1,page_size:10,total:0,total_pages:0}),n=$({orderCount:0,totalAmount:0}),b=$(!1),T=async()=>{var p;if((p=D.userData)!=null&&p.id)try{b.value=!0;const l=await Ae(D.userData.id);n.value={orderCount:l.data.order_count||0,totalAmount:l.data.total_amount||0}}catch(l){console.error("获取用户订单统计失败:",l),n.value={orderCount:0,totalAmount:0}}finally{b.value=!1}},k=async(p=v.value.page,l=v.value.page_size)=>{var R,M,w,y,f;if((R=D.userData)!=null&&R.id)try{h.value=!0;const x=await Le(D.userData.id,{page:p,page_size:l});x.data&&(z.value=x.data.list||[],v.value={page:((M=x.data.pagination)==null?void 0:M.page)||1,page_size:((w=x.data.pagination)==null?void 0:w.page_size)||10,total:((y=x.data.pagination)==null?void 0:y.total)||0,total_pages:((f=x.data.pagination)==null?void 0:f.total_pages)||0})}catch(x){console.error("获取用户登录日志失败:",x),z.value=[],v.value={page:1,page_size:10,total:0,total_pages:0}}finally{h.value=!1}},m=p=>{v.value.page_size=p,v.value.page=1,k(1,p)},c=p=>{v.value.page=p,k(p,v.value.page_size)};re(()=>D.userData,p=>{p!=null&&p.id&&(v.value={page:1,page_size:10,total:0,total_pages:0},T(),k())},{immediate:!0});const Y=p=>({0:"未知",1:"男",2:"女"})[p]||"未知",U=()=>{F("update:visible",!1)},A=p=>typeof p=="number"?(p/100).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2}):"0.00",E=p=>{if(!p)return"未设置";try{const l=new Date(p);if(isNaN(l.getTime()))return"无效日期";const R=l.getFullYear(),M=String(l.getMonth()+1).padStart(2,"0"),w=String(l.getDate()).padStart(2,"0"),y=String(l.getHours()).padStart(2,"0"),f=String(l.getMinutes()).padStart(2,"0"),x=String(l.getSeconds()).padStart(2,"0");return`${R}-${M}-${w} ${y}:${f}:${x}`}catch(l){return console.error("时间格式化错误:",l),"格式错误"}};return(p,l)=>{const R=s("el-avatar"),M=s("el-tag"),w=s("el-col"),y=s("el-descriptions-item"),f=s("el-descriptions"),x=s("el-row"),q=s("el-table-column"),X=s("el-table"),Z=s("el-pagination"),o=s("el-button"),a=s("el-dialog"),V=de("loading");return S(),Q(a,{modelValue:B.value,"onUpdate:modelValue":l[2]||(l[2]=_=>B.value=_),title:"用户详情",width:"800px",onClose:U},{footer:t(()=>[i("div",ot,[e(o,{onClick:U},{default:t(()=>[...l[12]||(l[12]=[d("关闭",-1)])]),_:1})])]),default:t(()=>[r.userData?(S(),N("div",Ie,[i("div",je,[l[3]||(l[3]=i("h3",null,"基本信息",-1)),e(x,{gutter:20},{default:t(()=>[e(w,{span:6},{default:t(()=>[i("div",Oe,[e(R,{size:80,src:r.userData.avatar},{default:t(()=>{var _;return[d(g((_=r.userData.nickname)==null?void 0:_.charAt(0)),1)]}),_:1},8,["src"]),i("div",Te,g(r.userData.nickname),1),e(M,{type:"warning"},{default:t(()=>[d(" 积分: "+g(r.userData.points||0),1)]),_:1})])]),_:1}),e(w,{span:18},{default:t(()=>[e(f,{column:2,border:""},{default:t(()=>[e(y,{label:"用户ID"},{default:t(()=>[d(g(r.userData.id),1)]),_:1}),e(y,{label:"用户名"},{default:t(()=>[d(g(r.userData.nickname),1)]),_:1}),e(y,{label:"手机号"},{default:t(()=>[d(g(r.userData.phone),1)]),_:1}),e(y,{label:"邮箱"},{default:t(()=>[d(g(r.userData.email),1)]),_:1}),e(y,{label:"性别"},{default:t(()=>[d(g(Y(r.userData.gender)),1)]),_:1}),e(y,{label:"生日"},{default:t(()=>[d(g(r.userData.birthday||"未设置"),1)]),_:1}),e(y,{label:"状态"},{default:t(()=>[e(M,{type:r.userData.status==="active"||r.userData.status===1?"success":"danger"},{default:t(()=>[d(g(r.userData.status==="active"||r.userData.status===1?"正常":"禁用"),1)]),_:1},8,["type"])]),_:1}),e(y,{label:"注册时间"},{default:t(()=>[d(g(E(r.userData.created_at)),1)]),_:1})]),_:1})]),_:1})]),_:1})]),i("div",qe,[l[8]||(l[8]=i("h3",null,"统计信息",-1)),e(x,{gutter:20},{default:t(()=>[e(w,{span:6},{default:t(()=>[i("div",He,[K((S(),N("div",Ke,[d(g(h.value?"-":v.value.total||0),1)])),[[V,h.value]]),l[4]||(l[4]=i("div",{class:"stat-label"},"登录次数",-1))])]),_:1}),e(w,{span:6},{default:t(()=>[i("div",Ge,[K((S(),N("div",Je,[d(g(b.value?"-":n.value.orderCount),1)])),[[V,b.value]]),l[5]||(l[5]=i("div",{class:"stat-label"},"订单数量",-1))])]),_:1}),e(w,{span:6},{default:t(()=>[i("div",Qe,[K((S(),N("div",We,[d(g(b.value?"-":"¥"+A(n.value.totalAmount)),1)])),[[V,b.value]]),l[6]||(l[6]=i("div",{class:"stat-label"},"消费金额",-1))])]),_:1}),e(w,{span:6},{default:t(()=>[i("div",Xe,[i("div",Ze,g(r.userData.points||0),1),l[7]||(l[7]=i("div",{class:"stat-label"},"积分余额",-1))])]),_:1})]),_:1})]),r.userData.address?(S(),N("div",et,[l[9]||(l[9]=i("h3",null,"地址信息",-1)),e(f,{column:1,border:""},{default:t(()=>[e(y,{label:"详细地址"},{default:t(()=>[d(g(r.userData.address),1)]),_:1})]),_:1})])):H("",!0),i("div",tt,[l[10]||(l[10]=i("h3",null,"登录记录",-1)),K((S(),Q(X,{data:z.value,border:""},{default:t(()=>[e(q,{prop:"login_time",label:"登录时间",width:"180"},{default:t(({row:_})=>[d(g(E(_.login_time)),1)]),_:1}),e(q,{prop:"ip_address",label:"登录IP",width:"150"}),e(q,{prop:"device",label:"设备信息"}),e(q,{prop:"status",label:"状态",width:"80"},{default:t(({row:_})=>[e(M,{type:_.status===1?"success":"danger"},{default:t(()=>[d(g(_.status===1?"成功":"失败"),1)]),_:2},1032,["type"])]),_:1})]),_:1},8,["data"])),[[V,h.value]]),z.value.length===0&&!h.value?(S(),N("div",at," 暂无登录记录 ")):H("",!0),v.value.total>0?(S(),N("div",lt,[e(Z,{"current-page":v.value.page,"onUpdate:currentPage":l[0]||(l[0]=_=>v.value.page=_),"page-size":v.value.page_size,"onUpdate:pageSize":l[1]||(l[1]=_=>v.value.page_size=_),"page-sizes":[5,10,20,50],total:v.value.total,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:m,onCurrentChange:c},null,8,["current-page","page-size","total"])])):H("",!0)]),r.userData.remark?(S(),N("div",st,[l[11]||(l[11]=i("h3",null,"备注信息",-1)),i("div",nt,g(r.userData.remark),1)])):H("",!0)])):H("",!0)]),_:1},8,["modelValue"])}}},rt=ae(it,[["__scopeId","data-v-8bd9a54d"]]);const dt={class:"users-page"},ut={class:"page-container"},ct={class:"toolbar"},pt={class:"toolbar-left"},mt={class:"toolbar-right"},_t={class:"filter-bar"},gt={class:"data-table"},vt={class:"user-info"},ft={class:"user-details"},bt={class:"user-name"},ht={class:"user-phone"},yt={class:"points-text"},kt={class:"status-wrapper"},wt={class:"register-time"},Vt={class:"table-actions"},Dt={class:"pagination"},xt={__name:"index",setup(r){const P=Se(),D=$(!1),F=$(!1),B=$(!1),z=$(null),h=$([]),v=$(!1),n=te({keyword:"",status:"",dateRange:[],minPoints:null,maxPoints:null}),b=te({page:1,size:20,total:0}),T=$([]),k=async()=>{var o,a;try{D.value=!0;let V=n.status;V==="active"?V="1":V==="inactive"&&(V="0");const _={page:b.page,page_size:b.size,keyword:n.keyword,status:V,level:n.level,minPoints:n.minPoints,maxPoints:n.maxPoints,startDate:(o=n.dateRange)==null?void 0:o[0],endDate:(a=n.dateRange)==null?void 0:a[1]},{data:C}=await Pe(_),G=(C.list||[]).map(I=>({...I,status:I.status===1?"active":"inactive"}));T.value=G,b.total=C.total||0}catch(V){console.error("获取用户列表失败:",V)}finally{D.value=!1}},m=()=>{b.page=1,k()},c=()=>{Object.assign(n,{keyword:"",status:"",minPoints:null,maxPoints:null,dateRange:[]}),b.page=1,k()},Y=o=>{console.log("Status filter changed to:",o),m()},U=()=>{v.value=!v.value},A=async()=>{try{const o=h.value.map(a=>a.id);J.success(`正在导出 ${h.value.length} 个用户的数据...`)}catch(o){J.error("导出失败"),console.error("导出失败:",o)}},E=o=>{z.value={...o},F.value=!0},p=o=>{z.value=o,B.value=!0},l=async()=>{try{await oe.confirm(`确定要删除选中的 ${h.value.length} 个用户吗?`,"批量删除确认",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"});const o=h.value.map(a=>a.id);await ie(o),h.value=[],k()}catch(o){o!=="cancel"&&console.error("批量删除失败:",o)}},R=async o=>{try{const a=o.status==="active"?1:0;await Re(o.id,a)}catch(a){o.status=o.status==="active"?"inactive":"active",console.error("状态更新失败:",a)}},M=o=>{h.value=o},w=o=>{b.size=o,b.page=1,k()},y=o=>{b.page=o,k()},f=()=>{k()},x=async(o,a)=>{switch(o){case"view-orders":q(a);break;case"delete":await X(a);break}},q=o=>{P.push({path:"/orders",query:{userId:o.id,userName:o.nickname,userPhone:o.phone}}),J.success(`正在跳转到用户 "${o.nickname}" 的订单页面...`)},X=async o=>{try{await oe.confirm(`确定要删除用户 "${o.nickname}" 吗?此操作不可恢复!`,"删除用户确认",{confirmButtonText:"确定删除",cancelButtonText:"取消",type:"error"}),await ie([o.id]),J.success("用户删除成功"),k()}catch(a){a!=="cancel"&&(J.error("删除用户失败"),console.error("删除用户失败:",a))}},Z=o=>{if(!o)return"-";const a=new Date(o);if(isNaN(a.getTime()))return"-";const V=a.getFullYear(),_=String(a.getMonth()+1).padStart(2,"0"),C=String(a.getDate()).padStart(2,"0"),G=String(a.getHours()).padStart(2,"0"),I=String(a.getMinutes()).padStart(2,"0");return`${V}-${_}-${C} ${G}:${I}`};return $e(()=>{k()}),(o,a)=>{const V=s("Delete"),_=s("el-icon"),C=s("el-button"),G=s("Download"),I=s("Search"),ue=s("el-input"),ce=s("Refresh"),pe=s("Filter"),le=s("el-option"),me=s("el-select"),W=s("el-form-item"),se=s("el-input-number"),_e=s("el-date-picker"),ge=s("el-form"),j=s("el-table-column"),ve=s("el-avatar"),fe=s("el-tag"),be=s("el-switch"),he=s("Calendar"),ye=s("View"),ke=s("Edit"),we=s("ArrowDown"),ne=s("el-dropdown-item"),Ve=s("el-dropdown-menu"),De=s("el-dropdown"),xe=s("el-table"),Ce=s("el-pagination"),ze=de("loading");return S(),N("div",dt,[i("div",ut,[a[20]||(a[20]=i("div",{class:"page-header"},[i("h2",null,"用户管理"),i("p",null,"管理系统中的所有用户信息")],-1)),i("div",ct,[i("div",pt,[e(C,{type:"danger",disabled:!h.value.length,onClick:l},{default:t(()=>[e(_,null,{default:t(()=>[e(V)]),_:1}),d(" 批量删除 ("+g(h.value.length)+") ",1)]),_:1},8,["disabled"]),e(C,{type:"success",disabled:!h.value.length,onClick:A},{default:t(()=>[e(_,null,{default:t(()=>[e(G)]),_:1}),a[9]||(a[9]=d(" 导出选中 ",-1))]),_:1},8,["disabled"])]),i("div",mt,[e(ue,{modelValue:n.keyword,"onUpdate:modelValue":a[0]||(a[0]=u=>n.keyword=u),placeholder:"搜索用户名、手机号、邮箱",style:{width:"300px"},clearable:"",onKeyup:Ue(m,["enter"])},{prefix:t(()=>[e(_,null,{default:t(()=>[e(I)]),_:1})]),_:1},8,["modelValue"]),e(C,{type:"primary",onClick:m},{default:t(()=>[e(_,null,{default:t(()=>[e(I)]),_:1}),a[10]||(a[10]=d(" 搜索 ",-1))]),_:1}),e(C,{onClick:c},{default:t(()=>[e(_,null,{default:t(()=>[e(ce)]),_:1}),a[11]||(a[11]=d(" 重置 ",-1))]),_:1}),e(C,{onClick:U},{default:t(()=>[e(_,null,{default:t(()=>[e(pe)]),_:1}),d(" "+g(v.value?"收起筛选":"高级筛选"),1)]),_:1})])]),K(i("div",_t,[e(ge,{model:n,inline:"","label-width":"80px"},{default:t(()=>[e(W,{label:"用户状态"},{default:t(()=>[e(me,{modelValue:n.status,"onUpdate:modelValue":a[1]||(a[1]=u=>n.status=u),placeholder:"全部状态",clearable:"",onChange:Y,style:{width:"120px"}},{default:t(()=>[e(le,{label:"正常",value:"active"}),e(le,{label:"禁用",value:"inactive"})]),_:1},8,["modelValue"])]),_:1}),e(W,{label:"积分范围"},{default:t(()=>[e(se,{modelValue:n.minPoints,"onUpdate:modelValue":a[2]||(a[2]=u=>n.minPoints=u),placeholder:"最小积分",min:0,style:{width:"120px"}},null,8,["modelValue"]),a[12]||(a[12]=i("span",{style:{margin:"0 8px"}},"-",-1)),e(se,{modelValue:n.maxPoints,"onUpdate:modelValue":a[3]||(a[3]=u=>n.maxPoints=u),placeholder:"最大积分",min:0,style:{width:"120px"}},null,8,["modelValue"])]),_:1}),e(W,{label:"注册时间"},{default:t(()=>[e(_e,{modelValue:n.dateRange,"onUpdate:modelValue":a[4]||(a[4]=u=>n.dateRange=u),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",format:"YYYY-MM-DD","value-format":"YYYY-MM-DD",style:{width:"240px"}},null,8,["modelValue"])]),_:1}),e(W,null,{default:t(()=>[e(C,{type:"primary",onClick:m},{default:t(()=>[...a[13]||(a[13]=[d("应用筛选",-1)])]),_:1}),e(C,{onClick:c},{default:t(()=>[...a[14]||(a[14]=[d("清空筛选",-1)])]),_:1})]),_:1})]),_:1},8,["model"])],512),[[Me,v.value]]),i("div",gt,[K((S(),Q(xe,{data:T.value,onSelectionChange:M,stripe:"",border:"",resizable:"","header-cell-style":{background:"#f5f7fa",color:"#606266"}},{default:t(()=>[e(j,{type:"selection","min-width":"55",resizable:""}),e(j,{prop:"id",label:"用户ID","min-width":"80",sortable:"",resizable:""}),e(j,{label:"用户信息","min-width":"200",resizable:""},{default:t(({row:u})=>[i("div",vt,[e(ve,{size:40,src:u.avatar,class:"user-avatar"},{default:t(()=>{var L;return[d(g((L=u.nickname)==null?void 0:L.charAt(0)),1)]}),_:2},1032,["src"]),i("div",ft,[i("div",bt,g(u.nickname||"未设置"),1),i("div",ht,g(u.phone||"未绑定"),1)])])]),_:1}),e(j,{label:"积分","min-width":"100",sortable:"",resizable:""},{default:t(({row:u})=>[i("span",yt,g(u.points||0),1)]),_:1}),e(j,{label:"状态","min-width":"120",resizable:""},{default:t(({row:u})=>[i("div",kt,[e(fe,{type:u.status==="active"?"success":"danger",size:"small",class:"status-tag"},{default:t(()=>[d(g(u.status==="active"?"正常":"禁用"),1)]),_:2},1032,["type"]),e(be,{modelValue:u.status,"onUpdate:modelValue":L=>u.status=L,"active-value":"active","inactive-value":"inactive",onChange:L=>R(u),size:"small",class:"status-switch"},null,8,["modelValue","onUpdate:modelValue","onChange"])])]),_:1}),e(j,{label:"注册时间","min-width":"160",sortable:"",resizable:""},{default:t(({row:u})=>[i("div",wt,[e(_,null,{default:t(()=>[e(he)]),_:1}),i("span",null,g(Z(u.created_at)),1)])]),_:1}),e(j,{label:"操作","min-width":"180",fixed:"right",resizable:""},{default:t(({row:u})=>[i("div",Vt,[e(C,{type:"primary",link:"",size:"small",onClick:L=>p(u)},{default:t(()=>[e(_,null,{default:t(()=>[e(ye)]),_:1}),a[15]||(a[15]=d(" 查看 ",-1))]),_:1},8,["onClick"]),e(C,{type:"warning",link:"",size:"small",onClick:L=>E(u)},{default:t(()=>[e(_,null,{default:t(()=>[e(ke)]),_:1}),a[16]||(a[16]=d(" 编辑 ",-1))]),_:1},8,["onClick"]),e(De,{onCommand:L=>x(L,u)},{dropdown:t(()=>[e(Ve,null,{default:t(()=>[e(ne,{command:"view-orders"},{default:t(()=>[...a[18]||(a[18]=[d("查看订单",-1)])]),_:1}),e(ne,{command:"delete",divided:""},{default:t(()=>[...a[19]||(a[19]=[d("删除用户",-1)])]),_:1})]),_:1})]),default:t(()=>[e(C,{type:"info",link:"",size:"small"},{default:t(()=>[a[17]||(a[17]=d(" 更多",-1)),e(_,{class:"el-icon--right"},{default:t(()=>[e(we)]),_:1})]),_:1})]),_:1},8,["onCommand"])])]),_:1})]),_:1},8,["data"])),[[ze,D.value]]),i("div",Dt,[e(Ce,{"current-page":b.page,"onUpdate:currentPage":a[5]||(a[5]=u=>b.page=u),"page-size":b.size,"onUpdate:pageSize":a[6]||(a[6]=u=>b.size=u),total:b.total,"page-sizes":[10,20,50,100],layout:"total, sizes, prev, pager, next, jumper",onSizeChange:w,onCurrentChange:y},null,8,["current-page","page-size","total"])])])]),e(Ee,{visible:F.value,"onUpdate:visible":a[7]||(a[7]=u=>F.value=u),"user-data":z.value,onSuccess:f},null,8,["visible","user-data"]),e(rt,{visible:B.value,"onUpdate:visible":a[8]||(a[8]=u=>B.value=u),"user-data":z.value},null,8,["visible","user-data"])])}}},St=ae(xt,[["__scopeId","data-v-0a1da298"]]);export{St as default};
|