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.3 KiB
1 line
6.3 KiB
import{C as e,D as t,O as n,Q as r,S as i,T as a,W as o,Z as s,_t as c,ct as l,ht as u,in as d,k as f,m as p,q as m,st as h}from"./vue.runtime.esm-bundler-CACvpnko.js";import{h as g,m as _,s as v}from"./index-D5exsJys.js";import{t as y}from"./_plugin-vue_export-helper-CXTkFu_Z.js";function b(e){if(!e||typeof e!=`object`)throw Error(`列表响应格式无效`);let t=e;if(Array.isArray(t.data)&&typeof t.current_page==`number`)return{data:t.data,meta:{current_page:t.current_page,last_page:typeof t.last_page==`number`?t.last_page:1,per_page:typeof t.per_page==`number`?t.per_page:t.data.length||15,total:typeof t.total==`number`?t.total:t.data.length}};throw Error(`列表响应格式无效`)}async function x(e){let{data:t}=await v.get(`/admin-users`,{params:e});return b(t)}async function S(e){let{data:t}=await v.post(`/admin-users`,e);return t}async function C(e,t){let{data:n}=await v.patch(`/admin-users/${e}`,t);return n}async function w(e){await v.post(`/admin-users/${e}/delete`)}var T={class:`toolbar`},E={class:`table-pagination`},D=y(f({__name:`AdminUserManageView`,setup(f){let v=c(!1),y=c([]),b=u({page:1,perPage:15,total:0}),D=c(``),O=c(!1),k=c(`create`),A=c(!1),j=c(null),M=c(),N=u({username:``,name:``,mobile:``,password:``,status:`active`}),P={username:[{required:!0,message:`请填写账号`,trigger:`blur`}],name:[{required:!0,message:`请填写姓名`,trigger:`blur`}],password:[{validator:(e,t,n)=>{if(k.value===`create`&&!String(t||``).trim()){n(Error(`请填写密码`));return}n()},trigger:`blur`}]};async function F(e=b.page){v.value=!0,b.page=e;try{let e=await x({page:b.page,per_page:b.perPage,keyword:D.value.trim()||void 0});y.value=e.data,b.total=e.meta.total}finally{v.value=!1}}function I(){k.value=`create`,j.value=null,N.username=``,N.name=``,N.mobile=``,N.password=``,N.status=`active`,O.value=!0}function L(e){k.value=`edit`,j.value=e.id,N.username=e.username,N.name=e.name,N.mobile=e.mobile??``,N.password=``,N.status=e.status,O.value=!0}async function R(){if(await M.value?.validate().catch(()=>!1)){A.value=!0;try{let e={username:N.username.trim(),name:N.name.trim(),mobile:N.mobile?.trim()||null,status:N.status};N.password?.trim()&&(e.password=N.password.trim()),k.value===`create`?(await S({...e,password:(N.password??``).trim()}),g.success(`已创建`)):j.value&&(await C(j.value,e),g.success(`已保存`)),O.value=!1,await F(b.page)}catch(e){g.error(e instanceof Error?e.message:`保存失败`)}finally{A.value=!1}}}async function z(e){try{await _.confirm(`确定删除管理员「${e.name}」吗?`,`确认删除`,{type:`warning`}),await w(e.id),g.success(`已删除`),await F(b.page)}catch{}}return o(()=>void F(1)),(o,c)=>{let u=s(`el-input`),f=s(`el-button`),g=s(`el-table-column`),_=s(`el-tag`),x=s(`el-table`),S=s(`el-pagination`),C=s(`el-form-item`),w=s(`el-option`),j=s(`el-select`),B=s(`el-form`),V=s(`el-dialog`),H=r(`loading`);return m(),a(`div`,null,[c[18]||=i(`div`,{class:`page-head`},[i(`h2`,{class:`page-title`},`用户管理`),i(`p`,{class:`page-lead`},`维护可登录后台的管理员账号。`)],-1),i(`div`,T,[n(u,{modelValue:D.value,"onUpdate:modelValue":c[0]||=e=>D.value=e,placeholder:`搜索账号、姓名、手机号`,clearable:``,style:{"max-width":`280px`},onKeyup:c[1]||=p(e=>F(1),[`enter`])},null,8,[`modelValue`]),n(f,{type:`primary`,onClick:c[2]||=e=>F(1)},{default:h(()=>[...c[12]||=[t(`查询`,-1)]]),_:1}),n(f,{type:`primary`,onClick:I},{default:h(()=>[...c[13]||=[t(`新增管理员`,-1)]]),_:1})]),l((m(),e(x,{data:y.value,stripe:``,border:``,"empty-text":`暂无管理员`},{default:h(()=>[n(g,{prop:`username`,label:`账号`,"min-width":`140`}),n(g,{prop:`name`,label:`姓名`,width:`120`}),n(g,{prop:`mobile`,label:`手机号`,width:`140`},{default:h(({row:e})=>[t(d(e.mobile||`—`),1)]),_:1}),n(g,{label:`状态`,width:`100`},{default:h(({row:e})=>[n(_,{type:e.status===`active`?`success`:`info`,effect:`plain`},{default:h(()=>[t(d(e.status===`active`?`启用`:`停用`),1)]),_:2},1032,[`type`])]),_:1}),n(g,{prop:`last_login_at`,label:`最近登录`,"min-width":`170`},{default:h(({row:e})=>[t(d(e.last_login_at||`—`),1)]),_:1}),n(g,{label:`操作`,width:`160`,fixed:`right`,align:`right`},{default:h(({row:e})=>[n(f,{link:``,type:`primary`,size:`small`,onClick:t=>L(e)},{default:h(()=>[...c[14]||=[t(`编辑`,-1)]]),_:1},8,[`onClick`]),n(f,{link:``,type:`danger`,size:`small`,onClick:t=>z(e)},{default:h(()=>[...c[15]||=[t(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[H,v.value]]),i(`div`,E,[n(S,{"current-page":b.page,"onUpdate:currentPage":c[3]||=e=>b.page=e,"page-size":b.perPage,"onUpdate:pageSize":c[4]||=e=>b.perPage=e,background:``,layout:`total, prev, pager, next`,total:b.total,onCurrentChange:F},null,8,[`current-page`,`page-size`,`total`])]),n(V,{modelValue:O.value,"onUpdate:modelValue":c[11]||=e=>O.value=e,title:k.value===`create`?`新增管理员`:`编辑管理员`,width:`min(480px, 92vw)`,"destroy-on-close":``},{footer:h(()=>[n(f,{onClick:c[10]||=e=>O.value=!1},{default:h(()=>[...c[16]||=[t(`取消`,-1)]]),_:1}),n(f,{type:`primary`,loading:A.value,onClick:R},{default:h(()=>[...c[17]||=[t(`保存`,-1)]]),_:1},8,[`loading`])]),default:h(()=>[n(B,{ref_key:`formRef`,ref:M,model:N,rules:P,"label-position":`top`},{default:h(()=>[n(C,{label:`账号`,prop:`username`},{default:h(()=>[n(u,{modelValue:N.username,"onUpdate:modelValue":c[5]||=e=>N.username=e,modelModifiers:{trim:!0},autocomplete:`off`},null,8,[`modelValue`])]),_:1}),n(C,{label:`姓名`,prop:`name`},{default:h(()=>[n(u,{modelValue:N.name,"onUpdate:modelValue":c[6]||=e=>N.name=e,modelModifiers:{trim:!0}},null,8,[`modelValue`])]),_:1}),n(C,{label:`手机号`},{default:h(()=>[n(u,{modelValue:N.mobile,"onUpdate:modelValue":c[7]||=e=>N.mobile=e,modelModifiers:{trim:!0}},null,8,[`modelValue`])]),_:1}),n(C,{label:k.value===`create`?`密码`:`新密码(留空不改)`,prop:`password`},{default:h(()=>[n(u,{modelValue:N.password,"onUpdate:modelValue":c[8]||=e=>N.password=e,type:`password`,"show-password":``,autocomplete:`new-password`},null,8,[`modelValue`])]),_:1},8,[`label`]),n(C,{label:`状态`},{default:h(()=>[n(j,{modelValue:N.status,"onUpdate:modelValue":c[9]||=e=>N.status=e,style:{width:`100%`}},{default:h(()=>[n(w,{label:`启用`,value:`active`}),n(w,{label:`停用`,value:`disabled`})]),_:1},8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}}),[[`__scopeId`,`data-v-61edf8d8`]]);export{D as default}; |