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
|
1 month ago
|
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
|