import{A as e,D as t,E as n,I as r,N as i,O as a,S as o,_ as s,b as c,c as l,d as u,g as d,h as f,j as p,k as m,p as h,r as g,s as _,t as v,u as y,v as b,w as x,x as S}from"./index-EqJJKSSk.js";import{r as C}from"./utils-COFIQvWo.js";var w={class:`page-container`},T={class:`page-header`},E={style:{display:`flex`,"flex-direction":`column`,gap:`8px`}},D=[`value`],O=o({__name:`UsersView`,setup(o){let O=y(),k=l(),A=k.user,j=p({users:[],roles:[],loading:!0,showUserModal:!1,editingUser:null,userForm:{username:``,email:``,password:``,full_name:``,role_ids:[]}});function M(e,t,n,r,i){return new Promise(a=>{let o=v.confirm({header:e,body:t,theme:n,confirmBtn:r,cancelBtn:i,onConfirm:()=>{o.hide(),a(!0)},onCancel:()=>{o.hide(),a(!1)},onClose:()=>{a(!1)}})})}let N=async()=>{try{j.users=await _(`/api/auth/users`)}catch(e){g(e.message||`加载用户列表失败`,`error`)}finally{j.loading=!1}},P=async()=>{try{j.roles=await _(`/api/auth/roles`)}catch(e){g(e.message||`加载角色列表失败`,`error`)}},F=(e=null)=>{j.editingUser=e,e?j.userForm={username:e.username,email:e.email,password:``,full_name:e.full_name||``,role_ids:e.roles.map(e=>{let t=j.roles.find(t=>t.code===e);return t?t.id:null}).filter(e=>e!==null)}:j.userForm={username:``,email:``,password:``,full_name:``,role_ids:[]},j.showUserModal=!0},I=async()=>{if(!j.userForm.username||!j.userForm.email){g(`请填写用户名和邮箱`,`error`);return}if(!j.editingUser&&!j.userForm.password){g(`请填写密码`,`error`);return}try{j.editingUser?(await _(`/api/auth/users/${j.editingUser.id}`,{method:`PUT`,body:JSON.stringify({email:j.userForm.email,full_name:j.userForm.full_name||null,role_ids:j.userForm.role_ids})}),g(`用户更新成功`,`success`)):(await _(`/api/auth/users`,{method:`POST`,body:JSON.stringify(j.userForm)}),g(`用户创建成功`,`success`)),j.showUserModal=!1,N()}catch(e){g(e.message||`保存用户失败`,`error`)}},L=async e=>{if(await M(`删除确认`,`确定要删除用户 ${e.username} 吗?`,`warning`,`删除`,`取消`))try{await _(`/api/auth/users/${e.id}`,{method:`DELETE`}),g(`用户已删除`,`success`),N()}catch(e){g(e.message||`删除用户失败`,`error`)}},R=async e=>{let t=prompt(`请输入 ${e.username} 的新密码:`);if(!t||t.length<6){g(`密码长度至少6位`,`error`);return}try{await _(`/api/auth/users/${e.id}/reset-password`,{method:`PUT`,body:JSON.stringify(t)}),g(`密码已重置`,`success`)}catch(e){g(e.message||`重置密码失败`,`error`)}};return x(async()=>{if(!k.user?.is_superuser){O.push(`/`);return}await P(),N()}),(o,l)=>{let p=a(`t-button`),g=a(`t-table-column`),_=a(`t-tag`),v=a(`t-space`),y=a(`t-table`),x=a(`t-empty`),O=a(`t-loading`),k=a(`t-input`),M=a(`t-form-item`),N=a(`t-form`),P=a(`t-dialog`);return n(),b(`div`,w,[f(`div`,T,[l[9]||=f(`div`,null,[f(`h1`,null,`用户管理`),f(`p`,null,`管理系统用户和权限`)],-1),S(p,{theme:`primary`,onClick:l[0]||=e=>F()},{default:m(()=>[...l[8]||=[c(`+ 添加用户`,-1)]]),_:1})]),S(O,{loading:j.loading,size:`large`},{default:m(()=>[S(y,{data:j.users,"row-key":`id`,stripe:``},{default:m(()=>[S(g,{colKey:`username`,title:`用户名`}),S(g,{colKey:`email`,title:`邮箱`}),S(g,{colKey:`full_name`,title:`姓名`},{cell:m(({row:e})=>[c(r(e.full_name||`-`),1)]),_:1}),S(g,{colKey:`is_active`,title:`状态`},{cell:m(({row:e})=>[S(_,{theme:e.is_active?`success`:`danger`},{default:m(()=>[c(r(e.is_active?`正常`:`禁用`),1)]),_:2},1032,[`theme`])]),_:1}),S(g,{colKey:`roles`,title:`角色`},{cell:m(({row:e})=>[(n(!0),b(h,null,t(e.roles,e=>(n(),d(_,{key:e,theme:`primary`,variant:`light`,style:{"margin-right":`4px`}},{default:m(()=>[c(r(e),1)]),_:2},1024))),128))]),_:1}),S(g,{colKey:`created_at`,title:`注册时间`},{cell:m(({row:e})=>[c(r(i(C)(e.created_at)),1)]),_:1}),S(g,{colKey:`actions`,title:`操作`},{cell:m(({row:e})=>[S(v,{size:4},{default:m(()=>[S(p,{theme:`primary`,size:`small`,onClick:t=>F(e)},{default:m(()=>[...l[10]||=[c(`编辑`,-1)]]),_:1},8,[`onClick`]),S(p,{theme:`warning`,size:`small`,onClick:t=>R(e)},{default:m(()=>[...l[11]||=[c(`重置密码`,-1)]]),_:1},8,[`onClick`]),e.id===i(A)?.id?s(``,!0):(n(),d(p,{key:0,theme:`danger`,size:`small`,onClick:t=>L(e)},{default:m(()=>[...l[12]||=[c(`删除`,-1)]]),_:1},8,[`onClick`]))]),_:2},1024)]),_:1})]),_:1},8,[`data`]),!j.loading&&j.users.length===0?(n(),d(x,{key:0,description:`暂无用户数据`})):s(``,!0)]),_:1},8,[`loading`]),S(P,{visible:j.showUserModal,"onUpdate:visible":l[7]||=e=>j.showUserModal=e,header:j.editingUser?`编辑用户`:`添加用户`,"close-on-overlay-click":!0,width:`520px`},{footer:m(()=>[S(p,{theme:`default`,onClick:l[6]||=e=>j.showUserModal=!1},{default:m(()=>[...l[13]||=[c(`取消`,-1)]]),_:1}),S(p,{theme:`primary`,onClick:I},{default:m(()=>[...l[14]||=[c(`保存`,-1)]]),_:1})]),default:m(()=>[S(N,{"label-width":`80px`},{default:m(()=>[S(M,{label:`用户名`},{default:m(()=>[S(k,{modelValue:j.userForm.username,"onUpdate:modelValue":l[1]||=e=>j.userForm.username=e,disabled:!!j.editingUser},null,8,[`modelValue`,`disabled`])]),_:1}),S(M,{label:`邮箱`},{default:m(()=>[S(k,{modelValue:j.userForm.email,"onUpdate:modelValue":l[2]||=e=>j.userForm.email=e,type:`email`},null,8,[`modelValue`])]),_:1}),j.editingUser?s(``,!0):(n(),d(M,{key:0,label:`密码`},{default:m(()=>[S(k,{modelValue:j.userForm.password,"onUpdate:modelValue":l[3]||=e=>j.userForm.password=e,type:`password`},null,8,[`modelValue`])]),_:1})),S(M,{label:`姓名`},{default:m(()=>[S(k,{modelValue:j.userForm.full_name,"onUpdate:modelValue":l[4]||=e=>j.userForm.full_name=e},null,8,[`modelValue`])]),_:1}),S(M,{label:`角色`},{default:m(()=>[f(`div`,E,[(n(!0),b(h,null,t(j.roles,t=>(n(),b(`label`,{key:t.id,style:{display:`flex`,"align-items":`center`,gap:`6px`,cursor:`pointer`}},[e(f(`input`,{type:`checkbox`,value:t.id,"onUpdate:modelValue":l[5]||=e=>j.userForm.role_ids=e},null,8,D),[[u,j.userForm.role_ids]]),c(` `+r(t.name),1)]))),128))])]),_:1})]),_:1})]),_:1},8,[`visible`,`header`])])}}});export{O as default};