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.2 KiB

2 weeks ago
import{C as e,Ct as t,D as n,E as r,G as i,I as a,Qt as ee,S as o,T as s,X as te,Y as c,at as l,b as u,ht as d,m as f,ot as p,q as m,rt as h,tn as g,y as _,z as ne}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{C as v,S as re,_ as y,b as ie,s as b,u as ae,x as oe}from"./index-CgtDRRqt.js";import{t as se}from"./usePageLoad-DFTLo_Lv.js";import{u as ce}from"./assets-26J9lCWW.js";import{t as le}from"./TeacherDetailDialog-DZUNVQ0B.js";import{n as ue}from"./teacherStar-By0_CBs7.js";import{a as de,c as fe,n as pe,o as me,p as he,r as ge,s as _e,u as x}from"./tiandituMap-B-qnaCqR.js";/* empty css */var S={class:`dashboard-page executive-dashboard`},C={key:0,class:`radar-top-grid`},w={class:`radar-kpi`},T={class:`kpi-icon`},E={class:`radar-kpi`},D={class:`kpi-icon`},O={class:`radar-kpi`},k={class:`kpi-icon`},A={class:`radar-kpi`},j={class:`kpi-icon`},M={class:`radar-map-card`},N={class:`radar-main`},P={class:`radar-map-container-wrap`},F={key:0,class:`radar-map-placeholder`},I={key:1,class:`radar-map-placeholder`},ve={class:`radar-side`},ye={class:`radar-side-head`},be={key:0,class:`radar-side-count`},xe={class:`radar-side-body`},Se={key:0,class:`radar-empty-panel`},Ce={class:`radar-teacher-avatar`},we=[`onClick`],L={class:`stars`},Te={class:`radar-empty-panel`},Ee={key:0,class:`radar-view-summary`},De={class:`radar-bottom-grid`},Oe={class:`radar-info-card`},ke={class:`radar-school-list`},Ae={class:`radar-info-card`},je={class:`radar-field-list`},Me={class:`radar-field-bar`},Ne={key:0,class:`empty-hint`},R=b(n({__name:`index`,setup(n){let b=d(!1),R=d(!1),z=d(``),B=d(null),V=d(null),H=d(!1),U=d(null),W=d(null),G=null,K=[],q=null,J=_(()=>B.value?.summary),Pe=_(()=>B.value?.quality||[]),Y=_(()=>B.value?.research_fields||[]),Fe=_(()=>Math.max(...Y.value.map(e=>e.percent),1));function Ie(e,t){return e?e.length>t?`${e.slice(0,t)}`:e:``}function Le(e){return ue(e.star_level_item?.value,e.star_level_item?.label)}function X(e){U.value=e,H.value=!0}function Re(e){V.value=e,ze()}function ze(){let e=V.value?.id??null;for(let{overlay:t,schoolId:n}of K)t.setActive?.(n===e)}async function Z(){b.value=!0;try{B.value=await ce(),V.value&&=B.value.schools.find(e=>e.id===V.value?.id)||null,await a(),await Q()}finally{b.value=!1}}async function Q(){if(!W.value)return;if(z.value=``,!fe()){z.value=`未配置天地图 KeyVITE_TIANDITU_TK`;return}let e=B.value?.schools||[];if(!e.length){$();return}R.value=!0;try{let t=await x();$();let n=W.value;n.innerHTML=``,G=new t.Map(n),me(G),K=[];let r=V.value?.id??null;for(let n of e){let e=_e(t,{name:n.name,longitude:n.longitude,latitude:n.latitude},r===n.id);G.addOverLay(e),e.addEventListener(`click`,()=>Re(n)),K.push({overlay:e,schoolId:n.id})}de(G,t),pe(G),q?.(),q=ge(G,t),he(G)}catch(e){let t=e instanceof Error?e.message:`地图初始化失败`;z.value=t.includes(`脚本`)||t.includes(`SDK`)?`${t}。若 Key 已配置域名白名单,请使用 https://slake.ali251.langye.net 访问(本地开发可在 hosts 绑定该域名后访问 http://slake.ali251.langye.net:5173`:t,$()}finally{R.value=!1}}function $(){if(q?.(),q=null,G){for(let{overlay:e}of K)try{G.removeOverLay(e)}catch{}G.clearOverLays?.(),G.destroy?.()}K=[],G=null}return h(()=>B.value?.schools.length,()=>{B.value&&!b.value&&a(()=>Q())}),se(Z),ne($),(n,a)=>{let d=c(`el-icon`),h=c(`el-button`),_=te(`loading`);return p((i(),e(`div`,S,[a[18]||=u(`div`,{class:`page-head`},[u(`h1`,{class:`radar-page-title`},`高校雷达网地图`)],-1),J.value?(i(),e(`div`,C,[u(`div`,w,[u(`span`,T,[r(d,null,{default:l(()=>[r(t(ie))]),_:1})]),a[1]||=u(`span`,null,[s(`已覆盖高校`),u(`em`,null,`已配置经纬度的高校`)],-1),u(`strong`,null,g(J.value.covered_schools),1)]),u(`div`,E,[u(`span`,D,[r(d,null,{default:l(()=>[r(t(v))]),_:1})]),a[2]||=u(`span`,null,[s(`关联老师`),u(`em`,null,`地图点位老师总数`)],-1),u(`strong`,null,g(J.value.map_teachers),1)]),u(`div`,O,[u(`span`,k,[r(d,null,{default:l(()=>[r(t(re))]),_:1})]),a[3]||=u(`span`,null,[s(`五星老师`),u(`em`,null,`高价值合作对象`)],-1),u(`strong`,null,g(