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

2 weeks 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 ee,Y as s,at as c,b as l,d as te,ht as u,m as d,ot as ne,q as f,rt as p,tn as m,x as h,y as g}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{l as _,r as v,s as y}from"./index-CPrkFf57.js";import{n as re,t as b}from"./usePageLoad-B1L6ImD-.js";import{a as x}from"./dict-D-xskQUn.js";import{c as S,p as C}from"./teachers-BWvhNkqR.js";import{n as ie,o as w}from"./teacherStar-CbiOJu8v.js";import{r as T}from"./users-BIXJy9ht.js";import{r as E}from"./grid-members-DcRFykJ_.js";async function D(e){let{data:t}=await v.get(`/admin/v1/miniapp-users`,{params:e});return t.data}async function O(e){let{data:t}=await v.get(`/admin/v1/miniapp-users/${e}`);return t.data}async function k(e,t,n){let{data:r}=await v.patch(`/admin/v1/miniapp-users/${e}/bind-staff`,{admin_user_id:t,identity_type:n??null});return r.data}async function A(e,t){let{data:n}=await v.post(`/admin/v1/miniapp-users/${e}/convert-to-teacher`,t);return n.data}var ae={class:`list-page students-page`},oe={class:`page-header`},se={class:`list-filter-bar`},ce={key:1,class:`text-muted`},le={key:1,class:`text-muted`},ue={key:0,class:`status-badge status-published`},de={key:1,class:`status-badge status-unpublished`},fe={class:`table-row-actions`},pe={class:`list-pager`},me={key:0,class:`follow-teacher-summary`},he={key:0},ge={key:0,class:`follow-teacher-summary`},_e={key:0},ve={key:1},ye={key:2},be={class:`star-preview`},j=y(n({__name:`index`,setup(n){let v=u(!1),y=u([]),j=u({current_page:1,per_page:20,total:0}),M=u(1),N=u(``),P=u(``),F=u(``),I=u([]),L=u([]),R=u([]),z=u([]),B=u(!1),V=u(null),xe=u([]),H=u(!1),U=u(null),W=u(),G=u(),K=u(!1),q=u(!1),J=u(null),Y=u(!1),X=u({name:``,university_id:void 0,city:``,title:``,research_direction_ids:[],phone:``,email:``,star_level_dict_item_id:void 0,status_dict_item_id:void 0,next_follow_date:``}),Z=g(()=>I.value.find(e=>e.value===`pending`)?.id);function Se(e){return e?.length?e.join(``):``}async function Ce(){let[e,t]=await Promise.all([T({page:1,page_size:200,status:1}),E({page:1,page_size:200,status:1})]),n=[];for(let t of e.items){let e=t.roles?.length?t.roles.map(e=>e.name).join(``):`后台账号`;n.push({id:t.id,label:`${t.real_name||t.username}${e}`,role:`admin`})}for(let e of t.items)n.some(t=>t.id===e.id)||n.push({id:e.id,label:`${e.real_name||e.username}(网格员)`,role:`grid`});xe.value=n}async function we(){let[e,t,n,r]=await Promise.all([x(`teacher_level`),x(`teacher_status`),S(),C({page:1,page_size:500})]);I.value=e.items,L.value=t.items,R.value=n.research_directions,z.value=r.items,await Ce()}async function Q(){v.value=!0;try{let e={page:M.value,page_size:j.value.per_page};N.value&&(e.keyword=N.value),P.value!==``&&(e.converted=P.value),F.value!==``&&(e.identity_type=F.value);let t=await D(e);y.value=t.items,j.value=t.meta}finally{v.value=!1}}function Te(){N.value=``,P.value=``,F.value=``,M.value=1,Q()}function Ee(){M.value=1,Q()}async function De(e){V.value=await O(e.id),B.value=!0}function Oe(e){U.value=e,W.value=e.admin_user_id??void 0,G.value=e.identity_type??void 0,H.value=!0}async function ke(){if(U.value){K.value=!0;try{await k(U.value.id,W.value??null,G.value??null),_.success(`已保存`),H.value=!1,await Q()}finally{K.value=!1}}}function Ae(e){if(e.teacher_id){_.warning(`该学员已转入老师库`);return}J.value=e,X.value={name:e.name||``,university_id:void 0,city:``,title:e.job_title||``,research_direction_ids:[...e.research_direction_ids||[]],phone:e.mobile||``,email:``,star_level_dict_item_id:Z.value,status_dict_item_id:L.value.find(e=>e.value===`active`)?.id,next_follow_date:``},q.value=!0}function je(){let e=I.value.find(e=>e.id===X.value.star_level_dict_item_id);X.value.next_follow_date=w(e?.value)||``}function $(e){if(!e)return;let t=z.value.find(t=>t.id===e);t?.city&&!X.value.city&&(X.value.city=t.city)}p(()=>X.value.university_id,e=>$(e));async function Me(){if(!J.value)return;let e=X.value;if(!e.name.trim()){_.warning(`请填写姓名`);return}if(!e.university_id){_.warning(`请选择高校`);return}if(!e.city.trim()||!e.