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