|
|
import{$t as e,C as t,D as n,O as r,W as i,Y as a,Z as o,_t as s,at as c,b as l,ct as u,d,g as f,ht as p,in as m,k as h,p as g,q as _,st as v,u as y,w as b,x}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{b as S,p as ee,s as te}from"./api-Cy3G2Clw.js";import{o as ne}from"./index-BtGUeLzV.js";import{t as C}from"./_plugin-vue_export-helper-CXTkFu_Z.js";import{t as w}from"./PortalPagination-BESu4Eln.js";var T={class:`reviewer-projects-page`},E={class:`container-fluid p-3 p-md-4`},D={class:`filter-panel mb-3`},O={class:`row g-2`},k={class:`col-md-4`},A={class:`col-md-3`},j={class:`col-12 col-md-auto d-flex gap-2`},M={key:0,class:`alert alert-warning py-2 small mb-3`,role:`alert`},N={key:1,class:`small text-secondary mb-2`,"aria-live":`polite`},P={class:`portal-table-scroll table-panel mb-0`},F={class:`table table-hover align-middle mb-0 admin-list-table portal-data-table portal-reviewer-table`},I={key:0},L={class:`text-secondary text-nowrap portal-sticky-left`},R={class:`reviewer-only-col`},re={class:`reviewer-only-col`},z={class:`reviewer-only-col text-nowrap`},B={class:`admin-actions-cell portal-sticky-right-1`},V=C(h({__name:`ReviewerProjectsView`,setup(h){let C=ne(),V=l(()=>String(C.params.slug??``).trim()),H=s([]),U=s(!1),W=s(``),G=s(``),K=p({keyword:``,review_status:``}),q=s({current_page:1,last_page:1,per_page:20,total:0}),J=s(1),Y=s(15);function X(){let e=new URLSearchParams;e.set(`competition_slug`,V.value),e.set(`page`,String(J.value)),e.set(`per_page`,String(Y.value));let t=K.keyword.trim();return t&&e.set(`keyword`,t),(K.review_status===`pending`||K.review_status===`reviewed`)&&e.set(`review_status`,K.review_status),e}async function Z(){let e=V.value,{token:t}=S();if(!e||!t){W.value=`未登录或缺少赛事信息`;return}U.value=!0,W.value=``;try{let e=`${ee()}${te}?${X().toString()}`,n=await fetch(e,{headers:{Authorization:`Bearer ${t}`,Accept:`application/json`}});if(!n.ok){let e=await n.json().catch(()=>({}));W.value=(typeof e==`object`&&e&&`message`in e?String(e.message??``):``)||`加载失败(${n.status})`,H.value=[],G.value=``;return}let r=await n.json();H.value=Array.isArray(r.data)?r.data:[];let i=r.meta;i&&(q.value={current_page:i.current_page??1,last_page:i.last_page??1,per_page:i.per_page??20,total:i.total??0}),ie()}catch{W.value=`网络错误,请稍后重试`,H.value=[],G.value=``}finally{U.value=!1}}function ie(){let e=q.value.total;if(e<=0){G.value=`暂无符合条件的数据`;return}let t=[`共 ${e} 条`],n=K.keyword.trim();n&&t.push(`关键词「${n}」`),K.review_status===`pending`?t.push(`待评审`):K.review_status===`reviewed`&&t.push(`已评审`),G.value=t.join(` · `)}function Q(e=J.value){J.value=e,Z()}function ae(){K.keyword=``,K.review_status=``,Q(1)}c([V,J,Y],()=>void Z()),i(()=>void Z());let oe=l(()=>U.value?`加载中…`:G.value||`暂无报名数据`);function $(e){J.value=e}function se(e){Y.value=e,J.value=1,Z()}function ce(e){return(q.value.current_page-1)*q.value.per_page+e+1}function le(e){return e.score_is_pending?`评审`:`查看`}return(i,s)=>{let c=o(`router-link`);return _(),b(`div`,T,[x(`div`,E,[s[7]||=x(`div`,{class:`d-flex justify-content-between align-items-center flex-wrap gap-2 mb-3`},[x(`h5`,{class:`mb-0 section-title`},`项目评审`)],-1),x(`div`,D,[x(`div`,O,[x(`div`,k,[u(x(`input`,{"onUpdate:modelValue":s[0]||=e=>K.keyword=e,type:`search`,class:`form-control`,placeholder:`搜索项目、姓名、学校、手机号、推荐方`,onKeydown:s[1]||=g(e=>Q(1),[`enter`])},null,544),[[d,K.keyword]])]),x(`div`,A,[u(x(`select`,{"onUpdate:modelValue":s[2]||=e=>K.review_status=e,class:`form-select`},[...s[4]||=[x(`option`,{value:``},`全部评审状态`,-1),x(`option`,{value:`pending`},`待评审`,-1),x(`option`,{value:`reviewed`},`已评审`,-1)]],512),[[y,K.review_status]])]),x(`div`,j,[x(`button`,{type:`button`,class:`btn btn-primary px-3`,onClick:s[3]||=e=>Q(1)},`查询`),x(`button`,{type:`button`,class:`btn btn-light border px-3`,onClick:ae},`重置`)])])]),W.value?(_(),b(`p`,M,m(W.value),1)):(_(),b(`p`,N,m(oe.value),1)),x(`div`,P,[x(`table`,F,[s[6]||=x(`thead`,{class:`table-light`},[x(`tr`,null,[x(`th`,{class:`text-nowrap portal-sticky-left`,style:{width:`3.5rem`}},`序号`),x(`th`,{class:`text-nowrap`},`项目编号`),x(`th`,{class:`cell-wrap`},`项目名称`),x(`th`,{class:`text-nowrap`},`姓名`),x(`th`,{class:`cell-wrap`},`项目所在地`),x(`th`,{class:`cell-wrap reviewer-only-col`},`毕业院校`),x(`th`,{class:`text-nowrap reviewer-only-col`},`最高学历`),x(`th`,{class:`cell-wrap`},`赛道`),x(`th`,{class:`text-nowrap`},`评分`),x(`th`,{class:`text-nowrap reviewer-only-col`},`提交时间`),x(`th`,{class:`text-nowrap admin-actions-head portal-sticky-right-1`},`操作`)])],-1),x(`tbody`,null,[!U.value&&H.value.length===0&&!W.value?(_(),b(`tr`,I,[...s[5]||=[x(`td`,{colspan:`11`,class:`text-center text-secondary py-4`},`暂无符合条件的数据`,-1)]])):t(``,!0),(_(!0),b(f,null,a(H.value,(t,i)=>(_(),b(`tr`,{key:t.id,"data-list-row":``},[x(`td`,L,m(ce(i)),1),x(`td`,null,m(t.project_code),1),x(`td`,null,m(t.project_name||`—`),1),x(`td`,null,m(t.player_name||`—`),1),x(`td`,null,m(t.location_label),1),x(`td`,R,m(t.school||`—`),1),x(`td`,re,m(t.degree||`—`),1),x(`td`,null,m(t.track_title||t.track_code||`—`),1),x(`td`,{class:e({"admin-total-pending-text":t.score_is_pending})},m(t.score_display),3),x(`td`,z,m(t.submitted_at||`—`),1),x(`td`,B,[r(c,{class:`btn btn-sm btn-outline-primary`,to:{name:`reviewer-application-detail`,params:{slug:V.value,id:String(t.id)}}},{default:v(()=>[n(m(le(t)),1)]),_:2},1032,[`to`])])]))),128))])])]),r(w,{page:J.value,"per-page":Y.value,total:q.value.total,"onUpdate:page":$,"onUpdate:perPage":se},null,8,[`page`,`per-page`,`total`])])])}}}),[[`__scopeId`,`data-v-ecc4a515`]]);export{V as default}; |