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
7.4 KiB

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,r as x}from"./index-DXyzmFFT.js";import{n as S,t as C}from"./usePageLoad-COyWIJSl.js";import{r as w}from"./admin-list-DjncsyJC.js";import{r as T}from"./research-directions-67h0-CFT.js";import{p as E}from"./teachers-D_7Hxi7N.js";async function D(e){let{data:t}=await x.get(`/admin/v1/grid-members`,{params:e});return t.data}async function O(e){let{data:t}=await x.post(`/admin/v1/grid-members`,e);return t.data}async function k(e,t){let{data:n}=await x.put(`/admin/v1/grid-members/${e}`,t);return n}async function A(e,t){let{data:n}=await x.post(`/admin/v1/grid-members/${e}/password`,{password:t});return n}async function j(e){let{data:t}=await x.delete(`/admin/v1/grid-members/${e}`);return t}var M={class:`list-page`},N={class:`page-header`},P={class:`list-filter-bar`},F={class:`table-row-actions`},I={class:`list-pager`},L=n({__name:`index`,setup(n){let x=p(!1),L=p([]),R=p({current_page:1,per_page:20,total:0}),z=p(``),B=p(1),V=p([]),H=p([]),U=p(!1),W=p(null),G=p({username:``,password:``,real_name:``,mobile:``,email:``,status:1,university_ids:[],research_direction_ids:[]});async function K(){let[e,t]=await Promise.all([E({page:1,page_size:500,simple:1}),T()]);V.value=e.items.map(e=>({id:e.id,name:e.name})),H.value=t.map(e=>({id:e.id,name:e.name}))}async function q(){x.value=!0;try{let e=await D({page:B.value,page_size:R.value.per_page,keyword:z.value||void 0});L.value=e.items,R.value=e.meta}finally{x.value=!1}}function J(){W.value=null,G.value={username:``,password:``,real_name:``,mobile:``,email:``,status:1,university_ids:[],research_direction_ids:[]},U.value=!0}function Y(e){W.value=e,G.value={username:e.username,password:``,real_name:e.real_name||``,mobile:e.mobile||``,email:e.email||``,status:e.status,university_ids:e.universities?.map(e=>e.id)||[],research_direction_ids:e.research_directions?.map(e=>e.id)||[]},U.value=!0}async function X(){if(!W.value&&!G.value.password){b.warning(`请设置初始密码`);return}if(!G.value.university_ids.length){b.warning(`请至少选择一个负责高校`);return}if(!G.value.research_direction_ids.length){b.warning(`请至少选择一个研究方向`);return}let e={real_name:G.value.real_name||null,mobile:G.value.mobile||null,email:G.value.email||null,status:G.value.status,university_ids:G.value.university_ids,research_direction_ids:G.value.research_direction_ids};W.value?(await k(W.value.id,e),G.value.password&&await A(W.value.id,G.value.password)):await O({username:G.value.username,password:G.value.password,...e}),b.success(`已保存`),U.value=!1,await q()}async function Z(e){await y.confirm(`确定删除网格员「${e.username}」?`,`提示`,{type:`warning`}),await j(e.id),b.success(`已删除`),await q()}function Q(){B.value=1,q()}function $(){z.value=``,B.value=1,q()}return C(async()=>{await K(),await q()}),(n,p)=>{let y=l(`el-button`),b=l(`el-input`),C=l(`el-table-column`),T=l(`el-tag`),E=l(`el-table`),D=l(`el-pagination`),O=l(`el-card`),k=l(`el-form-item`),A=l(`el-switch`),j=l(`el-option`),K=l(`el-select`),ee=l(`el-form`),te=l(`el-dialog`),ne=s(`loading`);return i(),e(m,null,[d(`div`,M,[d(`div`,N,[r(S),r(y,{type:`primary`,size:`small`,class:`btn-create`,onClick:J},{default:u(()=>[...p[12]||=[o(`新增网格员`,-1)]]),_:1})]),r(O,{shadow:`never`,class:`admin-list-card`},{default:u(()=>[d(`div`,P,[r(b,{modelValue:z.value,"onUpdate:modelValue":p[0]||=e=>z.value=e,placeholder:`账号/姓名/手机`,clearable:``,class:`filter-search`,onKeyup:f(Q,[`enter`])},null,8,[`modelValue`]),r(y,{type:`primary`,onClick:Q},{default:u(()=>[...p[13]||=[o(`搜索`,-1)]]),_:1}),r(y,{onClick:$},{default:u(()=>[...p[14]||=[o(`重置`,-1)]]),_:1})]),h((i(),v(E,{data:L.value,"row-key":`id`},{default:u(()=>[r(C,{prop:`username`,label:`账号`,width:`130`}),r(C,{prop:`real_name`,label:`姓名`,width:`110`}),r(C,{label:`负责高校`,"min-width":`180`},{default:u(({row:t})=>[(i(!0),e(m,null,g(t.universities,e=>(i(),v(T,{key:e.id,size:`small`,style:{margin:`2px 4px 2px 0`}},{default:u(()=>[o(_(e.name),1)]),_:2},1024))),128))]),_:1}),r(C,{label:`研究方向`,"min-width":`180`},{default:u(({row:t})=>[(i(!0),e(m,null,g(t.research_directions,e=>(i(),v(T,{key:e.id,size:`small`,type:`info`,style:{margin:`2px 4px 2px 0`}},{default:u(()=>[o(_(e.name),1)]),_:2},1024))),128))]),_:1}),r(C,{label:`状态`,width:`90`,align:`center`},{default:u(({row:e})=>[d(`span`,{class:c([`status-badge`,t(w)(e.status)])},_(e.status===1?`启用`:`停用`),3)]),_:1}),r(C,{label:`操作`,width:`160`,fixed:`right`},{default:u(({row:e})=>[d(`div`,F,[r(y,{class:`btn-action-primary`,onClick:t=>Y(e)},{default:u(()=>[...p[15]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),r(y,{class:`btn-action-brand`,onClick:t=>Z(e)},{default:u(()=>[...p[16]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])])]),_:1})]),_:1},8,[`data`])),[[ne,x.value]]),d(`div`,I,[r(D,{"current-page":B.value,"onUpdate:currentPage":p[1]||=e=>B.value=e,layout:`total, prev, pager, next`,total:R.value.total,"page-size":R.value.per_page,onCurrentChange:q},null,8,[`current-page`,`total`,`page-size`])])]),_:1})]),r(te,{modelValue:U.value,"onUpdate:modelValue":p[11]||=e=>U.value=e,title:W.value?`编辑网格员`:`新增网格员`,width:`560px`},{footer:u(()=>[r(y,{onClick:p[10]||=e=>U.value=!1},{default:u(()=>[...p[17]||=[o(`取消`,-1)]]),_:1}),r(y,{type:`primary`,onClick:X},{default:u(()=>[...p[18]||=[o(`保存`,-1)]]),_:1})]),default:u(()=>[r(ee,{"label-width":`100px`},{default:u(()=>[W.value?a(``,!0):(i(),v(k,{key:0,label:`账号`},{default:u(()=>[r(b,{modelValue:G.value.username,"onUpdate:modelValue":p[2]||=e=>G.value.username=e},null,8,[`modelValue`])]),_:1})),r(k,{label:W.value?`重置密码`:`初始密码`},{default:u(()=>[r(b,{modelValue:G.value.password,"onUpdate:modelValue":p[3]||=e=>G.value.password=e,type:`password`,"show-password":``,placeholder:W.value?`可留空`:``},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),r(k,{label:`姓名`},{default:u(()=>[r(b,{modelValue:G.value.real_name,"onUpdate:modelValue":p[4]||=e=>G.value.real_name=e},null,8,[`modelValue`])]),_:1}),r(k,{label:`手机`},{default:u(()=>[r(b,{modelValue:G.value.mobile,"onUpdate:modelValue":p[5]||=e=>G.value.mobile=e},null,8,[`modelValue`])]),_:1}),r(k,{label:`邮箱`},{default:u(()=>[r(b,{modelValue:G.value.email,"onUpdate:modelValue":p[6]||=e=>G.value.email=e},null,8,[`modelValue`])]),_:1}),r(k,{label:`状态`},{default:u(()=>[r(A,{modelValue:G.value.status,"onUpdate:modelValue":p[7]||=e=>G.value.status=e,"active-value":1,"inactive-value":0},null,8,[`modelValue`])]),_:1}),r(k,{label:`负责高校`},{default:u(()=>[r(K,{modelValue:G.value.university_ids,"onUpdate:modelValue":p[8]||=e=>G.value.university_ids=e,multiple:``,filterable:``,style:{width:`100%`},placeholder:`选择高校`},{default:u(()=>[(i(!0),e(m,null,g(V.value,e=>(i(),v(j,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),r(k,{label:`研究方向`},{default:u(()=>[r(K,{modelValue:G.value.research_direction_ids,"onUpdate:modelValue":p[9]||=e=>G.value.research_direction_ids=e,multiple:``,filterable:``,style:{width:`100%`},placeholder:`选择研究方向`},{default:u(()=>[(i(!0),e(m,null,g(H.value,e=>(i(),v(j,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1})]),_:1})]),_:1},8,[`modelValue`,`title`])],64)}}});export{L as default};