You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
7.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import{C as e,D as t,O as n,P as r,Y as i,_t as a,at as ee,b as o,g as s,in as c,k as te,m as l,q as u,w as d,x as f}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{l as ne,o as re,s as ie}from"./index-BtGUeLzV.js";import{t as p}from"./_plugin-vue_export-helper-CXTkFu_Z.js";import{r as m,t as ae}from"./applications-CUmeHjDN.js";import{t as oe}from"./ApplicationSignupDetailFields-Dq5yaMO1.js";var se={class:`container-fluid p-3 p-md-4`},ce={key:0,class:`text-secondary py-4 text-center`},le={key:1,class:`card`},ue={class:`card-body`},de={class:`row g-3 mt-1`},h={class:`col-md-4`},g=[`value`],_={class:`col-md-4`},v=[`value`],y={class:`col-md-4`},b=[`value`],x={class:`col-md-4`},S=[`value`],C={class:`row g-3 mt-1`},w={class:`col-12`},T={key:0,class:`form-control-plaintext border rounded px-3 py-2 mb-0 bg-light small text-secondary`},E={key:1,class:`form-control-plaintext border rounded px-3 py-2 mb-0 bg-light small text-secondary`},D={key:0,class:`col-12`},O={class:`list-unstyled mb-0 border rounded px-3 py-2 bg-light small`},k=[`onClick`],A={class:`col-12`},j={class:`form-control-plaintext border rounded px-3 py-2 mb-0 bg-light small text-secondary`},M={class:`text-secondary ms-2`},N={key:0,class:`mt-4`},P={class:`table table-sm`},F={class:`cell-wrap small text-secondary`},I={key:1,class:`mt-3`},L=[`value`],R={id:`managePledgeModal`,class:`modal fade`,tabindex:`-1`,"aria-labelledby":`managePledgeDocHeading`,"aria-hidden":`true`},z={class:`modal-dialog modal-dialog-centered modal-dialog-scrollable manage-detail-modal manage-detail-modal--pledge`},B={class:`modal-content promise-sign-sheet`},V={class:`modal-body pt-2`},H={key:0,class:`promise-doc-paper`},fe={id:`managePledgeDocHeading`,class:`promise-doc-heading text-center`},pe={class:`promise-doc-scroll`},me=[`innerHTML`],he={key:1,class:`promise-doc-body promise-doc-body--rich`},ge={key:0,class:`promise-doc-signblock`},_e={class:`manage-pledge-sig-row`},ve=[`src`],ye={key:1,class:`small text-secondary`},be={class:`promise-doc-daterow`},xe={class:`promise-doc-dateline`},U=p(te({__name:`ManageProjectDetailView`,setup(te){let p=re(),U=ie(),W=r(`manageCompetitionId`,a(null)),Se=r(`manageCompetitionSlug`,a(``)),Ce=r(`manageCompetitionName`,a(``)),G=a(!1),K=a(null),q=o(()=>Number(p.params.id)),J=o(()=>K.value?.files.find(e=>e.kind===`plan`)??null),Y=o(()=>K.value?.files.filter(e=>e.kind===`supporting`)??[]),we=o(()=>{let e=Ce.value.trim()||K.value?.competition?.name?.trim()||``;return e?`${e} 赛事承诺书`:`赛事承诺书`});function Te(e){let t=(e??``).trim();if(!t)return`—`;let n=t.match(/^(\d{4})-(\d{1,2})-(\d{1,2})/);if(n)return`${parseInt(n[1],10)}年${parseInt(n[2],10)}月${parseInt(n[3],10)}日`;let r=new Date(t.includes(` `)?t.replace(/-/g,`/`):t);return Number.isNaN(r.getTime())?t:`${r.getFullYear()}年${r.getMonth()+1}月${r.getDate()}日`}let X=o(()=>Te(K.value?.promise_signed_at??void 0)),Z=o(()=>{let e=K.value?.promise_signature;if(e==null||typeof e!=`string`)return``;let t=e.trim();return t===``?``:t.startsWith(`data:`)?t:`data:image/png;base64,${t}`});function Q(e){return e==null?`-`:e.toFixed(2)}function Ee(e){if(!e)return``;let t=e.scores&&typeof e.scores==`object`&&!Array.isArray(e.scores)?e.scores:null,n=e.sheet_snapshot,r=n&&typeof n==`object`&&!Array.isArray(n)&&Array.isArray(n.items)?n.items:[];return t&&r.length?r.map(e=>{let n=String(e.key??``),r=String(e.title??n),i=t[n],a=typeof i==`number`?i:Number(i);return`${r} ${Number.isFinite(a)?a:`—`}`}).join(`;`):t?Object.entries(t).map(([e,t])=>`${e} ${typeof t==`number`?t:Number(t)}`).join(`;`):``}async function De(){let e=W.value;if(!(!e||!q.value)){G.value=!0;try{K.value=await m(e,q.value)}finally{G.value=!1}}}function Oe(){U.push({name:`manage-projects`,params:{slug:Se.value}})}async function $(e){let t=W.value,n=K.value;if(!(!t||!n))try{await ae(t,n.id,e.id,e.original_name||`附件`)}catch{ne.error(`下载失败`)}}return ee([W,q],()=>void De(),{immediate:!0}),(r,a)=>(u(),d(`div`,se,[f(`div`,{class:`d-flex justify-content-between align-items-center flex-wrap gap-2 mb-3`},[a[1]||=f(`h5`,{class:`mb-0 section-title`},`项目详情`,-1),f(`button`,{type:`button`,class:`btn btn-sm btn-outline-secondary`,onClick:Oe},`返回列表`)]),G.value?(u(),d(`div`,ce,`加载中…`)):K.value?(u(),d(`div`,le,[f(`div`,ue,[n(oe,{detail:K.value},null,8,[`detail`]),f(`div`,de,[f(`div`,h,[a[2]||=f(`label`,{class:`form-label`},`评审进程`,-1),f(`input`,{class:`form-control`,value:K.value.review_progress,disabled:``},null,8,g)]),f(`div`,_,[a[3]||=f(`label`,{class:`form-label`},`总分`,-1),f(`input`,{class:`form-control`,value:K.value.review_fully_completed?Q(K.value.team_sum):`待评审`,disabled:``},null,8,v)]),f(`div`,y,[a[4]||=f(`label`,{class:`form-label`},`平均分`,-1),f(`input`,{class:`form-control`,value:K.value.review_fully_completed?Q(K.value.team_avg):`-`,disabled:``},null,8,b)]),f(`div`,x,[a[5]||=f(`label`,{class:`form-label`},`审核状态`,-1),f(`input`,{class:`form-control`,value:K.value.review_result===`passed`?`通过`:K.value.review_result===`rejected`?`未通过`:`待评定`,disabled:``},null,8,S)])]),f(`div`,C,[f(`div`,w,[a[6]||=f(`label`,{class:`form-label`},`商业计划书`,-1),J.value?(u(),d(`p`,T,[f(`a`,{role:`button`,href:`#`,class:`text-danger text-decoration-none`,onClick:a[0]||=l(e=>$(J.value),[`prevent`])},c(J.value.original_name),1)])):(u(),d(`p`,E,`—`))]),Y.value.length?(u(),d(`div`,D,[a[7]||=f(`label`,{class:`form-label`},`其他佐证材料`,-1),f(`ul`,O,[(u(!0),d(s,null,i(Y.value,e=>(u(),d(`li`,{key:e.id},[f(`a`,{role:`button`,href:`#`,class:`text-danger text-decoration-none`,onClick:l(t=>$(e),[`prevent`])},c(e.original_name),9,k)]))),128))])])):e(``,!0),f(`div`,A,[a[9]||=f(`label`,{class:`form-label`},`参赛承诺书`,-1),f(`p`,j,[K.value.promise_signed||K.value.promise_signed_at?(u(),d(s,{key:0},[a[8]||=f(`button`,{type:`button`,class:`btn btn-link btn-sm p-0 align-baseline text-danger`,"data-bs-toggle":`modal`,"data-bs-target":`#managePledgeModal`},` 已签署 · 查看承诺书与签名 `,-1),f(`span`,M,`日期:`+c(X.value),1)],64)):(u(),d(s,{key:1},[t(`未签署`)],64))])])]),K.value.review_scores?.length?(u(),d(`div`,N,[a[11]||=f(`h6`,{class:`report-section-title`},`评委打分`,-1),f(`table`,P,[a[10]||=f(`thead`,null,[f(`tr`,null,[f(`th`,null,`评委`),f(`th`,null,`项目得分`),f(`th`,null,`分项明细`),f(`th`,null,`时间`)])],-1),f(`tbody`,null,[(u(!0),d(s,null,i(K.value.review_scores,e=>(u(),d(`tr`,{key:e.id},[f(`td`,null,c(e.reviewer_name||e.reviewer_id),1),f(`td`,null,c(e.line_total??`—`),1),f(`td`,F,c(Ee(e.payload_json)||e.comment||`—`),1),f(`td`,null,c(e.updated_at||`—`),1)]))),128))])])])):e(``,!0),K.value.review_result_note?(u(),d(`div`,I,[a[12]||=f(`label`,{class:`form-label`},`审核意见`,-1),f(`textarea`,{class:`form-control`,rows:`4`,value:K.value.review_result_note,disabled:``},null,8,L)])):e(``,!0)])])):e(``,!0),f(`div`,R,[f(`div`,z,[f(`div`,B,[f(`div`,V,[K.value?(u(),d(`div`,H,[f(`h1`,fe,c(we.value),1),f(`div`,pe,[K.value.pledge_content_html?.trim()?(u(),d(`div`,{key:0,class:`promise-doc-body promise-doc-body--rich`,innerHTML:K.value.pledge_content_html},null,8,me)):(u(),d(`div`,he,[...a[13]||=[f(`p`,{class:`text-secondary mb-0`},`本场赛事未配置承诺书正文。`,-1)]]))]),K.value.promise_signed||K.value.promise_signed_at?(u(),d(`div`,ge,[f(`div`,_e,[a[14]||=f(`span`,{class:`promise-doc-signlabel`},`参赛人签名:`,-1),Z.value?(u(),d(`img`,{key:0,src:Z.value,alt:``,class:`manage-promise-sig-img`,loading:`lazy`},null,8,ve)):(u(),d(`span`,ye,`暂无`))]),f(`div`,be,[f(`span`,xe,[a[15]||=t(`日期:`,-1),f(`strong`,null,c(X.value),1)])])])):e(``,!0)])):e(``,!0),a[16]||=f(`div`,{class:`promise-sign-actions`},[f(`button`,{type:`button`,class:`btn btn-light notice-cancel-btn`,"data-bs-dismiss":`modal`},`关闭`)],-1)])])])])]))}}),[[`__scopeId`,`data-v-a7933bb5`]]);export{U as default};