mi-assessment/server/MiAssessment/src/MiAssessment.Admin/wwwroot/assets/index-BcQLI1be.js
2026-02-23 15:07:14 +08:00

2 lines
14 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{d as ue,r as z,a as P,o as ce,g as m,B as me,c as F,k as w,e as t,C as Y,w as l,b as r,t as c,l as p,N as pe,f as A,J as M,L as fe,s as _e,z as B,m as I,x as u,Y as ge,H as ve,I as be,G as Le,F as he,E as v,X as De,_ as we}from"./index-C2eefm2d.js";import{g as ye,u as Ve,d as ke,a as Te,e as Ee,b as Ce}from"./user-Dq18N6YL.js";const Ue={class:"user-container"},Se={class:"header-content"},xe={class:"header-right"},Ne={class:"balance-text"},Re={class:"pagination-wrapper"},ze={class:"user-detail"},Fe={class:"detail-section"},Ae={class:"user-profile"},Me={class:"profile-info"},Be={class:"nickname"},Ie={class:"uid"},Oe={class:"detail-section"},$e={class:"detail-section"},Pe={class:"money-text"},Ye={class:"money-text"},He={class:"money-text"},Ke={class:"detail-section"},je={class:"stats-grid"},qe={class:"stat-item"},Ge={class:"stat-value"},Je={class:"stat-item"},Xe={class:"stat-value"},Qe={class:"stat-item"},We={class:"stat-value"},Ze=ue({__name:"index",setup(et){const h={NORMAL:1,PARTNER:2,CHANNEL:3},y={DISABLED:0,NORMAL:1},H=[{text:"最近一周",value:()=>{const s=new Date,e=new Date;return e.setTime(e.getTime()-3600*1e3*24*7),[e,s]}},{text:"最近一个月",value:()=>{const s=new Date,e=new Date;return e.setTime(e.getTime()-3600*1e3*24*30),[e,s]}},{text:"最近三个月",value:()=>{const s=new Date,e=new Date;return e.setTime(e.getTime()-3600*1e3*24*90),[e,s]}}],K=z(),E=z(),C=z(null),a=P({page:1,pageSize:10,uid:"",phone:"",nickname:"",userLevel:void 0,status:void 0,createTimeStart:void 0,createTimeEnd:void 0}),n=P({loading:!1,tableData:[],total:0,drawerVisible:!1,detailLoading:!1,userDetail:null,levelDialogVisible:!1,levelFormData:{id:0,currentLevel:0,userLevel:""},levelFormLoading:!1,exportLoading:!1}),j={userLevel:[{required:!0,message:"请选择新等级",trigger:"change"}]};function U(s){switch(s){case h.NORMAL:return"info";case h.PARTNER:return"success";case h.CHANNEL:return"warning";default:return"info"}}function S(s){switch(s){case h.NORMAL:return"普通用户";case h.PARTNER:return"合伙人";case h.CHANNEL:return"渠道合伙人";default:return"未知"}}function V(s){return s==null?"0.00":s.toFixed(2)}async function L(){var s,e;n.loading=!0;try{const i={page:a.page,pageSize:a.pageSize};a.uid&&(i.uid=a.uid),a.phone&&(i.phone=a.phone),a.nickname&&(i.nickname=a.nickname),a.userLevel!==void 0&&a.userLevel!==""&&(i.userLevel=Number(a.userLevel)),a.status!==void 0&&a.status!==""&&(i.status=Number(a.status)),a.createTimeStart&&(i.createTimeStart=a.createTimeStart),a.createTimeEnd&&(i.createTimeEnd=a.createTimeEnd);const d=await ye(i);if(d.code===0)n.tableData=(((s=d.data)==null?void 0:s.list)||[]).map(f=>({...f,statusLoading:!1})),n.total=((e=d.data)==null?void 0:e.total)||0;else throw new Error(d.message||"获取用户列表失败")}catch(i){const d=i instanceof Error?i.message:"获取用户列表失败";v.error(d)}finally{n.loading=!1}}async function q(s){n.detailLoading=!0;try{const e=await Ce(s);if(e.code===0)n.userDetail=e.data;else throw new Error(e.message||"获取用户详情失败")}catch(e){const i=e instanceof Error?e.message:"获取用户详情失败";v.error(i)}finally{n.detailLoading=!1}}function k(){a.page=1,L()}function G(){a.uid="",a.phone="",a.nickname="",a.userLevel=void 0,a.status=void 0,a.createTimeStart=void 0,a.createTimeEnd=void 0,C.value=null,a.page=1,L()}function J(s){s?(a.createTimeStart=s[0],a.createTimeEnd=s[1]):(a.createTimeStart=void 0,a.createTimeEnd=void 0)}function X(s){a.pageSize=s,a.page=1,L()}function Q(s){a.page=s,L()}function W(s){n.drawerVisible=!0,n.userDetail=null,q(s.id)}async function Z(s,e){s.statusLoading=!0;try{const i=await Ve({id:s.id,status:e});if(i.code===0)v.success(e===y.NORMAL?"已启用":"已禁用");else throw s.status=e===y.NORMAL?y.DISABLED:y.NORMAL,new Error(i.message||"状态更新失败")}catch(i){const d=i instanceof Error?i.message:"状态更新失败";v.error(d)}finally{s.statusLoading=!1}}function ee(s){n.levelFormData={id:s.id,currentLevel:s.userLevel,userLevel:""},n.levelDialogVisible=!0}async function te(s){try{await De.confirm(`确定要删除用户 "${s.nickname}"UID: ${s.uid})吗?删除后将同时清除该用户的登录记录和令牌数据,此操作不可恢复。`,"删除确认",{confirmButtonText:"确定删除",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await ke(s.id);if(e.code===0)v.success("用户删除成功"),await L();else throw new Error(e.message||"删除失败")}catch(e){const i=e instanceof Error?e.message:"删除失败";v.error(i)}}async function ae(){if(E.value){try{await E.value.validate()}catch{return}n.levelFormLoading=!0;try{const s=await Te({id:n.levelFormData.id,userLevel:Number(n.levelFormData.userLevel)});if(s.code===0)v.success("等级修改成功"),n.levelDialogVisible=!1,await L();else throw new Error(s.message||"等级修改失败")}catch(s){const e=s instanceof Error?s.message:"等级修改失败";v.error(e)}finally{n.levelFormLoading=!1}}}async function le(){n.exportLoading=!0;try{const s={page:1,pageSize:1e4};a.uid&&(s.uid=a.uid),a.phone&&(s.phone=a.phone),a.nickname&&(s.nickname=a.nickname),a.userLevel!==void 0&&a.userLevel!==""&&(s.userLevel=Number(a.userLevel)),a.status!==void 0&&a.status!==""&&(s.status=Number(a.status)),a.createTimeStart&&(s.createTimeStart=a.createTimeStart),a.createTimeEnd&&(s.createTimeEnd=a.createTimeEnd);const e=await Ee(s),i=e.data instanceof Blob?e.data:new Blob([e.data]),d=window.URL.createObjectURL(i),f=document.createElement("a");f.href=d,f.download=`用户列表_${new Date().toISOString().slice(0,10)}.xlsx`,document.body.appendChild(f),f.click(),document.body.removeChild(f),window.URL.revokeObjectURL(d),v.success("导出成功")}catch(s){const e=s instanceof Error?s.message:"导出失败";v.error(e)}finally{n.exportLoading=!1}}return ce(()=>{L()}),(s,e)=>{const i=m("el-icon"),d=m("el-button"),f=m("el-card"),x=m("el-input"),b=m("el-form-item"),se=m("el-date-picker"),O=m("el-form"),_=m("el-table-column"),N=m("el-avatar"),T=m("el-tag"),ne=m("el-switch"),oe=m("el-table"),ie=m("el-pagination"),g=m("el-descriptions-item"),R=m("el-descriptions"),re=m("el-drawer"),de=m("el-dialog"),$=me("loading");return w(),F("div",Ue,[t(f,{class:"page-header"},{default:l(()=>[r("div",Se,[e[13]||(e[13]=r("div",{class:"header-left"},[r("h2",{class:"page-title"},"用户管理"),r("span",{class:"page-description"},"管理C端用户信息支持搜索、查看详情、状态管理、等级修改、导出")],-1)),r("div",xe,[t(d,{type:"success",onClick:le,loading:n.exportLoading},{default:l(()=>[t(i,null,{default:l(()=>[t(p(pe))]),_:1}),e[12]||(e[12]=c(" 导出Excel ",-1))]),_:1},8,["loading"])])])]),_:1}),t(f,{class:"search-card"},{default:l(()=>[t(O,{model:a,inline:""},{default:l(()=>[t(b,{label:"UID"},{default:l(()=>[t(x,{modelValue:a.uid,"onUpdate:modelValue":e[0]||(e[0]=o=>a.uid=o),placeholder:"请输入UID",clearable:"",onKeyup:A(k,["enter"])},null,8,["modelValue"])]),_:1}),t(b,{label:"手机号"},{default:l(()=>[t(x,{modelValue:a.phone,"onUpdate:modelValue":e[1]||(e[1]=o=>a.phone=o),placeholder:"请输入手机号",clearable:"",onKeyup:A(k,["enter"])},null,8,["modelValue"])]),_:1}),t(b,{label:"昵称"},{default:l(()=>[t(x,{modelValue:a.nickname,"onUpdate:modelValue":e[2]||(e[2]=o=>a.nickname=o),placeholder:"请输入昵称",clearable:"",onKeyup:A(k,["enter"])},null,8,["modelValue"])]),_:1}),t(b,{label:"用户等级"},{default:l(()=>[t(p(M),{modelValue:a.userLevel,"onUpdate:modelValue":e[3]||(e[3]=o=>a.userLevel=o),type:"user_level",placeholder:"请选择等级",clearable:""},null,8,["modelValue"])]),_:1}),t(b,{label:"状态"},{default:l(()=>[t(p(M),{modelValue:a.status,"onUpdate:modelValue":e[4]||(e[4]=o=>a.status=o),type:"common_status",placeholder:"请选择状态",clearable:""},null,8,["modelValue"])]),_:1}),t(b,{label:"创建时间"},{default:l(()=>[t(se,{modelValue:C.value,"onUpdate:modelValue":e[5]||(e[5]=o=>C.value=o),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",shortcuts:H,onChange:J},null,8,["modelValue"])]),_:1}),t(b,null,{default:l(()=>[t(d,{type:"primary",onClick:k},{default:l(()=>[t(i,null,{default:l(()=>[t(p(fe))]),_:1}),e[14]||(e[14]=c(" 搜索 ",-1))]),_:1}),t(d,{onClick:G},{default:l(()=>[t(i,null,{default:l(()=>[t(p(_e))]),_:1}),e[15]||(e[15]=c(" 重置 ",-1))]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),Y((w(),B(f,{class:"table-card"},{default:l(()=>[t(oe,{ref_key:"tableRef",ref:K,data:n.tableData,"row-key":"id",stripe:""},{default:l(()=>[t(_,{prop:"uid",label:"UID",width:"120","show-overflow-tooltip":""}),t(_,{prop:"phone",label:"手机号",width:"130","show-overflow-tooltip":""}),t(_,{prop:"nickname",label:"昵称","min-width":"120","show-overflow-tooltip":""}),t(_,{label:"头像",width:"80",align:"center"},{default:l(({row:o})=>[o.avatar?(w(),B(N,{key:0,src:o.avatar,size:40},{default:l(()=>[t(i,null,{default:l(()=>[t(p(I))]),_:1})]),_:1},8,["src"])):(w(),B(N,{key:1,size:40},{default:l(()=>[t(i,null,{default:l(()=>[t(p(I))]),_:1})]),_:1}))]),_:1}),t(_,{label:"用户等级",width:"100",align:"center"},{default:l(({row:o})=>[t(T,{type:U(o.userLevel)},{default:l(()=>[c(u(o.userLevelName||S(o.userLevel)),1)]),_:2},1032,["type"])]),_:1}),t(_,{prop:"balance",label:"余额",width:"100",align:"right"},{default:l(({row:o})=>[r("span",Ne,"¥"+u(V(o.balance)),1)]),_:1}),t(_,{label:"状态",width:"100",align:"center"},{default:l(({row:o})=>[t(ne,{modelValue:o.status,"onUpdate:modelValue":D=>o.status=D,"active-value":1,"inactive-value":0,loading:o.statusLoading,onChange:D=>Z(o,D)},null,8,["modelValue","onUpdate:modelValue","loading","onChange"])]),_:1}),t(_,{prop:"createTime",label:"创建时间",width:"170",align:"center"}),t(_,{prop:"lastLoginTime",label:"最后登录时间",width:"170",align:"center"},{default:l(({row:o})=>[c(u(o.lastLoginTime||"-"),1)]),_:1}),t(_,{label:"操作",width:"200",fixed:"right",align:"center"},{default:l(({row:o})=>[t(d,{type:"primary",link:"",size:"small",onClick:D=>W(o)},{default:l(()=>[t(i,null,{default:l(()=>[t(p(ge))]),_:1}),e[16]||(e[16]=c(" 详情 ",-1))]),_:1},8,["onClick"]),t(d,{type:"warning",link:"",size:"small",onClick:D=>ee(o)},{default:l(()=>[t(i,null,{default:l(()=>[t(p(ve))]),_:1}),e[17]||(e[17]=c(" 等级 ",-1))]),_:1},8,["onClick"]),t(d,{type:"danger",link:"",size:"small",onClick:D=>te(o)},{default:l(()=>[t(i,null,{default:l(()=>[t(p(be))]),_:1}),e[18]||(e[18]=c(" 删除 ",-1))]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"]),r("div",Re,[t(ie,{"current-page":a.page,"onUpdate:currentPage":e[6]||(e[6]=o=>a.page=o),"page-size":a.pageSize,"onUpdate:pageSize":e[7]||(e[7]=o=>a.pageSize=o),"page-sizes":[10,20,50,100],total:n.total,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:X,onCurrentChange:Q},null,8,["current-page","page-size","total"])])]),_:1})),[[$,n.loading]]),t(re,{modelValue:n.drawerVisible,"onUpdate:modelValue":e[8]||(e[8]=o=>n.drawerVisible=o),title:"用户详情",size:"500px","close-on-click-modal":!0},{default:l(()=>[Y((w(),F("div",ze,[n.userDetail?(w(),F(he,{key:0},[r("div",Fe,[e[19]||(e[19]=r("h4",{class:"section-title"},"基本信息",-1)),r("div",Ae,[t(N,{src:n.userDetail.avatar,size:80},{default:l(()=>[t(i,{size:40},{default:l(()=>[t(p(I))]),_:1})]),_:1},8,["src"]),r("div",Me,[r("div",Be,u(n.userDetail.nickname),1),r("div",Ie,"UID: "+u(n.userDetail.uid),1)])]),t(R,{column:1,border:""},{default:l(()=>[t(g,{label:"手机号"},{default:l(()=>[c(u(n.userDetail.phone),1)]),_:1}),t(g,{label:"用户等级"},{default:l(()=>[t(T,{type:U(n.userDetail.userLevel)},{default:l(()=>[c(u(n.userDetail.userLevelName||S(n.userDetail.userLevel)),1)]),_:1},8,["type"])]),_:1}),t(g,{label:"状态"},{default:l(()=>[t(T,{type:n.userDetail.status===1?"success":"danger"},{default:l(()=>[c(u(n.userDetail.statusName||(n.userDetail.status===1?"正常":"禁用")),1)]),_:1},8,["type"])]),_:1}),t(g,{label:"创建时间"},{default:l(()=>[c(u(n.userDetail.createTime),1)]),_:1}),t(g,{label:"最后登录"},{default:l(()=>[c(u(n.userDetail.lastLoginTime||"-"),1)]),_:1})]),_:1})]),r("div",Oe,[e[20]||(e[20]=r("h4",{class:"section-title"},"上级用户",-1)),t(R,{column:1,border:""},{default:l(()=>[t(g,{label:"上级UID"},{default:l(()=>[c(u(n.userDetail.parentUserUid||"-"),1)]),_:1}),t(g,{label:"上级昵称"},{default:l(()=>[c(u(n.userDetail.parentUserNickname||"-"),1)]),_:1})]),_:1})]),r("div",$e,[e[21]||(e[21]=r("h4",{class:"section-title"},"财务信息",-1)),t(R,{column:1,border:""},{default:l(()=>[t(g,{label:"账户余额"},{default:l(()=>[r("span",Pe,"¥"+u(V(n.userDetail.balance)),1)]),_:1}),t(g,{label:"累计收入"},{default:l(()=>[r("span",Ye,"¥"+u(V(n.userDetail.totalIncome)),1)]),_:1}),t(g,{label:"已提现金额"},{default:l(()=>[r("span",He,"¥"+u(V(n.userDetail.withdrawnAmount)),1)]),_:1})]),_:1})]),r("div",Ke,[e[25]||(e[25]=r("h4",{class:"section-title"},"统计信息",-1)),r("div",je,[r("div",qe,[r("div",Ge,u(n.userDetail.orderCount),1),e[22]||(e[22]=r("div",{class:"stat-label"},"订单数",-1))]),r("div",Je,[r("div",Xe,u(n.userDetail.assessmentCount),1),e[23]||(e[23]=r("div",{class:"stat-label"},"测评数",-1))]),r("div",Qe,[r("div",We,u(n.userDetail.inviteCount),1),e[24]||(e[24]=r("div",{class:"stat-label"},"邀请人数",-1))])])])],64)):Le("",!0)])),[[$,n.detailLoading]])]),_:1},8,["modelValue"]),t(de,{modelValue:n.levelDialogVisible,"onUpdate:modelValue":e[11]||(e[11]=o=>n.levelDialogVisible=o),title:"修改用户等级",width:"400px","close-on-click-modal":!1},{footer:l(()=>[t(d,{onClick:e[10]||(e[10]=o=>n.levelDialogVisible=!1)},{default:l(()=>[...e[26]||(e[26]=[c("取消",-1)])]),_:1}),t(d,{type:"primary",loading:n.levelFormLoading,onClick:ae},{default:l(()=>[...e[27]||(e[27]=[c(" 确定 ",-1)])]),_:1},8,["loading"])]),default:l(()=>[t(O,{ref_key:"levelFormRef",ref:E,model:n.levelFormData,rules:j,"label-width":"80px"},{default:l(()=>[t(b,{label:"当前等级"},{default:l(()=>[t(T,{type:U(n.levelFormData.currentLevel)},{default:l(()=>[c(u(S(n.levelFormData.currentLevel)),1)]),_:1},8,["type"])]),_:1}),t(b,{label:"新等级",prop:"userLevel"},{default:l(()=>[t(p(M),{modelValue:n.levelFormData.userLevel,"onUpdate:modelValue":e[9]||(e[9]=o=>n.levelFormData.userLevel=o),type:"user_level",placeholder:"请选择新等级",style:{width:"100%"}},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),lt=we(Ze,[["__scopeId","data-v-1ad34e24"]]);export{lt as default};