|
|
import{A as e,Dt as t,F as n,G as ee,J as r,S as i,T as a,X as o,_ as s,an as c,en as te,nn as l,ot as ne,vt as u,w as d,x as re}from"./vue.runtime.esm-bundler-Dt_AyShc.js";import{s as f}from"./index-D9t8QC7c.js";async function ie(e){let{data:t}=await f.get(`/competitions/${e}/manage/report`);return t}var p={class:`container-fluid p-3 p-md-4 manage-portal-dashboard`},m={key:0,class:`text-secondary py-4 text-center`},h={key:1,class:`alert alert-warning`},g={class:`row g-3 mb-1`},_={class:`report-kpi-label`},v={class:`report-kpi-value`},y={class:`row g-3 mt-1 report-main-grid`},b={class:`col-lg-6`},x={class:`d-flex flex-column gap-3 h-100`},S={class:`card report-section-card h-100`},C={class:`card-body`},w={key:0,class:`text-secondary small mb-0`},T={class:`report-bar-head`},E={class:`report-bar-label`},D={class:`report-bar-meta`},O={class:`progress report-progress`},k={class:`card report-section-card h-100`},A={class:`card-body`},j={key:0,class:`text-secondary small mb-0`},M={class:`report-bar-head`},N={class:`report-bar-label`},P={class:`report-bar-meta`},F={class:`progress report-progress`},I={class:`card report-section-card h-100`},L={class:`card-body`},R={class:`table-responsive`},z={class:`table table-sm align-middle mb-0 report-table`},B={key:0},V={class:`col-lg-6`},H={class:`d-flex flex-column gap-3 h-100`},U={class:`card report-section-card h-100`},W={class:`card-body`},G={key:0,class:`text-secondary small mb-0`},K={class:`report-bar-head`},q={class:`report-bar-label`},J={class:`report-bar-meta`},ae={class:`progress report-progress`},oe={key:1,class:`text-secondary small mb-0`},se={class:`report-bar-head`},ce={class:`report-bar-label`},le={class:`report-bar-meta`},ue={class:`progress report-progress`},de={class:`card report-section-card h-100`},fe={class:`card-body`},pe={class:`table-responsive`},me={class:`table table-sm align-middle mb-0 report-table`},he={key:0},ge={class:`row g-3 mt-1`},_e={class:`col-lg-5`},ve={class:`card report-section-card h-100`},ye={class:`card-body`},be={class:`table-responsive`},xe={class:`table table-sm align-middle mb-0 report-table`},Se={key:0},Ce={class:`col-lg-7`},we={class:`card report-section-card h-100`},Te={class:`card-body`},Ee={key:0,class:`text-secondary small mb-0`},De={key:1,class:`row g-2`},Oe={class:`top5-track-card h-100`},ke={class:`top5-track-title`},Ae={class:`top5-track-list`},je={class:`top5-item-rank`},Y={class:`top5-item-name`},Me={class:`top5-item-score`},X=e({__name:`ManageDashboardView`,setup(e){let f=n(`manageCompetitionId`,u(null)),X=u(!1),Z=u(null);async function Q(){let e=f.value;if(e){X.value=!0;try{Z.value=await ie(e)}catch{Z.value=null}finally{X.value=!1}}}let Ne=re(()=>Z.value?.kpis??[]);function Pe(e){return e?`report-kpi-card--${e}`:``}function $(e){return e??[]}return ne(f,()=>void Q(),{immediate:!0}),ee(()=>void Q()),(e,n)=>(r(),a(`div`,p,[n[14]||=i(`div`,{class:`d-flex justify-content-between align-items-center flex-wrap gap-2 mb-3`},[i(`h5`,{class:`mb-0 section-title`},`综合看板`)],-1),X.value?(r(),a(`div`,m,`加载中…`)):d(``,!0),!t(f)&&!X.value?(r(),a(`div`,h,`赛事信息加载失败,请检查链接 slug。`)):Z.value?(r(),a(s,{key:2},[i(`div`,g,[(r(!0),a(s,null,o(Ne.value,(e,t)=>(r(),a(`div`,{key:t,class:`col-12 col-md-6 col-lg-2`},[i(`div`,{class:te([`report-kpi-card`,Pe(e.type)])},[i(`div`,_,c(e.label),1),i(`div`,v,c(e.value),1)],2)]))),128))]),i(`div`,y,[i(`div`,b,[i(`div`,x,[i(`div`,S,[i(`div`,C,[n[0]||=i(`h6`,{class:`report-section-title`},`赛道报名结构`,-1),$(Z.value.track_counts).length?d(``,!0):(r(),a(`p`,w,`暂无赛道数据。`)),(r(!0),a(s,null,o($(Z.value.track_counts),e=>(r(),a(`div`,{key:e.label,class:`report-bar-row`},[i(`div`,T,[i(`span`,E,c(e.label),1),i(`span`,D,c(e.count)+`(`+c(e.percent)+`%)`,1)]),i(`div`,O,[i(`div`,{class:`progress-bar`,style:l({width:`${e.percent}%`})},null,4)])]))),128))])]),i(`div`,k,[i(`div`,A,[n[1]||=i(`h6`,{class:`report-section-title`},`学历结构`,-1),$(Z.value.degree_counts).length?d(``,!0):(r(),a(`p`,j,`暂无学历数据。`)),(r(!0),a(s,null,o($(Z.value.degree_counts),e=>(r(),a(`div`,{key:e.label,class:`report-bar-row`},[i(`div`,M,[i(`span`,N,c(e.label),1),i(`span`,P,c(e.count)+`(`+c(e.percent)+`%)`,1)]),i(`div`,F,[i(`div`,{class:`progress-bar`,style:l({width:`${e.percent}%`})},null,4)])]))),128))])]),i(`div`,I,[i(`div`,L,[n[4]||=i(`h6`,{class:`report-section-title`},`院校活跃度 TOP5`,-1),i(`div`,R,[i(`table`,z,[n[3]||=i(`thead`,null,[i(`tr`,null,[i(`th`,null,`排名`),i(`th`,null,`院校`),i(`th`,null,`报名数`),i(`th`,null,`通过率`)])],-1),i(`tbody`,null,[Z.value.school_top.length?d(``,!0):(r(),a(`tr`,B,[...n[2]||=[i(`td`,{colspan:`4`,class:`text-center text-secondary py-3`},`暂无数据`,-1)]])),(r(!0),a(s,null,o(Z.value.school_top,e=>(r(),a(`tr`,{key:e.rank},[i(`td`,null,c(e.rank),1),i(`td`,null,c(e.name),1),i(`td`,null,c(e.total),1),i(`td`,null,c(e.pass_rate),1)]))),128))])])])])])])]),i(`div`,V,[i(`div`,H,[i(`div`,U,[i(`div`,W,[n[5]||=i(`h6`,{class:`report-section-title`},`地区分布(国家)`,-1),$(Z.value.country_counts).length?d(``,!0):(r(),a(`p`,G,`暂无国家数据。`)),(r(!0),a(s,null,o($(Z.value.country_counts),e=>(r(),a(`div`,{key:e.label,class:`report-bar-row`},[i(`div`,K,[i(`span`,q,c(e.label),1),i(`span`,J,c(e.count)+`(`+c(e.percent)+`%)`,1)]),i(`div`,ae,[i(`div`,{class:`progress-bar`,style:l({width:`${e.percent}%`})},null,4)])]))),128)),n[6]||=i(`hr`,{class:`my-4 report-split-line`},null,-1),n[7]||=i(`h6`,{class:`report-section-title`},`赛区分布`,-1),$(Z.value.event_location_counts??Z.value.province_counts).length?d(``,!0):(r(),a(`p`,oe,`暂无赛区数据。`)),(r(!0),a(s,null,o($(Z.value.event_location_counts??Z.value.province_counts),e=>(r(),a(`div`,{key:e.label,class:`report-bar-row`},[i(`div`,se,[i(`span`,ce,c(e.label),1),i(`span`,le,c(e.count)+`(`+c(e.percent)+`%)`,1)]),i(`div`,ue,[i(`div`,{class:`progress-bar`,style:l({width:`${e.percent}%`})},null,4)])]))),128))])]),i(`div`,de,[i(`div`,fe,[n[10]||=i(`h6`,{class:`report-section-title`},`城市活跃度 TOP5`,-1),i(`div`,pe,[i(`table`,me,[n[9]||=i(`thead`,null,[i(`tr`,null,[i(`th`,null,`排名`),i(`th`,null,`城市`),i(`th`,null,`报名数`),i(`th`,null,`通过率`)])],-1),i(`tbody`,null,[Z.value.city_top.length?d(``,!0):(r(),a(`tr`,he,[...n[8]||=[i(`td`,{colspan:`4`,class:`text-center text-secondary py-3`},`暂无数据`,-1)]])),(r(!0),a(s,null,o(Z.value.city_top,e=>(r(),a(`tr`,{key:e.rank},[i(`td`,null,c(e.rank),1),i(`td`,null,c(e.name),1),i(`td`,null,c(e.total),1),i(`td`,null,c(e.pass_rate),1)]))),128))])])])])])])])]),i(`div`,ge,[i(`div`,_e,[i(`div`,ve,[i(`div`,ye,[n[13]||=i(`h6`,{class:`report-section-title mb-2`},`赛道评审均分排行`,-1),i(`div`,be,[i(`table`,xe,[n[12]||=i(`thead`,null,[i(`tr`,null,[i(`th`,null,`排名`),i(`th`,null,`赛道`),i(`th`,null,`均分`),i(`th`,null,`项目数`)])],-1),i(`tbody`,null,[Z.value.track_score_rank.length?d(``,!0):(r(),a(`tr`,Se,[...n[11]||=[i(`td`,{colspan:`4`,class:`text-center text-secondary py-3`},`暂无评审数据`,-1)]])),(r(!0),a(s,null,o(Z.value.track_score_rank,e=>(r(),a(`tr`,{key:e.rank},[i(`td`,null,c(e.rank),1),i(`td`,null,c(e.track),1),i(`td`,null,c(e.avg.toFixed(2)),1),i(`td`,null,c(e.count),1)]))),128))])])])])])]),i(`div`,Ce,[i(`div`,we,[i(`div`,Te,[Z.value.track_top_projects.length?(r(),a(`div`,De,[(r(!0),a(s,null,o(Z.value.track_top_projects,e=>(r(),a(`div`,{key:e.track,class:`col-12 col-md-6`},[i(`div`,Oe,[i(`div`,ke,c(e.track)+` TOP3`,1),i(`ul`,Ae,[(r(!0),a(s,null,o(e.items,e=>(r(),a(`li`,{key:e.rank,class:`top5-item-row`},[i(`span`,je,c(e.rank),1),i(`span`,Y,c(e.name),1),i(`span`,Me,c(e.avg.toFixed(2)),1)]))),128))])])]))),128))])):(r(),a(`p`,Ee,`暂无评审数据`))])])])])],64)):d(``,!0)]))}});export{X as default}; |