master
lion 1 month ago
parent 1960077bdd
commit 483c582251

@ -446,7 +446,7 @@ class AdminApplicationExportService
$teamSum = $numericScores === [] ? null : array_sum($numericScores);
$teamAvg = $numericScores === [] ? null : ($teamSum / count($numericScores));
$totalCell = $fullyCompleted ? $this->formatExportScore($teamSum) : '待评审';
$avgCell = $fullyCompleted ? $this->formatExportScore($teamAvg) : '-';
$avgCell = $teamAvg === null ? '-' : $this->formatExportScore($teamAvg);
$scoreDetails = collect($trackReviewers)
->map(function (array $reviewer) use ($scoresByReviewerId): string {

@ -1 +1 @@
import{D as e,O as t,Z as n,_t as r,in as i,k as a,m as o,q as s,st as c,w as l,x as u}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{g as d}from"./api-rQwE0AaH.js";import{f,l as p,n as m,u as h}from"./index-DAT5gpOZ.js";import{t as g}from"./_plugin-vue_export-helper-CXTkFu_Z.js";import{t as _}from"./auth-CW8ToWeP.js";var v={class:`login-wrap`},y=g(a({__name:`AdminLoginView`,setup(a){let g=p(),y=h(),b=m(),x=r(``),S=r(``),C=r(!1);function w(e){return e instanceof Error&&e.message.trim()?e.message:typeof e==`string`&&e.trim()?e:`登录失败`}function T(){let e=d(typeof g.query.redirect==`string`?g.query.redirect:``);return e&&e.startsWith(`/admin`)&&!e.includes(`/login`)?{path:e,replace:!0}:{name:`admin-dashboard`,replace:!0}}async function E(){if(!x.value.trim()||!S.value.trim()){f.warning(`请输入账号和密码`);return}C.value=!0;try{let e=await _({username:x.value.trim(),password:S.value.trim()}),t=e.user&&typeof e.user.id==`number`?{id:e.user.id,username:e.user.username,name:e.user.name}:null;b.setSession(e.token,t),await y.replace(T()),f.success(`登录成功`)}catch(e){f.error(w(e))}finally{C.value=!1}}return(r,a)=>{let d=n(`el-input`),f=n(`el-form-item`),p=n(`el-button`),m=n(`el-form`),h=n(`el-card`);return s(),l(`div`,v,[t(h,{class:`login-card`,shadow:`hover`},{header:c(()=>[...a[2]||=[u(`div`,{class:`card-title`},`管理员登录`,-1)]]),default:c(()=>[t(m,{"label-position":`top`,onSubmit:o(E,[`prevent`])},{default:c(()=>[t(f,{label:`账号`},{default:c(()=>[t(d,{modelValue:x.value,"onUpdate:modelValue":a[0]||=e=>x.value=e,modelModifiers:{trim:!0},autocomplete:`username`,clearable:``},null,8,[`modelValue`])]),_:1}),t(f,{label:`密码`},{default:c(()=>[t(d,{modelValue:S.value,"onUpdate:modelValue":a[1]||=e=>S.value=e,type:`password`,autocomplete:`current-password`,"show-password":``},null,8,[`modelValue`])]),_:1}),t(p,{type:`danger`,class:`w-100`,"native-type":`submit`,loading:C.value},{default:c(()=>[e(i(C.value?`登录中…`:`登录`),1)]),_:1},8,[`loading`])]),_:1})]),_:1})])}}}),[[`__scopeId`,`data-v-d5661a24`]]);export{y as default};
import{D as e,O as t,Z as n,_t as r,in as i,k as a,m as o,q as s,st as c,w as l,x as u}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{g as d}from"./api-rQwE0AaH.js";import{f,l as p,n as m,u as h}from"./index-t7bgup9e.js";import{t as g}from"./_plugin-vue_export-helper-CXTkFu_Z.js";import{t as _}from"./auth-Cjgu0CU4.js";var v={class:`login-wrap`},y=g(a({__name:`AdminLoginView`,setup(a){let g=p(),y=h(),b=m(),x=r(``),S=r(``),C=r(!1);function w(e){return e instanceof Error&&e.message.trim()?e.message:typeof e==`string`&&e.trim()?e:`登录失败`}function T(){let e=d(typeof g.query.redirect==`string`?g.query.redirect:``);return e&&e.startsWith(`/admin`)&&!e.includes(`/login`)?{path:e,replace:!0}:{name:`admin-dashboard`,replace:!0}}async function E(){if(!x.value.trim()||!S.value.trim()){f.warning(`请输入账号和密码`);return}C.value=!0;try{let e=await _({username:x.value.trim(),password:S.value.trim()}),t=e.user&&typeof e.user.id==`number`?{id:e.user.id,username:e.user.username,name:e.user.name}:null;b.setSession(e.token,t),await y.replace(T()),f.success(`登录成功`)}catch(e){f.error(w(e))}finally{C.value=!1}}return(r,a)=>{let d=n(`el-input`),f=n(`el-form-item`),p=n(`el-button`),m=n(`el-form`),h=n(`el-card`);return s(),l(`div`,v,[t(h,{class:`login-card`,shadow:`hover`},{header:c(()=>[...a[2]||=[u(`div`,{class:`card-title`},`管理员登录`,-1)]]),default:c(()=>[t(m,{"label-position":`top`,onSubmit:o(E,[`prevent`])},{default:c(()=>[t(f,{label:`账号`},{default:c(()=>[t(d,{modelValue:x.value,"onUpdate:modelValue":a[0]||=e=>x.value=e,modelModifiers:{trim:!0},autocomplete:`username`,clearable:``},null,8,[`modelValue`])]),_:1}),t(f,{label:`密码`},{default:c(()=>[t(d,{modelValue:S.value,"onUpdate:modelValue":a[1]||=e=>S.value=e,type:`password`,autocomplete:`current-password`,"show-password":``},null,8,[`modelValue`])]),_:1}),t(p,{type:`danger`,class:`w-100`,"native-type":`submit`,loading:C.value},{default:c(()=>[e(i(C.value?`登录中…`:`登录`),1)]),_:1},8,[`loading`])]),_:1})]),_:1})])}}}),[[`__scopeId`,`data-v-d5661a24`]]);export{y as default};

@ -1 +1 @@
import{C as e,D as t,Et as n,O as r,Q as i,S as a,W as o,Z as s,_t as c,ct as l,in as u,k as d,q as f,st as p,w as m,x as h}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{f as g}from"./index-DAT5gpOZ.js";import{t as _}from"./_plugin-vue_export-helper-CXTkFu_Z.js";import{a as v}from"./competitions-BSJLYyM3.js";import{t as y}from"./adminCompetition-m6obxaBw.js";import{t as b}from"./competitionAdminLabels-v0rVrY9u.js";import{t as x}from"./datetimeShanghai-D1tceWM9.js";var S={class:`page-header`},C={key:0,class:`pager`},w={class:`total`},T=_(d({__name:`CompetitionListView`,setup(d){let _=c([]),T=y(),E=c(!1),D=c(1),O=c(1),k=c(0),A=c(15);async function j(){E.value=!0;try{let e=await v({page:D.value,per_page:A.value});_.value=e.data,O.value=e.meta.last_page,k.value=e.meta.total,A.value=e.meta.per_page}catch(e){_.value=[],g.error(e instanceof Error?e.message:`加载失败`)}finally{E.value=!1}}function M(e){e<1||e>O.value||(D.value=e,j())}function N(e){return x(e)}return o(()=>{j()}),(o,c)=>{let d=s(`el-button`),g=s(`RouterLink`),v=s(`el-table-column`),y=s(`el-tag`),x=s(`el-table`),j=s(`el-pagination`),P=s(`el-card`),F=i(`loading`);return f(),m(`div`,null,[h(`div`,S,[c[1]||=h(`h2`,{class:`page-title`},`赛事列表`,-1),r(g,{to:{name:`admin-competition-new`}},{default:p(()=>[r(d,{type:`danger`},{default:p(()=>[...c[0]||=[t(`新建赛事`,-1)]]),_:1})]),_:1})]),r(P,{shadow:`never`},{default:p(()=>[l((f(),a(x,{data:_.value,stripe:``,style:{width:`100%`}},{empty:p(()=>[...c[3]||=[h(`span`,{class:`text-muted`},`暂无数据`,-1)]]),default:p(()=>[r(v,{prop:`name`,label:`名称`,"min-width":`140`,"show-overflow-tooltip":``}),r(v,{prop:`slug`,label:`访问地址`,"min-width":`120`,"show-overflow-tooltip":``}),r(v,{label:`状态`,width:`120`},{default:p(({row:e})=>[t(u(n(b)(e.status)),1)]),_:1}),r(v,{label:`对外可见`,width:`100`},{default:p(({row:e})=>[r(y,{type:e.published?`success`:`info`,size:`small`},{default:p(()=>[t(u(e.published?`是`:`否`),1)]),_:2},1032,[`type`])]),_:1}),r(v,{label:`报名开始`,"min-width":`160`},{default:p(({row:e})=>[t(u(N(e.signup_open_at??null)),1)]),_:1}),r(v,{label:`报名截止`,"min-width":`160`},{default:p(({row:e})=>[t(u(N(e.signup_close_at??null)),1)]),_:1}),r(v,{label:`操作`,width:`140`,fixed:`right`},{default:p(({row:e})=>[r(g,{to:{name:`admin-competition-workspace`},onClick:t=>n(T).selectCompetition(e.id)},{default:p(()=>[r(d,{type:`danger`,link:``},{default:p(()=>[...c[2]||=[t(`进入赛事中心`,-1)]]),_:1})]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[F,E.value]]),O.value>1?(f(),m(`div`,C,[h(`span`,w,`共 `+u(k.value)+` 条`,1),r(j,{background:``,layout:`prev, pager, next`,"current-page":D.value,"page-size":A.value,total:k.value,onCurrentChange:M},null,8,[`current-page`,`page-size`,`total`])])):e(``,!0)]),_:1})])}}}),[[`__scopeId`,`data-v-0694ed3e`]]);export{T as default};
import{C as e,D as t,Et as n,O as r,Q as i,S as a,W as o,Z as s,_t as c,ct as l,in as u,k as d,q as f,st as p,w as m,x as h}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{f as g}from"./index-t7bgup9e.js";import{t as _}from"./_plugin-vue_export-helper-CXTkFu_Z.js";import{a as v}from"./competitions-DP_OWCTo.js";import{t as y}from"./adminCompetition-DfRlbUCX.js";import{t as b}from"./competitionAdminLabels-v0rVrY9u.js";import{t as x}from"./datetimeShanghai-D1tceWM9.js";var S={class:`page-header`},C={key:0,class:`pager`},w={class:`total`},T=_(d({__name:`CompetitionListView`,setup(d){let _=c([]),T=y(),E=c(!1),D=c(1),O=c(1),k=c(0),A=c(15);async function j(){E.value=!0;try{let e=await v({page:D.value,per_page:A.value});_.value=e.data,O.value=e.meta.last_page,k.value=e.meta.total,A.value=e.meta.per_page}catch(e){_.value=[],g.error(e instanceof Error?e.message:`加载失败`)}finally{E.value=!1}}function M(e){e<1||e>O.value||(D.value=e,j())}function N(e){return x(e)}return o(()=>{j()}),(o,c)=>{let d=s(`el-button`),g=s(`RouterLink`),v=s(`el-table-column`),y=s(`el-tag`),x=s(`el-table`),j=s(`el-pagination`),P=s(`el-card`),F=i(`loading`);return f(),m(`div`,null,[h(`div`,S,[c[1]||=h(`h2`,{class:`page-title`},`赛事列表`,-1),r(g,{to:{name:`admin-competition-new`}},{default:p(()=>[r(d,{type:`danger`},{default:p(()=>[...c[0]||=[t(`新建赛事`,-1)]]),_:1})]),_:1})]),r(P,{shadow:`never`},{default:p(()=>[l((f(),a(x,{data:_.value,stripe:``,style:{width:`100%`}},{empty:p(()=>[...c[3]||=[h(`span`,{class:`text-muted`},`暂无数据`,-1)]]),default:p(()=>[r(v,{prop:`name`,label:`名称`,"min-width":`140`,"show-overflow-tooltip":``}),r(v,{prop:`slug`,label:`访问地址`,"min-width":`120`,"show-overflow-tooltip":``}),r(v,{label:`状态`,width:`120`},{default:p(({row:e})=>[t(u(n(b)(e.status)),1)]),_:1}),r(v,{label:`对外可见`,width:`100`},{default:p(({row:e})=>[r(y,{type:e.published?`success`:`info`,size:`small`},{default:p(()=>[t(u(e.published?`是`:`否`),1)]),_:2},1032,[`type`])]),_:1}),r(v,{label:`报名开始`,"min-width":`160`},{default:p(({row:e})=>[t(u(N(e.signup_open_at??null)),1)]),_:1}),r(v,{label:`报名截止`,"min-width":`160`},{default:p(({row:e})=>[t(u(N(e.signup_close_at??null)),1)]),_:1}),r(v,{label:`操作`,width:`140`,fixed:`right`},{default:p(({row:e})=>[r(g,{to:{name:`admin-competition-workspace`},onClick:t=>n(T).selectCompetition(e.id)},{default:p(()=>[r(d,{type:`danger`,link:``},{default:p(()=>[...c[2]||=[t(`进入赛事中心`,-1)]]),_:1})]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[F,E.value]]),O.value>1?(f(),m(`div`,C,[h(`span`,w,`共 `+u(k.value)+` 条`,1),r(j,{background:``,layout:`prev, pager, next`,"current-page":D.value,"page-size":A.value,total:k.value,onCurrentChange:M},null,8,[`current-page`,`page-size`,`total`])])):e(``,!0)]),_:1})])}}}),[[`__scopeId`,`data-v-0694ed3e`]]);export{T as default};

@ -1,4 +1,4 @@
import{$t as e,C as t,E as n,Et as r,G as i,W as a,Y as o,_t as s,b as c,ct as ee,d as te,g as l,in as u,k as ne,m as re,q as d,w as f,x as p}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{d as ie,h as ae,m as oe,o as se,s as ce}from"./api-rQwE0AaH.js";import{l as le,t as m,u as ue}from"./index-DAT5gpOZ.js";/* empty css */import{i as h,r as g,t as de}from"./competitionBranding-DKFkcrfF.js";import{n as _,t as fe}from"./participantContact-DSzdsPPk.js";/* empty css */var pe={class:`login-page-wls__wrap`},me={class:`login-page-wls__inner`},he={class:`login-page-wls__brand`,"aria-label":`系统说明`},ge={class:`login-page-wls__logo`,"aria-hidden":`true`},_e=[`src`],ve={key:1,viewBox:`0 0 100 100`,width:`72`,height:`72`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},ye={key:0,class:`login-page-wls__mark`},be=[`innerHTML`],xe={key:1,class:`login-page-wls__title`},Se=[`innerHTML`],Ce={class:`login-page-wls__panel`},we={class:`login-page-wls__card`},Te={key:0,class:`login-page-wls__card-title`},Ee={class:`login-page-wls__code-row`},De=[`value`],Oe=[`disabled`],ke=[`disabled`],v={class:`login-page-wls__contact`,"aria-label":`咨询电话`},y={class:`login-page-wls__contact-entry`},b={key:0,class:`login-page-wls__contact-sep`},x=[`href`],S=[`href`],C={key:0,class:`login-page-wls__footer`},w={class:`login-page-wls__copyright`},T=ne({__name:`LoginView`,setup(ne){let T=le(),E=ue(),D=s(``),O=s(``),k=s(!1),A=s(!1),j=s(!1),M=s(`获取验证码`),N=s(!1),P=s(``),F=s(`neutral`),I=c(()=>String(T.params.slug??``).trim()),L=s(``),R=s(g()),Ae=c(()=>F.value===`error`?`login-page-wls__hint login-page-wls__hint--error`:F.value===`success`?`login-page-wls__hint login-page-wls__hint--success`:`login-page-wls__hint`),je=c(()=>{let e=R.value.login.markLine;return h(e)?z(e):``}),Me=c(()=>{let e=R.value.login.headline;return h(e)?z(e):``});function z(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`)}let B=c(()=>L.value?L.value:h(R.value.login.slogan)?R.value.login.slogan:``),Ne=c(()=>!!L.value),Pe=c(()=>h(R.value.login.cardWelcome)?R.value.login.cardWelcome:``),V=c(()=>Pe.value.replace(/登陆/g,`登录`)),H=c(()=>h(R.value.login.footerCopyright)?R.value.login.footerCopyright:``),U=c(()=>h(R.value.login.logoUrl)?R.value.login.logoUrl:``),W=0;function G(){W&&=(window.clearInterval(W),0)}function Fe(){G();let e=ae();j.value=!0,M.value=`重新获取(${e}s)`,W=window.setInterval(()=>{if(--e,e<=0){G(),M.value=`获取验证码`,j.value=!1;return}M.value=`重新获取(${e}s)`},1e3)}function K(){return oe()}function q(e,t=`neutral`){P.value=e,F.value=t}function J(){P.value=``,F.value=`neutral`}function Y(e){return e.replace(/\D/g,``).slice(0,6)}function Ie(e){let t=e.target,n=Y(t?.value??``);O.value=n,t&&t.value!==n&&(t.value=n),A.value=!1}function X(e){if(typeof e!=`object`||!e)return`请求失败`;let t=e,n=t.message;if(typeof n==`string`&&n.trim())return n.trim();let r=t.errors;if(typeof r==`object`&&r&&!Array.isArray(r)){let e=Object.values(r).flatMap(e=>Array.isArray(e)?e.map(e=>String(e)):[]);if(e.length)return e.join(`
import{$t as e,C as t,E as n,Et as r,G as i,W as a,Y as o,_t as s,b as c,ct as ee,d as te,g as l,in as u,k as ne,m as re,q as d,w as f,x as p}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{d as ie,h as ae,m as oe,o as se,s as ce}from"./api-rQwE0AaH.js";import{l as le,t as m,u as ue}from"./index-t7bgup9e.js";/* empty css */import{i as h,r as g,t as de}from"./competitionBranding-DKFkcrfF.js";import{n as _,t as fe}from"./participantContact-DSzdsPPk.js";/* empty css */var pe={class:`login-page-wls__wrap`},me={class:`login-page-wls__inner`},he={class:`login-page-wls__brand`,"aria-label":`系统说明`},ge={class:`login-page-wls__logo`,"aria-hidden":`true`},_e=[`src`],ve={key:1,viewBox:`0 0 100 100`,width:`72`,height:`72`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},ye={key:0,class:`login-page-wls__mark`},be=[`innerHTML`],xe={key:1,class:`login-page-wls__title`},Se=[`innerHTML`],Ce={class:`login-page-wls__panel`},we={class:`login-page-wls__card`},Te={key:0,class:`login-page-wls__card-title`},Ee={class:`login-page-wls__code-row`},De=[`value`],Oe=[`disabled`],ke=[`disabled`],v={class:`login-page-wls__contact`,"aria-label":`咨询电话`},y={class:`login-page-wls__contact-entry`},b={key:0,class:`login-page-wls__contact-sep`},x=[`href`],S=[`href`],C={key:0,class:`login-page-wls__footer`},w={class:`login-page-wls__copyright`},T=ne({__name:`LoginView`,setup(ne){let T=le(),E=ue(),D=s(``),O=s(``),k=s(!1),A=s(!1),j=s(!1),M=s(`获取验证码`),N=s(!1),P=s(``),F=s(`neutral`),I=c(()=>String(T.params.slug??``).trim()),L=s(``),R=s(g()),Ae=c(()=>F.value===`error`?`login-page-wls__hint login-page-wls__hint--error`:F.value===`success`?`login-page-wls__hint login-page-wls__hint--success`:`login-page-wls__hint`),je=c(()=>{let e=R.value.login.markLine;return h(e)?z(e):``}),Me=c(()=>{let e=R.value.login.headline;return h(e)?z(e):``});function z(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`)}let B=c(()=>L.value?L.value:h(R.value.login.slogan)?R.value.login.slogan:``),Ne=c(()=>!!L.value),Pe=c(()=>h(R.value.login.cardWelcome)?R.value.login.cardWelcome:``),V=c(()=>Pe.value.replace(/登陆/g,`登录`)),H=c(()=>h(R.value.login.footerCopyright)?R.value.login.footerCopyright:``),U=c(()=>h(R.value.login.logoUrl)?R.value.login.logoUrl:``),W=0;function G(){W&&=(window.clearInterval(W),0)}function Fe(){G();let e=ae();j.value=!0,M.value=`重新获取(${e}s)`,W=window.setInterval(()=>{if(--e,e<=0){G(),M.value=`获取验证码`,j.value=!1;return}M.value=`重新获取(${e}s)`},1e3)}function K(){return oe()}function q(e,t=`neutral`){P.value=e,F.value=t}function J(){P.value=``,F.value=`neutral`}function Y(e){return e.replace(/\D/g,``).slice(0,6)}function Ie(e){let t=e.target,n=Y(t?.value??``);O.value=n,t&&t.value!==n&&(t.value=n),A.value=!1}function X(e){if(typeof e!=`object`||!e)return`请求失败`;let t=e,n=t.message;if(typeof n==`string`&&n.trim())return n.trim();let r=t.errors;if(typeof r==`object`&&r&&!Array.isArray(r)){let e=Object.values(r).flatMap(e=>Array.isArray(e)?e.map(e=>String(e)):[]);if(e.length)return e.join(`
`)}return`请求失败`}let Z=null,Q=null,$=!1;async function Le(){L.value=``,R.value=g();let e=I.value,t=typeof document<`u`?document.title:``;if(!e){L.value=`缺少赛事访问地址,请从正确入口进入`;return}try{let n=await fetch(`${K()}/api/v1/public/competitions/by-slug/${encodeURIComponent(e)}`,{headers:{Accept:`application/json`}});if(!n.ok){L.value=n.status===404?`赛事不存在或未发布,请核对访问地址`:`无法加载赛事信息`;return}let r=await n.json();R.value=de(r.branding_json??r.branding??null);let i=R.value.documentTitle;typeof document<`u`&&(h(i)?document.title=i:document.title=t);let a=R.value.login.themePrimary;if(h(a)&&typeof document<`u`){Z===null&&(Z=document.body.style.getPropertyValue(`--primary`)||``),document.body.style.setProperty(`--primary`,a);let e=`${a}14`;document.body.style.setProperty(`--primary-soft`,e)}let o=R.value.login.faviconUrl;if(h(o)&&typeof document<`u`){let e=document.querySelector(`link[rel~="icon"]`);e||(e=document.createElement(`link`),e.rel=`icon`,document.head.appendChild(e)),Q===null&&(Q=e.getAttribute(`href`)||``),e.href=o}}catch{L.value=`网络错误,无法校验赛事链接`}}async function Re(){if(j.value)return;let e=D.value.trim();if(!/^1[3-9]\d{9}$/.test(e)){k.value=!0,A.value=!1,q(`请先填写正确手机号`,`error`);return}k.value=!1,A.value=!1,J(),j.value=!0,M.value=`发送中...`;let t=`${K()}${ce}`;try{let n=await fetch(t,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`,"X-Requested-With":`XMLHttpRequest`},body:JSON.stringify({mobile:e})}),r=await n.json().catch(()=>({}));if(!n.ok){q(X(r),`error`),M.value=`获取验证码`,j.value=!1,G();return}J(),Fe()}catch{q(`网络错误,请确认后端已启动(Vite 将 /api 代理至 php artisan serve 端口,见 vite.config)`,`error`),M.value=`获取验证码`,j.value=!1,G()}}async function ze(){let e=/^1[3-9]\d{9}$/.test(D.value.trim()),t=Y(O.value);O.value=t;let n=t.length===6;if(k.value=!e,A.value=e&&!n,!e){q(`请先填写正确手机号`,`error`);return}if(!n){q(`请输入 6 位验证码`,`error`);return}if(J(),N.value=!0,q(`登录中...`,`neutral`),!I.value){q(`缺少赛事访问地址,请从正确入口进入`,`error`),N.value=!1;return}let r=`${K()}${se}`;try{let e=m(),n=await fetch(r,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`,"X-Requested-With":`XMLHttpRequest`},body:JSON.stringify({mobile:D.value.trim(),code:t,competition_slug:I.value,...e?{public_source_code:e}:{}})}),i=await n.json().catch(()=>({}));if(!n.ok){q(X(i),`error`);return}J(),localStorage.setItem(ie,i.token),localStorage.setItem(`cxxfds_user`,JSON.stringify(i.user));let a=typeof T.query.redirect==`string`?T.query.redirect:``;if(a&&a.startsWith(`/`)){await E.replace(a);return}let o=I.value;o?await E.replace({name:`participant-apply`,params:{slug:o}}):await E.replace(`/c`)}catch{q(`网络错误,请确认后端已启动`,`error`)}finally{N.value=!1}}return a(()=>{typeof document<`u`&&(document.documentElement.classList.add(`cxxfds-login-page`),$=!0),document.body.classList.add(`login-page-wls`),Le()}),i(()=>{if(typeof document<`u`&&$&&(document.documentElement.classList.remove(`cxxfds-login-page`),$=!1),document.body.classList.remove(`login-page-wls`),G(),typeof document<`u`&&(Z!==null&&(Z===``?(document.body.style.removeProperty(`--primary`),document.body.style.removeProperty(`--primary-soft`)):document.body.style.setProperty(`--primary`,Z),Z=null),Q!==null)){let e=document.querySelector(`link[rel~="icon"]`);e&&(Q===``?e.removeAttribute(`href`):e.href=Q),Q=null}}),(i,a)=>(d(),f(`div`,pe,[p(`div`,me,[p(`aside`,he,[p(`div`,ge,[U.value?(d(),f(`img`,{key:0,src:U.value,alt:``,class:`login-page-wls__logo-img`,width:`72`,height:`72`},null,8,_e)):(d(),f(`svg`,ve,[...a[2]||=[n(`<defs><linearGradient id="loginPetalGrad" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#dc4a54"></stop><stop offset="45%" stop-color="#b40010"></stop><stop offset="100%" stop-color="#7d070c"></stop></linearGradient><path id="loginPetal" d="M50 50
C46.2 44.2 44.2 34.5 46.2 27.2
C47.3 23.6 48.6 21.2 50 20.2

@ -1 +1 @@
.manage-pledge-sig-row[data-v-1a2ba7ac]{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.35rem .65rem;display:flex}.manage-promise-sig-img[data-v-1a2ba7ac]{vertical-align:middle;object-fit:contain;width:auto;max-width:140px;height:auto;max-height:48px;display:inline-block}.promise-doc-body--rich[data-v-1a2ba7ac]{text-align:justify;font-size:.95rem;line-height:1.65}.promise-doc-body--rich[data-v-1a2ba7ac] p{margin-bottom:.75rem}#managePledgeModal .manage-detail-modal--pledge{--bs-modal-width:min(32rem, calc(100vw - 1.5rem));max-width:min(32rem,100vw - 1.5rem)}#managePledgeModal .promise-doc-scroll{max-height:min(38vh,100dvh - 15rem);overflow-y:auto}
.manage-pledge-sig-row[data-v-8fadd682]{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.35rem .65rem;display:flex}.manage-promise-sig-img[data-v-8fadd682]{vertical-align:middle;object-fit:contain;width:auto;max-width:140px;height:auto;max-height:48px;display:inline-block}.promise-doc-body--rich[data-v-8fadd682]{text-align:justify;font-size:.95rem;line-height:1.65}.promise-doc-body--rich[data-v-8fadd682] p{margin-bottom:.75rem}#managePledgeModal .manage-detail-modal--pledge{--bs-modal-width:min(32rem, calc(100vw - 1.5rem));max-width:min(32rem,100vw - 1.5rem)}#managePledgeModal .promise-doc-scroll{max-height:min(38vh,100dvh - 15rem);overflow-y:auto}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +1 @@
import{O as e,k as t,q as n,w as r}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{t as i}from"./_plugin-vue_export-helper-CXTkFu_Z.js";import{t as a}from"./ReviewerManageView-D2W38ovd.js";var o={class:`manage-reviewers-wrap`},s=i(t({__name:`ManageReviewersView`,setup(t){return(t,i)=>(n(),r(`div`,o,[e(a)]))}}),[[`__scopeId`,`data-v-d6e992f3`]]);export{s as default};
import{O as e,k as t,q as n,w as r}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{t as i}from"./_plugin-vue_export-helper-CXTkFu_Z.js";import{t as a}from"./ReviewerManageView-DQKBYPkH.js";var o={class:`manage-reviewers-wrap`},s=i(t({__name:`ManageReviewersView`,setup(t){return(t,i)=>(n(),r(`div`,o,[e(a)]))}}),[[`__scopeId`,`data-v-d6e992f3`]]);export{s as default};

@ -1 +1 @@
import{W as e,_t as t,in as n,k as r,q as i,w as a}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{a as o,d as s,n as c}from"./api-rQwE0AaH.js";import{l,u}from"./index-DAT5gpOZ.js";var d={class:`container py-5 text-center`},f={key:0,class:`text-danger`},p={key:1,class:`text-secondary`},m=r({__name:`ParticipantImpersonateEntryView`,setup(r){let m=l(),h=u(),g=t(``);return e(()=>{let e=String(m.params.slug??``).trim(),t=String(m.query.token??``).trim();if(!e||!t){g.value=`代登参数无效`;return}localStorage.setItem(s,t),localStorage.setItem(o,e),sessionStorage.setItem(c,`1`),h.replace({name:`participant-apply`,params:{slug:e}})}),(e,t)=>(i(),a(`div`,d,[g.value?(i(),a(`p`,f,n(g.value),1)):(i(),a(`p`,p,`正在进入选手端…`))]))}});export{m as default};
import{W as e,_t as t,in as n,k as r,q as i,w as a}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{a as o,d as s,n as c}from"./api-rQwE0AaH.js";import{l,u}from"./index-t7bgup9e.js";var d={class:`container py-5 text-center`},f={key:0,class:`text-danger`},p={key:1,class:`text-secondary`},m=r({__name:`ParticipantImpersonateEntryView`,setup(r){let m=l(),h=u(),g=t(``);return e(()=>{let e=String(m.params.slug??``).trim(),t=String(m.query.token??``).trim();if(!e||!t){g.value=`代登参数无效`;return}localStorage.setItem(s,t),localStorage.setItem(o,e),sessionStorage.setItem(c,`1`),h.replace({name:`participant-apply`,params:{slug:e}})}),(e,t)=>(i(),a(`div`,d,[g.value?(i(),a(`p`,f,n(g.value),1)):(i(),a(`p`,p,`正在进入选手端…`))]))}});export{m as default};

@ -1 +1 @@
import{C as e,D as t,_t as n,ct as r,d as i,in as a,k as o,p as s,q as c,w as l,x as u}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{u as d}from"./index-DAT5gpOZ.js";/* empty css */var f={class:`min-vh-100 d-flex flex-column bg-light`},p={class:`container py-5 flex-grow-1`},m={class:`mx-auto card shadow-sm`,style:{"max-width":`420px`}},h={class:`card-body p-4`},g={key:0,class:`text-danger small mb-2`},_=o({__name:`ParticipantLandingView`,setup(o){let _=d(),v=n(``),y=n(``);function b(){let e=v.value.trim();if(y.value=``,!e){y.value=`请填写访问地址`;return}_.push({name:`participant-login`,params:{slug:e}})}return(n,o)=>(c(),l(`div`,f,[u(`div`,p,[u(`div`,m,[u(`div`,h,[o[1]||=u(`h1`,{class:`h5 mb-2`},`赛事报名入口`,-1),o[2]||=u(`p`,{class:`text-muted small mb-3`},[t(` 请输入主办方提供的`),u(`strong`,null,`访问地址`),t(`(与后台赛事「访问地址」一致,可为中文);也可直接使用完整链接 `),u(`code`,{class:`small`},`/c/您的访问地址/login`),t(`。 `)],-1),o[3]||=u(`label`,{class:`form-label small`},`访问地址(slug)`,-1),r(u(`input`,{"onUpdate:modelValue":o[0]||=e=>v.value=e,type:`text`,class:`form-control mb-2`,autocomplete:`off`,placeholder:`例如:新消费大赛-2026`,onKeyup:s(b,[`enter`])},null,544),[[i,v.value,void 0,{trim:!0}]]),y.value?(c(),l(`p`,g,a(y.value),1)):e(``,!0),u(`button`,{type:`button`,class:`btn btn-danger w-100`,onClick:b},`前往登录`)])])])]))}});export{_ as default};
import{C as e,D as t,_t as n,ct as r,d as i,in as a,k as o,p as s,q as c,w as l,x as u}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{u as d}from"./index-t7bgup9e.js";/* empty css */var f={class:`min-vh-100 d-flex flex-column bg-light`},p={class:`container py-5 flex-grow-1`},m={class:`mx-auto card shadow-sm`,style:{"max-width":`420px`}},h={class:`card-body p-4`},g={key:0,class:`text-danger small mb-2`},_=o({__name:`ParticipantLandingView`,setup(o){let _=d(),v=n(``),y=n(``);function b(){let e=v.value.trim();if(y.value=``,!e){y.value=`请填写访问地址`;return}_.push({name:`participant-login`,params:{slug:e}})}return(n,o)=>(c(),l(`div`,f,[u(`div`,p,[u(`div`,m,[u(`div`,h,[o[1]||=u(`h1`,{class:`h5 mb-2`},`赛事报名入口`,-1),o[2]||=u(`p`,{class:`text-muted small mb-3`},[t(` 请输入主办方提供的`),u(`strong`,null,`访问地址`),t(`(与后台赛事「访问地址」一致,可为中文);也可直接使用完整链接 `),u(`code`,{class:`small`},`/c/您的访问地址/login`),t(`。 `)],-1),o[3]||=u(`label`,{class:`form-label small`},`访问地址(slug)`,-1),r(u(`input`,{"onUpdate:modelValue":o[0]||=e=>v.value=e,type:`text`,class:`form-control mb-2`,autocomplete:`off`,placeholder:`例如:新消费大赛-2026`,onKeyup:s(b,[`enter`])},null,544),[[i,v.value,void 0,{trim:!0}]]),y.value?(c(),l(`p`,g,a(y.value),1)):e(``,!0),u(`button`,{type:`button`,class:`btn btn-danger w-100`,onClick:b},`前往登录`)])])])]))}});export{_ as default};

@ -1 +1 @@
import{D as e,Et as t,O as n,S as r,Z as i,b as a,in as o,k as s,q as c,st as l,w as u,x as d}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{b as f,f as p}from"./index-DAT5gpOZ.js";import{t as m}from"./_plugin-vue_export-helper-CXTkFu_Z.js";import{t as h}from"./adminCompetition-m6obxaBw.js";var g={class:`url`},_={class:`url`},v=m(s({__name:`ReviewPortalView`,setup(s){let{selectedCompetitionId:m,selectedCompetition:v}=f(h()),y=a(()=>(void 0)?.trim()?(void 0).trim().replace(/\/$/,``):window.location.origin),b=a(()=>`/admin/`.endsWith(`/`)?`/admin/`.slice(0,-1):`/admin/`),x=a(()=>{let e=v.value?.slug;return e?`${b.value}/c/${encodeURIComponent(e)}/review`:``}),S=a(()=>`${y.value}${x.value}`);async function C(e){try{await navigator.clipboard.writeText(e),p.success(`已复制`)}catch{p.error(`复制失败,请手动选择文本`)}}return(a,s)=>{let f=i(`el-alert`),p=i(`el-descriptions-item`),h=i(`el-button`),y=i(`el-descriptions`),b=i(`el-card`);return c(),u(`div`,null,[s[5]||=d(`h2`,{class:`page-title`},`评审端入口说明`,-1),s[6]||=d(`p`,{class:`lead`},[e(` 评审员`),d(`strong`,null,`不使用本管理后台`),e(`登录;请在赛事前台域名下访问评审工作台(见《需求规格说明书》FR-R-03、FR-V 系列)。以下链接按当前「赛事切换器」中选中的场次生成。 `)],-1),t(m)?(c(),r(y,{key:1,border:``,column:1,title:`本场评审访问地址`},{default:l(()=>[n(p,{label:`赛事名称`},{default:l(()=>[e(o(t(v)?.name),1)]),_:1}),n(p,{label:`slug`},{default:l(()=>[e(o(t(v)?.slug),1)]),_:1}),n(p,{label:`建议完整 URL`},{default:l(()=>[d(`code`,g,o(S.value),1),n(h,{type:`primary`,link:``,onClick:s[0]||=e=>C(S.value)},{default:l(()=>[...s[2]||=[e(`复制`,-1)]]),_:1})]),_:1}),n(p,{label:`同源相对路径`},{default:l(()=>[d(`code`,_,o(x.value),1),n(h,{type:`primary`,link:``,onClick:s[1]||=e=>C(x.value)},{default:l(()=>[...s[3]||=[e(`复制`,-1)]]),_:1})]),_:1})]),_:1})):(c(),r(f,{key:0,type:`warning`,"show-icon":``,closable:!1,title:`请先在顶栏选择一个赛事。`,style:{"margin-bottom":`16px`}})),n(b,{shadow:`never`,class:`hints`,header:`接入说明`},{default:l(()=>[...s[4]||=[d(`ul`,{class:`bullet`},[d(`li`,null,[e(` 若评审端与选手端部署在同一前端工程,路径一般为 `),d(`code`,null,`/c/{slug}/review`),e(`;品牌化文案读取当前赛事 `),d(`code`,null,`branding.review`),e(`。 `)]),d(`li`,null,[e(` 若域名与后台不同,可在环境变量 `),d(`code`,null,`VITE_PARTICIPANT_PUBLIC_ORIGIN`),e(` 中配置选手端/评审端的公开站点域名,便于后台展示可复制的完整 URL。 `)]),d(`li`,null,[e(`评审列表数据须按后台配置的 `),d(`code`,null,`reviewer_scopes`),e(`(赛事 × track_code)由后端过滤。`)])],-1)]]),_:1})])}}}),[[`__scopeId`,`data-v-0e77d9b5`]]);export{v as default};
import{D as e,Et as t,O as n,S as r,Z as i,b as a,in as o,k as s,q as c,st as l,w as u,x as d}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{b as f,f as p}from"./index-t7bgup9e.js";import{t as m}from"./_plugin-vue_export-helper-CXTkFu_Z.js";import{t as h}from"./adminCompetition-DfRlbUCX.js";var g={class:`url`},_={class:`url`},v=m(s({__name:`ReviewPortalView`,setup(s){let{selectedCompetitionId:m,selectedCompetition:v}=f(h()),y=a(()=>(void 0)?.trim()?(void 0).trim().replace(/\/$/,``):window.location.origin),b=a(()=>`/admin/`.endsWith(`/`)?`/admin/`.slice(0,-1):`/admin/`),x=a(()=>{let e=v.value?.slug;return e?`${b.value}/c/${encodeURIComponent(e)}/review`:``}),S=a(()=>`${y.value}${x.value}`);async function C(e){try{await navigator.clipboard.writeText(e),p.success(`已复制`)}catch{p.error(`复制失败,请手动选择文本`)}}return(a,s)=>{let f=i(`el-alert`),p=i(`el-descriptions-item`),h=i(`el-button`),y=i(`el-descriptions`),b=i(`el-card`);return c(),u(`div`,null,[s[5]||=d(`h2`,{class:`page-title`},`评审端入口说明`,-1),s[6]||=d(`p`,{class:`lead`},[e(` 评审员`),d(`strong`,null,`不使用本管理后台`),e(`登录;请在赛事前台域名下访问评审工作台(见《需求规格说明书》FR-R-03、FR-V 系列)。以下链接按当前「赛事切换器」中选中的场次生成。 `)],-1),t(m)?(c(),r(y,{key:1,border:``,column:1,title:`本场评审访问地址`},{default:l(()=>[n(p,{label:`赛事名称`},{default:l(()=>[e(o(t(v)?.name),1)]),_:1}),n(p,{label:`slug`},{default:l(()=>[e(o(t(v)?.slug),1)]),_:1}),n(p,{label:`建议完整 URL`},{default:l(()=>[d(`code`,g,o(S.value),1),n(h,{type:`primary`,link:``,onClick:s[0]||=e=>C(S.value)},{default:l(()=>[...s[2]||=[e(`复制`,-1)]]),_:1})]),_:1}),n(p,{label:`同源相对路径`},{default:l(()=>[d(`code`,_,o(x.value),1),n(h,{type:`primary`,link:``,onClick:s[1]||=e=>C(x.value)},{default:l(()=>[...s[3]||=[e(`复制`,-1)]]),_:1})]),_:1})]),_:1})):(c(),r(f,{key:0,type:`warning`,"show-icon":``,closable:!1,title:`请先在顶栏选择一个赛事。`,style:{"margin-bottom":`16px`}})),n(b,{shadow:`never`,class:`hints`,header:`接入说明`},{default:l(()=>[...s[4]||=[d(`ul`,{class:`bullet`},[d(`li`,null,[e(` 若评审端与选手端部署在同一前端工程,路径一般为 `),d(`code`,null,`/c/{slug}/review`),e(`;品牌化文案读取当前赛事 `),d(`code`,null,`branding.review`),e(`。 `)]),d(`li`,null,[e(` 若域名与后台不同,可在环境变量 `),d(`code`,null,`VITE_PARTICIPANT_PUBLIC_ORIGIN`),e(` 中配置选手端/评审端的公开站点域名,便于后台展示可复制的完整 URL。 `)]),d(`li`,null,[e(`评审列表数据须按后台配置的 `),d(`code`,null,`reviewer_scopes`),e(`(赛事 × track_code)由后端过滤。`)])],-1)]]),_:1})])}}}),[[`__scopeId`,`data-v-0e77d9b5`]]);export{v as default};

@ -1,4 +1,4 @@
import{$t as e,C as t,E as n,Et as r,G as i,W as a,_t as o,b as s,ct as c,d as l,in as u,k as d,m as ee,q as f,w as p,x as m}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{T as te,l as ne,m as re}from"./api-rQwE0AaH.js";import{c as h,d as g,l as _,o as v,s as y,u as b}from"./index-DAT5gpOZ.js";/* empty css */import{i as x,r as S,t as C}from"./competitionBranding-DKFkcrfF.js";/* empty css */var ie={class:`login-page-wls__wrap`},ae={class:`login-page-wls__inner`},oe={class:`login-page-wls__brand`,"aria-label":`赛事说明`},se={class:`login-page-wls__logo`,"aria-hidden":`true`},ce=[`src`],le={key:1,viewBox:`0 0 100 100`,width:`72`,height:`72`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},ue={key:0,class:`login-page-wls__mark`},de=[`innerHTML`],fe={key:1,class:`login-page-wls__title`},w=[`innerHTML`],T={class:`login-page-wls__panel`},E={class:`login-page-wls__card`},pe={class:`login-page-wls__card-title`},me=[`disabled`],he=[`disabled`],ge=[`disabled`],_e={key:0,class:`login-page-wls__footer`},D={class:`login-page-wls__copyright`},O=d({__name:`ReviewerLoginView`,setup(d){let O=_(),k=b(),A=o(``),j=o(``),M=o(!1),N=o(!1),P=o(!1),F=o(``),I=o(`neutral`),L=s(()=>String(O.params.slug??``).trim()),R=o(``),z=o(S()),B=o(!0),V=o(``),H=o(!1),ve=s(()=>I.value===`error`?`login-page-wls__hint login-page-wls__hint--error`:I.value===`success`?`login-page-wls__hint login-page-wls__hint--success`:`login-page-wls__hint`);function U(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`)}let ye=s(()=>{let e=z.value.login.markLine;return x(e)?U(e):``}),be=s(()=>{let e=z.value.login.headline;return x(e)?U(e):``}),W=s(()=>{if(R.value)return R.value;let e=z.value.login.slogan;return x(e)?e:``}),xe=s(()=>!!R.value),Se=s(()=>x(z.value.login.cardWelcome)?z.value.login.cardWelcome.replace(/登陆/g,`登录`):`评审员登录`),G=s(()=>x(z.value.login.footerCopyright)?z.value.login.footerCopyright:``),K=s(()=>x(z.value.login.logoUrl)?z.value.login.logoUrl:``),q=null,J=null,Y=!1;function X(){return re()}function Z(e,t=`neutral`){F.value=e,I.value=t}function Q(){F.value=``,I.value=`neutral`}function Ce(e){if(typeof e!=`object`||!e)return`请求失败`;let t=e,n=t.message;if(typeof n==`string`&&n.trim())return n.trim();let r=t.errors;if(typeof r==`object`&&r&&!Array.isArray(r)){let e=Object.values(r).flatMap(e=>Array.isArray(e)?e.map(e=>String(e)):[]);if(e.length)return e.join(`
import{$t as e,C as t,E as n,Et as r,G as i,W as a,_t as o,b as s,ct as c,d as l,in as u,k as d,m as ee,q as f,w as p,x as m}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{T as te,l as ne,m as re}from"./api-rQwE0AaH.js";import{c as h,d as g,l as _,o as v,s as y,u as b}from"./index-t7bgup9e.js";/* empty css */import{i as x,r as S,t as C}from"./competitionBranding-DKFkcrfF.js";/* empty css */var ie={class:`login-page-wls__wrap`},ae={class:`login-page-wls__inner`},oe={class:`login-page-wls__brand`,"aria-label":`赛事说明`},se={class:`login-page-wls__logo`,"aria-hidden":`true`},ce=[`src`],le={key:1,viewBox:`0 0 100 100`,width:`72`,height:`72`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},ue={key:0,class:`login-page-wls__mark`},de=[`innerHTML`],fe={key:1,class:`login-page-wls__title`},w=[`innerHTML`],T={class:`login-page-wls__panel`},E={class:`login-page-wls__card`},pe={class:`login-page-wls__card-title`},me=[`disabled`],he=[`disabled`],ge=[`disabled`],_e={key:0,class:`login-page-wls__footer`},D={class:`login-page-wls__copyright`},O=d({__name:`ReviewerLoginView`,setup(d){let O=_(),k=b(),A=o(``),j=o(``),M=o(!1),N=o(!1),P=o(!1),F=o(``),I=o(`neutral`),L=s(()=>String(O.params.slug??``).trim()),R=o(``),z=o(S()),B=o(!0),V=o(``),H=o(!1),ve=s(()=>I.value===`error`?`login-page-wls__hint login-page-wls__hint--error`:I.value===`success`?`login-page-wls__hint login-page-wls__hint--success`:`login-page-wls__hint`);function U(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`)}let ye=s(()=>{let e=z.value.login.markLine;return x(e)?U(e):``}),be=s(()=>{let e=z.value.login.headline;return x(e)?U(e):``}),W=s(()=>{if(R.value)return R.value;let e=z.value.login.slogan;return x(e)?e:``}),xe=s(()=>!!R.value),Se=s(()=>x(z.value.login.cardWelcome)?z.value.login.cardWelcome.replace(/登陆/g,`登录`):`评审员登录`),G=s(()=>x(z.value.login.footerCopyright)?z.value.login.footerCopyright:``),K=s(()=>x(z.value.login.logoUrl)?z.value.login.logoUrl:``),q=null,J=null,Y=!1;function X(){return re()}function Z(e,t=`neutral`){F.value=e,I.value=t}function Q(){F.value=``,I.value=`neutral`}function Ce(e){if(typeof e!=`object`||!e)return`请求失败`;let t=e,n=t.message;if(typeof n==`string`&&n.trim())return n.trim();let r=t.errors;if(typeof r==`object`&&r&&!Array.isArray(r)){let e=Object.values(r).flatMap(e=>Array.isArray(e)?e.map(e=>String(e)):[]);if(e.length)return e.join(`
`)}return`请求失败`}async function $(e){if(H.value)return;H.value=!0;let t=U(v(e)).replace(/\r\n|\r|\n/g,`<br>`);try{await g.alert(t,`评审暂未开放`,{confirmButtonText:`知道了`,confirmButtonClass:`login-page-wls__msgbox-confirm`,customClass:`login-page-wls__msgbox`,closeOnClickModal:!1,closeOnPressEscape:!1,showClose:!1,autofocus:!1,dangerouslyUseHTMLString:!0})}catch{}finally{H.value=!1}}async function we(){R.value=``,z.value=S(),B.value=!0,V.value=``,H.value=!1;let e=L.value,t=typeof document<`u`?document.title:``;if(!e){R.value=`缺少赛事访问地址,请从正确入口进入`;return}try{y(e);let n=await fetch(`${X()}/api/v1/public/competitions/by-slug/${encodeURIComponent(e)}`,{headers:{Accept:`application/json`}});if(!n.ok){R.value=n.status===404?`赛事不存在或未发布,请核对访问地址`:`无法加载赛事信息`;return}let r=await n.json(),i=typeof r==`object`&&r&&`data`in r?r.data:r;z.value=C(i?.branding_json??i?.branding??null);let a=h(i);B.value=a.enabled,V.value=a.message,a.enabled||$(a.message);let o=z.value.documentTitle;typeof document<`u`&&(document.title=x(o)?`${Te(o)} · 评审登录`:t||`评审登录`);let s=z.value.login.themePrimary;x(s)&&typeof document<`u`&&(q===null&&(q=document.body.style.getPropertyValue(`--primary`)||``),document.body.style.setProperty(`--primary`,s),document.body.style.setProperty(`--primary-soft`,`${s}14`));let c=z.value.login.faviconUrl;if(x(c)&&typeof document<`u`){let e=document.querySelector(`link[rel~="icon"]`);e||(e=document.createElement(`link`),e.rel=`icon`,document.head.appendChild(e)),J===null&&(J=e.getAttribute(`href`)||``),e.href=c}}catch{R.value=`网络错误,无法校验赛事链接`}}function Te(e){return e.replace(/[\u200B-\u200D\uFEFF]/gu,``).trim()}async function Ee(){if(!B.value){$(V.value),Z(v(V.value),`error`);return}let e=A.value.trim(),t=j.value;if(M.value=!e,N.value=!t,!e){Z(`请填写账号`,`error`);return}if(!t){Z(`请填写密码`,`error`);return}if(!L.value){Z(`缺少赛事访问地址`,`error`);return}Q(),P.value=!0,Z(`登录中…`,`neutral`);try{let n=`${X()}${ne}`,r=await fetch(n,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`,"X-Requested-With":`XMLHttpRequest`},body:JSON.stringify({username:e,password:t,competition_slug:L.value})}),i=await r.json().catch(()=>({}));if(!r.ok){Z(Ce(i),`error`);let e=i.errors?.competition_slug,t=Array.isArray(e)?String(e[0]??``):``;t&&!t.includes(`不存在`)&&!t.includes(`未发布`)&&(B.value=!1,V.value=t,$(t));return}Q();let a=i.token;if(typeof a!=`string`||!a){Z(`登录响应异常:缺少令牌`,`error`);return}te(a,L.value);let o=typeof O.query.redirect==`string`?O.query.redirect:``;if(o&&o.startsWith(`/`)){await k.replace(o);return}await k.replace({name:`reviewer-projects`,params:{slug:L.value}})}catch{Z(`网络错误,请确认后端已启动`,`error`)}finally{P.value=!1}}return a(()=>{typeof document<`u`&&(document.documentElement.classList.add(`cxxfds-login-page`),Y=!0),document.body.classList.add(`login-page-wls`),we()}),i(()=>{if(typeof document<`u`&&Y&&(document.documentElement.classList.remove(`cxxfds-login-page`),Y=!1),document.body.classList.remove(`login-page-wls`),typeof document<`u`&&(q!==null&&(q===``?(document.body.style.removeProperty(`--primary`),document.body.style.removeProperty(`--primary-soft`)):document.body.style.setProperty(`--primary`,q),q=null),J!==null)){let e=document.querySelector(`link[rel~="icon"]`);e&&(J===``?e.removeAttribute(`href`):e.href=J),J=null}}),(i,a)=>(f(),p(`div`,ie,[m(`div`,ae,[m(`aside`,oe,[m(`div`,se,[K.value?(f(),p(`img`,{key:0,src:K.value,alt:``,class:`login-page-wls__logo-img`,width:`72`,height:`72`},null,8,ce)):(f(),p(`svg`,le,[...a[4]||=[n(`<defs><linearGradient id="reviewerLoginPetalGrad" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#dc4a54"></stop><stop offset="45%" stop-color="#b40010"></stop><stop offset="100%" stop-color="#7d070c"></stop></linearGradient><path id="reviewerLoginPetal" d="M50 50
C46.2 44.2 44.2 34.5 46.2 27.2
C47.3 23.6 48.6 21.2 50 20.2

@ -1 +1 @@
import{_t as e,b as t}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{t as n}from"./api-rQwE0AaH.js";import{y as r}from"./index-DAT5gpOZ.js";function i(){let e=localStorage.getItem(n);if(!e)return null;let t=Number(e);return Number.isFinite(t)&&t>0?t:null}var a=r(`adminCompetitionContext`,()=>{let r=e([]),a=e(i()),o=t(()=>r.value.find(e=>e.id===a.value)??null);function s(e){r.value=e,a.value&&!e.some(e=>e.id===a.value)&&(a.value=e[0]?.id??null,l()),!a.value&&e[0]&&(a.value=e[0].id,l())}function c(e){a.value=e,l()}function l(){let e=a.value;e?localStorage.setItem(n,String(e)):localStorage.removeItem(n)}return{competitions:r,selectedCompetitionId:a,selectedCompetition:o,setCompetitionList:s,selectCompetition:c}});export{a as t};
import{_t as e,b as t}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{t as n}from"./api-rQwE0AaH.js";import{y as r}from"./index-t7bgup9e.js";function i(){let e=localStorage.getItem(n);if(!e)return null;let t=Number(e);return Number.isFinite(t)&&t>0?t:null}var a=r(`adminCompetitionContext`,()=>{let r=e([]),a=e(i()),o=t(()=>r.value.find(e=>e.id===a.value)??null);function s(e){r.value=e,a.value&&!e.some(e=>e.id===a.value)&&(a.value=e[0]?.id??null,l()),!a.value&&e[0]&&(a.value=e[0].id,l())}function c(e){a.value=e,l()}function l(){let e=a.value;e?localStorage.setItem(n,String(e)):localStorage.removeItem(n)}return{competitions:r,selectedCompetitionId:a,selectedCompetition:o,setCompetitionList:s,selectCompetition:c}});export{a as t};

@ -1 +1 @@
import{a as e,i as t}from"./index-DAT5gpOZ.js";import{r as n,t as r}from"./downloadFeedback-aIJlOgpJ.js";function i(e){if(!e||typeof e!=`object`)throw Error(`列表响应格式无效`);let t=e;if(Array.isArray(t.data)&&typeof t.current_page==`number`){let e=t.data;return{data:e,meta:{current_page:t.current_page,last_page:typeof t.last_page==`number`?t.last_page:1,per_page:typeof t.per_page==`number`?t.per_page:e.length||15,total:typeof t.total==`number`?t.total:e.length}}}throw Error(`列表响应格式无效`)}async function a(e,n){let{data:r}=await t.get(`/competitions/${e}/applications`,{params:n});return i(r)}async function o(e,n){let{data:r}=await t.get(`/competitions/${e}/applications/${n}`);if(!r||typeof r!=`object`)throw Error(`报名详情无效`);return r}async function s(e,n,r){let{data:i}=await t.patch(`/competitions/${e}/applications/${n}/review-eligible`,{review_eligible:r});return i}async function c(n,r){try{let{data:e}=await t.post(`/competitions/${n}/applications/${r}/impersonate`);if(!e||typeof e!=`object`)throw Error(`代登响应无效`);let i=e;if(typeof i.token!=`string`||!i.token.trim())throw Error(`代登 Token 无效`);if(typeof i.competition_slug!=`string`||!i.competition_slug.trim())throw Error(`赛事标识无效`);return{token:i.token,competition_slug:i.competition_slug,expires_in:typeof i.expires_in==`number`?i.expires_in:1800,participant:i.participant&&typeof i.participant==`object`?i.participant:void 0}}catch(t){if(e.isAxiosError(t)){let e=t.response?.data;if(e&&typeof e==`object`){let t=e.message;if(typeof t==`string`&&t.trim())throw Error(t.trim())}}throw t instanceof Error?t:Error(`进入选手端失败`)}}async function l(e,i,a,o,s){let c=o?.trim()||`附件`,l=r(c,s?.size);if(l)try{let r=await t.get(`/competitions/${e}/applications/${i}/files/${a}/download`,{responseType:`blob`,timeout:0});l.setText(`正在保存「${c}」…`),u(r.data,c),n()}catch(e){throw await f(e,`下载附件失败`)}finally{l.close()}}function u(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(n)}function d(e,t){if(!e)return t;let n=/filename\*=UTF-8''([^;]+)/i.exec(e);if(n?.[1])return decodeURIComponent(n[1]);let r=/filename="?([^";]+)"?/i.exec(e);return r?.[1]?r[1]:t}async function f(t,n){if(e.isAxiosError(t)){let e=t.response?.data;if(e instanceof Blob){let t=await e.text();try{let e=JSON.parse(t);return Error(e.errors?.export?.[0]||e.errors?.application_ids?.[0]||e.errors?.part?.[0]||e.errors?.file?.[0]||e.message||n)}catch{}}if(e&&typeof e==`object`){let t=e;return Error(t.errors?.export?.[0]||t.errors?.application_ids?.[0]||t.errors?.part?.[0]||t.errors?.file?.[0]||t.message||n)}}return t instanceof Error?t:Error(n)}async function p(e){return f(e,`导出失败`)}function m(e){return new Promise(t=>{window.setTimeout(t,e)})}function h(e){let{mode:t,application_ids:n,part:r,...i}=e,a={mode:t,...i};return n?.length&&(a.application_ids=n),r!=null&&(a.part=r),a}async function g(e,n){try{let{data:r}=await t.get(`/competitions/${e}/applications/export/meta`,{params:h(n)});if(!r||typeof r!=`object`)throw Error(`导出信息无效`);return r}catch(e){throw await p(e)}}async function _(e,n,r){let i;try{i=await t.get(`/competitions/${e}/applications/export`,{params:h({...n,part:r}),responseType:`blob`,timeout:0})}catch(e){throw await p(e)}let a=n.mode===`xlsx`?`报名信息.xlsx`:`报名信息导出_第${r}部分.zip`,o=d(i.headers[`content-disposition`],a);u(i.data,o)}async function v(e,t,n){let r=await g(e,t);if(t.mode===`xlsx`)return n?.(1,1),await _(e,t,1),r;for(let i=1;i<=r.part_count;i+=1)n?.(i,r.part_count),await _(e,t,i),i<r.part_count&&await m(500);return r}export{c as a,g as i,v as n,a as o,o as r,s,l as t};
import{a as e,i as t}from"./index-t7bgup9e.js";import{r as n,t as r}from"./downloadFeedback-CVNWp7w4.js";function i(e){if(!e||typeof e!=`object`)throw Error(`列表响应格式无效`);let t=e;if(Array.isArray(t.data)&&typeof t.current_page==`number`){let e=t.data;return{data:e,meta:{current_page:t.current_page,last_page:typeof t.last_page==`number`?t.last_page:1,per_page:typeof t.per_page==`number`?t.per_page:e.length||15,total:typeof t.total==`number`?t.total:e.length}}}throw Error(`列表响应格式无效`)}async function a(e,n){let{data:r}=await t.get(`/competitions/${e}/applications`,{params:n});return i(r)}async function o(e,n){let{data:r}=await t.get(`/competitions/${e}/applications/${n}`);if(!r||typeof r!=`object`)throw Error(`报名详情无效`);return r}async function s(e,n,r){let{data:i}=await t.patch(`/competitions/${e}/applications/${n}/review-eligible`,{review_eligible:r});return i}async function c(n,r){try{let{data:e}=await t.post(`/competitions/${n}/applications/${r}/impersonate`);if(!e||typeof e!=`object`)throw Error(`代登响应无效`);let i=e;if(typeof i.token!=`string`||!i.token.trim())throw Error(`代登 Token 无效`);if(typeof i.competition_slug!=`string`||!i.competition_slug.trim())throw Error(`赛事标识无效`);return{token:i.token,competition_slug:i.competition_slug,expires_in:typeof i.expires_in==`number`?i.expires_in:1800,participant:i.participant&&typeof i.participant==`object`?i.participant:void 0}}catch(t){if(e.isAxiosError(t)){let e=t.response?.data;if(e&&typeof e==`object`){let t=e.message;if(typeof t==`string`&&t.trim())throw Error(t.trim())}}throw t instanceof Error?t:Error(`进入选手端失败`)}}async function l(e,i,a,o,s){let c=o?.trim()||`附件`,l=r(c,s?.size);if(l)try{let r=await t.get(`/competitions/${e}/applications/${i}/files/${a}/download`,{responseType:`blob`,timeout:0});l.setText(`正在保存「${c}」…`),u(r.data,c),n()}catch(e){throw await f(e,`下载附件失败`)}finally{l.close()}}function u(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(n)}function d(e,t){if(!e)return t;let n=/filename\*=UTF-8''([^;]+)/i.exec(e);if(n?.[1])return decodeURIComponent(n[1]);let r=/filename="?([^";]+)"?/i.exec(e);return r?.[1]?r[1]:t}async function f(t,n){if(e.isAxiosError(t)){let e=t.response?.data;if(e instanceof Blob){let t=await e.text();try{let e=JSON.parse(t);return Error(e.errors?.export?.[0]||e.errors?.application_ids?.[0]||e.errors?.part?.[0]||e.errors?.file?.[0]||e.message||n)}catch{}}if(e&&typeof e==`object`){let t=e;return Error(t.errors?.export?.[0]||t.errors?.application_ids?.[0]||t.errors?.part?.[0]||t.errors?.file?.[0]||t.message||n)}}return t instanceof Error?t:Error(n)}async function p(e){return f(e,`导出失败`)}function m(e){return new Promise(t=>{window.setTimeout(t,e)})}function h(e){let{mode:t,application_ids:n,part:r,...i}=e,a={mode:t,...i};return n?.length&&(a.application_ids=n),r!=null&&(a.part=r),a}async function g(e,n){try{let{data:r}=await t.get(`/competitions/${e}/applications/export/meta`,{params:h(n)});if(!r||typeof r!=`object`)throw Error(`导出信息无效`);return r}catch(e){throw await p(e)}}async function _(e,n,r){let i;try{i=await t.get(`/competitions/${e}/applications/export`,{params:h({...n,part:r}),responseType:`blob`,timeout:0})}catch(e){throw await p(e)}let a=n.mode===`xlsx`?`报名信息.xlsx`:`报名信息导出_第${r}部分.zip`,o=d(i.headers[`content-disposition`],a);u(i.data,o)}async function v(e,t,n){let r=await g(e,t);if(t.mode===`xlsx`)return n?.(1,1),await _(e,t,1),r;for(let i=1;i<=r.part_count;i+=1)n?.(i,r.part_count),await _(e,t,i),i<r.part_count&&await m(500);return r}export{c as a,g as i,v as n,a as o,o as r,s,l as t};

@ -1,3 +1,3 @@
import{a as e,i as t}from"./index-DAT5gpOZ.js";async function n(n){try{let{data:e}=await t.post(`/auth/login`,n);return r(e)}catch(t){if(e.isAxiosError(t)){let e=t.response?.data,n=e&&typeof e==`object`?e:{},r=(typeof n.message==`string`?n.message:``)||(n.errors&&typeof n.errors==`object`?Object.values(n.errors).flat().join(`
import{a as e,i as t}from"./index-t7bgup9e.js";async function n(n){try{let{data:e}=await t.post(`/auth/login`,n);return r(e)}catch(t){if(e.isAxiosError(t)){let e=t.response?.data,n=e&&typeof e==`object`?e:{},r=(typeof n.message==`string`?n.message:``)||(n.errors&&typeof n.errors==`object`?Object.values(n.errors).flat().join(`
`):``)||t.message;throw Error(r||`登录失败`)}throw t}}function r(e){if(e&&typeof e==`object`){let t=e,n=t.data,r=(typeof t.token==`string`?t.token:void 0)??(typeof t.access_token==`string`?t.access_token:void 0)??(n&&typeof n.token==`string`?n.token:void 0);if(typeof r==`string`)return{token:r,user:t.user??t.admin??n?.user}}throw Error(`登录响应无效`)}async function i(n){try{await t.patch(`/auth/password`,n)}catch(t){if(e.isAxiosError(t)){let e=t.response?.data,n=e&&typeof e==`object`?e:{},r=(typeof n.message==`string`?n.message:``)||(n.errors&&typeof n.errors==`object`?Object.values(n.errors).flat().join(`
`):``)||t.message;throw Error(r||`修改密码失败`)}throw t}}export{i as n,n as t};

@ -1 +1 @@
import{i as e}from"./index-DAT5gpOZ.js";function t(e){if(!e||typeof e!=`object`)throw Error(`列表响应格式无效`);let t=e;if(Array.isArray(t.data)&&typeof t.current_page==`number`){let e=t.data;return{data:e,meta:{current_page:t.current_page,last_page:typeof t.last_page==`number`?t.last_page:1,per_page:typeof t.per_page==`number`?t.per_page:e.length||15,total:typeof t.total==`number`?t.total:e.length}}}let n=t.data??t,r=n.data,i=n.meta;if(Array.isArray(r)&&i&&typeof i==`object`)return{data:r,meta:i};if(Array.isArray(t.data)){let e=t.data;return{data:e,meta:{current_page:1,last_page:1,per_page:e.length,total:e.length}}}throw Error(`列表响应格式无效`)}async function n(n){let{data:r}=await e.get(`/competitions`,{params:n});return t(r)}async function r(t){let{data:n}=await e.get(`/competitions/${t}`),r=n?.data??n;if(!r||typeof r!=`object`)throw Error(`赛事详情无效`);return r}async function i(t){let{data:n}=await e.post(`/competitions`,t),r=n?.data??n;if(!r||typeof r!=`object`)throw Error(`创建响应无效`);return r}async function a(t,n){let{data:r}=await e.patch(`/competitions/${t}`,n),i=r?.data??r;if(!i||typeof i!=`object`)throw Error(`更新响应无效`);return i}async function o(t,n){let{data:r}=await e.patch(`/competitions/${t}`,n),i=r?.data??r;if(!i||typeof i!=`object`)throw Error(`更新响应无效`);return i}async function s(t){let{data:n}=await e.get(`/competitions/${t}/tracks`),r=n?.data??n;if(!Array.isArray(r))throw Error(`赛道列表无效`);return r}async function c(t,n){let{data:r}=await e.post(`/competitions/${t}/tracks`,n),i=r?.data??r;if(!i||typeof i!=`object`)throw Error(`创建赛道无效`);return i}async function l(t,n,r){let{data:i}=await e.put(`/competitions/${t}/tracks/${n}`,r),a=i?.data??i;if(!a||typeof a!=`object`)throw Error(`更新赛道无效`);return a}async function u(t,n){await e.delete(`/competitions/${t}/tracks/${n}`)}export{n as a,a as c,r as i,l,c as n,s as o,u as r,o as s,i as t};
import{i as e}from"./index-t7bgup9e.js";function t(e){if(!e||typeof e!=`object`)throw Error(`列表响应格式无效`);let t=e;if(Array.isArray(t.data)&&typeof t.current_page==`number`){let e=t.data;return{data:e,meta:{current_page:t.current_page,last_page:typeof t.last_page==`number`?t.last_page:1,per_page:typeof t.per_page==`number`?t.per_page:e.length||15,total:typeof t.total==`number`?t.total:e.length}}}let n=t.data??t,r=n.data,i=n.meta;if(Array.isArray(r)&&i&&typeof i==`object`)return{data:r,meta:i};if(Array.isArray(t.data)){let e=t.data;return{data:e,meta:{current_page:1,last_page:1,per_page:e.length,total:e.length}}}throw Error(`列表响应格式无效`)}async function n(n){let{data:r}=await e.get(`/competitions`,{params:n});return t(r)}async function r(t){let{data:n}=await e.get(`/competitions/${t}`),r=n?.data??n;if(!r||typeof r!=`object`)throw Error(`赛事详情无效`);return r}async function i(t){let{data:n}=await e.post(`/competitions`,t),r=n?.data??n;if(!r||typeof r!=`object`)throw Error(`创建响应无效`);return r}async function a(t,n){let{data:r}=await e.patch(`/competitions/${t}`,n),i=r?.data??r;if(!i||typeof i!=`object`)throw Error(`更新响应无效`);return i}async function o(t,n){let{data:r}=await e.patch(`/competitions/${t}`,n),i=r?.data??r;if(!i||typeof i!=`object`)throw Error(`更新响应无效`);return i}async function s(t){let{data:n}=await e.get(`/competitions/${t}/tracks`),r=n?.data??n;if(!Array.isArray(r))throw Error(`赛道列表无效`);return r}async function c(t,n){let{data:r}=await e.post(`/competitions/${t}/tracks`,n),i=r?.data??r;if(!i||typeof i!=`object`)throw Error(`创建赛道无效`);return i}async function l(t,n,r){let{data:i}=await e.put(`/competitions/${t}/tracks/${n}`,r),a=i?.data??i;if(!a||typeof a!=`object`)throw Error(`更新赛道无效`);return a}async function u(t,n){await e.delete(`/competitions/${t}/tracks/${n}`)}export{n as a,a as c,r as i,l,c as n,s as o,u as r,o as s,i as t};

@ -1 +1 @@
import{f as e}from"./index-DAT5gpOZ.js";var t=!1;function n(){return t}function r(e){return e==null||!Number.isFinite(e)||e<=0?``:e<1024*1024?`约 ${Math.max(1,Math.round(e/1024))} KB`:`约 ${(e/(1024*1024)).toFixed(1)} MB`}function i(n,i,a=`下载`){if(t)return e.warning(`附件正在${a}中,请勿重复点击`),null;t=!0;let o=n.trim()||`附件`,s=r(i),c=e({type:`info`,message:s?`正在准备${a}「${o}」(${s}),文件较大时请耐心等待…`:`正在准备${a}「${o}」,请稍候…`,duration:0,showClose:!0});return{setText:t=>{c.close(),c=e({type:`info`,message:t,duration:0,showClose:!0})},close:()=>{c.close(),t=!1}}}function a(){e.success(`下载已开始,请查看浏览器下载进度`)}export{n,a as r,i as t};
import{f as e}from"./index-t7bgup9e.js";var t=!1;function n(){return t}function r(e){return e==null||!Number.isFinite(e)||e<=0?``:e<1024*1024?`约 ${Math.max(1,Math.round(e/1024))} KB`:`约 ${(e/(1024*1024)).toFixed(1)} MB`}function i(n,i,a=`下载`){if(t)return e.warning(`附件正在${a}中,请勿重复点击`),null;t=!0;let o=n.trim()||`附件`,s=r(i),c=e({type:`info`,message:s?`正在准备${a}「${o}」(${s}),文件较大时请耐心等待…`:`正在准备${a}「${o}」,请稍候…`,duration:0,showClose:!0});return{setText:t=>{c.close(),c=e({type:`info`,message:t,duration:0,showClose:!0})},close:()=>{c.close(),t=!1}}}function a(){e.success(`下载已开始,请查看浏览器下载进度`)}export{n,a as r,i as t};

File diff suppressed because one or more lines are too long

@ -1 +1 @@
import{i as e}from"./index-DAT5gpOZ.js";function t(e){let t=e?.data??e;if(!t||typeof t!=`object`||!(`id`in t))throw Error(`公开来源渠道响应格式无效`);return t}async function n(){let{data:t}=await e.get(`/public-source-channels`),n=t?.data??t;if(!Array.isArray(n))throw Error(`公开来源渠道列表响应格式无效`);return n}async function r(n){let{data:r}=await e.post(`/public-source-channels`,n);return t(r)}async function i(n,r){let{data:i}=await e.put(`/public-source-channels/${n}`,r);return t(i)}export{n,i as r,r as t};
import{i as e}from"./index-t7bgup9e.js";function t(e){let t=e?.data??e;if(!t||typeof t!=`object`||!(`id`in t))throw Error(`公开来源渠道响应格式无效`);return t}async function n(){let{data:t}=await e.get(`/public-source-channels`),n=t?.data??t;if(!Array.isArray(n))throw Error(`公开来源渠道列表响应格式无效`);return n}async function r(n){let{data:r}=await e.post(`/public-source-channels`,n);return t(r)}async function i(n,r){let{data:i}=await e.put(`/public-source-channels/${n}`,r);return t(i)}export{n,i as r,r as t};

@ -1 +1 @@
import{i as e}from"./index-DAT5gpOZ.js";function t(e){let t=e?.data??e;if(!t||typeof t!=`object`||!(`id`in t))throw Error(`渠道响应格式无效`);return t}async function n(t){let{data:n}=await e.get(`/competitions/${t}/signup-channels`),r=n?.data??n;if(!Array.isArray(r))throw Error(`渠道列表响应格式无效`);return r}async function r(n,r){let{data:i}=await e.get(`/competitions/${n}/signup-channels/${r}`);return t(i)}async function i(n,r){let{data:i}=await e.post(`/competitions/${n}/signup-channels`,r);return t(i)}async function a(n,r,i){let{data:a}=await e.put(`/competitions/${n}/signup-channels/${r}`,i);return t(a)}export{a as i,r as n,n as r,i as t};
import{i as e}from"./index-t7bgup9e.js";function t(e){let t=e?.data??e;if(!t||typeof t!=`object`||!(`id`in t))throw Error(`渠道响应格式无效`);return t}async function n(t){let{data:n}=await e.get(`/competitions/${t}/signup-channels`),r=n?.data??n;if(!Array.isArray(r))throw Error(`渠道列表响应格式无效`);return r}async function r(n,r){let{data:i}=await e.get(`/competitions/${n}/signup-channels/${r}`);return t(i)}async function i(n,r){let{data:i}=await e.post(`/competitions/${n}/signup-channels`,r);return t(i)}async function a(n,r,i){let{data:a}=await e.put(`/competitions/${n}/signup-channels/${r}`,i);return t(a)}export{a as i,r as n,n as r,i as t};

@ -5,7 +5,7 @@
<link rel="icon" type="image/svg+xml" href="/admin/favicon.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<title>江苏创青春新消费大赛报名系统 - cxxfds-web</title>
<script type="module" crossorigin src="/admin/assets/index-DAT5gpOZ.js"></script>
<script type="module" crossorigin src="/admin/assets/index-t7bgup9e.js"></script>
<link rel="modulepreload" crossorigin href="/admin/assets/rolldown-runtime-BYbx6iT9.js">
<link rel="modulepreload" crossorigin href="/admin/assets/vue.runtime.esm-bundler-OsdSFvn7.js">
<link rel="modulepreload" crossorigin href="/admin/assets/api-rQwE0AaH.js">

@ -182,7 +182,7 @@ class AdminApplicationExportTest extends TestCase
$data = $rows[1];
$this->assertSame('1/2', (string) $data[$progressIdx]);
$this->assertSame('待评审', (string) $data[$totalIdx]);
$this->assertSame('-', (string) $data[$avgIdx]);
$this->assertSame('88.5', (string) $data[$avgIdx]);
$this->assertStringContainsString('评委甲 88.5', (string) $data[$detailIdx]);
$this->assertStringContainsString('评委乙 未评审', (string) $data[$detailIdx]);

Loading…
Cancel
Save