Files
xin-school/public/assets/profile-D0iHbJ6r.js
T
2026-05-30 17:38:49 +08:00

2 lines
6.2 KiB
JavaScript

import{r as g,u as x,dy as w,j as e,Q as y,dz as I,dA as P,f as b,F as n,A as S,B as f,aS as v,I as l,dB as N,T,_ as R,a0 as k,aq as L,S as q,dC as M,s as A,w as h,dD as $,dE as C}from"./index-B-sDl1ER.js";import{C as F,T as z}from"./index-CO5DzGxy.js";import{U as E}from"./index-D3yl9SWR.js";import{R as B}from"./index-CeRfFUxJ.js";import{L as j}from"./index-S1dQ7QE3.js";import{T as p}from"./index-C9m5qSM4.js";import"./progress-C__thZ4V.js";import"./index-DmtjhyJb.js";const{Text:m}=T,U=()=>{const t=b(c=>c.userinfo),o=b(c=>c.info),[i]=n.useForm(),[r,a]=g.useState(!1),{t:s}=x(),u=async c=>{c.file.status==="done"&&(h.success(s("userSetting.baseInfo.avatarSuccess")),await o())},d=async c=>{try{a(!0),await $(c),await o(),h.success(s("userSetting.baseInfo.success"))}finally{a(!1)}};return e.jsxs("div",{className:"w-full px-6 py-4",children:[e.jsxs("div",{className:"flex flex-col items-center mb-3",children:[e.jsx(S,{size:120,src:t?.avatar_url,className:"mb-4 border-2 border-gray-200"}),e.jsx(E,{name:"file",action:"/index.php/admin/uploadAvatar",headers:{Authorization:`Bearer ${localStorage.getItem("token")}`},showUploadList:!1,onChange:u,children:e.jsx(f,{icon:e.jsx(v,{}),children:s("userSetting.baseInfo.updateAvatar")})}),e.jsx("p",{className:"text-gray-500 text-sm mt-2",children:s("userSetting.baseInfo.updateAvatarDesc")})]}),e.jsxs(n,{form:i,layout:"vertical",onFinish:d,initialValues:{bio:t?.bio,email:t?.email,mobile:t?.mobile,nickname:t?.nickname,sex:t?.sex,username:t?.username},children:[e.jsx(n.Item,{label:s("userSetting.baseInfo.username"),name:"username",rules:[{required:!0,message:s("userSetting.baseInfo.username.message")}],children:e.jsx(l,{disabled:!0})}),e.jsx(n.Item,{label:s("userSetting.baseInfo.nickname"),name:"nickname",rules:[{required:!0,message:s("userSetting.baseInfo.nickname.message")}],children:e.jsx(l,{})}),e.jsx(n.Item,{label:s("userSetting.baseInfo.sex"),name:"sex",children:e.jsx(B.Group,{options:[{value:0,label:s("userSetting.baseInfo.sex.0")},{value:1,label:s("userSetting.baseInfo.sex.1")}]})}),e.jsx(n.Item,{label:s("userSetting.baseInfo.bio"),name:"bio",children:e.jsx(l.TextArea,{rows:4})}),e.jsx(n.Item,{label:s("userSetting.baseInfo.email"),name:"email",rules:[{type:"email",message:s("userSetting.baseInfo.email.typeMessage")},{required:!0,message:s("userSetting.baseInfo.email.requiredMessage")}],children:e.jsx(l,{})}),e.jsx(n.Item,{label:s("userSetting.baseInfo.mobile"),name:"mobile",rules:[{required:!0,message:s("userSetting.baseInfo.mobile.message")}],children:e.jsx(l,{})}),e.jsx(n.Item,{children:e.jsx(f,{type:"primary",htmlType:"submit",size:"large",loading:r,block:!0,children:s("userSetting.baseInfo.submit")})})]})]})},_=()=>{const[t]=n.useForm(),[o,i]=g.useState(!1),{t:r}=x(),a=async s=>{try{i(!0),await C(s),t.resetFields(),h.success(r("userSetting.changePassword.success"))}finally{i(!1)}};return e.jsxs(n,{form:t,layout:"vertical",onFinish:a,className:"w-full px-6 py-4",children:[e.jsx(n.Item,{label:r("userSetting.changePassword.oldPassword"),name:"oldPassword",rules:[{required:!0,message:r("userSetting.changePassword.oldPassword.message")}],children:e.jsx(l.Password,{})}),e.jsx(n.Item,{label:r("userSetting.changePassword.newPassword"),name:"newPassword",rules:[{required:!0,message:r("userSetting.changePassword.requiredMessage")},{min:8,message:r("userSetting.changePassword.minMessage")}],children:e.jsx(l.Password,{})}),e.jsx(n.Item,{label:r("userSetting.changePassword.rePassword"),name:"rePassword",dependencies:["newPassword"],rules:[{required:!0,message:r("userSetting.changePassword.requiredMessage")},({getFieldValue:s})=>({validator(u,d){return!d||s("newPassword")===d?Promise.resolve():Promise.reject(new Error(r("userSetting.changePassword.rePassword.message")))}})],children:e.jsx(l.Password,{})}),e.jsx(f,{type:"primary",block:!0,htmlType:"submit",size:"large",loading:o,children:r("userSetting.changePassword.submit")})]})},D=()=>{const[t,o]=g.useState([]),{t:i}=x();g.useEffect(()=>{N().then(a=>o(a.data.data||[]))},[]);const r=({browser:a})=>{const s={Chrome:"🚀",Firefox:"🦊",Safari:"🍎",Edge:"🌊"},u=Object.keys(s).find(d=>a?.includes(d));return e.jsx("span",{children:u?s[u]:"💻"})};return e.jsx(j,{dataSource:t,className:"w-full px-6 py-4 overflow-auto",locale:{emptyText:i("userSetting.loginLog.empty")},renderItem:a=>e.jsxs(j.Item,{style:{minWidth:600},children:[e.jsx(S,{size:"large",icon:e.jsx(y,{}),style:{backgroundColor:a.status==="0"?"#87d068":"#f56a00",marginRight:16}}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center mb-2",children:[e.jsx(m,{strong:!0,className:"mr-3 text-base",children:a.username}),a.status==="0"?e.jsx(p,{color:"green",icon:e.jsx(R,{}),children:i("userSetting.loginLog.success")}):e.jsx(p,{color:"red",icon:e.jsx(k,{}),children:i("userSetting.loginLog.error")}),e.jsx(m,{type:"secondary",className:"ml-auto",children:L(a.login_time).format("YYYY-MM-DD HH:mm:ss")})]}),e.jsxs(q,{size:"large",wrap:!0,children:[e.jsxs("div",{className:"flex items-center",children:[e.jsx(M,{className:"mr-1 text-blue-500"}),e.jsx(m,{type:"secondary",children:a.ipaddr})]}),e.jsxs("div",{className:"flex items-center",children:[e.jsx(A,{className:"mr-1 text-green-500"}),e.jsx(m,{type:"secondary",children:a.login_location})]}),e.jsxs("div",{className:"flex items-center",children:[e.jsx(r,{browser:a.browser}),e.jsx(m,{type:"secondary",className:"ml-1",children:a.browser})]}),e.jsxs(m,{type:"secondary",children:["OS: ",a.os]})]})]})]})})},J=()=>{const[t,o]=g.useState("info"),{t:i}=x(),r=w(),a=[{label:e.jsxs("span",{className:"flex items-center",children:[e.jsx(y,{className:"mr-2"}),r?null:i("userSetting.baseInfo")]}),key:"info",children:e.jsx(U,{})},{label:e.jsxs("span",{className:"flex items-center",children:[e.jsx(I,{className:"mr-2"}),r?null:i("userSetting.changePassword")]}),key:"security",children:e.jsx(_,{})},{label:e.jsxs("span",{className:"flex items-center",children:[e.jsx(P,{className:"mr-2"}),r?null:i("userSetting.loginLog")]}),key:"loginlog",children:e.jsx(D,{})}];return e.jsx(F,{title:i("userSetting.title"),variant:"borderless",style:{maxWidth:800,width:"100%"},styles:{body:{paddingInline:0,paddingRight:25,display:"flex"}},children:e.jsx(z,{activeKey:t,onChange:o,tabPlacement:"start",className:"min-h-[500px] w-full",items:a})})};export{J as default};