13 lines
4.6 KiB
JavaScript
13 lines
4.6 KiB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CAYqMwJw.js","assets/index-BthM1Vey.css"])))=>i.map(i=>d[i]);
|
|
import{c as M,u as E,r as I,e as d,Y as c,f as N,j as e,E as l,B as r,P as R,A as o,i as S,T as B,Z as F,_ as K,$ as P,a0 as L,a1 as U,a2 as A,a3 as D}from"./index-CAYqMwJw.js";import{C,a as q,b as z}from"./card-DipFCG5F.js";/**
|
|
* @license lucide-react v0.475.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/const H=[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],V=M("TicketCheck",H);/**
|
|
* @license lucide-react v0.475.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/const W=[["path",{d:"M18 21a8 8 0 0 0-16 0",key:"3ypg7q"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3",key:"10s06x"}]],Z=M("UsersRound",W);function i(){return L()&&localStorage.getItem("fp-server-url")||""}function G(){var h,p,j,f,k,g,_,b;const a=E(),[n,t]=I.useState(!1),m=d({queryKey:["me"],queryFn:()=>$(),enabled:!!c()}),x=d({queryKey:["admin-users"],queryFn:()=>U(i()),enabled:!!c()}),u=d({queryKey:["admin-invites"],queryFn:()=>A(i()),enabled:!!c()}),T=N({mutationFn:s=>K(s,i()),onSuccess:()=>{a.invalidateQueries({queryKey:["admin-invites"]}),t(!1)},onError:()=>t(!1)}),w=N({mutationFn:s=>P(s,i()),onSuccess:()=>void a.invalidateQueries({queryKey:["admin-invites"]})});if(m.data&&!m.data.is_admin)return e.jsx(l,{title:"需要管理员账号",description:"当前登录账号不是管理员。"});const v=((p=(h=u.data)==null?void 0:h.data)==null?void 0:p.invites)??[],y=((f=(j=x.data)==null?void 0:j.data)==null?void 0:f.users)??[],Q=((g=(k=u.data)==null?void 0:k.data)==null?void 0:g.total)??0;return e.jsxs("div",{className:"mx-auto max-w-[1080px] px-6 py-5",children:[e.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[e.jsx("h2",{className:"text-[15px] font-semibold text-ink-1",children:"管理"}),e.jsx(r,{variant:"secondary",onClick:()=>{a.invalidateQueries()},children:"刷新"})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[e.jsxs(C,{children:[e.jsx(q,{title:"邀请码("+Q+")",extra:e.jsxs(r,{size:"sm",variant:"primary",disabled:n,onClick:()=>{t(!0),T.mutate(5)},children:[e.jsx(R,{size:13})," 批量生成 5 个"]})}),e.jsx(z,{className:"p-0",children:v.length?e.jsx("div",{className:"divide-y divide-line max-h-[420px] overflow-y-auto",children:v.map(s=>e.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 text-[12.5px]",children:[e.jsx("code",{className:"num rounded-sm px-1.5 py-0.5 "+(s.valid?"bg-success-subtle text-success":"bg-surface-3 text-ink-3"),children:s.code}),s.valid?e.jsx(o,{color:"var(--success)",children:"可用"}):e.jsx(o,{color:"var(--text-3)",children:"已使用"}),s.used_by_name&&e.jsxs("span",{className:"text-ink-3 truncate",children:["被 ",s.used_by_name," 使用于 ",S(s.used_at)]}),!s.used_by&&e.jsxs("span",{className:"ml-auto flex gap-1",children:[e.jsx(r,{size:"sm",variant:"secondary",onClick:()=>{navigator.clipboard.writeText(s.code)},children:"复制"}),!s.valid&&e.jsx(r,{size:"icon-sm",variant:"ghost","aria-label":"作废",className:"text-ink-3",onClick:()=>w.mutate(s.id),children:e.jsx(B,{size:13})})]})]},s.id))}):e.jsx(l,{icon:e.jsx(V,{size:32,strokeWidth:1.5}),title:"暂无邀请码",description:"生成后发给需要注册的用户。"})})]}),e.jsxs(C,{children:[e.jsx(q,{title:"用户("+(((b=(_=x.data)==null?void 0:_.data)==null?void 0:b.total)??0)+")"}),e.jsx(z,{className:"p-0",children:y.length?e.jsx("div",{className:"divide-y divide-line max-h-[420px] overflow-y-auto",children:y.map(s=>e.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 text-[12.5px]",children:[e.jsx("span",{className:"font-medium text-ink-1",children:s.username}),s.is_admin&&e.jsx(o,{color:"var(--brand-text)",children:"管理员"}),e.jsxs("span",{className:"num ml-auto text-ink-3",children:[s.devices," 设备 · ",s.records," 记录 · ",F(s.attachment_bytes)]})]},s.id))}):e.jsx(l,{icon:e.jsx(Z,{size:32,strokeWidth:1.5}),title:"暂无用户"})})]})]}),n&&e.jsx("div",{className:"mt-3 text-[12px] text-ink-3",children:"生成中…"})]})}async function $(){const{serverMe:a}=await D(async()=>{const{serverMe:n}=await import("./index-CAYqMwJw.js").then(t=>t.a4);return{serverMe:n}},__vite__mapDeps([0,1]));try{return await a(i())}catch{return null}}export{G as AdminPage};
|