|
|
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-BKGTVidA.js";import{n as re,t as b}from"./usePageLoad-D9c6HmVf.js";import{a as x}from"./dict-yXQAO4jv.js";import{c as S,p as C}from"./teachers-DxDHDTxq.js";import{n as ie,o as w}from"./teacherStar-DhP_EdY6.js";import{r as T}from"./users-DHe1cFsc.js";import{r as E}from"./grid-members-cUs_qL25.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){let{data:n}=await v.patch(`/admin/v1/miniapp-users/${e}/bind-staff`,{admin_user_id:t});return n.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:0,class:`status-badge status-published`},ue={key:1,class:`status-badge status-unpublished`},de={class:`table-row-actions`},fe={class:`list-pager`},pe={key:0,class:`follow-teacher-summary`},me={key:0},he={key:0,class:`follow-teacher-summary`},ge={key:0},_e={key:1},ve={key:2},ye={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(!1),B=u(null),V=u([]),H=u(!1),U=u(null),W=u(),G=u(!1),K=u(!1),q=u(null),J=u(!1),Y=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:``}),X=g(()=>F.value.find(e=>e.value===`pending`)?.id);function Z(e){return e?.length?e.join(`、`):`—`}async function be(){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)n.push({id:t.id,label:`${t.real_name||t.username}(管理员)`,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`});V.value=n}async function xe(){let[e,t,n,r]=await Promise.all([x(`teacher_level`),x(`teacher_status`),S(),C({page:1,page_size:500})]);F.value=e.items,I.value=t.items,L.value=n.research_directions,R.value=r.items,await be()}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);let t=await D(e);y.value=t.items,j.value=t.meta}finally{v.value=!1}}function Se(){N.value=``,P.value=``,M.value=1,Q()}function Ce(){M.value=1,Q()}async function we(e){B.value=await O(e.id),z.value=!0}function Te(e){U.value=e,W.value=e.admin_user_id??void 0,H.value=!0}async function Ee(){if(U.value){G.value=!0;try{await k(U.value.id,W.value??null),_.success(W.value?`已绑定后台账号`:`已解除绑定`),H.value=!1,await Q()}finally{G.value=!1}}}function De(e){if(e.teacher_id){_.warning(`该学员已转入老师库`);return}q.value=e,Y.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:X.value,status_dict_item_id:I.value.find(e=>e.value===`active`)?.id,next_follow_date:``},K.value=!0}function Oe(){let e=F.value.find(e=>e.id===Y.value.star_level_dict_item_id);Y.value.next_follow_date=w(e?.value)||``}function $(e){if(!e)return;let t=R.value.find(t=>t.id===e);t?.city&&!Y.value.city&&(Y.value.city=t.city)}p(()=>Y.value.university_id,e=>$(e));async function ke(){if(!q.value)return;let e=Y.value;if(!e.name.trim()){_.warning(`请填写姓名`);return}if(!e.university_id){_.warning(`请选择高校`);return}if(!e.city.trim()||!e.title.trim()){_.warning(`请填写城市与职称`);return}if(!e.research_direction_ids.length){_.warning(`请选择研究方向`);return}if(!e.status_dict_item_id){_.warning(`请选择状态`);return}J.value=!0;try{let t=await A(q.value.id,{name:e.name.trim(),university_id:e.university_id,city:e.city.trim(),title:e.title.trim(),research_direction_ids:e.research_direction_ids,phone:e.phone||null,email:e.email||null,star_level_dict_item_id:e.star_level_dict_item_id??null,status_dict_item_id:e.status_dict_item_id,next_follow_date:e.next_follow_date||null,recalc_next_follow_date:!0});_.success(`已转入老师库(老师 ID:${t.teacher_id})`),K.value=!1,await Q()}finally{J.value=!1}}return b(async()=>{await xe(),await Q()}),(n,u)=>{let p=s(`el-input`),g=s(`el-option`),_=s(`el-select`),b=s(`el-button`),x=s(`el-table-column`),S=s(`el-tag`),C=s(`el-table`),w=s(`el-pagination`),T=s(`el-card`),E=s(`el-descriptions-item`),D=s(`el-descriptions`),O=s(`el-dialog`),k=s(`el-form-item`),A=s(`el-form`),X=s(`el-col`),be=s(`el-date-picker`),xe=s(`el-row`),$=ee(`loading`);return i(),e(`div`,ae,[l(`div`,oe,[r(re)]),r(T,{shadow:`never`,class:`admin-list-card`},{default:c(()=>[l(`div`,se,[r(p,{modelValue:N.value,"onUpdate:modelValue":u[0]||=e=>N.value=e,class:`filter-search`,placeholder:`搜索姓名、手机号、公司…`,clearable:``,onKeyup:te(Ce,[`enter`])},null,8,[`modelValue`]),r(_,{modelValue:P.value,"onUpdate:modelValue":u[1]||=e=>P.value=e,placeholder:`转入状态`,clearable:``,class:`filter-select-wide`},{default:c(()=>[r(g,{label:`未转入老师库`,value:`0`}),r(g,{label:`已转入老师库`,value:`1`})]),_:1},8,[`modelValue`]),r(b,{type:`primary`,class:`btn-create`,onClick:Ce},{default:c(()=>[...u[23]||=[o(`搜索`,-1)]]),_:1}),r(b,{onClick:Se},{default:c(()=>[...u[24]||=[o(`重置`,-1)]]),_:1})]),ne((i(),h(C,{data:y.value,"row-key":`id`},{default:c(()=>[r(x,{prop:`name`,label:`姓名`,width:`100`}),r(x,{prop:`mobile`,label:`手机号`,width:`120`}),r(x,{prop:`company`,label:`公司`,"min-width":`140`,"show-overflow-tooltip":``}),r(x,{label:`研究方向`,"min-width":`160`,"show-overflow-tooltip":``},{default:c(({row:e})=>[o(m(e.research_direction||`—`),1)]),_:1}),r(x,{label:`报名课程`,"min-width":`160`,"show-overflow-tooltip":``},{default:c(({row:e})=>[o(m(Z(e.course_titles)),1)]),_:1}),r(x,{label:`报名活动`,"min-width":`160`,"show-overflow-tooltip":``},{default:c(({row:e})=>[o(m(Z(e.activity_titles)),1)]),_:1}),r(x,{label:`身份绑定`,width:`120`,align:`center`},{default:c(({row:t})=>[t.staff_role_label?(i(),h(S,{key:0,type:`warning`,size:`small`},{default:c(()=>[o(m(t.staff_role_label),1)]),_:2},1024)):(i(),e(`span`,ce,`—`))]),_:1}),r(x,{label:`转入状态`,width:`110`,align:`center`},{default:c(({row:t})=>[t.teacher_id?(i(),e(`span`,le,`已转入`)):(i(),e(`span`,ue,`未转入`))]),_:1}),r(x,{label:`操作`,width:`260`,fixed:`right`},{default:c(({row:e})=>[l(`div`,de,[r(b,{size:`small`,class:`btn-action-secondary table-inline-btn`,onClick:t=>we(e)},{default:c(()=>[...u[25]||=[o(` 详情 `,-1)]]),_:1},8,[`onClick`]),r(b,{size:`small`,class:`btn-action-secondary table-inline-btn`,onClick:t=>Te(e)},{default:c(()=>[...u[26]||=[o(` 绑定身份 `,-1)]]),_:1},8,[`onClick`]),e.teacher_id?(i(),h(b,{key:1,size:`small`,class:`btn-action-secondary table-inline-btn`,disabled:``},{default:c(()=>[...u[28]||=[o(` 已转入 `,-1)]]),_:1})):(i(),h(b,{key:0,size:`small`,class:`btn-action-brand table-inline-btn`,onClick:t=>De(e)},{default:c(()=>[...u[27]||=[o(` 转入老师库 `,-1)]]),_:1},8,[`onClick`]))])]),_:1})]),_:1},8,[`data`])),[[$,v.value]]),l(`div`,fe,[r(w,{"current-page":M.value,"onUpdate:currentPage":u[2]||=e=>M.value=e,"page-size":j.value.per_page,total:j.value.total,layout:`total, prev, pager, next`,onCurrentChange:Q},null,8,[`current-page`,`page-size`,`total`])])]),_:1}),r(O,{modelValue:z.value,"onUpdate:modelValue":u[5]||=e=>z.value=e,title:`学员详情`,width:`720px`,"destroy-on-close":``},{footer:c(()=>[r(b,{onClick:u[3]||=e=>z.value=!1},{default:c(()=>[...u[31]||=[o(`关闭`,-1)]]),_:1}),B.value&&!B.value.teacher_id?(i(),h(b,{key:0,type:`primary`,class:`btn-create`,onClick:u[4]||=e=>{z.value=!1,De(B.value)}},{default:c(()=>[...u[32]||=[o(` 转入老师库 `,-1)]]),_:1})):a(``,!0)]),default:c(()=>[B.value?(i(),e(d,{key:0},[r(D,{column:2,border:``,size:`small`},{default:c(()=>[r(E,{label:`姓名`},{default:c(()=>[o(m(B.value.name),1)]),_:1}),r(E,{label:`手机号`},{default:c(()=>[o(m(B.value.mobile||`—`),1)]),_:1}),r(E,{label:`公司`,span:2},{default:c(()=>[o(m(B.value.company||`—`),1)]),_:1}),r(E,{label:`职务`},{default:c(()=>[o(m(B.value.job_title||`—`),1)]),_:1}),r(E,{label:`研究方向`},{default:c(()=>[o(m(B.value.research_direction||`—`),1)]),_:1}),r(E,{label:`微信昵称`},{default:c(()=>[o(m(B.value.nickname||`—`),1)]),_:1}),r(E,{label:`转入老师`},{default:c(()=>[o(m(B.value.teacher_name?`${B.value.teacher_name}(ID ${B.value.teacher_id})`:`未转入`),1)]),_:1}),r(E,{label:`身份绑定`},{default:c(()=>[o(m(B.value.staff_role_label?`${B.value.staff_role_label}(${B.value.admin_user_name||`—`})`:`未绑定`),1)]),_:1})]),_:1}),u[29]||=l(`h3`,{class:`sub-title`},`报名课程`,-1),r(C,{data:B.value.courses,size:`small`,"empty-text":`暂无报名`},{default:c(()=>[r(x,{prop:`title`,label:`课程`,"min-width":`180`}),r(x,{prop:`signed_up_at`,label:`报名时间`,width:`110`}),r(x,{prop:`company`,label:`报名时公司`,width:`140`,"show-overflow-tooltip":``})]),_:1},8,[`data`]),u[30]||=l(`h3`,{class:`sub-title`},`报名活动`,-1),r(C,{data:B.value.activities,size:`small`,"empty-text":`暂无报名`},{default:c(()=>[r(x,{prop:`title`,label:`活动`,"min-width":`180`}),r(x,{prop:`signed_up_at`,label:`报名时间`,width:`110`}),r(x,{prop:`company`,label:`报名时公司`,width:`140`,"show-overflow-tooltip":``})]),_:1},8,[`data`])],64)):a(``,!0)]),_:1},8,[`modelValue`]),r(O,{modelValue:H.value,"onUpdate:modelValue":u[8]||=e=>H.value=e,title:`绑定管理员/网格员`,width:`520px`,"destroy-on-close":``,onClosed:u[9]||=e=>U.value=null},{footer:c(()=>[r(b,{onClick:u[7]||=e=>H.value=!1},{default:c(()=>[...u[33]||=[o(`取消`,-1)]]),_:1}),r(b,{type:`primary`,class:`btn-create`,loading:G.value,onClick:Ee},{default:c(()=>[...u[34]||=[o(`保存`,-1)]]),_:1},8,[`loading`])]),default:c(()=>[U.value?(i(),e(`div`,pe,[o(` 学员:`+m(U.value.name)+` `,1),U.value.mobile?(i(),e(`span`,me,` · `+m(U.value.mobile),1)):a(``,!0)])):a(``,!0),r(A,{"label-position":`top`,style:{"margin-top":`12px`}},{default:c(()=>[r(k,{label:`绑定后台账号`},{default:c(()=>[r(_,{modelValue:W.value,"onUpdate:modelValue":u[6]||=e=>W.value=e,clearable:``,filterable:``,placeholder:`选择管理员或网格员`,style:{width:`100%`}},{default:c(()=>[(i(!0),e(d,null,f(V.value,e=>(i(),h(g,{key:e.id,label:e.label,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),r(O,{modelValue:K.value,"onUpdate:modelValue":u[21]||=e=>K.value=e,title:`转入老师库`,width:`960px`,"destroy-on-close":``,onClosed:u[22]||=e=>q.value=null},{footer:c(()=>[r(b,{onClick:u[20]||=e=>K.value=!1},{default:c(()=>[...u[35]||=[o(`取消`,-1)]]),_:1}),r(b,{type:`primary`,class:`btn-create`,loading:J.value,onClick:ke},{default:c(()=>[...u[36]||=[o(` 确认转入老师库 `,-1)]]),_:1},8,[`loading`])]),default:c(()=>[q.value?(i(),e(`div`,he,[o(` 学员:`+m(q.value.name)+` `,1),q.value.mobile?(i(),e(`span`,ge,` · `+m(q.value.mobile),1)):a(``,!0),q.value.company?(i(),e(`span`,_e,` · `+m(q.value.company),1)):a(``,!0),q.value.research_direction?(i(),e(`span`,ve,` · 研究方向:`+m(q.value.research_direction),1)):a(``,!0)])):a(``,!0),r(A,{"label-position":`top`,class:`form-small`,style:{"margin-top":`12px`}},{default:c(()=>[r(xe,{gutter:12},{default:c(()=>[r(X,{xs:24,md:4},{default:c(()=>[r(k,{label:`姓名`,required:``},{default:c(()=>[r(p,{modelValue:Y.value.name,"onUpdate:modelValue":u[10]||=e=>Y.value.name=e},null,8,[`modelValue`])]),_:1})]),_:1}),r(X,{xs:24,md:8},{default:c(()=>[r(k,{label:`高校`,required:``},{default:c(()=>[r(_,{modelValue:Y.value.university_id,"onUpdate:modelValue":u[11]||=e=>Y.value.university_id=e,filterable:``,placeholder:`选择高校`,style:{width:`100%`}},{default:c(()=>[(i(!0),e(d,null,f(R.value,e=>(i(),h(g,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1})]),_:1}),r(X,{xs:24,md:4},{default:c(()=>[r(k,{label:`城市`,required:``},{default:c(()=>[r(p,{modelValue:Y.value.city,"onUpdate:modelValue":u[12]||=e=>Y.value.city=e},null,8,[`modelValue`])]),_:1})]),_:1}),r(X,{xs:24,md:8},{default:c(()=>[r(k,{label:`职称`,required:``},{default:c(()=>[r(p,{modelValue:Y.value.title,"onUpdate:modelValue":u[13]||=e=>Y.value.title=e},null,8,[`modelValue`])]),_:1})]),_:1}),r(X,{xs:24,md:8},{default:c(()=>[r(k,{label:`研究方向`,required:``},{default:c(()=>[r(_,{modelValue:Y.value.research_direction_ids,"onUpdate:modelValue":u[14]||=e=>Y.value.research_direction_ids=e,multiple:``,filterable:``,"collapse-tags":``,"collapse-tags-tooltip":``,placeholder:`选择研究方向(可多选)`,style:{width:`100%`}},{default:c(()=>[(i(!0),e(d,null,f(L.value,e=>(i(),h(g,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1})]),_:1}),r(X,{xs:24,md:6},{default:c(()=>[r(k,{label:`电话`},{default:c(()=>[r(p,{modelValue:Y.value.phone,"onUpdate:modelValue":u[15]||=e=>Y.value.phone=e},null,8,[`modelValue`])]),_:1})]),_:1}),r(X,{xs:24,md:6},{default:c(()=>[r(k,{label:`邮箱`},{default:c(()=>[r(p,{modelValue:Y.value.email,"onUpdate:modelValue":u[16]||=e=>Y.value.email=e,type:`email`},null,8,[`modelValue`])]),_:1})]),_:1}),r(X,{xs:24,md:4},{default:c(()=>[r(k,{label:`星级`},{default:c(()=>[r(_,{modelValue:Y.value.star_level_dict_item_id,"onUpdate:modelValue":u[17]||=e=>Y.value.star_level_dict_item_id=e,style:{width:`100%`},onChange:Oe},{default:c(()=>[(i(!0),e(d,null,f(F.value,e=>(i(),h(g,{key:e.id,label:e.label,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`]),l(`span`,ye,m(t(ie)(F.value.find(e=>e.id===Y.value.star_level_dict_item_id)?.value,F.value.find(e=>e.id===Y.value.star_level_dict_item_id)?.label)),1)]),_:1})]),_:1}),r(X,{xs:24,md:6},{default:c(()=>[r(k,{label:`状态`,required:``},{default:c(()=>[r(_,{modelValue:Y.value.status_dict_item_id,"onUpdate:modelValue":u[18]||=e=>Y.value.status_dict_item_id=e,placeholder:`请选择状态`,style:{width:`100%`}},{default:c(()=>[(i(!0),e(d,null,f(I.value,e=>(i(),h(g,{key:e.id,label:e.label,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1})]),_:1}),r(X,{xs:24,md:6},{default:c(()=>[r(k,{label:`下次跟进日期`},{default:c(()=>[r(be,{modelValue:Y.value.next_follow_date,"onUpdate:modelValue":u[19]||=e=>Y.value.next_follow_date=e,type:`date`,"value-format":`YYYY-MM-DD`,style:{width:`100%`}},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])])}}}),[[`__scopeId`,`data-v-db5a27f0`]]);export{j as default}; |