Files
yuezi-saas/frontend/dist/assets/users-BUSzBHfe.js
T

1 line
13 KiB
JavaScript

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