import{$ as e,H as t,L as n,P as ee,V as r,Wt as i,_ as a,d as o,et as te,f as s,i as c,lt as l,p as u,st as d,u as f,v as p,z as m}from"./runtime-core.esm-bundler-DbRZbT7v.js";import{l as ne,o as h,s as g}from"./index-ZRE77JpD.js";import"./request-C_vMs8Bs.js";import{departmentApi as _,roleApi as v,userApi as y}from"./system-C8g7zsei.js";var b={class:`p-6 space-y-4`},x={class:`bg-white rounded-2xl border border-gray-100 shadow-sm p-4 flex items-center flex-wrap gap-3`},S={class:`bg-white rounded-2xl border border-gray-100 shadow-sm`},C={class:`flex items-center justify-between px-5 py-4 border-b border-gray-50`},re={class:`px-2`},ie={class:`px-5 py-3 border-t border-gray-50`},w={__name:`index`,setup(w){let T=l([]),E=l(0),D=l(!1),O=l(!1),k=l(`新增用户`),A=l(!1),j=l(!1),M=l(null),N=l([]),P=l([]),F=d({keyword:``,department_id:``,status:``}),I=d({page:1,page_size:20}),L=l(null),R=d({id:null,username:``,name:``,phone:``,email:``,department_id:``,position_id:``,role_ids:[],status:1,password:``,password_confirm:``}),z=l(!1),ae={username:[{required:!0,message:`请输入用户名`,trigger:`blur`},{min:2,max:50,message:`用户名长度 2-50 个字符`,trigger:`blur`}],name:[{required:!0,message:`请输入姓名`,trigger:`blur`}],phone:[{pattern:/^1[3-9]\d{9}$/,message:`请输入正确的手机号`,trigger:`blur`}],password:[{validator:(e,t,n)=>{!z.value&&!t?n(Error(`请输入密码`)):t&&t.length<6?n(Error(`密码不少于 6 位`)):n()},trigger:`blur`}]},B=l(null),V=d({new_password:``,confirm_password:``}),H={new_password:[{required:!0,message:`请输入新密码`,trigger:`blur`},{min:6,message:`密码不少于 6 位`,trigger:`blur`}],confirm_password:[{required:!0,message:`请确认新密码`,trigger:`blur`},{validator:(e,t,n)=>{t===V.new_password?n():n(Error(`两次输入的密码不一致`))},trigger:`blur`}]};async function U(){D.value=!0;try{let e=await y.getList({...F,...I});T.value=e.data?.list||[],E.value=e.data?.total||0}catch{}finally{D.value=!1}}async function W(){try{N.value=(await v.getList({page_size:200})).data?.list||[]}catch{}}async function G(){try{let e=await _.getList({per_page:500});P.value=e.data?.list||e.data?.data||[]}catch{}}function K(){I.page=1,U()}function q(){Object.assign(F,{keyword:``,department_id:``,status:``}),K()}function oe(){z.value=!1,k.value=`新增用户`,Object.assign(R,{id:null,username:``,name:``,phone:``,email:``,department_id:``,position_id:``,role_ids:[],status:1,password:``,password_confirm:``}),O.value=!0}async function se(e){z.value=!0,k.value=`编辑用户`;let t=(await y.getDetail(e.id)).data;Object.assign(R,{id:t.id,username:t.username,name:t.name,phone:t.phone||``,email:t.email||``,department_id:t.department_id||``,position_id:t.position_id||``,role_ids:t.roles?.map(e=>e.id)||[],status:t.status,password:``,password_confirm:``}),O.value=!0}async function ce(){L.value&&await L.value.validate(async e=>{if(e){A.value=!0;try{let e={...R};z.value?(delete e.password,delete e.password_confirm,await y.update(R.id,e),g.success(`用户信息已更新`)):(await y.create(e),g.success(`用户创建成功`)),O.value=!1,U()}catch{}finally{A.value=!1}}})}async function le(e){await h.confirm(`确定删除用户「${e.name}」吗?此操作不可恢复。`,`删除确认`,{confirmButtonText:`确定删除`,cancelButtonText:`取消`,type:`warning`,confirmButtonClass:`el-button--danger`}),await y.delete(e.id),g.success(`删除成功`),U()}async function ue(e){await y.approve(e.id),g.success(`已审核通过,用户可登录系统`),U()}async function de(e){await h.confirm(`确定拒绝「${e.name}」的注册申请?`,`拒绝确认`,{confirmButtonText:`确定拒绝`,cancelButtonText:`取消`,type:`warning`,confirmButtonClass:`el-button--danger`}),await y.reject(e.id),g.success(`已拒绝注册申请`),U()}async function fe(e){let t=e.status===1?0:1;try{await y.updateStatus(e.id,t),e.status=t,g.success(t===1?`已启用`:`已禁用`)}catch{}}function pe(e){M.value=e.id,Object.assign(V,{new_password:``,confirm_password:``}),j.value=!0}async function me(){B.value&&await B.value.validate(async e=>{if(e)try{await y.resetPassword(M.value,{new_password:V.new_password}),g.success(`密码重置成功`),j.value=!1}catch{}})}function he(e){I.page=e,U()}function J(e){I.page_size=e,I.page=1,U()}return ee(()=>{U(),W(),G()}),(ee,l)=>{let d=r(`Search`),h=r(`el-icon`),g=r(`el-input`),_=r(`el-tree-select`),v=r(`el-option`),y=r(`el-select`),w=r(`el-button`),M=r(`el-table-column`),U=r(`el-tag`),W=r(`el-table`),G=r(`el-pagination`),Y=r(`el-form-item`),X=r(`el-col`),Z=r(`el-radio`),ge=r(`el-radio-group`),_e=r(`el-row`),Q=r(`el-form`),$=r(`el-dialog`),ve=t(`loading`);return n(),u(`div`,b,[f(`div`,x,[p(g,{modelValue:F.keyword,"onUpdate:modelValue":l[0]||=e=>F.keyword=e,placeholder:`搜索用户名/姓名/手机号`,style:{width:`240px`},clearable:``,onKeydown:ne(K,[`enter`])},{prefix:e(()=>[p(h,null,{default:e(()=>[p(d)]),_:1})]),_:1},8,[`modelValue`]),p(_,{modelValue:F.department_id,"onUpdate:modelValue":l[1]||=e=>F.department_id=e,data:P.value,props:{label:`name`,value:`id`,children:`children`},placeholder:`选择部门`,clearable:``,style:{width:`180px`}},null,8,[`modelValue`,`data`]),p(y,{modelValue:F.status,"onUpdate:modelValue":l[2]||=e=>F.status=e,placeholder:`状态`,clearable:``,style:{width:`130px`}},{default:e(()=>[p(v,{label:`正常`,value:1}),p(v,{label:`禁用`,value:0}),p(v,{label:`待审核`,value:2})]),_:1},8,[`modelValue`]),p(w,{type:`primary`,icon:`Search`,onClick:K},{default:e(()=>[...l[20]||=[a(`查询`,-1)]]),_:1}),p(w,{icon:`Refresh`,onClick:q},{default:e(()=>[...l[21]||=[a(`重置`,-1)]]),_:1}),p(w,{type:`warning`,plain:``,onClick:l[3]||=e=>{F.status=2,K()}},{default:e(()=>[...l[22]||=[a(` 待审核注册 `,-1)]]),_:1})]),f(`div`,S,[f(`div`,C,[l[24]||=f(`div`,{class:`flex items-center gap-3`},null,-1),p(w,{type:`primary`,icon:`Plus`,onClick:oe},{default:e(()=>[...l[23]||=[a(`新增用户`,-1)]]),_:1})]),f(`div`,re,[te((n(),o(W,{data:T.value,"row-key":`id`,style:{width:`100%`}},{default:e(()=>[p(M,{prop:`username`,label:`用户名`,"min-width":`120`}),p(M,{prop:`name`,label:`姓名`,"min-width":`100`}),p(M,{prop:`phone`,label:`手机号`,"min-width":`130`}),p(M,{prop:`department.name`,label:`部门`,"min-width":`120`}),p(M,{label:`角色`,"min-width":`160`},{default:e(({row:t})=>[(n(!0),u(c,null,m(t.roles,t=>(n(),o(U,{key:t.id,size:`small`,type:`info`,style:{margin:`2px`}},{default:e(()=>[a(i(t.name),1)]),_:2},1024))),128))]),_:1}),p(M,{label:`状态`,width:`100`,align:`center`},{default:e(({row:t})=>[p(U,{type:t.status===1?`success`:t.status===2?`warning`:`danger`,size:`small`},{default:e(()=>[a(i(t.status===1?`正常`:t.status===2?`待审核`:`禁用`),1)]),_:2},1032,[`type`])]),_:1}),p(M,{prop:`created_at`,label:`创建时间`,"min-width":`160`}),p(M,{label:`操作`,width:`260`,fixed:`right`,align:`center`},{default:e(({row:t})=>[t.status===2?(n(),u(c,{key:0},[p(w,{size:`small`,type:`success`,text:``,onClick:e=>ue(t)},{default:e(()=>[...l[25]||=[a(`通过`,-1)]]),_:1},8,[`onClick`]),p(w,{size:`small`,type:`danger`,text:``,onClick:e=>de(t)},{default:e(()=>[...l[26]||=[a(`拒绝`,-1)]]),_:1},8,[`onClick`])],64)):s(``,!0),p(w,{size:`small`,type:`primary`,text:``,onClick:e=>se(t)},{default:e(()=>[...l[27]||=[a(`编辑`,-1)]]),_:1},8,[`onClick`]),t.status===2?s(``,!0):(n(),o(w,{key:1,size:`small`,type:t.status===1?`warning`:`success`,text:``,onClick:e=>fe(t)},{default:e(()=>[a(i(t.status===1?`禁用`:`启用`),1)]),_:2},1032,[`type`,`onClick`])),p(w,{size:`small`,type:`info`,text:``,onClick:e=>pe(t)},{default:e(()=>[...l[28]||=[a(`重置密码`,-1)]]),_:1},8,[`onClick`]),p(w,{size:`small`,type:`danger`,text:``,onClick:e=>le(t)},{default:e(()=>[...l[29]||=[a(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[ve,D.value]])]),f(`div`,ie,[p(G,{"current-page":I.page,"onUpdate:currentPage":l[4]||=e=>I.page=e,"page-size":I.page_size,"onUpdate:pageSize":l[5]||=e=>I.page_size=e,total:E.value,"page-sizes":[10,20,50,100],layout:`total, sizes, prev, pager, next, jumper`,background:``,onCurrentChange:he,onSizeChange:J},null,8,[`current-page`,`page-size`,`total`])])]),p($,{modelValue:O.value,"onUpdate:modelValue":l[15]||=e=>O.value=e,title:k.value,width:`600px`,"destroy-on-close":``},{footer:e(()=>[p(w,{onClick:l[14]||=e=>O.value=!1},{default:e(()=>[...l[32]||=[a(`取消`,-1)]]),_:1}),p(w,{type:`primary`,loading:A.value,onClick:ce},{default:e(()=>[a(i(z.value?`保存修改`:`确认创建`),1)]),_:1},8,[`loading`])]),default:e(()=>[p(Q,{ref_key:`formRef`,ref:L,model:R,rules:ae,"label-width":`90px`,"label-position":`right`},{default:e(()=>[p(_e,{gutter:16},{default:e(()=>[p(X,{span:12},{default:e(()=>[p(Y,{label:`用户名`,prop:`username`},{default:e(()=>[p(g,{modelValue:R.username,"onUpdate:modelValue":l[6]||=e=>R.username=e,placeholder:`请输入用户名`,disabled:z.value},null,8,[`modelValue`,`disabled`])]),_:1})]),_:1}),p(X,{span:12},{default:e(()=>[p(Y,{label:`姓名`,prop:`name`},{default:e(()=>[p(g,{modelValue:R.name,"onUpdate:modelValue":l[7]||=e=>R.name=e,placeholder:`请输入姓名`},null,8,[`modelValue`])]),_:1})]),_:1}),p(X,{span:12},{default:e(()=>[p(Y,{label:`手机号`,prop:`phone`},{default:e(()=>[p(g,{modelValue:R.phone,"onUpdate:modelValue":l[8]||=e=>R.phone=e,placeholder:`请输入手机号`},null,8,[`modelValue`])]),_:1})]),_:1}),p(X,{span:12},{default:e(()=>[p(Y,{label:`邮箱`,prop:`email`},{default:e(()=>[p(g,{modelValue:R.email,"onUpdate:modelValue":l[9]||=e=>R.email=e,placeholder:`请输入邮箱`},null,8,[`modelValue`])]),_:1})]),_:1}),p(X,{span:12},{default:e(()=>[p(Y,{label:`部门`,prop:`department_id`},{default:e(()=>[p(_,{modelValue:R.department_id,"onUpdate:modelValue":l[10]||=e=>R.department_id=e,data:P.value,props:{label:`name`,value:`id`,children:`children`},placeholder:`选择部门`,clearable:``,style:{width:`100%`}},null,8,[`modelValue`,`data`])]),_:1})]),_:1}),p(X,{span:12},{default:e(()=>[p(Y,{label:`角色`,prop:`role_ids`},{default:e(()=>[p(y,{modelValue:R.role_ids,"onUpdate:modelValue":l[11]||=e=>R.role_ids=e,multiple:``,placeholder:`选择角色`,style:{width:`100%`}},{default:e(()=>[(n(!0),u(c,null,m(N.value,e=>(n(),o(v,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1})]),_:1}),p(X,{span:12},{default:e(()=>[p(Y,{label:`状态`,prop:`status`},{default:e(()=>[p(ge,{modelValue:R.status,"onUpdate:modelValue":l[12]||=e=>R.status=e},{default:e(()=>[p(Z,{value:1},{default:e(()=>[...l[30]||=[a(`启用`,-1)]]),_:1}),p(Z,{value:0},{default:e(()=>[...l[31]||=[a(`禁用`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:1})]),_:1}),z.value?s(``,!0):(n(),o(X,{key:0,span:12},{default:e(()=>[p(Y,{label:`密码`,prop:`password`},{default:e(()=>[p(g,{modelValue:R.password,"onUpdate:modelValue":l[13]||=e=>R.password=e,type:`password`,placeholder:`请输入初始密码`,"show-password":``},null,8,[`modelValue`])]),_:1})]),_:1}))]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`]),p($,{modelValue:j.value,"onUpdate:modelValue":l[19]||=e=>j.value=e,title:`重置密码`,width:`420px`,"destroy-on-close":``},{footer:e(()=>[p(w,{onClick:l[18]||=e=>j.value=!1},{default:e(()=>[...l[33]||=[a(`取消`,-1)]]),_:1}),p(w,{type:`primary`,onClick:me},{default:e(()=>[...l[34]||=[a(`确认重置`,-1)]]),_:1})]),default:e(()=>[p(Q,{ref_key:`resetPwdFormRef`,ref:B,model:V,rules:H,"label-width":`90px`},{default:e(()=>[p(Y,{label:`新密码`,prop:`new_password`},{default:e(()=>[p(g,{modelValue:V.new_password,"onUpdate:modelValue":l[16]||=e=>V.new_password=e,type:`password`,placeholder:`请输入新密码(不少于6位)`,"show-password":``},null,8,[`modelValue`])]),_:1}),p(Y,{label:`确认密码`,prop:`confirm_password`},{default:e(()=>[p(g,{modelValue:V.confirm_password,"onUpdate:modelValue":l[17]||=e=>V.confirm_password=e,type:`password`,placeholder:`请再次输入新密码`,"show-password":``},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`])])}}};export{w as default};