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

3 weeks ago
import{C as e,Ct as t,D as n,E as r,G as i,I as a,Qt as o,S as s,T as c,X as ee,Xt as te,Y as l,at as u,b as d,ht as f,m as p,ot as m,q as h,rt as g,tn as _,y as v,z as ne}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{C as y,S as re,_ as b,b as ie,s as x,u as ae,x as oe}from"./index-BAoVGmph.js";import{t as se}from"./usePageLoad-DFTLo_Lv.js";import{u as ce}from"./assets-BY-4cpKy.js";import{t as le}from"./TeacherDetailDialog-loCVWRRo.js";import{n as ue}from"./teacherStar-By0_CBs7.js";import{a as de,d as fe,i as pe,o as me,r as he,s as ge}from"./tiandituMap-BbTEN0Ou.js";/* empty css */var _e={class:`dashboard-page executive-dashboard`},ve={key:0,class:`radar-top-grid`},ye={class:`radar-kpi`},be={class:`kpi-icon`},S={class:`radar-kpi`},C={class:`kpi-icon`},w={class:`radar-kpi`},T={class:`kpi-icon`},E={class:`radar-kpi`},D={class:`kpi-icon`},O={class:`radar-map-card`},k={class:`radar-main`},A={class:`radar-map-container-wrap`},j={key:0,class:`radar-map-placeholder`},M={key:1,class:`radar-map-placeholder`},N={key:2,class:`radar-map-stage`},xe={class:`radar-map-marker-layer`,"aria-hidden":`true`},Se={class:`slake-map-school-label`},Ce={class:`radar-side`},we={class:`radar-side-head`},Te={key:0,class:`radar-side-count`},Ee={class:`radar-side-body`},De={key:0,class:`radar-empty-panel`},Oe={class:`radar-teacher-avatar`},ke=[`onClick`],Ae={class:`stars`},je={class:`radar-empty-panel`},Me={key:0,class:`radar-view-summary`},Ne={class:`radar-bottom-grid`},Pe={class:`radar-info-card`},Fe={class:`radar-school-list`},Ie={class:`radar-info-card`},Le={class:`radar-field-list`},Re={class:`radar-field-bar`},ze={key:0,class:`empty-hint`},P=x(n({__name:`index`,setup(n){let x=f(!1),P=f(!1),F=f(``),I=f(null),L=f(null),R=f(!1),z=f(null),B=f(null),V=null,H=0,U=f([]),W=v(()=>I.value?.summary),Be=v(()=>I.value?.quality||[]),G=v(()=>I.value?.research_fields||[]),Ve=v(()=>Math.max(...G.value.map(e=>e.percent),1));function He(e,t){return e?e.length>t?`${e.slice(0,t)}`:e:``}function Ue(e){return ue(e.star_level_item?.value,e.star_level_item?.label)}function K(e){z.value=e,R.value=!0}function q(e){L.value=e}function J(e){if(!V)return null;let t={lng:e.longitude,lat:e.latitude};return V.lngLatToContainerPoint?V.lngLatToContainerPoint(t):V.lngLatToLayerPoint?V.lngLatToLayerPoint(t):null}function Y(){U.value=(I.value?.schools||[]).map(e=>{let t=J(e);return t?{school:e,left:t.x,top:t.y}:null}).filter(e=>!!e)}function X(){H||=requestAnimationFrame(()=>{H=0,Y()})}function We(e){let t=I.value?.schools||[];if(!t.length)return;let n=e?.containerPoint||(e?.lnglat&&V?.lngLatToContainerPoint?V.lngLatToContainerPoint(e.lnglat):null);if(!n)return;let r=null;for(let e of t){let t=J(e);if(!t)continue;let i=Math.hypot(t.x-n.x,t.y-n.y);(!r||i<r.distance)&&(r={school:e,distance:i})}r&&r.distance<=120&&q(r.school)}async function Z(){x.value=!0;try{I.value=await ce(),L.value&&=I.value.schools.find(e=>e.id===L.value?.id)||null,await a(),await Q()}finally{x.value=!1}}async function Q(){if(B.value){if(F.value=``,!me()){F.value=`未配置天地图 KeyVITE_TIANDITU_TK`;return}if(!(I.value?.schools||[]).length){$();return}P.value=!0;try{let e=await ge();$();let t=B.value;t.innerHTML=``,V=de(e,t),pe(V),he(V,e),Y(),fe(V),V.addEventListener?.(`click`,We),V.addEventListener?.(`move`,X),V.addEventListener?.(`zoomend`,X),V.addEventListener?.(`resize`,X),V.addEventListener?.(`load`,X),window.setTimeout(Y,120),window.setTimeout(Y,500)}catch(e){let t=e instanceof Error?e.message:`地图初始化失败`;F.value=t.includes(`脚本`)||t.includes(`SDK`)?`${t}。若 Key 已配置域名白名单,请使用 https://slake.ali251.langye.net 访问(本地开发可在 hosts 绑定该域名后访问 http://slake.ali251.langye.net:5173`:t,$()}finally{P.value=!1}}}function $(){H&&=(cancelAnimationFrame(H),0),V&&(V.clearOverLays?.(),V.destroy?.()),U.value=[],V=null}return g(()=>I.value?.schools.length,()=>{I.value&&!x.value&&a(()=>Q())}),se(Z),ne($),(n,a)=>{let f=l(`el-icon`),g=l(`el-button`),v=ee(`loading`);return m((i(),e(`div`,_e,[a[19]||=d(`div`,{class:`pag