import{g as X,j as Y,C as Z,c as l,a as e,q as b,s as q,l as N,F as y,r as h,v as _,O as $,p as ee,t as i,d as B,y as u,A as w,z as te,o,m as se}from"./6O01ZZML.js";import{u as ne}from"./BgasD__e.js";import{u as le}from"./xsgK-Nup.js";import{r as oe}from"./7m3DvxFn.js";const ae={class:"space-y-6"},ie={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-4"},re={class:"flex items-end gap-3 flex-wrap"},de={class:"form-control"},ue={key:0,value:""},ce=["value"],pe={class:"form-control"},me={key:0,value:""},ve=["value"],be={class:"form-control"},fe=["onKeydown"],ge={key:0,class:"bg-white rounded-xl shadow-sm border border-slate-100 p-12 text-center text-slate-400"},xe={key:1,class:"space-y-5"},ye={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-5 flex items-center gap-4"},he=["src"],_e={key:1,class:"w-14 h-14 rounded-full bg-indigo-100 text-indigo-600 flex items-center justify-center text-xl font-bold"},we={class:"text-lg font-semibold text-slate-800"},ke={class:"text-xs text-slate-400 font-mono mt-0.5"},Ae={class:"ml-auto flex items-center gap-3"},Ie={class:"badge badge-primary badge-outline"},Ue={class:"px-5 py-3 border-b border-slate-50 text-sm font-semibold text-slate-700"},Ve={class:"px-5 py-3 grid grid-cols-1 md:grid-cols-2 gap-x-8"},Ce={class:"text-xs text-slate-400 shrink-0"},De={class:"text-sm text-slate-700 break-all text-right"},Ne={class:"modal-box max-w-md"},Me={class:"text-xs text-slate-400 mb-4"},Se={class:"font-mono text-slate-600"},Ge={class:"grid grid-cols-3 gap-3"},je={class:"form-control"},qe={class:"form-control"},Be={class:"form-control"},Ee=X({__name:"users",setup(Pe){const{webApi:k,consoleApi:P}=ne(),{success:T,error:M,warn:c}=le(),f=Y(),p=u([]),m=u(""),v=u(""),A=u(""),r=u(null),S=u("请输入查询条件后点击「搜索」"),I=u(""),g=u(""),F=w(()=>[1,2,3].includes(f.identity)),x=u(null),a=te({vipday:0,trademin:0,meetmin:0}),U=w(()=>{const t=[];return p.value.forEach(s=>{const n=s.app_name||s.name;n&&!t.includes(n)&&t.push(n)}),t}),V=w(()=>p.value.filter(t=>(t.app_name||t.name)===m.value));function G(){const t=V.value;v.value=t.length?t[0].id:""}function K(t){return t?new Date(t*1e3).toLocaleString():"-"}function L(t){return t?"是":"否"}function E(t){return t===1?"男":t===2?"女":"未知"}function C(t){return t==null||t===""?"-":t}const z=[{title:"基本信息",rows:[["uid","UID"],["name","用户名"],["account","登录账号"],["mail","邮箱"],["phone","手机号"],["gender","性别","gender"],["language","语言"],["version","版本"],["channel","渠道"],["State","状态"],["country_code","国家码"],["continent_code","大洲码"],["servicetag","服务区"],["phonemodel","手机型号"],["phonemac","设备ID"]]},{title:"第三方登录",rows:[["wxopenid","微信 openid"],["googleopenid","Google openid"],["facebookopenid","Facebook openid"],["appleopenid","Apple openid"]]},{title:"会员与积分",rows:[["viplv","VIP等级"],["vipexptime","VIP到期","ts"],["aichatintegral","AI积分"],["aichattotalintegral","AI累计积分"],["tradeintegral","翻译积分"],["tradetotalintegral","翻译累计积分"],["meetintegral","会议积分"],["meettotalintegral","会议累计积分"],["lastbindproductid","最后绑定产品ID"],["isactivatecode","已领激活码","bool"],["isgiveaway","首次绑定赠送","bool"]]},{title:"时间",rows:[["createtime","注册时间","ts"],["lastsgintime","最后登录","ts"],["canceltime","注销时间","ts"]]}];function H(t,s){const n=s[2],d=t[s[0]];return n==="ts"?K(d):n==="bool"?L(d):n==="gender"?E(d):C(d)}const O=w(()=>{const t=r.value;return t?String(t.name||t.uid||"?").charAt(0).toUpperCase():"?"});async function D(){if(!m.value){c("请选择应用");return}if(!v.value){c("请选择区域");return}const t=A.value.trim();if(!t){c("请输入用户UID");return}const s=Number(v.value);I.value=s,g.value=t,f.setCurrentApp(s);try{const n=await k("getuserinfo",{uid:t});r.value=n||{}}catch(n){M(n?.message||"查询失败"),r.value=null,S.value=n?.message||"未找到该用户"}}function R(){if(!g.value){c("请先查询用户");return}a.vipday=0,a.trademin=0,a.meetmin=0,x.value?.showModal()}function J(){x.value?.close()}async function Q(){const t=Number(a.vipday)||0,s=Number(a.trademin)||0,n=Number(a.meetmin)||0;if(t<0||s<0||n<0){c("数量不能为负");return}if(!t&&!s&&!n){c("请至少填写一项");return}if(!I.value||!g.value){c("请先查询用户");return}f.setCurrentApp(Number(I.value));try{await k("giftuserresource",{uid:g.value,vipday:t,trademin:s,meetmin:n}),T("赠送成功"),x.value?.close(),D()}catch(d){M(d?.message||"赠送失败")}}function j(){const t=U.value;if(!t.length){m.value="",v.value="";return}m.value=t[0],G()}async function W(){if(!f.isAdmin){try{const t=await k("getmyapps",{});p.value=t?.apps??[]}catch{p.value=(f.appbinds||[]).map(t=>({id:t.id,name:t.name,app_name:t.app_name,region:t.region,enabled:!0}))}j();return}try{const t=await P("apps/list",{});p.value=(t||[]).filter(s=>s.enabled)}catch{p.value=[]}j()}return Z(W),(t,s)=>(o(),l("div",ae,[e("div",ie,[e("div",re,[e("div",de,[s[6]||(s[6]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"应用")],-1)),b(e("select",{"onUpdate:modelValue":s[0]||(s[0]=n=>m.value=n),class:"select select-bordered select-sm",style:{"min-width":"180px"},onChange:G},[U.value.length?N("",!0):(o(),l("option",ue,"无可用应用")),(o(!0),l(y,null,h(U.value,n=>(o(),l("option",{key:n,value:n},i(n),9,ce))),128))],544),[[q,m.value]])]),e("div",pe,[s[7]||(s[7]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"区域")],-1)),b(e("select",{"onUpdate:modelValue":s[1]||(s[1]=n=>v.value=n),class:"select select-bordered select-sm",style:{"min-width":"140px"}},[V.value.length?N("",!0):(o(),l("option",me,"无可用区域")),(o(!0),l(y,null,h(V.value,n=>(o(),l("option",{key:n.id,value:n.id},i(se(oe)(n.region)),9,ve))),128))],512),[[q,v.value]])]),e("div",be,[s[8]||(s[8]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"用户UID")],-1)),b(e("input",{"onUpdate:modelValue":s[2]||(s[2]=n=>A.value=n),type:"text",class:"input input-bordered input-sm",style:{"min-width":"240px"},placeholder:"输入用户 UID",onKeydown:$(ee(D,["prevent"]),["enter"])},null,40,fe),[[_,A.value]])]),e("button",{class:"btn btn-primary btn-sm text-white",onClick:D},"搜索")]),s[9]||(s[9]=e("p",{class:"text-xs text-slate-400 mt-2"},"选择应用与区域后输入 UID,直接查询该部署业务库中的用户信息。",-1))]),r.value?(o(),l("div",xe,[e("div",ye,[r.value.avatar?(o(),l("img",{key:0,src:r.value.avatar,class:"w-14 h-14 rounded-full object-cover border border-slate-100"},null,8,he)):(o(),l("div",_e,i(O.value),1)),e("div",null,[e("div",we,i(C(r.value.name)),1),e("div",ke,i(C(r.value.uid)),1)]),e("div",Ae,[e("span",Ie,"VIP "+i(r.value.viplv||0),1),F.value?(o(),l("button",{key:0,class:"btn btn-success btn-sm text-white",onClick:R},"赠送资源点")):N("",!0)])]),(o(),l(y,null,h(z,n=>e("div",{key:n.title,class:"bg-white rounded-xl shadow-sm border border-slate-100 overflow-hidden"},[e("div",Ue,i(n.title),1),e("div",Ve,[(o(!0),l(y,null,h(n.rows,d=>(o(),l("div",{key:d[0],class:"flex justify-between gap-3 py-1.5 border-b border-slate-50"},[e("span",Ce,i(d[1]),1),e("span",De,i(H(r.value,d)),1)]))),128))])])),64))])):(o(),l("div",ge,i(S.value),1)),e("dialog",{ref_key:"giftModal",ref:x,class:"modal"},[e("div",Ne,[s[15]||(s[15]=e("h3",{class:"font-bold text-lg mb-1 text-slate-800"},"赠送资源点",-1)),e("p",Me,[s[10]||(s[10]=B("目标用户 UID:",-1)),e("span",Se,i(g.value),1),s[11]||(s[11]=B("。代理账号将从自己的资源点余额中扣减,超管/管理员无消耗。",-1))]),e("div",Ge,[e("div",je,[s[12]||(s[12]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-sm"},"VIP天数")],-1)),b(e("input",{"onUpdate:modelValue":s[3]||(s[3]=n=>a.vipday=n),type:"number",class:"input input-bordered",min:"0"},null,512),[[_,a.vipday,void 0,{number:!0}]])]),e("div",qe,[s[13]||(s[13]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-sm"},"翻译分钟")],-1)),b(e("input",{"onUpdate:modelValue":s[4]||(s[4]=n=>a.trademin=n),type:"number",class:"input input-bordered",min:"0"},null,512),[[_,a.trademin,void 0,{number:!0}]])]),e("div",Be,[s[14]||(s[14]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-sm"},"会议分钟")],-1)),b(e("input",{"onUpdate:modelValue":s[5]||(s[5]=n=>a.meetmin=n),type:"number",class:"input input-bordered",min:"0"},null,512),[[_,a.meetmin,void 0,{number:!0}]])])]),e("div",{class:"modal-action"},[e("button",{class:"btn btn-sm",onClick:J},"取消"),e("button",{class:"btn btn-success btn-sm text-white",onClick:Q},"确认赠送")])]),s[16]||(s[16]=e("form",{method:"dialog",class:"modal-backdrop"},[e("button",null,"close")],-1))],512)]))}});export{Ee as default};