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

4 months 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-DTIMLswB.js";import{t as se}from"./usePageLoad-DFTLo_Lv.js";import{u as ce}from"./assets-B5_Et8Pj.js";import{t as le}from"./TeacherDetailDialog-SGxVTFii.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 x={class:`dashboard-page executive-dashboard`},S={key:0,class:`radar-top-grid`},C={class:`radar-kpi`},w={class:`kpi-icon`},T={class:`radar-kpi`},E={class:`kpi-icon`},D={class:`radar-kpi`},O={class:`kpi-icon`},k={class:`radar-kpi`},A={class:`kpi-icon`},j={class:`radar-map-card`},M={class:`radar-main`},N={class:`radar-map-container-wrap`},P={key:0,class:`radar-map-placeholder`},F={key:1,class:`radar-map-placeholder`},I={key:2,class:`radar-map-stage`},L={class:`radar-side`},_e={class:`radar-side-head`},ve={key:0,class:`radar-side-count`},ye={class:`radar-side-body`},be={key:0,class:`radar-empty-panel`},xe={class:`radar-teacher-avatar`},Se=[`onClick`],Ce={class:`stars`},we={class:`radar-empty-panel`},Te={key:0,class:`radar-view-summary`},Ee={class:`radar-bottom-grid`},De={class:`radar-info-card`},Oe={class:`radar-school-list`},ke={class:`radar-info-card`},Ae={class:`radar-field-list`},je={class:`radar-field-bar`},Me={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=_(()=>B.value?.summary),Ne=_(()=>B.value?.quality||[]),J=_(()=>B.value?.research_fields||[]),Pe=_(()=>Math.max(...J.value.map(e=>e.percent),1));function Y(e,t){return e?e.length>t?`${e.slice(0,t)}`:e:``}function Fe(e){return ue(e.star_level_item?.value,e.star_level_item?.label)}function X(e){U.value=e,H.value=!0}function Ie(e){V.value=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=``,!me()){z.value=`未配置天地图 KeyVITE_TIANDITU_TK`;return}let e=B.value?.schools||[];if(!e.length){$();return}R.value=!0;try{let t=await ge();$();let n=W.value;n.innerHTML=``,G=de(t,n),pe(G);let r=new t.Icon({iconUrl:`data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2018%2018%22%3E%3Ccircle%20cx%3D%229%22%20cy%3D%229%22%20r%3D%227%22%20fill%3D%22%23b11e23%22%20stroke%3D%22%23fff%22%20stroke-width%3D%223%22%2F%3E%3C%2Fsvg%3E`,iconSize:new t.Point(18,18),iconAnchor:new t.Point(9,9)});K=e.map(e=>{let n=new t.LngLat(e.longitude,e.latitude),i=new t.Marker(new t.LngLat(e.longitude,e.latitude),{icon:r}),a=new t.Label({text:e.name||``,position:n,offset:new t.Point(12,-10)});return a.setStyle?.({padding:`2px 6px`,border:`1px solid rgba(226, 232, 240, 0.92)`,borderRadius:`999px`,background:`rgba(255, 255, 255, 0.94)`,color:`#475569`,fontSize:`10.5px`,fontWeight:`500`,whiteSpace:`nowrap`,boxShadow:`0 5px 12px rgba(15, 23, 42, 0.07)`,pointerEvents:`none`}),i.addEventListener(`click`,()=>Ie(e)),G.addOverLay(i),G.addOverLay(a),{marker:i,label:a,schoolId:e.id}}),he(G,t),fe(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(G){for(let{marker:e,label:t}of K)try{G.removeOverLay(e),G.removeOverLay(t)}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`,x,[a[18]||=u(`div`,{class:`