You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
6.0 KiB

3 days ago
import{C as e,Ct as t,D as n,E as r,G as i,S as a,T as o,X as s,Xt as c,Y as l,at as u,b as d,d as f,ht as p,m,ot as h,q as g,tn as _,x as v}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{c as y,l as b}from"./index-BKGTVidA.js";import{n as x,t as S}from"./usePageLoad-D9c6HmVf.js";import{r as C}from"./admin-list-DjncsyJC.js";import{a as w,i as T,n as E,r as D,t as O}from"./users-DHe1cFsc.js";import{i as k}from"./roles-CkdU5cIP.js";var A={class:`list-page`},j={class:`page-header`},M={class:`list-filter-bar`},N={class:`table-row-actions`},P={class:`list-pager`},F=n({__name:`index`,setup(n){let F=p(!1),I=p([]),L=p({current_page:1,per_page:20,total:0}),R=p(``),z=p(1),B=p([]),V=p(!1),H=p(null),U=p({username:``,password:``,real_name:``,mobile:``,email:``,status:1,role_ids:[]});async function W(){F.value=!0;try{let e=await D({page:z.value,page_size:L.value.per_page,keyword:R.value||void 0});I.value=e.items,L.value=e.meta}finally{F.value=!1}}async function G(){B.value=(await k({page:1,page_size:200,status:1})).items.map(e=>({id:e.id,name:e.name}))}function K(){H.value=null,U.value={username:``,password:``,real_name:``,mobile:``,email:``,status:1,role_ids:[]},V.value=!0}function q(e){H.value=e,U.value={username:e.username,password:``,real_name:e.real_name||``,mobile:e.mobile||``,email:e.email||``,status:e.status,role_ids:e.roles?.map(e=>e.id)||[]},V.value=!0}async function J(){if(!H.value&&!U.value.password){b.warning(`请设置初始密码`);return}H.value?(await w(H.value.id,{real_name:U.value.real_name||null,mobile:U.value.mobile||null,email:U.value.email||null,status:U.value.status,role_ids:U.value.role_ids}),U.value.password&&await T(H.value.id,U.value.password)):await O({username:U.value.username,password:U.value.password,real_name:U.value.real_name||null,mobile:U.value.mobile||null,email:U.value.email||null,status:U.value.status,role_ids:U.value.role_ids}),b.success(`已保存`),V.value=!1,await W()}async function Y(e){await y.confirm(`确定删除管理员「${e.username}」?`,`提示`,{type:`warning`}),await E(e.id),b.success(`已删除`),await W()}function X(){z.value=1,W()}function Z(){R.value=``,z.value=1,W()}return S(async()=>{await G(),await W()}),(n,p)=>{let y=l(`el-button`),b=l(`el-input`),S=l(`el-table-column`),w=l(`el-tag`),T=l(`el-table`),E=l(`el-pagination`),D=l(`el-card`),O=l(`el-form-item`),k=l(`el-switch`),G=l(`el-option`),Q=l(`el-select`),$=l(`el-form`),ee=l(`el-dialog`),te=s(`loading`);return i(),e(m,null,[d(`div`,A,[d(`div`,j,[r(x),r(y,{type:`primary`,size:`small`,class:`btn-create`,onClick:K},{default:u(()=>[...p[11]||=[o(`新增管理员`,-1)]]),_:1})]),r(D,{shadow:`never`,class:`admin-list-card`},{default:u(()=>[d(`div`,M,[r(b,{modelValue:R.value,"onUpdate:modelValue":p[0]||=e=>R.value=e,placeholder:`账号/姓名/手机`,clearable:``,class:`filter-search`,onKeyup:f(X,[`enter`])},null,8,[`modelValue`]),r(y,{type:`primary`,onClick:X},{default:u(()=>[...p[12]||=[o(`搜索`,-1)]]),_:1}),r(y,{onClick:Z},{default:u(()=>[...p[13]||=[o(`重置`,-1)]]),_:1})]),h((i(),v(T,{data:I.value,"row-key":`id`},{default:u(()=>[r(S,{prop:`username`,label:`账号`,width:`140`}),r(S,{prop:`real_name`,label:`姓名`,width:`120`}),r(S,{prop:`mobile`,label:`手机`,width:`130`}),r(S,{label:`状态`,width:`90`,align:`center`},{default:u(({row:e})=>[d(`span`,{class:c([`status-badge`,t(C)(e.status)])},_(e.status===1?`启用`:`停用`),3)]),_:1}),r(S,{prop:`last_login_at`,label:`最近登录`,"min-width":`180`}),r(S,{label:`角色`,"min-width":`160`},{default:u(({row:t})=>[(i(!0),e(m,null,g(t.roles,e=>(i(),v(w,{key:e.id,size:`small`,style:{"margin-right":`4px`}},{default:u(()=>[o(_(e.name),1)]),_:2},1024))),128))]),_:1}),r(S,{label:`操作`,width:`160`,fixed:`right`},{default:u(({row:e})=>[d(`div`,N,[r(y,{class:`btn-action-primary`,onClick:t=>q(e)},{default:u(()=>[...p[14]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),r(y,{class:`btn-action-brand`,onClick:t=>Y(e)},{default:u(()=>[...p[15]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])])]),_:1})]),_:1},8,[`data`])),[[te,F.value]]),d(`div`,P,[r(E,{"current-page":z.value,"onUpdate:curren