|
|
import{$t as e,C as t,D as n,Et as r,O as i,P as a,Y as o,_t as s,at as ee,b as c,ct as l,d as u,g as d,ht as f,in as p,k as te,l as ne,p as re,q as m,u as h,w as g,x as _}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{f as ie,i as v,l as ae,u as oe}from"./index-DFPdDGyr.js";import{o as se}from"./competitions-B-kaXeZ_.js";import{n as ce}from"./publicSourceChannels-B0c-JYrL.js";import{r as le}from"./signupChannels-BJYYH5pG.js";import{i as ue,n as de,o as fe}from"./applications-DGPoOeR-.js";import{a as pe,n as me,o as he,t as ge}from"./listPageState-BSDA5803.js";import{n as _e,r as ve,t as y}from"./entryGroups-mdEgVvvl.js";async function ye(e,t){let{data:n}=await v.post(`/competitions/${e}/applications/batch-review-result`,t);return n}var be={class:`container-fluid p-3 p-md-4`},xe={class:`filter-panel mb-3`},Se={class:`row g-2 align-items-center`},Ce={class:`col-12 d-flex flex-wrap align-items-center gap-3`},we=[`id`,`value`],Te=[`for`],Ee={class:`col-md-3`},De={class:`col-md-2`},Oe=[`value`],ke={class:`col-md-2`},Ae={class:`col-md-2`},je={class:`col-md-2`},Me=[`value`],Ne={class:`col-md-2`},Pe=[`value`],Fe={class:`col-12 col-md-auto d-flex gap-2`},Ie={class:`selection-toolbar mt-2`},Le={class:`d-flex flex-wrap align-items-center gap-2`},Re={class:`btn-group btn-group-sm portal-selection-mode-group`,role:`group`},ze={key:0,class:`badge bg-light text-dark ms-1`},Be={key:0,class:`badge bg-light text-dark ms-1`},Ve=[`disabled`],He=[`disabled`],Ue={key:1,class:`dropdown`},We={class:`dropdown-menu dropdown-menu-end`},Ge=[`disabled`],Ke={class:`small text-secondary mb-0 mt-2`},qe={class:`portal-table-scroll table-panel`},Je={class:`table table-hover align-middle mb-0 admin-list-table portal-data-table`},Ye={class:`text-center portal-sticky-left`,style:{width:`2.5rem`}},Xe=[`checked`],Ze={class:`portal-sticky-right-3`},Qe={key:0},$e={key:1},et={class:`text-center portal-sticky-left`},tt=[`checked`,`disabled`,`onChange`],nt={class:`text-secondary`},rt={class:`cell-wrap`},it={class:`cell-wrap`},at={class:`cell-wrap`},ot={class:`cell-wrap`},st={class:`cell-wrap`},ct={class:`cell-wrap`},lt={class:`portal-sticky-right-4`},ut={class:`portal-sticky-right-3`},dt={class:`portal-sticky-right-2`},ft={key:0,class:`admin-manage-status-tag admin-manage-status-pass`},pt={key:1,class:`admin-manage-status-tag admin-manage-status-fail`},mt={key:2},ht={class:`portal-sticky-right-1`},gt=[`onClick`],_t={key:0,class:`modal fade show d-block`,tabindex:`-1`,style:{background:`rgba(0,0,0,.35)`}},vt={class:`modal-dialog modal-dialog-centered`},yt={class:`modal-content`},bt={class:`modal-header`},xt={class:`modal-body`},St={class:`mb-0`},Ct={class:`modal-footer`},wt=[`disabled`],Tt={key:1,class:`modal fade show d-block`,tabindex:`-1`,style:{background:`rgba(0,0,0,.35)`}},Et={class:`modal-dialog modal-dialog-centered modal-lg`},Dt={class:`modal-content`},Ot={class:`modal-body`},kt={class:`modal-footer`},At=[`disabled`],jt={key:2,class:`modal fade show d-block`,tabindex:`-1`,style:{background:`rgba(0,0,0,.35)`}},Mt={class:`modal-dialog modal-dialog-centered modal-lg`},Nt={class:`modal-content`},Pt={class:`modal-body`},Ft={class:`modal-footer`},It=[`disabled`],b=te({__name:`ManageProjectsView`,setup(te){let v=ae(),b=oe(),x=a(`manageCompetitionId`,s(null)),S=a(`manageCompetitionSlug`,s(``)),C=s(!1),w=s([]),T=f({page:1,perPage:15,total:0});function E(){return ge(`manage-projects`,S.value)}function D(){return me({page:T.page,perPage:T.perPage})}function O(){let e=E();e.endsWith(`.`)||he(e,{page:T.page,perPage:T.perPage})}function Lt(){let e=pe(E(),v.query);T.page=e.page,T.perPage=e.perPage}function k(){let e=D(),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.replace({name:`manage-projects`,params:{slug:S.value},query:e})}let A=s([]),j=s([]),M=s([]),N=f({keyword:``,track:``,entry_group:y,review_result:``,review_eligible:``,signup_channel_id:``,public_source_channel_id:``}),Rt=_e,P=s(`desc`),F=s(`audit`),I=s([]),L=s([]),R=s(!1),z=s(`xlsx`),B=s(!1),V=s(0),H=s(!1),U=s(!1),W=s(``),G=s(!1);function K(e){let t={page:e,per_page:T.perPage,status:`submitted`,sort_by:`team_avg`,sort_dir:P.value},n=N.keyword.trim();return n&&(t.keyword=n),N.track&&(t.track=N.track),N.entry_group&&(t.entry_group=N.entry_group),(N.review_result===`passed`||N.review_result===`rejected`||N.review_result===`pending`)&&(t.review_result=N.review_result),N.review_eligible===`1`&&(t.review_eligible=!0),N.review_eligible===`0`&&(t.review_eligible=!1),N.signup_channel_id!==``&&(t.signup_channel_id=Number(N.signup_channel_id)),N.public_source_channel_id!==``&&(t.public_source_channel_id=Number(N.public_source_channel_id)),t}function zt(e){return e.signup_channel?.channel_name||e.signup_channel_code||`—`}function Bt(e){return e.public_source_channel?`${e.public_source_channel.source_name}(${e.public_source_channel.source_code})`:e.public_source_code||`—`}function Vt(e){return e.submitter_name?.trim()||e.submitter_mobile?.trim()||`—`}function Ht(e){if(!e)return`—`;let t=new Date(e.includes(` `)?e.replace(/-/g,`/`):e);if(Number.isNaN(t.getTime()))return e;let n=e=>String(e).padStart(2,`0`);return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())} ${n(t.getHours())}:${n(t.getMinutes())}`}function Ut(e){return e==null||Number.isNaN(e)?`-`:e.toFixed(2)}function Wt(e){return e.review_fully_completed?e.team_sum==null?`-`:e.team_sum.toFixed(2):`待评审`}function Gt(e){return e.review_fully_completed?Ut(e.team_avg):`-`}function q(e){return F.value===`export`?!0:e.review_fully_completed}let J=c(()=>F.value===`audit`?I.value:L.value);function Y(e){F.value===`audit`?I.value=e:L.value=e}function X(e){F.value=e}let Kt=c(()=>F.value===`audit`?`当前勾选用于批量通过/未通过`:`当前勾选用于「导出表格 + 所选附件」,与审核勾选互不影响`);function qt(e){return J.value.includes(e)}let Jt=c(()=>{let e=w.value.filter(q),t=J.value;return e.length>0&&e.every(e=>t.includes(e.id))});function Yt(e){let t=e.target.checked,n=w.value.filter(q).map(e=>e.id),r=J.value;Y(t?Array.from(new Set([...r,...n])):r.filter(e=>!n.includes(e)))}function Xt(e,t,n){if(!q(t)){n.target.checked=!1;return}let r=n.target.checked,i=[...J.value];if(r)i.includes(e)||i.push(e);else{let t=i.indexOf(e);t>=0&&i.splice(t,1)}Y(i)}function Zt(){P.value=P.value===`desc`?`asc`:`desc`,Z(1)}function Qt(e){Z(e)}function $t(e){T.perPage=e,Z(1)}async function en(){let e=x.value;if(!e)return;let[t,n,r]=await Promise.all([se(e),le(e),ce()]);A.value=t,j.value=n,M.value=r}async function Z(e=T.page){let t=x.value;if(t){C.value=!0,T.page=e,O(),k();try{let n=await fe(t,K(e));w.value=n.data,T.total=n.meta.total,n.meta.current_page&&n.meta.current_page!==T.page&&(T.page=n.meta.current_page,O(),k())}finally{C.value=!1}}}function tn(){N.keyword=``,N.track=``,N.entry_group=y,N.review_result=``,N.review_eligible=``,N.signup_channel_id=``,N.public_source_channel_id=``,I.value=[],L.value=[],Z(1)}async function Q(e){let t=x.value;if(t){if(e===`selected`&&L.value.length===0){ie.warning(`请切换到「导出选择」并勾选要导出附件的项目`);return}z.value=e,R.value=!0;try{V.value=(await ue(t,{mode:e,...K(T.page),application_ids:e===`selected`?L.value:void 0})).total}catch{V.value=T.total}}}async function nn(){let e=x.value;if(e){B.value=!0;try{await de(e,{mode:z.value,...K(T.page),application_ids:z.value===`selected`?L.value:void 0}),R.value=!1}finally{B.value=!1}}}async function $(e){let t=x.value;if(!(!t||I.value.length===0)){G.value=!0;try{await ye(t,{application_ids:I.value,result:e,note:W.value.trim()||void 0}),H.value=!1,U.value=!1,W.value=``,I.value=[],await Z(T.page)}finally{G.value=!1}}}function rn(e){O(),b.push({name:`manage-project-detail`,params:{slug:S.value,id:String(e.id)},query:D()})}return ee(x,async e=>{e&&(await en(),Lt(),await Z(T.page))},{immediate:!0}),(a,s)=>(m(),g(`div`,be,[s[60]||=_(`div`,{class:`d-flex justify-content-between align-items-center flex-wrap gap-2 mb-3`},[_(`h5`,{class:`mb-0 section-title`},`项目管理`)],-1),_(`div`,xe,[_(`div`,Se,[_(`div`,Ce,[s[25]||=_(`span`,{class:`small text-secondary text-nowrap`},`参赛组别`,-1),(m(!0),g(d,null,o(r(Rt),e=>(m(),g(`div`,{key:e,class:`form-check form-check-inline mb-0`},[l(_(`input`,{id:`manage-entry-group-${e}`,"onUpdate:modelValue":s[0]||=e=>N.entry_group=e,class:`form-check-input`,type:`radio`,name:`manage-entry-group`,value:e,onChange:s[1]||=e=>Z(1)},null,40,we),[[ne,N.entry_group]]),_(`label`,{class:`form-check-label`,for:`manage-entry-group-${e}`},p(e),9,Te)]))),128))]),_(`div`,Ee,[l(_(`input`,{"onUpdate:modelValue":s[2]||=e=>N.keyword=e,type:`search`,class:`form-control`,placeholder:`搜索项目、姓名、学校、手机号、推荐方`,onKeydown:s[3]||=re(e=>Z(1),[`enter`])},null,544),[[u,N.keyword]])]),_(`div`,De,[l(_(`select`,{"onUpdate:modelValue":s[4]||=e=>N.track=e,class:`form-select`},[s[26]||=_(`option`,{value:``},`全部赛道`,-1),(m(!0),g(d,null,o(A.value,e=>(m(),g(`option`,{key:e.track_code,value:e.track_code},p(e.title),9,Oe))),128))],512),[[h,N.track]])]),_(`div`,ke,[l(_(`select`,{"onUpdate:modelValue":s[5]||=e=>N.review_result=e,class:`form-select`},[...s[27]||=[_(`option`,{value:``},`全部状态`,-1),_(`option`,{value:`passed`},`通过`,-1),_(`option`,{value:`rejected`},`未通过`,-1),_(`option`,{value:`pending`},`待评定`,-1)]],512),[[h,N.review_result]])]),_(`div`,Ae,[l(_(`select`,{"onUpdate:modelValue":s[6]||=e=>N.review_eligible=e,class:`form-select`},[...s[28]||=[_(`option`,{value:``},`全部(是否参与评审)`,-1),_(`option`,{value:`1`},`参与评审`,-1),_(`option`,{value:`0`},`不参与评审`,-1)]],512),[[h,N.review_eligible]])]),_(`div`,je,[l(_(`select`,{"onUpdate:modelValue":s[7]||=e=>N.signup_channel_id=e,class:`form-select`},[s[29]||=_(`option`,{value:``},`全部报名渠道`,-1),(m(!0),g(d,null,o(j.value,e=>(m(),g(`option`,{key:e.id,value:e.id},p(e.channel_name),9,Me))),128))],512),[[h,N.signup_channel_id]])]),_(`div`,Ne,[l(_(`select`,{"onUpdate:modelValue":s[8]||=e=>N.public_source_channel_id=e,class:`form-select`},[s[30]||=_(`option`,{value:``},`全部用户渠道`,-1),(m(!0),g(d,null,o(M.value,e=>(m(),g(`option`,{key:e.id,value:e.id},p(e.source_name),9,Pe))),128))],512),[[h,N.public_source_channel_id]])]),_(`div`,Fe,[_(`button`,{type:`button`,class:`btn btn-primary px-3`,onClick:s[9]||=e=>Z(1)},`查询`),_(`button`,{type:`button`,class:`btn btn-light border px-3`,onClick:tn},`重置`)])]),_(`div`,Ie,[_(`div`,Le,[s[34]||=_(`span`,{class:`small text-secondary`},`勾选用途:`,-1),_(`div`,Re,[_(`button`,{type:`button`,class:e([`btn`,F.value===`audit`?`btn-primary`:`btn-outline-primary`]),onClick:s[10]||=e=>X(`audit`)},[s[31]||=n(` 审核选择 `,-1),I.value.length?(m(),g(`span`,ze,p(I.value.length),1)):t(``,!0)],2),_(`button`,{type:`button`,class:e([`btn`,F.value===`export`?`btn-primary`:`btn-outline-primary`]),onClick:s[11]||=e=>X(`export`)},[s[32]||=n(` 导出选择 `,-1),L.value.length?(m(),g(`span`,Be,p(L.value.length),1)):t(``,!0)],2)]),F.value===`audit`?(m(),g(d,{key:0},[_(`button`,{type:`button`,class:`btn btn-sm btn-manage-pass`,disabled:I.value.length===0,onClick:s[12]||=e=>{H.value=!0,W.value=`同意参赛。`}},` 通过 `,8,Ve),_(`button`,{type:`button`,class:`btn btn-sm btn-manage-reject`,disabled:I.value.length===0,onClick:s[13]||=e=>{U.value=!0,W.value=``}},` 未通过 `,8,He)],64)):(m(),g(`div`,Ue,[s[33]||=_(`button`,{class:`btn btn-primary btn-sm dropdown-toggle`,type:`button`,"data-bs-toggle":`dropdown`},` 导出 `,-1),_(`ul`,We,[_(`li`,null,[_(`button`,{class:`dropdown-item`,type:`button`,onClick:s[14]||=e=>Q(`xlsx`)},`仅导出表格`)]),_(`li`,null,[_(`button`,{class:`dropdown-item`,type:`button`,disabled:L.value.length===0,onClick:s[15]||=e=>Q(`selected`)},` 导出表格 + 所选附件 `,8,Ge)]),_(`li`,null,[_(`button`,{class:`dropdown-item`,type:`button`,onClick:s[16]||=e=>Q(`all`)},`导出表格 + 全部附件`)])])]))]),_(`p`,Ke,p(Kt.value),1)])]),_(`div`,qe,[_(`table`,Je,[_(`thead`,null,[_(`tr`,null,[_(`th`,Ye,[(m(),g(`input`,{key:`select-all-${F.value}-${T.page}`,class:`form-check-input`,type:`checkbox`,checked:Jt.value,"aria-label":`全选本页`,onChange:Yt},null,40,Xe))]),s[35]||=_(`th`,{style:{width:`3rem`}},`序号`,-1),s[36]||=_(`th`,null,`项目编号`,-1),s[37]||=_(`th`,null,`项目名称`,-1),s[38]||=_(`th`,null,`负责人`,-1),s[39]||=_(`th`,null,`学校`,-1),s[40]||=_(`th`,null,`组别`,-1),s[41]||=_(`th`,null,`赛道`,-1),s[42]||=_(`th`,null,`报名渠道`,-1),s[43]||=_(`th`,null,`推荐方`,-1),s[44]||=_(`th`,null,`手机号`,-1),s[45]||=_(`th`,null,`提交人`,-1),s[46]||=_(`th`,null,`提交人手机号`,-1),s[47]||=_(`th`,null,`用户渠道`,-1),s[48]||=_(`th`,null,`附件`,-1),s[49]||=_(`th`,null,`提交时间`,-1),s[50]||=_(`th`,{class:`portal-sticky-right-5`},`总分`,-1),s[51]||=_(`th`,{class:`portal-sticky-right-4`},`进程`,-1),_(`th`,Ze,[_(`button`,{type:`button`,class:`btn btn-link btn-sm p-0 text-decoration-none`,onClick:Zt},` 平均分 `+p(P.value===`desc`?`↓`:`↑`),1)]),s[52]||=_(`th`,{class:`portal-sticky-right-2`},`状态`,-1),s[53]||=_(`th`,null,`是否参与评审`,-1),s[54]||=_(`th`,{class:`portal-sticky-right-1`},`操作`,-1)])]),_(`tbody`,null,[C.value?(m(),g(`tr`,Qe,[...s[55]||=[_(`td`,{colspan:`22`,class:`text-center py-4 text-secondary`},`加载中…`,-1)]])):w.value.length===0?(m(),g(`tr`,$e,[...s[56]||=[_(`td`,{colspan:`22`,class:`text-center py-4 text-secondary`},`暂无符合条件的数据`,-1)]])):(m(!0),g(d,{key:2},o(w.value,(t,n)=>(m(),g(`tr`,{key:t.id},[_(`td`,et,[(m(),g(`input`,{key:`${F.value}-${T.page}-${t.id}`,class:`form-check-input`,type:`checkbox`,checked:qt(t.id),disabled:!q(t),onChange:e=>Xt(t.id,t,e)},null,40,tt))]),_(`td`,nt,p((T.page-1)*T.perPage+n+1),1),_(`td`,null,p(t.project_code),1),_(`td`,rt,p(t.project_name),1),_(`td`,null,p(t.player_name),1),_(`td`,it,p(t.school||`—`),1),_(`td`,null,p(t.entry_group||`—`),1),_(`td`,at,p(t.track_title),1),_(`td`,ot,p(zt(t)),1),_(`td`,st,p(t.recommend||`—`),1),_(`td`,null,p(t.contact_mobile||`—`),1),_(`td`,null,p(Vt(t)),1),_(`td`,null,p(t.submitter_mobile||`—`),1),_(`td`,ct,p(Bt(t)),1),_(`td`,null,p(t.files_count),1),_(`td`,null,p(Ht(t.submitted_at)),1),_(`td`,{class:e([`portal-sticky-right-5`,{"admin-total-pending-text":!t.review_fully_completed}])},p(Wt(t)),3),_(`td`,lt,p(t.review_progress),1),_(`td`,ut,p(Gt(t)),1),_(`td`,dt,[t.review_result===`passed`?(m(),g(`span`,ft,`通过`)):t.review_result===`rejected`?(m(),g(`span`,pt,`未通过`)):(m(),g(`span`,mt,`-`))]),_(`td`,null,p(t.review_eligible===!1?`否`:`是`),1),_(`td`,ht,[_(`button`,{type:`button`,class:`btn btn-sm btn-outline-primary`,onClick:e=>rn(t)},`查看`,8,gt)])]))),128))])])]),i(ve,{page:T.page,"per-page":T.perPage,total:T.total,"onUpdate:page":Qt,"onUpdate:perPage":$t},null,8,[`page`,`per-page`,`total`]),R.value?(m(),g(`div`,_t,[_(`div`,vt,[_(`div`,yt,[_(`div`,bt,[s[57]||=_(`h5`,{class:`modal-title`},`导出报名材料`,-1),_(`button`,{type:`button`,class:`btn-close`,onClick:s[17]||=e=>R.value=!1})]),_(`div`,xt,[_(`p`,St,`共 `+p(V.value||T.total)+` 份数据,模式:`+p(z.value),1)]),_(`div`,Ct,[_(`button`,{type:`button`,class:`btn btn-light`,onClick:s[18]||=e=>R.value=!1},`取消`),_(`button`,{type:`button`,class:`btn btn-primary`,disabled:B.value,onClick:nn},p(B.value?`导出中…`:`开始导出`),9,wt)])])])])):t(``,!0),H.value?(m(),g(`div`,Tt,[_(`div`,Et,[_(`div`,Dt,[s[58]||=_(`div`,{class:`modal-header`},[_(`h5`,{class:`modal-title`},`审核意见`)],-1),_(`div`,Ot,[l(_(`textarea`,{"onUpdate:modelValue":s[19]||=e=>W.value=e,class:`form-control`,rows:`6`},null,512),[[u,W.value]])]),_(`div`,kt,[_(`button`,{type:`button`,class:`btn btn-secondary`,onClick:s[20]||=e=>H.value=!1},`取消`),_(`button`,{type:`button`,class:`btn btn-success`,disabled:G.value,onClick:s[21]||=e=>$(`passed`)},` 确认通过 `,8,At)])])])])):t(``,!0),U.value?(m(),g(`div`,jt,[_(`div`,Mt,[_(`div`,Nt,[s[59]||=_(`div`,{class:`modal-header`},[_(`h5`,{class:`modal-title`},`审核意见`)],-1),_(`div`,Pt,[l(_(`textarea`,{"onUpdate:modelValue":s[22]||=e=>W.value=e,class:`form-control`,rows:`8`},null,512),[[u,W.value]])]),_(`div`,Ft,[_(`button`,{type:`button`,class:`btn btn-secondary`,onClick:s[23]||=e=>U.value=!1},`取消`),_(`button`,{type:`button`,class:`btn btn-warning text-dark`,disabled:G.value,onClick:s[24]||=e=>$(`rejected`)},` 确认未通过 `,8,It)])])])])):t(``,!0)]))}});export{b as default}; |