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