parent
6f4efc880c
commit
2cbe018a7f
@ -0,0 +1,2 @@
|
||||
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{a as d,c as f,i as p,o as m,r as h,t as g}from"./index-CeqWRAIy.js";import{t as _}from"./_plugin-vue_export-helper-S3RvzygF.js";async function v(e){try{let{data:t}=await h.post(`/auth/login`,e);return y(t)}catch(e){if(p.isAxiosError(e)){let t=e.response?.data,n=t&&typeof t==`object`?t:{},r=(typeof n.message==`string`?n.message:``)||(n.errors&&typeof n.errors==`object`?Object.values(n.errors).flat().join(`
|
||||
`):``)||e.message;throw Error(r||`登录失败`)}throw e}}function y(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(`登录响应无效`)}var b={class:`login-wrap`},x=_(a({__name:`AdminLoginView`,setup(a){let p=d(),h=m(),_=g(),y=r(``),x=r(``),S=r(!1);async function C(){if(!y.value.trim()||!x.value.trim()){f.warning(`请输入账号和密码`);return}S.value=!0;try{let e=await v({username:y.value.trim(),password:x.value.trim()});_.setToken(e.token);let t=typeof p.query.redirect==`string`?p.query.redirect:``;t&&t.startsWith(`/admin`)?await h.replace(t):await h.replace({name:`admin-competitions-list`}),f.success(`登录成功`)}catch(e){f.error(e instanceof Error?e.message:`登录失败`)}finally{S.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`,b,[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(C,[`prevent`])},{default:c(()=>[t(f,{label:`账号`},{default:c(()=>[t(d,{modelValue:y.value,"onUpdate:modelValue":a[0]||=e=>y.value=e,modelModifiers:{trim:!0},autocomplete:`username`,clearable:``},null,8,[`modelValue`])]),_:1}),t(f,{label:`密码`},{default:c(()=>[t(d,{modelValue:x.value,"onUpdate:modelValue":a[1]||=e=>x.value=e,type:`password`,autocomplete:`current-password`,"show-password":``},null,8,[`modelValue`])]),_:1}),t(p,{type:`danger`,class:`w-100`,"native-type":`submit`,loading:S.value},{default:c(()=>[e(i(S.value?`登录中…`:`登录`),1)]),_:1},8,[`loading`])]),_:1})]),_:1})])}}}),[[`__scopeId`,`data-v-f379b660`]]);export{x as default};
|
||||
@ -0,0 +1 @@
|
||||
.login-wrap[data-v-f379b660]{background:var(--el-bg-color-page);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card[data-v-f379b660]{width:100%;max-width:420px}.card-title[data-v-f379b660]{text-align:center;font-size:18px;font-weight:600}.w-100[data-v-f379b660]{width:100%}
|
||||
@ -1 +0,0 @@
|
||||
.login-wrap[data-v-1132d8e3]{background:var(--el-bg-color-page);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card[data-v-1132d8e3]{width:100%;max-width:420px}.card-title[data-v-1132d8e3]{text-align:center;font-size:18px;font-weight:600}.w-100[data-v-1132d8e3]{width:100%}.hint[data-v-1132d8e3]{color:var(--el-text-color-secondary);text-align:center;margin-top:16px;margin-bottom:0;font-size:12px}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
import{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{E as g}from"./index-BE0k9F_J.js";import{t as _}from"./_plugin-vue_export-helper-S3RvzygF.js";import{a as v}from"./competitions-BVhS38na.js";import{t as y}from"./adminCompetition-BsITJmpz.js";var b={draft:`草稿`,published:`已发布`,signup_open:`报名进行中`,signup_closed:`报名已截止`,reviewing:`评审中`,ended:`已结束`};function x(e){return b[e]??e}var S={class:`page-header`},C={key:0,class:`pager`},w={class:`total`},T=_(d({__name:`CompetitionListView`,setup(d){let _=c([]),b=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`,S,[c[1]||=h(`h2`,{class:`page-title`},`赛事列表`,-1),r(g,{to:{name:`admin-competition-new`}},{default:p(()=>[r(d,{type:`danger`},{default:p(()=>[...c[0]||=[t(`新建赛事`,-1)]]),_:1})]),_:1})]),r(P,{shadow:`never`},{default:p(()=>[l((f(),a(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(x)(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(b).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`,C,[h(`span`,w,`共 `+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{T as default};
|
||||
import{C as e,D as t,Et as n,O as r,Q as i,S as a,W as o,Z as s,_t as c,ct as l,in as u,k as d,q as f,st as p,w as m,x as h}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{c as g}from"./index-CeqWRAIy.js";import{t as _}from"./_plugin-vue_export-helper-S3RvzygF.js";import{a as v}from"./competitions-B1vcsRsk.js";import{t as y}from"./adminCompetition-DTiE680f.js";var b={draft:`草稿`,published:`已发布`,signup_open:`报名进行中`,signup_closed:`报名已截止`,reviewing:`评审中`,ended:`已结束`};function x(e){return b[e]??e}var S={class:`page-header`},C={key:0,class:`pager`},w={class:`total`},T=_(d({__name:`CompetitionListView`,setup(d){let _=c([]),b=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`,S,[c[1]||=h(`h2`,{class:`page-title`},`赛事列表`,-1),r(g,{to:{name:`admin-competition-new`}},{default:p(()=>[r(d,{type:`danger`},{default:p(()=>[...c[0]||=[t(`新建赛事`,-1)]]),_:1})]),_:1})]),r(P,{shadow:`never`},{default:p(()=>[l((f(),a(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(x)(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(b).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`,C,[h(`span`,w,`共 `+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{T as default};
|
||||
@ -1 +1 @@
|
||||
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{l as h,p as g}from"./api-CThxzAJR.js";import{C as _,w as v}from"./index-BE0k9F_J.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-BQASm1w0.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(`${g()}/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(h),t=g();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(h),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};
|
||||
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{f as h,l as g}from"./api-d2P9R_jw.js";import{a as _,o as v}from"./index-CeqWRAIy.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-BQASm1w0.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};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
||||
.proto-reviewer-page[data-v-72de1618]{--bg:#f5f3f4;--text:#1f1f1f;--primary:#b40010;--primary-soft:#fbe9eb;--shadow-soft:0 4px 14px #2e181a0f}.rev-head[data-v-72de1618]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.section-title[data-v-72de1618]{color:#2f2a2b;font-size:1.35rem;font-weight:620}.rev-alert[data-v-72de1618]{margin-bottom:.75rem}.reviewer-manage-shell[data-v-72de1618]{grid-template-columns:14.5rem minmax(0,1fr);align-items:start;gap:.9rem;display:grid}.reviewer-track-panel[data-v-72de1618],.reviewer-editor-panel[data-v-72de1618]{box-shadow:var(--shadow-soft);background:#fff;border:1px solid #ece2e4;border-radius:10px}.reviewer-track-panel[data-v-72de1618]{padding:.72rem}.reviewer-track-panel-title[data-v-72de1618]{color:#827579;margin-bottom:.55rem;font-size:.78rem;font-weight:600}.reviewer-track-tabs[data-v-72de1618]{gap:.42rem;display:grid}.reviewer-track-tab[data-v-72de1618]{color:#3e3437;text-align:left;cursor:pointer;width:100%;font:inherit;background:#fbf7f8;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;padding:.58rem .62rem;display:flex}.reviewer-track-tab.active[data-v-72de1618]{color:var(--primary);background:var(--primary-soft);border-color:#e5bdc1}.reviewer-track-tab-name[data-v-72de1618]{font-size:.86rem;font-weight:600}.reviewer-track-tab-count[data-v-72de1618]{color:#8b7e81;white-space:nowrap;font-size:.78rem}.reviewer-editor-panel[data-v-72de1618]{padding:.8rem}.reviewer-editor-head[data-v-72de1618]{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.72rem;display:flex}.reviewer-editor-actions[data-v-72de1618]{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.reviewer-track-title[data-v-72de1618]{color:#322b2d;margin:0 0 .18rem;font-size:1rem;font-weight:650}.reviewer-track-meta[data-v-72de1618]{color:#8b7e81;font-size:.78rem}.table-responsive[data-v-72de1618]{-webkit-overflow-scrolling:touch;overflow-x:auto}.reviewer-manage-table[data-v-72de1618]{border-collapse:collapse;width:100%;min-width:620px}.reviewer-manage-table th[data-v-72de1618]{color:#4a4043;background:#faf7f7;border-bottom:1px solid #ece2e4;padding:.65rem .62rem;font-size:.8rem;font-weight:600}.reviewer-manage-table td[data-v-72de1618]{vertical-align:middle;border-bottom:1px solid #f0e8ea;padding:.65rem .62rem;font-size:.88rem}.reviewer-row-actions[data-v-72de1618]{white-space:nowrap}.reviewer-row-actions .prm-btn-outline+.prm-btn-light[data-v-72de1618]{margin-left:.35rem}.prm-btn-outline[data-v-72de1618],.prm-btn-light[data-v-72de1618]{cursor:pointer;color:var(--primary);background:#fff;border:1px solid #c9b8bb;border-radius:6px;justify-content:center;align-items:center;padding:.22rem .55rem;font-size:.8rem;font-weight:500;display:inline-flex}.prm-btn-outline[data-v-72de1618]:hover:not(:disabled){background:var(--primary-soft)}.prm-btn-outline[data-v-72de1618]:disabled{opacity:.45;cursor:not-allowed}.prm-btn-outline.sm[data-v-72de1618],.prm-btn-light.sm[data-v-72de1618]{padding:.18rem .45rem;font-size:.78rem}.prm-btn-light[data-v-72de1618]{color:#3e3437;background:#fafafa;border-color:#ddd5d7}.prm-btn-light[data-v-72de1618]:hover{background:#f3f0f1}.empty-hint[data-v-72de1618]{color:#8b7e81;padding:1rem;font-size:.86rem}.footnote[data-v-72de1618]{color:#8b7e81;margin:.55rem 0 0;font-size:.72rem}@media (width<=992px){.admin-desktop-page .reviewer-manage-shell[data-v-72de1618]{grid-template-columns:1fr}.admin-desktop-page .reviewer-track-tabs[data-v-72de1618]{-webkit-overflow-scrolling:touch;gap:.5rem;padding-bottom:.1rem;display:flex;overflow-x:auto}.admin-desktop-page .reviewer-track-tab[data-v-72de1618]{flex:0 0 min(13rem,72vw)}.reviewer-editor-head[data-v-72de1618]{flex-direction:column;align-items:stretch}.reviewer-editor-actions[data-v-72de1618]{justify-content:flex-start}}
|
||||
@ -0,0 +1 @@
|
||||
.proto-reviewer-page[data-v-453a73aa]{--bg:#f5f3f4;--text:#1f1f1f;--primary:#b40010;--primary-soft:#fbe9eb;--shadow-soft:0 4px 14px #2e181a0f}.rev-head[data-v-453a73aa]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.section-title[data-v-453a73aa]{color:#2f2a2b;font-size:1.35rem;font-weight:620}.rev-alert[data-v-453a73aa]{margin-bottom:.75rem}.reviewer-manage-shell[data-v-453a73aa]{grid-template-columns:14.5rem minmax(0,1fr);align-items:start;gap:.9rem;display:grid}.reviewer-track-panel[data-v-453a73aa],.reviewer-editor-panel[data-v-453a73aa]{box-shadow:var(--shadow-soft);background:#fff;border:1px solid #ece2e4;border-radius:10px}.reviewer-track-panel[data-v-453a73aa]{padding:.72rem}.reviewer-track-panel-title[data-v-453a73aa]{color:#827579;margin-bottom:.55rem;font-size:.78rem;font-weight:600}.reviewer-track-tabs[data-v-453a73aa]{gap:.42rem;display:grid}.reviewer-track-tab[data-v-453a73aa]{color:#3e3437;text-align:left;cursor:pointer;width:100%;font:inherit;background:#fbf7f8;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;padding:.58rem .62rem;display:flex}.reviewer-track-tab.active[data-v-453a73aa]{color:var(--primary);background:var(--primary-soft);border-color:#e5bdc1}.reviewer-track-tab-name[data-v-453a73aa]{font-size:.86rem;font-weight:600}.reviewer-track-tab-count[data-v-453a73aa]{color:#8b7e81;white-space:nowrap;font-size:.78rem}.reviewer-editor-panel[data-v-453a73aa]{padding:.8rem}.reviewer-editor-head[data-v-453a73aa]{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.72rem;display:flex}.reviewer-editor-actions[data-v-453a73aa]{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.reviewer-track-title[data-v-453a73aa]{color:#322b2d;margin:0 0 .18rem;font-size:1rem;font-weight:650}.reviewer-track-meta[data-v-453a73aa]{color:#8b7e81;font-size:.78rem}.table-responsive[data-v-453a73aa]{-webkit-overflow-scrolling:touch;overflow-x:auto}.reviewer-manage-table[data-v-453a73aa]{border-collapse:collapse;width:100%;min-width:620px}.reviewer-manage-table th[data-v-453a73aa]{color:#4a4043;background:#faf7f7;border-bottom:1px solid #ece2e4;padding:.65rem .62rem;font-size:.8rem;font-weight:600}.reviewer-manage-table td[data-v-453a73aa]{vertical-align:middle;border-bottom:1px solid #f0e8ea;padding:.65rem .62rem;font-size:.88rem}.reviewer-row-actions[data-v-453a73aa]{white-space:nowrap}.reviewer-row-actions .prm-btn-outline+.prm-btn-light[data-v-453a73aa]{margin-left:.35rem}.prm-btn-outline[data-v-453a73aa],.prm-btn-light[data-v-453a73aa]{cursor:pointer;color:var(--primary);background:#fff;border:1px solid #c9b8bb;border-radius:6px;justify-content:center;align-items:center;padding:.22rem .55rem;font-size:.8rem;font-weight:500;display:inline-flex}.prm-btn-outline[data-v-453a73aa]:hover:not(:disabled){background:var(--primary-soft)}.prm-btn-outline[data-v-453a73aa]:disabled{opacity:.45;cursor:not-allowed}.prm-btn-outline.sm[data-v-453a73aa],.prm-btn-light.sm[data-v-453a73aa]{padding:.18rem .45rem;font-size:.78rem}.prm-btn-light[data-v-453a73aa]{color:#3e3437;background:#fafafa;border-color:#ddd5d7}.prm-btn-light[data-v-453a73aa]:hover{background:#f3f0f1}.empty-hint[data-v-453a73aa]{color:#8b7e81;padding:1rem;font-size:.86rem}.footnote[data-v-453a73aa]{color:#8b7e81;margin:.55rem 0 0;font-size:.72rem}@media (width<=992px){.admin-desktop-page .reviewer-manage-shell[data-v-453a73aa]{grid-template-columns:1fr}.admin-desktop-page .reviewer-track-tabs[data-v-453a73aa]{-webkit-overflow-scrolling:touch;gap:.5rem;padding-bottom:.1rem;display:flex;overflow-x:auto}.admin-desktop-page .reviewer-track-tab[data-v-453a73aa]{flex:0 0 min(13rem,72vw)}.reviewer-editor-head[data-v-453a73aa]{flex-direction:column;align-items:stretch}.reviewer-editor-actions[data-v-453a73aa]{justify-content:flex-start}}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
import{_t as e,b as t}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{t as n}from"./api-CThxzAJR.js";import{D as r}from"./index-BE0k9F_J.js";function i(){let e=localStorage.getItem(n);if(!e)return null;let t=Number(e);return Number.isFinite(t)&&t>0?t:null}var a=r(`adminCompetitionContext`,()=>{let r=e([]),a=e(i()),o=t(()=>r.value.find(e=>e.id===a.value)??null);function s(e){r.value=e,a.value&&!e.some(e=>e.id===a.value)&&(a.value=e[0]?.id??null,l()),!a.value&&e[0]&&(a.value=e[0].id,l())}function c(e){a.value=e,l()}function l(){let e=a.value;e?localStorage.setItem(n,String(e)):localStorage.removeItem(n)}return{competitions:r,selectedCompetitionId:a,selectedCompetition:o,setCompetitionList:s,selectCompetition:c}});export{a as t};
|
||||
import{_t as e,b as t}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{t as n}from"./api-d2P9R_jw.js";import{l as r}from"./index-CeqWRAIy.js";function i(){let e=localStorage.getItem(n);if(!e)return null;let t=Number(e);return Number.isFinite(t)&&t>0?t:null}var a=r(`adminCompetitionContext`,()=>{let r=e([]),a=e(i()),o=t(()=>r.value.find(e=>e.id===a.value)??null);function s(e){r.value=e,a.value&&!e.some(e=>e.id===a.value)&&(a.value=e[0]?.id??null,l()),!a.value&&e[0]&&(a.value=e[0].id,l())}function c(e){a.value=e,l()}function l(){let e=a.value;e?localStorage.setItem(n,String(e)):localStorage.removeItem(n)}return{competitions:r,selectedCompetitionId:a,selectedCompetition:o,setCompetitionList:s,selectCompetition:c}});export{a as t};
|
||||
@ -1 +0,0 @@
|
||||
function e(){return 60}var t=`/api/auth/sms/send`,n=`/api/auth/sms/login`,r=`cxxfds_token`,i=`cxxfds_participant_competition_slug`,a=`cxxfds_admin_token`,o=`cxxfds_admin_competition_id`,s=`cxxfds_reviewer_token`,c=`cxxfds_reviewer_competition_slug`,l=`/api/v1/review/auth/login`,u=`/api/v1/review/me`,d=`/api/v1/review/applications`;function f(e,t){let n=new URLSearchParams({competition_slug:t});return`${_()}/api/v1/review/applications/${e}?${n.toString()}`}function p(e){return`${_()}/api/v1/review/applications/${e}/score`}var m=`/v1/admin`;function h(){let e=`/admin/`;return e===`/`?`/admin/login`:`${e.endsWith(`/`)?e.slice(0,-1):e}/admin/login`}function g(){return!1}function _(){return(void 0)?.trim()?(void 0).trim().replace(/\/$/,``):(window.location.hostname,``)}function v(e){let t=String(e??``).trim();if(!t)return t;if(/^https?:\/\//i.test(t))try{let e=new URL(t),n=e.pathname.replace(/\/{2,}/g,`/`);return e.pathname=n.startsWith(`/`)?n:`/${n}`,e.toString()}catch{return t.replace(/([^:])\/\/+/g,`$1/`)}return t.replace(/\/{2,}/g,`/`)}function y(e,t,n){let r=new URLSearchParams({competition_slug:n});return`${_()}/api/v1/review/applications/${e}/files/${t}/download?${r.toString()}`}function b(){let e=(void 0)?.trim();return e?e.replace(/\/$/,``):`${_()}/api${m}`}function x(){return{token:localStorage.getItem(`cxxfds_reviewer_token`)??``,competitionSlug:localStorage.getItem(`cxxfds_reviewer_competition_slug`)??``}}function S(e,t){localStorage.setItem(s,e),localStorage.setItem(c,t)}function C(){localStorage.removeItem(s),localStorage.removeItem(c)}function w(e){return/^\/c\/[^/]+\/review(?:\/|$)/.test(e)}export{S,h as _,t as a,y as b,u as c,C as d,b as f,w as g,v as h,n as i,r as l,e as m,a as n,d as o,_ as p,i as r,l as s,o as t,g as u,x as v,p as x,f as y};
|
||||
@ -0,0 +1 @@
|
||||
function e(){return 60}var t=`/api/auth/sms/send`,n=`/api/auth/sms/login`,r=`cxxfds_token`,i=`cxxfds_participant_competition_slug`,a=`cxxfds_admin_token`,o=`cxxfds_admin_competition_id`,s=`cxxfds_reviewer_token`,c=`cxxfds_reviewer_competition_slug`,l=`/api/v1/review/auth/login`,u=`/api/v1/review/me`,d=`/api/v1/review/applications`;function f(e,t){let n=new URLSearchParams({competition_slug:t});return`${g()}/api/v1/review/applications/${e}?${n.toString()}`}function p(e){return`${g()}/api/v1/review/applications/${e}/score`}var m=`/v1/admin`;function h(){let e=`/admin/`;return e===`/`?`/admin/login`:`${e.endsWith(`/`)?e.slice(0,-1):e}/admin/login`}function g(){return(void 0)?.trim()?(void 0).trim().replace(/\/$/,``):(window.location.hostname,``)}function _(e){let t=String(e??``).trim();if(!t)return t;if(/^https?:\/\//i.test(t))try{let e=new URL(t),n=e.pathname.replace(/\/{2,}/g,`/`);return e.pathname=n.startsWith(`/`)?n:`/${n}`,e.toString()}catch{return t.replace(/([^:])\/\/+/g,`$1/`)}return t.replace(/\/{2,}/g,`/`)}function v(e,t,n){let r=new URLSearchParams({competition_slug:n});return`${g()}/api/v1/review/applications/${e}/files/${t}/download?${r.toString()}`}function y(){let e=(void 0)?.trim();return e?e.replace(/\/$/,``):`${g()}/api${m}`}function b(){return{token:localStorage.getItem(`cxxfds_reviewer_token`)??``,competitionSlug:localStorage.getItem(`cxxfds_reviewer_competition_slug`)??``}}function x(e,t){localStorage.setItem(s,e),localStorage.setItem(c,t)}function S(){localStorage.removeItem(s),localStorage.removeItem(c)}function C(e){return/^\/c\/[^/]+\/review(?:\/|$)/.test(e)}export{b as _,t as a,p as b,u as c,y as d,g as f,h as g,C as h,n as i,r as l,_ as m,a as n,d as o,e as p,i as r,l as s,o as t,S as u,f as v,x,v as y};
|
||||
@ -0,0 +1 @@
|
||||
import{r as e}from"./index-CeqWRAIy.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};
|
||||
@ -1 +0,0 @@
|
||||
import{u as e}from"./api-CThxzAJR.js";import{S as t,_ as n,d as r,f as i,m as a,r as o,x as s}from"./index-BE0k9F_J.js";function c(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 l(t){if(e()){let e=a(),n=t.page??1,r=t.per_page??15,i=(n-1)*r;return{data:e.slice(i,i+r),meta:{current_page:n,last_page:Math.max(1,Math.ceil(e.length/r)),per_page:r,total:e.length}}}let{data:n}=await o.get(`/competitions`,{params:t});return c(n)}async function u(t){if(e()){let e=i(t);if(!e)throw Error(`赛事不存在`);return e}let{data:n}=await o.get(`/competitions/${t}`),r=n?.data??n;if(!r||typeof r!=`object`)throw Error(`赛事详情无效`);return r}async function d(t){if(e())return s(t);let{data:n}=await o.post(`/competitions`,t),r=n?.data??n;if(!r||typeof r!=`object`)throw Error(`创建响应无效`);return r}async function f(t,n){if(e()){let e=i(t);if(!e)throw Error(`赛事不存在`);return s({...e,...n,id:t})}let{data:r}=await o.put(`/competitions/${t}`,n),a=r?.data??r;if(!a||typeof a!=`object`)throw Error(`更新响应无效`);return a}async function p(t,n){if(e()){let e=i(t);if(!e)throw Error(`赛事不存在`);return s({...e,...n,id:t})}let{data:r}=await o.patch(`/competitions/${t}`,n),a=r?.data??r;if(!a||typeof a!=`object`)throw Error(`更新响应无效`);return a}async function m(t){if(e())return n(t);let{data:r}=await o.get(`/competitions/${t}/tracks`),i=r?.data??r;if(!Array.isArray(i))throw Error(`赛道列表无效`);return i}async function h(n,r){if(e())return t(n,{...r});let{data:i}=await o.post(`/competitions/${n}/tracks`,r),a=i?.data??i;if(!a||typeof a!=`object`)throw Error(`创建赛道无效`);return a}async function g(n,r,i){if(e())return t(n,{...i,id:r});let{data:a}=await o.put(`/competitions/${n}/tracks/${r}`,i),s=a?.data??a;if(!s||typeof s!=`object`)throw Error(`更新赛道无效`);return s}async function _(t,n){if(e()){r(t,n);return}await o.delete(`/competitions/${t}/tracks/${n}`)}export{l as a,f as c,u as i,g as l,h as n,m as o,_ as r,p as s,d as t};
|
||||
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue