diff --git a/public/admin/assets/AdminDashboardView-CH4JDbjM.js b/public/admin/assets/AdminDashboardView-Dls0Ae8x.js similarity index 98% rename from public/admin/assets/AdminDashboardView-CH4JDbjM.js rename to public/admin/assets/AdminDashboardView-Dls0Ae8x.js index a1c6090..720f74d 100644 --- a/public/admin/assets/AdminDashboardView-CH4JDbjM.js +++ b/public/admin/assets/AdminDashboardView-Dls0Ae8x.js @@ -1 +1 @@ -import{C as e,D as t,Et as n,O as r,Q as ee,S as te,W as i,Y as a,Z as o,_t as s,at as c,b as l,ct as u,g as d,in as f,k as p,q as m,st as h,w as g,x as _}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{_ as v,i as y,l as b}from"./index-ijh93KpS.js";import{t as x}from"./_plugin-vue_export-helper-S3RvzygF.js";import{a as S}from"./competitions-Onk4QsGa.js";import{t as C}from"./adminCompetition-CbJJ6VFP.js";import{t as w}from"./competitionAdminLabels-BZ8tpy9B.js";async function T(e){let{data:t}=await y.get(`/competitions/${e}/dashboard`);if(!t||typeof t!=`object`)throw Error(`首页统计响应无效`);return t}var ne={class:`dashboard`},re={class:`dashboard-head`},ie={class:`meta-line`},ae={class:`time-line`},oe={class:`head-actions`},se={class:`metric-grid`,"aria-label":`核心指标`},ce={class:`metric-label`},E={class:`metric-value`},D={class:`metric-hint`},O={class:`main-grid`},k={class:`panel`},A={class:`setup-list`},j={class:`setup-copy`},M={class:`panel`},N={class:`progress-kpis`},P={class:`main-grid main-grid--wide`},F={class:`panel`},I={class:`panel-head`},L={class:`panel-subtitle`},R={class:`panel`},z={class:`shortcut-list`},B={class:`panel`},V=x(p({__name:`AdminDashboardView`,setup(p){let y=C(),{competitions:x,selectedCompetitionId:V}=v(y),H=s(!1),U=s(null),W=[{key:`published`,label:`赛事发布`,description:`对外报名和评审入口依赖发布状态`,routeName:`admin-competition-workspace`},{key:`signup_form_schema`,label:`报名表单`,description:`选手报名字段由 Schema 渲染`,routeName:`admin-competition-workspace`},{key:`tracks`,label:`赛道配置`,description:`评审范围和报名分组按赛道隔离`,routeName:`admin-competition-workspace`},{key:`pledge`,label:`承诺书`,description:`提交报名时需要签署的赛事文本`,routeName:`admin-competition-workspace`},{key:`review_form_schema`,label:`评审表单`,description:`未配置时评审端将使用系统默认表单`,routeName:`admin-competition-workspace`},{key:`reviewer_scopes`,label:`评审范围`,description:`评审员必须绑定赛事和赛道后才能看到项目`,routeName:`admin-reviewers-list`}],G=l(()=>U.value?.summary??null),K=l(()=>U.value?.competition??null),le=l(()=>{let e=K.value;if(!e)return`未选择赛事`;let t=Date.now(),n=e.signup_open_at?new Date(e.signup_open_at).getTime():null,r=e.signup_close_at?new Date(e.signup_close_at).getTime():null;return e.published?n&&tr?e.status===`reviewing`?`评审中`:`报名已截止`:e.status===`reviewing`?`评审中`:e.status===`ended`?`已结束`:`报名中`:`未发布`}),ue=l(()=>{let e=G.value;return[{label:`报名总数`,value:e?.applications_total??0,hint:`含草稿和已提交`},{label:`已提交`,value:e?.applications_submitted??0,hint:`可进入评审范围`},{label:`草稿`,value:e?.applications_draft??0,hint:`选手尚未正式提交`},{label:`待评项目`,value:e?.applications_pending_review??0,hint:`已提交但暂无评分`},{label:`已评项目`,value:e?.applications_reviewed??0,hint:`至少已有一条评分`},{label:`评审记录`,value:e?.review_scores_total??0,hint:`累计提交评分数`}]}),de=l(()=>{let e=G.value;return!e||e.applications_submitted===0?0:Math.round(e.applications_reviewed/e.applications_submitted*100)}),q=l(()=>`/admin/`.endsWith(`/`)?`/admin/`.slice(0,-1):`/admin/`),J=l(()=>{let e=K.value?.slug;return e?`${q.value}/c/${encodeURIComponent(e)}/apply`:``}),Y=l(()=>{let e=K.value?.slug;return e?`${q.value}/c/${encodeURIComponent(e)}/review`:``});async function fe(){if(x.value.length>0)return;let e=await S({page:1,per_page:100});y.setCompetitionList(e.data)}async function X(){H.value=!0;try{await fe();let e=V.value;if(!e){U.value=null;return}U.value=await T(e)}catch(e){U.value=null,b.error(e instanceof Error?e.message:`首页数据加载失败`)}finally{H.value=!1}}function Z(e){if(!e)return`未配置`;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function Q(e){return e===`submitted`||e===`published`||e===`signup_open`?`success`:e===`draft`?`info`:e===`reviewing`?`primary`:e===`signup_closed`||e===`ended`?`warning`:`info`}function pe(e){return e===`submitted`?`已提交`:e===`draft`?`草稿`:e}async function $(e){if(e)try{await navigator.clipboard.writeText(`${window.location.origin}${e}`),b.success(`已复制完整链接`)}catch{b.error(`复制失败,请手动选择文本`)}}return c(V,()=>{X()}),i(()=>{X()}),(i,s)=>{let c=o(`el-tag`),l=o(`el-button`),p=o(`RouterLink`),v=o(`el-progress`),y=o(`el-table-column`),b=o(`el-table`),x=o(`el-empty`),S=ee(`loading`);return u((m(),g(`div`,ne,[U.value&&K.value?(m(),g(d,{key:0},[_(`section`,re,[_(`div`,null,[s[2]||=_(`div`,{class:`eyebrow`},`运营工作台`,-1),_(`h1`,null,f(K.value.name),1),_(`div`,ie,[r(c,{type:Q(K.value.status),effect:`plain`},{default:h(()=>[t(f(n(w)(K.value.status)),1)]),_:1},8,[`type`]),r(c,{type:K.value.published?`success`:`info`,effect:`plain`},{default:h(()=>[t(f(K.value.published?`已发布`:`未发布`),1)]),_:1},8,[`type`]),_(`span`,null,`当前阶段:`+f(le.value),1),_(`span`,null,`slug:`+f(K.value.slug),1)]),_(`div`,ae,[_(`span`,null,`报名开始:`+f(Z(K.value.signup_open_at)),1),_(`span`,null,`报名截止:`+f(Z(K.value.signup_close_at)),1)])]),_(`div`,oe,[r(p,{to:{name:`admin-competition-workspace`}},{default:h(()=>[r(l,{type:`danger`},{default:h(()=>[...s[3]||=[t(`赛事配置`,-1)]]),_:1})]),_:1}),r(p,{to:{name:`admin-competitions-list`}},{default:h(()=>[r(l,null,{default:h(()=>[...s[4]||=[t(`赛事列表`,-1)]]),_:1})]),_:1})])]),_(`section`,se,[(m(!0),g(d,null,a(ue.value,e=>(m(),g(`div`,{key:e.label,class:`metric-card`},[_(`div`,ce,f(e.label),1),_(`div`,E,f(e.value),1),_(`div`,D,f(e.hint),1)]))),128))]),_(`section`,O,[_(`div`,k,[s[6]||=_(`div`,{class:`panel-head`},[_(`h2`,null,`配置完整度`),_(`span`,{class:`panel-subtitle`},`影响报名、提交和评审流转`)],-1),_(`div`,A,[(m(),g(d,null,a(W,e=>_(`div`,{key:e.key,class:`setup-row`},[r(c,{type:U.value.setup[e.key]?`success`:e.key===`review_form_schema`?`warning`:`danger`,effect:`plain`,size:`small`},{default:h(()=>[t(f(U.value.setup[e.key]?`已完成`:e.key===`review_form_schema`?`默认`:`待处理`),1)]),_:2},1032,[`type`]),_(`div`,j,[_(`strong`,null,f(e.label),1),_(`span`,null,f(e.description),1)]),r(p,{to:{name:e.routeName}},{default:h(()=>[r(l,{link:``,type:`danger`},{default:h(()=>[...s[5]||=[t(`处理`,-1)]]),_:1})]),_:1},8,[`to`])])),64))])]),_(`div`,M,[s[12]||=_(`div`,{class:`panel-head`},[_(`h2`,null,`评审进度`),_(`span`,{class:`panel-subtitle`},`仅统计已提交报名`)],-1),r(v,{percentage:de.value,"stroke-width":12,"show-text":!1},null,8,[`percentage`]),_(`div`,N,[_(`div`,null,[_(`strong`,null,f(G.value?.applications_reviewed??0),1),s[7]||=_(`span`,null,`已评项目`,-1)]),_(`div`,null,[_(`strong`,null,f(G.value?.applications_pending_review??0),1),s[8]||=_(`span`,null,`待评项目`,-1)]),_(`div`,null,[_(`strong`,null,f(G.value?.reviewers_active??0)+`/`+f(G.value?.reviewers_total??0),1),s[9]||=_(`span`,null,`启用评审员`,-1)]),_(`div`,null,[_(`strong`,null,f(G.value?.reviewer_scopes_total??0),1),s[10]||=_(`span`,null,`评审范围`,-1)])]),r(p,{to:{name:`admin-reviewers-list`}},{default:h(()=>[r(l,{type:`danger`,plain:``},{default:h(()=>[...s[11]||=[t(`管理评审员与范围`,-1)]]),_:1})]),_:1})])]),_(`section`,P,[_(`div`,F,[_(`div`,I,[s[13]||=_(`h2`,null,`赛道分布`,-1),_(`span`,L,` 已启用 `+f(G.value?.tracks_enabled??0)+` / `+f(G.value?.tracks_total??0),1)]),r(b,{data:U.value.track_stats,stripe:``,style:{width:`100%`}},{empty:h(()=>[...s[14]||=[_(`span`,{class:`muted`},`暂无赛道,请进入赛事配置维护。`,-1)]]),default:h(()=>[r(y,{prop:`track_title`,label:`赛道`,"min-width":`150`,"show-overflow-tooltip":``}),r(y,{prop:`track_code`,label:`代码`,"min-width":`100`,"show-overflow-tooltip":``}),r(y,{label:`状态`,width:`90`},{default:h(({row:e})=>[r(c,{type:e.is_enabled?`success`:`info`,size:`small`,effect:`plain`},{default:h(()=>[t(f(e.is_enabled?`启用`:`停用`),1)]),_:2},1032,[`type`])]),_:1}),r(y,{prop:`applications_count`,label:`报名`,width:`90`}),r(y,{prop:`submitted_count`,label:`已提交`,width:`90`}),r(y,{prop:`reviewer_scope_count`,label:`评审范围`,width:`100`})]),_:1},8,[`data`])]),_(`div`,R,[s[19]||=_(`div`,{class:`panel-head`},[_(`h2`,null,`常用入口`),_(`span`,{class:`panel-subtitle`},`按当前赛事生成`)],-1),_(`div`,z,[r(p,{to:{name:`admin-competition-workspace`},class:`shortcut`},{default:h(()=>[...s[15]||=[_(`strong`,null,`报名列表与赛事配置`,-1),_(`span`,null,`查看报名详情、附件、分数和赛事设置`,-1)]]),_:1}),r(p,{to:{name:`admin-public-source-channels`},class:`shortcut`},{default:h(()=>[...s[16]||=[_(`strong`,null,`公开来源渠道`,-1),_(`span`,null,`生成首页入口链接和来源归因`,-1)]]),_:1}),_(`button`,{class:`shortcut shortcut-button`,type:`button`,onClick:s[0]||=e=>$(J.value)},[s[17]||=_(`strong`,null,`复制报名链接`,-1),_(`span`,null,f(J.value||`当前赛事暂无 slug`),1)]),_(`button`,{class:`shortcut shortcut-button`,type:`button`,onClick:s[1]||=e=>$(Y.value)},[s[18]||=_(`strong`,null,`复制评审链接`,-1),_(`span`,null,f(Y.value||`当前赛事暂无 slug`),1)])])])]),_(`section`,B,[s[22]||=_(`div`,{class:`panel-head`},[_(`h2`,null,`最近报名`),_(`span`,{class:`panel-subtitle`},`最近更新或提交的 8 条记录`)],-1),r(b,{data:U.value.recent_applications,stripe:``,style:{width:`100%`}},{empty:h(()=>[...s[21]||=[_(`span`,{class:`muted`},`暂无报名记录。`,-1)]]),default:h(()=>[r(y,{prop:`project_name`,label:`项目`,"min-width":`180`,"show-overflow-tooltip":``}),r(y,{prop:`player_name`,label:`负责人`,"min-width":`100`,"show-overflow-tooltip":``}),r(y,{prop:`track_title`,label:`赛道`,"min-width":`130`,"show-overflow-tooltip":``}),r(y,{label:`状态`,width:`100`},{default:h(({row:e})=>[r(c,{type:Q(e.status),size:`small`,effect:`plain`},{default:h(()=>[t(f(pe(e.status)),1)]),_:2},1032,[`type`])]),_:1}),r(y,{prop:`submitted_review_count`,label:`评分数`,width:`90`}),r(y,{label:`提交时间`,"min-width":`170`},{default:h(({row:e})=>[t(f(Z(e.submitted_at)),1)]),_:1}),r(y,{label:`操作`,width:`120`,fixed:`right`},{default:h(()=>[r(p,{to:{name:`admin-competition-workspace`}},{default:h(()=>[r(l,{type:`danger`,link:``},{default:h(()=>[...s[20]||=[t(`进入列表`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`data`])])],64)):H.value?e(``,!0):(m(),te(x,{key:1,description:`暂无可管理的赛事`},{default:h(()=>[r(p,{to:{name:`admin-competition-new`}},{default:h(()=>[r(l,{type:`danger`},{default:h(()=>[...s[23]||=[t(`新建赛事`,-1)]]),_:1})]),_:1})]),_:1}))])),[[S,H.value]])}}}),[[`__scopeId`,`data-v-e5f7e4be`]]);export{V as default}; \ No newline at end of file +import{C as e,D as t,Et as n,O as r,Q as ee,S as te,W as i,Y as a,Z as o,_t as s,at as c,b as l,ct as u,g as d,in as f,k as p,q as m,st as h,w as g,x as _}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{_ as v,i as y,l as b}from"./index-uojebQYd.js";import{t as x}from"./_plugin-vue_export-helper-S3RvzygF.js";import{a as S}from"./competitions-DSjdZQDh.js";import{t as C}from"./adminCompetition-DSwOzZGI.js";import{t as w}from"./competitionAdminLabels-BZ8tpy9B.js";async function T(e){let{data:t}=await y.get(`/competitions/${e}/dashboard`);if(!t||typeof t!=`object`)throw Error(`首页统计响应无效`);return t}var ne={class:`dashboard`},re={class:`dashboard-head`},ie={class:`meta-line`},ae={class:`time-line`},oe={class:`head-actions`},se={class:`metric-grid`,"aria-label":`核心指标`},ce={class:`metric-label`},E={class:`metric-value`},D={class:`metric-hint`},O={class:`main-grid`},k={class:`panel`},A={class:`setup-list`},j={class:`setup-copy`},M={class:`panel`},N={class:`progress-kpis`},P={class:`main-grid main-grid--wide`},F={class:`panel`},I={class:`panel-head`},L={class:`panel-subtitle`},R={class:`panel`},z={class:`shortcut-list`},B={class:`panel`},V=x(p({__name:`AdminDashboardView`,setup(p){let y=C(),{competitions:x,selectedCompetitionId:V}=v(y),H=s(!1),U=s(null),W=[{key:`published`,label:`赛事发布`,description:`对外报名和评审入口依赖发布状态`,routeName:`admin-competition-workspace`},{key:`signup_form_schema`,label:`报名表单`,description:`选手报名字段由 Schema 渲染`,routeName:`admin-competition-workspace`},{key:`tracks`,label:`赛道配置`,description:`评审范围和报名分组按赛道隔离`,routeName:`admin-competition-workspace`},{key:`pledge`,label:`承诺书`,description:`提交报名时需要签署的赛事文本`,routeName:`admin-competition-workspace`},{key:`review_form_schema`,label:`评审表单`,description:`未配置时评审端将使用系统默认表单`,routeName:`admin-competition-workspace`},{key:`reviewer_scopes`,label:`评审范围`,description:`评审员必须绑定赛事和赛道后才能看到项目`,routeName:`admin-reviewers-list`}],G=l(()=>U.value?.summary??null),K=l(()=>U.value?.competition??null),le=l(()=>{let e=K.value;if(!e)return`未选择赛事`;let t=Date.now(),n=e.signup_open_at?new Date(e.signup_open_at).getTime():null,r=e.signup_close_at?new Date(e.signup_close_at).getTime():null;return e.published?n&&tr?e.status===`reviewing`?`评审中`:`报名已截止`:e.status===`reviewing`?`评审中`:e.status===`ended`?`已结束`:`报名中`:`未发布`}),ue=l(()=>{let e=G.value;return[{label:`报名总数`,value:e?.applications_total??0,hint:`含草稿和已提交`},{label:`已提交`,value:e?.applications_submitted??0,hint:`可进入评审范围`},{label:`草稿`,value:e?.applications_draft??0,hint:`选手尚未正式提交`},{label:`待评项目`,value:e?.applications_pending_review??0,hint:`已提交但暂无评分`},{label:`已评项目`,value:e?.applications_reviewed??0,hint:`至少已有一条评分`},{label:`评审记录`,value:e?.review_scores_total??0,hint:`累计提交评分数`}]}),de=l(()=>{let e=G.value;return!e||e.applications_submitted===0?0:Math.round(e.applications_reviewed/e.applications_submitted*100)}),q=l(()=>`/admin/`.endsWith(`/`)?`/admin/`.slice(0,-1):`/admin/`),J=l(()=>{let e=K.value?.slug;return e?`${q.value}/c/${encodeURIComponent(e)}/apply`:``}),Y=l(()=>{let e=K.value?.slug;return e?`${q.value}/c/${encodeURIComponent(e)}/review`:``});async function fe(){if(x.value.length>0)return;let e=await S({page:1,per_page:100});y.setCompetitionList(e.data)}async function X(){H.value=!0;try{await fe();let e=V.value;if(!e){U.value=null;return}U.value=await T(e)}catch(e){U.value=null,b.error(e instanceof Error?e.message:`首页数据加载失败`)}finally{H.value=!1}}function Z(e){if(!e)return`未配置`;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function Q(e){return e===`submitted`||e===`published`||e===`signup_open`?`success`:e===`draft`?`info`:e===`reviewing`?`primary`:e===`signup_closed`||e===`ended`?`warning`:`info`}function pe(e){return e===`submitted`?`已提交`:e===`draft`?`草稿`:e}async function $(e){if(e)try{await navigator.clipboard.writeText(`${window.location.origin}${e}`),b.success(`已复制完整链接`)}catch{b.error(`复制失败,请手动选择文本`)}}return c(V,()=>{X()}),i(()=>{X()}),(i,s)=>{let c=o(`el-tag`),l=o(`el-button`),p=o(`RouterLink`),v=o(`el-progress`),y=o(`el-table-column`),b=o(`el-table`),x=o(`el-empty`),S=ee(`loading`);return u((m(),g(`div`,ne,[U.value&&K.value?(m(),g(d,{key:0},[_(`section`,re,[_(`div`,null,[s[2]||=_(`div`,{class:`eyebrow`},`运营工作台`,-1),_(`h1`,null,f(K.value.name),1),_(`div`,ie,[r(c,{type:Q(K.value.status),effect:`plain`},{default:h(()=>[t(f(n(w)(K.value.status)),1)]),_:1},8,[`type`]),r(c,{type:K.value.published?`success`:`info`,effect:`plain`},{default:h(()=>[t(f(K.value.published?`已发布`:`未发布`),1)]),_:1},8,[`type`]),_(`span`,null,`当前阶段:`+f(le.value),1),_(`span`,null,`slug:`+f(K.value.slug),1)]),_(`div`,ae,[_(`span`,null,`报名开始:`+f(Z(K.value.signup_open_at)),1),_(`span`,null,`报名截止:`+f(Z(K.value.signup_close_at)),1)])]),_(`div`,oe,[r(p,{to:{name:`admin-competition-workspace`}},{default:h(()=>[r(l,{type:`danger`},{default:h(()=>[...s[3]||=[t(`赛事配置`,-1)]]),_:1})]),_:1}),r(p,{to:{name:`admin-competitions-list`}},{default:h(()=>[r(l,null,{default:h(()=>[...s[4]||=[t(`赛事列表`,-1)]]),_:1})]),_:1})])]),_(`section`,se,[(m(!0),g(d,null,a(ue.value,e=>(m(),g(`div`,{key:e.label,class:`metric-card`},[_(`div`,ce,f(e.label),1),_(`div`,E,f(e.value),1),_(`div`,D,f(e.hint),1)]))),128))]),_(`section`,O,[_(`div`,k,[s[6]||=_(`div`,{class:`panel-head`},[_(`h2`,null,`配置完整度`),_(`span`,{class:`panel-subtitle`},`影响报名、提交和评审流转`)],-1),_(`div`,A,[(m(),g(d,null,a(W,e=>_(`div`,{key:e.key,class:`setup-row`},[r(c,{type:U.value.setup[e.key]?`success`:e.key===`review_form_schema`?`warning`:`danger`,effect:`plain`,size:`small`},{default:h(()=>[t(f(U.value.setup[e.key]?`已完成`:e.key===`review_form_schema`?`默认`:`待处理`),1)]),_:2},1032,[`type`]),_(`div`,j,[_(`strong`,null,f(e.label),1),_(`span`,null,f(e.description),1)]),r(p,{to:{name:e.routeName}},{default:h(()=>[r(l,{link:``,type:`danger`},{default:h(()=>[...s[5]||=[t(`处理`,-1)]]),_:1})]),_:1},8,[`to`])])),64))])]),_(`div`,M,[s[12]||=_(`div`,{class:`panel-head`},[_(`h2`,null,`评审进度`),_(`span`,{class:`panel-subtitle`},`仅统计已提交报名`)],-1),r(v,{percentage:de.value,"stroke-width":12,"show-text":!1},null,8,[`percentage`]),_(`div`,N,[_(`div`,null,[_(`strong`,null,f(G.value?.applications_reviewed??0),1),s[7]||=_(`span`,null,`已评项目`,-1)]),_(`div`,null,[_(`strong`,null,f(G.value?.applications_pending_review??0),1),s[8]||=_(`span`,null,`待评项目`,-1)]),_(`div`,null,[_(`strong`,null,f(G.value?.reviewers_active??0)+`/`+f(G.value?.reviewers_total??0),1),s[9]||=_(`span`,null,`启用评审员`,-1)]),_(`div`,null,[_(`strong`,null,f(G.value?.reviewer_scopes_total??0),1),s[10]||=_(`span`,null,`评审范围`,-1)])]),r(p,{to:{name:`admin-reviewers-list`}},{default:h(()=>[r(l,{type:`danger`,plain:``},{default:h(()=>[...s[11]||=[t(`管理评审员与范围`,-1)]]),_:1})]),_:1})])]),_(`section`,P,[_(`div`,F,[_(`div`,I,[s[13]||=_(`h2`,null,`赛道分布`,-1),_(`span`,L,` 已启用 `+f(G.value?.tracks_enabled??0)+` / `+f(G.value?.tracks_total??0),1)]),r(b,{data:U.value.track_stats,stripe:``,style:{width:`100%`}},{empty:h(()=>[...s[14]||=[_(`span`,{class:`muted`},`暂无赛道,请进入赛事配置维护。`,-1)]]),default:h(()=>[r(y,{prop:`track_title`,label:`赛道`,"min-width":`150`,"show-overflow-tooltip":``}),r(y,{prop:`track_code`,label:`代码`,"min-width":`100`,"show-overflow-tooltip":``}),r(y,{label:`状态`,width:`90`},{default:h(({row:e})=>[r(c,{type:e.is_enabled?`success`:`info`,size:`small`,effect:`plain`},{default:h(()=>[t(f(e.is_enabled?`启用`:`停用`),1)]),_:2},1032,[`type`])]),_:1}),r(y,{prop:`applications_count`,label:`报名`,width:`90`}),r(y,{prop:`submitted_count`,label:`已提交`,width:`90`}),r(y,{prop:`reviewer_scope_count`,label:`评审范围`,width:`100`})]),_:1},8,[`data`])]),_(`div`,R,[s[19]||=_(`div`,{class:`panel-head`},[_(`h2`,null,`常用入口`),_(`span`,{class:`panel-subtitle`},`按当前赛事生成`)],-1),_(`div`,z,[r(p,{to:{name:`admin-competition-workspace`},class:`shortcut`},{default:h(()=>[...s[15]||=[_(`strong`,null,`报名列表与赛事配置`,-1),_(`span`,null,`查看报名详情、附件、分数和赛事设置`,-1)]]),_:1}),r(p,{to:{name:`admin-public-source-channels`},class:`shortcut`},{default:h(()=>[...s[16]||=[_(`strong`,null,`公开来源渠道`,-1),_(`span`,null,`生成首页入口链接和来源归因`,-1)]]),_:1}),_(`button`,{class:`shortcut shortcut-button`,type:`button`,onClick:s[0]||=e=>$(J.value)},[s[17]||=_(`strong`,null,`复制报名链接`,-1),_(`span`,null,f(J.value||`当前赛事暂无 slug`),1)]),_(`button`,{class:`shortcut shortcut-button`,type:`button`,onClick:s[1]||=e=>$(Y.value)},[s[18]||=_(`strong`,null,`复制评审链接`,-1),_(`span`,null,f(Y.value||`当前赛事暂无 slug`),1)])])])]),_(`section`,B,[s[22]||=_(`div`,{class:`panel-head`},[_(`h2`,null,`最近报名`),_(`span`,{class:`panel-subtitle`},`最近更新或提交的 8 条记录`)],-1),r(b,{data:U.value.recent_applications,stripe:``,style:{width:`100%`}},{empty:h(()=>[...s[21]||=[_(`span`,{class:`muted`},`暂无报名记录。`,-1)]]),default:h(()=>[r(y,{prop:`project_name`,label:`项目`,"min-width":`180`,"show-overflow-tooltip":``}),r(y,{prop:`player_name`,label:`负责人`,"min-width":`100`,"show-overflow-tooltip":``}),r(y,{prop:`track_title`,label:`赛道`,"min-width":`130`,"show-overflow-tooltip":``}),r(y,{label:`状态`,width:`100`},{default:h(({row:e})=>[r(c,{type:Q(e.status),size:`small`,effect:`plain`},{default:h(()=>[t(f(pe(e.status)),1)]),_:2},1032,[`type`])]),_:1}),r(y,{prop:`submitted_review_count`,label:`评分数`,width:`90`}),r(y,{label:`提交时间`,"min-width":`170`},{default:h(({row:e})=>[t(f(Z(e.submitted_at)),1)]),_:1}),r(y,{label:`操作`,width:`120`,fixed:`right`},{default:h(()=>[r(p,{to:{name:`admin-competition-workspace`}},{default:h(()=>[r(l,{type:`danger`,link:``},{default:h(()=>[...s[20]||=[t(`进入列表`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`data`])])],64)):H.value?e(``,!0):(m(),te(x,{key:1,description:`暂无可管理的赛事`},{default:h(()=>[r(p,{to:{name:`admin-competition-new`}},{default:h(()=>[r(l,{type:`danger`},{default:h(()=>[...s[23]||=[t(`新建赛事`,-1)]]),_:1})]),_:1})]),_:1}))])),[[S,H.value]])}}}),[[`__scopeId`,`data-v-e5f7e4be`]]);export{V as default}; \ No newline at end of file diff --git a/public/admin/assets/AdminLayout-1Sqp0RY-.js b/public/admin/assets/AdminLayout-N6R9h--Q.js similarity index 95% rename from public/admin/assets/AdminLayout-1Sqp0RY-.js rename to public/admin/assets/AdminLayout-N6R9h--Q.js index 7369503..f11adcd 100644 --- a/public/admin/assets/AdminLayout-1Sqp0RY-.js +++ b/public/admin/assets/AdminLayout-N6R9h--Q.js @@ -1 +1 @@ -import{C as e,D as t,Et as n,O as r,S as i,W as a,Y as o,Z as s,_t as c,b as l,ct as u,f as d,g as f,ht as p,in as m,k as h,m as g,q as _,st as v,w as y,x as b}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{_ as x,l as S,n as C,o as w,r as T,s as E}from"./index-ijh93KpS.js";import{t as D}from"./_plugin-vue_export-helper-S3RvzygF.js";import{n as O}from"./auth-BwJdTHs_.js";import{a as k}from"./competitions-Onk4QsGa.js";import{t as A}from"./adminCompetition-CbJJ6VFP.js";var j={key:0,class:`menu-section-label`},M=D(h({__name:`AdminMenuNest`,props:{nodes:{}},setup(n){return(a,c)=>{let l=s(`el-sub-menu`),u=s(`el-menu-item`);return _(!0),y(f,null,o(n.nodes,(n,a)=>(_(),y(f,{key:n.section||n.name||String(a)},[n.section&&!n.name?(_(),y(`div`,j,m(n.section),1)):n.children?.length&&n.name?(_(),i(l,{key:1,index:n.name},{title:v(()=>[b(`span`,null,m(n.title),1)]),default:v(()=>[r(M,{nodes:n.children},null,8,[`nodes`])]),_:2},1032,[`index`])):n.name?(_(),i(u,{key:2,index:n.name},{default:v(()=>[t(m(n.title),1)]),_:2},1032,[`index`])):e(``,!0)],64))),128)}}}),[[`__scopeId`,`data-v-346ecfd3`]]),N=D(h({__name:`AdminMenuTree`,props:{nodes:{}},setup(e){let t=w(),n=E(),a=l(()=>t.name==null?``:String(t.name));function o(e){if(!n.hasRoute(e)){S.warning(`该菜单对应的前端页面尚未发布,请刷新或重新部署前端资源`);return}n.push({name:e}).catch(()=>{})}return(t,n)=>{let c=s(`el-menu`);return _(),i(c,{"default-active":a.value,class:`admin-side-menu`,onSelect:o},{default:v(()=>[r(M,{nodes:e.nodes},null,8,[`nodes`])]),_:1},8,[`default-active`])}}}),[[`__scopeId`,`data-v-982feb37`]]),P={class:`header-inner`},F={key:0,class:`muted`},I={class:`switcher-item`},L={class:`truncate`},R={class:`slug truncate`},z={type:`button`,class:`admin-user-trigger`,"aria-label":`账号菜单`},ee={class:`admin-user-name`},B=D(h({__name:`AdminLayout`,setup(l){let h=E(),w=C(),D=T(),j=A(),{menus:M}=x(D),{competitions:B,selectedCompetitionId:V}=x(j),{displayName:H}=x(w),U=c(!1),W=c(!1),G=c(!1),K=c(),q=p({current_password:``,password:``,password_confirmation:``}),J={current_password:[{required:!0,message:`请输入当前密码`,trigger:`blur`}],password:[{required:!0,message:`请输入新密码`,trigger:`blur`},{min:6,max:255,message:`新密码长度为 6–255 个字符`,trigger:`blur`}],password_confirmation:[{required:!0,message:`请再次输入新密码`,trigger:`blur`},{validator:(e,t,n)=>{if(t!==q.password){n(Error(`两次输入的新密码不一致`));return}n()},trigger:`blur`}]};async function Y(){try{let e=await k({page:1,per_page:100});j.setCompetitionList(e.data)}catch(e){S.warning(e instanceof Error?e.message:`赛事列表加载失败,请检查网络与权限`)}}function X(){U.value=!U.value}function Z(e){j.selectCompetition(e)}function Q(){q.current_password=``,q.password=``,q.password_confirmation=``,K.value?.clearValidate()}function te(){Q(),W.value=!0}function ne(){w.logout(h),h.replace(`/admin/login`)}function re(e){if(e===`password`){te();return}e===`logout`&&ne()}async function $(){let e=K.value;if(e&&await e.validate().catch(()=>!1)){G.value=!0;try{await O({current_password:q.current_password,password:q.password,password_confirmation:q.password_confirmation}),W.value=!1,S.success(`密码已更新`)}catch(e){S.error(e instanceof Error?e.message:`修改密码失败`)}finally{G.value=!1}}}return a(()=>{Y()}),(a,c)=>{let l=s(`el-button`),p=s(`el-dropdown-item`),h=s(`el-dropdown-menu`),x=s(`el-dropdown`),S=s(`el-header`),C=s(`el-scrollbar`),w=s(`el-aside`),T=s(`router-view`),E=s(`el-main`),D=s(`el-container`),O=s(`el-input`),k=s(`el-form-item`),A=s(`el-form`),j=s(`el-dialog`);return _(),i(D,{class:`admin-shell`},{default:v(()=>[r(S,{class:`admin-header`,height:`56px`},{default:v(()=>[b(`div`,P,[r(l,{circle:``,plain:``,size:`small`,"aria-label":`收起或展开侧栏`,onClick:X},{default:v(()=>[t(m(U.value?`☰`:`⟨`),1)]),_:1}),c[10]||=b(`span`,{class:`admin-brand`},`管理后台`,-1),c[11]||=b(`div`,{class:`header-spacer`},null,-1),r(x,{trigger:`click`,placement:`bottom-end`},{dropdown:v(()=>[r(h,{style:{"min-width":`220px`}},{default:v(()=>[n(B).length?(_(!0),y(f,{key:1},o(n(B),e=>(_(),i(p,{key:e.id,onClick:t=>Z(e.id)},{default:v(()=>[b(`div`,I,[b(`span`,L,m(e.name),1),b(`span`,R,m(e.slug),1)])]),_:2},1032,[`onClick`]))),128)):(_(),i(p,{key:0,disabled:``},{default:v(()=>[...c[6]||=[t(`暂无赛事,请先在「赛事列表」创建`,-1)]]),_:1}))]),_:1})]),default:v(()=>[r(l,{type:`danger`,plain:``,size:`small`},{default:v(()=>[c[5]||=t(` 赛事切换 `,-1),n(V)?(_(),y(`span`,F,`(#`+m(n(V))+`)`,1)):e(``,!0)]),_:1})]),_:1}),r(x,{trigger:`click`,placement:`bottom-end`,onCommand:re},{dropdown:v(()=>[r(h,null,{default:v(()=>[r(p,{command:`password`},{default:v(()=>[...c[8]||=[t(`修改密码`,-1)]]),_:1}),r(p,{divided:``,command:`logout`},{default:v(()=>[...c[9]||=[t(`退出`,-1)]]),_:1})]),_:1})]),default:v(()=>[b(`button`,z,[b(`span`,ee,m(n(H)),1),c[7]||=b(`span`,{class:`admin-user-caret`,"aria-hidden":`true`},`▾`,-1)])]),_:1})])]),_:1}),r(D,{class:`admin-body`},{default:v(()=>[r(w,{class:`admin-aside`,width:U.value?`0px`:`230px`},{default:v(()=>[u(r(C,{class:`aside-scroll`},{default:v(()=>[c[12]||=b(`div`,{class:`aside-title`},`导航`,-1),r(N,{nodes:n(M)},null,8,[`nodes`])]),_:1},512),[[d,!U.value]])]),_:1},8,[`width`]),r(E,{class:`admin-main`},{default:v(()=>[r(T)]),_:1})]),_:1}),r(j,{modelValue:W.value,"onUpdate:modelValue":c[4]||=e=>W.value=e,title:`修改密码`,width:`min(420px, 92vw)`,"destroy-on-close":``,onClosed:Q},{footer:v(()=>[r(l,{onClick:c[3]||=e=>W.value=!1},{default:v(()=>[...c[13]||=[t(`取消`,-1)]]),_:1}),r(l,{type:`primary`,loading:G.value,onClick:$},{default:v(()=>[...c[14]||=[t(` 保存 `,-1)]]),_:1},8,[`loading`])]),default:v(()=>[r(A,{ref_key:`passwordFormRef`,ref:K,model:q,rules:J,"label-position":`top`,onSubmit:g($,[`prevent`])},{default:v(()=>[r(k,{label:`当前密码`,prop:`current_password`},{default:v(()=>[r(O,{modelValue:q.current_password,"onUpdate:modelValue":c[0]||=e=>q.current_password=e,type:`password`,"show-password":``,autocomplete:`current-password`},null,8,[`modelValue`])]),_:1}),r(k,{label:`新密码`,prop:`password`},{default:v(()=>[r(O,{modelValue:q.password,"onUpdate:modelValue":c[1]||=e=>q.password=e,type:`password`,"show-password":``,autocomplete:`new-password`},null,8,[`modelValue`])]),_:1}),r(k,{label:`确认新密码`,prop:`password_confirmation`},{default:v(()=>[r(O,{modelValue:q.password_confirmation,"onUpdate:modelValue":c[2]||=e=>q.password_confirmation=e,type:`password`,"show-password":``,autocomplete:`new-password`},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`])]),_:1})}}}),[[`__scopeId`,`data-v-9c4e0032`]]);export{B as default}; \ No newline at end of file +import{C as e,D as t,Et as n,O as r,S as i,W as a,Y as o,Z as s,_t as c,b as l,ct as u,f as d,g as f,ht as p,in as m,k as h,m as g,q as _,st as v,w as y,x as b}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{_ as x,l as S,n as C,o as w,r as T,s as E}from"./index-uojebQYd.js";import{t as D}from"./_plugin-vue_export-helper-S3RvzygF.js";import{n as O}from"./auth-Ea2LVFPg.js";import{a as k}from"./competitions-DSjdZQDh.js";import{t as A}from"./adminCompetition-DSwOzZGI.js";var j={key:0,class:`menu-section-label`},M=D(h({__name:`AdminMenuNest`,props:{nodes:{}},setup(n){return(a,c)=>{let l=s(`el-sub-menu`),u=s(`el-menu-item`);return _(!0),y(f,null,o(n.nodes,(n,a)=>(_(),y(f,{key:n.section||n.name||String(a)},[n.section&&!n.name?(_(),y(`div`,j,m(n.section),1)):n.children?.length&&n.name?(_(),i(l,{key:1,index:n.name},{title:v(()=>[b(`span`,null,m(n.title),1)]),default:v(()=>[r(M,{nodes:n.children},null,8,[`nodes`])]),_:2},1032,[`index`])):n.name?(_(),i(u,{key:2,index:n.name},{default:v(()=>[t(m(n.title),1)]),_:2},1032,[`index`])):e(``,!0)],64))),128)}}}),[[`__scopeId`,`data-v-346ecfd3`]]),N=D(h({__name:`AdminMenuTree`,props:{nodes:{}},setup(e){let t=w(),n=E(),a=l(()=>t.name==null?``:String(t.name));function o(e){if(!n.hasRoute(e)){S.warning(`该菜单对应的前端页面尚未发布,请刷新或重新部署前端资源`);return}n.push({name:e}).catch(()=>{})}return(t,n)=>{let c=s(`el-menu`);return _(),i(c,{"default-active":a.value,class:`admin-side-menu`,onSelect:o},{default:v(()=>[r(M,{nodes:e.nodes},null,8,[`nodes`])]),_:1},8,[`default-active`])}}}),[[`__scopeId`,`data-v-982feb37`]]),P={class:`header-inner`},F={key:0,class:`muted`},I={class:`switcher-item`},L={class:`truncate`},R={class:`slug truncate`},z={type:`button`,class:`admin-user-trigger`,"aria-label":`账号菜单`},ee={class:`admin-user-name`},B=D(h({__name:`AdminLayout`,setup(l){let h=E(),w=C(),D=T(),j=A(),{menus:M}=x(D),{competitions:B,selectedCompetitionId:V}=x(j),{displayName:H}=x(w),U=c(!1),W=c(!1),G=c(!1),K=c(),q=p({current_password:``,password:``,password_confirmation:``}),J={current_password:[{required:!0,message:`请输入当前密码`,trigger:`blur`}],password:[{required:!0,message:`请输入新密码`,trigger:`blur`},{min:6,max:255,message:`新密码长度为 6–255 个字符`,trigger:`blur`}],password_confirmation:[{required:!0,message:`请再次输入新密码`,trigger:`blur`},{validator:(e,t,n)=>{if(t!==q.password){n(Error(`两次输入的新密码不一致`));return}n()},trigger:`blur`}]};async function Y(){try{let e=await k({page:1,per_page:100});j.setCompetitionList(e.data)}catch(e){S.warning(e instanceof Error?e.message:`赛事列表加载失败,请检查网络与权限`)}}function X(){U.value=!U.value}function Z(e){j.selectCompetition(e)}function Q(){q.current_password=``,q.password=``,q.password_confirmation=``,K.value?.clearValidate()}function te(){Q(),W.value=!0}function ne(){w.logout(h),h.replace(`/admin/login`)}function re(e){if(e===`password`){te();return}e===`logout`&&ne()}async function $(){let e=K.value;if(e&&await e.validate().catch(()=>!1)){G.value=!0;try{await O({current_password:q.current_password,password:q.password,password_confirmation:q.password_confirmation}),W.value=!1,S.success(`密码已更新`)}catch(e){S.error(e instanceof Error?e.message:`修改密码失败`)}finally{G.value=!1}}}return a(()=>{Y()}),(a,c)=>{let l=s(`el-button`),p=s(`el-dropdown-item`),h=s(`el-dropdown-menu`),x=s(`el-dropdown`),S=s(`el-header`),C=s(`el-scrollbar`),w=s(`el-aside`),T=s(`router-view`),E=s(`el-main`),D=s(`el-container`),O=s(`el-input`),k=s(`el-form-item`),A=s(`el-form`),j=s(`el-dialog`);return _(),i(D,{class:`admin-shell`},{default:v(()=>[r(S,{class:`admin-header`,height:`56px`},{default:v(()=>[b(`div`,P,[r(l,{circle:``,plain:``,size:`small`,"aria-label":`收起或展开侧栏`,onClick:X},{default:v(()=>[t(m(U.value?`☰`:`⟨`),1)]),_:1}),c[10]||=b(`span`,{class:`admin-brand`},`管理后台`,-1),c[11]||=b(`div`,{class:`header-spacer`},null,-1),r(x,{trigger:`click`,placement:`bottom-end`},{dropdown:v(()=>[r(h,{style:{"min-width":`220px`}},{default:v(()=>[n(B).length?(_(!0),y(f,{key:1},o(n(B),e=>(_(),i(p,{key:e.id,onClick:t=>Z(e.id)},{default:v(()=>[b(`div`,I,[b(`span`,L,m(e.name),1),b(`span`,R,m(e.slug),1)])]),_:2},1032,[`onClick`]))),128)):(_(),i(p,{key:0,disabled:``},{default:v(()=>[...c[6]||=[t(`暂无赛事,请先在「赛事列表」创建`,-1)]]),_:1}))]),_:1})]),default:v(()=>[r(l,{type:`danger`,plain:``,size:`small`},{default:v(()=>[c[5]||=t(` 赛事切换 `,-1),n(V)?(_(),y(`span`,F,`(#`+m(n(V))+`)`,1)):e(``,!0)]),_:1})]),_:1}),r(x,{trigger:`click`,placement:`bottom-end`,onCommand:re},{dropdown:v(()=>[r(h,null,{default:v(()=>[r(p,{command:`password`},{default:v(()=>[...c[8]||=[t(`修改密码`,-1)]]),_:1}),r(p,{divided:``,command:`logout`},{default:v(()=>[...c[9]||=[t(`退出`,-1)]]),_:1})]),_:1})]),default:v(()=>[b(`button`,z,[b(`span`,ee,m(n(H)),1),c[7]||=b(`span`,{class:`admin-user-caret`,"aria-hidden":`true`},`▾`,-1)])]),_:1})])]),_:1}),r(D,{class:`admin-body`},{default:v(()=>[r(w,{class:`admin-aside`,width:U.value?`0px`:`230px`},{default:v(()=>[u(r(C,{class:`aside-scroll`},{default:v(()=>[c[12]||=b(`div`,{class:`aside-title`},`导航`,-1),r(N,{nodes:n(M)},null,8,[`nodes`])]),_:1},512),[[d,!U.value]])]),_:1},8,[`width`]),r(E,{class:`admin-main`},{default:v(()=>[r(T)]),_:1})]),_:1}),r(j,{modelValue:W.value,"onUpdate:modelValue":c[4]||=e=>W.value=e,title:`修改密码`,width:`min(420px, 92vw)`,"destroy-on-close":``,onClosed:Q},{footer:v(()=>[r(l,{onClick:c[3]||=e=>W.value=!1},{default:v(()=>[...c[13]||=[t(`取消`,-1)]]),_:1}),r(l,{type:`primary`,loading:G.value,onClick:$},{default:v(()=>[...c[14]||=[t(` 保存 `,-1)]]),_:1},8,[`loading`])]),default:v(()=>[r(A,{ref_key:`passwordFormRef`,ref:K,model:q,rules:J,"label-position":`top`,onSubmit:g($,[`prevent`])},{default:v(()=>[r(k,{label:`当前密码`,prop:`current_password`},{default:v(()=>[r(O,{modelValue:q.current_password,"onUpdate:modelValue":c[0]||=e=>q.current_password=e,type:`password`,"show-password":``,autocomplete:`current-password`},null,8,[`modelValue`])]),_:1}),r(k,{label:`新密码`,prop:`password`},{default:v(()=>[r(O,{modelValue:q.password,"onUpdate:modelValue":c[1]||=e=>q.password=e,type:`password`,"show-password":``,autocomplete:`new-password`},null,8,[`modelValue`])]),_:1}),r(k,{label:`确认新密码`,prop:`password_confirmation`},{default:v(()=>[r(O,{modelValue:q.password_confirmation,"onUpdate:modelValue":c[2]||=e=>q.password_confirmation=e,type:`password`,"show-password":``,autocomplete:`new-password`},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`])]),_:1})}}}),[[`__scopeId`,`data-v-9c4e0032`]]);export{B as default}; \ No newline at end of file diff --git a/public/admin/assets/AdminLoginView-COSQRT-L.js b/public/admin/assets/AdminLoginView-CwE2Yo_p.js similarity index 88% rename from public/admin/assets/AdminLoginView-COSQRT-L.js rename to public/admin/assets/AdminLoginView-CwE2Yo_p.js index 12c94ac..c4f1ab3 100644 --- a/public/admin/assets/AdminLoginView-COSQRT-L.js +++ b/public/admin/assets/AdminLoginView-CwE2Yo_p.js @@ -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-6_koQ1g6.js";import{h as d}from"./api-COeuB3z6.js";import{l as f,n as p,o as m,s as h}from"./index-ijh93KpS.js";import{t as g}from"./_plugin-vue_export-helper-S3RvzygF.js";import{t as _}from"./auth-BwJdTHs_.js";var v={class:`login-wrap`},y=g(a({__name:`AdminLoginView`,setup(a){let g=m(),y=h(),b=p(),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}; \ No newline at end of file +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-6_koQ1g6.js";import{h as d}from"./api-COeuB3z6.js";import{l as f,n as p,o as m,s as h}from"./index-uojebQYd.js";import{t as g}from"./_plugin-vue_export-helper-S3RvzygF.js";import{t as _}from"./auth-Ea2LVFPg.js";var v={class:`login-wrap`},y=g(a({__name:`AdminLoginView`,setup(a){let g=m(),y=h(),b=p(),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}; \ No newline at end of file diff --git a/public/admin/assets/ApplyView-BLPwl_gQ.css b/public/admin/assets/ApplyView-BLPwl_gQ.css deleted file mode 100644 index 0ad09cc..0000000 --- a/public/admin/assets/ApplyView-BLPwl_gQ.css +++ /dev/null @@ -1 +0,0 @@ -.application-status-panel[data-v-8a18319a]{color:#17324d;background:#f7f9fc;border:1px solid #d8e2ef;border-radius:8px;align-items:flex-start;gap:.75rem;margin-bottom:1rem;padding:.875rem 1rem;display:flex}.application-status-panel--submitted[data-v-8a18319a]{color:#1f5132;background:#f3faf5;border-color:#bdd7c8}.application-status-mark[data-v-8a18319a]{flex:none;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;margin-top:.05rem;display:inline-flex}.application-status-copy[data-v-8a18319a]{gap:.2rem;min-width:0;display:grid}.application-status-copy strong[data-v-8a18319a]{font-size:.98rem;line-height:1.35}.application-status-copy span[data-v-8a18319a]{color:#4d5f73;font-size:.9rem;line-height:1.5}.application-status-panel--submitted .application-status-copy span[data-v-8a18319a]{color:#42664f}.apply-contact-panel[data-v-8a18319a]{color:#425466;background:#fbfcfe;border:1px solid #e4e9ef;border-radius:8px;flex-wrap:wrap;align-items:center;gap:.45rem 1rem;margin-bottom:1rem;padding:.72rem .9rem;font-size:.9rem;line-height:1.4;display:flex}.apply-contact-panel a[data-v-8a18319a]{color:inherit;text-decoration:none}.apply-contact-panel a[data-v-8a18319a]:hover{color:#052d62;text-decoration:underline}.track-selected-note[data-v-8a18319a]{color:#6c7886;margin-top:.35rem;font-size:.84rem;line-height:1.45;display:block}.track-pick-inline[data-v-8a18319a]{white-space:normal;grid-template-columns:minmax(5.5rem,auto) 1fr;align-items:start;gap:.6rem;display:grid}.track-pick-inline .text-body[data-v-8a18319a]{font-weight:600;color:#1f1f1f!important}.track-custom-note[data-v-8a18319a]{color:#7d8896;font-size:.86rem;line-height:1.55}.apply-file-status[data-v-8a18319a]{color:#667585;background:#f7f9fb;border:1px solid #e4e9ef;border-radius:999px;align-items:center;min-height:1.75rem;margin-top:.45rem;padding:.25rem .6rem;font-size:.84rem;line-height:1.2;display:inline-flex}.apply-file-status--filled[data-v-8a18319a]{color:#1f5132;background:#f3faf5;border-color:#bdd7c8}@media (width<=575.98px){.application-status-panel[data-v-8a18319a]{padding:.8rem .85rem}.track-custom-menu[data-v-8a18319a]{overscroll-behavior:contain;max-height:min(62vh,28rem);overflow-y:auto}.track-pick[data-v-8a18319a]{padding:.85rem .9rem}.track-pick-inline[data-v-8a18319a]{grid-template-columns:1fr;gap:.25rem}.track-custom-note[data-v-8a18319a]{font-size:.82rem;line-height:1.5}.track-selected-note[data-v-8a18319a]{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.apply-file-status[data-v-8a18319a]{justify-content:center;width:100%;display:flex}}.promise-doc-body--rich[data-v-8a18319a]{color:var(--bs-body-color,#212529);text-align:justify;font-size:.95rem;line-height:1.65}.promise-doc-body--rich[data-v-8a18319a] p{margin-bottom:.75rem}.promise-doc-body--rich[data-v-8a18319a] p:last-child{margin-bottom:0}.promise-doc-body--rich[data-v-8a18319a] ul,.promise-doc-body--rich[data-v-8a18319a] ol{margin-bottom:.75rem;padding-left:1.25rem}.promise-doc-body--rich[data-v-8a18319a] h1,.promise-doc-body--rich[data-v-8a18319a] h2,.promise-doc-body--rich[data-v-8a18319a] h3{margin:.75rem 0 .5rem;font-size:1rem;font-weight:600} diff --git a/public/admin/assets/ApplyView-CfKt5pzN.css b/public/admin/assets/ApplyView-CfKt5pzN.css new file mode 100644 index 0000000..6046254 --- /dev/null +++ b/public/admin/assets/ApplyView-CfKt5pzN.css @@ -0,0 +1 @@ +.application-status-panel[data-v-813e7b9e]{color:#17324d;background:#f7f9fc;border:1px solid #d8e2ef;border-radius:8px;align-items:flex-start;gap:.75rem;margin-bottom:1rem;padding:.875rem 1rem;display:flex}.application-status-panel--submitted[data-v-813e7b9e]{color:#1f5132;background:#f3faf5;border-color:#bdd7c8}.application-status-mark[data-v-813e7b9e]{flex:none;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;margin-top:.05rem;display:inline-flex}.application-status-copy[data-v-813e7b9e]{gap:.2rem;min-width:0;display:grid}.application-status-copy strong[data-v-813e7b9e]{font-size:.98rem;line-height:1.35}.application-status-copy span[data-v-813e7b9e]{color:#4d5f73;font-size:.9rem;line-height:1.5}.application-status-panel--submitted .application-status-copy span[data-v-813e7b9e]{color:#42664f}.apply-contact-panel[data-v-813e7b9e]{color:#425466;background:#fbfcfe;border:1px solid #e4e9ef;border-radius:8px;flex-wrap:wrap;align-items:center;gap:.45rem 1rem;margin-bottom:1rem;padding:.72rem .9rem;font-size:.9rem;line-height:1.4;display:flex}.apply-contact-panel a[data-v-813e7b9e]{color:inherit;text-decoration:none}.apply-contact-panel a[data-v-813e7b9e]:hover{color:#052d62;text-decoration:underline}.track-selected-note[data-v-813e7b9e]{color:#6c7886;margin-top:.35rem;font-size:.84rem;line-height:1.45;display:block}.track-pick-inline[data-v-813e7b9e]{white-space:normal;grid-template-columns:minmax(5.5rem,auto) 1fr;align-items:start;gap:.6rem;display:grid}.track-pick-inline .text-body[data-v-813e7b9e]{font-weight:600;color:#1f1f1f!important}.track-custom-note[data-v-813e7b9e]{color:#7d8896;font-size:.86rem;line-height:1.55}.apply-file-status[data-v-813e7b9e]{color:#667585;background:#f7f9fb;border:1px solid #e4e9ef;border-radius:999px;align-items:center;min-height:1.75rem;margin-top:.45rem;padding:.25rem .6rem;font-size:.84rem;line-height:1.2;display:inline-flex}.apply-file-status--filled[data-v-813e7b9e]{color:#1f5132;background:#f3faf5;border-color:#bdd7c8}@media (width<=575.98px){.application-status-panel[data-v-813e7b9e]{padding:.8rem .85rem}.track-custom-menu[data-v-813e7b9e]{overscroll-behavior:contain;max-height:min(62vh,28rem);overflow-y:auto}.track-pick[data-v-813e7b9e]{padding:.85rem .9rem}.track-pick-inline[data-v-813e7b9e]{grid-template-columns:1fr;gap:.25rem}.track-custom-note[data-v-813e7b9e]{font-size:.82rem;line-height:1.5}.track-selected-note[data-v-813e7b9e]{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.apply-file-status[data-v-813e7b9e]{justify-content:center;width:100%;display:flex}}.promise-doc-body--rich[data-v-813e7b9e]{color:var(--bs-body-color,#212529);text-align:justify;font-size:.95rem;line-height:1.65}.promise-doc-body--rich[data-v-813e7b9e] p{margin-bottom:.75rem}.promise-doc-body--rich[data-v-813e7b9e] p:last-child{margin-bottom:0}.promise-doc-body--rich[data-v-813e7b9e] ul,.promise-doc-body--rich[data-v-813e7b9e] ol{margin-bottom:.75rem;padding-left:1.25rem}.promise-doc-body--rich[data-v-813e7b9e] h1,.promise-doc-body--rich[data-v-813e7b9e] h2,.promise-doc-body--rich[data-v-813e7b9e] h3{margin:.75rem 0 .5rem;font-size:1rem;font-weight:600} diff --git a/public/admin/assets/ApplyView-DkM8Rp3c.js b/public/admin/assets/ApplyView-DkM8Rp3c.js new file mode 100644 index 0000000..7509c32 --- /dev/null +++ b/public/admin/assets/ApplyView-DkM8Rp3c.js @@ -0,0 +1 @@ +import{$t as e,C as t,D as n,Et as r,R as i,S as a,V as o,W as s,Y as c,_t as l,at as u,b as d,c as ee,ct as f,d as te,g as p,ht as m,in as h,k as g,m as ne,q as _,s as re,u as ie,w as v,x as y}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{g as ae,p as oe,u as se}from"./api-COeuB3z6.js";import{o as ce,s as le,v as ue,y as de}from"./index-uojebQYd.js";import{t as fe}from"./_plugin-vue_export-helper-S3RvzygF.js";import{a as pe,i as me,r as he,t as ge}from"./competitionBranding-Bz_llsts.js";import{n as _e,t as ve}from"./participantContact-0qVpTiM0.js";var ye={北京市:[`北京市`],天津市:[`天津市`],上海市:[`上海市`],重庆市:[`重庆市`],河北省:[`石家庄市`,`唐山市`,`秦皇岛市`,`邯郸市`,`邢台市`,`保定市`,`张家口市`,`承德市`,`沧州市`,`廊坊市`,`衡水市`],山西省:[`太原市`,`大同市`,`阳泉市`,`长治市`,`晋城市`,`朔州市`,`晋中市`,`运城市`,`忻州市`,`临汾市`,`吕梁市`],内蒙古自治区:[`呼和浩特市`,`包头市`,`乌海市`,`赤峰市`,`通辽市`,`鄂尔多斯市`,`呼伦贝尔市`,`巴彦淖尔市`,`乌兰察布市`,`兴安盟`,`锡林郭勒盟`,`阿拉善盟`],辽宁省:[`沈阳市`,`大连市`,`鞍山市`,`抚顺市`,`本溪市`,`丹东市`,`锦州市`,`营口市`,`阜新市`,`辽阳市`,`盘锦市`,`铁岭市`,`朝阳市`,`葫芦岛市`],吉林省:[`长春市`,`吉林市`,`四平市`,`辽源市`,`通化市`,`白山市`,`松原市`,`白城市`,`延边朝鲜族自治州`],黑龙江省:[`哈尔滨市`,`齐齐哈尔市`,`鸡西市`,`鹤岗市`,`双鸭山市`,`大庆市`,`伊春市`,`佳木斯市`,`七台河市`,`牡丹江市`,`黑河市`,`绥化市`,`大兴安岭地区`],江苏省:[`南京市`,`无锡市`,`徐州市`,`常州市`,`苏州市`,`南通市`,`连云港市`,`淮安市`,`盐城市`,`扬州市`,`镇江市`,`泰州市`,`宿迁市`],浙江省:[`杭州市`,`宁波市`,`温州市`,`嘉兴市`,`湖州市`,`绍兴市`,`金华市`,`衢州市`,`舟山市`,`台州市`,`丽水市`],安徽省:[`合肥市`,`芜湖市`,`蚌埠市`,`淮南市`,`马鞍山市`,`淮北市`,`铜陵市`,`安庆市`,`黄山市`,`滁州市`,`阜阳市`,`宿州市`,`六安市`,`亳州市`,`池州市`,`宣城市`],福建省:[`福州市`,`厦门市`,`莆田市`,`三明市`,`泉州市`,`漳州市`,`南平市`,`龙岩市`,`宁德市`],江西省:[`南昌市`,`景德镇市`,`萍乡市`,`九江市`,`新余市`,`鹰潭市`,`赣州市`,`吉安市`,`宜春市`,`抚州市`,`上饶市`],山东省:[`济南市`,`青岛市`,`淄博市`,`枣庄市`,`东营市`,`烟台市`,`潍坊市`,`济宁市`,`泰安市`,`威海市`,`日照市`,`临沂市`,`德州市`,`聊城市`,`滨州市`,`菏泽市`],河南省:[`郑州市`,`开封市`,`洛阳市`,`平顶山市`,`安阳市`,`鹤壁市`,`新乡市`,`焦作市`,`濮阳市`,`许昌市`,`漯河市`,`三门峡市`,`南阳市`,`商丘市`,`信阳市`,`周口市`,`驻马店市`,`济源市`],湖北省:[`武汉市`,`黄石市`,`十堰市`,`宜昌市`,`襄阳市`,`鄂州市`,`荆门市`,`孝感市`,`荆州市`,`黄冈市`,`咸宁市`,`随州市`,`恩施土家族苗族自治州`,`仙桃市`,`潜江市`,`天门市`,`神农架林区`],湖南省:[`长沙市`,`株洲市`,`湘潭市`,`衡阳市`,`邵阳市`,`岳阳市`,`常德市`,`张家界市`,`益阳市`,`郴州市`,`永州市`,`怀化市`,`娄底市`,`湘西土家族苗族自治州`],广东省:[`广州市`,`韶关市`,`深圳市`,`珠海市`,`汕头市`,`佛山市`,`江门市`,`湛江市`,`茂名市`,`肇庆市`,`惠州市`,`梅州市`,`汕尾市`,`河源市`,`阳江市`,`清远市`,`东莞市`,`中山市`,`潮州市`,`揭阳市`,`云浮市`],广西壮族自治区:[`南宁市`,`柳州市`,`桂林市`,`梧州市`,`北海市`,`防城港市`,`钦州市`,`贵港市`,`玉林市`,`百色市`,`贺州市`,`河池市`,`来宾市`,`崇左市`],海南省:[`海口市`,`三亚市`,`三沙市`,`儋州市`,`五指山市`,`琼海市`,`文昌市`,`万宁市`,`东方市`,`定安县`,`屯昌县`,`澄迈县`,`临高县`,`白沙黎族自治县`,`昌江黎族自治县`,`乐东黎族自治县`,`陵水黎族自治县`,`保亭黎族苗族自治县`,`琼中黎族苗族自治县`],四川省:[`成都市`,`自贡市`,`攀枝花市`,`泸州市`,`德阳市`,`绵阳市`,`广元市`,`遂宁市`,`内江市`,`乐山市`,`南充市`,`眉山市`,`宜宾市`,`广安市`,`达州市`,`雅安市`,`巴中市`,`资阳市`,`阿坝藏族羌族自治州`,`甘孜藏族自治州`,`凉山彝族自治州`],贵州省:[`贵阳市`,`六盘水市`,`遵义市`,`安顺市`,`毕节市`,`铜仁市`,`黔西南布依族苗族自治州`,`黔东南苗族侗族自治州`,`黔南布依族苗族自治州`],云南省:[`昆明市`,`曲靖市`,`玉溪市`,`保山市`,`昭通市`,`丽江市`,`普洱市`,`临沧市`,`楚雄彝族自治州`,`红河哈尼族彝族自治州`,`文山壮族苗族自治州`,`西双版纳傣族自治州`,`大理白族自治州`,`德宏傣族景颇族自治州`,`怒江傈僳族自治州`,`迪庆藏族自治州`],西藏自治区:[`拉萨市`,`日喀则市`,`昌都市`,`林芝市`,`山南市`,`那曲市`,`阿里地区`],陕西省:[`西安市`,`铜川市`,`宝鸡市`,`咸阳市`,`渭南市`,`延安市`,`汉中市`,`榆林市`,`安康市`,`商洛市`],甘肃省:[`兰州市`,`嘉峪关市`,`金昌市`,`白银市`,`天水市`,`武威市`,`张掖市`,`平凉市`,`酒泉市`,`庆阳市`,`定西市`,`陇南市`,`临夏回族自治州`,`甘南藏族自治州`],青海省:[`西宁市`,`海东市`,`海北藏族自治州`,`黄南藏族自治州`,`海南藏族自治州`,`果洛藏族自治州`,`玉树藏族自治州`,`海西蒙古族藏族自治州`],宁夏回族自治区:[`银川市`,`石嘴山市`,`吴忠市`,`固原市`,`中卫市`],新疆维吾尔自治区:[`乌鲁木齐市`,`克拉玛依市`,`吐鲁番市`,`哈密市`,`昌吉回族自治州`,`博尔塔拉蒙古自治州`,`巴音郭楞蒙古自治州`,`阿克苏地区`,`克孜勒苏柯尔克孜自治州`,`喀什地区`,`和田地区`,`伊犁哈萨克自治州`,`塔城地区`,`阿勒泰地区`,`石河子市`,`阿拉尔市`,`图木舒克市`,`五家渠市`,`北屯市`,`铁门关市`,`双河市`,`可克达拉市`,`昆玉市`,`胡杨河市`,`新星市`],香港特别行政区:[`香港`],澳门特别行政区:[`澳门`],台湾省:[`台北市`,`新北市`,`桃园市`,`台中市`,`台南市`,`高雄市`,`新竹市`,`嘉义市`]},be=`北京市.天津市.上海市.重庆市.河北省.山西省.内蒙古自治区.辽宁省.吉林省.黑龙江省.江苏省.浙江省.安徽省.福建省.江西省.山东省.河南省.湖北省.湖南省.广东省.广西壮族自治区.海南省.四川省.贵州省.云南省.西藏自治区.陕西省.甘肃省.青海省.宁夏回族自治区.新疆维吾尔自治区.香港特别行政区.澳门特别行政区.台湾省`.split(`.`),xe=[`pdf`,`ppt`,`pptx`,`doc`,`docx`,`wps`,`rar`,`zip`],b=[{key:`player_name`,type:`text`,label:`参赛人姓名`,required:!0,help:``},{key:`school`,type:`text`,label:`毕业院校`,required:!0},{key:`degree`,type:`select`,label:`最高学历`,required:!0,options:[`大专`,`本科`,`硕士`,`博士`,`其他`].map(e=>({label:e,value:e}))},{key:`contact_email`,type:`email`,label:`注册邮箱`,required:!0},{key:`contact_mobile`,type:`tel`,label:`联系电话`,required:!0,placeholder:`11 位中国大陆手机号`},{key:`entry_group`,type:`select`,label:`参赛组别`,required:!0,options:[{label:`创新组`,value:`创新组`},{label:`创业组`,value:`创业组`}],help:`仅限创业组填报企业名称(创新组不展示该字段)`},{key:`company_name`,type:`text`,label:`企业名称`,required:!1,required_when:{field:`entry_group`,values:[`创业组`]},placeholder:`请填写工商注册全称`,prefill_from:`user.company`},{key:`project_name`,type:`text`,label:`项目名称`,required:!0},{key:`track`,type:`select`,label:`主题赛道`,required:!0,help:`请从本场赛事公布的赛道中选择`,options:[]},{key:`location_country`,type:`select`,label:`项目所在地`,required:!0,options:[{label:`中国`,value:`中国`},{label:`海外`,value:`海外`}]},{key:`location_province`,type:`select`,label:`省份`,required:!1,options:[]},{key:`location_city`,type:`text`,label:`城市`,required:!1},{key:`oversea_country`,type:`text`,label:`所在国(海外)`,required:!1,placeholder:`如:新加坡、日本、美国`},{key:`intro`,type:`textarea`,label:`项目简介`,required:!1,placeholder:`约200字左右`},{key:`commitment_accepted`,type:`checkbox`,label:`本人已阅读并同意《参赛承诺书》的全部内容`,required:!0,help:`提交报名即表示承诺所填信息真实有效,并遵守赛事规则。`},{key:`plan`,type:`file`,label:`上传商业计划书`,required:!0,help:`可上传多个文件,单文件 20M 以内`},{key:`supporting`,type:`file`,label:`其他佐证材料`,required:!1,help:`可选;格式同计划书`}];function x(e){return Array.isArray(e)?e.map(e=>typeof e==`object`&&e&&`label`in e&&`value`in e?{label:String(e.label),value:String(e.value)}:typeof e==`string`?{label:e,value:e}:null).filter(e=>e!=null&&String(e.label).trim()!==``&&String(e.value).trim()!==``):[]}function S(e){if(e!=null){if(Array.isArray(e)){let t=e.map(e=>String(e).trim().toLowerCase().replace(/^\./,``)).filter(e=>e!==``);return t.length?[...new Set(t)]:void 0}if(typeof e==`string`){let t=e.split(/[,;\s|]+/).map(e=>e.trim().toLowerCase().replace(/^\./,``)).filter(e=>e!==``);return t.length?[...new Set(t)]:void 0}}}function C(e){if(e==null||e===``)return;let t=typeof e==`number`?e:parseInt(String(e),10);if(!Number.isFinite(t))return;let n=Math.floor(t);return n>=1?n:void 0}function Se(e){if(!Array.isArray(e)||e.length===0)return b.map(e=>({...e,options:e.options?[...e.options]:void 0}));let t=[];for(let n of e){if(typeof n!=`object`||!n)continue;let e=n,r=String(e.key??``).trim();if(!r)continue;let i=String(e.type??`text`),a=String(e.label??r),o=!!e.required,s=e.placeholder,c=s!=null&&String(s).trim()!==``?String(s).trim():void 0,l=e.help,u=l!=null&&String(l).trim()!==``?String(l).trim():void 0,d=e.prefill_from,ee=d!=null&&String(d).trim()!==``?String(d).trim():void 0,f=e.title_supplement,te=f!=null&&String(f).trim()!==``?String(f).trim():void 0,p,m=e.required_when;if(typeof m==`object`&&m&&!Array.isArray(m)){let e=m,t=String(e.field??``).trim(),n=e.values,r=Array.isArray(n)?n.map(e=>String(e).trim()).filter(e=>e!==``):[];t&&r.length&&(p={field:t,values:r})}let h;if(i===`select`&&Array.isArray(e.options)&&(h=x(e.options)),r===`track`&&(h=[]),i===`select`&&r!==`track`&&(!h||h.length===0))if(r===`location_province`)h=be.map(e=>({label:e,value:e}));else{let e=b.find(e=>e.key===r);e?.options?.length&&(h=e.options.map(e=>({...e})))}let g,ne;i===`file`&&(g=S(e.file_extensions),ne=C(e.file_max_count)),t.push({key:r,type:i,label:a,title_supplement:te,required:o,placeholder:c,help:u,prefill_from:ee,options:h,required_when:p,file_extensions:g,file_max_count:ne})}return t.length?t:b.map(e=>({...e}))}var Ce={class:`apply-form-page`},we={class:`form-page-header flex-shrink-0 mb-3`},Te={class:`mb-0 form-page-title`},Ee={key:0,class:`text-secondary prototype-subtitle mb-0 mt-2`},De={key:1,class:`text-danger small mb-0 mt-2`},Oe={key:2,class:`text-warning small mb-0 mt-2`},ke={key:0,class:`apply-form-scroll`},Ae={class:`card mb-0`},je={class:`card-body`},Me={class:`application-status-mark`,"aria-hidden":`true`},Ne={key:0,viewBox:`0 0 24 24`,width:`22`,height:`22`,fill:`none`},Pe={key:1,viewBox:`0 0 24 24`,width:`22`,height:`22`,fill:`none`},Fe={class:`application-status-copy`},Ie={class:`apply-contact-panel`,"aria-label":`咨询电话`},Le=[`href`],Re=[`href`],ze={key:0,class:`col-md-4`},Be={class:`form-label`,id:`trackFieldLabel`},Ve={key:0,class:`text-danger`},He={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},Ue={class:`track-custom-select w-100`},We=[`required`,`disabled`],Ge=[`value`],Ke={class:`dropdown w-100`},qe=[`disabled`],Je={class:`track-toggle-label text-truncate`},Ye={key:0,class:`track-selected-note`},Xe={class:`dropdown-menu w-100 border shadow-sm rounded-2 py-0 my-1 track-custom-menu`},Ze=[`onClick`],Qe={class:`track-pick-inline`},$e={class:`text-body`},et={key:0,class:`track-custom-note`},tt={key:0,class:`text-secondary prototype-subtitle d-block`},nt={key:1,class:`col-12`},rt={class:`form-label`},it={key:0,class:`text-danger`},at={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},ot=[`accept`,`disabled`],st={key:0,class:`text-secondary prototype-subtitle d-block mt-1`},ct={key:1,class:`supporting-file-list mt-2`,"aria-live":`polite`},lt={class:`supporting-file-meta`},ut=[`title`],dt={class:`supporting-file-size`},ft={class:`supporting-file-actions`},pt=[`onClick`],mt=[`disabled`,`onClick`],ht={class:`text-secondary prototype-subtitle d-block`},gt={key:2,class:`invalid-feedback d-block`},_t={key:2,class:`col-12`},vt={class:`form-label`},yt={key:0,class:`text-danger`},bt={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},xt=[`accept`,`disabled`],St={key:0,class:`text-secondary prototype-subtitle d-block mt-1`},Ct={key:1,class:`supporting-file-list mt-2`,"aria-live":`polite`},wt={class:`supporting-file-meta`},Tt=[`title`],Et={class:`supporting-file-size`},Dt={class:`supporting-file-actions`},Ot=[`onClick`],kt=[`disabled`,`onClick`],At={class:`text-secondary prototype-subtitle d-block`},jt={key:2,class:`invalid-feedback d-block`},Mt={class:`form-label`},Nt={key:0,class:`text-danger`},Pt={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},Ft=[`onUpdate:modelValue`,`required`,`disabled`],It={value:``,disabled:``},Lt=[`value`],Rt={class:`invalid-feedback`},zt={key:0,class:`text-secondary prototype-subtitle d-block`},Bt={class:`form-label`},Vt={key:0,class:`text-danger`},Ht={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},Ut=[`required`,`disabled`],Wt={value:``,disabled:``},Gt=[`value`],Kt={class:`invalid-feedback`},qt={key:0,class:`text-secondary prototype-subtitle d-block`},Jt={class:`form-label`},Yt={key:0,class:`text-danger`},Xt={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},Zt={class:`d-flex flex-wrap align-items-center gap-2 mb-1`},Qt=[`disabled`],$t={key:0,class:`badge rounded-pill px-3 py-2 promise-signed-badge`},en={key:0,class:`text-secondary prototype-subtitle d-block mt-1`},tn={class:`form-check`},nn=[`id`,`onUpdate:modelValue`,`required`,`disabled`],rn=[`for`],an={key:0,class:`text-danger ms-1`},on={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},sn={key:0,class:`text-secondary prototype-subtitle d-block mt-1`},cn={class:`form-label`},ln={key:0,class:`text-danger`},un={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},dn=[`onUpdate:modelValue`,`required`,`disabled`],fn={key:0,class:`d-flex flex-wrap align-items-baseline gap-2 mt-1 w-100`},pn={key:0,class:`apply-textarea-placeholder-hint mb-0`},mn={key:1,class:`text-secondary prototype-subtitle intro-char-count mb-0 ms-auto`},hn={class:`form-label`},gn={key:0,class:`text-danger`},_n={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},vn=[`onUpdate:modelValue`,`type`,`required`,`disabled`,`placeholder`,`pattern`,`autocomplete`],yn={class:`invalid-feedback`},bn={key:0,class:`text-secondary prototype-subtitle d-block`},xn={class:`col-12 apply-form-actions mt-3 pt-3 border-top d-flex gap-2 flex-wrap`},Sn=[`disabled`],Cn=[`disabled`],wn={class:`modal-dialog modal-dialog-centered promise-sign-modal`},Tn={class:`modal-content promise-sign-sheet`},En={class:`modal-body pt-2`},Dn={class:`promise-doc-paper`},On={class:`promise-doc-heading text-center`},kn={class:`promise-doc-scroll`},An=[`innerHTML`],jn={class:`promise-doc-signblock`},Mn={class:`promise-doc-signrow`},Nn={class:`promise-sig-wrap`},Pn={class:`promise-sig-box`},Fn={class:`promise-doc-daterow`},In={class:`promise-doc-dateline`},Ln={class:`modal-dialog modal-dialog-centered notice-modal-dialog`},Rn={class:`modal-body notice-modal-body`},zn={class:`notice-icon`,"aria-hidden":`true`},Bn={key:0,viewBox:`0 0 24 24`,width:`36`,height:`36`,fill:`none`,"aria-hidden":`true`},Vn={key:1,viewBox:`0 0 24 24`,width:`36`,height:`36`,fill:`none`,"aria-hidden":`true`},Hn={class:`notice-title`},Un={key:0,class:`notice-text text-break`,style:{"white-space":`pre-wrap`}},Wn=20*1024*1024,Gn=`^1[3-9]\\d{9}$`,Kn=`

本项目申报信息中所填写的各栏目内容真实、准确。本项目负责人(团队)对申报材料的真实性负完全责任。

若申报信息中存在虚假、伪造等不实情况,本项目负责人(团队)将积极配合调查,并按照有关规定接受处理。

`,qn=2097152,w=fe(g({__name:`ApplyFormView`,setup(a){let g=ue,fe=le(),b=ce(),x=d(()=>String(b.params.slug??``).trim());function S(e){let t=e.value;return t==null?null:Array.isArray(t)?t[0]??null:t}function C(e){let t=(e??``).trim();return!t||/applications\.|config\/contest|与提交校验|\^1\[3-9\]|kind=\s*plan|kind=\s*supporting|\\d\{9\}/i.test(t)?``:t}function w(e){return String(e.title_supplement??``).trim()}function T(){return oe()}function E(){let e=x.value;return e?`?competition_slug=${encodeURIComponent(e)}`:``}function Jn(e){let t={Authorization:`Bearer ${localStorage.getItem(`cxxfds_token`)||``}`,Accept:`application/json`};e&&(t[`Content-Type`]=`application/json`);let n=x.value;return n&&(t[`X-Competition-Slug`]=n),t}let Yn=Promise.resolve();async function D(e,t){let n=()=>fetch(e,t),r=Yn.then(n,n);return Yn=r.then(()=>void 0,()=>void 0),r}function O(){localStorage.removeItem(se);let e=x.value;e?fe.push({name:`participant-login`,params:{slug:e},query:{redirect:b.fullPath}}):fe.push(`/c`)}let k=l(Se([]));function Xn(e){let t=xe.map(e=>e.toLowerCase()),n=new Set(t),r=e?.file_extensions;if(!Array.isArray(r)||r.length===0)return[...t];let i=[...new Set(r.map(e=>String(e).trim().toLowerCase().replace(/^\./,``)).filter(Boolean).filter(e=>n.has(e)))];return i.length>0?i:[...t]}function Zn(e){let t=e?.file_max_count;if(typeof t!=`number`||!Number.isFinite(t))return null;let n=Math.floor(t);return n>=1?n:null}function Qn(e){return k.value.find(t=>t.type===`file`&&t.key===e)}function $n(e){return Xn(e).map(e=>`.`+e).join(`,`)}let A=l([]),er=l(!1),tr=l(``),nr=l(``),rr=d(()=>nr.value.trim()||Kn),ir=l(he()),j=l(``),M=m({});function ar(e){for(let t of e)t.type!==`file`&&(t.key in M||(M[t.key]=``));e.some(e=>e.key===`commitment_accepted`)&&!(`promise_signature`in M)&&(M.promise_signature=``)}let or=d(()=>`jscc_signup_form_draft_v2_${x.value||`x`}`),sr=l(`draft`),cr=l(``),N=l(!0),P=d(()=>sr.value===`submitted`),lr=d(()=>zr(cr.value)),ur=d(()=>P.value&&N.value?`报名已提交,可继续修改`:P.value?`报名已提交,已锁定`:N.value?`报名信息未提交`:`报名未提交,当前不可编辑`),dr=d(()=>P.value&&N.value?`${lr.value?`上次提交时间:${lr.value}。`:``}在报名截止且没有任一评委提交评分前,你仍可修改资料、增删附件,并点击“更新报名”覆盖提交。评审开始后报名会自动锁定,请保持联系方式畅通。`:P.value?`${lr.value?`提交时间:${lr.value}。`:``}报名已因截止或评审记录产生而锁定,不能再修改资料、增删附件或重复提交。后续请等待赛事组委会通知;如需更正请联系组委会。`:N.value?`请完整填写报名信息、上传商业计划书并签署承诺书;点击“保存”只暂存草稿,点击“提交报名”后才进入已提交状态。`:`当前报名窗口已关闭或报名已被锁定,无法新建、保存或提交报名。如认为状态异常,请联系赛事组委会。`),fr=l(!1),pr=l(null),mr=l(null),hr=d(()=>{let e=M.track,t=A.value.find(t=>t.track_code===e);return t?t.title:e||`请选择主题赛道`}),gr=d(()=>M.track?`text-body`:`text-secondary`),_r=d(()=>{let e=M.track;return(A.value.find(t=>t.track_code===e)?.description??``).trim()});function vr(e){return(e??``).trim()}function yr(e){M.track=e,fr.value=!1;let t=S(mr);t&&g.getInstance(t)?.hide()}let F=d(()=>M.location_country===`中国`),br=d(()=>M.location_country===`海外`),xr=d(()=>be.map(e=>({label:e,value:e}))),Sr=d(()=>{let e=M.location_province;return e?(ye[e]||[]).map(e=>({label:e,value:e})):[]});function Cr(){br.value?(M.location_province=``,M.location_city=``):F.value||(M.location_province=``,M.location_city=``,M.oversea_country=``)}u(()=>M.location_country,()=>{Cr()}),u(()=>M.location_province,(e,t)=>{F.value&&e!==t&&(t==null||String(t).trim()===``||(M.location_city=``))}),u(()=>M.entry_group,e=>{e===`创新组`&&(M.company_name=``)});let I=l([]),L=l([]),R=l([]),z=l(!1),B=l(``),V=l(``),wr=l(``),Tr=l(``),H=l(!1),U=d(()=>!N.value),Er=l(null),Dr=l(null),Or=l(null),kr=d(()=>(M.intro||``).length),Ar=d(()=>pe(ir.value,tr.value)),jr=d(()=>{let e=ir.value.apply?.headerSubtitle;return me(e)?String(e).trim():``});function Mr(e){let t=String(M[e.key]??``).trim();return e.type===`email`||e.key===`contact_email`?t?`请输入正确的邮箱格式`:`请填写${e.label}`:(e.type===`tel`||e.key===`contact_mobile`)&&t?`请输入正确的11位中国大陆手机号`:`请填写${e.label}`}function W(e){return e.type===`textarea`||e.type===`file`||e.type===`checkbox`?`col-12`:`col-md-4`}function Nr(e){return e.type===`textarea`?String(e.placeholder??``).trim():``}function Pr(e){return e.type===`file`?!0:e.key===`company_name`?M.entry_group!==`创新组`:e.key===`location_province`||e.key===`location_city`?F.value:e.key===`oversea_country`?br.value:!0}function G(e){if(e.key===`location_province`||e.key===`location_city`)return F.value;if(e.key===`oversea_country`)return br.value;let t=e.required_when;if(t?.field&&t.values?.length){let e=String(M[t.field]??``).trim();if(t.values.includes(e))return!0}return e.required}let Fr=d(()=>k.value.filter(e=>Pr(e)));function Ir(e){return e.key===`track`?A.value.map(e=>({label:e.title,value:e.track_code})):e.key===`location_province`?xr.value:e.key===`location_city`&&F.value?Sr.value:e.options??[]}function Lr(e){return e.key===`location_city`&&F.value}function Rr(e){return e>=1024*1024?`${(e/1024/1024).toFixed(1).replace(/\.0$/,``)}M`:e>=1024?`${Math.ceil(e/1024)}K`:`${e}B`}function K(e){return e.file?e.file.name:e.original_name||``}function zr(e){if(!e)return``;let t=new Date(e);if(Number.isNaN(t.getTime()))return``;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 Br(e){if(e.length===0)return`尚未选择文件`;let t=e.filter(e=>e.fromServer).length;return t===e.length?`已上传 ${e.length} 个文件`:`已选择 ${e.length} 个文件,正在上传 ${e.length-t} 个`}function Vr(e){return`请选择${e.label}`}function Hr(e){let t=e.message||``,n=e.errors;return n&&Object.keys(n).length?`${t}\n${JSON.stringify(n)}`:t||`操作失败`}let Ur=l(null),Wr=l(`提示`),Gr=l(``),Kr=l(!1);function q(e,t=`提示`,n=`warning`){return Wr.value=t,Gr.value=e,Kr.value=n===`success`,new Promise(e=>{i(()=>{let t=Ur.value;if(!t){e();return}t.addEventListener(`hidden.bs.modal`,()=>e(),{once:!0}),de.getOrCreateInstance(t).show()})})}function qr(e){return e===`navigateTo`||e===`reLaunch`||e===`switchTab`?e:`redirectTo`}function Jr(e){if(!e)return null;if(e.type===`mini_program`){let t=typeof e.path==`string`?e.path.trim():``;return t?{type:`mini_program`,path:t,method:qr(e.method)}:null}let t=typeof e.redirect_url==`string`?e.redirect_url.trim():``;return t?{type:`web`,redirectUrl:t}:null}let Yr=null;function Xr(){if(window.wx?.miniProgram)return Promise.resolve(window.wx);if(Yr)return Yr;let e=new Promise((e,t)=>{let n=document.querySelector(`script[data-cxcyds-wx-jssdk="true"]`);if(n){n.addEventListener(`load`,()=>window.wx?e(window.wx):t(Error(`wx missing`)),{once:!0}),n.addEventListener(`error`,()=>t(Error(`wx jssdk load failed`)),{once:!0});return}let r=document.createElement(`script`);r.src=`https://res.wx.qq.com/open/js/jweixin-1.6.0.js`,r.async=!0,r.dataset.cxcydsWxJssdk=`true`,r.onload=()=>{window.wx?.miniProgram?e(window.wx):t(Error(`wx miniProgram bridge missing`))},r.onerror=()=>t(Error(`wx jssdk load failed`)),document.head.appendChild(r)}).finally(()=>{Yr=null});return Yr=e,e}async function Zr(e,t){try{let n=(await Xr()).miniProgram?.[t];return typeof n==`function`?(n({url:e}),!0):!1}catch{return!1}}let Qr=l(null),J=l(null),$r=l(``),ei=l(!0),Y=null,X=520,Z=140,ti=!1,ni=!1,ri=null,ii=null;function ai(){ri?.abort(),ri=null}let oi=d(()=>M.commitment_accepted===`1`&&String(M.promise_signature??``).trim()!==``),si=d(()=>{let e=tr.value.trim();return e?`${e} 赛事承诺书`:`赛事承诺书`});function ci(e){return`${e.getFullYear()}年${e.getMonth()+1}月${e.getDate()}日`}function li(e,t){let n=t.getBoundingClientRect();if(`touches`in e&&e.touches[0]){let t=e.touches[0];return{x:t.clientX-n.left,y:t.clientY-n.top}}let r=e;return{x:r.clientX-n.left,y:r.clientY-n.top}}function ui(){let e=J.value;if(!e)return;let t=e.closest(`.promise-sig-wrap`),n=window.devicePixelRatio||1,r=window.getComputedStyle(e);X=Math.max(280,Math.floor(t?.clientWidth||520)),Z=Math.max(76,Math.floor(parseFloat(r.height)||110)),e.style.width=`${X}px`,e.style.height=`${Z}px`,e.width=Math.floor(X*n),e.height=Math.floor(Z*n),Y=e.getContext(`2d`),Y&&(Y.setTransform(1,0,0,1,0,0),Y.scale(n,n),Y.fillStyle=`#ffffff`,Y.fillRect(0,0,X,Z),Y.strokeStyle=`#111111`,Y.lineWidth=2,Y.lineCap=`round`,Y.lineJoin=`round`,ni=!1,ei.value=!0)}function di(){let e=String(M.promise_signature??``).trim();if(!e||!Y)return;let t=new Image;t.onload=()=>{Y&&(Y.drawImage(t,0,0,X,Z),ni=!0,ei.value=!1)},t.src=e}function fi(){let e=J.value;if(!e||!Y)return;ai(),ri=new AbortController;let{signal:t}=ri,n=t=>{if(`touches`in t&&t.preventDefault(),!Y)return;ti=!0;let n=li(t,e);Y.beginPath(),Y.moveTo(n.x,n.y)},r=t=>{if(!ti||!Y)return;`touches`in t&&t.preventDefault();let n=li(t,e);Y.lineTo(n.x,n.y),Y.stroke(),ni=!0,ei.value=!1},i=()=>{ti=!1};e.addEventListener(`mousedown`,n,{signal:t}),e.addEventListener(`mousemove`,r,{signal:t}),window.addEventListener(`mouseup`,i,{signal:t}),e.addEventListener(`touchstart`,n,{passive:!1,signal:t}),e.addEventListener(`touchmove`,r,{passive:!1,signal:t}),e.addEventListener(`touchend`,i,{signal:t}),e.addEventListener(`touchcancel`,i,{signal:t})}function pi(){$r.value=ci(new Date);let e=t=>{if(!J.value){t<40&&requestAnimationFrame(()=>e(t+1));return}ui(),fi(),String(M.promise_signature??``).trim()&&M.commitment_accepted===`1`&&di()};i(()=>{requestAnimationFrame(()=>e(0))})}function mi(e){ii?.();let t=()=>{pi()},n=()=>{ai()};e.addEventListener(`shown.bs.modal`,t),e.addEventListener(`hidden.bs.modal`,n),ii=()=>{e.removeEventListener(`shown.bs.modal`,t),e.removeEventListener(`hidden.bs.modal`,n),ii=null}}u(Qr,e=>{ii?.(),e&&mi(e)},{flush:`post`});function hi(){if(U.value)return;let e=Qr.value;e&&de.getOrCreateInstance(e).show()}function gi(){ui(),fi()}function _i(){let e=J.value;if(!ni||!e){q(`请先在签名区域内手写签名后再确认。`,`请确认`,`warning`);return}let t=e.toDataURL(`image/png`);if(t.length>qn){q(`签名数据过大,请清除后重新签名或联系管理员。`,`提示`,`warning`);return}M.promise_signature=t,M.commitment_accepted=`1`;let n=Qr.value;n&&de.getInstance(n)?.hide()}function vi(){let e={};for(let t of k.value)if(t.type!==`file`){if(t.type===`checkbox`){e[t.key]=M[t.key]===`1`;continue}e[t.key]=M[t.key]??``}return k.value.some(e=>e.key===`commitment_accepted`)&&M.commitment_accepted===`1`&&(e.promise_signature=M.promise_signature??``),e}function yi(e,t,n,r){let i=Xn(r),a=Zn(r),o=e.filter(e=>e.file),s=e.filter(e=>e.fromServer&&!e.file);if(!o.length&&!s.length)return{ok:n,feedback:n?``:t};if(a!==null&&e.length>a)return{ok:!1,feedback:`最多可上传 ${a} 个文件,请删除多余文件后重试`};let c=o.map(e=>e.file).find(e=>{let t=(e.name.split(`.`).pop()||``).toLowerCase();return!i.includes(t)});if(c)return{ok:!1,feedback:`“${c.name}”格式不支持,请上传 ${i.join(`、`)} 格式的文件`};let l=o.map(e=>e.file).find(e=>e.size>Wn);return l?{ok:!1,feedback:`“${l.name}”大小不能超过20M`}:{ok:!0,feedback:``}}function bi(){return k.value.some(e=>e.key===`plan`&&e.type===`file`)}function xi(){return k.value.some(e=>e.key===`supporting`&&e.type===`file`)}function Q(){if(!bi())return S(Dr)?.setCustomValidity(``),!0;let e=Qn(`plan`),t=yi(I.value,`请上传商业计划书`,!1,e);return wr.value=t.feedback,S(Dr)?.setCustomValidity(t.ok?``:`missing`),t.ok}function $(){if(!xi())return S(Or)?.setCustomValidity(``),!0;let e=Qn(`supporting`),t=yi(L.value,`文件格式或大小不符合要求`,!0,e);return Tr.value=t.feedback,S(Or)?.setCustomValidity(t.ok?``:`bad`),t.ok}function Si(){H.value=!0,Q(),$();let e=k.value.find(e=>e.key===`track`);if(e&&Pr(e)){fr.value=!M.track;let e=S(pr);e&&e.setCustomValidity(M.track?``:`请选择主题赛道`)}else fr.value=!1,S(pr)?.setCustomValidity(``);return!(Er.value?.checkValidity()??!1)||e&&G(e)&&!M.track||!Q()||!$()?!1:k.value.find(e=>e.key===`commitment_accepted`)&&(M.commitment_accepted!==`1`||!String(M.promise_signature??``).trim())?(q(`请先阅读并完成参赛承诺书的手写签署。`,`提示`,`warning`),!1):!0}async function Ci(e){let t=localStorage.getItem(se);if(!t)return;let n=(e===`plan`?I.value:L.value).filter(e=>e.file&&!e.fromServer);if(n.length!==0){for(let r of n){if(!r.file)continue;let n=new FormData;n.append(`kind`,e===`plan`?`plan`:`supporting`),n.append(`file`,r.file);let i=await D(`${T()}/api/applications/current/files${E()}`,{method:`POST`,headers:{Authorization:`Bearer ${t}`,Accept:`application/json`},body:n}),a=await i.json().catch(()=>({}));if(i.status===401){O();return}if(!i.ok){q(Hr(a),`提示`,`warning`);return}let o=r.previewUrl;r.id=a.id,r.fromServer=!0,r.original_name=a.original_name,r.size=a.size;let s=ae(String(a.url??``));r.url=s,r.previewUrl=s,o&&String(o).startsWith(`blob:`)&&URL.revokeObjectURL(o),delete r.file}q(`文件已上传。`,`上传成功`,`success`),e===`plan`?Q():$()}}function wi(e){e.localBlobUrl&&e.localBlobUrl.startsWith(`blob:`)&&(URL.revokeObjectURL(e.localBlobUrl),delete e.localBlobUrl),e.previewUrl&&String(e.previewUrl).startsWith(`blob:`)&&URL.revokeObjectURL(e.previewUrl)}async function Ti(e){if(e.localBlobUrl){window.open(e.localBlobUrl,`_blank`,`noopener,noreferrer`);return}if(e.file&&e.previewUrl?.startsWith(`blob:`)){window.open(e.previewUrl,`_blank`,`noopener,noreferrer`);return}let t=ae(e.previewUrl||e.url);if(t){if(!e.fromServer){window.open(t,`_blank`,`noopener,noreferrer`);return}try{let n=await fetch(t,{credentials:`omit`});if(!n.ok)throw Error(`fetch failed`);let r=await n.blob(),i=URL.createObjectURL(r);e.localBlobUrl=i,window.open(i,`_blank`,`noopener,noreferrer`)}catch{window.open(t,`_blank`,`noopener,noreferrer`)}}}async function Ei(e,t){let n=String(e);if(R.value.includes(n))return;let r=t===`plan`?[...I.value]:[...L.value],i=r.find(e=>String(e.id)===n);if(!i)return;let a=i.fromServer?Number(i.id):NaN;if(i.fromServer&&Number.isFinite(a)&&a>0){if(!localStorage.getItem(`cxxfds_token`)){O();return}R.value=[...R.value,n];try{let e=new AbortController,t=window.setTimeout(()=>e.abort(),15e3),n=await D(`${T()}/api/applications/current/files/${a}/delete${E()}`,{method:`POST`,headers:Jn(!1),signal:e.signal});if(window.clearTimeout(t),n.status===401){O();return}if(n.status!==404&&!n.ok){q(`删除失败`,`提示`,`warning`);return}}catch(e){q(e instanceof DOMException&&e.name===`AbortError`?`删除超时,请关闭已打开的预览窗口后重试`:`删除失败`,`提示`,`warning`);return}finally{R.value=R.value.filter(e=>e!==n)}}wi(i),r=r.filter(t=>String(t.id)!==String(e)),t===`plan`?I.value=r:L.value=r,H.value=!0,t===`plan`?Q():$()}function Di(e,t){if(!e?.length)return;let n=Zn(Qn(t)),r=t===`plan`?[...I.value]:[...L.value],i=Array.from(e),a=n===null?i.length:Math.max(0,n-r.length);if(i.length>a&&n!==null&&q(`该栏最多上传 ${n} 个文件,已忽略多余 ${i.length-a} 个选择。`,`提示`,`warning`),i=i.slice(0,a),i.forEach(e=>{r.push({id:`tmp-${Date.now()}-${Math.random().toString(16).slice(2)}`,file:e,previewUrl:URL.createObjectURL(e),fromServer:!1})}),t===`plan`){I.value=[...r],B.value=``;let e=S(Dr);e&&(e.value=``),H.value=!0,Q()}else{L.value=[...r],V.value=``;let e=S(Or);e&&(e.value=``),H.value=!0,$()}Ci(t)}function Oi(){return{formModel:{...M},planFileNames:I.value.map(K).filter(Boolean),supportingFileNames:L.value.map(K).filter(Boolean)}}function ki(){let e=Oi();localStorage.setItem(or.value,JSON.stringify(e)),e.planFileNames.length?B.value=`已保存商业计划书名称:${e.planFileNames.join(`、`)}`:B.value=``,e.supportingFileNames.length?V.value=`已保存其他佐证材料名称:${e.supportingFileNames.join(`、`)}`:V.value=``}function Ai(){let e=localStorage.getItem(or.value);if(e)try{let t=JSON.parse(e);if(t.formModel&&typeof t.formModel==`object`)for(let e of Object.keys(t.formModel))M[e]=t.formModel[e]??``;let n=t.planFileNames||[];n.length&&(B.value=`上次保存商业计划书名称:${n.join(`、`)}(浏览器限制,需重新选择后预览或删除)`);let r=t.supportingFileNames;r?.length&&(V.value=`上次保存其他佐证材料名称:${r.join(`、`)}(浏览器限制,需重新选择后预览或删除)`),Cr()}catch{localStorage.removeItem(or.value)}}async function ji(){er.value=!1;let e=x.value;if(!e){j.value=`缺少赛事地址`;return}j.value=``;try{let t=await fetch(`${T()}/api/v1/public/competitions/by-slug/${encodeURIComponent(e)}`,{headers:{Accept:`application/json`}});if(!t.ok){j.value=t.status===404?`赛事不存在或未发布`:`无法加载赛事配置`;return}let n=await t.json(),r=n.data!=null&&typeof n.data==`object`&&!Array.isArray(n.data)?n.data:n;tr.value=String(r.name??``),nr.value=typeof r.pledge_content_html==`string`?r.pledge_content_html:``;let i=r.tracks;A.value=Array.isArray(i)?i:[];let a=r.signup_form_schema;if(typeof a==`string`)try{a=JSON.parse(a)}catch{a=[]}k.value=Se(a),ar(k.value),ir.value=ge(r.branding_json??null);let o=ir.value.documentTitle;me(o)&&typeof document<`u`&&(document.title=o.trim()),er.value=!0}catch{j.value=`网络错误,无法加载赛事`}}function Mi(e){sr.value=e.status||`draft`,cr.value=typeof e.submitted_at==`string`?e.submitted_at:``,N.value=e.participant_may_edit!==!1,M.player_name=e.player_name||``,M.school=e.school||``,M.degree=e.degree||``,M.contact_email=e.contact_email||``,M.contact_mobile=e.contact_mobile||``,M.entry_group=e.entry_group||``,M.company_name=e.company_name||``,M.project_name=e.project_name||``,M.track=e.track||``,M.location_country=e.location_country||``,M.location_province=e.location_province||``,M.location_city=e.location_city||``,M.oversea_country=e.oversea_country||``,M.intro=e.intro||``;let t=Object.prototype.hasOwnProperty.call(e,`promise_signature`),n=t?typeof e.promise_signature==`string`?e.promise_signature:``:String(M.promise_signature??``);(t||!e.promise_signed_at)&&(M.promise_signature=n),M.commitment_accepted=n.trim()&&e.promise_signed_at?`1`:``,Cr(),I.value=(e.files||[]).filter(e=>e.kind===`plan`).map(e=>{let t=ae(e.url);return{id:e.id,fromServer:!0,original_name:e.original_name,size:e.size,url:t,previewUrl:t}}),L.value=(e.files||[]).filter(e=>e.kind===`supporting`).map(e=>{let t=ae(e.url);return{id:e.id,fromServer:!0,original_name:e.original_name,size:e.size,url:t,previewUrl:t}}),Q(),$()}async function Ni(){if(!localStorage.getItem(`cxxfds_token`))return!1;let e=new AbortController,t=window.setTimeout(()=>e.abort(),2e4);try{let t=await D(`${T()}/api/applications/current${E()}`,{headers:Jn(!1),signal:e.signal});return t.status===401?(localStorage.removeItem(se),O(),!1):t.ok?(Mi(await t.json()),!0):!1}catch{return!1}finally{window.clearTimeout(t)}}async function Pi(){if(z.value)return!1;z.value=!0;let e=new AbortController,t=window.setTimeout(()=>e.abort(),2e4);try{let t=await D(`${T()}/api/applications/current/save${E()}`,{method:`POST`,headers:Jn(!0),body:JSON.stringify(vi()),signal:e.signal});if(t.status===401)return O(),!1;if(!t.ok)return t.json().catch(()=>({})),q(`草稿未能保存,请检查网络或稍后重试。`,`保存失败`,`warning`),!1;try{Mi(await t.json())}catch{}return!0}catch(e){return q(e instanceof DOMException&&e.name===`AbortError`?`保存超时,请稍后重试`:`草稿未能保存,请检查网络或稍后重试。`,`保存失败`,`warning`),!1}finally{window.clearTimeout(t),z.value=!1}}function Fi(e){if(typeof e!=`object`||!e||Array.isArray(e))return[];let t=[];for(let n of Object.values(e))if(Array.isArray(n))for(let e of n)typeof e==`string`&&e.trim()&&t.push(e.trim());else typeof n==`string`&&n.trim()&&t.push(n.trim());return t}function Ii(e){let t=e.trim();return t===`The given data was invalid.`||t===`The given data was invalid`||t===`给定的数据无效。`||t===`给定的数据无效`}function Li(e,t){let n=Fi(t.errors);if(n.length>0)return n[0];let r=t.message;if(typeof r==`string`&&r.trim()){let e=r.trim();if(!Ii(e))return e}return e===404?`赛事不存在或未发布,请返回重新进入报名页。`:e===403?`当前账号无权限提交,请确认登录状态或联系管理员。`:e===409?`报名状态已变更或发生冲突,请刷新页面后重试。`:e===429?`请求过于频繁,请稍后再试。`:e>=500?`服务暂时不可用,请稍后重试。`:e===422?`提交失败,请填写完整信息。`:`报名未能提交,请检查网络或稍后重试。`}async function Ri(){let e=new AbortController,t=window.setTimeout(()=>e.abort(),3e4);try{let t=await D(`${T()}/api/applications/current/submit${E()}`,{method:`POST`,headers:Jn(!0),body:JSON.stringify(vi()),signal:e.signal});if(t.status===401)return O(),!1;if(!t.ok){let e={};try{e=await t.json()}catch{}return q(Li(t.status,e),`提交失败`,`warning`),!1}let n=await t.json();Mi(n);let r=n.success_notice,i=r?.enabled===!0&&typeof r.message==`string`?r.message.trim():``;return{channelCallback:Jr(n.channel_callback),successNoticeMessage:i}}catch(e){return q(e instanceof DOMException&&e.name===`AbortError`?`提交超时,请稍后重试`:`报名未能提交,请检查网络或稍后重试。`,`提交失败`,`warning`),!1}finally{window.clearTimeout(t)}}async function zi(){if(!localStorage.getItem(`cxxfds_token`)){O();return}await Pi()&&(ki(),q(`已保存草稿(按当前已填写信息暂存)。`,`保存成功`,`success`))}async function Bi(){if(!localStorage.getItem(`cxxfds_token`)){O();return}if(!Si())return;let e=await Ri();if(!e)return;let t=e.successNoticeMessage||`已提交报名`;if(e.channelCallback){if(await q(t,`提交成功`,`success`),e.channelCallback.type===`mini_program`){await Zr(e.channelCallback.path,e.channelCallback.method)||q(`未检测到微信小程序回跳能力,请从小程序内重新进入或联系管理员。`,`回跳失败`,`warning`);return}window.location.href=e.channelCallback.redirectUrl;return}q(t,`提交成功`,`success`)}return o(()=>{ii?.(),ai()}),s(()=>{(async()=>{await ji(),!j.value&&(await Ni()||Ai(),Cr())})()}),(i,a)=>(_(),v(`div`,Ce,[y(`div`,we,[y(`h5`,Te,h(Ar.value),1),!j.value&&jr.value?(_(),v(`p`,Ee,h(jr.value),1)):t(``,!0),j.value?(_(),v(`p`,De,h(j.value),1)):er.value&&A.value.length===0&&k.value.some(e=>e.key===`track`)?(_(),v(`p`,Oe,` 本场赛事尚未在「赛道管理」中配置可用赛道,提交时可能会失败,请联系管理员。 `)):t(``,!0)]),j.value?t(``,!0):(_(),v(`div`,ke,[y(`div`,Ae,[y(`div`,je,[y(`div`,{class:e([`application-status-panel`,P.value?`application-status-panel--submitted`:`application-status-panel--draft`]),role:`status`,"aria-live":`polite`},[y(`div`,Me,[P.value?(_(),v(`svg`,Ne,[...a[5]||=[y(`circle`,{cx:`12`,cy:`12`,r:`9.5`,stroke:`currentColor`,"stroke-width":`1.8`},null,-1),y(`path`,{d:`M7.6 12.2l2.8 2.8 6-6.2`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)]])):(_(),v(`svg`,Pe,[...a[6]||=[y(`circle`,{cx:`12`,cy:`12`,r:`9.5`,stroke:`currentColor`,"stroke-width":`1.8`},null,-1),y(`path`,{d:`M12 7.5v5.2`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`},null,-1),y(`circle`,{cx:`12`,cy:`16.5`,r:`1`,fill:`currentColor`},null,-1)]]))]),y(`div`,Fe,[y(`strong`,null,h(ur.value),1),y(`span`,null,h(dr.value),1)])],2),y(`div`,Ie,[a[7]||=y(`span`,{class:`apply-contact-label`},`参赛咨询:`,-1),(_(!0),v(p,null,c(r(ve),e=>(_(),v(`a`,{key:e.tel,href:`tel:${e.tel}`},h(e.display),9,Le))),128)),y(`a`,{href:`tel:${r(_e).tel}`},`技术咨询:`+h(r(_e).display),9,Re)]),y(`form`,{id:`applyForm`,ref_key:`applyFormEl`,ref:Er,class:e([`row g-3`,{"was-validated":H.value}]),onSubmit:a[4]||=ne(()=>{},[`prevent`])},[(_(!0),v(p,null,c(Fr.value,r=>(_(),v(p,{key:r.type===`file`?`f-`+r.key:r.key},[r.key===`track`?(_(),v(`div`,ze,[y(`label`,Be,[n(h(r.label)+` `,1),G(r)?(_(),v(`span`,Ve,`*`)):t(``,!0),w(r)?(_(),v(`span`,He,h(w(r)),1)):t(``,!0)]),y(`div`,Ue,[f(y(`select`,{id:`track`,ref_for:!0,ref_key:`trackHiddenSelect`,ref:pr,"onUpdate:modelValue":a[0]||=e=>M.track=e,class:`visually-hidden`,required:G(r),tabindex:`-1`,"aria-hidden":`true`,disabled:U.value},[(_(!0),v(p,null,c(A.value,e=>(_(),v(`option`,{key:e.track_code,value:e.track_code},h(e.title),9,Ge))),128))],8,We),[[ie,M.track]]),y(`div`,Ke,[y(`button`,{ref_for:!0,ref_key:`trackDropdownBtn`,ref:mr,type:`button`,class:e([`dropdown-toggle form-select track-custom-toggle editable w-100 text-start`,{"is-invalid":fr.value&&H.value}]),"aria-labelledby":`trackFieldLabel`,"aria-expanded":`false`,"data-bs-toggle":`dropdown`,"data-bs-display":`static`,"data-bs-auto-close":`true`,disabled:U.value},[y(`span`,Je,[y(`span`,{class:e(gr.value)},h(hr.value),3)])],10,qe),_r.value?(_(),v(`small`,Ye,h(_r.value),1)):t(``,!0),y(`ul`,Xe,[(_(!0),v(p,null,c(A.value,e=>(_(),v(`li`,{key:e.track_code},[y(`button`,{type:`button`,class:`dropdown-item track-pick border-0 w-100 text-start rounded-0`,onClick:t=>yr(e.track_code)},[y(`span`,Qe,[y(`span`,$e,h(e.title),1),vr(e.description)?(_(),v(`span`,et,h(vr(e.description)),1)):t(``,!0)])],8,Ze)]))),128))]),a[8]||=y(`div`,{class:`invalid-feedback`},`请选择主题赛道`,-1)])]),C(r.help)?(_(),v(`small`,tt,h(C(r.help)),1)):t(``,!0)])):r.type===`file`&&r.key===`plan`?(_(),v(`div`,nt,[y(`label`,rt,[n(h(r.label)+` `,1),G(r)?(_(),v(`span`,it,`*`)):t(``,!0),w(r)?(_(),v(`span`,at,h(w(r)),1)):t(``,!0)]),y(`input`,{ref_for:!0,ref_key:`planFileInput`,ref:Dr,type:`file`,class:e([`form-control editable`,{"is-invalid":H.value&&!!wr.value}]),accept:$n(r),multiple:``,disabled:U.value,onChange:a[1]||=e=>Di(e.target.files,`plan`)},null,42,ot),y(`div`,{class:e([`apply-file-status`,{"apply-file-status--filled":I.value.length>0}])},h(Br(I.value)),3),C(r.help)?(_(),v(`small`,st,h(C(r.help)),1)):t(``,!0),I.value.length?(_(),v(`div`,ct,[(_(!0),v(p,null,c(I.value,e=>(_(),v(`div`,{key:String(e.id),class:`supporting-file-item`},[y(`div`,lt,[y(`span`,{class:`supporting-file-name`,title:K(e)},h(K(e)),9,ut),y(`span`,dt,h(Rr(e.file?e.file.size:e.size||0)),1)]),y(`div`,ft,[y(`button`,{type:`button`,class:`btn btn-sm btn-outline-primary`,onClick:t=>Ti(e)},` 查看/下载 `,8,pt),y(`button`,{type:`button`,class:`btn btn-sm btn-outline-danger`,disabled:U.value||R.value.includes(String(e.id)),onClick:t=>Ei(e.id,`plan`)},h(R.value.includes(String(e.id))?`删除中…`:`删除`),9,mt)])]))),128))])):t(``,!0),y(`small`,ht,h(B.value),1),H.value&&wr.value?(_(),v(`div`,gt,h(wr.value),1)):t(``,!0)])):r.type===`file`&&r.key===`supporting`?(_(),v(`div`,_t,[y(`label`,vt,[n(h(r.label)+` `,1),G(r)?(_(),v(`span`,yt,`*`)):t(``,!0),w(r)?(_(),v(`span`,bt,h(w(r)),1)):t(``,!0)]),y(`input`,{ref_for:!0,ref_key:`supportingFileInput`,ref:Or,type:`file`,class:e([`form-control editable`,{"is-invalid":H.value&&!!Tr.value}]),accept:$n(r),multiple:``,disabled:U.value,onChange:a[2]||=e=>Di(e.target.files,`supporting`)},null,42,xt),y(`div`,{class:e([`apply-file-status`,{"apply-file-status--filled":L.value.length>0}])},h(Br(L.value)),3),C(r.help)?(_(),v(`small`,St,h(C(r.help)),1)):t(``,!0),L.value.length?(_(),v(`div`,Ct,[(_(!0),v(p,null,c(L.value,e=>(_(),v(`div`,{key:String(e.id),class:`supporting-file-item`},[y(`div`,wt,[y(`span`,{class:`supporting-file-name`,title:K(e)},h(K(e)),9,Tt),y(`span`,Et,h(Rr(e.file?e.file.size:e.size||0)),1)]),y(`div`,Dt,[y(`button`,{type:`button`,class:`btn btn-sm btn-outline-primary`,onClick:t=>Ti(e)},` 查看/下载 `,8,Ot),y(`button`,{type:`button`,class:`btn btn-sm btn-outline-danger`,disabled:U.value||R.value.includes(String(e.id)),onClick:t=>Ei(e.id,`supporting`)},h(R.value.includes(String(e.id))?`删除中…`:`删除`),9,kt)])]))),128))])):t(``,!0),y(`small`,At,h(V.value),1),H.value&&Tr.value?(_(),v(`div`,jt,h(Tr.value),1)):t(``,!0)])):r.type===`select`&&!Lr(r)?(_(),v(`div`,{key:3,class:e(W(r))},[y(`label`,Mt,[n(h(r.label)+` `,1),G(r)?(_(),v(`span`,Nt,`*`)):t(``,!0),w(r)?(_(),v(`span`,Pt,h(w(r)),1)):t(``,!0)]),f(y(`select`,{"onUpdate:modelValue":e=>M[r.key]=e,class:`form-select editable`,required:G(r),disabled:U.value},[y(`option`,It,h(Vr(r)),1),(_(!0),v(p,null,c(Ir(r),e=>(_(),v(`option`,{key:`${r.key}-${e.value}`,value:e.value},h(e.label),9,Lt))),128))],8,Ft),[[ie,M[r.key]]]),y(`div`,Rt,`请选择`+h(r.label),1),C(r.help)?(_(),v(`small`,zt,h(C(r.help)),1)):t(``,!0)],2)):Lr(r)?(_(),v(`div`,{key:4,class:e(W(r))},[y(`label`,Bt,[n(h(r.label)+` `,1),G(r)?(_(),v(`span`,Vt,`*`)):t(``,!0),w(r)?(_(),v(`span`,Ht,h(w(r)),1)):t(``,!0)]),f(y(`select`,{"onUpdate:modelValue":a[3]||=e=>M.location_city=e,class:`form-select editable`,required:G(r),disabled:U.value||!F.value||!String(M.location_province??``).trim()},[y(`option`,Wt,h(String(M.location_province??``).trim()?Vr(r):`请先选择省份`),1),(_(!0),v(p,null,c(Ir(r),e=>(_(),v(`option`,{key:e.value,value:e.value},h(e.label),9,Gt))),128))],8,Ut),[[ie,M.location_city]]),y(`div`,Kt,`请选择`+h(r.label),1),C(r.help)?(_(),v(`small`,qt,h(C(r.help)),1)):t(``,!0)],2)):r.type===`checkbox`&&r.key===`commitment_accepted`?(_(),v(`div`,{key:5,class:e(W(r))},[y(`label`,Jt,[n(h(r.label)+` `,1),G(r)?(_(),v(`span`,Yt,`*`)):t(``,!0),w(r)?(_(),v(`span`,Xt,h(w(r)),1)):t(``,!0)]),a[9]||=y(`p`,{class:`small text-secondary mb-2`},` 请点击按钮打开承诺书全文,阅读后在文末手写签名并点击「确认签署」。 `,-1),y(`div`,Zt,[y(`button`,{type:`button`,class:`btn btn-outline-primary btn-sm editable`,disabled:U.value,onClick:hi},h(oi.value?`重新查看承诺书`:`查看并签署参赛承诺书`),9,Qt),oi.value?(_(),v(`span`,$t,`已完成签署`)):t(``,!0)]),C(r.help)?(_(),v(`small`,en,h(C(r.help)),1)):t(``,!0)],2)):r.type===`checkbox`?(_(),v(`div`,{key:6,class:e(W(r))},[y(`div`,tn,[f(y(`input`,{id:`signup-field-`+r.key,"onUpdate:modelValue":e=>M[r.key]=e,type:`checkbox`,class:`form-check-input editable`,"true-value":`1`,"false-value":``,required:G(r),disabled:U.value},null,8,nn),[[re,M[r.key]]]),y(`label`,{class:`form-check-label`,for:`signup-field-`+r.key},[n(h(r.label)+` `,1),G(r)?(_(),v(`span`,an,`*`)):t(``,!0),w(r)?(_(),v(`span`,on,h(w(r)),1)):t(``,!0)],8,rn),a[10]||=y(`div`,{class:`invalid-feedback`},`请勾选此项以继续`,-1)]),C(r.help)?(_(),v(`small`,sn,h(C(r.help)),1)):t(``,!0)],2)):r.type===`textarea`?(_(),v(`div`,{key:7,class:e(W(r))},[y(`label`,cn,[n(h(r.label)+` `,1),G(r)?(_(),v(`span`,ln,`*`)):t(``,!0),w(r)?(_(),v(`span`,un,h(w(r)),1)):t(``,!0)]),f(y(`textarea`,{"onUpdate:modelValue":e=>M[r.key]=e,class:`form-control editable`,rows:`4`,placeholder:``,required:G(r),disabled:U.value},null,8,dn),[[te,M[r.key]]]),Nr(r)||r.key===`intro`?(_(),v(`div`,fn,[Nr(r)?(_(),v(`small`,pn,h(Nr(r)),1)):t(``,!0),r.key===`intro`?(_(),v(`small`,mn,h(kr.value)+` 字`,1)):t(``,!0)])):t(``,!0),C(r.help)?(_(),v(`small`,{key:1,class:e([`text-secondary prototype-subtitle d-block`,{"mt-1":r.key===`intro`||Nr(r)}])},h(C(r.help)),3)):t(``,!0)],2)):(_(),v(`div`,{key:8,class:e(W(r))},[y(`label`,hn,[n(h(r.label)+` `,1),G(r)?(_(),v(`span`,gn,`*`)):t(``,!0),w(r)?(_(),v(`span`,_n,h(w(r)),1)):t(``,!0)]),f(y(`input`,{"onUpdate:modelValue":e=>M[r.key]=e,type:r.type===`email`?`email`:r.key===`contact_mobile`?`tel`:`text`,class:e([`form-control editable`,{"company-name-input":r.key===`company_name`}]),required:G(r),disabled:U.value,placeholder:(r.placeholder??``).trim(),pattern:r.key===`contact_mobile`?Gn:void 0,autocomplete:r.key===`company_name`?`organization`:void 0},null,10,vn),[[ee,M[r.key]]]),y(`div`,yn,h(Mr(r)),1),C(r.help)?(_(),v(`small`,bn,h(C(r.help)),1)):t(``,!0)],2))],64))),128)),y(`div`,xn,[y(`button`,{type:`button`,class:`btn btn-outline-primary`,disabled:U.value||z.value,onClick:zi},h(z.value?`保存中…`:P.value?`保存修改`:`保存`),9,Sn),y(`button`,{type:`button`,class:`btn btn-success`,disabled:U.value,onClick:Bi},h(P.value?`更新报名`:`提交报名`),9,Cn)])],34)])])])),!j.value&&k.value.some(e=>e.key===`commitment_accepted`)?(_(),v(`div`,{key:1,id:`promiseSignModal`,ref_key:`promiseSignModalRef`,ref:Qr,class:`modal fade`,tabindex:`-1`,"aria-hidden":`true`,"data-bs-backdrop":`static`},[y(`div`,wn,[y(`div`,Tn,[y(`div`,En,[y(`div`,Dn,[y(`h1`,On,h(si.value),1),y(`div`,kn,[y(`div`,{class:`promise-doc-body promise-doc-body--rich`,innerHTML:rr.value},null,8,An)]),y(`div`,jn,[y(`div`,Mn,[a[11]||=y(`span`,{class:`promise-doc-signlabel`},`参赛人签名:`,-1),y(`div`,Nn,[y(`div`,Pn,[y(`canvas`,{ref_key:`promiseCanvasRef`,ref:J,class:`promise-sig-canvas`,width:`520`,height:`140`,"aria-label":`手写签名区域`},null,512),y(`span`,{class:e([`promise-sig-hint`,{"d-none":!ei.value}])},`请在框内手写签名`,2)]),y(`div`,{class:`promise-sig-tools`},[y(`button`,{type:`button`,class:`btn btn-sm btn-outline-secondary`,onClick:gi},` 清除签名 `)])])]),y(`div`,Fn,[y(`span`,In,[a[12]||=n(`日期:`,-1),y(`strong`,null,h($r.value),1)])])]),y(`div`,{class:`promise-sign-actions`},[a[13]||=y(`button`,{type:`button`,class:`btn btn-light notice-cancel-btn`,"data-bs-dismiss":`modal`},`关闭`,-1),y(`button`,{type:`button`,class:`btn btn-primary`,onClick:_i},`确认签署`)])])])])])],512)):t(``,!0),y(`div`,{ref_key:`noticeModalEl`,ref:Ur,id:`applyNoticeModal`,class:`modal fade`,tabindex:`-1`,"aria-hidden":`true`},[y(`div`,Ln,[y(`div`,{class:e([`modal-content notice-modal-content`,Kr.value?`notice-success`:`notice-warning`])},[a[16]||=y(`div`,{class:`modal-header border-0 pb-0`},[y(`button`,{type:`button`,class:`btn-close ms-auto`,"data-bs-dismiss":`modal`,"aria-label":`关闭`})],-1),y(`div`,Rn,[y(`div`,zn,[Kr.value?(_(),v(`svg`,Bn,[...a[14]||=[y(`circle`,{cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`1.8`},null,-1),y(`path`,{d:`M7 12.2l3.1 3.1L17.2 8.8`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)]])):(_(),v(`svg`,Vn,[...a[15]||=[y(`path`,{d:`M12 3.6L2.9 19.2a1 1 0 0 0 .86 1.5h16.48a1 1 0 0 0 .86-1.5L12 3.6z`,stroke:`currentColor`,"stroke-width":`1.8`},null,-1),y(`path`,{d:`M12 9v5`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`},null,-1),y(`circle`,{cx:`12`,cy:`16.8`,r:`1.1`,fill:`currentColor`},null,-1)]]))]),y(`h5`,Hn,h(Wr.value),1),Gr.value.trim()?(_(),v(`p`,Un,h(Gr.value),1)):t(``,!0)]),a[17]||=y(`div`,{class:`modal-footer notice-modal-footer border-0`},[y(`button`,{type:`button`,class:`btn btn-light notice-cancel-btn`,"data-bs-dismiss":`modal`},`取消`),y(`button`,{type:`button`,class:`btn btn-primary notice-ok-btn`,"data-bs-dismiss":`modal`},`确定`)],-1)],2)])],512)]))}}),[[`__scopeId`,`data-v-813e7b9e`]]),T=g({__name:`ApplyView`,setup(e){return(e,t)=>(_(),a(w))}});export{T as default}; \ No newline at end of file diff --git a/public/admin/assets/ApplyView-ouDbvhxn.js b/public/admin/assets/ApplyView-ouDbvhxn.js deleted file mode 100644 index 743d627..0000000 --- a/public/admin/assets/ApplyView-ouDbvhxn.js +++ /dev/null @@ -1 +0,0 @@ -import{$t as e,C as t,D as n,Et as r,R as i,S as a,V as o,W as s,Y as c,_t as l,at as u,b as d,c as ee,ct as f,d as te,g as p,ht as m,in as h,k as g,m as ne,q as _,s as re,u as ie,w as v,x as y}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{g as ae,p as oe,u as se}from"./api-COeuB3z6.js";import{o as ce,s as le,v as ue,y as de}from"./index-ijh93KpS.js";import{t as fe}from"./_plugin-vue_export-helper-S3RvzygF.js";import{a as pe,i as me,r as he,t as ge}from"./competitionBranding-Bz_llsts.js";import{n as _e,t as ve}from"./participantContact-0qVpTiM0.js";var ye={北京市:[`北京市`],天津市:[`天津市`],上海市:[`上海市`],重庆市:[`重庆市`],河北省:[`石家庄市`,`唐山市`,`秦皇岛市`,`邯郸市`,`邢台市`,`保定市`,`张家口市`,`承德市`,`沧州市`,`廊坊市`,`衡水市`],山西省:[`太原市`,`大同市`,`阳泉市`,`长治市`,`晋城市`,`朔州市`,`晋中市`,`运城市`,`忻州市`,`临汾市`,`吕梁市`],内蒙古自治区:[`呼和浩特市`,`包头市`,`乌海市`,`赤峰市`,`通辽市`,`鄂尔多斯市`,`呼伦贝尔市`,`巴彦淖尔市`,`乌兰察布市`,`兴安盟`,`锡林郭勒盟`,`阿拉善盟`],辽宁省:[`沈阳市`,`大连市`,`鞍山市`,`抚顺市`,`本溪市`,`丹东市`,`锦州市`,`营口市`,`阜新市`,`辽阳市`,`盘锦市`,`铁岭市`,`朝阳市`,`葫芦岛市`],吉林省:[`长春市`,`吉林市`,`四平市`,`辽源市`,`通化市`,`白山市`,`松原市`,`白城市`,`延边朝鲜族自治州`],黑龙江省:[`哈尔滨市`,`齐齐哈尔市`,`鸡西市`,`鹤岗市`,`双鸭山市`,`大庆市`,`伊春市`,`佳木斯市`,`七台河市`,`牡丹江市`,`黑河市`,`绥化市`,`大兴安岭地区`],江苏省:[`南京市`,`无锡市`,`徐州市`,`常州市`,`苏州市`,`南通市`,`连云港市`,`淮安市`,`盐城市`,`扬州市`,`镇江市`,`泰州市`,`宿迁市`],浙江省:[`杭州市`,`宁波市`,`温州市`,`嘉兴市`,`湖州市`,`绍兴市`,`金华市`,`衢州市`,`舟山市`,`台州市`,`丽水市`],安徽省:[`合肥市`,`芜湖市`,`蚌埠市`,`淮南市`,`马鞍山市`,`淮北市`,`铜陵市`,`安庆市`,`黄山市`,`滁州市`,`阜阳市`,`宿州市`,`六安市`,`亳州市`,`池州市`,`宣城市`],福建省:[`福州市`,`厦门市`,`莆田市`,`三明市`,`泉州市`,`漳州市`,`南平市`,`龙岩市`,`宁德市`],江西省:[`南昌市`,`景德镇市`,`萍乡市`,`九江市`,`新余市`,`鹰潭市`,`赣州市`,`吉安市`,`宜春市`,`抚州市`,`上饶市`],山东省:[`济南市`,`青岛市`,`淄博市`,`枣庄市`,`东营市`,`烟台市`,`潍坊市`,`济宁市`,`泰安市`,`威海市`,`日照市`,`临沂市`,`德州市`,`聊城市`,`滨州市`,`菏泽市`],河南省:[`郑州市`,`开封市`,`洛阳市`,`平顶山市`,`安阳市`,`鹤壁市`,`新乡市`,`焦作市`,`濮阳市`,`许昌市`,`漯河市`,`三门峡市`,`南阳市`,`商丘市`,`信阳市`,`周口市`,`驻马店市`,`济源市`],湖北省:[`武汉市`,`黄石市`,`十堰市`,`宜昌市`,`襄阳市`,`鄂州市`,`荆门市`,`孝感市`,`荆州市`,`黄冈市`,`咸宁市`,`随州市`,`恩施土家族苗族自治州`,`仙桃市`,`潜江市`,`天门市`,`神农架林区`],湖南省:[`长沙市`,`株洲市`,`湘潭市`,`衡阳市`,`邵阳市`,`岳阳市`,`常德市`,`张家界市`,`益阳市`,`郴州市`,`永州市`,`怀化市`,`娄底市`,`湘西土家族苗族自治州`],广东省:[`广州市`,`韶关市`,`深圳市`,`珠海市`,`汕头市`,`佛山市`,`江门市`,`湛江市`,`茂名市`,`肇庆市`,`惠州市`,`梅州市`,`汕尾市`,`河源市`,`阳江市`,`清远市`,`东莞市`,`中山市`,`潮州市`,`揭阳市`,`云浮市`],广西壮族自治区:[`南宁市`,`柳州市`,`桂林市`,`梧州市`,`北海市`,`防城港市`,`钦州市`,`贵港市`,`玉林市`,`百色市`,`贺州市`,`河池市`,`来宾市`,`崇左市`],海南省:[`海口市`,`三亚市`,`三沙市`,`儋州市`,`五指山市`,`琼海市`,`文昌市`,`万宁市`,`东方市`,`定安县`,`屯昌县`,`澄迈县`,`临高县`,`白沙黎族自治县`,`昌江黎族自治县`,`乐东黎族自治县`,`陵水黎族自治县`,`保亭黎族苗族自治县`,`琼中黎族苗族自治县`],四川省:[`成都市`,`自贡市`,`攀枝花市`,`泸州市`,`德阳市`,`绵阳市`,`广元市`,`遂宁市`,`内江市`,`乐山市`,`南充市`,`眉山市`,`宜宾市`,`广安市`,`达州市`,`雅安市`,`巴中市`,`资阳市`,`阿坝藏族羌族自治州`,`甘孜藏族自治州`,`凉山彝族自治州`],贵州省:[`贵阳市`,`六盘水市`,`遵义市`,`安顺市`,`毕节市`,`铜仁市`,`黔西南布依族苗族自治州`,`黔东南苗族侗族自治州`,`黔南布依族苗族自治州`],云南省:[`昆明市`,`曲靖市`,`玉溪市`,`保山市`,`昭通市`,`丽江市`,`普洱市`,`临沧市`,`楚雄彝族自治州`,`红河哈尼族彝族自治州`,`文山壮族苗族自治州`,`西双版纳傣族自治州`,`大理白族自治州`,`德宏傣族景颇族自治州`,`怒江傈僳族自治州`,`迪庆藏族自治州`],西藏自治区:[`拉萨市`,`日喀则市`,`昌都市`,`林芝市`,`山南市`,`那曲市`,`阿里地区`],陕西省:[`西安市`,`铜川市`,`宝鸡市`,`咸阳市`,`渭南市`,`延安市`,`汉中市`,`榆林市`,`安康市`,`商洛市`],甘肃省:[`兰州市`,`嘉峪关市`,`金昌市`,`白银市`,`天水市`,`武威市`,`张掖市`,`平凉市`,`酒泉市`,`庆阳市`,`定西市`,`陇南市`,`临夏回族自治州`,`甘南藏族自治州`],青海省:[`西宁市`,`海东市`,`海北藏族自治州`,`黄南藏族自治州`,`海南藏族自治州`,`果洛藏族自治州`,`玉树藏族自治州`,`海西蒙古族藏族自治州`],宁夏回族自治区:[`银川市`,`石嘴山市`,`吴忠市`,`固原市`,`中卫市`],新疆维吾尔自治区:[`乌鲁木齐市`,`克拉玛依市`,`吐鲁番市`,`哈密市`,`昌吉回族自治州`,`博尔塔拉蒙古自治州`,`巴音郭楞蒙古自治州`,`阿克苏地区`,`克孜勒苏柯尔克孜自治州`,`喀什地区`,`和田地区`,`伊犁哈萨克自治州`,`塔城地区`,`阿勒泰地区`,`石河子市`,`阿拉尔市`,`图木舒克市`,`五家渠市`,`北屯市`,`铁门关市`,`双河市`,`可克达拉市`,`昆玉市`,`胡杨河市`,`新星市`],香港特别行政区:[`香港`],澳门特别行政区:[`澳门`],台湾省:[`台北市`,`新北市`,`桃园市`,`台中市`,`台南市`,`高雄市`,`新竹市`,`嘉义市`]},be=`北京市.天津市.上海市.重庆市.河北省.山西省.内蒙古自治区.辽宁省.吉林省.黑龙江省.江苏省.浙江省.安徽省.福建省.江西省.山东省.河南省.湖北省.湖南省.广东省.广西壮族自治区.海南省.四川省.贵州省.云南省.西藏自治区.陕西省.甘肃省.青海省.宁夏回族自治区.新疆维吾尔自治区.香港特别行政区.澳门特别行政区.台湾省`.split(`.`),xe=[`pdf`,`ppt`,`pptx`,`doc`,`docx`,`wps`,`rar`,`zip`],b=[{key:`player_name`,type:`text`,label:`参赛人姓名`,required:!0,help:``},{key:`school`,type:`text`,label:`毕业院校`,required:!0},{key:`degree`,type:`select`,label:`最高学历`,required:!0,options:[`大专`,`本科`,`硕士`,`博士`,`其他`].map(e=>({label:e,value:e}))},{key:`contact_email`,type:`email`,label:`注册邮箱`,required:!0},{key:`contact_mobile`,type:`tel`,label:`联系电话`,required:!0,placeholder:`11 位中国大陆手机号`},{key:`entry_group`,type:`select`,label:`参赛组别`,required:!0,options:[{label:`创新组`,value:`创新组`},{label:`创业组`,value:`创业组`}],help:`仅限创业组填报企业名称(创新组不展示该字段)`},{key:`company_name`,type:`text`,label:`企业名称`,required:!1,required_when:{field:`entry_group`,values:[`创业组`]},placeholder:`请填写工商注册全称`,prefill_from:`user.company`},{key:`project_name`,type:`text`,label:`项目名称`,required:!0},{key:`track`,type:`select`,label:`主题赛道`,required:!0,help:`请从本场赛事公布的赛道中选择`,options:[]},{key:`location_country`,type:`select`,label:`项目所在地`,required:!0,options:[{label:`中国`,value:`中国`},{label:`海外`,value:`海外`}]},{key:`location_province`,type:`select`,label:`省份`,required:!1,options:[]},{key:`location_city`,type:`text`,label:`城市`,required:!1},{key:`oversea_country`,type:`text`,label:`所在国(海外)`,required:!1,placeholder:`如:新加坡、日本、美国`},{key:`intro`,type:`textarea`,label:`项目简介`,required:!1,placeholder:`约200字左右`},{key:`commitment_accepted`,type:`checkbox`,label:`本人已阅读并同意《参赛承诺书》的全部内容`,required:!0,help:`提交报名即表示承诺所填信息真实有效,并遵守赛事规则。`},{key:`plan`,type:`file`,label:`上传商业计划书`,required:!0,help:`可上传多个文件,单文件 20M 以内`},{key:`supporting`,type:`file`,label:`其他佐证材料`,required:!1,help:`可选;格式同计划书`}];function x(e){return Array.isArray(e)?e.map(e=>typeof e==`object`&&e&&`label`in e&&`value`in e?{label:String(e.label),value:String(e.value)}:typeof e==`string`?{label:e,value:e}:null).filter(e=>e!=null&&String(e.label).trim()!==``&&String(e.value).trim()!==``):[]}function S(e){if(e!=null){if(Array.isArray(e)){let t=e.map(e=>String(e).trim().toLowerCase().replace(/^\./,``)).filter(e=>e!==``);return t.length?[...new Set(t)]:void 0}if(typeof e==`string`){let t=e.split(/[,;\s|]+/).map(e=>e.trim().toLowerCase().replace(/^\./,``)).filter(e=>e!==``);return t.length?[...new Set(t)]:void 0}}}function C(e){if(e==null||e===``)return;let t=typeof e==`number`?e:parseInt(String(e),10);if(!Number.isFinite(t))return;let n=Math.floor(t);return n>=1?n:void 0}function Se(e){if(!Array.isArray(e)||e.length===0)return b.map(e=>({...e,options:e.options?[...e.options]:void 0}));let t=[];for(let n of e){if(typeof n!=`object`||!n)continue;let e=n,r=String(e.key??``).trim();if(!r)continue;let i=String(e.type??`text`),a=String(e.label??r),o=!!e.required,s=e.placeholder,c=s!=null&&String(s).trim()!==``?String(s).trim():void 0,l=e.help,u=l!=null&&String(l).trim()!==``?String(l).trim():void 0,d=e.prefill_from,ee=d!=null&&String(d).trim()!==``?String(d).trim():void 0,f=e.title_supplement,te=f!=null&&String(f).trim()!==``?String(f).trim():void 0,p,m=e.required_when;if(typeof m==`object`&&m&&!Array.isArray(m)){let e=m,t=String(e.field??``).trim(),n=e.values,r=Array.isArray(n)?n.map(e=>String(e).trim()).filter(e=>e!==``):[];t&&r.length&&(p={field:t,values:r})}let h;if(i===`select`&&Array.isArray(e.options)&&(h=x(e.options)),r===`track`&&(h=[]),i===`select`&&r!==`track`&&(!h||h.length===0))if(r===`location_province`)h=be.map(e=>({label:e,value:e}));else{let e=b.find(e=>e.key===r);e?.options?.length&&(h=e.options.map(e=>({...e})))}let g,ne;i===`file`&&(g=S(e.file_extensions),ne=C(e.file_max_count)),t.push({key:r,type:i,label:a,title_supplement:te,required:o,placeholder:c,help:u,prefill_from:ee,options:h,required_when:p,file_extensions:g,file_max_count:ne})}return t.length?t:b.map(e=>({...e}))}var Ce={class:`apply-form-page`},we={class:`form-page-header flex-shrink-0 mb-3`},Te={class:`mb-0 form-page-title`},Ee={key:0,class:`text-secondary prototype-subtitle mb-0 mt-2`},De={key:1,class:`text-danger small mb-0 mt-2`},Oe={key:2,class:`text-warning small mb-0 mt-2`},ke={key:0,class:`apply-form-scroll`},Ae={class:`card mb-0`},je={class:`card-body`},Me={class:`application-status-mark`,"aria-hidden":`true`},Ne={key:0,viewBox:`0 0 24 24`,width:`22`,height:`22`,fill:`none`},Pe={key:1,viewBox:`0 0 24 24`,width:`22`,height:`22`,fill:`none`},Fe={class:`application-status-copy`},Ie={class:`apply-contact-panel`,"aria-label":`咨询电话`},Le=[`href`],Re=[`href`],ze={key:0,class:`col-md-4`},Be={class:`form-label`,id:`trackFieldLabel`},Ve={key:0,class:`text-danger`},He={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},Ue={class:`track-custom-select w-100`},We=[`required`,`disabled`],Ge=[`value`],Ke={class:`dropdown w-100`},qe=[`disabled`],Je={class:`track-toggle-label text-truncate`},Ye={key:0,class:`track-selected-note`},Xe={class:`dropdown-menu w-100 border shadow-sm rounded-2 py-0 my-1 track-custom-menu`},Ze=[`onClick`],Qe={class:`track-pick-inline`},$e={class:`text-body`},et={key:0,class:`track-custom-note`},tt={key:0,class:`text-secondary prototype-subtitle d-block`},nt={key:1,class:`col-12`},rt={class:`form-label`},it={key:0,class:`text-danger`},at={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},ot=[`accept`,`disabled`],st={key:0,class:`text-secondary prototype-subtitle d-block mt-1`},ct={key:1,class:`supporting-file-list mt-2`,"aria-live":`polite`},lt={class:`supporting-file-meta`},ut=[`title`],dt={class:`supporting-file-size`},ft={class:`supporting-file-actions`},pt=[`onClick`],mt=[`disabled`,`onClick`],ht={class:`text-secondary prototype-subtitle d-block`},gt={key:2,class:`invalid-feedback d-block`},_t={key:2,class:`col-12`},vt={class:`form-label`},yt={key:0,class:`text-danger`},bt={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},xt=[`accept`,`disabled`],St={key:0,class:`text-secondary prototype-subtitle d-block mt-1`},Ct={key:1,class:`supporting-file-list mt-2`,"aria-live":`polite`},wt={class:`supporting-file-meta`},Tt=[`title`],Et={class:`supporting-file-size`},Dt={class:`supporting-file-actions`},Ot=[`onClick`],kt=[`disabled`,`onClick`],At={class:`text-secondary prototype-subtitle d-block`},jt={key:2,class:`invalid-feedback d-block`},Mt={class:`form-label`},Nt={key:0,class:`text-danger`},Pt={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},Ft=[`onUpdate:modelValue`,`required`,`disabled`],It={value:``,disabled:``},Lt=[`value`],Rt={class:`invalid-feedback`},zt={key:0,class:`text-secondary prototype-subtitle d-block`},Bt={class:`form-label`},Vt={key:0,class:`text-danger`},Ht={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},Ut=[`required`,`disabled`],Wt={value:``,disabled:``},Gt=[`value`],Kt={class:`invalid-feedback`},qt={key:0,class:`text-secondary prototype-subtitle d-block`},Jt={class:`form-label`},Yt={key:0,class:`text-danger`},Xt={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},Zt={class:`d-flex flex-wrap align-items-center gap-2 mb-1`},Qt=[`disabled`],$t={key:0,class:`badge rounded-pill px-3 py-2 promise-signed-badge`},en={key:0,class:`text-secondary prototype-subtitle d-block mt-1`},tn={class:`form-check`},nn=[`id`,`onUpdate:modelValue`,`required`,`disabled`],rn=[`for`],an={key:0,class:`text-danger ms-1`},on={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},sn={key:0,class:`text-secondary prototype-subtitle d-block mt-1`},cn={class:`form-label`},ln={key:0,class:`text-danger`},un={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},dn=[`onUpdate:modelValue`,`required`,`disabled`],fn={key:0,class:`d-flex flex-wrap align-items-baseline gap-2 mt-1 w-100`},pn={key:0,class:`apply-textarea-placeholder-hint mb-0`},mn={key:1,class:`text-secondary prototype-subtitle intro-char-count mb-0 ms-auto`},hn={class:`form-label`},gn={key:0,class:`text-danger`},_n={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},vn=[`onUpdate:modelValue`,`type`,`required`,`disabled`,`placeholder`,`pattern`,`autocomplete`],yn={class:`invalid-feedback`},bn={key:0,class:`text-secondary prototype-subtitle d-block`},xn={class:`col-12 apply-form-actions mt-3 pt-3 border-top d-flex gap-2 flex-wrap`},Sn=[`disabled`],Cn=[`disabled`],wn={class:`modal-dialog modal-dialog-centered promise-sign-modal`},Tn={class:`modal-content promise-sign-sheet`},En={class:`modal-body pt-2`},Dn={class:`promise-doc-paper`},On={class:`promise-doc-heading text-center`},kn={class:`promise-doc-scroll`},An=[`innerHTML`],jn={class:`promise-doc-signblock`},Mn={class:`promise-doc-signrow`},Nn={class:`promise-sig-wrap`},Pn={class:`promise-sig-box`},Fn={class:`promise-doc-daterow`},In={class:`promise-doc-dateline`},Ln={class:`modal-dialog modal-dialog-centered notice-modal-dialog`},Rn={class:`modal-body notice-modal-body`},zn={class:`notice-icon`,"aria-hidden":`true`},Bn={key:0,viewBox:`0 0 24 24`,width:`36`,height:`36`,fill:`none`,"aria-hidden":`true`},Vn={key:1,viewBox:`0 0 24 24`,width:`36`,height:`36`,fill:`none`,"aria-hidden":`true`},Hn={class:`notice-title`},Un={key:0,class:`notice-text text-break`,style:{"white-space":`pre-wrap`}},Wn=20*1024*1024,Gn=`^1[3-9]\\d{9}$`,Kn=`

本项目申报信息中所填写的各栏目内容真实、准确。本项目负责人(团队)对申报材料的真实性负完全责任。

若申报信息中存在虚假、伪造等不实情况,本项目负责人(团队)将积极配合调查,并按照有关规定接受处理。

`,qn=2097152,w=fe(g({__name:`ApplyFormView`,setup(a){let g=ue,fe=le(),b=ce(),x=d(()=>String(b.params.slug??``).trim());function S(e){let t=e.value;return t==null?null:Array.isArray(t)?t[0]??null:t}function C(e){let t=(e??``).trim();return!t||/applications\.|config\/contest|与提交校验|\^1\[3-9\]|kind=\s*plan|kind=\s*supporting|\\d\{9\}/i.test(t)?``:t}function w(e){return String(e.title_supplement??``).trim()}function T(){return oe()}function E(){let e=x.value;return e?`?competition_slug=${encodeURIComponent(e)}`:``}function Jn(e){let t={Authorization:`Bearer ${localStorage.getItem(`cxxfds_token`)||``}`,Accept:`application/json`};e&&(t[`Content-Type`]=`application/json`);let n=x.value;return n&&(t[`X-Competition-Slug`]=n),t}function D(){localStorage.removeItem(se);let e=x.value;e?fe.push({name:`participant-login`,params:{slug:e},query:{redirect:b.fullPath}}):fe.push(`/c`)}let O=l(Se([]));function Yn(e){let t=xe.map(e=>e.toLowerCase()),n=new Set(t),r=e?.file_extensions;if(!Array.isArray(r)||r.length===0)return[...t];let i=[...new Set(r.map(e=>String(e).trim().toLowerCase().replace(/^\./,``)).filter(Boolean).filter(e=>n.has(e)))];return i.length>0?i:[...t]}function Xn(e){let t=e?.file_max_count;if(typeof t!=`number`||!Number.isFinite(t))return null;let n=Math.floor(t);return n>=1?n:null}function Zn(e){return O.value.find(t=>t.type===`file`&&t.key===e)}function Qn(e){return Yn(e).map(e=>`.`+e).join(`,`)}let k=l([]),$n=l(!1),er=l(``),tr=l(``),nr=d(()=>tr.value.trim()||Kn),rr=l(he()),A=l(``),j=m({});function ir(e){for(let t of e)t.type!==`file`&&(t.key in j||(j[t.key]=``));e.some(e=>e.key===`commitment_accepted`)&&!(`promise_signature`in j)&&(j.promise_signature=``)}let ar=d(()=>`jscc_signup_form_draft_v2_${x.value||`x`}`),or=l(`draft`),sr=l(``),M=l(!0),N=d(()=>or.value===`submitted`),cr=d(()=>Lr(sr.value)),lr=d(()=>N.value&&M.value?`报名已提交,可继续修改`:N.value?`报名已提交,已锁定`:M.value?`报名信息未提交`:`报名未提交,当前不可编辑`),ur=d(()=>N.value&&M.value?`${cr.value?`上次提交时间:${cr.value}。`:``}在报名截止且没有任一评委提交评分前,你仍可修改资料、增删附件,并点击“更新报名”覆盖提交。评审开始后报名会自动锁定,请保持联系方式畅通。`:N.value?`${cr.value?`提交时间:${cr.value}。`:``}报名已因截止或评审记录产生而锁定,不能再修改资料、增删附件或重复提交。后续请等待赛事组委会通知;如需更正请联系组委会。`:M.value?`请完整填写报名信息、上传商业计划书并签署承诺书;点击“保存”只暂存草稿,点击“提交报名”后才进入已提交状态。`:`当前报名窗口已关闭或报名已被锁定,无法新建、保存或提交报名。如认为状态异常,请联系赛事组委会。`),dr=l(!1),fr=l(null),pr=l(null),mr=d(()=>{let e=j.track,t=k.value.find(t=>t.track_code===e);return t?t.title:e||`请选择主题赛道`}),hr=d(()=>j.track?`text-body`:`text-secondary`),gr=d(()=>{let e=j.track;return(k.value.find(t=>t.track_code===e)?.description??``).trim()});function _r(e){return(e??``).trim()}function vr(e){j.track=e,dr.value=!1;let t=S(pr);t&&g.getInstance(t)?.hide()}let P=d(()=>j.location_country===`中国`),yr=d(()=>j.location_country===`海外`),br=d(()=>be.map(e=>({label:e,value:e}))),xr=d(()=>{let e=j.location_province;return e?(ye[e]||[]).map(e=>({label:e,value:e})):[]});function Sr(){yr.value?(j.location_province=``,j.location_city=``):P.value||(j.location_province=``,j.location_city=``,j.oversea_country=``)}u(()=>j.location_country,()=>{Sr()}),u(()=>j.location_province,(e,t)=>{P.value&&e!==t&&(t==null||String(t).trim()===``||(j.location_city=``))}),u(()=>j.entry_group,e=>{e===`创新组`&&(j.company_name=``)});let F=l([]),I=l([]),L=l([]),R=l(``),z=l(``),Cr=l(``),wr=l(``),B=l(!1),V=d(()=>!M.value),Tr=l(null),Er=l(null),Dr=l(null),Or=d(()=>(j.intro||``).length),kr=d(()=>pe(rr.value,er.value)),Ar=d(()=>{let e=rr.value.apply?.headerSubtitle;return me(e)?String(e).trim():``});function jr(e){let t=String(j[e.key]??``).trim();return e.type===`email`||e.key===`contact_email`?t?`请输入正确的邮箱格式`:`请填写${e.label}`:(e.type===`tel`||e.key===`contact_mobile`)&&t?`请输入正确的11位中国大陆手机号`:`请填写${e.label}`}function H(e){return e.type===`textarea`||e.type===`file`||e.type===`checkbox`?`col-12`:`col-md-4`}function U(e){return e.type===`textarea`?String(e.placeholder??``).trim():``}function Mr(e){return e.type===`file`?!0:e.key===`company_name`?j.entry_group!==`创新组`:e.key===`location_province`||e.key===`location_city`?P.value:e.key===`oversea_country`?yr.value:!0}function W(e){if(e.key===`location_province`||e.key===`location_city`)return P.value;if(e.key===`oversea_country`)return yr.value;let t=e.required_when;if(t?.field&&t.values?.length){let e=String(j[t.field]??``).trim();if(t.values.includes(e))return!0}return e.required}let Nr=d(()=>O.value.filter(e=>Mr(e)));function Pr(e){return e.key===`track`?k.value.map(e=>({label:e.title,value:e.track_code})):e.key===`location_province`?br.value:e.key===`location_city`&&P.value?xr.value:e.options??[]}function Fr(e){return e.key===`location_city`&&P.value}function Ir(e){return e>=1024*1024?`${(e/1024/1024).toFixed(1).replace(/\.0$/,``)}M`:e>=1024?`${Math.ceil(e/1024)}K`:`${e}B`}function G(e){return e.file?e.file.name:e.original_name||``}function Lr(e){if(!e)return``;let t=new Date(e);if(Number.isNaN(t.getTime()))return``;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 Rr(e){if(e.length===0)return`尚未选择文件`;let t=e.filter(e=>e.fromServer).length;return t===e.length?`已上传 ${e.length} 个文件`:`已选择 ${e.length} 个文件,正在上传 ${e.length-t} 个`}function zr(e){return`请选择${e.label}`}function Br(e){let t=e.message||``,n=e.errors;return n&&Object.keys(n).length?`${t}\n${JSON.stringify(n)}`:t||`操作失败`}let Vr=l(null),Hr=l(`提示`),Ur=l(``),Wr=l(!1);function K(e,t=`提示`,n=`warning`){return Hr.value=t,Ur.value=e,Wr.value=n===`success`,new Promise(e=>{i(()=>{let t=Vr.value;if(!t){e();return}t.addEventListener(`hidden.bs.modal`,()=>e(),{once:!0}),de.getOrCreateInstance(t).show()})})}function Gr(e){return e===`navigateTo`||e===`reLaunch`||e===`switchTab`?e:`redirectTo`}function Kr(e){if(!e)return null;if(e.type===`mini_program`){let t=typeof e.path==`string`?e.path.trim():``;return t?{type:`mini_program`,path:t,method:Gr(e.method)}:null}let t=typeof e.redirect_url==`string`?e.redirect_url.trim():``;return t?{type:`web`,redirectUrl:t}:null}let qr=null;function Jr(){if(window.wx?.miniProgram)return Promise.resolve(window.wx);if(qr)return qr;let e=new Promise((e,t)=>{let n=document.querySelector(`script[data-cxcyds-wx-jssdk="true"]`);if(n){n.addEventListener(`load`,()=>window.wx?e(window.wx):t(Error(`wx missing`)),{once:!0}),n.addEventListener(`error`,()=>t(Error(`wx jssdk load failed`)),{once:!0});return}let r=document.createElement(`script`);r.src=`https://res.wx.qq.com/open/js/jweixin-1.6.0.js`,r.async=!0,r.dataset.cxcydsWxJssdk=`true`,r.onload=()=>{window.wx?.miniProgram?e(window.wx):t(Error(`wx miniProgram bridge missing`))},r.onerror=()=>t(Error(`wx jssdk load failed`)),document.head.appendChild(r)}).finally(()=>{qr=null});return qr=e,e}async function Yr(e,t){try{let n=(await Jr()).miniProgram?.[t];return typeof n==`function`?(n({url:e}),!0):!1}catch{return!1}}let Xr=l(null),q=l(null),Zr=l(``),Qr=l(!0),J=null,Y=520,X=140,$r=!1,ei=!1,ti=null,Z=null;function ni(){ti?.abort(),ti=null}let ri=d(()=>j.commitment_accepted===`1`&&String(j.promise_signature??``).trim()!==``),ii=d(()=>{let e=er.value.trim();return e?`${e} 赛事承诺书`:`赛事承诺书`});function ai(e){return`${e.getFullYear()}年${e.getMonth()+1}月${e.getDate()}日`}function oi(e,t){let n=t.getBoundingClientRect();if(`touches`in e&&e.touches[0]){let t=e.touches[0];return{x:t.clientX-n.left,y:t.clientY-n.top}}let r=e;return{x:r.clientX-n.left,y:r.clientY-n.top}}function si(){let e=q.value;if(!e)return;let t=e.closest(`.promise-sig-wrap`),n=window.devicePixelRatio||1,r=window.getComputedStyle(e);Y=Math.max(280,Math.floor(t?.clientWidth||520)),X=Math.max(76,Math.floor(parseFloat(r.height)||110)),e.style.width=`${Y}px`,e.style.height=`${X}px`,e.width=Math.floor(Y*n),e.height=Math.floor(X*n),J=e.getContext(`2d`),J&&(J.setTransform(1,0,0,1,0,0),J.scale(n,n),J.fillStyle=`#ffffff`,J.fillRect(0,0,Y,X),J.strokeStyle=`#111111`,J.lineWidth=2,J.lineCap=`round`,J.lineJoin=`round`,ei=!1,Qr.value=!0)}function ci(){let e=String(j.promise_signature??``).trim();if(!e||!J)return;let t=new Image;t.onload=()=>{J&&(J.drawImage(t,0,0,Y,X),ei=!0,Qr.value=!1)},t.src=e}function li(){let e=q.value;if(!e||!J)return;ni(),ti=new AbortController;let{signal:t}=ti,n=t=>{if(`touches`in t&&t.preventDefault(),!J)return;$r=!0;let n=oi(t,e);J.beginPath(),J.moveTo(n.x,n.y)},r=t=>{if(!$r||!J)return;`touches`in t&&t.preventDefault();let n=oi(t,e);J.lineTo(n.x,n.y),J.stroke(),ei=!0,Qr.value=!1},i=()=>{$r=!1};e.addEventListener(`mousedown`,n,{signal:t}),e.addEventListener(`mousemove`,r,{signal:t}),window.addEventListener(`mouseup`,i,{signal:t}),e.addEventListener(`touchstart`,n,{passive:!1,signal:t}),e.addEventListener(`touchmove`,r,{passive:!1,signal:t}),e.addEventListener(`touchend`,i,{signal:t}),e.addEventListener(`touchcancel`,i,{signal:t})}function ui(){Zr.value=ai(new Date);let e=t=>{if(!q.value){t<40&&requestAnimationFrame(()=>e(t+1));return}si(),li(),String(j.promise_signature??``).trim()&&j.commitment_accepted===`1`&&ci()};i(()=>{requestAnimationFrame(()=>e(0))})}function di(e){Z?.();let t=()=>{ui()},n=()=>{ni()};e.addEventListener(`shown.bs.modal`,t),e.addEventListener(`hidden.bs.modal`,n),Z=()=>{e.removeEventListener(`shown.bs.modal`,t),e.removeEventListener(`hidden.bs.modal`,n),Z=null}}u(Xr,e=>{Z?.(),e&&di(e)},{flush:`post`});function fi(){if(V.value)return;let e=Xr.value;e&&de.getOrCreateInstance(e).show()}function pi(){si(),li()}function mi(){let e=q.value;if(!ei||!e){K(`请先在签名区域内手写签名后再确认。`,`请确认`,`warning`);return}let t=e.toDataURL(`image/png`);if(t.length>qn){K(`签名数据过大,请清除后重新签名或联系管理员。`,`提示`,`warning`);return}j.promise_signature=t,j.commitment_accepted=`1`;let n=Xr.value;n&&de.getInstance(n)?.hide()}function hi(){let e={};for(let t of O.value)if(t.type!==`file`){if(t.type===`checkbox`){e[t.key]=j[t.key]===`1`;continue}e[t.key]=j[t.key]??``}return O.value.some(e=>e.key===`commitment_accepted`)&&(e.promise_signature=j.promise_signature??``),e}function gi(e,t,n,r){let i=Yn(r),a=Xn(r),o=e.filter(e=>e.file),s=e.filter(e=>e.fromServer&&!e.file);if(!o.length&&!s.length)return{ok:n,feedback:n?``:t};if(a!==null&&e.length>a)return{ok:!1,feedback:`最多可上传 ${a} 个文件,请删除多余文件后重试`};let c=o.map(e=>e.file).find(e=>{let t=(e.name.split(`.`).pop()||``).toLowerCase();return!i.includes(t)});if(c)return{ok:!1,feedback:`“${c.name}”格式不支持,请上传 ${i.join(`、`)} 格式的文件`};let l=o.map(e=>e.file).find(e=>e.size>Wn);return l?{ok:!1,feedback:`“${l.name}”大小不能超过20M`}:{ok:!0,feedback:``}}function _i(){return O.value.some(e=>e.key===`plan`&&e.type===`file`)}function vi(){return O.value.some(e=>e.key===`supporting`&&e.type===`file`)}function Q(){if(!_i())return S(Er)?.setCustomValidity(``),!0;let e=Zn(`plan`),t=gi(F.value,`请上传商业计划书`,!1,e);return Cr.value=t.feedback,S(Er)?.setCustomValidity(t.ok?``:`missing`),t.ok}function $(){if(!vi())return S(Dr)?.setCustomValidity(``),!0;let e=Zn(`supporting`),t=gi(I.value,`文件格式或大小不符合要求`,!0,e);return wr.value=t.feedback,S(Dr)?.setCustomValidity(t.ok?``:`bad`),t.ok}function yi(){B.value=!0,Q(),$();let e=O.value.find(e=>e.key===`track`);if(e&&Mr(e)){dr.value=!j.track;let e=S(fr);e&&e.setCustomValidity(j.track?``:`请选择主题赛道`)}else dr.value=!1,S(fr)?.setCustomValidity(``);return!(Tr.value?.checkValidity()??!1)||e&&W(e)&&!j.track||!Q()||!$()?!1:O.value.find(e=>e.key===`commitment_accepted`)&&(j.commitment_accepted!==`1`||!String(j.promise_signature??``).trim())?(K(`请先阅读并完成参赛承诺书的手写签署。`,`提示`,`warning`),!1):!0}async function bi(e){let t=localStorage.getItem(se);if(!t)return;let n=(e===`plan`?F.value:I.value).filter(e=>e.file&&!e.fromServer);if(n.length!==0){for(let r of n){if(!r.file)continue;let n=new FormData;n.append(`kind`,e===`plan`?`plan`:`supporting`),n.append(`file`,r.file);let i=await fetch(`${T()}/api/applications/current/files${E()}`,{method:`POST`,headers:{Authorization:`Bearer ${t}`,Accept:`application/json`},body:n}),a=await i.json().catch(()=>({}));if(i.status===401){D();return}if(!i.ok){K(Br(a),`提示`,`warning`);return}let o=r.previewUrl;r.id=a.id,r.fromServer=!0,r.original_name=a.original_name,r.size=a.size;let s=ae(String(a.url??``));r.url=s,r.previewUrl=s,o&&String(o).startsWith(`blob:`)&&URL.revokeObjectURL(o),delete r.file}K(`文件已上传。`,`上传成功`,`success`),e===`plan`?Q():$()}}function xi(e){e.localBlobUrl&&e.localBlobUrl.startsWith(`blob:`)&&(URL.revokeObjectURL(e.localBlobUrl),delete e.localBlobUrl),e.previewUrl&&String(e.previewUrl).startsWith(`blob:`)&&URL.revokeObjectURL(e.previewUrl)}async function Si(e){if(e.localBlobUrl){window.open(e.localBlobUrl,`_blank`,`noopener,noreferrer`);return}if(e.file&&e.previewUrl?.startsWith(`blob:`)){window.open(e.previewUrl,`_blank`,`noopener,noreferrer`);return}let t=ae(e.previewUrl||e.url);if(t){if(!e.fromServer){window.open(t,`_blank`,`noopener,noreferrer`);return}try{let n=await fetch(t,{credentials:`omit`});if(!n.ok)throw Error(`fetch failed`);let r=await n.blob(),i=URL.createObjectURL(r);e.localBlobUrl=i,window.open(i,`_blank`,`noopener,noreferrer`)}catch{window.open(t,`_blank`,`noopener,noreferrer`)}}}async function Ci(e,t){let n=String(e);if(L.value.includes(n))return;let r=t===`plan`?[...F.value]:[...I.value],i=r.find(e=>String(e.id)===n);if(!i)return;let a=i.fromServer?Number(i.id):NaN;if(i.fromServer&&Number.isFinite(a)&&a>0){if(!localStorage.getItem(`cxxfds_token`)){D();return}L.value=[...L.value,n];try{let e=new AbortController,t=window.setTimeout(()=>e.abort(),15e3),n=await fetch(`${T()}/api/applications/current/files/${a}/delete${E()}`,{method:`POST`,headers:Jn(!1),signal:e.signal});if(window.clearTimeout(t),n.status===401){D();return}if(n.status!==404&&!n.ok){K(`删除失败`,`提示`,`warning`);return}}catch(e){K(e instanceof DOMException&&e.name===`AbortError`?`删除超时,请关闭已打开的预览窗口后重试`:`删除失败`,`提示`,`warning`);return}finally{L.value=L.value.filter(e=>e!==n)}}xi(i),r=r.filter(t=>String(t.id)!==String(e)),t===`plan`?F.value=r:I.value=r,B.value=!0,t===`plan`?Q():$()}function wi(e,t){if(!e?.length)return;let n=Xn(Zn(t)),r=t===`plan`?[...F.value]:[...I.value],i=Array.from(e),a=n===null?i.length:Math.max(0,n-r.length);if(i.length>a&&n!==null&&K(`该栏最多上传 ${n} 个文件,已忽略多余 ${i.length-a} 个选择。`,`提示`,`warning`),i=i.slice(0,a),i.forEach(e=>{r.push({id:`tmp-${Date.now()}-${Math.random().toString(16).slice(2)}`,file:e,previewUrl:URL.createObjectURL(e),fromServer:!1})}),t===`plan`){F.value=[...r],R.value=``;let e=S(Er);e&&(e.value=``),B.value=!0,Q()}else{I.value=[...r],z.value=``;let e=S(Dr);e&&(e.value=``),B.value=!0,$()}bi(t)}function Ti(){return{formModel:{...j},planFileNames:F.value.map(G).filter(Boolean),supportingFileNames:I.value.map(G).filter(Boolean)}}function Ei(){let e=Ti();localStorage.setItem(ar.value,JSON.stringify(e)),e.planFileNames.length?R.value=`已保存商业计划书名称:${e.planFileNames.join(`、`)}`:R.value=``,e.supportingFileNames.length?z.value=`已保存其他佐证材料名称:${e.supportingFileNames.join(`、`)}`:z.value=``}function Di(){let e=localStorage.getItem(ar.value);if(e)try{let t=JSON.parse(e);if(t.formModel&&typeof t.formModel==`object`)for(let e of Object.keys(t.formModel))j[e]=t.formModel[e]??``;let n=t.planFileNames||[];n.length&&(R.value=`上次保存商业计划书名称:${n.join(`、`)}(浏览器限制,需重新选择后预览或删除)`);let r=t.supportingFileNames;r?.length&&(z.value=`上次保存其他佐证材料名称:${r.join(`、`)}(浏览器限制,需重新选择后预览或删除)`),Sr()}catch{localStorage.removeItem(ar.value)}}async function Oi(){$n.value=!1;let e=x.value;if(!e){A.value=`缺少赛事地址`;return}A.value=``;try{let t=await fetch(`${T()}/api/v1/public/competitions/by-slug/${encodeURIComponent(e)}`,{headers:{Accept:`application/json`}});if(!t.ok){A.value=t.status===404?`赛事不存在或未发布`:`无法加载赛事配置`;return}let n=await t.json(),r=n.data!=null&&typeof n.data==`object`&&!Array.isArray(n.data)?n.data:n;er.value=String(r.name??``),tr.value=typeof r.pledge_content_html==`string`?r.pledge_content_html:``;let i=r.tracks;k.value=Array.isArray(i)?i:[];let a=r.signup_form_schema;if(typeof a==`string`)try{a=JSON.parse(a)}catch{a=[]}O.value=Se(a),ir(O.value),rr.value=ge(r.branding_json??null);let o=rr.value.documentTitle;me(o)&&typeof document<`u`&&(document.title=o.trim()),$n.value=!0}catch{A.value=`网络错误,无法加载赛事`}}function ki(e){or.value=e.status||`draft`,sr.value=typeof e.submitted_at==`string`?e.submitted_at:``,M.value=e.participant_may_edit!==!1,j.player_name=e.player_name||``,j.school=e.school||``,j.degree=e.degree||``,j.contact_email=e.contact_email||``,j.contact_mobile=e.contact_mobile||``,j.entry_group=e.entry_group||``,j.company_name=e.company_name||``,j.project_name=e.project_name||``,j.track=e.track||``,j.location_country=e.location_country||``,j.location_province=e.location_province||``,j.location_city=e.location_city||``,j.oversea_country=e.oversea_country||``,j.intro=e.intro||``;let t=Object.prototype.hasOwnProperty.call(e,`promise_signature`),n=t?typeof e.promise_signature==`string`?e.promise_signature:``:String(j.promise_signature??``);(t||!e.promise_signed_at)&&(j.promise_signature=n),j.commitment_accepted=n.trim()&&e.promise_signed_at?`1`:``,Sr(),F.value=(e.files||[]).filter(e=>e.kind===`plan`).map(e=>{let t=ae(e.url);return{id:e.id,fromServer:!0,original_name:e.original_name,size:e.size,url:t,previewUrl:t}}),I.value=(e.files||[]).filter(e=>e.kind===`supporting`).map(e=>{let t=ae(e.url);return{id:e.id,fromServer:!0,original_name:e.original_name,size:e.size,url:t,previewUrl:t}}),Q(),$()}async function Ai(){if(!localStorage.getItem(`cxxfds_token`))return!1;let e=await fetch(`${T()}/api/applications/current${E()}`,{headers:Jn(!1)});return e.status===401?(localStorage.removeItem(se),D(),!1):e.ok?(ki(await e.json()),!0):!1}async function ji(){let e=await fetch(`${T()}/api/applications/current${E()}`,{method:`PUT`,headers:Jn(!0),body:JSON.stringify(hi())});if(e.status===401)return D(),!1;if(!e.ok)return e.json().catch(()=>({})),K(`草稿未能保存,请检查网络或稍后重试。`,`保存失败`,`warning`),!1;try{ki(await e.json())}catch{}return!0}function Mi(e){if(typeof e!=`object`||!e||Array.isArray(e))return[];let t=[];for(let n of Object.values(e))if(Array.isArray(n))for(let e of n)typeof e==`string`&&e.trim()&&t.push(e.trim());else typeof n==`string`&&n.trim()&&t.push(n.trim());return t}function Ni(e){let t=e.trim();return t===`The given data was invalid.`||t===`The given data was invalid`||t===`给定的数据无效。`||t===`给定的数据无效`}function Pi(e,t){let n=Mi(t.errors);if(n.length>0)return n[0];let r=t.message;if(typeof r==`string`&&r.trim()){let e=r.trim();if(!Ni(e))return e}return e===404?`赛事不存在或未发布,请返回重新进入报名页。`:e===403?`当前账号无权限提交,请确认登录状态或联系管理员。`:e===409?`报名状态已变更或发生冲突,请刷新页面后重试。`:e===429?`请求过于频繁,请稍后再试。`:e>=500?`服务暂时不可用,请稍后重试。`:e===422?`提交失败,请填写完整信息。`:`报名未能提交,请检查网络或稍后重试。`}async function Fi(){let e=await fetch(`${T()}/api/applications/current/submit${E()}`,{method:`POST`,headers:Jn(!0),body:JSON.stringify(hi())});if(e.status===401)return D(),!1;if(!e.ok){let t={};try{t=await e.json()}catch{}return K(Pi(e.status,t),`提交失败`,`warning`),!1}let t=await e.json();ki(t);let n=t.success_notice,r=n?.enabled===!0&&typeof n.message==`string`?n.message.trim():``;return{channelCallback:Kr(t.channel_callback),successNoticeMessage:r}}async function Ii(){if(!localStorage.getItem(`cxxfds_token`)){D();return}await ji()&&(Ei(),K(`已保存草稿(按当前已填写信息暂存)。`,`保存成功`,`success`))}async function Li(){if(!localStorage.getItem(`cxxfds_token`)){D();return}if(!yi())return;let e=await Fi();if(!e)return;let t=e.successNoticeMessage||`已提交报名`;if(e.channelCallback){if(await K(t,`提交成功`,`success`),e.channelCallback.type===`mini_program`){await Yr(e.channelCallback.path,e.channelCallback.method)||K(`未检测到微信小程序回跳能力,请从小程序内重新进入或联系管理员。`,`回跳失败`,`warning`);return}window.location.href=e.channelCallback.redirectUrl;return}K(t,`提交成功`,`success`)}return o(()=>{Z?.(),ni()}),s(()=>{(async()=>{await Oi(),!A.value&&(await Ai()||Di(),Sr())})()}),(i,a)=>(_(),v(`div`,Ce,[y(`div`,we,[y(`h5`,Te,h(kr.value),1),!A.value&&Ar.value?(_(),v(`p`,Ee,h(Ar.value),1)):t(``,!0),A.value?(_(),v(`p`,De,h(A.value),1)):$n.value&&k.value.length===0&&O.value.some(e=>e.key===`track`)?(_(),v(`p`,Oe,` 本场赛事尚未在「赛道管理」中配置可用赛道,提交时可能会失败,请联系管理员。 `)):t(``,!0)]),A.value?t(``,!0):(_(),v(`div`,ke,[y(`div`,Ae,[y(`div`,je,[y(`div`,{class:e([`application-status-panel`,N.value?`application-status-panel--submitted`:`application-status-panel--draft`]),role:`status`,"aria-live":`polite`},[y(`div`,Me,[N.value?(_(),v(`svg`,Ne,[...a[5]||=[y(`circle`,{cx:`12`,cy:`12`,r:`9.5`,stroke:`currentColor`,"stroke-width":`1.8`},null,-1),y(`path`,{d:`M7.6 12.2l2.8 2.8 6-6.2`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)]])):(_(),v(`svg`,Pe,[...a[6]||=[y(`circle`,{cx:`12`,cy:`12`,r:`9.5`,stroke:`currentColor`,"stroke-width":`1.8`},null,-1),y(`path`,{d:`M12 7.5v5.2`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`},null,-1),y(`circle`,{cx:`12`,cy:`16.5`,r:`1`,fill:`currentColor`},null,-1)]]))]),y(`div`,Fe,[y(`strong`,null,h(lr.value),1),y(`span`,null,h(ur.value),1)])],2),y(`div`,Ie,[a[7]||=y(`span`,{class:`apply-contact-label`},`参赛咨询:`,-1),(_(!0),v(p,null,c(r(ve),e=>(_(),v(`a`,{key:e.tel,href:`tel:${e.tel}`},h(e.display),9,Le))),128)),y(`a`,{href:`tel:${r(_e).tel}`},`技术咨询:`+h(r(_e).display),9,Re)]),y(`form`,{id:`applyForm`,ref_key:`applyFormEl`,ref:Tr,class:e([`row g-3`,{"was-validated":B.value}]),onSubmit:a[4]||=ne(()=>{},[`prevent`])},[(_(!0),v(p,null,c(Nr.value,r=>(_(),v(p,{key:r.type===`file`?`f-`+r.key:r.key},[r.key===`track`?(_(),v(`div`,ze,[y(`label`,Be,[n(h(r.label)+` `,1),W(r)?(_(),v(`span`,Ve,`*`)):t(``,!0),w(r)?(_(),v(`span`,He,h(w(r)),1)):t(``,!0)]),y(`div`,Ue,[f(y(`select`,{id:`track`,ref_for:!0,ref_key:`trackHiddenSelect`,ref:fr,"onUpdate:modelValue":a[0]||=e=>j.track=e,class:`visually-hidden`,required:W(r),tabindex:`-1`,"aria-hidden":`true`,disabled:V.value},[(_(!0),v(p,null,c(k.value,e=>(_(),v(`option`,{key:e.track_code,value:e.track_code},h(e.title),9,Ge))),128))],8,We),[[ie,j.track]]),y(`div`,Ke,[y(`button`,{ref_for:!0,ref_key:`trackDropdownBtn`,ref:pr,type:`button`,class:e([`dropdown-toggle form-select track-custom-toggle editable w-100 text-start`,{"is-invalid":dr.value&&B.value}]),"aria-labelledby":`trackFieldLabel`,"aria-expanded":`false`,"data-bs-toggle":`dropdown`,"data-bs-display":`static`,"data-bs-auto-close":`true`,disabled:V.value},[y(`span`,Je,[y(`span`,{class:e(hr.value)},h(mr.value),3)])],10,qe),gr.value?(_(),v(`small`,Ye,h(gr.value),1)):t(``,!0),y(`ul`,Xe,[(_(!0),v(p,null,c(k.value,e=>(_(),v(`li`,{key:e.track_code},[y(`button`,{type:`button`,class:`dropdown-item track-pick border-0 w-100 text-start rounded-0`,onClick:t=>vr(e.track_code)},[y(`span`,Qe,[y(`span`,$e,h(e.title),1),_r(e.description)?(_(),v(`span`,et,h(_r(e.description)),1)):t(``,!0)])],8,Ze)]))),128))]),a[8]||=y(`div`,{class:`invalid-feedback`},`请选择主题赛道`,-1)])]),C(r.help)?(_(),v(`small`,tt,h(C(r.help)),1)):t(``,!0)])):r.type===`file`&&r.key===`plan`?(_(),v(`div`,nt,[y(`label`,rt,[n(h(r.label)+` `,1),W(r)?(_(),v(`span`,it,`*`)):t(``,!0),w(r)?(_(),v(`span`,at,h(w(r)),1)):t(``,!0)]),y(`input`,{ref_for:!0,ref_key:`planFileInput`,ref:Er,type:`file`,class:e([`form-control editable`,{"is-invalid":B.value&&!!Cr.value}]),accept:Qn(r),multiple:``,disabled:V.value,onChange:a[1]||=e=>wi(e.target.files,`plan`)},null,42,ot),y(`div`,{class:e([`apply-file-status`,{"apply-file-status--filled":F.value.length>0}])},h(Rr(F.value)),3),C(r.help)?(_(),v(`small`,st,h(C(r.help)),1)):t(``,!0),F.value.length?(_(),v(`div`,ct,[(_(!0),v(p,null,c(F.value,e=>(_(),v(`div`,{key:String(e.id),class:`supporting-file-item`},[y(`div`,lt,[y(`span`,{class:`supporting-file-name`,title:G(e)},h(G(e)),9,ut),y(`span`,dt,h(Ir(e.file?e.file.size:e.size||0)),1)]),y(`div`,ft,[y(`button`,{type:`button`,class:`btn btn-sm btn-outline-primary`,onClick:t=>Si(e)},` 查看/下载 `,8,pt),y(`button`,{type:`button`,class:`btn btn-sm btn-outline-danger`,disabled:V.value||L.value.includes(String(e.id)),onClick:t=>Ci(e.id,`plan`)},h(L.value.includes(String(e.id))?`删除中…`:`删除`),9,mt)])]))),128))])):t(``,!0),y(`small`,ht,h(R.value),1),B.value&&Cr.value?(_(),v(`div`,gt,h(Cr.value),1)):t(``,!0)])):r.type===`file`&&r.key===`supporting`?(_(),v(`div`,_t,[y(`label`,vt,[n(h(r.label)+` `,1),W(r)?(_(),v(`span`,yt,`*`)):t(``,!0),w(r)?(_(),v(`span`,bt,h(w(r)),1)):t(``,!0)]),y(`input`,{ref_for:!0,ref_key:`supportingFileInput`,ref:Dr,type:`file`,class:e([`form-control editable`,{"is-invalid":B.value&&!!wr.value}]),accept:Qn(r),multiple:``,disabled:V.value,onChange:a[2]||=e=>wi(e.target.files,`supporting`)},null,42,xt),y(`div`,{class:e([`apply-file-status`,{"apply-file-status--filled":I.value.length>0}])},h(Rr(I.value)),3),C(r.help)?(_(),v(`small`,St,h(C(r.help)),1)):t(``,!0),I.value.length?(_(),v(`div`,Ct,[(_(!0),v(p,null,c(I.value,e=>(_(),v(`div`,{key:String(e.id),class:`supporting-file-item`},[y(`div`,wt,[y(`span`,{class:`supporting-file-name`,title:G(e)},h(G(e)),9,Tt),y(`span`,Et,h(Ir(e.file?e.file.size:e.size||0)),1)]),y(`div`,Dt,[y(`button`,{type:`button`,class:`btn btn-sm btn-outline-primary`,onClick:t=>Si(e)},` 查看/下载 `,8,Ot),y(`button`,{type:`button`,class:`btn btn-sm btn-outline-danger`,disabled:V.value||L.value.includes(String(e.id)),onClick:t=>Ci(e.id,`supporting`)},h(L.value.includes(String(e.id))?`删除中…`:`删除`),9,kt)])]))),128))])):t(``,!0),y(`small`,At,h(z.value),1),B.value&&wr.value?(_(),v(`div`,jt,h(wr.value),1)):t(``,!0)])):r.type===`select`&&!Fr(r)?(_(),v(`div`,{key:3,class:e(H(r))},[y(`label`,Mt,[n(h(r.label)+` `,1),W(r)?(_(),v(`span`,Nt,`*`)):t(``,!0),w(r)?(_(),v(`span`,Pt,h(w(r)),1)):t(``,!0)]),f(y(`select`,{"onUpdate:modelValue":e=>j[r.key]=e,class:`form-select editable`,required:W(r),disabled:V.value},[y(`option`,It,h(zr(r)),1),(_(!0),v(p,null,c(Pr(r),e=>(_(),v(`option`,{key:`${r.key}-${e.value}`,value:e.value},h(e.label),9,Lt))),128))],8,Ft),[[ie,j[r.key]]]),y(`div`,Rt,`请选择`+h(r.label),1),C(r.help)?(_(),v(`small`,zt,h(C(r.help)),1)):t(``,!0)],2)):Fr(r)?(_(),v(`div`,{key:4,class:e(H(r))},[y(`label`,Bt,[n(h(r.label)+` `,1),W(r)?(_(),v(`span`,Vt,`*`)):t(``,!0),w(r)?(_(),v(`span`,Ht,h(w(r)),1)):t(``,!0)]),f(y(`select`,{"onUpdate:modelValue":a[3]||=e=>j.location_city=e,class:`form-select editable`,required:W(r),disabled:V.value||!P.value||!String(j.location_province??``).trim()},[y(`option`,Wt,h(String(j.location_province??``).trim()?zr(r):`请先选择省份`),1),(_(!0),v(p,null,c(Pr(r),e=>(_(),v(`option`,{key:e.value,value:e.value},h(e.label),9,Gt))),128))],8,Ut),[[ie,j.location_city]]),y(`div`,Kt,`请选择`+h(r.label),1),C(r.help)?(_(),v(`small`,qt,h(C(r.help)),1)):t(``,!0)],2)):r.type===`checkbox`&&r.key===`commitment_accepted`?(_(),v(`div`,{key:5,class:e(H(r))},[y(`label`,Jt,[n(h(r.label)+` `,1),W(r)?(_(),v(`span`,Yt,`*`)):t(``,!0),w(r)?(_(),v(`span`,Xt,h(w(r)),1)):t(``,!0)]),a[9]||=y(`p`,{class:`small text-secondary mb-2`},` 请点击按钮打开承诺书全文,阅读后在文末手写签名并点击「确认签署」。 `,-1),y(`div`,Zt,[y(`button`,{type:`button`,class:`btn btn-outline-primary btn-sm editable`,disabled:V.value,onClick:fi},h(ri.value?`重新查看承诺书`:`查看并签署参赛承诺书`),9,Qt),ri.value?(_(),v(`span`,$t,`已完成签署`)):t(``,!0)]),C(r.help)?(_(),v(`small`,en,h(C(r.help)),1)):t(``,!0)],2)):r.type===`checkbox`?(_(),v(`div`,{key:6,class:e(H(r))},[y(`div`,tn,[f(y(`input`,{id:`signup-field-`+r.key,"onUpdate:modelValue":e=>j[r.key]=e,type:`checkbox`,class:`form-check-input editable`,"true-value":`1`,"false-value":``,required:W(r),disabled:V.value},null,8,nn),[[re,j[r.key]]]),y(`label`,{class:`form-check-label`,for:`signup-field-`+r.key},[n(h(r.label)+` `,1),W(r)?(_(),v(`span`,an,`*`)):t(``,!0),w(r)?(_(),v(`span`,on,h(w(r)),1)):t(``,!0)],8,rn),a[10]||=y(`div`,{class:`invalid-feedback`},`请勾选此项以继续`,-1)]),C(r.help)?(_(),v(`small`,sn,h(C(r.help)),1)):t(``,!0)],2)):r.type===`textarea`?(_(),v(`div`,{key:7,class:e(H(r))},[y(`label`,cn,[n(h(r.label)+` `,1),W(r)?(_(),v(`span`,ln,`*`)):t(``,!0),w(r)?(_(),v(`span`,un,h(w(r)),1)):t(``,!0)]),f(y(`textarea`,{"onUpdate:modelValue":e=>j[r.key]=e,class:`form-control editable`,rows:`4`,placeholder:``,required:W(r),disabled:V.value},null,8,dn),[[te,j[r.key]]]),U(r)||r.key===`intro`?(_(),v(`div`,fn,[U(r)?(_(),v(`small`,pn,h(U(r)),1)):t(``,!0),r.key===`intro`?(_(),v(`small`,mn,h(Or.value)+` 字`,1)):t(``,!0)])):t(``,!0),C(r.help)?(_(),v(`small`,{key:1,class:e([`text-secondary prototype-subtitle d-block`,{"mt-1":r.key===`intro`||U(r)}])},h(C(r.help)),3)):t(``,!0)],2)):(_(),v(`div`,{key:8,class:e(H(r))},[y(`label`,hn,[n(h(r.label)+` `,1),W(r)?(_(),v(`span`,gn,`*`)):t(``,!0),w(r)?(_(),v(`span`,_n,h(w(r)),1)):t(``,!0)]),f(y(`input`,{"onUpdate:modelValue":e=>j[r.key]=e,type:r.type===`email`?`email`:r.key===`contact_mobile`?`tel`:`text`,class:e([`form-control editable`,{"company-name-input":r.key===`company_name`}]),required:W(r),disabled:V.value,placeholder:(r.placeholder??``).trim(),pattern:r.key===`contact_mobile`?Gn:void 0,autocomplete:r.key===`company_name`?`organization`:void 0},null,10,vn),[[ee,j[r.key]]]),y(`div`,yn,h(jr(r)),1),C(r.help)?(_(),v(`small`,bn,h(C(r.help)),1)):t(``,!0)],2))],64))),128)),y(`div`,xn,[y(`button`,{type:`button`,class:`btn btn-outline-primary`,disabled:V.value,onClick:Ii},h(N.value?`保存修改`:`保存`),9,Sn),y(`button`,{type:`button`,class:`btn btn-success`,disabled:V.value,onClick:Li},h(N.value?`更新报名`:`提交报名`),9,Cn)])],34)])])])),!A.value&&O.value.some(e=>e.key===`commitment_accepted`)?(_(),v(`div`,{key:1,id:`promiseSignModal`,ref_key:`promiseSignModalRef`,ref:Xr,class:`modal fade`,tabindex:`-1`,"aria-hidden":`true`,"data-bs-backdrop":`static`},[y(`div`,wn,[y(`div`,Tn,[y(`div`,En,[y(`div`,Dn,[y(`h1`,On,h(ii.value),1),y(`div`,kn,[y(`div`,{class:`promise-doc-body promise-doc-body--rich`,innerHTML:nr.value},null,8,An)]),y(`div`,jn,[y(`div`,Mn,[a[11]||=y(`span`,{class:`promise-doc-signlabel`},`参赛人签名:`,-1),y(`div`,Nn,[y(`div`,Pn,[y(`canvas`,{ref_key:`promiseCanvasRef`,ref:q,class:`promise-sig-canvas`,width:`520`,height:`140`,"aria-label":`手写签名区域`},null,512),y(`span`,{class:e([`promise-sig-hint`,{"d-none":!Qr.value}])},`请在框内手写签名`,2)]),y(`div`,{class:`promise-sig-tools`},[y(`button`,{type:`button`,class:`btn btn-sm btn-outline-secondary`,onClick:pi},` 清除签名 `)])])]),y(`div`,Fn,[y(`span`,In,[a[12]||=n(`日期:`,-1),y(`strong`,null,h(Zr.value),1)])])]),y(`div`,{class:`promise-sign-actions`},[a[13]||=y(`button`,{type:`button`,class:`btn btn-light notice-cancel-btn`,"data-bs-dismiss":`modal`},`关闭`,-1),y(`button`,{type:`button`,class:`btn btn-primary`,onClick:mi},`确认签署`)])])])])])],512)):t(``,!0),y(`div`,{ref_key:`noticeModalEl`,ref:Vr,id:`applyNoticeModal`,class:`modal fade`,tabindex:`-1`,"aria-hidden":`true`},[y(`div`,Ln,[y(`div`,{class:e([`modal-content notice-modal-content`,Wr.value?`notice-success`:`notice-warning`])},[a[16]||=y(`div`,{class:`modal-header border-0 pb-0`},[y(`button`,{type:`button`,class:`btn-close ms-auto`,"data-bs-dismiss":`modal`,"aria-label":`关闭`})],-1),y(`div`,Rn,[y(`div`,zn,[Wr.value?(_(),v(`svg`,Bn,[...a[14]||=[y(`circle`,{cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`1.8`},null,-1),y(`path`,{d:`M7 12.2l3.1 3.1L17.2 8.8`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)]])):(_(),v(`svg`,Vn,[...a[15]||=[y(`path`,{d:`M12 3.6L2.9 19.2a1 1 0 0 0 .86 1.5h16.48a1 1 0 0 0 .86-1.5L12 3.6z`,stroke:`currentColor`,"stroke-width":`1.8`},null,-1),y(`path`,{d:`M12 9v5`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`},null,-1),y(`circle`,{cx:`12`,cy:`16.8`,r:`1.1`,fill:`currentColor`},null,-1)]]))]),y(`h5`,Hn,h(Hr.value),1),Ur.value.trim()?(_(),v(`p`,Un,h(Ur.value),1)):t(``,!0)]),a[17]||=y(`div`,{class:`modal-footer notice-modal-footer border-0`},[y(`button`,{type:`button`,class:`btn btn-light notice-cancel-btn`,"data-bs-dismiss":`modal`},`取消`),y(`button`,{type:`button`,class:`btn btn-primary notice-ok-btn`,"data-bs-dismiss":`modal`},`确定`)],-1)],2)])],512)]))}}),[[`__scopeId`,`data-v-8a18319a`]]),T=g({__name:`ApplyView`,setup(e){return(e,t)=>(_(),a(w))}});export{T as default}; \ No newline at end of file diff --git a/public/admin/assets/CompetitionFormView-DF_rZmK6.js b/public/admin/assets/CompetitionFormView-B--KKhgq.js similarity index 99% rename from public/admin/assets/CompetitionFormView-DF_rZmK6.js rename to public/admin/assets/CompetitionFormView-B--KKhgq.js index d335649..c8399b3 100644 --- a/public/admin/assets/CompetitionFormView-DF_rZmK6.js +++ b/public/admin/assets/CompetitionFormView-B--KKhgq.js @@ -1,4 +1,4 @@ -import{$t as e,At as t,C as n,D as r,Dt as i,Et as a,Ht as o,I as s,It as c,Jt as l,Lt as u,Mt as d,Nt as f,O as p,Ot as m,Q as h,Qt as g,Rt as _,S as v,Ut as y,V as b,Vt as x,W as S,Wt as C,Xt as w,Y as T,Yt as E,Z as D,Zt as O,_t as k,an as A,at as j,b as M,bt as ee,cn as te,ct as ne,g as re,i as ie,in as N,jt as ae,k as oe,kt as se,ln as ce,nn as le,nt as ue,o as de,on as fe,ot as pe,p as me,q as he,qt as ge,rn as _e,sn as ve,st as P,un as ye,w as be,x as F,xt as xe}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{_ as Se,a as Ce,c as we,i as Te,l as I,o as Ee,s as De}from"./index-ijh93KpS.js";import{t as Oe}from"./_plugin-vue_export-helper-S3RvzygF.js";import{c as L,i as ke,l as Ae,n as je,o as Me,r as Ne,s as Pe,t as Fe}from"./competitions-Onk4QsGa.js";import{t as Ie}from"./adminCompetition-CbJJ6VFP.js";import{n as Le,r as Re,t as ze}from"./competitionBranding-Bz_llsts.js";async function Be(e,t){let{data:n}=await Te.get(`/competitions/${e}/form-schemas`,{params:t?{purpose:t}:{}});return n.data??[]}async function Ve(e,t){let{data:n}=await Te.get(`/competitions/${e}/form-schemas/${t}`),r=n?.data??n;if(!r||typeof r!=`object`||!(`id`in r))throw Error(`表单详情无效`);return r}async function He(e,t){let{data:n}=await Te.post(`/competitions/${e}/form-schemas`,t);return n}async function Ue(e,t,n){let{data:r}=await Te.patch(`/competitions/${e}/form-schemas/${t}`,n);return r}async function We(e,t){await Te.delete(`/competitions/${e}/form-schemas/${t}`)}function Ge(e){let t=e?.data??e;if(!t||typeof t!=`object`||!(`id`in t))throw Error(`渠道响应格式无效`);return t}async function Ke(e){let{data:t}=await Te.get(`/competitions/${e}/signup-channels`),n=t?.data??t;if(!Array.isArray(n))throw Error(`渠道列表响应格式无效`);return n}async function qe(e,t){let{data:n}=await Te.get(`/competitions/${e}/signup-channels/${t}`);return Ge(n)}async function Je(e,t){let{data:n}=await Te.post(`/competitions/${e}/signup-channels`,t);return Ge(n)}async function Ye(e,t,n){let{data:r}=await Te.put(`/competitions/${e}/signup-channels/${t}`,n);return Ge(r)}function Xe(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 Ze(e,t){let{data:n}=await Te.get(`/competitions/${e}/applications`,{params:t});return Xe(n)}async function Qe(e,t){let{data:n}=await Te.get(`/competitions/${e}/applications/${t}`);if(!n||typeof n!=`object`)throw Error(`报名详情无效`);return n}async function $e(e,t,n,r){et((await Te.get(`/competitions/${e}/applications/${t}/files/${n}/download`,{responseType:`blob`})).data,r||`附件`)}function et(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 tt(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 nt(e){if(Ce.isAxiosError(e)){let t=e.response?.data;if(t instanceof Blob){let e=await t.text();try{let t=JSON.parse(e);return Error(t.errors?.export?.[0]||t.errors?.part?.[0]||t.message||`导出失败`)}catch{}}if(t&&typeof t==`object`){let e=t;return Error(e.errors?.export?.[0]||e.errors?.part?.[0]||e.message||`导出失败`)}}return e instanceof Error?e:Error(`导出失败`)}function rt(e){return new Promise(t=>{window.setTimeout(t,e)})}async function it(e,t){try{let{data:n}=await Te.get(`/competitions/${e}/applications/export/meta`,{params:t});if(!n||typeof n!=`object`)throw Error(`导出信息无效`);return n}catch(e){throw await nt(e)}}async function at(e,t,n){let r;try{r=await Te.get(`/competitions/${e}/applications/export`,{params:{...t,part:n},responseType:`blob`,timeout:0})}catch(e){throw await nt(e)}let i=tt(r.headers[`content-disposition`],`报名信息导出_第${n}部分.zip`);et(r.data,i)}async function ot(e,t,n){let r=await it(e,t);for(let i=1;i<=r.part_count;i+=1)n?.(i,r.part_count),await at(e,t,i),i{ci[t]=e[t]})}function ct(e,t=``){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:pi}}function lt(e,t,n,r,i,a,o,s=!1,c=!1,l=!1,u=pi){return e&&(s?(e.helper(Or),e.helper(Dt(e.inSSR,l))):e.helper(Et(e.inSSR,l)),o&&e.helper(Br)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:a,directives:o,isBlock:s,disableTracking:c,isComponent:l,loc:u}}function ut(e,t=pi){return{type:17,loc:t,elements:e}}function dt(e,t=pi){return{type:15,loc:t,properties:e}}function ft(e,t){return{type:16,loc:pi,key:E(e)?pt(e,!0):e,value:t}}function pt(e,t=!1,n=pi,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function mt(e,t){return{type:5,loc:t,content:E(e)?pt(e,!1,t):e}}function ht(e,t=pi){return{type:8,loc:t,children:e}}function gt(e,t=[],n=pi){return{type:14,loc:n,callee:e,arguments:t}}function _t(e,t=void 0,n=!1,r=!1,i=pi){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function vt(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:pi}}function yt(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:pi}}function bt(e){return{type:21,body:e,loc:pi}}function xt(e){return{type:22,elements:e,loc:pi}}function St(e,t,n){return{type:23,test:e,consequent:t,alternate:n,loc:pi}}function Ct(e,t){return{type:24,left:e,right:t,loc:pi}}function wt(e){return{type:25,expressions:e,loc:pi}}function Tt(e){return{type:26,returns:e,loc:pi}}function Et(e,t){return e||t?jr:Mr}function Dt(e,t){return e||t?kr:Ar}function Ot(e,{helper:t,removeHelper:n,inSSR:r}){e.isBlock||(e.isBlock=!0,n(Et(r,e.isComponent)),t(Or),t(Dt(r,e.isComponent)))}function kt(e){return e>=97&&e<=122||e>=65&&e<=90}function At(e){return e===32||e===10||e===9||e===12||e===13}function jt(e){return e===47||e===62||At(e)}function Mt(e){let t=new Uint8Array(e.length);for(let n=0;n{window.setTimeout(t,e)})}async function it(e,t){try{let{data:n}=await Te.get(`/competitions/${e}/applications/export/meta`,{params:t});if(!n||typeof n!=`object`)throw Error(`导出信息无效`);return n}catch(e){throw await nt(e)}}async function at(e,t,n){let r;try{r=await Te.get(`/competitions/${e}/applications/export`,{params:{...t,part:n},responseType:`blob`,timeout:0})}catch(e){throw await nt(e)}let i=tt(r.headers[`content-disposition`],`报名信息导出_第${n}部分.zip`);et(r.data,i)}async function ot(e,t,n){let r=await it(e,t);for(let i=1;i<=r.part_count;i+=1)n?.(i,r.part_count),await at(e,t,i),i{ci[t]=e[t]})}function ct(e,t=``){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:pi}}function lt(e,t,n,r,i,a,o,s=!1,c=!1,l=!1,u=pi){return e&&(s?(e.helper(Or),e.helper(Dt(e.inSSR,l))):e.helper(Et(e.inSSR,l)),o&&e.helper(Br)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:a,directives:o,isBlock:s,disableTracking:c,isComponent:l,loc:u}}function ut(e,t=pi){return{type:17,loc:t,elements:e}}function dt(e,t=pi){return{type:15,loc:t,properties:e}}function ft(e,t){return{type:16,loc:pi,key:E(e)?pt(e,!0):e,value:t}}function pt(e,t=!1,n=pi,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function mt(e,t){return{type:5,loc:t,content:E(e)?pt(e,!1,t):e}}function ht(e,t=pi){return{type:8,loc:t,children:e}}function gt(e,t=[],n=pi){return{type:14,loc:n,callee:e,arguments:t}}function _t(e,t=void 0,n=!1,r=!1,i=pi){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function vt(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:pi}}function yt(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:pi}}function bt(e){return{type:21,body:e,loc:pi}}function xt(e){return{type:22,elements:e,loc:pi}}function St(e,t,n){return{type:23,test:e,consequent:t,alternate:n,loc:pi}}function Ct(e,t){return{type:24,left:e,right:t,loc:pi}}function wt(e){return{type:25,expressions:e,loc:pi}}function Tt(e){return{type:26,returns:e,loc:pi}}function Et(e,t){return e||t?jr:Mr}function Dt(e,t){return e||t?kr:Ar}function Ot(e,{helper:t,removeHelper:n,inSSR:r}){e.isBlock||(e.isBlock=!0,n(Et(r,e.isComponent)),t(Or),t(Dt(r,e.isComponent)))}function kt(e){return e>=97&&e<=122||e>=65&&e<=90}function At(e){return e===32||e===10||e===9||e===12||e===13}function jt(e){return e===47||e===62||At(e)}function Mt(e){let t=new Uint8Array(e.length);for(let n=0;n{e&&Yt(e,t)});break;case`RestElement`:Yt(e.argument,t);break;case`AssignmentPattern`:Yt(e.left,t);break}return t}function Xt(e){return Ti.includes(e.type)?Xt(e.expression):e}function Zt(e){switch(e){case`Teleport`:case`teleport`:return wr;case`Suspense`:case`suspense`:return Tr;case`KeepAlive`:case`keep-alive`:return Er;case`BaseTransition`:case`base-transition`:return Dr}}function Qt(e,t,n=t.length){return $t({offset:e.offset,line:e.line,column:e.column},t,n)}function $t(e,t,n=t.length){let r=0,i=-1;for(let e=0;ee.type===7&&e.name===`bind`&&(!e.arg||e.arg.type!==4||!e.arg.isStatic))}function on(e){return e.type===5||e.type===2}function sn(e){return e.type===7&&e.name===`pre`}function cn(e){return e.type===7&&e.name===`slot`}function ln(e){return e.type===1&&e.tagType===3}function un(e){return e.type===1&&e.tagType===2}function dn(e,t=[]){if(e&&!E(e)&&e.type===14){let n=e.callee;if(!E(n)&&Bi.has(n))return dn(e.arguments[0],t.concat(e))}return[e,t]}function fn(e,t,n){let r,i=e.type===13?e.props:e.arguments[2],a=[],o;if(i&&!E(i)&&i.type===14){let e=dn(i);i=e[0],a=e[1],o=a[a.length-1]}if(i==null||E(i))r=dt([t]);else if(i.type===14){let e=i.arguments[0];!E(e)&&e.type===15?pn(t,e)||e.properties.unshift(t):i.callee===Xr?r=gt(n.helper(Gr),[dt([t]),i]):i.arguments.unshift(dt([t])),!r&&(r=i)}else i.type===15?(pn(t,i)||i.properties.unshift(t),r=i):(r=gt(n.helper(Gr),[dt([t]),i]),o&&o.callee===Yr&&(o=a[a.length-2]));e.type===13?o?o.arguments[0]=r:e.props=r:o?o.arguments[0]=r:e.arguments[2]=r}function pn(e,t){let n=!1;if(e.key.type===4){let r=e.key.content;n=t.properties.some(e=>e.key.type===4&&e.key.content===r)}return n}function mn(e,t){return`_${t}_${e.replace(/[^\w]/g,(t,n)=>t===`-`?`_`:e.charCodeAt(n).toString())}`}function hn(e,t){if(!e||Object.keys(t).length===0)return!1;switch(e.type){case 1:for(let n=0;nhn(e,t));case 11:return hn(e.source,t)?!0:e.children.some(e=>hn(e,t));case 9:return e.branches.some(e=>hn(e,t));case 10:return hn(e.condition,t)?!0:e.children.some(e=>hn(e,t));case 4:return!e.isStatic&&Oi(e.content)&&!!t[e.content];case 8:return e.children.some(e=>y(e)&&hn(e,t));case 5:case 12:return hn(e.content,t);case 2:case 3:case 20:return!1;default:return!1}}function gn(e){return e.type===14&&e.callee===oi?e.arguments[1].returns:e}function _n(e){for(let t=0;t{let i=t.start.offset+n;return jn(e,!1,kn(i,i+e.length),0,+!!r)},s={source:o(a.trim(),n.indexOf(a,i.length)),value:void 0,key:void 0,index:void 0,finalized:!1},c=i.trim().replace(ra,``).trim(),l=i.indexOf(c),u=c.match(na);if(u){c=c.replace(na,``).trim();let e=u[1].trim(),t;if(e&&(t=n.indexOf(e,l+c.length),s.key=o(e,t,!0)),u[2]){let r=u[2].trim();r&&(s.index=o(r,n.indexOf(r,s.key?t+e.length:l+c.length),!0))}}return c&&(s.value=o(c,l,!0)),s}function bn(e,t){return Gi.slice(e,t)}function xn(e){ta.inSFCRoot&&(Ki.innerLoc=kn(e+1,e+1)),On(Ki);let{tag:t,ns:n}=Ki;n===0&&Ui.isPreTag(t)&&Zi++,Ui.isVoidTag(t)?Cn(Ki,e):(ea.unshift(Ki),(n===1||n===2)&&(ta.inXML=!0)),Ki=null}function Sn(e,t,n){{let t=ea[0]&&ea[0].tag;t!==`script`&&t!==`style`&&e.includes(`&`)&&(e=Ui.decodeEntities(e,!1))}let r=ea[0]||Wi,i=r.children[r.children.length-1];i&&i.type===2?(i.content+=e,An(i.loc,n)):r.children.push({type:2,content:e,loc:kn(t,n)})}function Cn(e,t,n=!1){n?An(e.loc,wn(t,60)):An(e.loc,tee(t,62)+1),ta.inSFCRoot&&(e.children.length?e.innerLoc.end=d({},e.children[e.children.length-1].loc.end):e.innerLoc.end=d({},e.innerLoc.start),e.innerLoc.source=bn(e.innerLoc.start.offset,e.innerLoc.end.offset));let{tag:r,ns:i,children:a}=e;if(Qi||(r===`slot`?e.tagType=2:Tn(e)?e.tagType=3:nee(e)&&(e.tagType=1)),ta.inRCDATA||(e.children=En(a)),i===0&&Ui.isIgnoreNewlineTag(r)){let e=a[0];e&&e.type===2&&(e.content=e.content.replace(/^\r?\n/,``))}i===0&&Ui.isPreTag(r)&&Zi--,$i===e&&(Qi=ta.inVPre=!1,$i=null),ta.inXML&&(ea[0]?ea[0].ns:Ui.ns)===0&&(ta.inXML=!1);{let t=e.props;if(!ta.inSFCRoot&&Pt(`COMPILER_NATIVE_TEMPLATE`,Ui)&&e.tag===`template`&&!Tn(e)){let t=ea[0]||Wi,n=t.children.indexOf(e);t.children.splice(n,1,...e.children)}let n=t.find(e=>e.type===6&&e.name===`inline-template`);n&&Ft(`COMPILER_INLINE_TEMPLATE`,Ui,n.loc)&&e.children.length&&(n.value={type:2,content:bn(e.children[0].loc.start.offset,e.children[e.children.length-1].loc.end.offset),loc:n.loc})}}function tee(e,t){let n=e;for(;Gi.charCodeAt(n)!==t&&n=0;)n--;return n}function Tn({tag:e,props:t}){if(e===`template`){for(let e=0;e64&&e<91}function En(e){let t=Ui.whitespace!==`preserve`,n=!1;for(let r=0;re.type!==3);return t.length===1&&t[0].type===1&&!un(t[0])?t[0]:null}function Fn(e,t,n,r=!1,i=!1){let{children:a}=e,o=[];for(let t=0;t0){if(e>=2){s.codegenNode.patchFlag=-1,o.push(s);continue}}else{let e=s.codegenNode;if(e.type===13){let t=e.patchFlag;if((t===void 0||t===512||t===1)&&Rn(s,n)>=2){let t=zn(s);t&&(e.props=n.hoist(t))}e.dynamicProps&&=n.hoist(e.dynamicProps)}}}else if(s.type===12&&(r?0:In(s,n))>=2){s.codegenNode.type===14&&s.codegenNode.arguments.length>0&&s.codegenNode.arguments.push(`-1`),o.push(s);continue}if(s.type===1){let t=s.tagType===1;t&&n.scopes.vSlot++,Fn(s,e,n,!1,i),t&&n.scopes.vSlot--}else if(s.type===11)Fn(s,e,n,s.children.length===1,!0);else if(s.type===9)for(let t=0;te.key===t||e.key.content===t);return n&&n.value}}o.length&&n.transformHoist&&n.transformHoist(a,n,e)}function In(e,t){let{constantCache:n}=t;switch(e.type){case 1:if(e.tagType!==0)return 0;let r=n.get(e);if(r!==void 0)return r;let i=e.codegenNode;if(i.type!==13||i.isBlock&&e.tag!==`svg`&&e.tag!==`foreignObject`&&e.tag!==`math`)return 0;if(i.patchFlag===void 0){let r=3,a=Rn(e,t);if(a===0)return n.set(e,0),0;a1)for(let i=0;in&&(D.childIndex--,D.onNodeRemoved()),D.parent.children.splice(n,1)},onNodeRemoved:se,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){E(e)&&(e=pt(e)),D.hoists.push(e);let t=pt(`_hoisted_${D.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1,n=!1){let r=yt(D.cached.length,e,t,n);return D.cached.push(r),r}};return D.filters=new Set,D}function Vn(e,t){let n=Bn(e,t);Hn(e,n),t.hoistStatic&&cee(e,n),t.ssr||lee(e,n),e.helpers=new Set([...n.helpers.keys()]),e.components=[...n.components],e.directives=[...n.directives],e.imports=n.imports,e.hoists=n.hoists,e.temps=n.temps,e.cached=n.cached,e.transformed=!0,e.filters=[...n.filters]}function lee(e,t){let{helper:n}=t,{children:r}=e;if(r.length===1){let n=Pn(e);if(n&&n.codegenNode){let r=n.codegenNode;r.type===13&&Ot(r,t),e.codegenNode=r}else e.codegenNode=r[0]}else r.length>1&&(e.codegenNode=lt(t,n(Cr),void 0,e.children,64,void 0,void 0,!0,void 0,!1))}function uee(e,t){let n=0,r=()=>{n--};for(;nt===e:t=>e.test(t);return(e,r)=>{if(e.type===1){let{props:i}=e;if(e.tagType===3&&i.some(cn))return;let a=[];for(let o=0;o0,p=!a&&r!==`module`;if(fee(e,n),i(`function ${u?`ssrRender`:`render`}(${(u?[`_ctx`,`_push`,`_parent`,`_attrs`]:[`_ctx`,`_cache`]).join(`, `)}) {`),o(),p&&(i(`with (_ctx) {`),o(),f&&(i(`const { ${d.map(ca).join(`, `)} } = _Vue diff --git a/public/admin/assets/CompetitionListView-C7Ifoool.js b/public/admin/assets/CompetitionListView-Ba7l2pxV.js similarity index 92% rename from public/admin/assets/CompetitionListView-C7Ifoool.js rename to public/admin/assets/CompetitionListView-Ba7l2pxV.js index 463719e..5063943 100644 --- a/public/admin/assets/CompetitionListView-C7Ifoool.js +++ b/public/admin/assets/CompetitionListView-Ba7l2pxV.js @@ -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-6_koQ1g6.js";import{l as g}from"./index-ijh93KpS.js";import{t as _}from"./_plugin-vue_export-helper-S3RvzygF.js";import{a as v}from"./competitions-Onk4QsGa.js";import{t as y}from"./adminCompetition-CbJJ6VFP.js";import{t as b}from"./competitionAdminLabels-BZ8tpy9B.js";var x={class:`page-header`},S={key:0,class:`pager`},C={class:`total`},w=_(d({__name:`CompetitionListView`,setup(d){let _=c([]),w=y(),T=c(!1),E=c(1),D=c(1),O=c(0),k=c(15);async function A(){T.value=!0;try{let e=await v({page:E.value,per_page:k.value});_.value=e.data,D.value=e.meta.last_page,O.value=e.meta.total,k.value=e.meta.per_page}catch(e){_.value=[],g.error(e instanceof Error?e.message:`加载失败`)}finally{T.value=!1}}function j(e){e<1||e>D.value||(E.value=e,A())}function M(e){if(!e)return`—`;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}return o(()=>{A()}),(o,c)=>{let d=s(`el-button`),g=s(`RouterLink`),v=s(`el-table-column`),y=s(`el-tag`),A=s(`el-table`),N=s(`el-pagination`),P=s(`el-card`),F=i(`loading`);return f(),m(`div`,null,[h(`div`,x,[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(A,{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(M(e.signup_open_at??null)),1)]),_:1}),r(v,{label:`报名截止`,"min-width":`160`},{default:p(({row:e})=>[t(u(M(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(w).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,T.value]]),D.value>1?(f(),m(`div`,S,[h(`span`,C,`共 `+u(O.value)+` 条`,1),r(N,{background:``,layout:`prev, pager, next`,"current-page":E.value,"page-size":k.value,total:O.value,onCurrentChange:j},null,8,[`current-page`,`page-size`,`total`])])):e(``,!0)]),_:1})])}}}),[[`__scopeId`,`data-v-bee3a1d5`]]);export{w as default}; \ No newline at end of file +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-6_koQ1g6.js";import{l as g}from"./index-uojebQYd.js";import{t as _}from"./_plugin-vue_export-helper-S3RvzygF.js";import{a as v}from"./competitions-DSjdZQDh.js";import{t as y}from"./adminCompetition-DSwOzZGI.js";import{t as b}from"./competitionAdminLabels-BZ8tpy9B.js";var x={class:`page-header`},S={key:0,class:`pager`},C={class:`total`},w=_(d({__name:`CompetitionListView`,setup(d){let _=c([]),w=y(),T=c(!1),E=c(1),D=c(1),O=c(0),k=c(15);async function A(){T.value=!0;try{let e=await v({page:E.value,per_page:k.value});_.value=e.data,D.value=e.meta.last_page,O.value=e.meta.total,k.value=e.meta.per_page}catch(e){_.value=[],g.error(e instanceof Error?e.message:`加载失败`)}finally{T.value=!1}}function j(e){e<1||e>D.value||(E.value=e,A())}function M(e){if(!e)return`—`;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}return o(()=>{A()}),(o,c)=>{let d=s(`el-button`),g=s(`RouterLink`),v=s(`el-table-column`),y=s(`el-tag`),A=s(`el-table`),N=s(`el-pagination`),P=s(`el-card`),F=i(`loading`);return f(),m(`div`,null,[h(`div`,x,[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(A,{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(M(e.signup_open_at??null)),1)]),_:1}),r(v,{label:`报名截止`,"min-width":`160`},{default:p(({row:e})=>[t(u(M(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(w).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,T.value]]),D.value>1?(f(),m(`div`,S,[h(`span`,C,`共 `+u(O.value)+` 条`,1),r(N,{background:``,layout:`prev, pager, next`,"current-page":E.value,"page-size":k.value,total:O.value,onCurrentChange:j},null,8,[`current-page`,`page-size`,`total`])])):e(``,!0)]),_:1})])}}}),[[`__scopeId`,`data-v-bee3a1d5`]]);export{w as default}; \ No newline at end of file diff --git a/public/admin/assets/LoginView-CwSyG8BF.js b/public/admin/assets/LoginView-BtqOdvUQ.js similarity index 99% rename from public/admin/assets/LoginView-CwSyG8BF.js rename to public/admin/assets/LoginView-BtqOdvUQ.js index 49ac526..559a871 100644 --- a/public/admin/assets/LoginView-CwSyG8BF.js +++ b/public/admin/assets/LoginView-BtqOdvUQ.js @@ -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-6_koQ1g6.js";import{a as ie,m as ae,o as oe,p as se,u as ce}from"./api-COeuB3z6.js";import{o as le,s as m,t as ue}from"./index-ijh93KpS.js";/* empty css */import{i as h,r as g,t as de}from"./competitionBranding-Bz_llsts.js";import{n as _,t as fe}from"./participantContact-0qVpTiM0.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=m(),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,`&`).replace(//g,`>`).replace(/"/g,`"`)}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 se()}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-6_koQ1g6.js";import{a as ie,m as ae,o as oe,p as se,u as ce}from"./api-COeuB3z6.js";import{o as le,s as m,t as ue}from"./index-uojebQYd.js";/* empty css */import{i as h,r as g,t as de}from"./competitionBranding-Bz_llsts.js";import{n as _,t as fe}from"./participantContact-0qVpTiM0.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=m(),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,`&`).replace(//g,`>`).replace(/"/g,`"`)}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 se()}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()}${oe}`;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()}${ie}`;try{let e=ue(),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(ce,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(`String(V.params.slug??``).trim()),U=a(S()),W=a(``),G=s(()=>b(U.value,W.value)),K=s(()=>{if(x(U.value.login.footerCopyright))return U.value.login.footerCopyright;let e=W.value.trim();return e?`版权所有:${e}`:`版权所有`});async function q(){let e=H.value;if(!e){U.value=S(),W.value=``;return}try{let t=await fetch(`${h()}/api/v1/public/competitions/by-slug/${encodeURIComponent(e)}`,{headers:{Accept:`application/json`}});if(!t.ok){U.value=S(),W.value=``;return}let n=await t.json(),r=n.data!=null&&typeof n.data==`object`&&!Array.isArray(n.data)?n.data:n;W.value=String(r.name??``),U.value=C(r.branding_json??null)}catch{U.value=S(),W.value=``}}o(H,()=>{q()},{immediate:!0});function J(e){let t=e.trim().replace(`#`,``);return/^[0-9a-f]{6}$/i.test(t)?`${parseInt(t.slice(0,2),16)}, ${parseInt(t.slice(2,4),16)}, ${parseInt(t.slice(4,6),16)}`:null}function Y(){if(typeof document>`u`)return;let e=U.value.login.themePrimary?.trim()??``,t=x(e)?/^(?:#|rgb|hsl)/i.test(e)?e:`#${e.replace(/^#/,``)}`:B;if(document.body.style.setProperty(`--primary`,t),document.body.style.setProperty(`--bs-primary`,t),t.startsWith(`#`)){document.body.style.setProperty(`--primary-soft`,`${t}14`);let e=J(t);e&&document.body.style.setProperty(`--bs-primary-rgb`,e)}else document.body.style.removeProperty(`--primary-soft`),document.body.style.removeProperty(`--bs-primary-rgb`)}o(U,()=>Y(),{deep:!0,immediate:!0});let X=a(``),Z=s(()=>X.value||`用户`);async function Q(){let e=localStorage.getItem(g),t=h();if(e)try{let n=await fetch(`${t}/api/me`,{headers:{Authorization:`Bearer ${e}`,Accept:`application/json`}});if(!n.ok)return;let r=await n.json();X.value=r.name||r.mobile||``}catch{}}function $(){localStorage.removeItem(g),localStorage.removeItem(`cxxfds_user`);let e=H.value;e?y.push({name:`participant-login`,params:{slug:e}}):y.push(`/c`)}return r(()=>{document.body.classList.add(`prototype-page`,`user-mobile-no-menu`),Q()}),t(()=>{document.body.classList.remove(`prototype-page`,`user-mobile-no-menu`),document.body.style.removeProperty(`--primary`),document.body.style.removeProperty(`--primary-soft`),document.body.style.removeProperty(`--bs-primary`),document.body.style.removeProperty(`--bs-primary-rgb`)}),(t,r)=>{let a=i(`router-link`),o=i(`router-view`);return d(),p(`div`,w,[m(`header`,T,[m(`div`,E,[m(`span`,D,c(G.value),1),m(`div`,O,[m(`button`,k,[r[0]||=m(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`},[m(`circle`,{cx:`12`,cy:`12`,r:`9.5`,stroke:`currentColor`,"stroke-width":`2`}),m(`circle`,{cx:`12`,cy:`9`,r:`3.2`,fill:`currentColor`}),m(`path`,{d:`M6.8 18.2c1.1-2.4 3-3.6 5.2-3.6s4.1 1.2 5.2 3.6`,fill:`currentColor`})],-1),m(`span`,A,c(Z.value),1)]),m(`ul`,j,[m(`li`,null,[m(`a`,{class:`dropdown-item text-danger`,href:`javascript:void(0)`,onClick:u($,[`prevent`])},[...r[1]||=[m(`span`,{class:`menu-icon`},`↪`,-1),e(`退出登录 `,-1)]])])])])])]),m(`div`,M,[m(`div`,N,[m(`aside`,P,[m(`div`,F,[m(`div`,I,[m(`nav`,L,[n(a,{class:`nav-link text-start`,"active-class":`active`,to:{name:`participant-apply`,params:{slug:H.value}}},{default:f(()=>[...r[2]||=[e(` 赛事报名 `,-1)]]),_:1},8,[`to`])])])])]),m(`main`,R,[n(o)])])]),m(`footer`,z,c(K.value),1)])}}}),[[`__scopeId`,`data-v-87706cd0`]]);export{V as default}; \ No newline at end of file +import{D as e,G as t,O as n,W as r,Z as i,_t as a,at as o,b as s,in as c,k as l,m as u,q as d,st as f,w as p,x as m}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{p as h,u as g}from"./api-COeuB3z6.js";import{o as _,s as v}from"./index-uojebQYd.js";import{t as y}from"./_plugin-vue_export-helper-S3RvzygF.js";/* empty css *//* empty css */import{a as b,i as x,r as S,t as C}from"./competitionBranding-Bz_llsts.js";var w={class:`participant-layout`},T={class:`navbar navbar-expand-lg layout-header`},E={class:`container-fluid px-3 px-lg-4`},D={class:`navbar-brand mb-0 prototype-title`},O={class:`dropdown`},k={class:`header-user dropdown-toggle`,type:`button`,"data-bs-toggle":`dropdown`,"aria-expanded":`false`},A={class:`header-user-name`},j={class:`dropdown-menu dropdown-menu-end header-user-menu`},M={class:`container-fluid px-3 px-lg-4 py-3 layout-main`},N={class:`row layout-main-row g-3`},P={class:`col-12 col-md-2 col-lg-2 layout-sider`},F={class:`card h-100`},I={class:`card-body`},L={class:`nav flex-column gap-2`},R={class:`col-12 col-md-10 col-lg-10 participant-main-col`},z={id:`layoutFooter`,class:`border-top bg-white text-center py-2 small text-secondary prototype-subtitle`},B=`#052d62`,V=y(l({__name:`MainLayout`,setup(l){let y=v(),V=_(),H=s(()=>String(V.params.slug??``).trim()),U=a(S()),W=a(``),G=s(()=>b(U.value,W.value)),K=s(()=>{if(x(U.value.login.footerCopyright))return U.value.login.footerCopyright;let e=W.value.trim();return e?`版权所有:${e}`:`版权所有`});async function q(){let e=H.value;if(!e){U.value=S(),W.value=``;return}try{let t=await fetch(`${h()}/api/v1/public/competitions/by-slug/${encodeURIComponent(e)}`,{headers:{Accept:`application/json`}});if(!t.ok){U.value=S(),W.value=``;return}let n=await t.json(),r=n.data!=null&&typeof n.data==`object`&&!Array.isArray(n.data)?n.data:n;W.value=String(r.name??``),U.value=C(r.branding_json??null)}catch{U.value=S(),W.value=``}}o(H,()=>{q()},{immediate:!0});function J(e){let t=e.trim().replace(`#`,``);return/^[0-9a-f]{6}$/i.test(t)?`${parseInt(t.slice(0,2),16)}, ${parseInt(t.slice(2,4),16)}, ${parseInt(t.slice(4,6),16)}`:null}function Y(){if(typeof document>`u`)return;let e=U.value.login.themePrimary?.trim()??``,t=x(e)?/^(?:#|rgb|hsl)/i.test(e)?e:`#${e.replace(/^#/,``)}`:B;if(document.body.style.setProperty(`--primary`,t),document.body.style.setProperty(`--bs-primary`,t),t.startsWith(`#`)){document.body.style.setProperty(`--primary-soft`,`${t}14`);let e=J(t);e&&document.body.style.setProperty(`--bs-primary-rgb`,e)}else document.body.style.removeProperty(`--primary-soft`),document.body.style.removeProperty(`--bs-primary-rgb`)}o(U,()=>Y(),{deep:!0,immediate:!0});let X=a(``),Z=s(()=>X.value||`用户`);async function Q(){let e=localStorage.getItem(g),t=h();if(e)try{let n=await fetch(`${t}/api/me`,{headers:{Authorization:`Bearer ${e}`,Accept:`application/json`}});if(!n.ok)return;let r=await n.json();X.value=r.name||r.mobile||``}catch{}}function $(){localStorage.removeItem(g),localStorage.removeItem(`cxxfds_user`);let e=H.value;e?y.push({name:`participant-login`,params:{slug:e}}):y.push(`/c`)}return r(()=>{document.body.classList.add(`prototype-page`,`user-mobile-no-menu`),Q()}),t(()=>{document.body.classList.remove(`prototype-page`,`user-mobile-no-menu`),document.body.style.removeProperty(`--primary`),document.body.style.removeProperty(`--primary-soft`),document.body.style.removeProperty(`--bs-primary`),document.body.style.removeProperty(`--bs-primary-rgb`)}),(t,r)=>{let a=i(`router-link`),o=i(`router-view`);return d(),p(`div`,w,[m(`header`,T,[m(`div`,E,[m(`span`,D,c(G.value),1),m(`div`,O,[m(`button`,k,[r[0]||=m(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`},[m(`circle`,{cx:`12`,cy:`12`,r:`9.5`,stroke:`currentColor`,"stroke-width":`2`}),m(`circle`,{cx:`12`,cy:`9`,r:`3.2`,fill:`currentColor`}),m(`path`,{d:`M6.8 18.2c1.1-2.4 3-3.6 5.2-3.6s4.1 1.2 5.2 3.6`,fill:`currentColor`})],-1),m(`span`,A,c(Z.value),1)]),m(`ul`,j,[m(`li`,null,[m(`a`,{class:`dropdown-item text-danger`,href:`javascript:void(0)`,onClick:u($,[`prevent`])},[...r[1]||=[m(`span`,{class:`menu-icon`},`↪`,-1),e(`退出登录 `,-1)]])])])])])]),m(`div`,M,[m(`div`,N,[m(`aside`,P,[m(`div`,F,[m(`div`,I,[m(`nav`,L,[n(a,{class:`nav-link text-start`,"active-class":`active`,to:{name:`participant-apply`,params:{slug:H.value}}},{default:f(()=>[...r[2]||=[e(` 赛事报名 `,-1)]]),_:1},8,[`to`])])])])]),m(`main`,R,[n(o)])])]),m(`footer`,z,c(K.value),1)])}}}),[[`__scopeId`,`data-v-87706cd0`]]);export{V as default}; \ No newline at end of file diff --git a/public/admin/assets/ParticipantLandingView-CP4GSdBL.js b/public/admin/assets/ParticipantLandingView-4uYKthyb.js similarity index 93% rename from public/admin/assets/ParticipantLandingView-CP4GSdBL.js rename to public/admin/assets/ParticipantLandingView-4uYKthyb.js index 31264d5..1965412 100644 --- a/public/admin/assets/ParticipantLandingView-CP4GSdBL.js +++ b/public/admin/assets/ParticipantLandingView-4uYKthyb.js @@ -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-6_koQ1g6.js";import{s as d}from"./index-ijh93KpS.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}; \ No newline at end of file +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-6_koQ1g6.js";import{s as d}from"./index-uojebQYd.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}; \ No newline at end of file diff --git a/public/admin/assets/PublicSourceChannelManageView-DQDJdNxd.js b/public/admin/assets/PublicSourceChannelManageView-CJW3ArE5.js similarity index 99% rename from public/admin/assets/PublicSourceChannelManageView-DQDJdNxd.js rename to public/admin/assets/PublicSourceChannelManageView-CJW3ArE5.js index 75a15b0..337c1aa 100644 --- a/public/admin/assets/PublicSourceChannelManageView-DQDJdNxd.js +++ b/public/admin/assets/PublicSourceChannelManageView-CJW3ArE5.js @@ -1,4 +1,4 @@ -import{C as e,D as t,Et as n,O as r,Q as i,R as a,S as o,W as s,Z as c,_t as l,b as u,ct as d,ht as f,in as p,k as m,m as h,on as g,q as _,st as v,w as y,x as b}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{c as x,d as S,f as C,h as w,i as T,l as E,m as D,p as ee,u as O}from"./index-ijh93KpS.js";import{t as k}from"./_plugin-vue_export-helper-S3RvzygF.js";var A=g(((e,t)=>{t.exports=function(){return typeof Promise==`function`&&Promise.prototype&&Promise.prototype.then}})),j=g((e=>{var t,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(e){if(!e)throw Error(`"version" cannot be null or undefined`);if(e<1||e>40)throw Error(`"version" should be in range from 1 to 40`);return e*4+17},e.getSymbolTotalCodewords=function(e){return n[e]},e.getBCHDigit=function(e){let t=0;for(;e!==0;)t++,e>>>=1;return t},e.setToSJISFunction=function(e){if(typeof e!=`function`)throw Error(`"toSJISFunc" is not a valid function.`);t=e},e.isKanjiModeEnabled=function(){return t!==void 0},e.toSJIS=function(e){return t(e)}})),M=g((e=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`l`:case`low`:return e.L;case`m`:case`medium`:return e.M;case`q`:case`quartile`:return e.Q;case`h`:case`high`:return e.H;default:throw Error(`Unknown EC Level: `+t)}}e.isValid=function(e){return e&&e.bit!==void 0&&e.bit>=0&&e.bit<4},e.from=function(n,r){if(e.isValid(n))return n;try{return t(n)}catch{return r}}})),N=g(((e,t)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(e){let t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(let n=0;n>>t-n-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},t.exports=n})),P=g(((e,t)=>{function n(e){if(!e||e<1)throw Error(`BitMatrix size must be defined and greater than 0`);this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}n.prototype.set=function(e,t,n,r){let i=e*this.size+t;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(e,t){return this.data[e*this.size+t]},n.prototype.xor=function(e,t,n){this.data[e*this.size+t]^=n},n.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]},t.exports=n})),F=g((e=>{var t=j().getSymbolSize;e.getRowColCoords=function(e){if(e===1)return[];let n=Math.floor(e/7)+2,r=t(e),i=r===145?26:Math.ceil((r-13)/(2*n-2))*2,a=[r-7];for(let e=1;e{var t=j().getSymbolSize,n=7;e.getPositions=function(e){let r=t(e);return[[0,0],[r-n,0],[0,r-n]]}})),L=g((e=>{e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var t={N1:3,N2:3,N3:40,N4:10};e.isValid=function(e){return e!=null&&e!==``&&!isNaN(e)&&e>=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){let n=e.size,r=0,i=0,a=0,o=null,s=null;for(let c=0;c=5&&(r+=t.N1+(i-5)),o=n,i=1),n=e.get(l,c),n===s?a++:(a>=5&&(r+=t.N1+(a-5)),s=n,a=1)}i>=5&&(r+=t.N1+(i-5)),a>=5&&(r+=t.N1+(a-5))}return r},e.getPenaltyN2=function(e){let n=e.size,r=0;for(let t=0;t=10&&(i===1488||i===93)&&r++,a=a<<1&2047|e.get(o,t),o>=10&&(a===1488||a===93)&&r++}return r*t.N3},e.getPenaltyN4=function(e){let n=0,r=e.data.length;for(let t=0;t{var t=M(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(e,r){switch(r){case t.L:return n[(e-1)*4+0];case t.M:return n[(e-1)*4+1];case t.Q:return n[(e-1)*4+2];case t.H:return n[(e-1)*4+3];default:return}},e.getTotalCodewordsCount=function(e,n){switch(n){case t.L:return r[(e-1)*4+0];case t.M:return r[(e-1)*4+1];case t.Q:return r[(e-1)*4+2];case t.H:return r[(e-1)*4+3];default:return}}})),z=g((e=>{var t=new Uint8Array(512),n=new Uint8Array(256);(function(){let e=1;for(let r=0;r<255;r++)t[r]=e,n[e]=r,e<<=1,e&256&&(e^=285);for(let e=255;e<512;e++)t[e]=t[e-255]})(),e.log=function(e){if(e<1)throw Error(`log(`+e+`)`);return n[e]},e.exp=function(e){return t[e]},e.mul=function(e,r){return e===0||r===0?0:t[n[e]+n[r]]}})),B=g((e=>{var t=z();e.mul=function(e,n){let r=new Uint8Array(e.length+n.length-1);for(let i=0;i=0;){let e=r[0];for(let i=0;i{var n=B();function r(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(e){this.degree=e,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(e){if(!this.genPoly)throw Error(`Encoder not initialized`);let t=new Uint8Array(e.length+this.degree);t.set(e);let r=n.mod(t,this.genPoly),i=this.degree-r.length;if(i>0){let e=new Uint8Array(this.degree);return e.set(r,i),e}return r},t.exports=r})),H=g((e=>{e.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}})),U=g((e=>{var t=`[0-9]+`,n=`[A-Z $%*+\\-./:]+`,r=`(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+`;r=r.replace(/u/g,`\\u`);var i=`(?:(?![A-Z0-9 $%*+\\-./:]|`+r+`)(?:.|[\r +import{C as e,D as t,Et as n,O as r,Q as i,R as a,S as o,W as s,Z as c,_t as l,b as u,ct as d,ht as f,in as p,k as m,m as h,on as g,q as _,st as v,w as y,x as b}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{c as x,d as S,f as C,h as w,i as T,l as E,m as D,p as ee,u as O}from"./index-uojebQYd.js";import{t as k}from"./_plugin-vue_export-helper-S3RvzygF.js";var A=g(((e,t)=>{t.exports=function(){return typeof Promise==`function`&&Promise.prototype&&Promise.prototype.then}})),j=g((e=>{var t,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(e){if(!e)throw Error(`"version" cannot be null or undefined`);if(e<1||e>40)throw Error(`"version" should be in range from 1 to 40`);return e*4+17},e.getSymbolTotalCodewords=function(e){return n[e]},e.getBCHDigit=function(e){let t=0;for(;e!==0;)t++,e>>>=1;return t},e.setToSJISFunction=function(e){if(typeof e!=`function`)throw Error(`"toSJISFunc" is not a valid function.`);t=e},e.isKanjiModeEnabled=function(){return t!==void 0},e.toSJIS=function(e){return t(e)}})),M=g((e=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`l`:case`low`:return e.L;case`m`:case`medium`:return e.M;case`q`:case`quartile`:return e.Q;case`h`:case`high`:return e.H;default:throw Error(`Unknown EC Level: `+t)}}e.isValid=function(e){return e&&e.bit!==void 0&&e.bit>=0&&e.bit<4},e.from=function(n,r){if(e.isValid(n))return n;try{return t(n)}catch{return r}}})),N=g(((e,t)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(e){let t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(let n=0;n>>t-n-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},t.exports=n})),P=g(((e,t)=>{function n(e){if(!e||e<1)throw Error(`BitMatrix size must be defined and greater than 0`);this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}n.prototype.set=function(e,t,n,r){let i=e*this.size+t;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(e,t){return this.data[e*this.size+t]},n.prototype.xor=function(e,t,n){this.data[e*this.size+t]^=n},n.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]},t.exports=n})),F=g((e=>{var t=j().getSymbolSize;e.getRowColCoords=function(e){if(e===1)return[];let n=Math.floor(e/7)+2,r=t(e),i=r===145?26:Math.ceil((r-13)/(2*n-2))*2,a=[r-7];for(let e=1;e{var t=j().getSymbolSize,n=7;e.getPositions=function(e){let r=t(e);return[[0,0],[r-n,0],[0,r-n]]}})),L=g((e=>{e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var t={N1:3,N2:3,N3:40,N4:10};e.isValid=function(e){return e!=null&&e!==``&&!isNaN(e)&&e>=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){let n=e.size,r=0,i=0,a=0,o=null,s=null;for(let c=0;c=5&&(r+=t.N1+(i-5)),o=n,i=1),n=e.get(l,c),n===s?a++:(a>=5&&(r+=t.N1+(a-5)),s=n,a=1)}i>=5&&(r+=t.N1+(i-5)),a>=5&&(r+=t.N1+(a-5))}return r},e.getPenaltyN2=function(e){let n=e.size,r=0;for(let t=0;t=10&&(i===1488||i===93)&&r++,a=a<<1&2047|e.get(o,t),o>=10&&(a===1488||a===93)&&r++}return r*t.N3},e.getPenaltyN4=function(e){let n=0,r=e.data.length;for(let t=0;t{var t=M(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(e,r){switch(r){case t.L:return n[(e-1)*4+0];case t.M:return n[(e-1)*4+1];case t.Q:return n[(e-1)*4+2];case t.H:return n[(e-1)*4+3];default:return}},e.getTotalCodewordsCount=function(e,n){switch(n){case t.L:return r[(e-1)*4+0];case t.M:return r[(e-1)*4+1];case t.Q:return r[(e-1)*4+2];case t.H:return r[(e-1)*4+3];default:return}}})),z=g((e=>{var t=new Uint8Array(512),n=new Uint8Array(256);(function(){let e=1;for(let r=0;r<255;r++)t[r]=e,n[e]=r,e<<=1,e&256&&(e^=285);for(let e=255;e<512;e++)t[e]=t[e-255]})(),e.log=function(e){if(e<1)throw Error(`log(`+e+`)`);return n[e]},e.exp=function(e){return t[e]},e.mul=function(e,r){return e===0||r===0?0:t[n[e]+n[r]]}})),B=g((e=>{var t=z();e.mul=function(e,n){let r=new Uint8Array(e.length+n.length-1);for(let i=0;i=0;){let e=r[0];for(let i=0;i{var n=B();function r(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(e){this.degree=e,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(e){if(!this.genPoly)throw Error(`Encoder not initialized`);let t=new Uint8Array(e.length+this.degree);t.set(e);let r=n.mod(t,this.genPoly),i=this.degree-r.length;if(i>0){let e=new Uint8Array(this.degree);return e.set(r,i),e}return r},t.exports=r})),H=g((e=>{e.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}})),U=g((e=>{var t=`[0-9]+`,n=`[A-Z $%*+\\-./:]+`,r=`(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+`;r=r.replace(/u/g,`\\u`);var i=`(?:(?![A-Z0-9 $%*+\\-./:]|`+r+`)(?:.|[\r ]))+`;e.KANJI=new RegExp(r,`g`),e.BYTE_KANJI=RegExp(`[^A-Z0-9 $%*+\\-./:]+`,`g`),e.BYTE=new RegExp(i,`g`),e.NUMERIC=new RegExp(t,`g`),e.ALPHANUMERIC=new RegExp(n,`g`);var a=RegExp(`^`+r+`$`),o=RegExp(`^`+t+`$`),s=RegExp(`^[A-Z0-9 $%*+\\-./:]+$`);e.testKanji=function(e){return a.test(e)},e.testNumeric=function(e){return o.test(e)},e.testAlphanumeric=function(e){return s.test(e)}})),W=g((e=>{var t=H(),n=U();e.NUMERIC={id:`Numeric`,bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:`Alphanumeric`,bit:2,ccBits:[9,11,13]},e.BYTE={id:`Byte`,bit:4,ccBits:[8,16,16]},e.KANJI={id:`Kanji`,bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(e,n){if(!e.ccBits)throw Error(`Invalid mode: `+e);if(!t.isValid(n))throw Error(`Invalid version: `+n);return n>=1&&n<10?e.ccBits[0]:n<27?e.ccBits[1]:e.ccBits[2]},e.getBestModeForData=function(t){return n.testNumeric(t)?e.NUMERIC:n.testAlphanumeric(t)?e.ALPHANUMERIC:n.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(e){if(e&&e.id)return e.id;throw Error(`Invalid mode`)},e.isValid=function(e){return e&&e.bit&&e.ccBits};function r(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`numeric`:return e.NUMERIC;case`alphanumeric`:return e.ALPHANUMERIC;case`kanji`:return e.KANJI;case`byte`:return e.BYTE;default:throw Error(`Unknown mode: `+t)}}e.from=function(t,n){if(e.isValid(t))return t;try{return r(t)}catch{return n}}})),G=g((e=>{var t=j(),n=R(),r=M(),i=W(),a=H(),o=7973,s=t.getBCHDigit(o);function c(t,n,r){for(let i=1;i<=40;i++)if(n<=e.getCapacity(i,r,t))return i}function l(e,t){return i.getCharCountIndicator(e,t)+4}function u(e,t){let n=0;return e.forEach(function(e){let r=l(e.mode,t);n+=r+e.getBitsLength()}),n}function d(t,n){for(let r=1;r<=40;r++)if(u(t,r)<=e.getCapacity(r,n,i.MIXED))return r}e.from=function(e,t){return a.isValid(e)?parseInt(e,10):t},e.getCapacity=function(e,r,o){if(!a.isValid(e))throw Error(`Invalid QR Code version`);o===void 0&&(o=i.BYTE);let s=(t.getSymbolTotalCodewords(e)-n.getTotalCodewordsCount(e,r))*8;if(o===i.MIXED)return s;let c=s-l(o,e);switch(o){case i.NUMERIC:return Math.floor(c/10*3);case i.ALPHANUMERIC:return Math.floor(c/11*2);case i.KANJI:return Math.floor(c/13);case i.BYTE:default:return Math.floor(c/8)}},e.getBestVersionForData=function(e,t){let n,i=r.from(t,r.M);if(Array.isArray(e)){if(e.length>1)return d(e,i);if(e.length===0)return 1;n=e[0]}else n=e;return c(n.mode,n.getLength(),i)},e.getEncodedBits=function(e){if(!a.isValid(e)||e<7)throw Error(`Invalid QR Code version`);let n=e<<12;for(;t.getBCHDigit(n)-s>=0;)n^=o<{var t=j(),n=1335,r=21522,i=t.getBCHDigit(n);e.getEncodedBits=function(e,a){let o=e.bit<<3|a,s=o<<10;for(;t.getBCHDigit(s)-i>=0;)s^=n<{var n=W();function r(e){this.mode=n.NUMERIC,this.data=e.toString()}r.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){let t,n,r;for(t=0;t+3<=this.data.length;t+=3)n=this.data.substr(t,3),r=parseInt(n,10),e.put(r,10);let i=this.data.length-t;i>0&&(n=this.data.substr(t),r=parseInt(n,10),e.put(r,i*3+1))},t.exports=r})),J=g(((e,t)=>{var n=W(),r=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`.split(``);function i(e){this.mode=n.ALPHANUMERIC,this.data=e}i.getBitsLength=function(e){return 11*Math.floor(e/2)+e%2*6},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t;for(t=0;t+2<=this.data.length;t+=2){let n=r.indexOf(this.data[t])*45;n+=r.indexOf(this.data[t+1]),e.put(n,11)}this.data.length%2&&e.put(r.indexOf(this.data[t]),6)},t.exports=i})),Y=g(((e,t)=>{var n=W();function r(e){this.mode=n.BYTE,typeof e==`string`?this.data=new TextEncoder().encode(e):this.data=new Uint8Array(e)}r.getBitsLength=function(e){return e*8},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){for(let t=0,n=this.data.length;t{var n=W(),r=j();function i(e){this.mode=n.KANJI,this.data=e}i.getBitsLength=function(e){return e*13},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t;for(t=0;t=33088&&n<=40956)n-=33088;else if(n>=57408&&n<=60351)n-=49472;else throw Error(`Invalid SJIS character: `+this.data[t]+` Make sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),e.put(n,13)}},t.exports=i})),te=g(((e,t)=>{var n={single_source_shortest_paths:function(e,t,r){var i={},a={};a[t]=0;var o=n.PriorityQueue.make();o.push(t,0);for(var s,c,l,u,d,f,p,m,h;!o.empty();)for(l in s=o.pop(),c=s.value,u=s.cost,d=e[c]||{},d)d.hasOwnProperty(l)&&(f=d[l],p=u+f,m=a[l],h=a[l]===void 0,(h||m>p)&&(a[l]=p,o.push(l,p),i[l]=c));if(r!==void 0&&a[r]===void 0){var g=[`Could not find a path from `,t,` to `,r,`.`].join(``);throw Error(g)}return i},extract_shortest_path_from_predecessor_list:function(e,t){for(var n=[],r=t;r;)n.push(r),e[r],r=e[r];return n.reverse(),n},find_path:function(e,t,r){var i=n.single_source_shortest_paths(e,t,r);return n.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(e){var t=n.PriorityQueue,r={},i;for(i in e||={},t)t.hasOwnProperty(i)&&(r[i]=t[i]);return r.queue=[],r.sorter=e.sorter||t.default_sorter,r},default_sorter:function(e,t){return e.cost-t.cost},push:function(e,t){var n={value:e,cost:t};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};t!==void 0&&(t.exports=n)})),ne=g((e=>{var t=W(),n=q(),r=J(),i=Y(),a=X(),o=U(),s=j(),c=te();function l(e){return unescape(encodeURIComponent(e)).length}function u(e,t,n){let r=[],i;for(;(i=e.exec(n))!==null;)r.push({data:i[0],index:i.index,mode:t,length:i[0].length});return r}function d(e){let n=u(o.NUMERIC,t.NUMERIC,e),r=u(o.ALPHANUMERIC,t.ALPHANUMERIC,e),i,a;return s.isKanjiModeEnabled()?(i=u(o.BYTE,t.BYTE,e),a=u(o.KANJI,t.KANJI,e)):(i=u(o.BYTE_KANJI,t.BYTE,e),a=[]),n.concat(r,i,a).sort(function(e,t){return e.index-t.index}).map(function(e){return{data:e.data,mode:e.mode,length:e.length}})}function f(e,o){switch(o){case t.NUMERIC:return n.getBitsLength(e);case t.ALPHANUMERIC:return r.getBitsLength(e);case t.KANJI:return a.getBitsLength(e);case t.BYTE:return i.getBitsLength(e)}}function p(e){return e.reduce(function(e,t){let n=e.length-1>=0?e[e.length-1]:null;return n&&n.mode===t.mode?(e[e.length-1].data+=t.data,e):(e.push(t),e)},[])}function m(e){let n=[];for(let r=0;r{var t=j(),n=M(),r=N(),i=P(),a=F(),o=I(),s=L(),c=R(),l=V(),u=G(),d=K(),f=W(),p=ne();function m(e,t){let n=e.size,r=o.getPositions(t);for(let t=0;t=0&&t<=6&&(r===0||r===6)||r>=0&&r<=6&&(t===0||t===6)||t>=2&&t<=4&&r>=2&&r<=4?e.set(i+t,a+r,!0,!0):e.set(i+t,a+r,!1,!0))}}function h(e){let t=e.size;for(let n=8;n>t&1)==1,e.set(i,a,o,!0),e.set(a,i,o,!0)}function v(e,t,n){let r=e.size,i=d.getEncodedBits(t,n),a,o;for(a=0;a<15;a++)o=(i>>a&1)==1,a<6?e.set(a,8,o,!0):a<8?e.set(a+1,8,o,!0):e.set(r-15+a,8,o,!0),a<8?e.set(8,r-a-1,o,!0):a<9?e.set(8,15-a-1+1,o,!0):e.set(8,15-a-1,o,!0);e.set(r-8,8,1,!0)}function y(e,t){let n=e.size,r=-1,i=n-1,a=7,o=0;for(let s=n-1;s>0;s-=2)for(s===6&&s--;;){for(let n=0;n<2;n++)if(!e.isReserved(i,s-n)){let r=!1;o>>a&1)==1),e.set(i,s-n,r),a--,a===-1&&(o++,a=7)}if(i+=r,i<0||n<=i){i-=r,r=-r;break}}}function b(e,n,i){let a=new r;i.forEach(function(t){a.put(t.mode.bit,4),a.put(t.getLength(),f.getCharCountIndicator(t.mode,e)),t.write(a)});let o=(t.getSymbolTotalCodewords(e)-c.getTotalCodewordsCount(e,n))*8;for(a.getLengthInBits()+4<=o&&a.put(0,4);a.getLengthInBits()%8!=0;)a.putBit(0);let s=(o-a.getLengthInBits())/8;for(let e=0;e(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}; \ No newline at end of file +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-6_koQ1g6.js";import{_ as f,l as p}from"./index-uojebQYd.js";import{t as m}from"./_plugin-vue_export-helper-S3RvzygF.js";import{t as h}from"./adminCompetition-DSwOzZGI.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}; \ No newline at end of file diff --git a/public/admin/assets/ReviewerApplicationDetailView-CmJlyfLp.js b/public/admin/assets/ReviewerApplicationDetailView-De8sw5Ya.js similarity index 99% rename from public/admin/assets/ReviewerApplicationDetailView-CmJlyfLp.js rename to public/admin/assets/ReviewerApplicationDetailView-De8sw5Ya.js index fdfe8cb..0026099 100644 --- a/public/admin/assets/ReviewerApplicationDetailView-CmJlyfLp.js +++ b/public/admin/assets/ReviewerApplicationDetailView-De8sw5Ya.js @@ -1 +1 @@ -import{$t as e,C as t,D as n,P as r,W as i,Y as a,_t as o,at as s,b as c,ct as l,d as u,g as d,in as f,k as ee,m as p,q as m,w as h,x as g}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{S as te,b as ne,x as re,y as _}from"./api-COeuB3z6.js";import{l as v,o as ie,s as ae,y as oe}from"./index-ijh93KpS.js";import{t as y}from"./_plugin-vue_export-helper-S3RvzygF.js";var se={class:`container-fluid p-3 p-md-4 reviewer-detail-inner d-flex flex-column flex-grow-1`},ce={class:`d-flex justify-content-between align-items-center flex-wrap gap-2 mb-3`},le={class:`d-flex align-items-center gap-2 flex-wrap`},ue={key:0,class:`alert alert-warning py-2 small`,role:`alert`},de={key:1,class:`small text-secondary`},fe={key:2,class:`card mb-0 border-0 shadow-sm flex-grow-1 d-flex flex-column`},pe={class:`card-body d-flex flex-column flex-grow-1`},me={class:`row g-3`},he={class:`col-md-4`},ge=[`value`],b={class:`col-md-4`},x=[`value`],S={class:`col-md-4`},C=[`value`],w={class:`col-md-4`},T=[`value`],E={class:`col-md-4`},D=[`value`],O={class:`col-md-4`},k=[`value`],A={class:`col-md-4`},j=[`value`],M={class:`col-md-4`},N=[`value`],P={class:`col-md-4`},F=[`value`],I={class:`col-md-4`},L=[`value`],_e={class:`col-md-4`},ve=[`value`],ye={class:`col-md-4`},be=[`value`],xe={key:0,class:`col-md-4`},Se=[`value`],Ce={class:`col-12`},we=[`value`],Te={class:`col-12`},Ee={key:0,class:`form-control-plaintext border rounded px-3 py-2 mb-0 bg-light small text-secondary`},De={key:1,class:`form-control-plaintext border rounded px-3 py-2 mb-0 bg-light small text-secondary`},Oe={key:1,class:`col-12`},ke={class:`list-unstyled mb-0 border rounded px-3 py-2 bg-light small`},Ae=[`onClick`],je={class:`col-12`},Me={class:`form-control-plaintext border rounded px-3 py-2 mb-0 bg-light small text-secondary`},Ne={class:`text-secondary ms-2`},Pe={class:`col-12 mt-auto pt-3 border-top d-flex flex-wrap gap-2 align-items-center`},Fe={type:`button`,class:`btn btn-primary px-4`,style:{"background-color":`var(--primary, #b40010)`,"border-color":`var(--primary, #b40010)`},"data-bs-toggle":`modal`,"data-bs-target":`#reviewerScoreModal`},Ie={key:0,class:`small text-secondary`},Le={id:`reviewerPledgeModal`,class:`modal fade`,tabindex:`-1`,"aria-labelledby":`reviewerPledgeDocHeading`,"aria-hidden":`true`},Re={class:`modal-dialog modal-dialog-centered modal-dialog-scrollable reviewer-detail-modal reviewer-detail-modal--pledge`},ze={class:`modal-content promise-sign-sheet`},Be={class:`modal-body pt-2`},Ve={key:0,class:`promise-doc-paper`},He={id:`reviewerPledgeDocHeading`,class:`promise-doc-heading text-center`},R={class:`promise-doc-scroll`},Ue=[`innerHTML`],We={key:1,class:`promise-doc-body promise-doc-body--rich`},Ge={key:0,class:`promise-doc-signblock`},Ke={class:`reviewer-pledge-sig-row`},qe=[`src`],Je={key:1,class:`small text-secondary`},Ye={class:`promise-doc-daterow`},Xe={class:`promise-doc-dateline`},Ze={id:`reviewerScoreModal`,class:`modal fade`,tabindex:`-1`,"aria-labelledby":`reviewerScoreModalLabel`,"aria-hidden":`true`},Qe={class:`modal-dialog modal-dialog-centered modal-dialog-scrollable reviewer-detail-modal reviewer-detail-modal--score`},$e={class:`modal-content`},et={class:`modal-body`},tt={key:0,class:`small text-secondary mb-3`},nt={class:`form-label`},rt={key:0,class:`text-danger`},it=[`onUpdate:modelValue`],at=[`onUpdate:modelValue`],ot=[`onUpdate:modelValue`],st={class:`modal-footer flex-wrap gap-2`},ct=[`disabled`],z=y(ee({__name:`ReviewerApplicationDetailView`,setup(ee){let y=ie(),z=ae(),B=c(()=>String(y.params.slug??``).trim()),V=c(()=>String(y.params.id??``).trim()),lt=r(`reviewerCompetitionName`,o(``)),ut=c(()=>{let e=lt.value.trim();return e?`${e} 赛事承诺书`:`赛事承诺书`});function dt(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 H=o(null),U=o(!1),W=o(``),G=c(()=>dt(H.value?.promise_signed_at)),K=o({}),q=o(!1);function J(){let e=H.value;if(!e?.review_schema?.schema_json?.length){K.value={};return}let t=e.my_review_score?.payload_json??{},n={};for(let r of e.review_schema.schema_json){let e=t[r.key];r.type===`number`?typeof e==`number`&&Number.isFinite(e)?n[r.key]=String(e):typeof e==`string`&&e.trim()!==``?n[r.key]=e.trim():n[r.key]=``:n[r.key]=typeof e==`string`?e:e==null?``:String(e)}K.value=n}s(H,()=>J(),{deep:!0});function ft(e){return e.replace(/\.?0+$/,``)}let pt=c(()=>{let e=H.value;return e?`项目编号:${e.project_code} · ${e.score_display}`:``}),Y=c(()=>H.value?.files.find(e=>e.kind===`plan`)??null),X=c(()=>H.value?.files.filter(e=>e.kind===`supporting`)??[]),Z=c(()=>{let e=H.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}`});async function Q(){let e=V.value,t=B.value,{token:n}=_();if(!/^\d+$/.test(e)||!t||!n){W.value=`参数无效或未登录`,H.value=null;return}U.value=!0,W.value=``;try{let r=ne(parseInt(e,10),t),i=await fetch(r,{headers:{Authorization:`Bearer ${n}`,Accept:`application/json`}});if(!i.ok){let e=await i.json().catch(()=>({}));W.value=(typeof e==`object`&&e&&`message`in e?String(e.message??``):``)||`加载失败(${i.status})`,H.value=null;return}H.value=(await i.json()).data??null}catch{W.value=`网络错误`,H.value=null}finally{U.value=!1}}s([V,B],()=>void Q()),i(()=>void Q());function mt(){let e=B.value;e?z.push({name:`reviewer-projects`,params:{slug:e}}):z.push(`/c`)}async function $(e){let t=V.value,n=B.value,{token:r}=_();if(!/^\d+$/.test(t)||!n||!r){v.warning(`未登录或参数无效`);return}let i=re(parseInt(t,10),e.id,n);try{let t=await fetch(i,{headers:{Authorization:`Bearer ${r}`,Accept:`*/*`}});if(!t.ok){v.error(`下载失败`);return}let n=await t.blob(),a=URL.createObjectURL(n),o=document.createElement(`a`);o.href=a,o.download=e.original_name?.trim()?e.original_name:`download`,o.rel=`noopener`,document.body.appendChild(o),o.click(),o.remove(),URL.revokeObjectURL(a)}catch{v.error(`网络错误,无法下载`)}}function ht(){let e=H.value?.review_schema?.schema_json;if(!e?.length)return{};let t={};for(let n of e){let e=K.value[n.key]??``;if(n.type===`number`){let r=String(e).trim();if(r===``)n.required&&(t[n.key]=``);else{let e=Number(r);t[n.key]=Number.isFinite(e)?e:0}}else t[n.key]=String(e)}return t}function gt(){if(typeof document>`u`)return;let e=document.getElementById(`reviewerScoreModal`);e&&oe.getOrCreateInstance(e).hide()}async function _t(){let e=V.value,t=B.value,{token:n}=_();if(!/^\d+$/.test(e)||!t||!n){v.warning(`未登录或参数无效`);return}if(!H.value?.review_schema?.schema_json?.length){v.warning(`未加载评审表单`);return}q.value=!0;try{let r=ht(),i=te(parseInt(e,10)),a=await fetch(i,{method:`POST`,headers:{Authorization:`Bearer ${n}`,Accept:`application/json`,"Content-Type":`application/json`},body:JSON.stringify({competition_slug:t,payload:r})}),o=await a.json().catch(()=>({}));if(!a.ok){let e=o,t=e.errors?.payload?.[0],n=typeof t==`string`&&t?t:typeof e.message==`string`?e.message:`提交失败(${a.status})`;v.error(n);return}let s=o.data;H.value&&s&&(s.my_review_score!==void 0&&(H.value.my_review_score=s.my_review_score),typeof s.score_display==`string`&&(H.value.score_display=s.score_display),typeof s.score_is_pending==`boolean`&&(H.value.score_is_pending=s.score_is_pending)),J(),v.success(typeof o.message==`string`?String(o.message):`提交成功`),gt()}catch{v.error(`网络错误,提交失败`)}finally{q.value=!1}}return(r,i)=>(m(),h(`div`,se,[g(`div`,ce,[i[1]||=g(`h5`,{class:`mb-0 section-title`},`项目详情`,-1),g(`div`,le,[H.value?(m(),h(`span`,{key:0,class:e([`status-pill`,H.value.score_is_pending?`status-pending`:`status-pass`])},f(pt.value),3)):t(``,!0),g(`button`,{type:`button`,class:`btn btn-sm btn-outline-secondary event-back-btn`,onClick:mt},` 返回列表 `)])]),W.value?(m(),h(`p`,ue,f(W.value),1)):U.value?(m(),h(`p`,de,`加载中…`)):H.value?(m(),h(`div`,fe,[g(`div`,pe,[g(`div`,me,[g(`div`,he,[i[2]||=g(`label`,{class:`form-label`},`参赛人姓名`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.player_name,disabled:``},null,8,ge)]),g(`div`,b,[i[3]||=g(`label`,{class:`form-label`},`毕业院校`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.school,disabled:``},null,8,x)]),g(`div`,S,[i[4]||=g(`label`,{class:`form-label`},`最高学历`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.degree,disabled:``},null,8,C)]),g(`div`,w,[i[5]||=g(`label`,{class:`form-label`},`注册邮箱`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.contact_email,disabled:``},null,8,T)]),g(`div`,E,[i[6]||=g(`label`,{class:`form-label`},`联系电话`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.contact_mobile,disabled:``},null,8,D)]),g(`div`,O,[i[7]||=g(`label`,{class:`form-label`},`参赛组别`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.entry_group||`—`,disabled:``},null,8,k)]),g(`div`,A,[i[8]||=g(`label`,{class:`form-label`},`企业名称`,-1),g(`input`,{class:`form-control company-name-input`,type:`text`,placeholder:`如已注册企业,请填写`,value:H.value.company_name,disabled:``},null,8,j)]),g(`div`,M,[i[9]||=g(`label`,{class:`form-label`},`项目名称`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.project_name,disabled:``},null,8,N)]),g(`div`,P,[i[10]||=g(`label`,{class:`form-label`},`主题赛道`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.track_title||H.value.track_code,disabled:``},null,8,F)]),g(`div`,I,[i[11]||=g(`label`,{class:`form-label`},`项目所在地(国家/地区)`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.location_country||`—`,disabled:``},null,8,L)]),g(`div`,_e,[i[12]||=g(`label`,{class:`form-label`},`省份`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.location_province||`—`,disabled:``},null,8,ve)]),g(`div`,ye,[i[13]||=g(`label`,{class:`form-label`},`城市`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.location_city||`—`,disabled:``},null,8,be)]),H.value.oversea_country?(m(),h(`div`,xe,[i[14]||=g(`label`,{class:`form-label`},`海外国家/地区`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.oversea_country,disabled:``},null,8,Se)])):t(``,!0),g(`div`,Ce,[i[15]||=g(`label`,{class:`form-label`},`项目简介`,-1),g(`textarea`,{class:`form-control`,rows:`4`,value:H.value.intro,disabled:``},null,8,we)]),g(`div`,Te,[i[16]||=g(`label`,{class:`form-label`},`商业计划书`,-1),Y.value?(m(),h(`p`,Ee,[g(`a`,{role:`button`,href:`#`,class:`text-danger text-decoration-none`,onClick:i[0]||=p(e=>$(Y.value),[`prevent`])},f(Y.value.original_name),1)])):(m(),h(`p`,De,`—`))]),X.value.length?(m(),h(`div`,Oe,[i[17]||=g(`label`,{class:`form-label`},`其他佐证材料`,-1),g(`ul`,ke,[(m(!0),h(d,null,a(X.value,e=>(m(),h(`li`,{key:e.id},[g(`a`,{role:`button`,href:`#`,class:`text-danger text-decoration-none`,onClick:p(t=>$(e),[`prevent`])},f(e.original_name),9,Ae)]))),128))])])):t(``,!0),g(`div`,je,[i[19]||=g(`label`,{class:`form-label`},`参赛承诺书`,-1),g(`p`,Me,[H.value.promise_signed?(m(),h(d,{key:0},[i[18]||=g(`button`,{type:`button`,class:`btn btn-link btn-sm p-0 align-baseline text-danger`,"data-bs-toggle":`modal`,"data-bs-target":`#reviewerPledgeModal`},` 已签署 · 查看承诺书与签名 `,-1),g(`span`,Ne,`日期:`+f(G.value),1)],64)):(m(),h(d,{key:1},[n(`未签署`)],64))])]),g(`div`,Pe,[g(`button`,Fe,f(H.value.score_is_pending?`项目评分`:`修改项目评分`),1),H.value.my_review_score?(m(),h(`span`,Ie,`最近保存:`+f(H.value.my_review_score.updated_at)+` · 合计 `+f(ft(Number(H.value.my_review_score.line_total).toFixed(4)))+` 分`,1)):t(``,!0)])])])])):t(``,!0),g(`div`,Le,[g(`div`,Re,[g(`div`,ze,[g(`div`,Be,[H.value?(m(),h(`div`,Ve,[g(`h1`,He,f(ut.value),1),g(`div`,R,[H.value.pledge_content_html?.trim()?(m(),h(`div`,{key:0,class:`promise-doc-body promise-doc-body--rich`,innerHTML:H.value.pledge_content_html},null,8,Ue)):(m(),h(`div`,We,[...i[20]||=[g(`p`,{class:`text-secondary mb-0`},`本场赛事未配置承诺书正文(可在管理端赛事中心维护)。`,-1)]]))]),H.value.promise_signed?(m(),h(`div`,Ge,[g(`div`,Ke,[i[21]||=g(`span`,{class:`promise-doc-signlabel`},`参赛人签名:`,-1),Z.value?(m(),h(`img`,{key:0,src:Z.value,alt:``,class:`reviewer-promise-sig-img`,loading:`lazy`},null,8,qe)):(m(),h(`span`,Je,`暂无`))]),g(`div`,Ye,[g(`span`,Xe,[i[22]||=n(`日期:`,-1),g(`strong`,null,f(G.value),1)])])])):t(``,!0)])):t(``,!0),i[23]||=g(`div`,{class:`promise-sign-actions`},[g(`button`,{type:`button`,class:`btn btn-light notice-cancel-btn`,"data-bs-dismiss":`modal`},`关闭`)],-1)])])])]),g(`div`,Ze,[g(`div`,Qe,[g(`div`,$e,[i[25]||=g(`div`,{class:`modal-header`},[g(`h5`,{id:`reviewerScoreModalLabel`,class:`modal-title`},`项目评分`),g(`button`,{type:`button`,class:`btn-close`,"data-bs-dismiss":`modal`,"aria-label":`关闭`})],-1),g(`div`,et,[H.value?.review_schema?.is_default?(m(),h(`p`,tt,` 本场赛事未绑定自定义评审表,已使用系统默认维度。 `)):t(``,!0),(m(!0),h(d,null,a(H.value?.review_schema?.schema_json??[],e=>(m(),h(`div`,{key:e.key,class:`mb-3`},[g(`label`,nt,[n(f(e.label)+` `,1),e.required?(m(),h(`span`,rt,`*`)):t(``,!0)]),e.type===`number`?l((m(),h(`input`,{key:0,"onUpdate:modelValue":t=>K.value[e.key]=t,class:`form-control`,type:`number`,step:`any`,autocomplete:`off`},null,8,it)),[[u,K.value[e.key]]]):e.type===`text`?l((m(),h(`input`,{key:1,"onUpdate:modelValue":t=>K.value[e.key]=t,class:`form-control`,type:`text`,autocomplete:`off`},null,8,at)),[[u,K.value[e.key]]]):l((m(),h(`textarea`,{key:2,"onUpdate:modelValue":t=>K.value[e.key]=t,class:`form-control`,rows:`4`},null,8,ot)),[[u,K.value[e.key]]])]))),128))]),g(`div`,st,[i[24]||=g(`button`,{type:`button`,class:`btn btn-secondary`,"data-bs-dismiss":`modal`},`取消`,-1),g(`button`,{type:`button`,class:`btn btn-primary`,style:{"background-color":`var(--primary, #b40010)`,"border-color":`var(--primary, #b40010)`},disabled:q.value,onClick:_t},f(q.value?`提交中…`:`确认提交`),9,ct)])])])])]))}}),[[`__scopeId`,`data-v-6afcc162`]]);export{z as default}; \ No newline at end of file +import{$t as e,C as t,D as n,P as r,W as i,Y as a,_t as o,at as s,b as c,ct as l,d as u,g as d,in as f,k as ee,m as p,q as m,w as h,x as g}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{S as te,b as ne,x as re,y as _}from"./api-COeuB3z6.js";import{l as v,o as ie,s as ae,y as oe}from"./index-uojebQYd.js";import{t as y}from"./_plugin-vue_export-helper-S3RvzygF.js";var se={class:`container-fluid p-3 p-md-4 reviewer-detail-inner d-flex flex-column flex-grow-1`},ce={class:`d-flex justify-content-between align-items-center flex-wrap gap-2 mb-3`},le={class:`d-flex align-items-center gap-2 flex-wrap`},ue={key:0,class:`alert alert-warning py-2 small`,role:`alert`},de={key:1,class:`small text-secondary`},fe={key:2,class:`card mb-0 border-0 shadow-sm flex-grow-1 d-flex flex-column`},pe={class:`card-body d-flex flex-column flex-grow-1`},me={class:`row g-3`},he={class:`col-md-4`},ge=[`value`],b={class:`col-md-4`},x=[`value`],S={class:`col-md-4`},C=[`value`],w={class:`col-md-4`},T=[`value`],E={class:`col-md-4`},D=[`value`],O={class:`col-md-4`},k=[`value`],A={class:`col-md-4`},j=[`value`],M={class:`col-md-4`},N=[`value`],P={class:`col-md-4`},F=[`value`],I={class:`col-md-4`},L=[`value`],_e={class:`col-md-4`},ve=[`value`],ye={class:`col-md-4`},be=[`value`],xe={key:0,class:`col-md-4`},Se=[`value`],Ce={class:`col-12`},we=[`value`],Te={class:`col-12`},Ee={key:0,class:`form-control-plaintext border rounded px-3 py-2 mb-0 bg-light small text-secondary`},De={key:1,class:`form-control-plaintext border rounded px-3 py-2 mb-0 bg-light small text-secondary`},Oe={key:1,class:`col-12`},ke={class:`list-unstyled mb-0 border rounded px-3 py-2 bg-light small`},Ae=[`onClick`],je={class:`col-12`},Me={class:`form-control-plaintext border rounded px-3 py-2 mb-0 bg-light small text-secondary`},Ne={class:`text-secondary ms-2`},Pe={class:`col-12 mt-auto pt-3 border-top d-flex flex-wrap gap-2 align-items-center`},Fe={type:`button`,class:`btn btn-primary px-4`,style:{"background-color":`var(--primary, #b40010)`,"border-color":`var(--primary, #b40010)`},"data-bs-toggle":`modal`,"data-bs-target":`#reviewerScoreModal`},Ie={key:0,class:`small text-secondary`},Le={id:`reviewerPledgeModal`,class:`modal fade`,tabindex:`-1`,"aria-labelledby":`reviewerPledgeDocHeading`,"aria-hidden":`true`},Re={class:`modal-dialog modal-dialog-centered modal-dialog-scrollable reviewer-detail-modal reviewer-detail-modal--pledge`},ze={class:`modal-content promise-sign-sheet`},Be={class:`modal-body pt-2`},Ve={key:0,class:`promise-doc-paper`},He={id:`reviewerPledgeDocHeading`,class:`promise-doc-heading text-center`},R={class:`promise-doc-scroll`},Ue=[`innerHTML`],We={key:1,class:`promise-doc-body promise-doc-body--rich`},Ge={key:0,class:`promise-doc-signblock`},Ke={class:`reviewer-pledge-sig-row`},qe=[`src`],Je={key:1,class:`small text-secondary`},Ye={class:`promise-doc-daterow`},Xe={class:`promise-doc-dateline`},Ze={id:`reviewerScoreModal`,class:`modal fade`,tabindex:`-1`,"aria-labelledby":`reviewerScoreModalLabel`,"aria-hidden":`true`},Qe={class:`modal-dialog modal-dialog-centered modal-dialog-scrollable reviewer-detail-modal reviewer-detail-modal--score`},$e={class:`modal-content`},et={class:`modal-body`},tt={key:0,class:`small text-secondary mb-3`},nt={class:`form-label`},rt={key:0,class:`text-danger`},it=[`onUpdate:modelValue`],at=[`onUpdate:modelValue`],ot=[`onUpdate:modelValue`],st={class:`modal-footer flex-wrap gap-2`},ct=[`disabled`],z=y(ee({__name:`ReviewerApplicationDetailView`,setup(ee){let y=ie(),z=ae(),B=c(()=>String(y.params.slug??``).trim()),V=c(()=>String(y.params.id??``).trim()),lt=r(`reviewerCompetitionName`,o(``)),ut=c(()=>{let e=lt.value.trim();return e?`${e} 赛事承诺书`:`赛事承诺书`});function dt(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 H=o(null),U=o(!1),W=o(``),G=c(()=>dt(H.value?.promise_signed_at)),K=o({}),q=o(!1);function J(){let e=H.value;if(!e?.review_schema?.schema_json?.length){K.value={};return}let t=e.my_review_score?.payload_json??{},n={};for(let r of e.review_schema.schema_json){let e=t[r.key];r.type===`number`?typeof e==`number`&&Number.isFinite(e)?n[r.key]=String(e):typeof e==`string`&&e.trim()!==``?n[r.key]=e.trim():n[r.key]=``:n[r.key]=typeof e==`string`?e:e==null?``:String(e)}K.value=n}s(H,()=>J(),{deep:!0});function ft(e){return e.replace(/\.?0+$/,``)}let pt=c(()=>{let e=H.value;return e?`项目编号:${e.project_code} · ${e.score_display}`:``}),Y=c(()=>H.value?.files.find(e=>e.kind===`plan`)??null),X=c(()=>H.value?.files.filter(e=>e.kind===`supporting`)??[]),Z=c(()=>{let e=H.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}`});async function Q(){let e=V.value,t=B.value,{token:n}=_();if(!/^\d+$/.test(e)||!t||!n){W.value=`参数无效或未登录`,H.value=null;return}U.value=!0,W.value=``;try{let r=ne(parseInt(e,10),t),i=await fetch(r,{headers:{Authorization:`Bearer ${n}`,Accept:`application/json`}});if(!i.ok){let e=await i.json().catch(()=>({}));W.value=(typeof e==`object`&&e&&`message`in e?String(e.message??``):``)||`加载失败(${i.status})`,H.value=null;return}H.value=(await i.json()).data??null}catch{W.value=`网络错误`,H.value=null}finally{U.value=!1}}s([V,B],()=>void Q()),i(()=>void Q());function mt(){let e=B.value;e?z.push({name:`reviewer-projects`,params:{slug:e}}):z.push(`/c`)}async function $(e){let t=V.value,n=B.value,{token:r}=_();if(!/^\d+$/.test(t)||!n||!r){v.warning(`未登录或参数无效`);return}let i=re(parseInt(t,10),e.id,n);try{let t=await fetch(i,{headers:{Authorization:`Bearer ${r}`,Accept:`*/*`}});if(!t.ok){v.error(`下载失败`);return}let n=await t.blob(),a=URL.createObjectURL(n),o=document.createElement(`a`);o.href=a,o.download=e.original_name?.trim()?e.original_name:`download`,o.rel=`noopener`,document.body.appendChild(o),o.click(),o.remove(),URL.revokeObjectURL(a)}catch{v.error(`网络错误,无法下载`)}}function ht(){let e=H.value?.review_schema?.schema_json;if(!e?.length)return{};let t={};for(let n of e){let e=K.value[n.key]??``;if(n.type===`number`){let r=String(e).trim();if(r===``)n.required&&(t[n.key]=``);else{let e=Number(r);t[n.key]=Number.isFinite(e)?e:0}}else t[n.key]=String(e)}return t}function gt(){if(typeof document>`u`)return;let e=document.getElementById(`reviewerScoreModal`);e&&oe.getOrCreateInstance(e).hide()}async function _t(){let e=V.value,t=B.value,{token:n}=_();if(!/^\d+$/.test(e)||!t||!n){v.warning(`未登录或参数无效`);return}if(!H.value?.review_schema?.schema_json?.length){v.warning(`未加载评审表单`);return}q.value=!0;try{let r=ht(),i=te(parseInt(e,10)),a=await fetch(i,{method:`POST`,headers:{Authorization:`Bearer ${n}`,Accept:`application/json`,"Content-Type":`application/json`},body:JSON.stringify({competition_slug:t,payload:r})}),o=await a.json().catch(()=>({}));if(!a.ok){let e=o,t=e.errors?.payload?.[0],n=typeof t==`string`&&t?t:typeof e.message==`string`?e.message:`提交失败(${a.status})`;v.error(n);return}let s=o.data;H.value&&s&&(s.my_review_score!==void 0&&(H.value.my_review_score=s.my_review_score),typeof s.score_display==`string`&&(H.value.score_display=s.score_display),typeof s.score_is_pending==`boolean`&&(H.value.score_is_pending=s.score_is_pending)),J(),v.success(typeof o.message==`string`?String(o.message):`提交成功`),gt()}catch{v.error(`网络错误,提交失败`)}finally{q.value=!1}}return(r,i)=>(m(),h(`div`,se,[g(`div`,ce,[i[1]||=g(`h5`,{class:`mb-0 section-title`},`项目详情`,-1),g(`div`,le,[H.value?(m(),h(`span`,{key:0,class:e([`status-pill`,H.value.score_is_pending?`status-pending`:`status-pass`])},f(pt.value),3)):t(``,!0),g(`button`,{type:`button`,class:`btn btn-sm btn-outline-secondary event-back-btn`,onClick:mt},` 返回列表 `)])]),W.value?(m(),h(`p`,ue,f(W.value),1)):U.value?(m(),h(`p`,de,`加载中…`)):H.value?(m(),h(`div`,fe,[g(`div`,pe,[g(`div`,me,[g(`div`,he,[i[2]||=g(`label`,{class:`form-label`},`参赛人姓名`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.player_name,disabled:``},null,8,ge)]),g(`div`,b,[i[3]||=g(`label`,{class:`form-label`},`毕业院校`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.school,disabled:``},null,8,x)]),g(`div`,S,[i[4]||=g(`label`,{class:`form-label`},`最高学历`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.degree,disabled:``},null,8,C)]),g(`div`,w,[i[5]||=g(`label`,{class:`form-label`},`注册邮箱`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.contact_email,disabled:``},null,8,T)]),g(`div`,E,[i[6]||=g(`label`,{class:`form-label`},`联系电话`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.contact_mobile,disabled:``},null,8,D)]),g(`div`,O,[i[7]||=g(`label`,{class:`form-label`},`参赛组别`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.entry_group||`—`,disabled:``},null,8,k)]),g(`div`,A,[i[8]||=g(`label`,{class:`form-label`},`企业名称`,-1),g(`input`,{class:`form-control company-name-input`,type:`text`,placeholder:`如已注册企业,请填写`,value:H.value.company_name,disabled:``},null,8,j)]),g(`div`,M,[i[9]||=g(`label`,{class:`form-label`},`项目名称`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.project_name,disabled:``},null,8,N)]),g(`div`,P,[i[10]||=g(`label`,{class:`form-label`},`主题赛道`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.track_title||H.value.track_code,disabled:``},null,8,F)]),g(`div`,I,[i[11]||=g(`label`,{class:`form-label`},`项目所在地(国家/地区)`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.location_country||`—`,disabled:``},null,8,L)]),g(`div`,_e,[i[12]||=g(`label`,{class:`form-label`},`省份`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.location_province||`—`,disabled:``},null,8,ve)]),g(`div`,ye,[i[13]||=g(`label`,{class:`form-label`},`城市`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.location_city||`—`,disabled:``},null,8,be)]),H.value.oversea_country?(m(),h(`div`,xe,[i[14]||=g(`label`,{class:`form-label`},`海外国家/地区`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.oversea_country,disabled:``},null,8,Se)])):t(``,!0),g(`div`,Ce,[i[15]||=g(`label`,{class:`form-label`},`项目简介`,-1),g(`textarea`,{class:`form-control`,rows:`4`,value:H.value.intro,disabled:``},null,8,we)]),g(`div`,Te,[i[16]||=g(`label`,{class:`form-label`},`商业计划书`,-1),Y.value?(m(),h(`p`,Ee,[g(`a`,{role:`button`,href:`#`,class:`text-danger text-decoration-none`,onClick:i[0]||=p(e=>$(Y.value),[`prevent`])},f(Y.value.original_name),1)])):(m(),h(`p`,De,`—`))]),X.value.length?(m(),h(`div`,Oe,[i[17]||=g(`label`,{class:`form-label`},`其他佐证材料`,-1),g(`ul`,ke,[(m(!0),h(d,null,a(X.value,e=>(m(),h(`li`,{key:e.id},[g(`a`,{role:`button`,href:`#`,class:`text-danger text-decoration-none`,onClick:p(t=>$(e),[`prevent`])},f(e.original_name),9,Ae)]))),128))])])):t(``,!0),g(`div`,je,[i[19]||=g(`label`,{class:`form-label`},`参赛承诺书`,-1),g(`p`,Me,[H.value.promise_signed?(m(),h(d,{key:0},[i[18]||=g(`button`,{type:`button`,class:`btn btn-link btn-sm p-0 align-baseline text-danger`,"data-bs-toggle":`modal`,"data-bs-target":`#reviewerPledgeModal`},` 已签署 · 查看承诺书与签名 `,-1),g(`span`,Ne,`日期:`+f(G.value),1)],64)):(m(),h(d,{key:1},[n(`未签署`)],64))])]),g(`div`,Pe,[g(`button`,Fe,f(H.value.score_is_pending?`项目评分`:`修改项目评分`),1),H.value.my_review_score?(m(),h(`span`,Ie,`最近保存:`+f(H.value.my_review_score.updated_at)+` · 合计 `+f(ft(Number(H.value.my_review_score.line_total).toFixed(4)))+` 分`,1)):t(``,!0)])])])])):t(``,!0),g(`div`,Le,[g(`div`,Re,[g(`div`,ze,[g(`div`,Be,[H.value?(m(),h(`div`,Ve,[g(`h1`,He,f(ut.value),1),g(`div`,R,[H.value.pledge_content_html?.trim()?(m(),h(`div`,{key:0,class:`promise-doc-body promise-doc-body--rich`,innerHTML:H.value.pledge_content_html},null,8,Ue)):(m(),h(`div`,We,[...i[20]||=[g(`p`,{class:`text-secondary mb-0`},`本场赛事未配置承诺书正文(可在管理端赛事中心维护)。`,-1)]]))]),H.value.promise_signed?(m(),h(`div`,Ge,[g(`div`,Ke,[i[21]||=g(`span`,{class:`promise-doc-signlabel`},`参赛人签名:`,-1),Z.value?(m(),h(`img`,{key:0,src:Z.value,alt:``,class:`reviewer-promise-sig-img`,loading:`lazy`},null,8,qe)):(m(),h(`span`,Je,`暂无`))]),g(`div`,Ye,[g(`span`,Xe,[i[22]||=n(`日期:`,-1),g(`strong`,null,f(G.value),1)])])])):t(``,!0)])):t(``,!0),i[23]||=g(`div`,{class:`promise-sign-actions`},[g(`button`,{type:`button`,class:`btn btn-light notice-cancel-btn`,"data-bs-dismiss":`modal`},`关闭`)],-1)])])])]),g(`div`,Ze,[g(`div`,Qe,[g(`div`,$e,[i[25]||=g(`div`,{class:`modal-header`},[g(`h5`,{id:`reviewerScoreModalLabel`,class:`modal-title`},`项目评分`),g(`button`,{type:`button`,class:`btn-close`,"data-bs-dismiss":`modal`,"aria-label":`关闭`})],-1),g(`div`,et,[H.value?.review_schema?.is_default?(m(),h(`p`,tt,` 本场赛事未绑定自定义评审表,已使用系统默认维度。 `)):t(``,!0),(m(!0),h(d,null,a(H.value?.review_schema?.schema_json??[],e=>(m(),h(`div`,{key:e.key,class:`mb-3`},[g(`label`,nt,[n(f(e.label)+` `,1),e.required?(m(),h(`span`,rt,`*`)):t(``,!0)]),e.type===`number`?l((m(),h(`input`,{key:0,"onUpdate:modelValue":t=>K.value[e.key]=t,class:`form-control`,type:`number`,step:`any`,autocomplete:`off`},null,8,it)),[[u,K.value[e.key]]]):e.type===`text`?l((m(),h(`input`,{key:1,"onUpdate:modelValue":t=>K.value[e.key]=t,class:`form-control`,type:`text`,autocomplete:`off`},null,8,at)),[[u,K.value[e.key]]]):l((m(),h(`textarea`,{key:2,"onUpdate:modelValue":t=>K.value[e.key]=t,class:`form-control`,rows:`4`},null,8,ot)),[[u,K.value[e.key]]])]))),128))]),g(`div`,st,[i[24]||=g(`button`,{type:`button`,class:`btn btn-secondary`,"data-bs-dismiss":`modal`},`取消`,-1),g(`button`,{type:`button`,class:`btn btn-primary`,style:{"background-color":`var(--primary, #b40010)`,"border-color":`var(--primary, #b40010)`},disabled:q.value,onClick:_t},f(q.value?`提交中…`:`确认提交`),9,ct)])])])])]))}}),[[`__scopeId`,`data-v-6afcc162`]]);export{z as default}; \ No newline at end of file diff --git a/public/admin/assets/ReviewerLayout-C_9WFlYS.js b/public/admin/assets/ReviewerLayout-DhOGLZa5.js similarity index 97% rename from public/admin/assets/ReviewerLayout-C_9WFlYS.js rename to public/admin/assets/ReviewerLayout-DhOGLZa5.js index 2675a31..7891c2c 100644 --- a/public/admin/assets/ReviewerLayout-C_9WFlYS.js +++ b/public/admin/assets/ReviewerLayout-DhOGLZa5.js @@ -1 +1 @@ -import{$t as e,D as t,G as n,J as r,O as i,W as a,Z as o,_t as s,at as ee,b as c,in as l,k as u,m as te,q as ne,st as d,w as re,x as f}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{d as ie,l as p,p as m,y as h}from"./api-COeuB3z6.js";import{o as ae,s as oe}from"./index-ijh93KpS.js";import{t as g}from"./_plugin-vue_export-helper-S3RvzygF.js";/* empty css *//* empty css */import{i as _,o as v,r as y,t as b}from"./competitionBranding-Bz_llsts.js";var x={class:`reviewer-layout-root`},S={class:`navbar navbar-expand-lg layout-header`},C={class:`container-fluid px-4`},w={class:`navbar-brand mb-0 prototype-title`},T={class:`dropdown`},E={class:`header-user dropdown-toggle`,type:`button`,"data-bs-toggle":`dropdown`,"aria-expanded":`false`},D={class:`header-user-name`},O={class:`dropdown-menu dropdown-menu-end header-user-menu`},k={id:`mobileNavSection`,class:`container-fluid px-4 pt-2 pb-1 d-lg-none`},A={class:`mobile-nav-wrap`},j={class:`container-fluid px-4 py-3 layout-main`},M={class:`row h-100 g-3`},N={class:`col-12 col-md-3 col-lg-2 layout-sider`},P={class:`card h-100`},F={class:`card-body`},I={class:`nav flex-column gap-2`},L={class:`col-12 col-md-9 col-lg-10 reviewer-main-column`},R={class:`reviewer-main-surface border rounded-3 bg-white`},z={class:`border-top bg-white text-center py-2 small text-secondary prototype-subtitle`},B={id:`reviewerProfileModal`,class:`modal fade`,tabindex:`-1`,"aria-hidden":`true`},se={class:`modal-dialog modal-dialog-centered profile-modal-dialog`},V={class:`modal-content profile-modal-content`},H={class:`modal-body profile-modal-body`},U={class:`row g-3`},W={class:`col-md-6`},G={class:`profile-field`},K={class:`profile-field-value`},ce={class:`col-md-6`},le={class:`profile-field`},ue={class:`profile-field-value`},de={class:`col-12`},fe={class:`profile-field`},pe={class:`profile-field-value`},q=g(u({__name:`ReviewerLayout`,setup(u){let g=oe(),q=ae(),J=c(()=>String(q.params.slug??``).trim()),Y=c(()=>[`reviewer-projects`,`reviewer-application-detail`].includes(String(q.name??``))),X=s(y()),Z=s(``),Q=s(`评审员`),me=c(()=>v(X.value,Z.value)),he=c(()=>{if(_(X.value.review.footerCopyright))return X.value.review.footerCopyright;if(_(X.value.login.footerCopyright))return X.value.login.footerCopyright;let e=Z.value.trim();return e?`版权所有:${e}`:`版权所有`});async function ge(){let e=J.value;if(!e){X.value=y(),Z.value=``;return}try{let t=await fetch(`${m()}/api/v1/public/competitions/by-slug/${encodeURIComponent(e)}`,{headers:{Accept:`application/json`}});if(!t.ok){X.value=y(),Z.value=``;return}let n=await t.json(),r=n.data!=null&&typeof n.data==`object`&&!Array.isArray(n.data)?n.data:n;Z.value=String(r.name??``),X.value=b(r.branding_json??null)}catch{X.value=y(),Z.value=``}}ee(J,()=>void ge(),{immediate:!0}),r(`reviewerCompetitionName`,Z);let $=s({name:`—`,mobile:`—`,username:`—`});async function _e(){let{token:e}=h();if(e)try{let t=await fetch(`${m()}${p}`,{headers:{Authorization:`Bearer ${e}`,Accept:`application/json`}});if(!t.ok)return;let n=(await t.json()).reviewer;Q.value=n?.name?.trim()||n?.username?.trim()||`评审员`,$.value={name:n?.name??`—`,mobile:n?.mobile??`—`,username:n?.username??`—`}}catch{}}function ve(){ie();let e=J.value;e?g.replace({name:`reviewer-login`,params:{slug:e}}):g.replace(`/c`)}return a(()=>{document.body.classList.add(`prototype-page`,`reviewer-mode`,`admin-desktop-page`,`reviewer-score-2colors`),_e()}),n(()=>{document.body.classList.remove(`prototype-page`,`reviewer-mode`,`admin-desktop-page`,`reviewer-score-2colors`)}),(n,r)=>{let a=o(`router-link`),s=o(`router-view`);return ne(),re(`div`,x,[f(`header`,S,[f(`div`,C,[f(`span`,w,l(me.value),1),f(`div`,T,[f(`button`,E,[r[0]||=f(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`},[f(`circle`,{cx:`12`,cy:`12`,r:`9.5`,stroke:`currentColor`,"stroke-width":`2`}),f(`circle`,{cx:`12`,cy:`9`,r:`3.2`,fill:`currentColor`}),f(`path`,{d:`M6.8 18.2c1.1-2.4 3-3.6 5.2-3.6s4.1 1.2 5.2 3.6`,fill:`currentColor`})],-1),f(`span`,D,l(Q.value),1)]),f(`ul`,O,[r[2]||=f(`li`,null,[f(`a`,{class:`dropdown-item`,href:`javascript:void(0)`,"data-bs-toggle":`modal`,"data-bs-target":`#reviewerProfileModal`},[f(`span`,{class:`menu-icon`},`👤`),t(`个人信息 `)])],-1),r[3]||=f(`li`,null,[f(`hr`,{class:`dropdown-divider`})],-1),f(`li`,null,[f(`a`,{class:`dropdown-item text-danger`,href:`javascript:void(0)`,onClick:te(ve,[`prevent`])},[...r[1]||=[f(`span`,{class:`menu-icon`},`↪`,-1),t(`退出登录 `,-1)]])])])])])]),f(`div`,k,[f(`div`,A,[i(a,{class:e([`mobile-nav-link`,{active:Y.value}]),to:{name:`reviewer-projects`,params:{slug:J.value}}},{default:d(()=>[...r[4]||=[t(` 项目评审 `,-1)]]),_:1},8,[`class`,`to`])])]),f(`div`,j,[f(`div`,M,[f(`aside`,N,[f(`div`,P,[f(`div`,F,[f(`nav`,I,[i(a,{class:e([`nav-link text-start`,{active:Y.value}]),to:{name:`reviewer-projects`,params:{slug:J.value}}},{default:d(()=>[...r[5]||=[t(` 项目评审 `,-1)]]),_:1},8,[`class`,`to`])])])])]),f(`main`,L,[f(`div`,R,[i(s)])])])]),f(`footer`,z,l(he.value),1),f(`div`,B,[f(`div`,se,[f(`div`,V,[r[9]||=f(`div`,{class:`modal-header profile-modal-header`},[f(`h5`,{class:`modal-title profile-modal-title`},`个人信息`),f(`button`,{type:`button`,class:`btn-close`,"data-bs-dismiss":`modal`,"aria-label":`关闭`})],-1),f(`div`,H,[f(`div`,U,[f(`div`,W,[f(`div`,G,[r[6]||=f(`div`,{class:`profile-field-label`},`姓名`,-1),f(`div`,K,l($.value.name),1)])]),f(`div`,ce,[f(`div`,le,[r[7]||=f(`div`,{class:`profile-field-label`},`手机号`,-1),f(`div`,ue,l($.value.mobile),1)])]),f(`div`,de,[f(`div`,fe,[r[8]||=f(`div`,{class:`profile-field-label`},`登录账号`,-1),f(`div`,pe,l($.value.username),1)])])])])])])])])}}}),[[`__scopeId`,`data-v-c938a711`]]);export{q as default}; \ No newline at end of file +import{$t as e,D as t,G as n,J as r,O as i,W as a,Z as o,_t as s,at as ee,b as c,in as l,k as u,m as te,q as ne,st as d,w as re,x as f}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{d as ie,l as p,p as m,y as h}from"./api-COeuB3z6.js";import{o as ae,s as oe}from"./index-uojebQYd.js";import{t as g}from"./_plugin-vue_export-helper-S3RvzygF.js";/* empty css *//* empty css */import{i as _,o as v,r as y,t as b}from"./competitionBranding-Bz_llsts.js";var x={class:`reviewer-layout-root`},S={class:`navbar navbar-expand-lg layout-header`},C={class:`container-fluid px-4`},w={class:`navbar-brand mb-0 prototype-title`},T={class:`dropdown`},E={class:`header-user dropdown-toggle`,type:`button`,"data-bs-toggle":`dropdown`,"aria-expanded":`false`},D={class:`header-user-name`},O={class:`dropdown-menu dropdown-menu-end header-user-menu`},k={id:`mobileNavSection`,class:`container-fluid px-4 pt-2 pb-1 d-lg-none`},A={class:`mobile-nav-wrap`},j={class:`container-fluid px-4 py-3 layout-main`},M={class:`row h-100 g-3`},N={class:`col-12 col-md-3 col-lg-2 layout-sider`},P={class:`card h-100`},F={class:`card-body`},I={class:`nav flex-column gap-2`},L={class:`col-12 col-md-9 col-lg-10 reviewer-main-column`},R={class:`reviewer-main-surface border rounded-3 bg-white`},z={class:`border-top bg-white text-center py-2 small text-secondary prototype-subtitle`},B={id:`reviewerProfileModal`,class:`modal fade`,tabindex:`-1`,"aria-hidden":`true`},se={class:`modal-dialog modal-dialog-centered profile-modal-dialog`},V={class:`modal-content profile-modal-content`},H={class:`modal-body profile-modal-body`},U={class:`row g-3`},W={class:`col-md-6`},G={class:`profile-field`},K={class:`profile-field-value`},ce={class:`col-md-6`},le={class:`profile-field`},ue={class:`profile-field-value`},de={class:`col-12`},fe={class:`profile-field`},pe={class:`profile-field-value`},q=g(u({__name:`ReviewerLayout`,setup(u){let g=oe(),q=ae(),J=c(()=>String(q.params.slug??``).trim()),Y=c(()=>[`reviewer-projects`,`reviewer-application-detail`].includes(String(q.name??``))),X=s(y()),Z=s(``),Q=s(`评审员`),me=c(()=>v(X.value,Z.value)),he=c(()=>{if(_(X.value.review.footerCopyright))return X.value.review.footerCopyright;if(_(X.value.login.footerCopyright))return X.value.login.footerCopyright;let e=Z.value.trim();return e?`版权所有:${e}`:`版权所有`});async function ge(){let e=J.value;if(!e){X.value=y(),Z.value=``;return}try{let t=await fetch(`${m()}/api/v1/public/competitions/by-slug/${encodeURIComponent(e)}`,{headers:{Accept:`application/json`}});if(!t.ok){X.value=y(),Z.value=``;return}let n=await t.json(),r=n.data!=null&&typeof n.data==`object`&&!Array.isArray(n.data)?n.data:n;Z.value=String(r.name??``),X.value=b(r.branding_json??null)}catch{X.value=y(),Z.value=``}}ee(J,()=>void ge(),{immediate:!0}),r(`reviewerCompetitionName`,Z);let $=s({name:`—`,mobile:`—`,username:`—`});async function _e(){let{token:e}=h();if(e)try{let t=await fetch(`${m()}${p}`,{headers:{Authorization:`Bearer ${e}`,Accept:`application/json`}});if(!t.ok)return;let n=(await t.json()).reviewer;Q.value=n?.name?.trim()||n?.username?.trim()||`评审员`,$.value={name:n?.name??`—`,mobile:n?.mobile??`—`,username:n?.username??`—`}}catch{}}function ve(){ie();let e=J.value;e?g.replace({name:`reviewer-login`,params:{slug:e}}):g.replace(`/c`)}return a(()=>{document.body.classList.add(`prototype-page`,`reviewer-mode`,`admin-desktop-page`,`reviewer-score-2colors`),_e()}),n(()=>{document.body.classList.remove(`prototype-page`,`reviewer-mode`,`admin-desktop-page`,`reviewer-score-2colors`)}),(n,r)=>{let a=o(`router-link`),s=o(`router-view`);return ne(),re(`div`,x,[f(`header`,S,[f(`div`,C,[f(`span`,w,l(me.value),1),f(`div`,T,[f(`button`,E,[r[0]||=f(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`},[f(`circle`,{cx:`12`,cy:`12`,r:`9.5`,stroke:`currentColor`,"stroke-width":`2`}),f(`circle`,{cx:`12`,cy:`9`,r:`3.2`,fill:`currentColor`}),f(`path`,{d:`M6.8 18.2c1.1-2.4 3-3.6 5.2-3.6s4.1 1.2 5.2 3.6`,fill:`currentColor`})],-1),f(`span`,D,l(Q.value),1)]),f(`ul`,O,[r[2]||=f(`li`,null,[f(`a`,{class:`dropdown-item`,href:`javascript:void(0)`,"data-bs-toggle":`modal`,"data-bs-target":`#reviewerProfileModal`},[f(`span`,{class:`menu-icon`},`👤`),t(`个人信息 `)])],-1),r[3]||=f(`li`,null,[f(`hr`,{class:`dropdown-divider`})],-1),f(`li`,null,[f(`a`,{class:`dropdown-item text-danger`,href:`javascript:void(0)`,onClick:te(ve,[`prevent`])},[...r[1]||=[f(`span`,{class:`menu-icon`},`↪`,-1),t(`退出登录 `,-1)]])])])])])]),f(`div`,k,[f(`div`,A,[i(a,{class:e([`mobile-nav-link`,{active:Y.value}]),to:{name:`reviewer-projects`,params:{slug:J.value}}},{default:d(()=>[...r[4]||=[t(` 项目评审 `,-1)]]),_:1},8,[`class`,`to`])])]),f(`div`,j,[f(`div`,M,[f(`aside`,N,[f(`div`,P,[f(`div`,F,[f(`nav`,I,[i(a,{class:e([`nav-link text-start`,{active:Y.value}]),to:{name:`reviewer-projects`,params:{slug:J.value}}},{default:d(()=>[...r[5]||=[t(` 项目评审 `,-1)]]),_:1},8,[`class`,`to`])])])])]),f(`main`,L,[f(`div`,R,[i(s)])])])]),f(`footer`,z,l(he.value),1),f(`div`,B,[f(`div`,se,[f(`div`,V,[r[9]||=f(`div`,{class:`modal-header profile-modal-header`},[f(`h5`,{class:`modal-title profile-modal-title`},`个人信息`),f(`button`,{type:`button`,class:`btn-close`,"data-bs-dismiss":`modal`,"aria-label":`关闭`})],-1),f(`div`,H,[f(`div`,U,[f(`div`,W,[f(`div`,G,[r[6]||=f(`div`,{class:`profile-field-label`},`姓名`,-1),f(`div`,K,l($.value.name),1)])]),f(`div`,ce,[f(`div`,le,[r[7]||=f(`div`,{class:`profile-field-label`},`手机号`,-1),f(`div`,ue,l($.value.mobile),1)])]),f(`div`,de,[f(`div`,fe,[r[8]||=f(`div`,{class:`profile-field-label`},`登录账号`,-1),f(`div`,pe,l($.value.username),1)])])])])])])])])}}}),[[`__scopeId`,`data-v-c938a711`]]);export{q as default}; \ No newline at end of file diff --git a/public/admin/assets/ReviewerLoginView-C_nJ5Jja.js b/public/admin/assets/ReviewerLoginView-DM6OZz-a.js similarity index 98% rename from public/admin/assets/ReviewerLoginView-C_nJ5Jja.js rename to public/admin/assets/ReviewerLoginView-DM6OZz-a.js index ccb38d3..db21b77 100644 --- a/public/admin/assets/ReviewerLoginView-C_nJ5Jja.js +++ b/public/admin/assets/ReviewerLoginView-DM6OZz-a.js @@ -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 f,q as p,w as m,x as h}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{C as g,c as _,p as v}from"./api-COeuB3z6.js";import{o as y,s as b}from"./index-ijh93KpS.js";/* empty css */import{i as x,r as S,t as C}from"./competitionBranding-Bz_llsts.js";/* empty css */var ee={class:`login-page-wls__wrap`},te={class:`login-page-wls__inner`},ne={class:`login-page-wls__brand`,"aria-label":`赛事说明`},re={class:`login-page-wls__logo`,"aria-hidden":`true`},ie=[`src`],w={key:1,viewBox:`0 0 100 100`,width:`72`,height:`72`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},T={key:0,class:`login-page-wls__mark`},E=[`innerHTML`],D={key:1,class:`login-page-wls__title`},O=[`innerHTML`],k={class:`login-page-wls__panel`},A={class:`login-page-wls__card`},ae={class:`login-page-wls__card-title`},oe=[`disabled`],se={key:0,class:`login-page-wls__footer`},ce={class:`login-page-wls__copyright`},j=d({__name:`ReviewerLoginView`,setup(d){let j=y(),M=b(),N=o(``),P=o(``),F=o(!1),I=o(!1),L=o(!1),R=o(``),z=o(`neutral`),B=s(()=>String(j.params.slug??``).trim()),V=o(``),H=o(S()),U=s(()=>z.value===`error`?`login-page-wls__hint login-page-wls__hint--error`:z.value===`success`?`login-page-wls__hint login-page-wls__hint--success`:`login-page-wls__hint`);function W(e){return e.replace(/&/g,`&`).replace(//g,`>`).replace(/"/g,`"`)}let le=s(()=>{let e=H.value.login.markLine;return x(e)?W(e):``}),ue=s(()=>{let e=H.value.login.headline;return x(e)?W(e):``}),G=s(()=>{if(V.value)return V.value;let e=H.value.login.slogan;return x(e)?e:``}),de=s(()=>!!V.value),fe=s(()=>x(H.value.login.cardWelcome)?H.value.login.cardWelcome.replace(/登陆/g,`登录`):`评审员登录`),K=s(()=>x(H.value.login.footerCopyright)?H.value.login.footerCopyright:``),q=s(()=>x(H.value.login.logoUrl)?H.value.login.logoUrl:``),J=null,Y=null,X=!1;function Z(){return v()}function Q(e,t=`neutral`){R.value=e,z.value=t}function $(){R.value=``,z.value=`neutral`}function pe(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 f,q as p,w as m,x as h}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{C as g,c as _,p as v}from"./api-COeuB3z6.js";import{o as y,s as b}from"./index-uojebQYd.js";/* empty css */import{i as x,r as S,t as C}from"./competitionBranding-Bz_llsts.js";/* empty css */var ee={class:`login-page-wls__wrap`},te={class:`login-page-wls__inner`},ne={class:`login-page-wls__brand`,"aria-label":`赛事说明`},re={class:`login-page-wls__logo`,"aria-hidden":`true`},ie=[`src`],w={key:1,viewBox:`0 0 100 100`,width:`72`,height:`72`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},T={key:0,class:`login-page-wls__mark`},E=[`innerHTML`],D={key:1,class:`login-page-wls__title`},O=[`innerHTML`],k={class:`login-page-wls__panel`},A={class:`login-page-wls__card`},ae={class:`login-page-wls__card-title`},oe=[`disabled`],se={key:0,class:`login-page-wls__footer`},ce={class:`login-page-wls__copyright`},j=d({__name:`ReviewerLoginView`,setup(d){let j=y(),M=b(),N=o(``),P=o(``),F=o(!1),I=o(!1),L=o(!1),R=o(``),z=o(`neutral`),B=s(()=>String(j.params.slug??``).trim()),V=o(``),H=o(S()),U=s(()=>z.value===`error`?`login-page-wls__hint login-page-wls__hint--error`:z.value===`success`?`login-page-wls__hint login-page-wls__hint--success`:`login-page-wls__hint`);function W(e){return e.replace(/&/g,`&`).replace(//g,`>`).replace(/"/g,`"`)}let le=s(()=>{let e=H.value.login.markLine;return x(e)?W(e):``}),ue=s(()=>{let e=H.value.login.headline;return x(e)?W(e):``}),G=s(()=>{if(V.value)return V.value;let e=H.value.login.slogan;return x(e)?e:``}),de=s(()=>!!V.value),fe=s(()=>x(H.value.login.cardWelcome)?H.value.login.cardWelcome.replace(/登陆/g,`登录`):`评审员登录`),K=s(()=>x(H.value.login.footerCopyright)?H.value.login.footerCopyright:``),q=s(()=>x(H.value.login.logoUrl)?H.value.login.logoUrl:``),J=null,Y=null,X=!1;function Z(){return v()}function Q(e,t=`neutral`){R.value=e,z.value=t}function $(){R.value=``,z.value=`neutral`}function pe(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 me(){V.value=``,H.value=S();let e=B.value,t=typeof document<`u`?document.title:``;if(!e){V.value=`缺少赛事访问地址,请从正确入口进入`;return}try{let n=await fetch(`${Z()}/api/v1/public/competitions/by-slug/${encodeURIComponent(e)}`,{headers:{Accept:`application/json`}});if(!n.ok){V.value=n.status===404?`赛事不存在或未发布,请核对访问地址`:`无法加载赛事信息`;return}let r=await n.json(),i=typeof r==`object`&&r&&`data`in r?r.data:r;H.value=C(i?.branding_json??i?.branding??null);let a=H.value.documentTitle;typeof document<`u`&&(document.title=x(a)?`${he(a)} · 评审登录`:t||`评审登录`);let o=H.value.login.themePrimary;x(o)&&typeof document<`u`&&(J===null&&(J=document.body.style.getPropertyValue(`--primary`)||``),document.body.style.setProperty(`--primary`,o),document.body.style.setProperty(`--primary-soft`,`${o}14`));let s=H.value.login.faviconUrl;if(x(s)&&typeof document<`u`){let e=document.querySelector(`link[rel~="icon"]`);e||(e=document.createElement(`link`),e.rel=`icon`,document.head.appendChild(e)),Y===null&&(Y=e.getAttribute(`href`)||``),e.href=s}}catch{V.value=`网络错误,无法校验赛事链接`}}function he(e){return e.replace(/[\u200B-\u200D\uFEFF]/gu,``).trim()}async function ge(){let e=N.value.trim(),t=P.value;if(F.value=!e,I.value=!t,!e){Q(`请填写账号`,`error`);return}if(!t){Q(`请填写密码`,`error`);return}if(!B.value){Q(`缺少赛事访问地址`,`error`);return}$(),L.value=!0,Q(`登录中…`,`neutral`);try{let n=`${Z()}${_}`,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:B.value})}),i=await r.json().catch(()=>({}));if(!r.ok){Q(pe(i),`error`);return}$();let a=i.token;if(typeof a!=`string`||!a){Q(`登录响应异常:缺少令牌`,`error`);return}g(a,B.value);let o=typeof j.query.redirect==`string`?j.query.redirect:``;if(o&&o.startsWith(`/`)){await M.replace(o);return}await M.replace({name:`reviewer-projects`,params:{slug:B.value}})}catch{Q(`网络错误,请确认后端已启动`,`error`)}finally{L.value=!1}}return a(()=>{typeof document<`u`&&(document.documentElement.classList.add(`cxxfds-login-page`),X=!0),document.body.classList.add(`login-page-wls`),me()}),i(()=>{if(typeof document<`u`&&X&&(document.documentElement.classList.remove(`cxxfds-login-page`),X=!1),document.body.classList.remove(`login-page-wls`),typeof document<`u`&&(J!==null&&(J===``?(document.body.style.removeProperty(`--primary`),document.body.style.removeProperty(`--primary-soft`)):document.body.style.setProperty(`--primary`,J),J=null),Y!==null)){let e=document.querySelector(`link[rel~="icon"]`);e&&(Y===``?e.removeAttribute(`href`):e.href=Y),Y=null}}),(i,a)=>(p(),m(`div`,ee,[h(`div`,te,[h(`aside`,ne,[h(`div`,re,[q.value?(p(),m(`img`,{key:0,src:q.value,alt:``,class:`login-page-wls__logo-img`,width:`72`,height:`72`},null,8,ie)):(p(),m(`svg`,w,[...a[4]||=[n(`{if(q.value===`create`&&(!t||String(t).trim()===``)){n(Error(`请填写密码`));return}if(t&&String(t).trim().length>0&&String(t).length<6){n(Error(`密码不少于 6 位`));return}n()},trigger:`blur`}]},pe=l(()=>S.value.find(e=>e.track_code===H.value)?.title??``),me=l(()=>`已配置 ${H.value?O.value[H.value]??0:0} 名评审员`);async function he(){let e=b.value;if(W.value=!0,!e){S.value=[],O.value={},H.value=null,W.value=!1;return}try{if(S.value=(await C(e)).filter(e=>e.is_enabled).sort((e,t)=>e.sort-t.sort),!S.value.length){H.value=null,O.value={};return}(!H.value||!S.value.some(e=>e.track_code===H.value))&&(H.value=S.value[0]?.track_code??null),O.value=await k(e)}catch(e){S.value=[],x.warning(e instanceof Error?e.message:`赛道加载失败`)}finally{W.value=!1}}async function Q(){let e=b.value,t=H.value;if(!e||!t){U.value=[];return}G.value=!0;try{U.value=(await ne({competition_id:e,track_code:t,page:1,per_page:500})).data,O.value=await k(e)}catch(e){U.value=[],x.error(e instanceof Error?e.message:`加载失败`)}finally{G.value=!1}}function ge(e){H.value=e}c(b,()=>{H.value=null,he().then(()=>Q())},{immediate:!0}),c(H,()=>{Q()});function $(e){return e.reviewer?.password_display??`—`}function _e(e){let t=e.reviewer?.mobile;return t&&String(t).trim()!==``?String(t):`—`}function ve(){q.value=`create`,Y.value=null,Z.value={name:``,mobile:``,username:``,password:``},K.value=!0}function ye(e){q.value=`edit`,Y.value=e.reviewer_id;let t=e.reviewer;Z.value={name:t?.name??``,mobile:t?.mobile??``,username:t?.username??``,password:``},K.value=!0}async function be(){if(!X.value)return;let e=b.value,t=H.value;!e||!t||await X.value.validate(async n=>{if(n){J.value=!0;try{if(q.value===`create`){let n=0;try{n=(await T({name:Z.value.name.trim(),username:Z.value.username.trim(),password:Z.value.password,mobile:Z.value.mobile.trim()||null})).id}catch(e){x.error(e instanceof Error?e.message:`创建评审员失败`),J.value=!1;return}try{await re({reviewer_id:n,competition_id:e,track_code:t})}catch(e){try{await D(n)}catch{}x.error(e instanceof Error?e.message:`绑定赛道失败`),J.value=!1;return}x.success(`评审员信息已保存`)}else{let e=Y.value;await E(e,{name:Z.value.name.trim(),username:Z.value.username.trim(),mobile:Z.value.mobile.trim()||null,...Z.value.password.trim()?{password:Z.value.password.trim()}:{}}),x.success(`评审员信息已更新`)}K.value=!1,await Q(),e&&(O.value=await k(e))}catch(e){x.error(e instanceof Error?e.message:`保存失败`)}finally{J.value=!1}}})}async function xe(e){let t=e.reviewer?.name??`该评审员`;try{await y.confirm(`确定移除「${t}」对本赛道的评审权限吗?(不删除全局账号)`,`确认删除`,{type:`warning`,confirmButtonText:`确定删除`,cancelButtonText:`取消`})}catch{return}try{await ie(e.id),x.success(`已移除`),await Q();let t=b.value;t&&(O.value=await k(t))}catch(e){x.error(e instanceof Error?e.message:`删除失败`)}}return(s,c)=>{let l=o(`el-alert`),p=o(`el-input`),v=o(`el-form-item`),y=o(`el-col`),x=o(`el-row`),C=o(`el-form`),w=o(`el-button`),T=o(`el-dialog`),E=ee(`loading`);return m(),g(`div`,ae,[c[11]||=_(`div`,{class:`rev-head`},[_(`h5`,{class:`section-title mb-0`},`评审员管理`)],-1),r(b)?u((m(),g(`div`,oe,[_(`aside`,se,[c[6]||=_(`div`,{class:`reviewer-track-panel-title`},`赛道配置`,-1),_(`div`,ce,[(m(!0),g(d,null,a(S.value,t=>(m(),g(`button`,{key:t.id,type:`button`,class:e([`reviewer-track-tab`,{active:H.value===t.track_code}]),onClick:e=>ge(t.track_code)},[_(`span`,ue,f(t.title),1),_(`span`,de,f(O.value[t.track_code]??0)+` 人`,1)],10,le))),128))])]),_(`section`,A,[_(`div`,j,[_(`div`,null,[_(`h6`,M,f(pe.value||`—`),1),_(`p`,N,f(me.value),1)]),_(`div`,P,[_(`button`,{type:`button`,class:`prm-btn-outline`,disabled:!H.value,onClick:ve},` 新增评审员 `,8,F)])]),u((m(),g(`div`,I,[H.value?(m(),g(`table`,L,[c[7]||=_(`thead`,null,[_(`tr`,null,[_(`th`,{style:{width:`18%`}},`姓名`),_(`th`,{style:{width:`22%`}},`电话`),_(`th`,{style:{width:`24%`}},`账户`),_(`th`,{style:{width:`24%`}},`密码`),_(`th`,{class:`text-end`,style:{width:`12%`}},`操作`)])],-1),_(`tbody`,null,[(m(!0),g(d,null,a(U.value,e=>(m(),g(`tr`,{key:e.id},[_(`td`,null,f(e.reviewer?.name??`—`),1),_(`td`,null,f(_e(e)),1),_(`td`,null,f(e.reviewer?.username??`—`),1),_(`td`,null,f($(e)),1),_(`td`,R,[_(`button`,{type:`button`,class:`prm-btn-outline sm`,onClick:t=>ye(e)},`修改`,8,z),_(`button`,{type:`button`,class:`prm-btn-light sm`,onClick:t=>xe(e)},`删除`,8,B)])]))),128))])])):t(``,!0),H.value?t(``,!0):(m(),g(`div`,V,f(S.value.length===0?`本场暂无启用中的赛道,请先在「赛事中心」配置赛道后再维护评审员。`:``),1))])),[[E,G.value]]),c[8]||=_(`p`,{class:`footnote`},` 正式环境仅存密码摘要;列表中为占位符而非明文密码。 `,-1)])])),[[E,W.value]]):(m(),te(l,{key:0,type:`warning`,"show-icon":``,closable:!1,class:`rev-alert`,title:`请先在顶栏「赛事切换」中选择一场赛事,再按赛道维护评审员。`})),i(T,{modelValue:K.value,"onUpdate:modelValue":c[5]||=e=>K.value=e,title:q.value===`create`?`新增评审员`:`修改评审员`,width:`520px`,"destroy-on-close":``,class:`rev-dialog`},{footer:h(()=>[i(w,{onClick:c[4]||=e=>K.value=!1},{default:h(()=>[...c[9]||=[n(`取消`,-1)]]),_:1}),i(w,{type:`primary`,loading:J.value,onClick:be},{default:h(()=>[...c[10]||=[n(`确定`,-1)]]),_:1},8,[`loading`])]),default:h(()=>[i(C,{ref_key:`formRef`,ref:X,model:Z.value,rules:fe,"label-position":`top`,class:`rev-form`},{default:h(()=>[i(x,{gutter:12},{default:h(()=>[i(y,{span:12},{default:h(()=>[i(v,{label:`姓名`,prop:`name`,required:``},{default:h(()=>[i(p,{modelValue:Z.value.name,"onUpdate:modelValue":c[0]||=e=>Z.value.name=e,maxlength:`64`,placeholder:`必填`},null,8,[`modelValue`])]),_:1})]),_:1}),i(y,{span:12},{default:h(()=>[i(v,{label:`电话`,prop:`mobile`},{default:h(()=>[i(p,{modelValue:Z.value.mobile,"onUpdate:modelValue":c[1]||=e=>Z.value.mobile=e,maxlength:`20`,placeholder:`可选`},null,8,[`modelValue`])]),_:1})]),_:1}),i(y,{span:12},{default:h(()=>[i(v,{label:`账户`,prop:`username`,required:``},{default:h(()=>[i(p,{modelValue:Z.value.username,"onUpdate:modelValue":c[2]||=e=>Z.value.username=e,maxlength:`64`,autocomplete:`off`,placeholder:`必填`},null,8,[`modelValue`])]),_:1})]),_:1}),i(y,{span:12},{default:h(()=>[i(v,{label:q.value===`create`?`密码`:`密码(不修改请留空)`,prop:`password`},{default:h(()=>[i(p,{modelValue:Z.value.password,"onUpdate:modelValue":c[3]||=e=>Z.value.password=e,type:`password`,"show-password":``,maxlength:`255`,autocomplete:`new-password`,placeholder:q.value===`create`?`必填`:`留空表示不修改`},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`])]),_:1})]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}}),[[`__scopeId`,`data-v-453a73aa`]]);export{H as default}; \ No newline at end of file +import{$t as e,C as t,D as n,Et as r,O as i,Q as ee,S as te,Y as a,Z as o,_t as s,at as c,b as l,ct as u,g as d,in as f,k as p,q as m,st as h,w as g,x as _}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{_ as v,c as y,i as b,l as x}from"./index-uojebQYd.js";import{t as S}from"./_plugin-vue_export-helper-S3RvzygF.js";import{o as C}from"./competitions-DSjdZQDh.js";import{t as w}from"./adminCompetition-DSwOzZGI.js";async function T(e){let{data:t}=await b.post(`/reviewers`,e),n=t?.data??t;if(!n||typeof n!=`object`)throw Error(`创建响应无效`);return n}async function E(e,t){let{data:n}=await b.put(`/reviewers/${e}`,t),r=n?.data??n;if(!r||typeof r!=`object`)throw Error(`更新响应无效`);return r}async function D(e){await b.delete(`/reviewers/${e}`)}function O(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 ne(e){let{data:t}=await b.get(`/reviewer-scopes`,{params:e});return O(t)}async function k(e){let{data:t}=await b.get(`/competitions/${e}/reviewer-scope-track-counts`),n=t?.data??t;return!n||typeof n!=`object`?{}:n}async function re(e){let{data:t}=await b.post(`/reviewer-scopes`,e),n=t?.data??t;if(!n||typeof n!=`object`)throw Error(`创建响应无效`);return n}async function ie(e){await b.delete(`/reviewer-scopes/${e}`)}var ae={class:`proto-reviewer-page admin-desktop-page`},oe={key:1,class:`reviewer-manage-shell`},se={class:`reviewer-track-panel`},ce={class:`reviewer-track-tabs`},le=[`onClick`],ue={class:`reviewer-track-tab-name`},de={class:`reviewer-track-tab-count`},A={class:`reviewer-editor-panel`},j={class:`reviewer-editor-head`},M={class:`reviewer-track-title`},N={class:`reviewer-track-meta mb-0`},P={class:`reviewer-editor-actions`},F=[`disabled`],I={class:`table-responsive`},L={key:0,class:`table table-sm align-middle mb-0 reviewer-manage-table`},R={class:`text-end reviewer-row-actions`},z=[`onClick`],B=[`onClick`],V={key:1,class:`empty-hint`},H=S(p({__name:`ReviewerManageView`,setup(p){let{selectedCompetitionId:b}=v(w()),S=s([]),O=s({}),H=s(null),U=s([]),W=s(!1),G=s(!1),K=s(!1),q=s(`create`),J=s(!1),Y=s(null),X=s(),Z=s({name:``,mobile:``,username:``,password:``}),fe={name:[{required:!0,message:`请填写姓名`,trigger:`blur`}],username:[{required:!0,message:`请填写账户`,trigger:`blur`},{pattern:/^[A-Za-z0-9._-]+$/,message:`仅字母、数字、点、横线或下划线`,trigger:`blur`}],password:[{validator:(e,t,n)=>{if(q.value===`create`&&(!t||String(t).trim()===``)){n(Error(`请填写密码`));return}if(t&&String(t).trim().length>0&&String(t).length<6){n(Error(`密码不少于 6 位`));return}n()},trigger:`blur`}]},pe=l(()=>S.value.find(e=>e.track_code===H.value)?.title??``),me=l(()=>`已配置 ${H.value?O.value[H.value]??0:0} 名评审员`);async function he(){let e=b.value;if(W.value=!0,!e){S.value=[],O.value={},H.value=null,W.value=!1;return}try{if(S.value=(await C(e)).filter(e=>e.is_enabled).sort((e,t)=>e.sort-t.sort),!S.value.length){H.value=null,O.value={};return}(!H.value||!S.value.some(e=>e.track_code===H.value))&&(H.value=S.value[0]?.track_code??null),O.value=await k(e)}catch(e){S.value=[],x.warning(e instanceof Error?e.message:`赛道加载失败`)}finally{W.value=!1}}async function Q(){let e=b.value,t=H.value;if(!e||!t){U.value=[];return}G.value=!0;try{U.value=(await ne({competition_id:e,track_code:t,page:1,per_page:500})).data,O.value=await k(e)}catch(e){U.value=[],x.error(e instanceof Error?e.message:`加载失败`)}finally{G.value=!1}}function ge(e){H.value=e}c(b,()=>{H.value=null,he().then(()=>Q())},{immediate:!0}),c(H,()=>{Q()});function $(e){return e.reviewer?.password_display??`—`}function _e(e){let t=e.reviewer?.mobile;return t&&String(t).trim()!==``?String(t):`—`}function ve(){q.value=`create`,Y.value=null,Z.value={name:``,mobile:``,username:``,password:``},K.value=!0}function ye(e){q.value=`edit`,Y.value=e.reviewer_id;let t=e.reviewer;Z.value={name:t?.name??``,mobile:t?.mobile??``,username:t?.username??``,password:``},K.value=!0}async function be(){if(!X.value)return;let e=b.value,t=H.value;!e||!t||await X.value.validate(async n=>{if(n){J.value=!0;try{if(q.value===`create`){let n=0;try{n=(await T({name:Z.value.name.trim(),username:Z.value.username.trim(),password:Z.value.password,mobile:Z.value.mobile.trim()||null})).id}catch(e){x.error(e instanceof Error?e.message:`创建评审员失败`),J.value=!1;return}try{await re({reviewer_id:n,competition_id:e,track_code:t})}catch(e){try{await D(n)}catch{}x.error(e instanceof Error?e.message:`绑定赛道失败`),J.value=!1;return}x.success(`评审员信息已保存`)}else{let e=Y.value;await E(e,{name:Z.value.name.trim(),username:Z.value.username.trim(),mobile:Z.value.mobile.trim()||null,...Z.value.password.trim()?{password:Z.value.password.trim()}:{}}),x.success(`评审员信息已更新`)}K.value=!1,await Q(),e&&(O.value=await k(e))}catch(e){x.error(e instanceof Error?e.message:`保存失败`)}finally{J.value=!1}}})}async function xe(e){let t=e.reviewer?.name??`该评审员`;try{await y.confirm(`确定移除「${t}」对本赛道的评审权限吗?(不删除全局账号)`,`确认删除`,{type:`warning`,confirmButtonText:`确定删除`,cancelButtonText:`取消`})}catch{return}try{await ie(e.id),x.success(`已移除`),await Q();let t=b.value;t&&(O.value=await k(t))}catch(e){x.error(e instanceof Error?e.message:`删除失败`)}}return(s,c)=>{let l=o(`el-alert`),p=o(`el-input`),v=o(`el-form-item`),y=o(`el-col`),x=o(`el-row`),C=o(`el-form`),w=o(`el-button`),T=o(`el-dialog`),E=ee(`loading`);return m(),g(`div`,ae,[c[11]||=_(`div`,{class:`rev-head`},[_(`h5`,{class:`section-title mb-0`},`评审员管理`)],-1),r(b)?u((m(),g(`div`,oe,[_(`aside`,se,[c[6]||=_(`div`,{class:`reviewer-track-panel-title`},`赛道配置`,-1),_(`div`,ce,[(m(!0),g(d,null,a(S.value,t=>(m(),g(`button`,{key:t.id,type:`button`,class:e([`reviewer-track-tab`,{active:H.value===t.track_code}]),onClick:e=>ge(t.track_code)},[_(`span`,ue,f(t.title),1),_(`span`,de,f(O.value[t.track_code]??0)+` 人`,1)],10,le))),128))])]),_(`section`,A,[_(`div`,j,[_(`div`,null,[_(`h6`,M,f(pe.value||`—`),1),_(`p`,N,f(me.value),1)]),_(`div`,P,[_(`button`,{type:`button`,class:`prm-btn-outline`,disabled:!H.value,onClick:ve},` 新增评审员 `,8,F)])]),u((m(),g(`div`,I,[H.value?(m(),g(`table`,L,[c[7]||=_(`thead`,null,[_(`tr`,null,[_(`th`,{style:{width:`18%`}},`姓名`),_(`th`,{style:{width:`22%`}},`电话`),_(`th`,{style:{width:`24%`}},`账户`),_(`th`,{style:{width:`24%`}},`密码`),_(`th`,{class:`text-end`,style:{width:`12%`}},`操作`)])],-1),_(`tbody`,null,[(m(!0),g(d,null,a(U.value,e=>(m(),g(`tr`,{key:e.id},[_(`td`,null,f(e.reviewer?.name??`—`),1),_(`td`,null,f(_e(e)),1),_(`td`,null,f(e.reviewer?.username??`—`),1),_(`td`,null,f($(e)),1),_(`td`,R,[_(`button`,{type:`button`,class:`prm-btn-outline sm`,onClick:t=>ye(e)},`修改`,8,z),_(`button`,{type:`button`,class:`prm-btn-light sm`,onClick:t=>xe(e)},`删除`,8,B)])]))),128))])])):t(``,!0),H.value?t(``,!0):(m(),g(`div`,V,f(S.value.length===0?`本场暂无启用中的赛道,请先在「赛事中心」配置赛道后再维护评审员。`:``),1))])),[[E,G.value]]),c[8]||=_(`p`,{class:`footnote`},` 正式环境仅存密码摘要;列表中为占位符而非明文密码。 `,-1)])])),[[E,W.value]]):(m(),te(l,{key:0,type:`warning`,"show-icon":``,closable:!1,class:`rev-alert`,title:`请先在顶栏「赛事切换」中选择一场赛事,再按赛道维护评审员。`})),i(T,{modelValue:K.value,"onUpdate:modelValue":c[5]||=e=>K.value=e,title:q.value===`create`?`新增评审员`:`修改评审员`,width:`520px`,"destroy-on-close":``,class:`rev-dialog`},{footer:h(()=>[i(w,{onClick:c[4]||=e=>K.value=!1},{default:h(()=>[...c[9]||=[n(`取消`,-1)]]),_:1}),i(w,{type:`primary`,loading:J.value,onClick:be},{default:h(()=>[...c[10]||=[n(`确定`,-1)]]),_:1},8,[`loading`])]),default:h(()=>[i(C,{ref_key:`formRef`,ref:X,model:Z.value,rules:fe,"label-position":`top`,class:`rev-form`},{default:h(()=>[i(x,{gutter:12},{default:h(()=>[i(y,{span:12},{default:h(()=>[i(v,{label:`姓名`,prop:`name`,required:``},{default:h(()=>[i(p,{modelValue:Z.value.name,"onUpdate:modelValue":c[0]||=e=>Z.value.name=e,maxlength:`64`,placeholder:`必填`},null,8,[`modelValue`])]),_:1})]),_:1}),i(y,{span:12},{default:h(()=>[i(v,{label:`电话`,prop:`mobile`},{default:h(()=>[i(p,{modelValue:Z.value.mobile,"onUpdate:modelValue":c[1]||=e=>Z.value.mobile=e,maxlength:`20`,placeholder:`可选`},null,8,[`modelValue`])]),_:1})]),_:1}),i(y,{span:12},{default:h(()=>[i(v,{label:`账户`,prop:`username`,required:``},{default:h(()=>[i(p,{modelValue:Z.value.username,"onUpdate:modelValue":c[2]||=e=>Z.value.username=e,maxlength:`64`,autocomplete:`off`,placeholder:`必填`},null,8,[`modelValue`])]),_:1})]),_:1}),i(y,{span:12},{default:h(()=>[i(v,{label:q.value===`create`?`密码`:`密码(不修改请留空)`,prop:`password`},{default:h(()=>[i(p,{modelValue:Z.value.password,"onUpdate:modelValue":c[3]||=e=>Z.value.password=e,type:`password`,"show-password":``,maxlength:`255`,autocomplete:`new-password`,placeholder:q.value===`create`?`必填`:`留空表示不修改`},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`])]),_:1})]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}}),[[`__scopeId`,`data-v-453a73aa`]]);export{H as default}; \ No newline at end of file diff --git a/public/admin/assets/ReviewerProjectsView-yeZXvBKL.js b/public/admin/assets/ReviewerProjectsView-D5T4aOD3.js similarity index 96% rename from public/admin/assets/ReviewerProjectsView-yeZXvBKL.js rename to public/admin/assets/ReviewerProjectsView-D5T4aOD3.js index 1bbd653..1ed6c8b 100644 --- a/public/admin/assets/ReviewerProjectsView-yeZXvBKL.js +++ b/public/admin/assets/ReviewerProjectsView-D5T4aOD3.js @@ -1 +1 @@ -import{$t as e,C as t,D as n,O as r,W as i,Y as a,Z as o,_t as s,at as c,b as l,g as u,in as d,k as f,q as p,st as m,w as h,x as g}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{p as _,s as v,y}from"./api-COeuB3z6.js";import{o as b}from"./index-ijh93KpS.js";import{t as x}from"./_plugin-vue_export-helper-S3RvzygF.js";var S={class:`reviewer-projects-page d-flex flex-column flex-grow-1 h-100 min-h-0`},C={class:`container-fluid p-3 p-md-4`},w={key:0,class:`alert alert-warning py-2 small mb-3`,role:`alert`},T={key:1,class:`small text-secondary mb-3`},E={key:2,class:`small text-secondary mb-2`,"aria-live":`polite`},D={class:`table-responsive table-panel mb-0`},O={class:`table table-hover align-middle mb-0 admin-list-table`},k={key:0},A={class:`text-secondary text-nowrap`},j={class:`reviewer-only-col`},M={class:`reviewer-only-col`},N={class:`reviewer-only-col text-nowrap`},P={class:`admin-actions-cell`},F={key:3,class:`d-flex align-items-center justify-content-between flex-wrap gap-2 mt-3`,"aria-label":`分页`},I=[`disabled`],L={class:`small text-secondary`},R=[`disabled`],z=x(f({__name:`ReviewerProjectsView`,setup(f){let x=b(),z=l(()=>String(x.params.slug??``).trim()),B=s([]),V=s(!1),H=s(``),U=s({current_page:1,last_page:1,per_page:20,total:0}),W=s(1);async function G(){let e=z.value,{token:t}=y();if(!e||!t){H.value=`未登录或缺少赛事信息`;return}V.value=!0,H.value=``;try{let n=new URLSearchParams;n.set(`competition_slug`,e),n.set(`page`,String(W.value)),n.set(`per_page`,`20`);let r=`${_()}${v}?${n.toString()}`,i=await fetch(r,{headers:{Authorization:`Bearer ${t}`,Accept:`application/json`}});if(!i.ok){let e=await i.json().catch(()=>({}));H.value=(typeof e==`object`&&e&&`message`in e?String(e.message??``):``)||`加载失败(${i.status})`,B.value=[];return}let a=await i.json();B.value=Array.isArray(a.data)?a.data:[];let o=a.meta;o&&(U.value={current_page:o.current_page??1,last_page:o.last_page??1,per_page:o.per_page??20,total:o.total??0})}catch{H.value=`网络错误,请稍后重试`,B.value=[]}finally{V.value=!1}}c([z,W],()=>void G()),i(()=>void G());let K=l(()=>{let e=U.value.total;return e<=0?`暂无报名数据`:`共 ${e} 条,第 ${U.value.current_page} / ${U.value.last_page} 页`});function q(){W.value>1&&--W.value}function J(){W.value{let c=o(`router-link`);return p(),h(`div`,S,[g(`div`,C,[s[2]||=g(`div`,{class:`d-flex justify-content-between align-items-center flex-wrap gap-2 mb-3`},[g(`h5`,{class:`mb-0 section-title`},`项目评审`)],-1),H.value?(p(),h(`p`,w,d(H.value),1)):V.value?(p(),h(`p`,T,`加载中…`)):(p(),h(`p`,E,d(K.value),1)),g(`div`,D,[g(`table`,O,[s[1]||=g(`thead`,{class:`table-light`},[g(`tr`,null,[g(`th`,{class:`text-nowrap`,style:{width:`3.5rem`}},`序号`),g(`th`,null,`项目编号`),g(`th`,null,`项目名称`),g(`th`,null,`姓名`),g(`th`,null,`项目所在地`),g(`th`,{class:`reviewer-only-col`},`毕业院校`),g(`th`,{class:`reviewer-only-col`},`最高学历`),g(`th`,null,`赛道`),g(`th`,null,`评分`),g(`th`,{class:`reviewer-only-col`},`提交时间`),g(`th`,{class:`admin-actions-head`},`操作`)])],-1),g(`tbody`,null,[!V.value&&B.value.length===0&&!H.value?(p(),h(`tr`,k,[...s[0]||=[g(`td`,{colspan:`11`,class:`text-center text-secondary py-4`},`暂无符合条件的数据`,-1)]])):t(``,!0),(p(!0),h(u,null,a(B.value,(t,i)=>(p(),h(`tr`,{key:t.id,"data-list-row":``},[g(`td`,A,d(Y(i)),1),g(`td`,null,d(t.project_code),1),g(`td`,null,d(t.project_name||`—`),1),g(`td`,null,d(t.player_name||`—`),1),g(`td`,null,d(t.location_label),1),g(`td`,j,d(t.school||`—`),1),g(`td`,M,d(t.degree||`—`),1),g(`td`,null,d(t.track_title||t.track_code||`—`),1),g(`td`,{class:e({"admin-total-pending-text":t.score_is_pending})},d(t.score_display),3),g(`td`,N,d(t.submitted_at||`—`),1),g(`td`,P,[r(c,{class:`btn btn-sm btn-outline-primary`,to:{name:`reviewer-application-detail`,params:{slug:z.value,id:String(t.id)}}},{default:m(()=>[n(d(X(i)),1)]),_:2},1032,[`to`])])]))),128))])])]),U.value.last_page>1?(p(),h(`nav`,F,[g(`button`,{type:`button`,class:`btn btn-sm btn-light border`,disabled:W.value<=1||V.value,onClick:q},` 上一页 `,8,I),g(`span`,L,d(U.value.current_page)+` / `+d(U.value.last_page),1),g(`button`,{type:`button`,class:`btn btn-sm btn-light border`,disabled:W.value>=U.value.last_page||V.value,onClick:J},` 下一页 `,8,R)])):t(``,!0)])])}}}),[[`__scopeId`,`data-v-631ee0e2`]]);export{z as default}; \ No newline at end of file +import{$t as e,C as t,D as n,O as r,W as i,Y as a,Z as o,_t as s,at as c,b as l,g as u,in as d,k as f,q as p,st as m,w as h,x as g}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{p as _,s as v,y}from"./api-COeuB3z6.js";import{o as b}from"./index-uojebQYd.js";import{t as x}from"./_plugin-vue_export-helper-S3RvzygF.js";var S={class:`reviewer-projects-page d-flex flex-column flex-grow-1 h-100 min-h-0`},C={class:`container-fluid p-3 p-md-4`},w={key:0,class:`alert alert-warning py-2 small mb-3`,role:`alert`},T={key:1,class:`small text-secondary mb-3`},E={key:2,class:`small text-secondary mb-2`,"aria-live":`polite`},D={class:`table-responsive table-panel mb-0`},O={class:`table table-hover align-middle mb-0 admin-list-table`},k={key:0},A={class:`text-secondary text-nowrap`},j={class:`reviewer-only-col`},M={class:`reviewer-only-col`},N={class:`reviewer-only-col text-nowrap`},P={class:`admin-actions-cell`},F={key:3,class:`d-flex align-items-center justify-content-between flex-wrap gap-2 mt-3`,"aria-label":`分页`},I=[`disabled`],L={class:`small text-secondary`},R=[`disabled`],z=x(f({__name:`ReviewerProjectsView`,setup(f){let x=b(),z=l(()=>String(x.params.slug??``).trim()),B=s([]),V=s(!1),H=s(``),U=s({current_page:1,last_page:1,per_page:20,total:0}),W=s(1);async function G(){let e=z.value,{token:t}=y();if(!e||!t){H.value=`未登录或缺少赛事信息`;return}V.value=!0,H.value=``;try{let n=new URLSearchParams;n.set(`competition_slug`,e),n.set(`page`,String(W.value)),n.set(`per_page`,`20`);let r=`${_()}${v}?${n.toString()}`,i=await fetch(r,{headers:{Authorization:`Bearer ${t}`,Accept:`application/json`}});if(!i.ok){let e=await i.json().catch(()=>({}));H.value=(typeof e==`object`&&e&&`message`in e?String(e.message??``):``)||`加载失败(${i.status})`,B.value=[];return}let a=await i.json();B.value=Array.isArray(a.data)?a.data:[];let o=a.meta;o&&(U.value={current_page:o.current_page??1,last_page:o.last_page??1,per_page:o.per_page??20,total:o.total??0})}catch{H.value=`网络错误,请稍后重试`,B.value=[]}finally{V.value=!1}}c([z,W],()=>void G()),i(()=>void G());let K=l(()=>{let e=U.value.total;return e<=0?`暂无报名数据`:`共 ${e} 条,第 ${U.value.current_page} / ${U.value.last_page} 页`});function q(){W.value>1&&--W.value}function J(){W.value{let c=o(`router-link`);return p(),h(`div`,S,[g(`div`,C,[s[2]||=g(`div`,{class:`d-flex justify-content-between align-items-center flex-wrap gap-2 mb-3`},[g(`h5`,{class:`mb-0 section-title`},`项目评审`)],-1),H.value?(p(),h(`p`,w,d(H.value),1)):V.value?(p(),h(`p`,T,`加载中…`)):(p(),h(`p`,E,d(K.value),1)),g(`div`,D,[g(`table`,O,[s[1]||=g(`thead`,{class:`table-light`},[g(`tr`,null,[g(`th`,{class:`text-nowrap`,style:{width:`3.5rem`}},`序号`),g(`th`,null,`项目编号`),g(`th`,null,`项目名称`),g(`th`,null,`姓名`),g(`th`,null,`项目所在地`),g(`th`,{class:`reviewer-only-col`},`毕业院校`),g(`th`,{class:`reviewer-only-col`},`最高学历`),g(`th`,null,`赛道`),g(`th`,null,`评分`),g(`th`,{class:`reviewer-only-col`},`提交时间`),g(`th`,{class:`admin-actions-head`},`操作`)])],-1),g(`tbody`,null,[!V.value&&B.value.length===0&&!H.value?(p(),h(`tr`,k,[...s[0]||=[g(`td`,{colspan:`11`,class:`text-center text-secondary py-4`},`暂无符合条件的数据`,-1)]])):t(``,!0),(p(!0),h(u,null,a(B.value,(t,i)=>(p(),h(`tr`,{key:t.id,"data-list-row":``},[g(`td`,A,d(Y(i)),1),g(`td`,null,d(t.project_code),1),g(`td`,null,d(t.project_name||`—`),1),g(`td`,null,d(t.player_name||`—`),1),g(`td`,null,d(t.location_label),1),g(`td`,j,d(t.school||`—`),1),g(`td`,M,d(t.degree||`—`),1),g(`td`,null,d(t.track_title||t.track_code||`—`),1),g(`td`,{class:e({"admin-total-pending-text":t.score_is_pending})},d(t.score_display),3),g(`td`,N,d(t.submitted_at||`—`),1),g(`td`,P,[r(c,{class:`btn btn-sm btn-outline-primary`,to:{name:`reviewer-application-detail`,params:{slug:z.value,id:String(t.id)}}},{default:m(()=>[n(d(X(i)),1)]),_:2},1032,[`to`])])]))),128))])])]),U.value.last_page>1?(p(),h(`nav`,F,[g(`button`,{type:`button`,class:`btn btn-sm btn-light border`,disabled:W.value<=1||V.value,onClick:q},` 上一页 `,8,I),g(`span`,L,d(U.value.current_page)+` / `+d(U.value.last_page),1),g(`button`,{type:`button`,class:`btn btn-sm btn-light border`,disabled:W.value>=U.value.last_page||V.value,onClick:J},` 下一页 `,8,R)])):t(``,!0)])])}}}),[[`__scopeId`,`data-v-631ee0e2`]]);export{z as default}; \ No newline at end of file diff --git a/public/admin/assets/adminCompetition-CbJJ6VFP.js b/public/admin/assets/adminCompetition-DSwOzZGI.js similarity index 86% rename from public/admin/assets/adminCompetition-CbJJ6VFP.js rename to public/admin/assets/adminCompetition-DSwOzZGI.js index c5fc999..f749204 100644 --- a/public/admin/assets/adminCompetition-CbJJ6VFP.js +++ b/public/admin/assets/adminCompetition-DSwOzZGI.js @@ -1 +1 @@ -import{_t as e,b as t}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{t as n}from"./api-COeuB3z6.js";import{g as r}from"./index-ijh93KpS.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}; \ No newline at end of file +import{_t as e,b as t}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{t as n}from"./api-COeuB3z6.js";import{g as r}from"./index-uojebQYd.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}; \ No newline at end of file diff --git a/public/admin/assets/auth-BwJdTHs_.js b/public/admin/assets/auth-Ea2LVFPg.js similarity index 91% rename from public/admin/assets/auth-BwJdTHs_.js rename to public/admin/assets/auth-Ea2LVFPg.js index 9f4c60c..8dfed2c 100644 --- a/public/admin/assets/auth-BwJdTHs_.js +++ b/public/admin/assets/auth-Ea2LVFPg.js @@ -1,3 +1,3 @@ -import{a as e,i as t}from"./index-ijh93KpS.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-uojebQYd.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.put(`/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}; \ No newline at end of file diff --git a/public/admin/assets/competitions-Onk4QsGa.js b/public/admin/assets/competitions-DSjdZQDh.js similarity index 94% rename from public/admin/assets/competitions-Onk4QsGa.js rename to public/admin/assets/competitions-DSjdZQDh.js index 6217770..145ce45 100644 --- a/public/admin/assets/competitions-Onk4QsGa.js +++ b/public/admin/assets/competitions-DSjdZQDh.js @@ -1 +1 @@ -import{i as e}from"./index-ijh93KpS.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.put(`/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}; \ No newline at end of file +import{i as e}from"./index-uojebQYd.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.put(`/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}; \ No newline at end of file diff --git a/public/admin/assets/index-ijh93KpS.js b/public/admin/assets/index-uojebQYd.js similarity index 99% rename from public/admin/assets/index-ijh93KpS.js rename to public/admin/assets/index-uojebQYd.js index c0a7b4f..9790d99 100644 --- a/public/admin/assets/index-ijh93KpS.js +++ b/public/admin/assets/index-uojebQYd.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AdminDashboardView-CH4JDbjM.js","assets/_plugin-vue_export-helper-S3RvzygF.js","assets/vue.runtime.esm-bundler-6_koQ1g6.js","assets/competitions-Onk4QsGa.js","assets/adminCompetition-CbJJ6VFP.js","assets/api-COeuB3z6.js","assets/competitionAdminLabels-BZ8tpy9B.js","assets/AdminDashboardView-Cz0IsfFx.css","assets/CompetitionListView-C7Ifoool.js","assets/CompetitionListView-BkKXaYfF.css","assets/CompetitionFormView-DF_rZmK6.js","assets/competitionBranding-Bz_llsts.js","assets/CompetitionFormView-RflsFl9b.css","assets/PublicSourceChannelManageView-DQDJdNxd.js","assets/PublicSourceChannelManageView-BlYQZ21s.css","assets/ReviewerManageView-qJIQ83u-.js","assets/ReviewerManageView-CpT5MNqE.css","assets/ReviewPortalView-DsEnQsTS.js","assets/ReviewPortalView-TJk8rGN4.css","assets/AdminMenuGroupLayout-lF5VKug4.js","assets/MainLayout-ol9EQ-NJ.js","assets/MainLayout-Cvj_dHyL.css","assets/bootstrap-CwawXFoc.css","assets/prototype-styles-CaQ6lzzg.css","assets/ParticipantLandingView-CP4GSdBL.js","assets/LoginView-CwSyG8BF.js","assets/participantContact-0qVpTiM0.js","assets/login-page-overrides-DYbz0V_p.css","assets/ReviewerLoginView-C_nJ5Jja.js","assets/ReviewerLayout-C_9WFlYS.js","assets/ReviewerLayout-CZ4lqrIz.css","assets/ReviewerApplicationDetailView-CmJlyfLp.js","assets/ReviewerApplicationDetailView-DnTK66GC.css","assets/ReviewerProjectsView-yeZXvBKL.js","assets/ReviewerProjectsView-DPGhOt9v.css","assets/ApplyView-ouDbvhxn.js","assets/ApplyView-BLPwl_gQ.css","assets/AdminLoginView-COSQRT-L.js","assets/auth-BwJdTHs_.js","assets/AdminLoginView-CKOqnZil.css","assets/AdminLayout-1Sqp0RY-.js","assets/AdminLayout-DgE4Gt0n.css"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AdminDashboardView-Dls0Ae8x.js","assets/_plugin-vue_export-helper-S3RvzygF.js","assets/vue.runtime.esm-bundler-6_koQ1g6.js","assets/competitions-DSjdZQDh.js","assets/adminCompetition-DSwOzZGI.js","assets/api-COeuB3z6.js","assets/competitionAdminLabels-BZ8tpy9B.js","assets/AdminDashboardView-Cz0IsfFx.css","assets/CompetitionListView-Ba7l2pxV.js","assets/CompetitionListView-BkKXaYfF.css","assets/CompetitionFormView-B--KKhgq.js","assets/competitionBranding-Bz_llsts.js","assets/CompetitionFormView-RflsFl9b.css","assets/PublicSourceChannelManageView-CJW3ArE5.js","assets/PublicSourceChannelManageView-BlYQZ21s.css","assets/ReviewerManageView-DWDXGnSP.js","assets/ReviewerManageView-CpT5MNqE.css","assets/ReviewPortalView-BHOL-JZ5.js","assets/ReviewPortalView-TJk8rGN4.css","assets/AdminMenuGroupLayout-lF5VKug4.js","assets/MainLayout-b1_-NQqr.js","assets/MainLayout-Cvj_dHyL.css","assets/bootstrap-CwawXFoc.css","assets/prototype-styles-CaQ6lzzg.css","assets/ParticipantLandingView-4uYKthyb.js","assets/LoginView-BtqOdvUQ.js","assets/participantContact-0qVpTiM0.js","assets/login-page-overrides-DYbz0V_p.css","assets/ReviewerLoginView-DM6OZz-a.js","assets/ReviewerLayout-DhOGLZa5.js","assets/ReviewerLayout-CZ4lqrIz.css","assets/ReviewerApplicationDetailView-De8sw5Ya.js","assets/ReviewerApplicationDetailView-DnTK66GC.css","assets/ReviewerProjectsView-D5T4aOD3.js","assets/ReviewerProjectsView-DPGhOt9v.css","assets/ApplyView-DkM8Rp3c.js","assets/ApplyView-CfKt5pzN.css","assets/AdminLoginView-CwE2Yo_p.js","assets/auth-Ea2LVFPg.js","assets/AdminLoginView-CKOqnZil.css","assets/AdminLayout-N6R9h--Q.js","assets/AdminLayout-DgE4Gt0n.css"])))=>i.map(i=>d[i]); import{$ as e,$t as t,A as n,At as r,B as i,Bt as a,C as o,Ct as s,D as c,Et as l,F as u,Ft as d,G as f,Gt as p,H as m,It as h,J as g,K as _,Kt as v,L as y,Lt as b,M as x,N as S,O as C,P as w,Pt as T,Q as E,R as D,S as O,St as k,T as A,Tt as j,U as M,Ut as N,V as ee,W as P,X as F,Y as te,Yt as I,Z as L,_ as ne,_t as R,a as re,an as ie,at as z,b as B,bt as V,cn as ae,ct as oe,d as se,dt as ce,en as le,et as ue,f as de,ft as fe,g as H,gt as pe,h as me,ht as he,in as U,it as ge,j as _e,jt as ve,k as W,kt as ye,l as be,lt as xe,m as Se,mt as Ce,n as we,on as Te,ot as Ee,p as De,pt as Oe,q as G,r as ke,rt as Ae,s as je,st as K,t as Me,tn as Ne,tt as Pe,un as Fe,ut as Ie,v as Le,vt as Re,w as q,wt as ze,x as J,xt as Be,y as Ve,yt as He,z as Ue,zt as We}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{_ as Ge,f as Ke,i as qe,n as Je,p as Ye,r as Xe,u as Ze,v as Qe,y as $e}from"./api-COeuB3z6.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var et=`bottom`,tt=`right`,nt=`left`,rt=`auto`,it=[`top`,et,tt,nt],at=`start`,ot=`clippingParents`,st=`viewport`,ct=`popper`,lt=`reference`,ut=it.reduce(function(e,t){return e.concat([t+`-`+at,t+`-end`])},[]),dt=[].concat(it,[rt]).reduce(function(e,t){return e.concat([t,t+`-`+at,t+`-end`])},[]),ft=`beforeRead`,pt=`read`,mt=`afterRead`,ht=`beforeMain`,gt=`main`,_t=`afterMain`,vt=`beforeWrite`,yt=`write`,bt=`afterWrite`,xt=[ft,pt,mt,ht,gt,_t,vt,yt,bt];function St(e){return e?(e.nodeName||``).toLowerCase():null}function Ct(e){if(e==null)return window;if(e.toString()!==`[object Window]`){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function wt(e){return e instanceof Ct(e).Element||e instanceof Element}function Tt(e){return e instanceof Ct(e).HTMLElement||e instanceof HTMLElement}function Et(e){return typeof ShadowRoot>`u`?!1:e instanceof Ct(e).ShadowRoot||e instanceof ShadowRoot}function Dt(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},i=t.elements[e];!Tt(i)||!St(i)||(Object.assign(i.style,n),Object.keys(r).forEach(function(e){var t=r[e];t===!1?i.removeAttribute(e):i.setAttribute(e,t===!0?``:t)}))})}function Ot(e){var t=e.state,n={popper:{position:t.options.strategy,left:`0`,top:`0`,margin:`0`},arrow:{position:`absolute`},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var r=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]=``,e},{});!Tt(r)||!St(r)||(Object.assign(r.style,a),Object.keys(i).forEach(function(e){r.removeAttribute(e)}))})}}var kt={name:`applyStyles`,enabled:!0,phase:`write`,fn:Dt,effect:Ot,requires:[`computeStyles`]};function At(e){return e.split(`-`)[0]}var jt=Math.max,Mt=Math.min,Nt=Math.round;function Pt(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+`/`+e.version}).join(` `):navigator.userAgent}function Ft(){return!/^((?!chrome|android).)*safari/i.test(Pt())}function It(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,a=1;t&&Tt(e)&&(i=e.offsetWidth>0&&Nt(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&Nt(r.height)/e.offsetHeight||1);var o=(wt(e)?Ct(e):window).visualViewport,s=!Ft()&&n,c=(r.left+(s&&o?o.offsetLeft:0))/i,l=(r.top+(s&&o?o.offsetTop:0))/a,u=r.width/i,d=r.height/a;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c,x:c,y:l}}function Lt(e){var t=It(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Rt(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Et(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function zt(e){return Ct(e).getComputedStyle(e)}function Bt(e){return[`table`,`td`,`th`].indexOf(St(e))>=0}function Vt(e){return((wt(e)?e.ownerDocument:e.document)||window.document).documentElement}function Ht(e){return St(e)===`html`?e:e.assignedSlot||e.parentNode||(Et(e)?e.host:null)||Vt(e)}function Ut(e){return!Tt(e)||zt(e).position===`fixed`?null:e.offsetParent}function Wt(e){var t=/firefox/i.test(Pt());if(/Trident/i.test(Pt())&&Tt(e)&&zt(e).position===`fixed`)return null;var n=Ht(e);for(Et(n)&&(n=n.host);Tt(n)&&[`html`,`body`].indexOf(St(n))<0;){var r=zt(n);if(r.transform!==`none`||r.perspective!==`none`||r.contain===`paint`||[`transform`,`perspective`].indexOf(r.willChange)!==-1||t&&r.willChange===`filter`||t&&r.filter&&r.filter!==`none`)return n;n=n.parentNode}return null}function Gt(e){for(var t=Ct(e),n=Ut(e);n&&Bt(n)&&zt(n).position===`static`;)n=Ut(n);return n&&(St(n)===`html`||St(n)===`body`&&zt(n).position===`static`)?t:n||Wt(e)||t}function Kt(e){return[`top`,`bottom`].indexOf(e)>=0?`x`:`y`}function qt(e,t,n){return jt(e,Mt(t,n))}function Jt(e,t,n){var r=qt(e,t,n);return r>n?n:r}function Yt(){return{top:0,right:0,bottom:0,left:0}}function Xt(e){return Object.assign({},Yt(),e)}function Zt(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var Qt=function(e,t){return e=typeof e==`function`?e(Object.assign({},t.rects,{placement:t.placement})):e,Xt(typeof e==`number`?Zt(e,it):e)};function $t(e){var t,n=e.state,r=e.name,i=e.options,a=n.elements.arrow,o=n.modifiersData.popperOffsets,s=At(n.placement),c=Kt(s),l=[`left`,`right`].indexOf(s)>=0?`height`:`width`;if(!(!a||!o)){var u=Qt(i.padding,n),d=Lt(a),f=c===`y`?`top`:nt,p=c===`y`?et:tt,m=n.rects.reference[l]+n.rects.reference[c]-o[c]-n.rects.popper[l],h=o[c]-n.rects.reference[c],g=Gt(a),_=g?c===`y`?g.clientHeight||0:g.clientWidth||0:0,v=m/2-h/2,y=u[f],b=_-d[l]-u[p],x=_/2-d[l]/2+v,S=qt(y,x,b),C=c;n.modifiersData[r]=(t={},t[C]=S,t.centerOffset=S-x,t)}}function en(e){var t=e.state,n=e.options.element,r=n===void 0?`[data-popper-arrow]`:n;r!=null&&(typeof r==`string`&&(r=t.elements.popper.querySelector(r),!r)||Rt(t.elements.popper,r)&&(t.elements.arrow=r))}var tn={name:`arrow`,enabled:!0,phase:`main`,fn:$t,effect:en,requires:[`popperOffsets`],requiresIfExists:[`preventOverflow`]};function nn(e){return e.split(`-`)[1]}var rn={top:`auto`,right:`auto`,bottom:`auto`,left:`auto`};function an(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:Nt(n*i)/i||0,y:Nt(r*i)/i||0}}function on(e){var t,n=e.popper,r=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,c=e.gpuAcceleration,l=e.adaptive,u=e.roundOffsets,d=e.isFixed,f=o.x,p=f===void 0?0:f,m=o.y,h=m===void 0?0:m,g=typeof u==`function`?u({x:p,y:h}):{x:p,y:h};p=g.x,h=g.y;var _=o.hasOwnProperty(`x`),v=o.hasOwnProperty(`y`),y=nt,b=`top`,x=window;if(l){var S=Gt(n),C=`clientHeight`,w=`clientWidth`;if(S===Ct(n)&&(S=Vt(n),zt(S).position!==`static`&&s===`absolute`&&(C=`scrollHeight`,w=`scrollWidth`)),S=S,i===`top`||(i===`left`||i===`right`)&&a===`end`){b=et;var T=d&&S===x&&x.visualViewport?x.visualViewport.height:S[C];h-=T-r.height,h*=c?1:-1}if(i===`left`||(i===`top`||i===`bottom`)&&a===`end`){y=tt;var E=d&&S===x&&x.visualViewport?x.visualViewport.width:S[w];p-=E-r.width,p*=c?1:-1}}var D=Object.assign({position:s},l&&rn),O=u===!0?an({x:p,y:h},Ct(n)):{x:p,y:h};if(p=O.x,h=O.y,c){var k;return Object.assign({},D,(k={},k[b]=v?`0`:``,k[y]=_?`0`:``,k.transform=(x.devicePixelRatio||1)<=1?`translate(`+p+`px, `+h+`px)`:`translate3d(`+p+`px, `+h+`px, 0)`,k))}return Object.assign({},D,(t={},t[b]=v?h+`px`:``,t[y]=_?p+`px`:``,t.transform=``,t))}function sn(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0?!0:r,a=n.adaptive,o=a===void 0?!0:a,s=n.roundOffsets,c=s===void 0?!0:s,l={placement:At(t.placement),variation:nn(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy===`fixed`};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,on(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:c})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,on(Object.assign({},l,{offsets:t.modifiersData.arrow,position:`absolute`,adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var cn={name:`computeStyles`,enabled:!0,phase:`beforeWrite`,fn:sn,data:{}},ln={passive:!0};function un(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=i===void 0?!0:i,o=r.resize,s=o===void 0?!0:o,c=Ct(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach(function(e){e.addEventListener(`scroll`,n.update,ln)}),s&&c.addEventListener(`resize`,n.update,ln),function(){a&&l.forEach(function(e){e.removeEventListener(`scroll`,n.update,ln)}),s&&c.removeEventListener(`resize`,n.update,ln)}}var dn={name:`eventListeners`,enabled:!0,phase:`write`,fn:function(){},effect:un,data:{}},fn={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function pn(e){return e.replace(/left|right|bottom|top/g,function(e){return fn[e]})}var mn={start:`end`,end:`start`};function hn(e){return e.replace(/start|end/g,function(e){return mn[e]})}function gn(e){var t=Ct(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function _n(e){return It(Vt(e)).left+gn(e).scrollLeft}function vn(e,t){var n=Ct(e),r=Vt(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;var l=Ft();(l||!l&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}return{width:a,height:o,x:s+_n(e),y:c}}function yn(e){var t=Vt(e),n=gn(e),r=e.ownerDocument?.body,i=jt(t.scrollWidth,t.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=jt(t.scrollHeight,t.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),o=-n.scrollLeft+_n(e),s=-n.scrollTop;return zt(r||t).direction===`rtl`&&(o+=jt(t.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:o,y:s}}function bn(e){var t=zt(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function xn(e){return[`html`,`body`,`#document`].indexOf(St(e))>=0?e.ownerDocument.body:Tt(e)&&bn(e)?e:xn(Ht(e))}function Sn(e,t){t===void 0&&(t=[]);var n=xn(e),r=n===e.ownerDocument?.body,i=Ct(n),a=r?[i].concat(i.visualViewport||[],bn(n)?n:[]):n,o=t.concat(a);return r?o:o.concat(Sn(Ht(a)))}function Cn(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function wn(e,t){var n=It(e,!1,t===`fixed`);return n.top+=e.clientTop,n.left+=e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function Tn(e,t,n){return t===`viewport`?Cn(vn(e,n)):wt(t)?wn(t,n):Cn(yn(Vt(e)))}function En(e){var t=Sn(Ht(e)),n=[`absolute`,`fixed`].indexOf(zt(e).position)>=0&&Tt(e)?Gt(e):e;return wt(n)?t.filter(function(e){return wt(e)&&Rt(e,n)&&St(e)!==`body`}):[]}function Dn(e,t,n,r){var i=t===`clippingParents`?En(e):[].concat(t),a=[].concat(i,[n]),o=a[0],s=a.reduce(function(t,n){var i=Tn(e,n,r);return t.top=jt(i.top,t.top),t.right=Mt(i.right,t.right),t.bottom=Mt(i.bottom,t.bottom),t.left=jt(i.left,t.left),t},Tn(e,o,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function On(e){var t=e.reference,n=e.element,r=e.placement,i=r?At(r):null,a=r?nn(r):null,o=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2,c;switch(i){case`top`:c={x:o,y:t.y-n.height};break;case et:c={x:o,y:t.y+t.height};break;case tt:c={x:t.x+t.width,y:s};break;case nt:c={x:t.x-n.width,y:s};break;default:c={x:t.x,y:t.y}}var l=i?Kt(i):null;if(l!=null){var u=l===`y`?`height`:`width`;switch(a){case at:c[l]=c[l]-(t[u]/2-n[u]/2);break;case`end`:c[l]=c[l]+(t[u]/2-n[u]/2);break;default:}}return c}function kn(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,a=n.strategy,o=a===void 0?e.strategy:a,s=n.boundary,c=s===void 0?ot:s,l=n.rootBoundary,u=l===void 0?st:l,d=n.elementContext,f=d===void 0?ct:d,p=n.altBoundary,m=p===void 0?!1:p,h=n.padding,g=h===void 0?0:h,_=Xt(typeof g==`number`?Zt(g,it):g),v=f===`popper`?lt:ct,y=e.rects.popper,b=e.elements[m?v:f],x=Dn(wt(b)?b:b.contextElement||Vt(e.elements.popper),c,u,o),S=It(e.elements.reference),C=On({reference:S,element:y,strategy:`absolute`,placement:i}),w=Cn(Object.assign({},y,C)),T=f===`popper`?w:S,E={top:x.top-T.top+_.top,bottom:T.bottom-x.bottom+_.bottom,left:x.left-T.left+_.left,right:T.right-x.right+_.right},D=e.modifiersData.offset;if(f===`popper`&&D){var O=D[i];Object.keys(E).forEach(function(e){var t=[`right`,`bottom`].indexOf(e)>=0?1:-1,n=[`top`,`bottom`].indexOf(e)>=0?`y`:`x`;E[e]+=O[n]*t})}return E}function An(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,a=n.rootBoundary,o=n.padding,s=n.flipVariations,c=n.allowedAutoPlacements,l=c===void 0?dt:c,u=nn(r),d=u?s?ut:ut.filter(function(e){return nn(e)===u}):it,f=d.filter(function(e){return l.indexOf(e)>=0});f.length===0&&(f=d);var p=f.reduce(function(t,n){return t[n]=kn(e,{placement:n,boundary:i,rootBoundary:a,padding:o})[At(n)],t},{});return Object.keys(p).sort(function(e,t){return p[e]-p[t]})}function jn(e){if(At(e)===`auto`)return[];var t=pn(e);return[hn(e),t,hn(t)]}function Mn(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,a=i===void 0?!0:i,o=n.altAxis,s=o===void 0?!0:o,c=n.fallbackPlacements,l=n.padding,u=n.boundary,d=n.rootBoundary,f=n.altBoundary,p=n.flipVariations,m=p===void 0?!0:p,h=n.allowedAutoPlacements,g=t.options.placement,_=At(g)===g,v=c||(_||!m?[pn(g)]:jn(g)),y=[g].concat(v).reduce(function(e,n){return e.concat(At(n)===`auto`?An(t,{placement:n,boundary:u,rootBoundary:d,padding:l,flipVariations:m,allowedAutoPlacements:h}):n)},[]),b=t.rects.reference,x=t.rects.popper,S=new Map,C=!0,w=y[0],T=0;T=0,A=k?`width`:`height`,j=kn(t,{placement:E,boundary:u,rootBoundary:d,altBoundary:f,padding:l}),M=k?O?tt:nt:O?et:`top`;b[A]>x[A]&&(M=pn(M));var N=pn(M),ee=[];if(a&&ee.push(j[D]<=0),s&&ee.push(j[M]<=0,j[N]<=0),ee.every(function(e){return e})){w=E,C=!1;break}S.set(E,ee)}if(C)for(var P=m?3:1,F=function(e){var t=y.find(function(t){var n=S.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return w=t,`break`},te=P;te>0&&F(te)!==`break`;te--);t.placement!==w&&(t.modifiersData[r]._skip=!0,t.placement=w,t.reset=!0)}}var Nn={name:`flip`,enabled:!0,phase:`main`,fn:Mn,requiresIfExists:[`offset`],data:{_skip:!1}};function Pn(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Fn(e){return[`top`,tt,et,nt].some(function(t){return e[t]>=0})}function In(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=kn(t,{elementContext:`reference`}),s=kn(t,{altBoundary:!0}),c=Pn(o,r),l=Pn(s,i,a),u=Fn(c),d=Fn(l);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}var Ln={name:`hide`,enabled:!0,phase:`main`,requiresIfExists:[`preventOverflow`],fn:In};function Rn(e,t,n){var r=At(e),i=[`left`,`top`].indexOf(r)>=0?-1:1,a=typeof n==`function`?n(Object.assign({},t,{placement:e})):n,o=a[0],s=a[1];return o||=0,s=(s||0)*i,[`left`,`right`].indexOf(r)>=0?{x:s,y:o}:{x:o,y:s}}function zn(e){var t=e.state,n=e.options,r=e.name,i=n.offset,a=i===void 0?[0,0]:i,o=dt.reduce(function(e,n){return e[n]=Rn(n,t.rects,a),e},{}),s=o[t.placement],c=s.x,l=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=c,t.modifiersData.popperOffsets.y+=l),t.modifiersData[r]=o}var Bn={name:`offset`,enabled:!0,phase:`main`,requires:[`popperOffsets`],fn:zn};function Vn(e){var t=e.state,n=e.name;t.modifiersData[n]=On({reference:t.rects.reference,element:t.rects.popper,strategy:`absolute`,placement:t.placement})}var Hn={name:`popperOffsets`,enabled:!0,phase:`read`,fn:Vn,data:{}};function Un(e){return e===`x`?`y`:`x`}function Wn(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,a=i===void 0?!0:i,o=n.altAxis,s=o===void 0?!1:o,c=n.boundary,l=n.rootBoundary,u=n.altBoundary,d=n.padding,f=n.tether,p=f===void 0?!0:f,m=n.tetherOffset,h=m===void 0?0:m,g=kn(t,{boundary:c,rootBoundary:l,padding:d,altBoundary:u}),_=At(t.placement),v=nn(t.placement),y=!v,b=Kt(_),x=Un(b),S=t.modifiersData.popperOffsets,C=t.rects.reference,w=t.rects.popper,T=typeof h==`function`?h(Object.assign({},t.rects,{placement:t.placement})):h,E=typeof T==`number`?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),D=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(S){if(a){var k=b===`y`?`top`:nt,A=b===`y`?et:tt,j=b===`y`?`height`:`width`,M=S[b],N=M+g[k],ee=M-g[A],P=p?-w[j]/2:0,F=v===`start`?C[j]:w[j],te=v===`start`?-w[j]:-C[j],I=t.elements.arrow,L=p&&I?Lt(I):{width:0,height:0},ne=t.modifiersData[`arrow#persistent`]?t.modifiersData[`arrow#persistent`].padding:Yt(),R=ne[k],re=ne[A],ie=qt(0,C[j],L[j]),z=y?C[j]/2-P-ie-R-E.mainAxis:F-ie-R-E.mainAxis,B=y?-C[j]/2+P+ie+re+E.mainAxis:te+ie+re+E.mainAxis,V=t.elements.arrow&&Gt(t.elements.arrow),ae=V?b===`y`?V.clientTop||0:V.clientLeft||0:0,oe=D?.[b]??0,se=M+z-oe-ae,ce=M+B-oe,le=qt(p?Mt(N,se):N,M,p?jt(ee,ce):ee);S[b]=le,O[b]=le-M}if(s){var ue=b===`x`?`top`:nt,de=b===`x`?et:tt,fe=S[x],H=x===`y`?`height`:`width`,pe=fe+g[ue],me=fe-g[de],he=[`top`,nt].indexOf(_)!==-1,U=D?.[x]??0,ge=he?pe:fe-C[H]-w[H]-U+E.altAxis,_e=he?fe+C[H]+w[H]-U-E.altAxis:me,ve=p&&he?Jt(ge,fe,_e):qt(p?ge:pe,fe,p?_e:me);S[x]=ve,O[x]=ve-fe}t.modifiersData[r]=O}}var Gn={name:`preventOverflow`,enabled:!0,phase:`main`,fn:Wn,requiresIfExists:[`offset`]};function Kn(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function qn(e){return e===Ct(e)||!Tt(e)?gn(e):Kn(e)}function Jn(e){var t=e.getBoundingClientRect(),n=Nt(t.width)/e.offsetWidth||1,r=Nt(t.height)/e.offsetHeight||1;return n!==1||r!==1}function Yn(e,t,n){n===void 0&&(n=!1);var r=Tt(t),i=Tt(t)&&Jn(t),a=Vt(t),o=It(e,i,n),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!n)&&((St(t)!==`body`||bn(a))&&(s=qn(t)),Tt(t)?(c=It(t,!0),c.x+=t.clientLeft,c.y+=t.clientTop):a&&(c.x=_n(a))),{x:o.left+s.scrollLeft-c.x,y:o.top+s.scrollTop-c.y,width:o.width,height:o.height}}function Xn(e){var t=new Map,n=new Set,r=[];e.forEach(function(e){t.set(e.name,e)});function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!n.has(e)){var r=t.get(e);r&&i(r)}}),r.push(e)}return e.forEach(function(e){n.has(e.name)||i(e)}),r}function Zn(e){var t=Xn(e);return xt.reduce(function(e,n){return e.concat(t.filter(function(e){return e.phase===n}))},[])}function Qn(e){var t;return function(){return t||=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})}),t}}function $n(e){var t=e.reduce(function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e},{});return Object.keys(t).map(function(e){return t[e]})}var er={placement:`bottom`,modifiers:[],strategy:`absolute`};function tr(){return![...arguments].some(function(e){return!(e&&typeof e.getBoundingClientRect==`function`)})}function nr(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,r=n===void 0?[]:n,i=t.defaultOptions,a=i===void 0?er:i;return function(e,t,n){n===void 0&&(n=a);var i={placement:`bottom`,orderedModifiers:[],options:Object.assign({},er,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},o=[],s=!1,c={state:i,setOptions:function(n){var o=typeof n==`function`?n(i.options):n;u(),i.options=Object.assign({},a,i.options,o),i.scrollParents={reference:wt(e)?Sn(e):e.contextElement?Sn(e.contextElement):[],popper:Sn(t)};var s=Zn($n([].concat(r,i.options.modifiers)));return i.orderedModifiers=s.filter(function(e){return e.enabled}),l(),c.update()},forceUpdate:function(){if(!s){var e=i.elements,t=e.reference,n=e.popper;if(tr(t,n)){i.rects={reference:Yn(t,Gt(n),i.options.strategy===`fixed`),popper:Lt(n)},i.reset=!1,i.placement=i.options.placement,i.orderedModifiers.forEach(function(e){return i.modifiersData[e.name]=Object.assign({},e.data)});for(var r=0;r_t,afterRead:()=>mt,afterWrite:()=>bt,applyStyles:()=>kt,arrow:()=>tn,auto:()=>rt,basePlacements:()=>it,beforeMain:()=>ht,beforeRead:()=>ft,beforeWrite:()=>vt,bottom:()=>et,clippingParents:()=>ot,computeStyles:()=>cn,createPopper:()=>ar,createPopperBase:()=>rr,createPopperLite:()=>ir,detectOverflow:()=>kn,end:()=>`end`,eventListeners:()=>dn,flip:()=>Nn,hide:()=>Ln,left:()=>nt,main:()=>gt,modifierPhases:()=>xt,offset:()=>Bn,placements:()=>dt,popper:()=>ct,popperGenerator:()=>nr,popperOffsets:()=>Hn,preventOverflow:()=>Gn,read:()=>pt,reference:()=>lt,right:()=>tt,start:()=>at,top:()=>`top`,variationPlacements:()=>ut,viewport:()=>st,write:()=>yt}),sr=new Map,cr={set(e,t,n){sr.has(e)||sr.set(e,new Map);let r=sr.get(e);if(!r.has(t)&&r.size!==0){console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(r.keys())[0]}.`);return}r.set(t,n)},get(e,t){return sr.has(e)&&sr.get(e).get(t)||null},remove(e,t){if(!sr.has(e))return;let n=sr.get(e);n.delete(t),n.size===0&&sr.delete(e)}},lr=1e6,ur=1e3,dr=`transitionend`,fr=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,(e,t)=>`#${CSS.escape(t)}`)),e),pr=e=>e==null?`${e}`:Object.prototype.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase(),mr=e=>{do e+=Math.floor(Math.random()*lr);while(document.getElementById(e));return e},hr=e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);return!Number.parseFloat(t)&&!Number.parseFloat(n)?0:(t=t.split(`,`)[0],n=n.split(`,`)[0],(Number.parseFloat(t)+Number.parseFloat(n))*ur)},gr=e=>{e.dispatchEvent(new Event(dr))},_r=e=>!e||typeof e!=`object`?!1:(e.jquery!==void 0&&(e=e[0]),e.nodeType!==void 0),vr=e=>_r(e)?e.jquery?e[0]:e:typeof e==`string`&&e.length>0?document.querySelector(fr(e)):null,yr=e=>{if(!_r(e)||e.getClientRects().length===0)return!1;let t=getComputedStyle(e).getPropertyValue(`visibility`)===`visible`,n=e.closest(`details:not([open])`);if(!n)return t;if(n!==e){let t=e.closest(`summary`);if(t&&t.parentNode!==n||t===null)return!1}return t},br=e=>!e||e.nodeType!==Node.ELEMENT_NODE||e.classList.contains(`disabled`)?!0:e.disabled===void 0?e.hasAttribute(`disabled`)&&e.getAttribute(`disabled`)!==`false`:e.disabled,xr=e=>{if(!document.documentElement.attachShadow)return null;if(typeof e.getRootNode==`function`){let t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?xr(e.parentNode):null},Sr=()=>{},Cr=e=>{e.offsetHeight},wr=()=>window.jQuery&&!document.body.hasAttribute(`data-bs-no-jquery`)?window.jQuery:null,Tr=[],Er=e=>{document.readyState===`loading`?(Tr.length||document.addEventListener(`DOMContentLoaded`,()=>{for(let e of Tr)e()}),Tr.push(e)):e()},Dr=()=>document.documentElement.dir===`rtl`,Or=e=>{Er(()=>{let t=wr();if(t){let n=e.NAME,r=t.fn[n];t.fn[n]=e.jQueryInterface,t.fn[n].Constructor=e,t.fn[n].noConflict=()=>(t.fn[n]=r,e.jQueryInterface)}})},kr=(e,t=[],n=e)=>typeof e==`function`?e(...t):n,Ar=(e,t,n=!0)=>{if(!n){kr(e);return}let r=hr(t)+5,i=!1,a=({target:n})=>{n===t&&(i=!0,t.removeEventListener(dr,a),kr(e))};t.addEventListener(dr,a),setTimeout(()=>{i||gr(t)},r)},jr=(e,t,n,r)=>{let i=e.length,a=e.indexOf(t);return a===-1?!n&&r?e[i-1]:e[0]:(a+=n?1:-1,r&&(a=(a+i)%i),e[Math.max(0,Math.min(a,i-1))])},Mr=/[^.]*(?=\..*)\.|.*/,Nr=/\..*/,Pr=/::\d+$/,Fr={},Ir=1,Lr={mouseenter:`mouseover`,mouseleave:`mouseout`},Rr=new Set(`click.dblclick.mouseup.mousedown.contextmenu.mousewheel.DOMMouseScroll.mouseover.mouseout.mousemove.selectstart.selectend.keydown.keypress.keyup.orientationchange.touchstart.touchmove.touchend.touchcancel.pointerdown.pointermove.pointerup.pointerleave.pointercancel.gesturestart.gesturechange.gestureend.focus.blur.change.reset.select.submit.focusin.focusout.load.unload.beforeunload.resize.move.DOMContentLoaded.readystatechange.error.abort.scroll`.split(`.`));function zr(e,t){return t&&`${t}::${Ir++}`||e.uidEvent||Ir++}function Br(e){let t=zr(e);return e.uidEvent=t,Fr[t]=Fr[t]||{},Fr[t]}function Vr(e,t){return function n(r){return Xr(r,{delegateTarget:e}),n.oneOff&&Yr.off(e,r.type,t),t.apply(e,[r])}}function Hr(e,t,n){return function r(i){let a=e.querySelectorAll(t);for(let{target:o}=i;o&&o!==this;o=o.parentNode)for(let s of a)if(s===o)return Xr(i,{delegateTarget:o}),r.oneOff&&Yr.off(e,i.type,t,n),n.apply(o,[i])}}function Ur(e,t,n=null){return Object.values(e).find(e=>e.callable===t&&e.delegationSelector===n)}function Wr(e,t,n){let r=typeof t==`string`,i=r?n:t||n,a=Jr(e);return Rr.has(a)||(a=e),[r,i,a]}function Gr(e,t,n,r,i){if(typeof t!=`string`||!e)return;let[a,o,s]=Wr(t,n,r);t in Lr&&(o=(e=>function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)})(o));let c=Br(e),l=c[s]||(c[s]={}),u=Ur(l,o,a?n:null);if(u){u.oneOff=u.oneOff&&i;return}let d=zr(o,t.replace(Mr,``)),f=a?Hr(e,n,o):Vr(e,o);f.delegationSelector=a?n:null,f.callable=o,f.oneOff=i,f.uidEvent=d,l[d]=f,e.addEventListener(s,f,a)}function Kr(e,t,n,r,i){let a=Ur(t[n],r,i);a&&(e.removeEventListener(n,a,!!i),delete t[n][a.uidEvent])}function qr(e,t,n,r){let i=t[n]||{};for(let[a,o]of Object.entries(i))a.includes(r)&&Kr(e,t,n,o.callable,o.delegationSelector)}function Jr(e){return e=e.replace(Nr,``),Lr[e]||e}var Yr={on(e,t,n,r){Gr(e,t,n,r,!1)},one(e,t,n,r){Gr(e,t,n,r,!0)},off(e,t,n,r){if(typeof t!=`string`||!e)return;let[i,a,o]=Wr(t,n,r),s=o!==t,c=Br(e),l=c[o]||{},u=t.startsWith(`.`);if(a!==void 0){if(!Object.keys(l).length)return;Kr(e,c,o,a,i?n:null);return}if(u)for(let n of Object.keys(c))qr(e,c,n,t.slice(1));for(let[n,r]of Object.entries(l)){let i=n.replace(Pr,``);(!s||t.includes(i))&&Kr(e,c,o,r.callable,r.delegationSelector)}},trigger(e,t,n){if(typeof t!=`string`||!e)return null;let r=wr(),i=t!==Jr(t),a=null,o=!0,s=!0,c=!1;i&&r&&(a=r.Event(t,n),r(e).trigger(a),o=!a.isPropagationStopped(),s=!a.isImmediatePropagationStopped(),c=a.isDefaultPrevented());let l=Xr(new Event(t,{bubbles:o,cancelable:!0}),n);return c&&l.preventDefault(),s&&e.dispatchEvent(l),l.defaultPrevented&&a&&a.preventDefault(),l}};function Xr(e,t={}){for(let[n,r]of Object.entries(t))try{e[n]=r}catch{Object.defineProperty(e,n,{configurable:!0,get(){return r}})}return e}function Zr(e){if(e===`true`)return!0;if(e===`false`)return!1;if(e===Number(e).toString())return Number(e);if(e===``||e===`null`)return null;if(typeof e!=`string`)return e;try{return JSON.parse(decodeURIComponent(e))}catch{return e}}function Qr(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}var $r={setDataAttribute(e,t,n){e.setAttribute(`data-bs-${Qr(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-bs-${Qr(t)}`)},getDataAttributes(e){if(!e)return{};let t={},n=Object.keys(e.dataset).filter(e=>e.startsWith(`bs`)&&!e.startsWith(`bsConfig`));for(let r of n){let n=r.replace(/^bs/,``);n=n.charAt(0).toLowerCase()+n.slice(1,n.length),t[n]=Zr(e.dataset[r])}return t},getDataAttribute(e,t){return Zr(e.getAttribute(`data-bs-${Qr(t)}`))}},ei=class{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw Error(`You have to implement the static method "NAME", for each component!`)}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){let n=_r(t)?$r.getDataAttribute(t,`config`):{};return{...this.constructor.Default,...typeof n==`object`?n:{},..._r(t)?$r.getDataAttributes(t):{},...typeof e==`object`?e:{}}}_typeCheckConfig(e,t=this.constructor.DefaultType){for(let[n,r]of Object.entries(t)){let t=e[n],i=_r(t)?`element`:pr(t);if(!new RegExp(r).test(i))throw TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${i}" but expected type "${r}".`)}}},ti=`5.3.3`,ni=class extends ei{constructor(e,t){super(),e=vr(e),e&&(this._element=e,this._config=this._getConfig(t),cr.set(this._element,this.constructor.DATA_KEY,this))}dispose(){cr.remove(this._element,this.constructor.DATA_KEY),Yr.off(this._element,this.constructor.EVENT_KEY);for(let e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t,n=!0){Ar(e,t,n)}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return cr.get(vr(e),this.DATA_KEY)}static getOrCreateInstance(e,t={}){return this.getInstance(e)||new this(e,typeof t==`object`?t:null)}static get VERSION(){return ti}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(e){return`${e}${this.EVENT_KEY}`}},ri=e=>{let t=e.getAttribute(`data-bs-target`);if(!t||t===`#`){let n=e.getAttribute(`href`);if(!n||!n.includes(`#`)&&!n.startsWith(`.`))return null;n.includes(`#`)&&!n.startsWith(`#`)&&(n=`#${n.split(`#`)[1]}`),t=n&&n!==`#`?n.trim():null}return t?t.split(`,`).map(e=>fr(e)).join(`,`):null},ii={find(e,t=document.documentElement){return[].concat(...Element.prototype.querySelectorAll.call(t,e))},findOne(e,t=document.documentElement){return Element.prototype.querySelector.call(t,e)},children(e,t){return[].concat(...e.children).filter(e=>e.matches(t))},parents(e,t){let n=[],r=e.parentNode.closest(t);for(;r;)n.push(r),r=r.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){let t=[`a`,`button`,`input`,`textarea`,`select`,`details`,`[tabindex]`,`[contenteditable="true"]`].map(e=>`${e}:not([tabindex^="-"])`).join(`,`);return this.find(t,e).filter(e=>!br(e)&&yr(e))},getSelectorFromElement(e){let t=ri(e);return t&&ii.findOne(t)?t:null},getElementFromSelector(e){let t=ri(e);return t?ii.findOne(t):null},getMultipleElementsFromSelector(e){let t=ri(e);return t?ii.find(t):[]}},ai=(e,t=`hide`)=>{let n=`click.dismiss${e.EVENT_KEY}`,r=e.NAME;Yr.on(document,n,`[data-bs-dismiss="${r}"]`,function(n){if([`A`,`AREA`].includes(this.tagName)&&n.preventDefault(),br(this))return;let i=ii.getElementFromSelector(this)||this.closest(`.${r}`);e.getOrCreateInstance(i)[t]()})},oi=`alert`,si=`.bs.alert`,ci=`close${si}`,li=`closed${si}`,ui=`fade`,di=`show`,fi=class e extends ni{static get NAME(){return oi}close(){if(Yr.trigger(this._element,ci).defaultPrevented)return;this._element.classList.remove(di);let e=this._element.classList.contains(ui);this._queueCallback(()=>this._destroyElement(),this._element,e)}_destroyElement(){this._element.remove(),Yr.trigger(this._element,li),this.dispose()}static jQueryInterface(t){return this.each(function(){let n=e.getOrCreateInstance(this);if(typeof t==`string`){if(n[t]===void 0||t.startsWith(`_`)||t===`constructor`)throw TypeError(`No method named "${t}"`);n[t](this)}})}};ai(fi,`close`),Or(fi);var pi=`button`,mi=`.bs.button`,hi=`.data-api`,gi=`active`,_i=`[data-bs-toggle="button"]`,vi=`click${mi}${hi}`,yi=class e extends ni{static get NAME(){return pi}toggle(){this._element.setAttribute(`aria-pressed`,this._element.classList.toggle(gi))}static jQueryInterface(t){return this.each(function(){let n=e.getOrCreateInstance(this);t===`toggle`&&n[t]()})}};Yr.on(document,vi,_i,e=>{e.preventDefault();let t=e.target.closest(_i);yi.getOrCreateInstance(t).toggle()}),Or(yi);var bi=`swipe`,xi=`.bs.swipe`,Si=`touchstart${xi}`,Ci=`touchmove${xi}`,wi=`touchend${xi}`,Ti=`pointerdown${xi}`,Ei=`pointerup${xi}`,Di=`touch`,Oi=`pen`,ki=`pointer-event`,Ai=40,ji={endCallback:null,leftCallback:null,rightCallback:null},Mi={endCallback:`(function|null)`,leftCallback:`(function|null)`,rightCallback:`(function|null)`},Ni=class e extends ei{constructor(t,n){super(),this._element=t,!(!t||!e.isSupported())&&(this._config=this._getConfig(n),this._deltaX=0,this._supportPointerEvents=!!window.PointerEvent,this._initEvents())}static get Default(){return ji}static get DefaultType(){return Mi}static get NAME(){return bi}dispose(){Yr.off(this._element,xi)}_start(e){if(!this._supportPointerEvents){this._deltaX=e.touches[0].clientX;return}this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX)}_end(e){this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX-this._deltaX),this._handleSwipe(),kr(this._config.endCallback)}_move(e){this._deltaX=e.touches&&e.touches.length>1?0:e.touches[0].clientX-this._deltaX}_handleSwipe(){let e=Math.abs(this._deltaX);if(e<=Ai)return;let t=e/this._deltaX;this._deltaX=0,t&&kr(t>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(Yr.on(this._element,Ti,e=>this._start(e)),Yr.on(this._element,Ei,e=>this._end(e)),this._element.classList.add(ki)):(Yr.on(this._element,Si,e=>this._start(e)),Yr.on(this._element,Ci,e=>this._move(e)),Yr.on(this._element,wi,e=>this._end(e)))}_eventIsPointerPenTouch(e){return this._supportPointerEvents&&(e.pointerType===Oi||e.pointerType===Di)}static isSupported(){return`ontouchstart`in document.documentElement||navigator.maxTouchPoints>0}},Pi=`carousel`,Fi=`.bs.carousel`,Ii=`.data-api`,Li=`ArrowLeft`,Ri=`ArrowRight`,zi=500,Bi=`next`,Vi=`prev`,Hi=`left`,Ui=`right`,Wi=`slide${Fi}`,Gi=`slid${Fi}`,Ki=`keydown${Fi}`,qi=`mouseenter${Fi}`,Ji=`mouseleave${Fi}`,Yi=`dragstart${Fi}`,Xi=`load${Fi}${Ii}`,Zi=`click${Fi}${Ii}`,Qi=`carousel`,$i=`active`,ea=`slide`,ta=`carousel-item-end`,na=`carousel-item-start`,ra=`carousel-item-next`,ia=`carousel-item-prev`,aa=`.active`,oa=`.carousel-item`,sa=aa+oa,ca=`.carousel-item img`,la=`.carousel-indicators`,ua=`[data-bs-slide], [data-bs-slide-to]`,da=`[data-bs-ride="carousel"]`,fa={[Li]:Ui,[Ri]:Hi},pa={interval:5e3,keyboard:!0,pause:`hover`,ride:!1,touch:!0,wrap:!0},ma={interval:`(number|boolean)`,keyboard:`boolean`,pause:`(string|boolean)`,ride:`(boolean|string)`,touch:`boolean`,wrap:`boolean`},ha=class e extends ni{constructor(e,t){super(e,t),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=ii.findOne(la,this._element),this._addEventListeners(),this._config.ride===Qi&&this.cycle()}static get Default(){return pa}static get DefaultType(){return ma}static get NAME(){return Pi}next(){this._slide(Bi)}nextWhenVisible(){!document.hidden&&yr(this._element)&&this.next()}prev(){this._slide(Vi)}pause(){this._isSliding&&gr(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval(()=>this.nextWhenVisible(),this._config.interval)}_maybeEnableCycle(){if(this._config.ride){if(this._isSliding){Yr.one(this._element,Gi,()=>this.cycle());return}this.cycle()}}to(e){let t=this._getItems();if(e>t.length-1||e<0)return;if(this._isSliding){Yr.one(this._element,Gi,()=>this.to(e));return}let n=this._getItemIndex(this._getActive());if(n===e)return;let r=e>n?Bi:Vi;this._slide(r,t[e])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(e){return e.defaultInterval=e.interval,e}_addEventListeners(){this._config.keyboard&&Yr.on(this._element,Ki,e=>this._keydown(e)),this._config.pause===`hover`&&(Yr.on(this._element,qi,()=>this.pause()),Yr.on(this._element,Ji,()=>this._maybeEnableCycle())),this._config.touch&&Ni.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(let e of ii.find(ca,this._element))Yr.on(e,Yi,e=>e.preventDefault());let e={leftCallback:()=>this._slide(this._directionToOrder(Hi)),rightCallback:()=>this._slide(this._directionToOrder(Ui)),endCallback:()=>{this._config.pause===`hover`&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),zi+this._config.interval))}};this._swipeHelper=new Ni(this._element,e)}_keydown(e){if(/input|textarea/i.test(e.target.tagName))return;let t=fa[e.key];t&&(e.preventDefault(),this._slide(this._directionToOrder(t)))}_getItemIndex(e){return this._getItems().indexOf(e)}_setActiveIndicatorElement(e){if(!this._indicatorsElement)return;let t=ii.findOne(aa,this._indicatorsElement);t.classList.remove($i),t.removeAttribute(`aria-current`);let n=ii.findOne(`[data-bs-slide-to="${e}"]`,this._indicatorsElement);n&&(n.classList.add($i),n.setAttribute(`aria-current`,`true`))}_updateInterval(){let e=this._activeElement||this._getActive();if(!e)return;let t=Number.parseInt(e.getAttribute(`data-bs-interval`),10);this._config.interval=t||this._config.defaultInterval}_slide(e,t=null){if(this._isSliding)return;let n=this._getActive(),r=e===Bi,i=t||jr(this._getItems(),n,r,this._config.wrap);if(i===n)return;let a=this._getItemIndex(i),o=t=>Yr.trigger(this._element,t,{relatedTarget:i,direction:this._orderToDirection(e),from:this._getItemIndex(n),to:a});if(o(Wi).defaultPrevented||!n||!i)return;let s=!!this._interval;this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(a),this._activeElement=i;let c=r?na:ta,l=r?ra:ia;i.classList.add(l),Cr(i),n.classList.add(c),i.classList.add(c),this._queueCallback(()=>{i.classList.remove(c,l),i.classList.add($i),n.classList.remove($i,l,c),this._isSliding=!1,o(Gi)},n,this._isAnimated()),s&&this.cycle()}_isAnimated(){return this._element.classList.contains(ea)}_getActive(){return ii.findOne(sa,this._element)}_getItems(){return ii.find(oa,this._element)}_clearInterval(){this._interval&&=(clearInterval(this._interval),null)}_directionToOrder(e){return Dr()?e===Hi?Vi:Bi:e===Hi?Bi:Vi}_orderToDirection(e){return Dr()?e===Vi?Hi:Ui:e===Vi?Ui:Hi}static jQueryInterface(t){return this.each(function(){let n=e.getOrCreateInstance(this,t);if(typeof t==`number`){n.to(t);return}if(typeof t==`string`){if(n[t]===void 0||t.startsWith(`_`)||t===`constructor`)throw TypeError(`No method named "${t}"`);n[t]()}})}};Yr.on(document,Zi,ua,function(e){let t=ii.getElementFromSelector(this);if(!t||!t.classList.contains(Qi))return;e.preventDefault();let n=ha.getOrCreateInstance(t),r=this.getAttribute(`data-bs-slide-to`);if(r){n.to(r),n._maybeEnableCycle();return}if($r.getDataAttribute(this,`slide`)===`next`){n.next(),n._maybeEnableCycle();return}n.prev(),n._maybeEnableCycle()}),Yr.on(window,Xi,()=>{let e=ii.find(da);for(let t of e)ha.getOrCreateInstance(t)}),Or(ha);var ga=`collapse`,_a=`.bs.collapse`,va=`.data-api`,ya=`show${_a}`,ba=`shown${_a}`,xa=`hide${_a}`,Sa=`hidden${_a}`,Ca=`click${_a}${va}`,wa=`show`,Ta=`collapse`,Ea=`collapsing`,Da=`collapsed`,Oa=`:scope .${Ta} .${Ta}`,ka=`collapse-horizontal`,Aa=`width`,ja=`height`,Ma=`.collapse.show, .collapse.collapsing`,Na=`[data-bs-toggle="collapse"]`,Pa={parent:null,toggle:!0},Fa={parent:`(null|element)`,toggle:`boolean`},Ia=class e extends ni{constructor(e,t){super(e,t),this._isTransitioning=!1,this._triggerArray=[];let n=ii.find(Na);for(let e of n){let t=ii.getSelectorFromElement(e),n=ii.find(t).filter(e=>e===this._element);t!==null&&n.length&&this._triggerArray.push(e)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Pa}static get DefaultType(){return Fa}static get NAME(){return ga}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(Ma).filter(e=>e!==this._element).map(t=>e.getOrCreateInstance(t,{toggle:!1}))),t.length&&t[0]._isTransitioning||Yr.trigger(this._element,ya).defaultPrevented)return;for(let e of t)e.hide();let n=this._getDimension();this._element.classList.remove(Ta),this._element.classList.add(Ea),this._element.style[n]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;let r=()=>{this._isTransitioning=!1,this._element.classList.remove(Ea),this._element.classList.add(Ta,wa),this._element.style[n]=``,Yr.trigger(this._element,ba)},i=`scroll${n[0].toUpperCase()+n.slice(1)}`;this._queueCallback(r,this._element,!0),this._element.style[n]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown()||Yr.trigger(this._element,xa).defaultPrevented)return;let e=this._getDimension();this._element.style[e]=`${this._element.getBoundingClientRect()[e]}px`,Cr(this._element),this._element.classList.add(Ea),this._element.classList.remove(Ta,wa);for(let e of this._triggerArray){let t=ii.getElementFromSelector(e);t&&!this._isShown(t)&&this._addAriaAndCollapsedClass([e],!1)}this._isTransitioning=!0;let t=()=>{this._isTransitioning=!1,this._element.classList.remove(Ea),this._element.classList.add(Ta),Yr.trigger(this._element,Sa)};this._element.style[e]=``,this._queueCallback(t,this._element,!0)}_isShown(e=this._element){return e.classList.contains(wa)}_configAfterMerge(e){return e.toggle=!!e.toggle,e.parent=vr(e.parent),e}_getDimension(){return this._element.classList.contains(ka)?Aa:ja}_initializeChildren(){if(!this._config.parent)return;let e=this._getFirstLevelChildren(Na);for(let t of e){let e=ii.getElementFromSelector(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}}_getFirstLevelChildren(e){let t=ii.find(Oa,this._config.parent);return ii.find(e,this._config.parent).filter(e=>!t.includes(e))}_addAriaAndCollapsedClass(e,t){if(e.length)for(let n of e)n.classList.toggle(Da,!t),n.setAttribute(`aria-expanded`,t)}static jQueryInterface(t){let n={};return typeof t==`string`&&/show|hide/.test(t)&&(n.toggle=!1),this.each(function(){let r=e.getOrCreateInstance(this,n);if(typeof t==`string`){if(r[t]===void 0)throw TypeError(`No method named "${t}"`);r[t]()}})}};Yr.on(document,Ca,Na,function(e){(e.target.tagName===`A`||e.delegateTarget&&e.delegateTarget.tagName===`A`)&&e.preventDefault();for(let e of ii.getMultipleElementsFromSelector(this))Ia.getOrCreateInstance(e,{toggle:!1}).toggle()}),Or(Ia);var La=`dropdown`,Ra=`.bs.dropdown`,za=`.data-api`,Ba=`Escape`,Va=`Tab`,Ha=`ArrowUp`,Ua=`ArrowDown`,Wa=2,Ga=`hide${Ra}`,Ka=`hidden${Ra}`,qa=`show${Ra}`,Ja=`shown${Ra}`,Ya=`click${Ra}${za}`,Xa=`keydown${Ra}${za}`,Za=`keyup${Ra}${za}`,Qa=`show`,$a=`dropup`,eo=`dropend`,to=`dropstart`,no=`dropup-center`,ro=`dropdown-center`,io=`[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)`,ao=`${io}.${Qa}`,oo=`.dropdown-menu`,so=`.navbar`,co=`.navbar-nav`,lo=`.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)`,uo=Dr()?`top-end`:`top-start`,fo=Dr()?`top-start`:`top-end`,po=Dr()?`bottom-end`:`bottom-start`,mo=Dr()?`bottom-start`:`bottom-end`,ho=Dr()?`left-start`:`right-start`,go=Dr()?`right-start`:`left-start`,_o=`top`,vo=`bottom`,yo={autoClose:!0,boundary:`clippingParents`,display:`dynamic`,offset:[0,2],popperConfig:null,reference:`toggle`},bo={autoClose:`(boolean|string)`,boundary:`(string|element)`,display:`string`,offset:`(array|string|function)`,popperConfig:`(null|object|function)`,reference:`(string|element|object)`},xo=class e extends ni{constructor(e,t){super(e,t),this._popper=null,this._parent=this._element.parentNode,this._menu=ii.next(this._element,oo)[0]||ii.prev(this._element,oo)[0]||ii.findOne(oo,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return yo}static get DefaultType(){return bo}static get NAME(){return La}toggle(){return this._isShown()?this.hide():this.show()}show(){if(br(this._element)||this._isShown())return;let e={relatedTarget:this._element};if(!Yr.trigger(this._element,qa,e).defaultPrevented){if(this._createPopper(),`ontouchstart`in document.documentElement&&!this._parent.closest(co))for(let e of[].concat(...document.body.children))Yr.on(e,`mouseover`,Sr);this._element.focus(),this._element.setAttribute(`aria-expanded`,!0),this._menu.classList.add(Qa),this._element.classList.add(Qa),Yr.trigger(this._element,Ja,e)}}hide(){if(br(this._element)||!this._isShown())return;let e={relatedTarget:this._element};this._completeHide(e)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(e){if(!Yr.trigger(this._element,Ga,e).defaultPrevented){if(`ontouchstart`in document.documentElement)for(let e of[].concat(...document.body.children))Yr.off(e,`mouseover`,Sr);this._popper&&this._popper.destroy(),this._menu.classList.remove(Qa),this._element.classList.remove(Qa),this._element.setAttribute(`aria-expanded`,`false`),$r.removeDataAttribute(this._menu,`popper`),Yr.trigger(this._element,Ka,e)}}_getConfig(e){if(e=super._getConfig(e),typeof e.reference==`object`&&!_r(e.reference)&&typeof e.reference.getBoundingClientRect!=`function`)throw TypeError(`${La.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return e}_createPopper(){if(or===void 0)throw TypeError(`Bootstrap's dropdowns require Popper (https://popper.js.org)`);let e=this._element;this._config.reference===`parent`?e=this._parent:_r(this._config.reference)?e=vr(this._config.reference):typeof this._config.reference==`object`&&(e=this._config.reference);let t=this._getPopperConfig();this._popper=ar(e,this._menu,t)}_isShown(){return this._menu.classList.contains(Qa)}_getPlacement(){let e=this._parent;if(e.classList.contains(eo))return ho;if(e.classList.contains(to))return go;if(e.classList.contains(no))return _o;if(e.classList.contains(ro))return vo;let t=getComputedStyle(this._menu).getPropertyValue(`--bs-position`).trim()===`end`;return e.classList.contains($a)?t?fo:uo:t?mo:po}_detectNavbar(){return this._element.closest(so)!==null}_getOffset(){let{offset:e}=this._config;return typeof e==`string`?e.split(`,`).map(e=>Number.parseInt(e,10)):typeof e==`function`?t=>e(t,this._element):e}_getPopperConfig(){let e={placement:this._getPlacement(),modifiers:[{name:`preventOverflow`,options:{boundary:this._config.boundary}},{name:`offset`,options:{offset:this._getOffset()}}]};return(this._inNavbar||this._config.display===`static`)&&($r.setDataAttribute(this._menu,`popper`,`static`),e.modifiers=[{name:`applyStyles`,enabled:!1}]),{...e,...kr(this._config.popperConfig,[e])}}_selectMenuItem({key:e,target:t}){let n=ii.find(lo,this._menu).filter(e=>yr(e));n.length&&jr(n,t,e===Ua,!n.includes(t)).focus()}static jQueryInterface(t){return this.each(function(){let n=e.getOrCreateInstance(this,t);if(typeof t==`string`){if(n[t]===void 0)throw TypeError(`No method named "${t}"`);n[t]()}})}static clearMenus(t){if(t.button===Wa||t.type===`keyup`&&t.key!==Va)return;let n=ii.find(ao);for(let r of n){let n=e.getInstance(r);if(!n||n._config.autoClose===!1)continue;let i=t.composedPath(),a=i.includes(n._menu);if(i.includes(n._element)||n._config.autoClose===`inside`&&!a||n._config.autoClose===`outside`&&a||n._menu.contains(t.target)&&(t.type===`keyup`&&t.key===Va||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;let o={relatedTarget:n._element};t.type===`click`&&(o.clickEvent=t),n._completeHide(o)}}static dataApiKeydownHandler(t){let n=/input|textarea/i.test(t.target.tagName),r=t.key===Ba,i=[Ha,Ua].includes(t.key);if(!i&&!r||n&&!r)return;t.preventDefault();let a=this.matches(io)?this:ii.prev(this,io)[0]||ii.next(this,io)[0]||ii.findOne(io,t.delegateTarget.parentNode),o=e.getOrCreateInstance(a);if(i){t.stopPropagation(),o.show(),o._selectMenuItem(t);return}o._isShown()&&(t.stopPropagation(),o.hide(),a.focus())}};Yr.on(document,Xa,io,xo.dataApiKeydownHandler),Yr.on(document,Xa,oo,xo.dataApiKeydownHandler),Yr.on(document,Ya,xo.clearMenus),Yr.on(document,Za,xo.clearMenus),Yr.on(document,Ya,io,function(e){e.preventDefault(),xo.getOrCreateInstance(this).toggle()}),Or(xo);var So=`backdrop`,Co=`fade`,wo=`show`,To=`mousedown.bs.${So}`,Eo={className:`modal-backdrop`,clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:`body`},Do={className:`string`,clickCallback:`(function|null)`,isAnimated:`boolean`,isVisible:`boolean`,rootElement:`(element|string)`},Oo=class extends ei{constructor(e){super(),this._config=this._getConfig(e),this._isAppended=!1,this._element=null}static get Default(){return Eo}static get DefaultType(){return Do}static get NAME(){return So}show(e){if(!this._config.isVisible){kr(e);return}this._append();let t=this._getElement();this._config.isAnimated&&Cr(t),t.classList.add(wo),this._emulateAnimation(()=>{kr(e)})}hide(e){if(!this._config.isVisible){kr(e);return}this._getElement().classList.remove(wo),this._emulateAnimation(()=>{this.dispose(),kr(e)})}dispose(){this._isAppended&&=(Yr.off(this._element,To),this._element.remove(),!1)}_getElement(){if(!this._element){let e=document.createElement(`div`);e.className=this._config.className,this._config.isAnimated&&e.classList.add(Co),this._element=e}return this._element}_configAfterMerge(e){return e.rootElement=vr(e.rootElement),e}_append(){if(this._isAppended)return;let e=this._getElement();this._config.rootElement.append(e),Yr.on(e,To,()=>{kr(this._config.clickCallback)}),this._isAppended=!0}_emulateAnimation(e){Ar(e,this._getElement(),this._config.isAnimated)}},ko=`focustrap`,Ao=`.bs.focustrap`,jo=`focusin${Ao}`,Mo=`keydown.tab${Ao}`,No=`Tab`,Po=`forward`,Fo=`backward`,Io={autofocus:!0,trapElement:null},Lo={autofocus:`boolean`,trapElement:`element`},Ro=class extends ei{constructor(e){super(),this._config=this._getConfig(e),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return Io}static get DefaultType(){return Lo}static get NAME(){return ko}activate(){this._isActive||=(this._config.autofocus&&this._config.trapElement.focus(),Yr.off(document,Ao),Yr.on(document,jo,e=>this._handleFocusin(e)),Yr.on(document,Mo,e=>this._handleKeydown(e)),!0)}deactivate(){this._isActive&&(this._isActive=!1,Yr.off(document,Ao))}_handleFocusin(e){let{trapElement:t}=this._config;if(e.target===document||e.target===t||t.contains(e.target))return;let n=ii.focusableChildren(t);n.length===0?t.focus():this._lastTabNavDirection===Fo?n[n.length-1].focus():n[0].focus()}_handleKeydown(e){e.key===No&&(this._lastTabNavDirection=e.shiftKey?Fo:Po)}},zo=`.fixed-top, .fixed-bottom, .is-fixed, .sticky-top`,Bo=`.sticky-top`,Vo=`padding-right`,Ho=`margin-right`,Uo=class{constructor(){this._element=document.body}getWidth(){let e=document.documentElement.clientWidth;return Math.abs(window.innerWidth-e)}hide(){let e=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,Vo,t=>t+e),this._setElementAttributes(zo,Vo,t=>t+e),this._setElementAttributes(Bo,Ho,t=>t-e)}reset(){this._resetElementAttributes(this._element,`overflow`),this._resetElementAttributes(this._element,Vo),this._resetElementAttributes(zo,Vo),this._resetElementAttributes(Bo,Ho)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,`overflow`),this._element.style.overflow=`hidden`}_setElementAttributes(e,t,n){let r=this.getWidth();this._applyManipulationCallback(e,e=>{if(e!==this._element&&window.innerWidth>e.clientWidth+r)return;this._saveInitialAttribute(e,t);let i=window.getComputedStyle(e).getPropertyValue(t);e.style.setProperty(t,`${n(Number.parseFloat(i))}px`)})}_saveInitialAttribute(e,t){let n=e.style.getPropertyValue(t);n&&$r.setDataAttribute(e,t,n)}_resetElementAttributes(e,t){this._applyManipulationCallback(e,e=>{let n=$r.getDataAttribute(e,t);if(n===null){e.style.removeProperty(t);return}$r.removeDataAttribute(e,t),e.style.setProperty(t,n)})}_applyManipulationCallback(e,t){if(_r(e)){t(e);return}for(let n of ii.find(e,this._element))t(n)}},Wo=`modal`,Go=`.bs.modal`,Ko=`.data-api`,qo=`Escape`,Jo=`hide${Go}`,Yo=`hidePrevented${Go}`,Xo=`hidden${Go}`,Zo=`show${Go}`,Qo=`shown${Go}`,$o=`resize${Go}`,es=`click.dismiss${Go}`,ts=`mousedown.dismiss${Go}`,ns=`keydown.dismiss${Go}`,rs=`click${Go}${Ko}`,is=`modal-open`,as=`fade`,os=`show`,ss=`modal-static`,cs=`.modal.show`,ls=`.modal-dialog`,us=`.modal-body`,ds=`[data-bs-toggle="modal"]`,fs={backdrop:!0,focus:!0,keyboard:!0},ps={backdrop:`(boolean|string)`,focus:`boolean`,keyboard:`boolean`},ms=class e extends ni{constructor(e,t){super(e,t),this._dialog=ii.findOne(ls,this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new Uo,this._addEventListeners()}static get Default(){return fs}static get DefaultType(){return ps}static get NAME(){return Wo}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||this._isTransitioning||Yr.trigger(this._element,Zo,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(is),this._adjustDialog(),this._backdrop.show(()=>this._showElement(e)))}hide(){!this._isShown||this._isTransitioning||Yr.trigger(this._element,Jo).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(os),this._queueCallback(()=>this._hideModal(),this._element,this._isAnimated()))}dispose(){Yr.off(window,Go),Yr.off(this._dialog,Go),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Oo({isVisible:!!this._config.backdrop,isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Ro({trapElement:this._element})}_showElement(e){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display=`block`,this._element.removeAttribute(`aria-hidden`),this._element.setAttribute(`aria-modal`,!0),this._element.setAttribute(`role`,`dialog`),this._element.scrollTop=0;let t=ii.findOne(us,this._dialog);t&&(t.scrollTop=0),Cr(this._element),this._element.classList.add(os),this._queueCallback(()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,Yr.trigger(this._element,Qo,{relatedTarget:e})},this._dialog,this._isAnimated())}_addEventListeners(){Yr.on(this._element,ns,e=>{if(e.key===qo){if(this._config.keyboard){this.hide();return}this._triggerBackdropTransition()}}),Yr.on(window,$o,()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()}),Yr.on(this._element,ts,e=>{Yr.one(this._element,es,t=>{if(!(this._element!==e.target||this._element!==t.target)){if(this._config.backdrop===`static`){this._triggerBackdropTransition();return}this._config.backdrop&&this.hide()}})})}_hideModal(){this._element.style.display=`none`,this._element.setAttribute(`aria-hidden`,!0),this._element.removeAttribute(`aria-modal`),this._element.removeAttribute(`role`),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(is),this._resetAdjustments(),this._scrollBar.reset(),Yr.trigger(this._element,Xo)})}_isAnimated(){return this._element.classList.contains(as)}_triggerBackdropTransition(){if(Yr.trigger(this._element,Yo).defaultPrevented)return;let e=this._element.scrollHeight>document.documentElement.clientHeight,t=this._element.style.overflowY;t===`hidden`||this._element.classList.contains(ss)||(e||(this._element.style.overflowY=`hidden`),this._element.classList.add(ss),this._queueCallback(()=>{this._element.classList.remove(ss),this._queueCallback(()=>{this._element.style.overflowY=t},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){let e=this._element.scrollHeight>document.documentElement.clientHeight,t=this._scrollBar.getWidth(),n=t>0;if(n&&!e){let e=Dr()?`paddingLeft`:`paddingRight`;this._element.style[e]=`${t}px`}if(!n&&e){let e=Dr()?`paddingRight`:`paddingLeft`;this._element.style[e]=`${t}px`}}_resetAdjustments(){this._element.style.paddingLeft=``,this._element.style.paddingRight=``}static jQueryInterface(t,n){return this.each(function(){let r=e.getOrCreateInstance(this,t);if(typeof t==`string`){if(r[t]===void 0)throw TypeError(`No method named "${t}"`);r[t](n)}})}};Yr.on(document,rs,ds,function(e){let t=ii.getElementFromSelector(this);[`A`,`AREA`].includes(this.tagName)&&e.preventDefault(),Yr.one(t,Zo,e=>{e.defaultPrevented||Yr.one(t,Xo,()=>{yr(this)&&this.focus()})});let n=ii.findOne(cs);n&&ms.getInstance(n).hide(),ms.getOrCreateInstance(t).toggle(this)}),ai(ms),Or(ms);var hs=`offcanvas`,gs=`.bs.offcanvas`,_s=`.data-api`,vs=`load${gs}${_s}`,ys=`Escape`,bs=`show`,xs=`showing`,Ss=`hiding`,Cs=`offcanvas-backdrop`,ws=`.offcanvas.show`,Ts=`show${gs}`,Es=`shown${gs}`,Ds=`hide${gs}`,Os=`hidePrevented${gs}`,ks=`hidden${gs}`,As=`resize${gs}`,js=`click${gs}${_s}`,Ms=`keydown.dismiss${gs}`,Ns=`[data-bs-toggle="offcanvas"]`,Ps={backdrop:!0,keyboard:!0,scroll:!1},Fs={backdrop:`(boolean|string)`,keyboard:`boolean`,scroll:`boolean`},Is=class e extends ni{constructor(e,t){super(e,t),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Ps}static get DefaultType(){return Fs}static get NAME(){return hs}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||Yr.trigger(this._element,Ts,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||new Uo().hide(),this._element.setAttribute(`aria-modal`,!0),this._element.setAttribute(`role`,`dialog`),this._element.classList.add(xs),this._queueCallback(()=>{(!this._config.scroll||this._config.backdrop)&&this._focustrap.activate(),this._element.classList.add(bs),this._element.classList.remove(xs),Yr.trigger(this._element,Es,{relatedTarget:e})},this._element,!0))}hide(){!this._isShown||Yr.trigger(this._element,Ds).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(Ss),this._backdrop.hide(),this._queueCallback(()=>{this._element.classList.remove(bs,Ss),this._element.removeAttribute(`aria-modal`),this._element.removeAttribute(`role`),this._config.scroll||new Uo().reset(),Yr.trigger(this._element,ks)},this._element,!0))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){let e=()=>{if(this._config.backdrop===`static`){Yr.trigger(this._element,Os);return}this.hide()},t=!!this._config.backdrop;return new Oo({className:Cs,isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?e:null})}_initializeFocusTrap(){return new Ro({trapElement:this._element})}_addEventListeners(){Yr.on(this._element,Ms,e=>{if(e.key===ys){if(this._config.keyboard){this.hide();return}Yr.trigger(this._element,Os)}})}static jQueryInterface(t){return this.each(function(){let n=e.getOrCreateInstance(this,t);if(typeof t==`string`){if(n[t]===void 0||t.startsWith(`_`)||t===`constructor`)throw TypeError(`No method named "${t}"`);n[t](this)}})}};Yr.on(document,js,Ns,function(e){let t=ii.getElementFromSelector(this);if([`A`,`AREA`].includes(this.tagName)&&e.preventDefault(),br(this))return;Yr.one(t,ks,()=>{yr(this)&&this.focus()});let n=ii.findOne(ws);n&&n!==t&&Is.getInstance(n).hide(),Is.getOrCreateInstance(t).toggle(this)}),Yr.on(window,vs,()=>{for(let e of ii.find(ws))Is.getOrCreateInstance(e).show()}),Yr.on(window,As,()=>{for(let e of ii.find(`[aria-modal][class*=show][class*=offcanvas-]`))getComputedStyle(e).position!==`fixed`&&Is.getOrCreateInstance(e).hide()}),ai(Is),Or(Is);var Ls={"*":[`class`,`dir`,`id`,`lang`,`role`,/^aria-[\w-]*$/i],a:[`target`,`href`,`title`,`rel`],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:[`src`,`srcset`,`alt`,`title`,`width`,`height`],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Rs=new Set([`background`,`cite`,`href`,`itemtype`,`longdesc`,`poster`,`src`,`xlink:href`]),zs=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Bs=(e,t)=>{let n=e.nodeName.toLowerCase();return t.includes(n)?Rs.has(n)?!!zs.test(e.nodeValue):!0:t.filter(e=>e instanceof RegExp).some(e=>e.test(n))};function Vs(e,t,n){if(!e.length)return e;if(n&&typeof n==`function`)return n(e);let r=new window.DOMParser().parseFromString(e,`text/html`),i=[].concat(...r.body.querySelectorAll(`*`));for(let e of i){let n=e.nodeName.toLowerCase();if(!Object.keys(t).includes(n)){e.remove();continue}let r=[].concat(...e.attributes),i=[].concat(t[`*`]||[],t[n]||[]);for(let t of r)Bs(t,i)||e.removeAttribute(t.nodeName)}return r.body.innerHTML}var Hs=`TemplateFactory`,Us={allowList:Ls,content:{},extraClass:``,html:!1,sanitize:!0,sanitizeFn:null,template:`
`},Ws={allowList:`object`,content:`object`,extraClass:`(string|function)`,html:`boolean`,sanitize:`boolean`,sanitizeFn:`(null|function)`,template:`string`},Gs={entry:`(string|element|function|null)`,selector:`(string|element)`},Ks=class extends ei{constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return Us}static get DefaultType(){return Ws}static get NAME(){return Hs}getContent(){return Object.values(this._config.content).map(e=>this._resolvePossibleFunction(e)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){let e=document.createElement(`div`);e.innerHTML=this._maybeSanitize(this._config.template);for(let[t,n]of Object.entries(this._config.content))this._setContent(e,n,t);let t=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&t.classList.add(...n.split(` `)),t}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(let[t,n]of Object.entries(e))super._typeCheckConfig({selector:t,entry:n},Gs)}_setContent(e,t,n){let r=ii.findOne(n,e);if(r){if(t=this._resolvePossibleFunction(t),!t){r.remove();return}if(_r(t)){this._putElementInTemplate(vr(t),r);return}if(this._config.html){r.innerHTML=this._maybeSanitize(t);return}r.textContent=t}}_maybeSanitize(e){return this._config.sanitize?Vs(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return kr(e,[this])}_putElementInTemplate(e,t){if(this._config.html){t.innerHTML=``,t.append(e);return}t.textContent=e.textContent}},qs=`tooltip`,Js=new Set([`sanitize`,`allowList`,`sanitizeFn`]),Ys=`fade`,Xs=`modal`,Zs=`show`,Qs=`.tooltip-inner`,$s=`.${Xs}`,ec=`hide.bs.modal`,tc=`hover`,nc=`focus`,rc=`click`,ic=`manual`,ac=`hide`,oc=`hidden`,sc=`show`,cc=`shown`,lc=`inserted`,uc=`click`,dc=`focusin`,fc=`focusout`,pc=`mouseenter`,mc=`mouseleave`,hc={AUTO:`auto`,TOP:`top`,RIGHT:Dr()?`left`:`right`,BOTTOM:`bottom`,LEFT:Dr()?`right`:`left`},gc={allowList:Ls,animation:!0,boundary:`clippingParents`,container:!1,customClass:``,delay:0,fallbackPlacements:[`top`,`right`,`bottom`,`left`],html:!1,offset:[0,6],placement:`top`,popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:``,title:``,trigger:`hover focus`},_c={allowList:`object`,animation:`boolean`,boundary:`(string|element)`,container:`(string|element|boolean)`,customClass:`(string|function)`,delay:`(number|object)`,fallbackPlacements:`array`,html:`boolean`,offset:`(array|string|function)`,placement:`(string|function)`,popperConfig:`(null|object|function)`,sanitize:`boolean`,sanitizeFn:`(null|function)`,selector:`(string|boolean)`,template:`string`,title:`(string|element|function)`,trigger:`string`},vc=class e extends ni{constructor(e,t){if(or===void 0)throw TypeError(`Bootstrap's tooltips require Popper (https://popper.js.org)`);super(e,t),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return gc}static get DefaultType(){return _c}static get NAME(){return qs}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){if(this._isEnabled){if(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()){this._leave();return}this._enter()}}dispose(){clearTimeout(this._timeout),Yr.off(this._element.closest($s),ec,this._hideModalHandler),this._element.getAttribute(`data-bs-original-title`)&&this._element.setAttribute(`title`,this._element.getAttribute(`data-bs-original-title`)),this._disposePopper(),super.dispose()}show(){if(this._element.style.display===`none`)throw Error(`Please use show on visible elements`);if(!(this._isWithContent()&&this._isEnabled))return;let e=Yr.trigger(this._element,this.constructor.eventName(sc)),t=(xr(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!t)return;this._disposePopper();let n=this._getTipElement();this._element.setAttribute(`aria-describedby`,n.getAttribute(`id`));let{container:r}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(r.append(n),Yr.trigger(this._element,this.constructor.eventName(lc))),this._popper=this._createPopper(n),n.classList.add(Zs),`ontouchstart`in document.documentElement)for(let e of[].concat(...document.body.children))Yr.on(e,`mouseover`,Sr);this._queueCallback(()=>{Yr.trigger(this._element,this.constructor.eventName(cc)),this._isHovered===!1&&this._leave(),this._isHovered=!1},this.tip,this._isAnimated())}hide(){if(!(!this._isShown()||Yr.trigger(this._element,this.constructor.eventName(ac)).defaultPrevented)){if(this._getTipElement().classList.remove(Zs),`ontouchstart`in document.documentElement)for(let e of[].concat(...document.body.children))Yr.off(e,`mouseover`,Sr);this._activeTrigger[rc]=!1,this._activeTrigger[nc]=!1,this._activeTrigger[tc]=!1,this._isHovered=null,this._queueCallback(()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute(`aria-describedby`),Yr.trigger(this._element,this.constructor.eventName(oc)))},this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return!!this._getTitle()}_getTipElement(){return this.tip||=this._createTipElement(this._newContent||this._getContentForTemplate()),this.tip}_createTipElement(e){let t=this._getTemplateFactory(e).toHtml();if(!t)return null;t.classList.remove(Ys,Zs),t.classList.add(`bs-${this.constructor.NAME}-auto`);let n=mr(this.constructor.NAME).toString();return t.setAttribute(`id`,n),this._isAnimated()&&t.classList.add(Ys),t}setContent(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new Ks({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[Qs]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute(`data-bs-original-title`)}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Ys)}_isShown(){return this.tip&&this.tip.classList.contains(Zs)}_createPopper(e){let t=hc[kr(this._config.placement,[this,e,this._element]).toUpperCase()];return ar(this._element,e,this._getPopperConfig(t))}_getOffset(){let{offset:e}=this._config;return typeof e==`string`?e.split(`,`).map(e=>Number.parseInt(e,10)):typeof e==`function`?t=>e(t,this._element):e}_resolvePossibleFunction(e){return kr(e,[this._element])}_getPopperConfig(e){let t={placement:e,modifiers:[{name:`flip`,options:{fallbackPlacements:this._config.fallbackPlacements}},{name:`offset`,options:{offset:this._getOffset()}},{name:`preventOverflow`,options:{boundary:this._config.boundary}},{name:`arrow`,options:{element:`.${this.constructor.NAME}-arrow`}},{name:`preSetPlacement`,enabled:!0,phase:`beforeMain`,fn:e=>{this._getTipElement().setAttribute(`data-popper-placement`,e.state.placement)}}]};return{...t,...kr(this._config.popperConfig,[t])}}_setListeners(){let e=this._config.trigger.split(` `);for(let t of e)if(t===`click`)Yr.on(this._element,this.constructor.eventName(uc),this._config.selector,e=>{this._initializeOnDelegatedTarget(e).toggle()});else if(t!==ic){let e=t===tc?this.constructor.eventName(pc):this.constructor.eventName(dc),n=t===tc?this.constructor.eventName(mc):this.constructor.eventName(fc);Yr.on(this._element,e,this._config.selector,e=>{let t=this._initializeOnDelegatedTarget(e);t._activeTrigger[e.type===`focusin`?nc:tc]=!0,t._enter()}),Yr.on(this._element,n,this._config.selector,e=>{let t=this._initializeOnDelegatedTarget(e);t._activeTrigger[e.type===`focusout`?nc:tc]=t._element.contains(e.relatedTarget),t._leave()})}this._hideModalHandler=()=>{this._element&&this.hide()},Yr.on(this._element.closest($s),ec,this._hideModalHandler)}_fixTitle(){let e=this._element.getAttribute(`title`);e&&(!this._element.getAttribute(`aria-label`)&&!this._element.textContent.trim()&&this._element.setAttribute(`aria-label`,e),this._element.setAttribute(`data-bs-original-title`,e),this._element.removeAttribute(`title`))}_enter(){if(this._isShown()||this._isHovered){this._isHovered=!0;return}this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show)}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){let t=$r.getDataAttributes(this._element);for(let e of Object.keys(t))Js.has(e)&&delete t[e];return e={...t,...typeof e==`object`&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=e.container===!1?document.body:vr(e.container),typeof e.delay==`number`&&(e.delay={show:e.delay,hide:e.delay}),typeof e.title==`number`&&(e.title=e.title.toString()),typeof e.content==`number`&&(e.content=e.content.toString()),e}_getDelegateConfig(){let e={};for(let[t,n]of Object.entries(this._config))this.constructor.Default[t]!==n&&(e[t]=n);return e.selector=!1,e.trigger=`manual`,e}_disposePopper(){this._popper&&=(this._popper.destroy(),null),this.tip&&=(this.tip.remove(),null)}static jQueryInterface(t){return this.each(function(){let n=e.getOrCreateInstance(this,t);if(typeof t==`string`){if(n[t]===void 0)throw TypeError(`No method named "${t}"`);n[t]()}})}};Or(vc);var yc=`popover`,bc=`.popover-header`,xc=`.popover-body`,Sc={...vc.Default,content:``,offset:[0,8],placement:`right`,template:``,trigger:`click`},Cc={...vc.DefaultType,content:`(null|string|element|function)`};Or(class e extends vc{static get Default(){return Sc}static get DefaultType(){return Cc}static get NAME(){return yc}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[bc]:this._getTitle(),[xc]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each(function(){let n=e.getOrCreateInstance(this,t);if(typeof t==`string`){if(n[t]===void 0)throw TypeError(`No method named "${t}"`);n[t]()}})}});var wc=`scrollspy`,Tc=`.bs.scrollspy`,Ec=`.data-api`,Dc=`activate${Tc}`,Oc=`click${Tc}`,kc=`load${Tc}${Ec}`,Ac=`dropdown-item`,jc=`active`,Mc=`[data-bs-spy="scroll"]`,Nc=`[href]`,Pc=`.nav, .list-group`,Fc=`.nav-link`,Ic=`${Fc}, .nav-item > ${Fc}, .list-group-item`,Lc=`.dropdown`,Rc=`.dropdown-toggle`,zc={offset:null,rootMargin:`0px 0px -25%`,smoothScroll:!1,target:null,threshold:[.1,.5,1]},Bc={offset:`(number|null)`,rootMargin:`string`,smoothScroll:`boolean`,target:`element`,threshold:`array`},Vc=class e extends ni{constructor(e,t){super(e,t),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement=getComputedStyle(this._element).overflowY===`visible`?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return zc}static get DefaultType(){return Bc}static get NAME(){return wc}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(let e of this._observableSections.values())this._observer.observe(e)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(e){return e.target=vr(e.target)||document.body,e.rootMargin=e.offset?`${e.offset}px 0px -30%`:e.rootMargin,typeof e.threshold==`string`&&(e.threshold=e.threshold.split(`,`).map(e=>Number.parseFloat(e))),e}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(Yr.off(this._config.target,Oc),Yr.on(this._config.target,Oc,Nc,e=>{let t=this._observableSections.get(e.target.hash);if(t){e.preventDefault();let n=this._rootElement||window,r=t.offsetTop-this._element.offsetTop;if(n.scrollTo){n.scrollTo({top:r,behavior:`smooth`});return}n.scrollTop=r}}))}_getNewObserver(){let e={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver(e=>this._observerCallback(e),e)}_observerCallback(e){let t=e=>this._targetLinks.get(`#${e.target.id}`),n=e=>{this._previousScrollData.visibleEntryTop=e.target.offsetTop,this._process(t(e))},r=(this._rootElement||document.documentElement).scrollTop,i=r>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=r;for(let a of e){if(!a.isIntersecting){this._activeTarget=null,this._clearActiveClass(t(a));continue}let e=a.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(i&&e){if(n(a),!r)return;continue}!i&&!e&&n(a)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;let e=ii.find(Nc,this._config.target);for(let t of e){if(!t.hash||br(t))continue;let e=ii.findOne(decodeURI(t.hash),this._element);yr(e)&&(this._targetLinks.set(decodeURI(t.hash),t),this._observableSections.set(t.hash,e))}}_process(e){this._activeTarget!==e&&(this._clearActiveClass(this._config.target),this._activeTarget=e,e.classList.add(jc),this._activateParents(e),Yr.trigger(this._element,Dc,{relatedTarget:e}))}_activateParents(e){if(e.classList.contains(Ac)){ii.findOne(Rc,e.closest(Lc)).classList.add(jc);return}for(let t of ii.parents(e,Pc))for(let e of ii.prev(t,Ic))e.classList.add(jc)}_clearActiveClass(e){e.classList.remove(jc);let t=ii.find(`${Nc}.${jc}`,e);for(let e of t)e.classList.remove(jc)}static jQueryInterface(t){return this.each(function(){let n=e.getOrCreateInstance(this,t);if(typeof t==`string`){if(n[t]===void 0||t.startsWith(`_`)||t===`constructor`)throw TypeError(`No method named "${t}"`);n[t]()}})}};Yr.on(window,kc,()=>{for(let e of ii.find(Mc))Vc.getOrCreateInstance(e)}),Or(Vc);var Hc=`tab`,Uc=`.bs.tab`,Wc=`hide${Uc}`,Gc=`hidden${Uc}`,Kc=`show${Uc}`,qc=`shown${Uc}`,Jc=`click${Uc}`,Yc=`keydown${Uc}`,Xc=`load${Uc}`,Zc=`ArrowLeft`,Qc=`ArrowRight`,$c=`ArrowUp`,el=`ArrowDown`,tl=`Home`,nl=`End`,rl=`active`,il=`fade`,al=`show`,ol=`dropdown`,sl=`.dropdown-toggle`,cl=`.dropdown-menu`,ll=`:not(${sl})`,ul=`.list-group, .nav, [role="tablist"]`,dl=`.nav-item, .list-group-item`,fl=`.nav-link${ll}, .list-group-item${ll}, [role="tab"]${ll}`,pl=`[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]`,ml=`${fl}, ${pl}`,hl=`.${rl}[data-bs-toggle="tab"], .${rl}[data-bs-toggle="pill"], .${rl}[data-bs-toggle="list"]`,gl=class e extends ni{constructor(e){super(e),this._parent=this._element.closest(ul),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),Yr.on(this._element,Yc,e=>this._keydown(e)))}static get NAME(){return Hc}show(){let e=this._element;if(this._elemIsActive(e))return;let t=this._getActiveElem(),n=t?Yr.trigger(t,Wc,{relatedTarget:e}):null;Yr.trigger(e,Kc,{relatedTarget:t}).defaultPrevented||n&&n.defaultPrevented||(this._deactivate(t,e),this._activate(e,t))}_activate(e,t){e&&(e.classList.add(rl),this._activate(ii.getElementFromSelector(e)),this._queueCallback(()=>{if(e.getAttribute(`role`)!==`tab`){e.classList.add(al);return}e.removeAttribute(`tabindex`),e.setAttribute(`aria-selected`,!0),this._toggleDropDown(e,!0),Yr.trigger(e,qc,{relatedTarget:t})},e,e.classList.contains(il)))}_deactivate(e,t){e&&(e.classList.remove(rl),e.blur(),this._deactivate(ii.getElementFromSelector(e)),this._queueCallback(()=>{if(e.getAttribute(`role`)!==`tab`){e.classList.remove(al);return}e.setAttribute(`aria-selected`,!1),e.setAttribute(`tabindex`,`-1`),this._toggleDropDown(e,!1),Yr.trigger(e,Gc,{relatedTarget:t})},e,e.classList.contains(il)))}_keydown(t){if(![Zc,Qc,$c,el,tl,nl].includes(t.key))return;t.stopPropagation(),t.preventDefault();let n=this._getChildren().filter(e=>!br(e)),r;if([tl,nl].includes(t.key))r=n[t.key===tl?0:n.length-1];else{let e=[Qc,el].includes(t.key);r=jr(n,t.target,e,!0)}r&&(r.focus({preventScroll:!0}),e.getOrCreateInstance(r).show())}_getChildren(){return ii.find(ml,this._parent)}_getActiveElem(){return this._getChildren().find(e=>this._elemIsActive(e))||null}_setInitialAttributes(e,t){this._setAttributeIfNotExists(e,`role`,`tablist`);for(let e of t)this._setInitialAttributesOnChild(e)}_setInitialAttributesOnChild(e){e=this._getInnerElement(e);let t=this._elemIsActive(e),n=this._getOuterElement(e);e.setAttribute(`aria-selected`,t),n!==e&&this._setAttributeIfNotExists(n,`role`,`presentation`),t||e.setAttribute(`tabindex`,`-1`),this._setAttributeIfNotExists(e,`role`,`tab`),this._setInitialAttributesOnTargetPanel(e)}_setInitialAttributesOnTargetPanel(e){let t=ii.getElementFromSelector(e);t&&(this._setAttributeIfNotExists(t,`role`,`tabpanel`),e.id&&this._setAttributeIfNotExists(t,`aria-labelledby`,`${e.id}`))}_toggleDropDown(e,t){let n=this._getOuterElement(e);if(!n.classList.contains(ol))return;let r=(e,r)=>{let i=ii.findOne(e,n);i&&i.classList.toggle(r,t)};r(sl,rl),r(cl,al),n.setAttribute(`aria-expanded`,t)}_setAttributeIfNotExists(e,t,n){e.hasAttribute(t)||e.setAttribute(t,n)}_elemIsActive(e){return e.classList.contains(rl)}_getInnerElement(e){return e.matches(ml)?e:ii.findOne(ml,e)}_getOuterElement(e){return e.closest(dl)||e}static jQueryInterface(t){return this.each(function(){let n=e.getOrCreateInstance(this);if(typeof t==`string`){if(n[t]===void 0||t.startsWith(`_`)||t===`constructor`)throw TypeError(`No method named "${t}"`);n[t]()}})}};Yr.on(document,Jc,pl,function(e){[`A`,`AREA`].includes(this.tagName)&&e.preventDefault(),!br(this)&&gl.getOrCreateInstance(this).show()}),Yr.on(window,Xc,()=>{for(let e of ii.find(hl))gl.getOrCreateInstance(e)}),Or(gl);var _l=`toast`,vl=`.bs.toast`,yl=`mouseover${vl}`,bl=`mouseout${vl}`,xl=`focusin${vl}`,Sl=`focusout${vl}`,Cl=`hide${vl}`,wl=`hidden${vl}`,Tl=`show${vl}`,El=`shown${vl}`,Dl=`fade`,Ol=`hide`,kl=`show`,Al=`showing`,jl={animation:`boolean`,autohide:`boolean`,delay:`number`},Ml={animation:!0,autohide:!0,delay:5e3},Nl=class e extends ni{constructor(e,t){super(e,t),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return Ml}static get DefaultType(){return jl}static get NAME(){return _l}show(){Yr.trigger(this._element,Tl).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add(Dl),this._element.classList.remove(Ol),Cr(this._element),this._element.classList.add(kl,Al),this._queueCallback(()=>{this._element.classList.remove(Al),Yr.trigger(this._element,El),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){!this.isShown()||Yr.trigger(this._element,Cl).defaultPrevented||(this._element.classList.add(Al),this._queueCallback(()=>{this._element.classList.add(Ol),this._element.classList.remove(Al,kl),Yr.trigger(this._element,wl)},this._element,this._config.animation))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(kl),super.dispose()}isShown(){return this._element.classList.contains(kl)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(e,t){switch(e.type){case`mouseover`:case`mouseout`:this._hasMouseInteraction=t;break;case`focusin`:case`focusout`:this._hasKeyboardInteraction=t;break}if(t){this._clearTimeout();return}let n=e.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){Yr.on(this._element,yl,e=>this._onInteraction(e,!0)),Yr.on(this._element,bl,e=>this._onInteraction(e,!1)),Yr.on(this._element,xl,e=>this._onInteraction(e,!0)),Yr.on(this._element,Sl,e=>this._onInteraction(e,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each(function(){let n=e.getOrCreateInstance(this,t);if(typeof t==`string`){if(n[t]===void 0)throw TypeError(`No method named "${t}"`);n[t](this)}})}};ai(Nl),Or(Nl);var Pl=typeof window<`u`,Fl,Il=e=>Fl=e,Ll=Symbol();function Rl(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var zl;(function(e){e.direct=`direct`,e.patchObject=`patch object`,e.patchFunction=`patch function`})(zl||={});var Bl=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function Vl(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function Hl(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){ql(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function Ul(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function Wl(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var Gl=typeof navigator==`object`?navigator:{userAgent:``},Kl=/Macintosh/.test(Gl.userAgent)&&/AppleWebKit/.test(Gl.userAgent)&&!/Safari/.test(Gl.userAgent),ql=Pl?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!Kl?Jl:`msSaveOrOpenBlob`in Gl?Yl:Xl:()=>{};function Jl(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?Wl(r):Ul(r.href)?Hl(e,t,n):(r.target=`_blank`,Wl(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){Wl(r)},0))}function Yl(e,t=`download`,n){if(typeof e==`string`)if(Ul(e))Hl(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){Wl(t)})}else navigator.msSaveOrOpenBlob(Vl(e,n),t)}function Xl(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return Hl(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(Bl.HTMLElement))||`safari`in Bl,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||Kl)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:Zl}=Object;function Ql(){let e=xe(!0),t=e.run(()=>R({})),n=[],r=[],i=Oe({install(e){Il(i),i._a=e,e.provide(Ll,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var $l=()=>{};function eu(e,t,n,r=$l){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&Ie()&&Ce(i),i}function tu(e,...t){e.forEach(e=>{e(...t)})}var nu=e=>e(),ru=Symbol(),iu=Symbol();function au(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!t.hasOwnProperty(n))continue;let r=t[n],i=e[n];Rl(i)&&Rl(r)&&e.hasOwnProperty(n)&&!fe(r)&&!ce(r)?e[n]=au(i,r):e[n]=r}return e}var ou=Symbol();function su(e){return!Rl(e)||!Object.prototype.hasOwnProperty.call(e,ou)}var{assign:cu}=Object;function lu(e){return!!(fe(e)&&e.effect)}function uu(e,t,n,r){let{state:i,actions:a,getters:o}=t,c=n.state.value[e],l;function u(){return c||(n.state.value[e]=i?i():{}),cu(s(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=Oe(B(()=>{Il(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return l=du(e,u,t,n,r,!0),l}function du(e,t,n={},r,i,a){let o,s=cu({actions:{}},n),c={deep:!0},l,u,d=new Set,f=new Set,p=r.state.value[e];!a&&!p&&(r.state.value[e]={}),R({});let m;function h(t){let n;l=u=!1,typeof t==`function`?(t(r.state.value[e]),n={type:zl.patchFunction,storeId:e,events:void 0}):(au(r.state.value[e],t),n={type:zl.patchObject,payload:t,storeId:e,events:void 0});let i=m=Symbol();D().then(()=>{m===i&&(l=!0)}),u=!0,tu(d,n,r.state.value[e])}let g=a?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{cu(e,t)})}:$l;function _(){o.stop(),d.clear(),f.clear(),r._s.delete(e)}let v=(t,n=``)=>{if(ru in t)return t[iu]=n,t;let i=function(){Il(r);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}tu(f,{args:n,name:i[iu],store:y,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:y,n)}catch(e){throw tu(o,e),e}return l instanceof Promise?l.then(e=>(tu(a,e),e)).catch(e=>(tu(o,e),Promise.reject(e))):(tu(a,l),l)};return i[ru]=!0,i[iu]=n,i},y=he({_p:r,$id:e,$onAction:eu.bind(null,f),$patch:h,$reset:g,$subscribe(t,n={}){let i=eu(d,t,n.detached,()=>a()),a=o.run(()=>z(()=>r.state.value[e],r=>{(n.flush===`sync`?u:l)&&t({storeId:e,type:zl.direct,events:void 0},r)},cu({},c,n)));return i},$dispose:_});r._s.set(e,y);let b=(r._a&&r._a.runWithContext||nu)(()=>r._e.run(()=>(o=xe()).run(()=>t({action:v}))));for(let t in b){let n=b[t];fe(n)&&!lu(n)||ce(n)?a||(p&&su(n)&&(fe(n)?n.value=p[t]:au(n,p[t])),r.state.value[e][t]=n):typeof n==`function`&&(b[t]=v(n,t),s.actions[t]=n)}return cu(y,b),cu(Be(y),b),Object.defineProperty(y,`$state`,{get:()=>r.state.value[e],set:e=>{h(t=>{cu(t,e)})}}),r._p.forEach(e=>{cu(y,o.run(()=>e({store:y,app:r._a,pinia:r,options:s})))}),p&&a&&n.hydrate&&n.hydrate(y.$state,p),l=!0,u=!0,y}function fu(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=S();return n||=o?w(Ll,null):null,n&&Il(n),n=Fl,n._s.has(e)||(i?du(e,t,r,n):uu(e,r,n)),n._s.get(e)}return a.$id=e,a}function pu(e){let t=Be(e),n={};for(let r in t){let i=t[r];i.effect?n[r]=B({get:()=>e[r],set(t){e[r]=t}}):(fe(i)||ce(i))&&(n[r]=k(e,r))}return n}var Y={tab:`Tab`,enter:`Enter`,space:`Space`,left:`ArrowLeft`,up:`ArrowUp`,right:`ArrowRight`,down:`ArrowDown`,esc:`Escape`,delete:`Delete`,backspace:`Backspace`,numpadEnter:`NumpadEnter`,pageUp:`PageUp`,pageDown:`PageDown`,home:`Home`,end:`End`},mu=[`year`,`years`,`month`,`months`,`date`,`dates`,`week`,`datetime`,`datetimerange`,`daterange`,`monthrange`,`yearrange`],hu=[`sun`,`mon`,`tue`,`wed`,`thu`,`fri`,`sat`],gu=`update:modelValue`,_u=`change`,vu=`input`,yu=Symbol(`INSTALLED_KEY`),bu=[``,`default`,`small`,`large`],xu=[`left`,`center`,`right`],Su=typeof global==`object`&&global&&global.Object===Object&&global,Cu=typeof self==`object`&&self&&self.Object===Object&&self,wu=Su||Cu||Function(`return this`)(),Tu=wu.Symbol,Eu=Object.prototype,Du=Eu.hasOwnProperty,Ou=Eu.toString,ku=Tu?Tu.toStringTag:void 0;function Au(e){var t=Du.call(e,ku),n=e[ku];try{e[ku]=void 0;var r=!0}catch{}var i=Ou.call(e);return r&&(t?e[ku]=n:delete e[ku]),i}var ju=Object.prototype.toString;function Mu(e){return ju.call(e)}var Nu=`[object Null]`,Pu=`[object Undefined]`,Fu=Tu?Tu.toStringTag:void 0;function Iu(e){return e==null?e===void 0?Pu:Nu:Fu&&Fu in Object(e)?Au(e):Mu(e)}function Lu(e){return typeof e==`object`&&!!e}var Ru=`[object Symbol]`;function zu(e){return typeof e==`symbol`||Lu(e)&&Iu(e)==Ru}function Bu(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n0){if(++t>=Pd)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function Rd(e){return function(){return e}}var zd=function(){try{var e=Dd(Object,`defineProperty`);return e({},``,{}),e}catch{}}(),Bd=Ld(zd?function(e,t){return zd(e,`toString`,{configurable:!0,enumerable:!1,value:Rd(t),writable:!0})}:sd);function Vd(e,t){for(var n=-1,r=e==null?0:e.length;++n-1}var qd=9007199254740991,Jd=/^(?:0|[1-9]\d*)$/;function Yd(e,t){var n=typeof e;return t??=qd,!!t&&(n==`number`||n!=`symbol`&&Jd.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=af}function sf(e){return e!=null&&of(e.length)&&!fd(e)}function cf(e,t,n){if(!Xu(n))return!1;var r=typeof t;return(r==`number`?sf(n)&&Yd(t,n.length):r==`string`&&t in n)?Zd(n[t],e):!1}function lf(e){return rf(function(t,n){var r=-1,i=n.length,a=i>1?n[i-1]:void 0,o=i>2?n[2]:void 0;for(a=e.length>3&&typeof a==`function`?(i--,a):void 0,o&&cf(n[0],n[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++r-1}function Pp(e,t){var n=this.__data__,r=kp(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function Fp(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t0&&n(s)?t>1?sm(s,t-1,n,r,i):im(i,s):r||(i[i.length]=s)}return i}function cm(e){return e!=null&&e.length?sm(e,1):[]}function lm(e){return Bd(nf(e,void 0,cm),e+``)}var um=ap(Object.getPrototypeOf,Object),dm=`[object Object]`,fm=Function.prototype,pm=Object.prototype,mm=fm.toString,hm=pm.hasOwnProperty,gm=mm.call(Object);function _m(e){if(!Lu(e)||Iu(e)!=dm)return!1;var t=um(e);if(t===null)return!0;var n=hm.call(t,`constructor`)&&t.constructor;return typeof n==`function`&&n instanceof n&&mm.call(n)==gm}function vm(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(i);++r=t?e:t)),e}function xm(e,t,n){return n===void 0&&(n=t,t=void 0),n!==void 0&&(n=nd(n),n=n===n?n:0),t!==void 0&&(t=nd(t),t=t===t?t:0),bm(nd(e),t,n)}function Sm(){this.__data__=new Fp,this.size=0}function Cm(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function wm(e){return this.__data__.get(e)}function Tm(e){return this.__data__.has(e)}var Em=200;function Dm(e,t){var n=this.__data__;if(n instanceof Fp){var r=n.__data__;if(!Ip||r.lengths))return!1;var l=a.get(e),u=a.get(t);if(l&&u)return l==t&&u==e;var d=-1,f=!0,p=n&Ig?new Mg:void 0;for(a.set(e,t),a.set(t,e);++d=t||n<0||d&&r>=a}function _(){var e=P_();if(g(e))return v(e);s=setTimeout(_,h(e))}function v(e){return s=void 0,f&&r?p(e):(r=i=void 0,o)}function y(){s!==void 0&&clearTimeout(s),l=0,r=c=i=s=void 0}function b(){return s===void 0?o:v(P_())}function x(){var e=P_(),n=g(e);if(r=arguments,i=this,c=e,n){if(s===void 0)return m(c);if(d)return clearTimeout(s),s=setTimeout(_,t),p(c)}return s===void 0&&(s=setTimeout(_,t)),o}return x.cancel=y,x.flush=b,x}function z_(e,t,n){(n!==void 0&&!Zd(e[t],n)||n===void 0&&!(t in e))&&Xd(e,t,n)}function B_(e){return Lu(e)&&sf(e)}function V_(e,t){if(!(t===`constructor`&&typeof e[t]==`function`)&&t!=`__proto__`)return e[t]}function H_(e){return ef(e,pp(e))}function U_(e,t,n,r,i,a,o){var s=V_(e,n),c=V_(t,n),l=o.get(c);if(l){z_(e,n,l);return}var u=a?a(s,c,n+``,e,t,o):void 0,d=u===void 0;if(d){var f=Vu(c),p=!f&&Cf(c),m=!f&&!p&&np(c);u=c,f||p||m?Vu(s)?u=s:B_(s)?u=Nd(s):p?(d=!1,u=Fm(c,!0)):m?(d=!1,u=yh(c,!0)):u=[]:_m(c)||vf(c)?(u=s,vf(s)?u=H_(s):(!Xu(s)||fd(s))&&(u=Bh(c))):d=!1}d&&(o.set(c,u),i(u,c,r,a,o),o.delete(c)),z_(e,n,u)}function W_(e,t,n,r,i){e!==t&&A_(t,function(a,o){if(i||=new Om,Xu(a))U_(e,t,o,n,W_,r,i);else{var s=r?r(V_(e,o),a,o+``,e,t,i):void 0;s===void 0&&(s=a),z_(e,o,s)}},pp)}function G_(e,t,n){for(var r=-1,i=e==null?0:e.length;++r1,t}),ef(e,Km(e),n),r&&(n=Tg(n,dv|fv|pv,uv));for(var i=t.length;i--;)lv(n,t[i]);return n});function hv(e,t,n,r){if(!Xu(e))return e;t=$p(t,e);for(var i=-1,a=t.length,o=a-1,s=e;s!=null&&++i=Cv){var l=t?null:Sv(e);if(l)return zg(l);o=!1,i=Pg,c=new Mg}else c=t?[]:s;outer:for(;++re===void 0,Dv=e=>typeof e==`boolean`,Ov=e=>typeof e==`number`,kv=e=>!e&&e!==0||b(e)&&e.length===0||N(e)&&!Object.keys(e).length,Av=e=>typeof Element>`u`?!1:e instanceof Element,jv=e=>iv(e),Mv=e=>I(e)?!Number.isNaN(Number(e)):!1,Nv=e=>e===window;h();var Pv=e=>Object.keys(e),Fv=e=>Object.entries(e),Iv=(e,t,n)=>({get value(){return rm(e,t,n)},set value(n){yv(e,t,n)}}),Lv=`__epPropKey`,X=e=>e,Rv=e=>N(e)&&!!e.__epPropKey,zv=(e,t)=>{if(!N(e)||Rv(e))return e;let{values:n,required:r,default:i,type:a,validator:o}=e,s={type:a,required:!!r,validator:n||o?r=>{let a=!1,s=[];if(n&&(s=Array.from(n),T(e,`default`)&&s.push(i),a||=s.includes(r)),o&&(a||=o(r)),!a&&s.length>0){let e=[...new Set(s)].map(e=>JSON.stringify(e)).join(`, `);ge(`Invalid prop: validation failed${t?` for prop "${t}"`:``}. Expected one of [${e}], got value ${JSON.stringify(r)}.`)}return a}:void 0,[Lv]:!0};return T(e,`default`)&&(s.default=i),s},Z=e=>tv(Object.entries(e).map(([e,t])=>[e,zv(t,e)])),Bv=Z({zIndex:{type:X([Number,String]),default:100},target:{type:String,default:``},offset:{type:Number,default:0},position:{type:String,values:[`top`,`bottom`],default:`top`},teleported:Boolean,appendTo:{type:X([String,Object]),default:`body`}}),Vv={scroll:({scrollTop:e,fixed:t})=>Ov(e)&&Dv(t),[_u]:e=>Dv(e)},Hv=class extends Error{constructor(e){super(e),this.name=`ElementPlusError`}};function Uv(e,t){throw new Hv(`[${e}] ${t}`)}function Wv(e,t){{let n=I(e)?new Hv(`[${e}] ${t}`):e;console.warn(n)}}var Gv=[`class`,`style`],Kv=/^on[A-Z]/,qv=(e={})=>{let{excludeListeners:t=!1,excludeKeys:r}=e,i=B(()=>(r?.value||[]).concat(Gv)),a=n();return a?B(()=>tv(Object.entries(a.proxy?.$attrs).filter(([e])=>!i.value.includes(e)&&!(t&&Kv.test(e))))):(Wv(`use-attrs`,`getCurrentInstance() returned null. useAttrs() must be called at the top of a setup function`),B(()=>({})))};function Jv(e,t){let n=V();return Ee(()=>{n.value=e()},{...t,flush:t?.flush??`sync`}),pe(n)}function Yv(e,t){return Ie()?(Ce(e,t),!0):!1}var Xv=new WeakMap,Zv=(...e)=>{let t=e[0],r=n()?.proxy??Ie();if(r==null&&!S())throw Error(`injectLocal must be called in setup`);return r&&Xv.has(r)&&t in Xv.get(r)?Xv.get(r)[t]:w(...e)},Qv=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var $v=e=>e!==void 0,ey=e=>e!=null,ty=Object.prototype.toString,ny=e=>ty.call(e)===`[object Object]`,ry=(e,t,n)=>Math.min(n,Math.max(t,e)),iy=()=>{},ay=oy();function oy(){var e,t;return Qv&&!!(!((e=window)==null||(e=e.navigator)==null)&&e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window)==null||(t=t.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window?.navigator.userAgent))}function sy(e,t){function n(...n){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(r).catch(i)})}return n}function cy(e,t={}){let n,r,i=iy,a=e=>{clearTimeout(e),i(),i=iy},o;return s=>{let c=ze(e),l=ze(t.maxWait);return n&&a(n),c<=0||l!==void 0&&l<=0?(r&&=(a(r),void 0),Promise.resolve(s())):new Promise((e,u)=>{i=t.rejectOnCancel?u:e,o=s,l&&!r&&(r=setTimeout(()=>{n&&a(n),r=void 0,e(o())},l)),n=setTimeout(()=>{r&&a(r),r=void 0,e(s())},c)})}}function ly(...e){let t=0,n,r=!0,i=iy,a,o,s,c,l;!fe(e[0])&&typeof e[0]==`object`?{delay:o,trailing:s=!0,leading:c=!0,rejectOnCancel:l=!1}=e[0]:[o,s=!0,c=!0,l=!1]=e;let u=()=>{n&&(clearTimeout(n),n=void 0,i(),i=iy)};return e=>{let d=ze(o),f=Date.now()-t,p=()=>a=e();return u(),d<=0?(t=Date.now(),p()):(f>d?(t=Date.now(),(c||!r)&&p()):s&&(a=new Promise((e,a)=>{i=l?a:e,n=setTimeout(()=>{t=Date.now(),r=!0,e(p()),u()},Math.max(0,d-f))})),!c&&!n&&(n=setTimeout(()=>r=!0,d)),r=!1,a)}}function uy(e){return e.endsWith(`rem`)?Number.parseFloat(e)*16:Number.parseFloat(e)}function dy(e){return Array.isArray(e)?e:[e]}function fy(e){return e||n()}function py(e){return fe(e)?he(new Proxy({},{get(t,n,r){return l(Reflect.get(e.value,n,r))},set(t,n,r){return fe(e.value[n])&&!fe(r)?e.value[n].value=r:e.value[n]=r,!0},deleteProperty(t,n){return Reflect.deleteProperty(e.value,n)},has(t,n){return Reflect.has(e.value,n)},ownKeys(){return Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}})):he(e)}function my(e){return py(B(e))}function hy(e,t=200,n={}){return sy(cy(t,n),e)}function gy(e,t=200,n={}){let r=R(ze(e)),i=hy(()=>{r.value=e.value},t,n);return z(e,()=>i()),He(r)}function _y(e,t=200,n=!1,r=!0,i=!1){return sy(ly(t,n,r,i),e)}function vy(e,t=!0,n){fy(n)?P(e,n):t?e():D(e)}function yy(e,t,n={}){let{immediate:r=!0,immediateCallback:i=!1}=n,a=V(!1),o;function s(){o&&=(clearTimeout(o),void 0)}function c(){a.value=!1,s()}function l(...n){i&&e(),s(),a.value=!0,o=setTimeout(()=>{a.value=!1,o=void 0,e(...n)},ze(t))}return r&&(a.value=!0,Qv&&l()),Yv(c),{isPending:He(a),start:l,stop:c}}function by(e,t,n){return z(e,t,{...n,immediate:!0})}var xy=Qv?window:void 0,Sy=Qv?window.document:void 0;Qv&&window.navigator,Qv&&window.location;function Cy(e){let t=ze(e);return t?.$el??t}function wy(...e){let t=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),n=B(()=>{let t=dy(ze(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0});return by(()=>[n.value?.map(e=>Cy(e))??[xy].filter(e=>e!=null),dy(ze(n.value?e[1]:e[0])),dy(l(n.value?e[2]:e[1])),ze(n.value?e[3]:e[2])],([e,n,r,i],a,o)=>{if(!e?.length||!n?.length||!r?.length)return;let s=ny(i)?{...i}:i,c=e.flatMap(e=>n.flatMap(n=>r.map(r=>t(e,n,r,s))));o(()=>{c.forEach(e=>e())})},{flush:`post`})}var Ty=!1;function Ey(e,t,n={}){let{window:r=xy,ignore:i=[],capture:a=!0,detectIframe:o=!1,controls:s=!1}=n;if(!r)return s?{stop:iy,cancel:iy,trigger:iy}:iy;if(ay&&!Ty){Ty=!0;let e={passive:!0};Array.from(r.document.body.children).forEach(t=>t.addEventListener(`click`,iy,e)),r.document.documentElement.addEventListener(`click`,iy,e)}let c=!0,l=e=>ze(i).some(t=>{if(typeof t==`string`)return Array.from(r.document.querySelectorAll(t)).some(t=>t===e.target||e.composedPath().includes(t));{let n=Cy(t);return n&&(e.target===n||e.composedPath().includes(n))}});function u(e){let t=ze(e);return t&&t.$.subTree.shapeFlag===16}function d(e,t){let n=ze(e),r=n.$.subTree&&n.$.subTree.children;return r==null||!Array.isArray(r)?!1:r.some(e=>e.el===t.target||t.composedPath().includes(e.el))}let f=n=>{let r=Cy(e);if(n.target!=null&&!(!(r instanceof Element)&&u(e)&&d(e,n))&&!(!r||r===n.target||n.composedPath().includes(r))){if(`detail`in n&&n.detail===0&&(c=!l(n)),!c){c=!0;return}t(n)}},p=!1,m=[wy(r,`click`,e=>{p||(p=!0,setTimeout(()=>{p=!1},0),f(e))},{passive:!0,capture:a}),wy(r,`pointerdown`,t=>{let n=Cy(e);c=!l(t)&&!!(n&&!t.composedPath().includes(n))},{passive:!0}),o&&wy(r,`blur`,n=>{setTimeout(()=>{let i=Cy(e),a=r.document.activeElement;for(;a?.shadowRoot;)a=a.shadowRoot.activeElement;a?.tagName===`IFRAME`&&!i?.contains(r.document.activeElement)&&t(n)},0)},{passive:!0})].filter(Boolean),h=()=>m.forEach(e=>e());return s?{stop:h,cancel:()=>{c=!1},trigger:e=>{c=!0,f(e),c=!1}}:h}function Dy(){let e=V(!1),t=n();return t&&P(()=>{e.value=!0},t),e}function Oy(e){let t=Dy();return B(()=>(t.value,!!e()))}function ky(e,t,n={}){let{window:r=xy,...i}=n,a,o=Oy(()=>r&&`MutationObserver`in r),s=()=>{a&&=(a.disconnect(),void 0)},c=z(B(()=>{let t=dy(ze(e)).map(Cy).filter(ey);return new Set(t)}),e=>{s(),o.value&&e.size&&(a=new MutationObserver(t),e.forEach(e=>a.observe(e,i)))},{immediate:!0,flush:`post`}),l=()=>a?.takeRecords(),u=()=>{c(),s()};return Yv(u),{isSupported:o,stop:u,takeRecords:l}}function Ay(e,t,n={}){let{window:r=xy,document:i=r?.document,flush:a=`sync`}=n;if(!r||!i)return iy;let o,s=e=>{o?.(),o=e},c=Ee(()=>{let n=Cy(e);if(n){let{stop:e}=ky(i,e=>{e.map(e=>[...e.removedNodes]).flat().some(e=>e===n||e.contains(n))&&t(e)},{window:r,childList:!0,subtree:!0});s(e)}},{flush:a}),l=()=>{c(),s()};return Yv(l),l}function jy(e={}){let{window:t=xy,deep:n=!0,triggerOnRemoval:r=!1}=e,i=e.document??t?.document,a=()=>{let e=i?.activeElement;if(n)for(var t;e?.shadowRoot;)e=e==null||(t=e.shadowRoot)==null?void 0:t.activeElement;return e},o=V(),s=()=>{o.value=a()};if(t){let e={capture:!0,passive:!0};wy(t,`blur`,e=>{e.relatedTarget===null&&s()},e),wy(t,`focus`,s,e)}return r&&Ay(o,s,{document:i}),s(),o}var My=Symbol(`vueuse-ssr-width`);function Ny(){let e=S()?Zv(My,null):null;return typeof e==`number`?e:void 0}function Py(e,t={}){let{window:n=xy,ssrWidth:r=Ny()}=t,i=Oy(()=>n&&`matchMedia`in n&&typeof n.matchMedia==`function`),a=V(typeof r==`number`),o=V(),s=V(!1);return Ee(()=>{if(a.value){a.value=!i.value,s.value=ze(e).split(`,`).some(e=>{let t=e.includes(`not all`),n=e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),i=e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),a=!!(n||i);return n&&a&&(a=r>=uy(n[1])),i&&a&&(a=r<=uy(i[1])),t?!a:a});return}i.value&&(o.value=n.matchMedia(ze(e)),s.value=o.value.matches)}),wy(o,`change`,e=>{s.value=e.matches},{passive:!0}),B(()=>s.value)}function Fy(e){return JSON.parse(JSON.stringify(e))}function Iy(e,t,n={}){let{window:r=xy,initialValue:i,observe:a=!1}=n,o=V(i),s=B(()=>{var e;return Cy(t)||(r==null||(e=r.document)==null?void 0:e.documentElement)});function c(){let t=ze(e),n=ze(s);n&&r&&t&&(o.value=r.getComputedStyle(n).getPropertyValue(t)?.trim()||o.value||i)}return a&&ky(s,c,{attributeFilter:[`style`,`class`],window:r}),z([s,()=>ze(e)],(e,t)=>{t[0]&&t[1]&&t[0].style.removeProperty(t[1]),c()},{immediate:!0}),z([o,s],([t,n])=>{let r=ze(e);n?.style&&r&&(t==null?n.style.removeProperty(r):n.style.setProperty(r,t))},{immediate:!0}),o}function Ly(e={}){let{document:t=Sy}=e;if(!t)return V(`visible`);let n=V(t.visibilityState);return wy(t,`visibilitychange`,()=>{n.value=t.visibilityState},{passive:!0}),n}function Ry(e,t,n={}){let{window:r=xy,...i}=n,a,o=Oy(()=>r&&`ResizeObserver`in r),s=()=>{a&&=(a.disconnect(),void 0)},c=z(B(()=>{let t=ze(e);return Array.isArray(t)?t.map(e=>Cy(e)):[Cy(t)]}),e=>{if(s(),o.value&&r){a=new ResizeObserver(t);for(let t of e)t&&a.observe(t,i)}},{immediate:!0,flush:`post`}),l=()=>{s(),c()};return Yv(l),{isSupported:o,stop:l}}function zy(e,t={}){let{reset:n=!0,windowResize:r=!0,windowScroll:i=!0,immediate:a=!0,updateTiming:o=`sync`}=t,s=V(0),c=V(0),l=V(0),u=V(0),d=V(0),f=V(0),p=V(0),m=V(0);function h(){let t=Cy(e);if(!t){n&&(s.value=0,c.value=0,l.value=0,u.value=0,d.value=0,f.value=0,p.value=0,m.value=0);return}let r=t.getBoundingClientRect();s.value=r.height,c.value=r.bottom,l.value=r.left,u.value=r.right,d.value=r.top,f.value=r.width,p.value=r.x,m.value=r.y}function g(){o===`sync`?h():o===`next-frame`&&requestAnimationFrame(()=>h())}return Ry(e,g),z(()=>Cy(e),e=>!e&&g()),ky(e,g,{attributeFilter:[`style`,`class`]}),i&&wy(`scroll`,g,{capture:!0,passive:!0}),r&&wy(`resize`,g,{passive:!0}),vy(()=>{a&&g()}),{height:s,bottom:c,left:l,right:u,top:d,width:f,x:p,y:m,update:g}}function By(e,t={width:0,height:0},n={}){let{window:r=xy,box:i=`content-box`}=n,a=B(()=>{var t;return(t=Cy(e))==null||(t=t.namespaceURI)==null?void 0:t.includes(`svg`)}),o=V(t.width),s=V(t.height),{stop:c}=Ry(e,([t])=>{let n=i===`border-box`?t.borderBoxSize:i===`content-box`?t.contentBoxSize:t.devicePixelContentBoxSize;if(r&&a.value){let t=Cy(e);if(t){let e=t.getBoundingClientRect();o.value=e.width,s.value=e.height}}else if(n){let e=dy(n);o.value=e.reduce((e,{inlineSize:t})=>e+t,0),s.value=e.reduce((e,{blockSize:t})=>e+t,0)}else o.value=t.contentRect.width,s.value=t.contentRect.height},n);vy(()=>{let n=Cy(e);n&&(o.value=`offsetWidth`in n?n.offsetWidth:t.width,s.value=`offsetHeight`in n?n.offsetHeight:t.height)});let l=z(()=>Cy(e),e=>{o.value=e?t.width:0,s.value=e?t.height:0});function u(){c(),l()}return{width:o,height:s,stop:u}}function Vy(e,t,n={}){let{root:r,rootMargin:i,threshold:a=0,window:o=xy,immediate:s=!0}=n,c=Oy(()=>o&&`IntersectionObserver`in o),l=B(()=>dy(ze(e)).map(Cy).filter(ey)),u=iy,d=V(s),f=c.value?z(()=>[l.value,Cy(r),ze(i),d.value],([e,n,r])=>{if(u(),!d.value||!e.length)return;let i=new IntersectionObserver(t,{root:Cy(n),rootMargin:r,threshold:a});e.forEach(e=>e&&i.observe(e)),u=()=>{i.disconnect(),u=iy}},{immediate:s,flush:`post`}):iy,p=()=>{u(),f(),d.value=!1};return Yv(p),{isSupported:c,isActive:d,pause(){u(),d.value=!1},resume(){d.value=!0},stop:p}}function Hy(e,t,r,i={}){var a,o;let{clone:s=!1,passive:c=!1,eventName:l,deep:u=!1,defaultValue:d,shouldEmit:f}=i,p=n(),m=r||p?.emit||(p==null||(a=p.$emit)==null?void 0:a.bind(p))||(p==null||(o=p.proxy)==null||(o=o.$emit)==null?void 0:o.bind(p?.proxy)),h=l;t||=`modelValue`,h||=`update:${t.toString()}`;let g=e=>s?typeof s==`function`?s(e):Fy(e):e,_=()=>$v(e[t])?g(e[t]):d,v=e=>{f?f(e)&&m(h,e):m(h,e)};if(c){let n=R(_()),r=!1;return z(()=>e[t],e=>{r||(r=!0,n.value=g(e),D(()=>r=!1))}),z(n,n=>{!r&&(n!==e[t]||u)&&v(n)},{deep:u}),n}else return B({get(){return _()},set(e){v(e)}})}function Uy(e={}){let{window:t=xy}=e;if(!t)return V(!1);let n=V(t.document.hasFocus()),r={passive:!0};return wy(t,`blur`,()=>{n.value=!1},r),wy(t,`focus`,()=>{n.value=!0},r),n}function Wy(e={}){let{window:t=xy,initialWidth:n=1/0,initialHeight:r=1/0,listenOrientation:i=!0,includeScrollbar:a=!0,type:o=`inner`}=e,s=V(n),c=V(r),l=()=>{if(t)if(o===`outer`)s.value=t.outerWidth,c.value=t.outerHeight;else if(o===`visual`&&t.visualViewport){let{width:e,height:n,scale:r}=t.visualViewport;s.value=Math.round(e*r),c.value=Math.round(n*r)}else a?(s.value=t.innerWidth,c.value=t.innerHeight):(s.value=t.document.documentElement.clientWidth,c.value=t.document.documentElement.clientHeight)};l(),vy(l);let u={passive:!0};return wy(`resize`,l,u),t&&o===`visual`&&t.visualViewport&&wy(t.visualViewport,`resize`,l,u),i&&z(Py(`(orientation: portrait)`),()=>l()),{width:s,height:c}}function Gy(){let e=V(),t=R(0),n=B(()=>({minWidth:`${Math.max(t.value,11)}px`}));return Ry(e,()=>{t.value=e.value?.getBoundingClientRect().width??0}),{calculatorRef:e,calculatorWidth:t,inputStyle:n}}var Ky=({from:e,replacement:t,scope:n,version:r,ref:i,type:a=`API`},o)=>{z(()=>l(o),o=>{o&&Wv(n,`[${a}] ${e} is about to be deprecated in version ${r}, please use ${t} instead. For more detail, please visit: ${i} `)},{immediate:!0})},qy=`a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])`,Jy=e=>typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot,Yy=e=>typeof Element>`u`?!1:e instanceof Element,Xy=e=>getComputedStyle(e).position===`fixed`?!1:e.offsetParent!==null,Zy=e=>Array.from(e.querySelectorAll(qy)).filter(e=>Qy(e)&&Xy(e)),Qy=e=>{if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute(`tabIndex`)!==null)return!0;if(e.tabIndex<0||e.hasAttribute(`disabled`)||e.getAttribute(`aria-disabled`)===`true`)return!1;switch(e.nodeName){case`A`:return!!e.href&&e.rel!==`ignore`;case`INPUT`:return!(e.type===`hidden`||e.type===`file`);case`BUTTON`:case`SELECT`:case`TEXTAREA`:return!0;default:return!1}},$y=function(e,t,...n){let r;r=t.includes(`mouse`)||t.includes(`click`)?`MouseEvents`:t.includes(`key`)?`KeyboardEvent`:`HTMLEvents`;let i=document.createEvent(r);return i.initEvent(t,...n),e.dispatchEvent(i),e},eb=e=>!e.getAttribute(`aria-owns`),tb=(e,t,n)=>{let{parentNode:r}=e;if(!r)return null;let i=r.querySelectorAll(n);return i[Array.prototype.indexOf.call(i,e)+t]||null},nb=(e,t)=>{if(!e||!e.focus)return;let n=!1;Yy(e)&&!Qy(e)&&!e.getAttribute(`tabindex`)&&(e.setAttribute(`tabindex`,`-1`),n=!0),e.focus(t),Yy(e)&&n&&e.removeAttribute(`tabindex`)},rb=e=>{e&&(nb(e),!eb(e)&&e.click())},ib=()=>Qv&&/firefox/i.test(window.navigator.userAgent),ab=()=>Qv&&/android/i.test(window.navigator.userAgent);h();var ob=(e=``)=>e.replace(/[|\\{}()[\]^$+*?.]/g,`\\$&`).replace(/-/g,`\\x2d`),sb=e=>ve(e),cb=`utils/dom/style`,lb=(e=``)=>e.split(` `).filter(e=>!!e.trim()),ub=(e,t)=>{if(!e||!t)return!1;if(t.includes(` `))throw Error(`className should not contain space.`);return e.classList.contains(t)},db=(e,t)=>{!e||!t.trim()||e.classList.add(...lb(t))},fb=(e,t)=>{!e||!t.trim()||e.classList.remove(...lb(t))},pb=(e,t)=>{if(!Qv||!e||!t||Jy(e))return``;let n=r(t);n===`float`&&(n=`cssFloat`);try{let t=e.style[n];if(t)return t;let r=document.defaultView?.getComputedStyle(e,``);return r?r[n]:``}catch{return e.style[n]}},mb=(e,t,n)=>{if(!(!e||!t))if(N(t))Fv(t).forEach(([t,n])=>mb(e,t,n));else{let i=r(t);e.style[i]=n}};function hb(e,t=`px`){if(!e&&e!==0)return``;if(Ov(e)||Mv(e))return`${e}${t}`;if(I(e))return e;Wv(cb,`binding value must be a string or number`)}var gb=(e,t,n,r)=>{let i={offsetX:0,offsetY:0},a=R(!1),o=(t,n)=>{if(e.value){let{offsetX:a,offsetY:o}=i,s=e.value.getBoundingClientRect(),c=Math.max(s.left,0),l=Math.max(s.top,0),u=s.width,d=s.height,f=document.documentElement.clientWidth,p=document.documentElement.clientHeight,m=-c+a,h=-l+o,g=f-c-u+a,_=p-l-(d{let t=e.clientX,n=e.clientY,{offsetX:r,offsetY:s}=i,c=e=>{a.value||=!0,o(r+e.clientX-t,s+e.clientY-n)},l=()=>{a.value=!1,document.removeEventListener(`mousemove`,c),document.removeEventListener(`mouseup`,l)};document.addEventListener(`mousemove`,c),document.addEventListener(`mouseup`,l)},c=()=>{t.value&&e.value&&(t.value.addEventListener(`mousedown`,s),window.addEventListener(`resize`,d))},l=()=>{t.value&&e.value&&(t.value.removeEventListener(`mousedown`,s),window.removeEventListener(`resize`,d))},u=()=>{i.offsetX=0,i.offsetY=0,e.value&&(e.value.style.transform=``)},d=()=>{let{offsetX:e,offsetY:t}=i;o(e,t)};return P(()=>{Ee(()=>{n.value?c():l()})}),ee(()=>{l()}),{isDragging:a,resetPosition:u,updatePosition:d}},_b={name:`en`,el:{breadcrumb:{label:`Breadcrumb`},colorpicker:{confirm:`OK`,clear:`Clear`,defaultLabel:`color picker`,description:`current color is {color}. press enter to select a new color.`,alphaLabel:`pick alpha value`,alphaDescription:`alpha {alpha}, current color is {color}`,hueLabel:`pick hue value`,hueDescription:`hue {hue}, current color is {color}`,svLabel:`pick saturation and brightness value`,svDescription:`saturation {saturation}, brightness {brightness}, current color is {color}`,predefineDescription:`select {value} as the color`},datepicker:{now:`Now`,today:`Today`,cancel:`Cancel`,clear:`Clear`,confirm:`OK`,dateTablePrompt:`Use the arrow keys and enter to select the day of the month`,monthTablePrompt:`Use the arrow keys and enter to select the month`,yearTablePrompt:`Use the arrow keys and enter to select the year`,selectedDate:`Selected date`,selectDate:`Select date`,selectTime:`Select time`,startDate:`Start Date`,startTime:`Start Time`,endDate:`End Date`,endTime:`End Time`,prevYear:`Previous Year`,nextYear:`Next Year`,prevMonth:`Previous Month`,nextMonth:`Next Month`,year:``,month1:`January`,month2:`February`,month3:`March`,month4:`April`,month5:`May`,month6:`June`,month7:`July`,month8:`August`,month9:`September`,month10:`October`,month11:`November`,month12:`December`,weeks:{sun:`Sun`,mon:`Mon`,tue:`Tue`,wed:`Wed`,thu:`Thu`,fri:`Fri`,sat:`Sat`},weeksFull:{sun:`Sunday`,mon:`Monday`,tue:`Tuesday`,wed:`Wednesday`,thu:`Thursday`,fri:`Friday`,sat:`Saturday`},months:{jan:`Jan`,feb:`Feb`,mar:`Mar`,apr:`Apr`,may:`May`,jun:`Jun`,jul:`Jul`,aug:`Aug`,sep:`Sep`,oct:`Oct`,nov:`Nov`,dec:`Dec`}},inputNumber:{decrease:`decrease number`,increase:`increase number`},select:{loading:`Loading`,noMatch:`No matching data`,noData:`No data`,placeholder:`Select`},mention:{loading:`Loading`},dropdown:{toggleDropdown:`Toggle Dropdown`},cascader:{noMatch:`No matching data`,loading:`Loading`,placeholder:`Select`,noData:`No data`},pagination:{goto:`Go to`,pagesize:`/page`,total:`Total {total}`,pageClassifier:``,page:`Page`,prev:`Go to previous page`,next:`Go to next page`,currentPage:`page {pager}`,prevPages:`Previous {pager} pages`,nextPages:`Next {pager} pages`,deprecationWarning:`Deprecated usages detected, please refer to the el-pagination documentation for more details`},dialog:{close:`Close this dialog`},drawer:{close:`Close this dialog`},messagebox:{title:`Message`,confirm:`OK`,cancel:`Cancel`,error:`Illegal input`,close:`Close this dialog`},upload:{deleteTip:`press delete to remove`,delete:`Delete`,preview:`Preview`,continue:`Continue`},slider:{defaultLabel:`slider between {min} and {max}`,defaultRangeStartLabel:`pick start value`,defaultRangeEndLabel:`pick end value`},table:{emptyText:`No Data`,confirmFilter:`Confirm`,resetFilter:`Reset`,clearFilter:`All`,sumText:`Sum`,selectAllLabel:`Select all rows`,selectRowLabel:`Select this row`,expandRowLabel:`Expand this row`,collapseRowLabel:`Collapse this row`,sortLabel:`Sort by {column}`,filterLabel:`Filter by {column}`},tag:{close:`Close this tag`},tour:{next:`Next`,previous:`Previous`,finish:`Finish`,close:`Close this dialog`},tree:{emptyText:`No Data`},transfer:{noMatch:`No matching data`,noData:`No data`,titles:[`List 1`,`List 2`],filterPlaceholder:`Enter keyword`,noCheckedFormat:`{total} items`,hasCheckedFormat:`{checked}/{total} checked`},image:{error:`FAILED`},pageHeader:{title:`Back`},popconfirm:{confirmButtonText:`Yes`,cancelButtonText:`No`},carousel:{leftArrow:`Carousel arrow left`,rightArrow:`Carousel arrow right`,indicator:`Carousel switch to index {index}`},inputOTP:{groupLabel:`OTP Input`,defaultLabel:`Please enter OTP character {index}`}}},vb=e=>(t,n)=>yb(t,n,l(e)),yb=(e,t,n)=>rm(n,e,e).replace(/\{(\w+)\}/g,(e,n)=>`${t?.[n]??`{${n}}`}`),bb=e=>({lang:B(()=>l(e).name),locale:fe(e)?e:R(e),t:vb(e)}),xb=Symbol(`localeContextKey`),Sb=e=>{let t=e||w(xb,R());return bb(B(()=>t.value||_b))},Cb=`is-`,wb=(e,t,n,r,i)=>{let a=`${e}-${t}`;return n&&(a+=`-${n}`),r&&(a+=`__${r}`),i&&(a+=`--${i}`),a},Tb=Symbol(`namespaceContextKey`),Eb=e=>{let t=e||(n()?w(Tb,R(`el`)):R(`el`));return B(()=>l(t)||`el`)},Q=(e,t)=>{let n=Eb(t);return{namespace:n,b:(t=``)=>wb(n.value,e,t,``,``),e:t=>t?wb(n.value,e,``,t,``):``,m:t=>t?wb(n.value,e,``,``,t):``,be:(t,r)=>t&&r?wb(n.value,e,t,r,``):``,em:(t,r)=>t&&r?wb(n.value,e,``,t,r):``,bm:(t,r)=>t&&r?wb(n.value,e,t,``,r):``,bem:(t,r,i)=>t&&r&&i?wb(n.value,e,t,r,i):``,is:(e,...t)=>{let n=t.length>=1?t[0]:!0;return e&&n?`${Cb}${e}`:``},cssVar:e=>{let t={};for(let r in e)e[r]&&(t[`--${n.value}-${r}`]=e[r]);return t},cssVarName:e=>`--${n.value}-${e}`,cssVarBlock:t=>{let r={};for(let i in t)t[i]&&(r[`--${n.value}-${e}-${i}`]=t[i]);return r},cssVarBlockName:t=>`--${n.value}-${e}-${t}`}};function Db(e,t,n,r){let i=n-t;return e/=r/2,e<1?i/2*e*e*e+t:i/2*((e-=2)*e*e+2)+t}var Ob=e=>Qv?window.requestAnimationFrame(e):setTimeout(e,16),kb=e=>Qv?window.cancelAnimationFrame(e):clearTimeout(e),Ab=(e,t)=>{if(!Qv)return!1;let n={undefined:`overflow`,true:`overflow-y`,false:`overflow-x`}[String(t)],r=pb(e,n);return[`scroll`,`auto`,`overlay`].some(e=>r.includes(e))},jb=(e,t)=>{if(!Qv)return;let n=e;for(;n;){if([window,document,document.documentElement].includes(n))return window;if(Ab(n,t))return n;n=Jy(n)?n.host:n.parentNode}return n},Mb,Nb=e=>{if(!Qv)return 0;if(Mb!==void 0)return Mb;let t=document.createElement(`div`);t.className=`${e}-scrollbar__wrap`,t.style.visibility=`hidden`,t.style.width=`100px`,t.style.position=`absolute`,t.style.top=`-9999px`,document.body.appendChild(t);let n=t.offsetWidth;t.style.overflow=`scroll`;let r=document.createElement(`div`);r.style.width=`100%`,t.appendChild(r);let i=r.offsetWidth;return t.parentNode?.removeChild(t),Mb=n-i,Mb};function Pb(e,t){if(!Qv)return;if(!t){e.scrollTop=0;return}let n=[],r=t.offsetParent;for(;r!==null&&e!==r&&e.contains(r);)n.push(r),r=r.offsetParent;let i=t.offsetTop+n.reduce((e,t)=>e+t.offsetTop,0),a=i+t.offsetHeight,o=e.scrollTop,s=o+e.clientHeight;is&&(e.scrollTop=a-e.clientHeight)}function Fb(e,t,n,r,i){let o=Date.now(),s,c=()=>{let l=Date.now()-o,u=Db(l>r?r:l,t,n,r);Nv(e)?e.scrollTo(window.pageXOffset,u):e.scrollTop=u,l{s&&kb(s)}}var Ib=(e,t)=>Nv(t)?e.ownerDocument.documentElement:t,Lb=e=>Nv(e)?window.scrollY:e.scrollTop,Rb=(e,t={})=>{fe(e)||Uv(`[useLockscreen]`,`You need to pass a ref param to this function`);let n=t.ns||Q(`popup`),r=B(()=>n.bm(`parent`,`hidden`)),i=0,a=!1,o=`0`,s=!1,c=()=>{s||(s=!0,setTimeout(()=>{typeof document>`u`||a&&document&&(document.body.style.width=o,fb(document.body,r.value))},200))};z(e,e=>{if(!e){c();return}s=!1,a=!ub(document.body,r.value),a&&(o=document.body.style.width,db(document.body,r.value)),i=Nb(n.namespace.value);let t=document.documentElement.clientHeight0&&(t||l===`scroll`)&&a&&(document.body.style.width=`calc(100% - ${i}px)`)}),Ce(()=>c())},zb=(e,t,{checkForDefaultPrevented:n=!0}={})=>r=>{let i=e?.(r);if(n===!1||!i)return t?.(r)},Bb=e=>t=>t.pointerType===`mouse`?e(t):void 0,Vb=e=>{if(e.code&&e.code!==`Unidentified`)return e.code;let t=Hb(e);if(t){if(Object.values(Y).includes(t))return t;switch(t){case` `:return Y.space;default:return``}}return``},Hb=e=>{let t=e.key&&e.key!==`Unidentified`?e.key:``;if(!t&&e.type===`keyup`&&ab()){let n=e.target;t=n.value.charAt(n.selectionStart-1)}return t},Ub=zv({type:X(Boolean),default:null}),Wb=zv({type:X(Function)}),Gb=e=>{let t=`update:${e}`,r=`onUpdate:${e}`,i=[t];return{useModelToggle:({indicator:i,toggleReason:o,shouldHideWhenRouteChanges:s,shouldProceed:c,onShow:l,onHide:u})=>{let d=n(),{emit:f}=d,p=d.props,m=B(()=>a(p[r])),h=B(()=>p[e]===null),g=e=>{i.value!==!0&&(i.value=!0,o&&(o.value=e),a(l)&&l(e))},_=e=>{i.value!==!1&&(i.value=!1,o&&(o.value=e),a(u)&&u(e))},v=e=>{if(p.disabled===!0||a(c)&&!c())return;let n=m.value&&Qv;n&&f(t,!0),(h.value||!n)&&g(e)},y=e=>{if(p.disabled===!0||!Qv)return;let n=m.value&&Qv;n&&f(t,!1),(h.value||!n)&&_(e)},b=e=>{Dv(e)&&(p.disabled&&e?m.value&&f(t,!1):i.value!==e&&(e?g():_()))};return z(()=>p[e],b),s&&d.appContext.config.globalProperties.$route!==void 0&&z(()=>({...d.proxy.$route}),()=>{s.value&&i.value&&y()}),P(()=>{b(p[e])}),{hide:y,show:v,toggle:()=>{i.value?y():v()},hasUpdateHandler:m}},useModelToggleProps:{[e]:Ub,[r]:Wb},useModelToggleEmits:i}},{useModelToggle:Kb,useModelToggleProps:qb,useModelToggleEmits:Jb}=Gb(`modelValue`),Yb=e=>{let t=n();return B(()=>t?.proxy?.$props?.[e])},Xb=(e,t,n={})=>{let r={name:`updateState`,enabled:!0,phase:`write`,fn:({state:e})=>{let t=Zb(e);Object.assign(o.value,t)},requires:[`computeStyles`]},i=B(()=>{let{onFirstUpdate:e,placement:t,strategy:i,modifiers:a}=l(n);return{onFirstUpdate:e,placement:t||`bottom`,strategy:i||`absolute`,modifiers:[...a||[],r,{name:`applyStyles`,enabled:!1}]}}),a=V(),o=R({styles:{popper:{position:l(i).strategy,left:`0`,top:`0`},arrow:{position:`absolute`}},attributes:{}}),s=()=>{a.value&&=(a.value.destroy(),void 0)};return z(i,e=>{let t=l(a);t&&t.setOptions(e)},{deep:!0}),z([e,t],([e,t])=>{s(),!(!e||!t)&&(a.value=ar(e,t,l(i)))}),ee(()=>{s()}),{state:B(()=>({...l(a)?.state||{}})),styles:B(()=>l(o).styles),attributes:B(()=>l(o).attributes),update:()=>l(a)?.update(),forceUpdate:()=>l(a)?.forceUpdate(),instanceRef:B(()=>l(a))}};function Zb(e){let t=Object.keys(e.elements);return{styles:tv(t.map(t=>[t,e.styles[t]||{}])),attributes:tv(t.map(t=>[t,e.attributes[t]]))}}var Qb=e=>{if(!e)return{onClick:ye,onMousedown:ye,onMouseup:ye};let t=!1,n=!1;return{onClick:r=>{t&&n&&e(r),t=n=!1},onMousedown:e=>{t=e.target===e.currentTarget},onMouseup:e=>{n=e.target===e.currentTarget}}},$b=(e,t=0)=>{if(t===0)return e;let n=R(N(t)&&!!t.initVal),r=null,i=t=>{if(Ev(t)){n.value=e.value;return}r&&clearTimeout(r),r=setTimeout(()=>{n.value=e.value},t)},a=e=>{e===`leading`?Ov(t)?i(t):i(t.leading):N(t)?i(t.trailing):n.value=!1};return P(()=>a(`leading`)),z(()=>e.value,e=>{a(e?`leading`:`trailing`)}),n};function ex(){let e,t=(t,r)=>{n(),e=globalThis.setTimeout(t,r)},n=()=>{e!==void 0&&(globalThis.clearTimeout(e),e=void 0)};return Yv(()=>n()),{registerTimeout:t,cancelTimeout:n}}var tx={prefix:Math.floor(Math.random()*1e4),current:0},nx=Symbol(`elIdInjection`),rx=()=>n()?w(nx,tx):tx,ix=e=>{let t=rx();!Qv&&t===tx&&Wv(`IdInjection`,`Looks like you are using server rendering, you must provide a id provider to ensure the hydration process to be succeed @@ -56,4 +56,4 @@ usage: app.provide(ZINDEX_INJECTION_KEY, { current: 0 })`),{initialZIndex:i,curr `);return e===-1?``:t.stack.slice(e+1)})();try{if(!e.stack)e.stack=n;else if(n){let t=n.indexOf(` `),r=t===-1?-1:n.indexOf(` `,t+1),i=r===-1?``:n.slice(r+1);String(e.stack).endsWith(i)||(e.stack+=` -`+n)}}catch{}}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=Q2(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&D4.assertOptions(n,{silentJSONParsing:O4.transitional(O4.boolean),forcedJSONParsing:O4.transitional(O4.boolean),clarifyTimeoutError:O4.transitional(O4.boolean),legacyInterceptorReqResOrdering:O4.transitional(O4.boolean)},!1),r!=null&&($.isFunction(r)?t.paramsSerializer={serialize:r}:D4.assertOptions(r,{encode:O4.function,serialize:O4.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),D4.assertOptions(t,{baseUrl:O4.spelling(`baseURL`),withXsrfToken:O4.spelling(`withXSRFToken`)},!0),t.method=(t.method||this.defaults.method||`get`).toLowerCase();let a=i&&$.merge(i.common,i[t.method]);i&&$.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`,`common`],e=>{delete i[e]}),t.headers=r2.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){if(typeof e.runWhen==`function`&&e.runWhen(t)===!1)return;s&&=e.synchronous;let n=t.transitional||b2;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(e.fulfilled,e.rejected)});let c=[];this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let l,u=0,d;if(!s){let e=[C4.bind(this),void 0];for(e.unshift(...o),e.push(...c),d=e.length,l=Promise.resolve(t);u{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t,r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new R2(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}};function j4(e){return function(t){return e.apply(null,t)}}function M4(e){return $.isObject(e)&&e.isAxiosError===!0}var N4={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(N4).forEach(([e,t])=>{N4[t]=e});function P4(e){let t=new k4(e),n=N1(k4.prototype.request,t);return $.extend(n,k4.prototype,t,{allOwnKeys:!0}),$.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return P4(Q2(e,t))},n}var F4=P4(F2);F4.Axios=k4,F4.CanceledError=R2,F4.CancelToken=A4,F4.isCancel=L2,F4.VERSION=u4,F4.toFormData=p2,F4.AxiosError=s2,F4.Cancel=F4.CanceledError,F4.all=function(e){return Promise.all(e)},F4.spread=j4,F4.isAxiosError=M4,F4.mergeConfig=Q2,F4.AxiosHeaders=r2,F4.formToJSON=e=>M2($.isHTMLForm(e)?new FormData(e):e),F4.getAdapter=x4.getAdapter,F4.HttpStatusCode=N4,F4.default=F4;var I4=F4.create({baseURL:Ke(),headers:{Accept:`application/json`,"Content-Type":`application/json`}});I4.interceptors.request.use(e=>{let t=localStorage.getItem(Je);return t&&(e.headers.Authorization=`Bearer ${t}`),e}),I4.interceptors.response.use(e=>e,e=>{if(F4.isAxiosError(e)&&e.response?.status===401){localStorage.removeItem(Je);let e=window.location.pathname,t=Qe();e.startsWith(t)||window.location.assign(`${t}?redirect=${encodeURIComponent(e+window.location.search)}`)}return Promise.reject(e)});async function L4(){let{data:e}=await I4.get(`/me/menus`);return R4(e)}function R4(e){let t=e?.data??e;if(!Array.isArray(t))throw Error(`菜单接口返回格式无效(expect data 为数组)`);return t}var z4=`modulepreload`,B4=function(e){return`/admin/`+e},V4={},H4=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=B4(t,n),t in V4)return;V4[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:z4,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},U4={"admin-dashboard":()=>H4(()=>import(`./AdminDashboardView-CH4JDbjM.js`),__vite__mapDeps([0,1,2,3,4,5,6,7])),"admin-competitions-list":()=>H4(()=>import(`./CompetitionListView-C7Ifoool.js`),__vite__mapDeps([8,1,2,3,4,5,6,9])),"admin-competition-form":()=>H4(()=>import(`./CompetitionFormView-DF_rZmK6.js`),__vite__mapDeps([10,1,2,3,4,5,11,12])),"admin-competition-workspace":()=>H4(()=>import(`./CompetitionFormView-DF_rZmK6.js`),__vite__mapDeps([10,1,2,3,4,5,11,12])),"admin-public-source-channels":()=>H4(()=>import(`./PublicSourceChannelManageView-DQDJdNxd.js`),__vite__mapDeps([13,1,2,14])),"admin-reviewers-list":()=>H4(()=>import(`./ReviewerManageView-qJIQ83u-.js`),__vite__mapDeps([15,1,2,3,4,5,16])),"admin-review-portal":()=>H4(()=>import(`./ReviewPortalView-DsEnQsTS.js`),__vite__mapDeps([17,1,2,4,5,18]))},W4=fu(`adminMenu`,()=>{let e=R([]);function t(t){e.value=t}return{menus:e,setMenus:t}}),G4=[],K4=!1;function q4(e){G4.push(e)}function J4(e){for(let t of[...G4].reverse())e.hasRoute(t)&&e.removeRoute(t);G4.length=0,K4=!1}function Y4(e,t,n){for(let r of n)if(!(r.section&&!r.name)&&r.name!==`admin-dashboard`)if(r.children?.length){if(!r.name||!r.path)continue;e.addRoute(t,{path:r.path,name:r.name,component:()=>H4(()=>import(`./AdminMenuGroupLayout-lF5VKug4.js`),__vite__mapDeps([19,1,2])),meta:{title:r.title,permissionCode:r.permissionCode,menuGroup:!0},children:[]}),q4(r.name),Y4(e,r.name,r.children)}else{if(!r.name||!r.path)continue;let n=U4[r.name];if(!n){console.warn(`[admin] 未注册菜单路由组件: ${r.name}`);continue}e.addRoute(t,{path:r.path,name:r.name,component:n,meta:{title:r.title,permissionCode:r.permissionCode}}),q4(r.name)}}async function X4(e){if(K4)return;let t;try{t=await L4()}catch(e){let t=e instanceof Error?e.message:`菜单加载失败`;throw jZ.error(`${t},请检查接口与登录态。`),e}W4().setMenus(t),Y4(e,`AdminLayout`,t),e.addRoute(`AdminLayout`,{path:`competitions/new`,name:`admin-competition-new`,component:U4[`admin-competition-form`],meta:{title:`新建赛事`,hideInMenu:!0}}),q4(`admin-competition-new`),e.addRoute(`AdminLayout`,{path:`competitions/:id/edit`,name:`admin-competition-edit`,component:U4[`admin-competition-form`],meta:{title:`编辑赛事`,hideInMenu:!0}}),q4(`admin-competition-edit`),e.addRoute(`AdminLayout`,{path:`competition/workspace`,name:`admin-competition-workspace`,component:U4[`admin-competition-workspace`],meta:{title:`赛事配置`,hideInMenu:!0}}),q4(`admin-competition-workspace`),e.addRoute(`AdminLayout`,{path:`competition/ws/:pathMatch(.*)*`,name:`admin-competition-ws-legacy-redirect`,redirect:{name:`admin-competition-workspace`}}),q4(`admin-competition-ws-legacy-redirect`),K4=!0}function Z4(){return K4}function Q4(){try{let e=localStorage.getItem(Xe);if(!e)return null;let t=JSON.parse(e);if(t&&typeof t.id==`number`)return t}catch{}return null}var $4=fu(`adminAuth`,()=>{let e=R(localStorage.getItem(`cxxfds_admin_token`)??``),t=R(Q4()),n=B(()=>!!e.value.trim()),r=B(()=>{let e=t.value;return e&&(e.username?.trim()||e.name?.trim())||`管理员`});function i(t){e.value=t,t?localStorage.setItem(Je,t):localStorage.removeItem(Je)}function a(e){t.value=e,e?localStorage.setItem(Xe,JSON.stringify(e)):localStorage.removeItem(Xe)}function o(e,t){i(e),a(t??null)}function s(e){i(``),a(null),J4(e)}return{token:e,user:t,isAuthenticated:n,displayName:r,setToken:i,setUser:a,setSession:o,logout:s}}),e3=()=>H4(()=>import(`./MainLayout-ol9EQ-NJ.js`),__vite__mapDeps([20,1,2,5,11,21,22,23]));function t3(){let e=localStorage.getItem(Ze),t=localStorage.getItem(qe);return t?e?{name:`participant-apply`,params:{slug:t},replace:!0}:{name:`participant-login`,params:{slug:t},replace:!0}:{path:`/c`,replace:!0}}var n3=k1({history:J$(`/admin/`),routes:[{path:`/`,redirect:t3},{path:`/c`,name:`participant-landing`,component:()=>H4(()=>import(`./ParticipantLandingView-CP4GSdBL.js`),__vite__mapDeps([24,2,22]))},{path:`/c/:slug/login`,name:`participant-login`,component:()=>H4(()=>import(`./LoginView-CwSyG8BF.js`),__vite__mapDeps([25,2,5,26,11,27,23])),meta:{guestOnly:!0}},{path:`/c/:slug/review/login`,name:`reviewer-login`,component:()=>H4(()=>import(`./ReviewerLoginView-C_nJ5Jja.js`),__vite__mapDeps([28,2,5,11,27,23])),meta:{guestReviewerOnly:!0}},{path:`/c/:slug/review`,component:()=>H4(()=>import(`./ReviewerLayout-C_9WFlYS.js`),__vite__mapDeps([29,1,2,5,11,30,22,23])),meta:{requiresReviewerAuth:!0},children:[{path:`applications/:id(\\d+)`,name:`reviewer-application-detail`,component:()=>H4(()=>import(`./ReviewerApplicationDetailView-CmJlyfLp.js`),__vite__mapDeps([31,1,2,5,32]))},{path:``,name:`reviewer-projects`,component:()=>H4(()=>import(`./ReviewerProjectsView-yeZXvBKL.js`),__vite__mapDeps([33,1,2,5,34]))}]},{path:`/c/:slug`,component:e3,meta:{requiresAuth:!0},children:[{path:``,redirect:e=>({name:`participant-apply`,params:{slug:e.params.slug}})},{path:`apply`,name:`participant-apply`,component:()=>H4(()=>import(`./ApplyView-ouDbvhxn.js`),__vite__mapDeps([35,1,2,5,26,11,36]))}]},{path:`/app`,redirect:()=>{let e=localStorage.getItem(qe);return e?{name:`participant-apply`,params:{slug:e}}:{path:`/c`}}},{path:`/app/apply`,redirect:()=>{let e=localStorage.getItem(qe);return e?{name:`participant-apply`,params:{slug:e}}:{path:`/c`}}},{path:`/admin/admin/login`,redirect:{name:`admin-login`}},{path:`/admin/admin`,redirect:{name:`admin-dashboard`}},{path:`/admin/admin/:rest(.*)`,redirect:e=>{let t=String(e.params.rest??``).replace(/^\//,``);return t?`/admin/${t}`:`/admin`}},{path:`/admin/login`,name:`admin-login`,component:()=>H4(()=>import(`./AdminLoginView-COSQRT-L.js`),__vite__mapDeps([37,1,2,38,5,39]))},{path:`/admin`,name:`AdminLayout`,component:()=>H4(()=>import(`./AdminLayout-1Sqp0RY-.js`),__vite__mapDeps([40,1,2,38,3,4,5,41])),children:[{path:``,name:`admin-dashboard`,component:()=>H4(()=>import(`./AdminDashboardView-CH4JDbjM.js`),__vite__mapDeps([0,1,2,3,4,5,6,7])),meta:{title:`首页`,permissionCode:`admin.dashboard`}},{path:`dashboard`,redirect:{name:`admin-dashboard`}}]}]});n3.beforeEach(async e=>{let t=e.params.slug==null?``:String(e.params.slug).trim();!Ge(e.path)&&t&&localStorage.setItem(qe,t);let n=localStorage.getItem(Ze);if(Ge(e.path)){let{token:n,competitionSlug:r}=$e();return e.name===`reviewer-login`?n&&r!==``&&r===t?{name:`reviewer-projects`,params:{slug:t},replace:!0}:!0:e.matched.some(e=>e.meta.requiresReviewerAuth===!0)&&(!n||r!==t)?{name:`reviewer-login`,params:{slug:t},query:t?{redirect:e.fullPath}:{}}:!0}if(e.path.startsWith(`/admin`)){let t=$4();return e.name===`admin-login`||e.path===`/admin/login`||e.path===`/admin/admin/login`?t.isAuthenticated?(Z4()||await X4(n3),{name:`admin-dashboard`,replace:!0}):!0:t.isAuthenticated?Z4()?!0:(await X4(n3),{...e,replace:!0}):{path:`/admin/login`,query:{redirect:e.fullPath}}}if(e.matched.some(e=>e.meta.requiresAuth)&&!n){let t=e.params.slug==null?``:String(e.params.slug);return t?{name:`participant-login`,params:{slug:t},query:{redirect:e.fullPath}}:{path:`/c`,query:{redirect:e.fullPath}}}if(e.meta.guestOnly&&n){let t=e.params.slug==null?``:String(e.params.slug);return t?{name:`participant-apply`,params:{slug:t},replace:!0}:t3()}return!0});var r3=`cxxfds_public_source_code`,i3=`cxxfds_public_source_checked_at`,a3=720*60*60*1e3;function o3(e){let t=typeof e==`string`?e.trim():``;return/^[A-Za-z0-9_-]{2,64}$/.test(t)?t:null}function s3(){return Date.now()}function c3(){try{let e=`__cxxfds_storage_probe__`;return window.localStorage.setItem(e,`1`),window.localStorage.removeItem(e),!0}catch{return!1}}function l3(){c3()&&(window.localStorage.removeItem(r3),window.localStorage.removeItem(i3))}function u3(e){c3()&&(window.localStorage.setItem(r3,e),window.localStorage.setItem(i3,String(s3())))}function d3(){let e=typeof window<`u`?o3(new URLSearchParams(window.location.search).get(`src`)):null;if(e)return e;if(!c3())return null;let t=window.localStorage.getItem(r3)?.trim()??``,n=window.localStorage.getItem(i3)?.trim()??``,r=Number.parseInt(n,10);return!t||!Number.isFinite(r)||r<=0||s3()-r>a3?(l3(),null):t}async function f3(e){let t=e.trim();if(!o3(t))return null;let n=new URLSearchParams({source_code:t}),r=await fetch(`${Ye()}/api/v1/public/source-channels/resolve?${n.toString()}`,{headers:{Accept:`application/json`}});if(!r.ok)return null;let i=await r.json().catch(()=>({}));return i.valid&&typeof i.source_code==`string`?i.source_code:null}async function p3(){if(typeof window>`u`)return;let e=new URLSearchParams(window.location.search).get(`src`)?.trim()??``;if(e)try{let t=await f3(e);t&&u3(t)}catch{}}var m3=Ql();p3(),n3.afterEach(()=>{p3()}),ke(M1).use(m3).use(n3).use(wQ,{locale:TQ}).mount(`#app`);export{pu as _,F4 as a,YZ as c,sw as d,cw as f,fu as g,kw as h,I4 as i,jZ as l,xw as m,$4 as n,j1 as o,_w as p,W4 as r,A1 as s,d3 as t,nw as u,xo as v,ms as y}; \ No newline at end of file +`+n)}}catch{}}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=Q2(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&D4.assertOptions(n,{silentJSONParsing:O4.transitional(O4.boolean),forcedJSONParsing:O4.transitional(O4.boolean),clarifyTimeoutError:O4.transitional(O4.boolean),legacyInterceptorReqResOrdering:O4.transitional(O4.boolean)},!1),r!=null&&($.isFunction(r)?t.paramsSerializer={serialize:r}:D4.assertOptions(r,{encode:O4.function,serialize:O4.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),D4.assertOptions(t,{baseUrl:O4.spelling(`baseURL`),withXsrfToken:O4.spelling(`withXSRFToken`)},!0),t.method=(t.method||this.defaults.method||`get`).toLowerCase();let a=i&&$.merge(i.common,i[t.method]);i&&$.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`,`common`],e=>{delete i[e]}),t.headers=r2.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){if(typeof e.runWhen==`function`&&e.runWhen(t)===!1)return;s&&=e.synchronous;let n=t.transitional||b2;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(e.fulfilled,e.rejected)});let c=[];this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let l,u=0,d;if(!s){let e=[C4.bind(this),void 0];for(e.unshift(...o),e.push(...c),d=e.length,l=Promise.resolve(t);u{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t,r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new R2(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}};function j4(e){return function(t){return e.apply(null,t)}}function M4(e){return $.isObject(e)&&e.isAxiosError===!0}var N4={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(N4).forEach(([e,t])=>{N4[t]=e});function P4(e){let t=new k4(e),n=N1(k4.prototype.request,t);return $.extend(n,k4.prototype,t,{allOwnKeys:!0}),$.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return P4(Q2(e,t))},n}var F4=P4(F2);F4.Axios=k4,F4.CanceledError=R2,F4.CancelToken=A4,F4.isCancel=L2,F4.VERSION=u4,F4.toFormData=p2,F4.AxiosError=s2,F4.Cancel=F4.CanceledError,F4.all=function(e){return Promise.all(e)},F4.spread=j4,F4.isAxiosError=M4,F4.mergeConfig=Q2,F4.AxiosHeaders=r2,F4.formToJSON=e=>M2($.isHTMLForm(e)?new FormData(e):e),F4.getAdapter=x4.getAdapter,F4.HttpStatusCode=N4,F4.default=F4;var I4=F4.create({baseURL:Ke(),headers:{Accept:`application/json`,"Content-Type":`application/json`}});I4.interceptors.request.use(e=>{let t=localStorage.getItem(Je);return t&&(e.headers.Authorization=`Bearer ${t}`),e}),I4.interceptors.response.use(e=>e,e=>{if(F4.isAxiosError(e)&&e.response?.status===401){localStorage.removeItem(Je);let e=window.location.pathname,t=Qe();e.startsWith(t)||window.location.assign(`${t}?redirect=${encodeURIComponent(e+window.location.search)}`)}return Promise.reject(e)});async function L4(){let{data:e}=await I4.get(`/me/menus`);return R4(e)}function R4(e){let t=e?.data??e;if(!Array.isArray(t))throw Error(`菜单接口返回格式无效(expect data 为数组)`);return t}var z4=`modulepreload`,B4=function(e){return`/admin/`+e},V4={},H4=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=B4(t,n),t in V4)return;V4[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:z4,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},U4={"admin-dashboard":()=>H4(()=>import(`./AdminDashboardView-Dls0Ae8x.js`),__vite__mapDeps([0,1,2,3,4,5,6,7])),"admin-competitions-list":()=>H4(()=>import(`./CompetitionListView-Ba7l2pxV.js`),__vite__mapDeps([8,1,2,3,4,5,6,9])),"admin-competition-form":()=>H4(()=>import(`./CompetitionFormView-B--KKhgq.js`),__vite__mapDeps([10,1,2,3,4,5,11,12])),"admin-competition-workspace":()=>H4(()=>import(`./CompetitionFormView-B--KKhgq.js`),__vite__mapDeps([10,1,2,3,4,5,11,12])),"admin-public-source-channels":()=>H4(()=>import(`./PublicSourceChannelManageView-CJW3ArE5.js`),__vite__mapDeps([13,1,2,14])),"admin-reviewers-list":()=>H4(()=>import(`./ReviewerManageView-DWDXGnSP.js`),__vite__mapDeps([15,1,2,3,4,5,16])),"admin-review-portal":()=>H4(()=>import(`./ReviewPortalView-BHOL-JZ5.js`),__vite__mapDeps([17,1,2,4,5,18]))},W4=fu(`adminMenu`,()=>{let e=R([]);function t(t){e.value=t}return{menus:e,setMenus:t}}),G4=[],K4=!1;function q4(e){G4.push(e)}function J4(e){for(let t of[...G4].reverse())e.hasRoute(t)&&e.removeRoute(t);G4.length=0,K4=!1}function Y4(e,t,n){for(let r of n)if(!(r.section&&!r.name)&&r.name!==`admin-dashboard`)if(r.children?.length){if(!r.name||!r.path)continue;e.addRoute(t,{path:r.path,name:r.name,component:()=>H4(()=>import(`./AdminMenuGroupLayout-lF5VKug4.js`),__vite__mapDeps([19,1,2])),meta:{title:r.title,permissionCode:r.permissionCode,menuGroup:!0},children:[]}),q4(r.name),Y4(e,r.name,r.children)}else{if(!r.name||!r.path)continue;let n=U4[r.name];if(!n){console.warn(`[admin] 未注册菜单路由组件: ${r.name}`);continue}e.addRoute(t,{path:r.path,name:r.name,component:n,meta:{title:r.title,permissionCode:r.permissionCode}}),q4(r.name)}}async function X4(e){if(K4)return;let t;try{t=await L4()}catch(e){let t=e instanceof Error?e.message:`菜单加载失败`;throw jZ.error(`${t},请检查接口与登录态。`),e}W4().setMenus(t),Y4(e,`AdminLayout`,t),e.addRoute(`AdminLayout`,{path:`competitions/new`,name:`admin-competition-new`,component:U4[`admin-competition-form`],meta:{title:`新建赛事`,hideInMenu:!0}}),q4(`admin-competition-new`),e.addRoute(`AdminLayout`,{path:`competitions/:id/edit`,name:`admin-competition-edit`,component:U4[`admin-competition-form`],meta:{title:`编辑赛事`,hideInMenu:!0}}),q4(`admin-competition-edit`),e.addRoute(`AdminLayout`,{path:`competition/workspace`,name:`admin-competition-workspace`,component:U4[`admin-competition-workspace`],meta:{title:`赛事配置`,hideInMenu:!0}}),q4(`admin-competition-workspace`),e.addRoute(`AdminLayout`,{path:`competition/ws/:pathMatch(.*)*`,name:`admin-competition-ws-legacy-redirect`,redirect:{name:`admin-competition-workspace`}}),q4(`admin-competition-ws-legacy-redirect`),K4=!0}function Z4(){return K4}function Q4(){try{let e=localStorage.getItem(Xe);if(!e)return null;let t=JSON.parse(e);if(t&&typeof t.id==`number`)return t}catch{}return null}var $4=fu(`adminAuth`,()=>{let e=R(localStorage.getItem(`cxxfds_admin_token`)??``),t=R(Q4()),n=B(()=>!!e.value.trim()),r=B(()=>{let e=t.value;return e&&(e.username?.trim()||e.name?.trim())||`管理员`});function i(t){e.value=t,t?localStorage.setItem(Je,t):localStorage.removeItem(Je)}function a(e){t.value=e,e?localStorage.setItem(Xe,JSON.stringify(e)):localStorage.removeItem(Xe)}function o(e,t){i(e),a(t??null)}function s(e){i(``),a(null),J4(e)}return{token:e,user:t,isAuthenticated:n,displayName:r,setToken:i,setUser:a,setSession:o,logout:s}}),e3=()=>H4(()=>import(`./MainLayout-b1_-NQqr.js`),__vite__mapDeps([20,1,2,5,11,21,22,23]));function t3(){let e=localStorage.getItem(Ze),t=localStorage.getItem(qe);return t?e?{name:`participant-apply`,params:{slug:t},replace:!0}:{name:`participant-login`,params:{slug:t},replace:!0}:{path:`/c`,replace:!0}}var n3=k1({history:J$(`/admin/`),routes:[{path:`/`,redirect:t3},{path:`/c`,name:`participant-landing`,component:()=>H4(()=>import(`./ParticipantLandingView-4uYKthyb.js`),__vite__mapDeps([24,2,22]))},{path:`/c/:slug/login`,name:`participant-login`,component:()=>H4(()=>import(`./LoginView-BtqOdvUQ.js`),__vite__mapDeps([25,2,5,26,11,27,23])),meta:{guestOnly:!0}},{path:`/c/:slug/review/login`,name:`reviewer-login`,component:()=>H4(()=>import(`./ReviewerLoginView-DM6OZz-a.js`),__vite__mapDeps([28,2,5,11,27,23])),meta:{guestReviewerOnly:!0}},{path:`/c/:slug/review`,component:()=>H4(()=>import(`./ReviewerLayout-DhOGLZa5.js`),__vite__mapDeps([29,1,2,5,11,30,22,23])),meta:{requiresReviewerAuth:!0},children:[{path:`applications/:id(\\d+)`,name:`reviewer-application-detail`,component:()=>H4(()=>import(`./ReviewerApplicationDetailView-De8sw5Ya.js`),__vite__mapDeps([31,1,2,5,32]))},{path:``,name:`reviewer-projects`,component:()=>H4(()=>import(`./ReviewerProjectsView-D5T4aOD3.js`),__vite__mapDeps([33,1,2,5,34]))}]},{path:`/c/:slug`,component:e3,meta:{requiresAuth:!0},children:[{path:``,redirect:e=>({name:`participant-apply`,params:{slug:e.params.slug}})},{path:`apply`,name:`participant-apply`,component:()=>H4(()=>import(`./ApplyView-DkM8Rp3c.js`),__vite__mapDeps([35,1,2,5,26,11,36]))}]},{path:`/app`,redirect:()=>{let e=localStorage.getItem(qe);return e?{name:`participant-apply`,params:{slug:e}}:{path:`/c`}}},{path:`/app/apply`,redirect:()=>{let e=localStorage.getItem(qe);return e?{name:`participant-apply`,params:{slug:e}}:{path:`/c`}}},{path:`/admin/admin/login`,redirect:{name:`admin-login`}},{path:`/admin/admin`,redirect:{name:`admin-dashboard`}},{path:`/admin/admin/:rest(.*)`,redirect:e=>{let t=String(e.params.rest??``).replace(/^\//,``);return t?`/admin/${t}`:`/admin`}},{path:`/admin/login`,name:`admin-login`,component:()=>H4(()=>import(`./AdminLoginView-CwE2Yo_p.js`),__vite__mapDeps([37,1,2,38,5,39]))},{path:`/admin`,name:`AdminLayout`,component:()=>H4(()=>import(`./AdminLayout-N6R9h--Q.js`),__vite__mapDeps([40,1,2,38,3,4,5,41])),children:[{path:``,name:`admin-dashboard`,component:()=>H4(()=>import(`./AdminDashboardView-Dls0Ae8x.js`),__vite__mapDeps([0,1,2,3,4,5,6,7])),meta:{title:`首页`,permissionCode:`admin.dashboard`}},{path:`dashboard`,redirect:{name:`admin-dashboard`}}]}]});n3.beforeEach(async e=>{let t=e.params.slug==null?``:String(e.params.slug).trim();!Ge(e.path)&&t&&localStorage.setItem(qe,t);let n=localStorage.getItem(Ze);if(Ge(e.path)){let{token:n,competitionSlug:r}=$e();return e.name===`reviewer-login`?n&&r!==``&&r===t?{name:`reviewer-projects`,params:{slug:t},replace:!0}:!0:e.matched.some(e=>e.meta.requiresReviewerAuth===!0)&&(!n||r!==t)?{name:`reviewer-login`,params:{slug:t},query:t?{redirect:e.fullPath}:{}}:!0}if(e.path.startsWith(`/admin`)){let t=$4();return e.name===`admin-login`||e.path===`/admin/login`||e.path===`/admin/admin/login`?t.isAuthenticated?(Z4()||await X4(n3),{name:`admin-dashboard`,replace:!0}):!0:t.isAuthenticated?Z4()?!0:(await X4(n3),{...e,replace:!0}):{path:`/admin/login`,query:{redirect:e.fullPath}}}if(e.matched.some(e=>e.meta.requiresAuth)&&!n){let t=e.params.slug==null?``:String(e.params.slug);return t?{name:`participant-login`,params:{slug:t},query:{redirect:e.fullPath}}:{path:`/c`,query:{redirect:e.fullPath}}}if(e.meta.guestOnly&&n){let t=e.params.slug==null?``:String(e.params.slug);return t?{name:`participant-apply`,params:{slug:t},replace:!0}:t3()}return!0});var r3=`cxxfds_public_source_code`,i3=`cxxfds_public_source_checked_at`,a3=720*60*60*1e3;function o3(e){let t=typeof e==`string`?e.trim():``;return/^[A-Za-z0-9_-]{2,64}$/.test(t)?t:null}function s3(){return Date.now()}function c3(){try{let e=`__cxxfds_storage_probe__`;return window.localStorage.setItem(e,`1`),window.localStorage.removeItem(e),!0}catch{return!1}}function l3(){c3()&&(window.localStorage.removeItem(r3),window.localStorage.removeItem(i3))}function u3(e){c3()&&(window.localStorage.setItem(r3,e),window.localStorage.setItem(i3,String(s3())))}function d3(){let e=typeof window<`u`?o3(new URLSearchParams(window.location.search).get(`src`)):null;if(e)return e;if(!c3())return null;let t=window.localStorage.getItem(r3)?.trim()??``,n=window.localStorage.getItem(i3)?.trim()??``,r=Number.parseInt(n,10);return!t||!Number.isFinite(r)||r<=0||s3()-r>a3?(l3(),null):t}async function f3(e){let t=e.trim();if(!o3(t))return null;let n=new URLSearchParams({source_code:t}),r=await fetch(`${Ye()}/api/v1/public/source-channels/resolve?${n.toString()}`,{headers:{Accept:`application/json`}});if(!r.ok)return null;let i=await r.json().catch(()=>({}));return i.valid&&typeof i.source_code==`string`?i.source_code:null}async function p3(){if(typeof window>`u`)return;let e=new URLSearchParams(window.location.search).get(`src`)?.trim()??``;if(e)try{let t=await f3(e);t&&u3(t)}catch{}}var m3=Ql();p3(),n3.afterEach(()=>{p3()}),ke(M1).use(m3).use(n3).use(wQ,{locale:TQ}).mount(`#app`);export{pu as _,F4 as a,YZ as c,sw as d,cw as f,fu as g,kw as h,I4 as i,jZ as l,xw as m,$4 as n,j1 as o,_w as p,W4 as r,A1 as s,d3 as t,nw as u,xo as v,ms as y}; \ No newline at end of file diff --git a/public/admin/index.html b/public/admin/index.html index b6ac38a..83390c0 100644 --- a/public/admin/index.html +++ b/public/admin/index.html @@ -5,7 +5,7 @@ 江苏创青春新消费大赛报名系统 - cxxfds-web - + diff --git a/routes/api.php b/routes/api.php index 48b1e61..d27c25d 100644 --- a/routes/api.php +++ b/routes/api.php @@ -90,6 +90,7 @@ Route::middleware('auth:sanctum')->group(function () { Route::get('/me', [UserProfileController::class, 'show']); Route::get('/applications/current', [ApplicationController::class, 'show']); Route::put('/applications/current', [ApplicationController::class, 'update']); + Route::post('/applications/current/save', [ApplicationController::class, 'update']); Route::post('/applications/current/submit', [ApplicationController::class, 'submit']); Route::post('/applications/current/files', [ApplicationFileController::class, 'store']); Route::delete('/applications/current/files/{file}', [ApplicationFileController::class, 'destroy']); diff --git a/tests/Feature/ParticipantApplicationSaveTest.php b/tests/Feature/ParticipantApplicationSaveTest.php new file mode 100644 index 0000000..3cd0526 --- /dev/null +++ b/tests/Feature/ParticipantApplicationSaveTest.php @@ -0,0 +1,40 @@ +create(['mobile' => '13800138088']); + $competition = Competition::query()->create([ + 'slug' => 'xxf', + 'name' => '测试赛', + 'published' => true, + ]); + Application::query()->create([ + 'user_id' => $user->id, + 'competition_id' => $competition->id, + 'status' => 'draft', + ]); + + Sanctum::actingAs($user); + + $this->postJson('/api/applications/current/save?competition_slug=xxf', [ + 'player_name' => '张三', + 'project_name' => '测试项目', + ]) + ->assertOk() + ->assertJsonPath('player_name', '张三') + ->assertJsonPath('project_name', '测试项目'); + } +}