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