diff --git a/public/admin/assets/AdminLayout-CnAgmXtu.js b/public/admin/assets/AdminLayout-DwGzZ2Ld.js similarity index 93% rename from public/admin/assets/AdminLayout-CnAgmXtu.js rename to public/admin/assets/AdminLayout-DwGzZ2Ld.js index ee6a123..1a1c55a 100644 --- a/public/admin/assets/AdminLayout-CnAgmXtu.js +++ b/public/admin/assets/AdminLayout-DwGzZ2Ld.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,in as p,k as m,q as h,st as g,w as _,x as v}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{C as y,E as b,O as x,n as S,t as C,w}from"./index-CK9_7hK2.js";import{t as T}from"./_plugin-vue_export-helper-S3RvzygF.js";import{a as E}from"./competitions-C4QNxYDA.js";import{t as D}from"./adminCompetition-CoRnlfMF.js";var O={key:0,class:`menu-section-label`},k=T(m({__name:`AdminMenuNest`,props:{nodes:{}},setup(n){return(a,c)=>{let l=s(`el-sub-menu`),u=s(`el-menu-item`);return h(!0),_(f,null,o(n.nodes,(n,a)=>(h(),_(f,{key:n.section||n.name||String(a)},[n.section&&!n.name?(h(),_(`div`,O,p(n.section),1)):n.children?.length&&n.name?(h(),i(l,{key:1,index:n.name},{title:g(()=>[v(`span`,null,p(n.title),1)]),default:g(()=>[r(k,{nodes:n.children},null,8,[`nodes`])]),_:2},1032,[`index`])):n.name?(h(),i(u,{key:2,index:n.name},{default:g(()=>[t(p(n.title),1)]),_:2},1032,[`index`])):e(``,!0)],64))),128)}}}),[[`__scopeId`,`data-v-346ecfd3`]]),A=T(m({__name:`AdminMenuTree`,props:{nodes:{}},setup(e){let t=y(),n=w(),a=l(()=>t.name==null?``:String(t.name));function o(e){n.push({name:e}).catch(()=>{})}return(t,n)=>{let c=s(`el-menu`);return h(),i(c,{"default-active":a.value,class:`admin-side-menu`,onSelect:o},{default:g(()=>[r(k,{nodes:e.nodes},null,8,[`nodes`])]),_:1},8,[`default-active`])}}}),[[`__scopeId`,`data-v-72ad4354`]]),j={class:`header-inner`},M={key:0,class:`muted`},N={class:`switcher-item`},P={class:`truncate`},F={class:`slug truncate`},I=T(m({__name:`AdminLayout`,setup(l){let m=w(),y=C(),T=S(),O=D(),{menus:k}=x(T),{competitions:I,selectedCompetitionId:L}=x(O),R=c(!1);async function z(){try{let e=await E({page:1,per_page:100});O.setCompetitionList(e.data)}catch(e){b.warning(e instanceof Error?e.message:`赛事列表加载失败,请检查网络与权限`)}}function B(){R.value=!R.value}function V(e){O.selectCompetition(e)}function H(){y.logout(m),m.replace(`/admin/login`)}return a(()=>{z()}),(a,c)=>{let l=s(`el-button`),m=s(`el-dropdown-item`),y=s(`el-dropdown-menu`),b=s(`el-dropdown`),x=s(`el-header`),S=s(`el-scrollbar`),C=s(`el-aside`),w=s(`router-view`),T=s(`el-main`),E=s(`el-container`);return h(),i(E,{class:`admin-shell`},{default:g(()=>[r(x,{class:`admin-header`,height:`56px`},{default:g(()=>[v(`div`,j,[r(l,{circle:``,plain:``,size:`small`,"aria-label":`收起或展开侧栏`,onClick:B},{default:g(()=>[t(p(R.value?`☰`:`⟨`),1)]),_:1}),c[3]||=v(`span`,{class:`admin-brand`},`管理后台`,-1),c[4]||=v(`div`,{class:`header-spacer`},null,-1),r(b,{trigger:`click`,placement:`bottom-end`},{dropdown:g(()=>[r(y,{style:{"min-width":`220px`}},{default:g(()=>[n(I).length?(h(!0),_(f,{key:1},o(n(I),e=>(h(),i(m,{key:e.id,onClick:t=>V(e.id)},{default:g(()=>[v(`div`,N,[v(`span`,P,p(e.name),1),v(`span`,F,p(e.slug),1)])]),_:2},1032,[`onClick`]))),128)):(h(),i(m,{key:0,disabled:``},{default:g(()=>[...c[1]||=[t(`暂无赛事,请先在「赛事列表」创建`,-1)]]),_:1}))]),_:1})]),default:g(()=>[r(l,{type:`danger`,plain:``,size:`small`},{default:g(()=>[c[0]||=t(` 赛事切换 `,-1),n(L)?(h(),_(`span`,M,`(#`+p(n(L))+`)`,1)):e(``,!0)]),_:1})]),_:1}),r(l,{size:`small`,onClick:H},{default:g(()=>[...c[2]||=[t(`退出`,-1)]]),_:1})])]),_:1}),r(E,{class:`admin-body`},{default:g(()=>[r(C,{class:`admin-aside`,width:R.value?`0px`:`230px`},{default:g(()=>[u(r(S,{class:`aside-scroll`},{default:g(()=>[c[5]||=v(`div`,{class:`aside-title`},`导航`,-1),r(A,{nodes:n(k)},null,8,[`nodes`])]),_:1},512),[[d,!R.value]])]),_:1},8,[`width`]),r(T,{class:`admin-main`},{default:g(()=>[r(w)]),_:1})]),_:1})]),_:1})}}}),[[`__scopeId`,`data-v-fe713c5c`]]);export{I 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,in as p,k as m,q as h,st as g,w as _,x as v}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{C as y,E as b,O as x,n as S,t as C,w}from"./index-D8PaKRyd.js";import{t as T}from"./_plugin-vue_export-helper-S3RvzygF.js";import{a as E}from"./competitions-B5KfFF-U.js";import{t as D}from"./adminCompetition-Cg47YVEK.js";var O={key:0,class:`menu-section-label`},k=T(m({__name:`AdminMenuNest`,props:{nodes:{}},setup(n){return(a,c)=>{let l=s(`el-sub-menu`),u=s(`el-menu-item`);return h(!0),_(f,null,o(n.nodes,(n,a)=>(h(),_(f,{key:n.section||n.name||String(a)},[n.section&&!n.name?(h(),_(`div`,O,p(n.section),1)):n.children?.length&&n.name?(h(),i(l,{key:1,index:n.name},{title:g(()=>[v(`span`,null,p(n.title),1)]),default:g(()=>[r(k,{nodes:n.children},null,8,[`nodes`])]),_:2},1032,[`index`])):n.name?(h(),i(u,{key:2,index:n.name},{default:g(()=>[t(p(n.title),1)]),_:2},1032,[`index`])):e(``,!0)],64))),128)}}}),[[`__scopeId`,`data-v-346ecfd3`]]),A=T(m({__name:`AdminMenuTree`,props:{nodes:{}},setup(e){let t=y(),n=w(),a=l(()=>t.name==null?``:String(t.name));function o(e){n.push({name:e}).catch(()=>{})}return(t,n)=>{let c=s(`el-menu`);return h(),i(c,{"default-active":a.value,class:`admin-side-menu`,onSelect:o},{default:g(()=>[r(k,{nodes:e.nodes},null,8,[`nodes`])]),_:1},8,[`default-active`])}}}),[[`__scopeId`,`data-v-72ad4354`]]),j={class:`header-inner`},M={key:0,class:`muted`},N={class:`switcher-item`},P={class:`truncate`},F={class:`slug truncate`},I=T(m({__name:`AdminLayout`,setup(l){let m=w(),y=C(),T=S(),O=D(),{menus:k}=x(T),{competitions:I,selectedCompetitionId:L}=x(O),R=c(!1);async function z(){try{let e=await E({page:1,per_page:100});O.setCompetitionList(e.data)}catch(e){b.warning(e instanceof Error?e.message:`赛事列表加载失败,请检查网络与权限`)}}function B(){R.value=!R.value}function V(e){O.selectCompetition(e)}function H(){y.logout(m),m.replace(`/admin/login`)}return a(()=>{z()}),(a,c)=>{let l=s(`el-button`),m=s(`el-dropdown-item`),y=s(`el-dropdown-menu`),b=s(`el-dropdown`),x=s(`el-header`),S=s(`el-scrollbar`),C=s(`el-aside`),w=s(`router-view`),T=s(`el-main`),E=s(`el-container`);return h(),i(E,{class:`admin-shell`},{default:g(()=>[r(x,{class:`admin-header`,height:`56px`},{default:g(()=>[v(`div`,j,[r(l,{circle:``,plain:``,size:`small`,"aria-label":`收起或展开侧栏`,onClick:B},{default:g(()=>[t(p(R.value?`☰`:`⟨`),1)]),_:1}),c[3]||=v(`span`,{class:`admin-brand`},`管理后台`,-1),c[4]||=v(`div`,{class:`header-spacer`},null,-1),r(b,{trigger:`click`,placement:`bottom-end`},{dropdown:g(()=>[r(y,{style:{"min-width":`220px`}},{default:g(()=>[n(I).length?(h(!0),_(f,{key:1},o(n(I),e=>(h(),i(m,{key:e.id,onClick:t=>V(e.id)},{default:g(()=>[v(`div`,N,[v(`span`,P,p(e.name),1),v(`span`,F,p(e.slug),1)])]),_:2},1032,[`onClick`]))),128)):(h(),i(m,{key:0,disabled:``},{default:g(()=>[...c[1]||=[t(`暂无赛事,请先在「赛事列表」创建`,-1)]]),_:1}))]),_:1})]),default:g(()=>[r(l,{type:`danger`,plain:``,size:`small`},{default:g(()=>[c[0]||=t(` 赛事切换 `,-1),n(L)?(h(),_(`span`,M,`(#`+p(n(L))+`)`,1)):e(``,!0)]),_:1})]),_:1}),r(l,{size:`small`,onClick:H},{default:g(()=>[...c[2]||=[t(`退出`,-1)]]),_:1})])]),_:1}),r(E,{class:`admin-body`},{default:g(()=>[r(C,{class:`admin-aside`,width:R.value?`0px`:`230px`},{default:g(()=>[u(r(S,{class:`aside-scroll`},{default:g(()=>[c[5]||=v(`div`,{class:`aside-title`},`导航`,-1),r(A,{nodes:n(k)},null,8,[`nodes`])]),_:1},512),[[d,!R.value]])]),_:1},8,[`width`]),r(T,{class:`admin-main`},{default:g(()=>[r(w)]),_:1})]),_:1})]),_:1})}}}),[[`__scopeId`,`data-v-fe713c5c`]]);export{I as default}; \ No newline at end of file diff --git a/public/admin/assets/AdminLoginView-BtMABMAm.js b/public/admin/assets/AdminLoginView-D3VVvyTR.js similarity index 97% rename from public/admin/assets/AdminLoginView-BtMABMAm.js rename to public/admin/assets/AdminLoginView-D3VVvyTR.js index 30fd993..5061f4c 100644 --- a/public/admin/assets/AdminLoginView-BtMABMAm.js +++ b/public/admin/assets/AdminLoginView-D3VVvyTR.js @@ -1,2 +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{u as d}from"./api-CH6mod_b.js";import{C as f,E as p,i as m,r as h,t as g,w as _}from"./index-CK9_7hK2.js";import{t as v}from"./_plugin-vue_export-helper-S3RvzygF.js";async function y(e){if(d()){if(!e.username.trim()||!e.password.trim())throw Error(`请输入账号和密码`);return{token:`mock_admin_${Date.now()}`,user:{id:1,name:`Mock 管理员`,username:e.username.trim()}}}try{let{data:t}=await h.post(`/auth/login`,e);return b(t)}catch(e){if(m.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(` +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{u as d}from"./api-CH6mod_b.js";import{C as f,E as p,i as m,r as h,t as g,w as _}from"./index-D8PaKRyd.js";import{t as v}from"./_plugin-vue_export-helper-S3RvzygF.js";async function y(e){if(d()){if(!e.username.trim()||!e.password.trim())throw Error(`请输入账号和密码`);return{token:`mock_admin_${Date.now()}`,user:{id:1,name:`Mock 管理员`,username:e.username.trim()}}}try{let{data:t}=await h.post(`/auth/login`,e);return b(t)}catch(e){if(m.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 b(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 x={class:`login-wrap`},S=v(a({__name:`AdminLoginView`,setup(a){let d=f(),m=_(),h=g(),v=r(``),b=r(``),S=r(!1);async function C(){if(!v.value.trim()||!b.value.trim()){p.warning(`请输入账号和密码`);return}S.value=!0;try{let e=await y({username:v.value.trim(),password:b.value.trim()});h.setToken(e.token);let t=typeof d.query.redirect==`string`?d.query.redirect:``;t&&t.startsWith(`/admin`)?await m.replace(t):await m.replace({name:`admin-competitions-list`}),p.success(`登录成功`)}catch(e){p.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`,x,[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:v.value,"onUpdate:modelValue":a[0]||=e=>v.value=e,modelModifiers:{trim:!0},autocomplete:`username`,clearable:``},null,8,[`modelValue`])]),_:1}),t(f,{label:`密码`},{default:c(()=>[t(d,{modelValue:b.value,"onUpdate:modelValue":a[1]||=e=>b.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}),a[3]||=u(`p`,{class:`hint`},[e(` 连接真实后端时请将 `),u(`code`,null,`VITE_ADMIN_USE_MOCK`),e(` 设为 `),u(`code`,null,`false`),e(` 并重启前端;默认管理员账号由 Laravel `),u(`code`,null,`php artisan db:seed --class=AdminUserSeeder`),e(` 写入。 `)],-1)]),_:1})])}}}),[[`__scopeId`,`data-v-1132d8e3`]]);export{S as default}; \ No newline at end of file diff --git a/public/admin/assets/ApplyView-DGeQJz8H.js b/public/admin/assets/ApplyView-D4GrjnSt.js similarity index 99% rename from public/admin/assets/ApplyView-DGeQJz8H.js rename to public/admin/assets/ApplyView-D4GrjnSt.js index c5e7a5e..7ecc397 100644 --- a/public/admin/assets/ApplyView-DGeQJz8H.js +++ b/public/admin/assets/ApplyView-D4GrjnSt.js @@ -1 +1 @@ -import{$t as e,C as t,D as n,R as r,S as i,V as a,W as o,Y as s,_t as c,at as l,b as u,c as d,ct as f,d as ee,g as p,ht as te,in as m,k as ne,m as re,q as h,s as ie,u as ae,w as g,x as _}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{l as oe,p as se}from"./api-CH6mod_b.js";import{A as ce,C as le,k as ue,w as de}from"./index-CK9_7hK2.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-BQASm1w0.js";var _e={北京市:[`北京市`],天津市:[`天津市`],上海市:[`上海市`],重庆市:[`重庆市`],河北省:[`石家庄市`,`唐山市`,`秦皇岛市`,`邯郸市`,`邢台市`,`保定市`,`张家口市`,`承德市`,`沧州市`,`廊坊市`,`衡水市`],山西省:[`太原市`,`大同市`,`阳泉市`,`长治市`,`晋城市`,`朔州市`,`晋中市`,`运城市`,`忻州市`,`临汾市`,`吕梁市`],内蒙古自治区:[`呼和浩特市`,`包头市`,`乌海市`,`赤峰市`,`通辽市`,`鄂尔多斯市`,`呼伦贝尔市`,`巴彦淖尔市`,`乌兰察布市`,`兴安盟`,`锡林郭勒盟`,`阿拉善盟`],辽宁省:[`沈阳市`,`大连市`,`鞍山市`,`抚顺市`,`本溪市`,`丹东市`,`锦州市`,`营口市`,`阜新市`,`辽阳市`,`盘锦市`,`铁岭市`,`朝阳市`,`葫芦岛市`],吉林省:[`长春市`,`吉林市`,`四平市`,`辽源市`,`通化市`,`白山市`,`松原市`,`白城市`,`延边朝鲜族自治州`],黑龙江省:[`哈尔滨市`,`齐齐哈尔市`,`鸡西市`,`鹤岗市`,`双鸭山市`,`大庆市`,`伊春市`,`佳木斯市`,`七台河市`,`牡丹江市`,`黑河市`,`绥化市`,`大兴安岭地区`],江苏省:[`南京市`,`无锡市`,`徐州市`,`常州市`,`苏州市`,`南通市`,`连云港市`,`淮安市`,`盐城市`,`扬州市`,`镇江市`,`泰州市`,`宿迁市`],浙江省:[`杭州市`,`宁波市`,`温州市`,`嘉兴市`,`湖州市`,`绍兴市`,`金华市`,`衢州市`,`舟山市`,`台州市`,`丽水市`],安徽省:[`合肥市`,`芜湖市`,`蚌埠市`,`淮南市`,`马鞍山市`,`淮北市`,`铜陵市`,`安庆市`,`黄山市`,`滁州市`,`阜阳市`,`宿州市`,`六安市`,`亳州市`,`池州市`,`宣城市`],福建省:[`福州市`,`厦门市`,`莆田市`,`三明市`,`泉州市`,`漳州市`,`南平市`,`龙岩市`,`宁德市`],江西省:[`南昌市`,`景德镇市`,`萍乡市`,`九江市`,`新余市`,`鹰潭市`,`赣州市`,`吉安市`,`宜春市`,`抚州市`,`上饶市`],山东省:[`济南市`,`青岛市`,`淄博市`,`枣庄市`,`东营市`,`烟台市`,`潍坊市`,`济宁市`,`泰安市`,`威海市`,`日照市`,`临沂市`,`德州市`,`聊城市`,`滨州市`,`菏泽市`],河南省:[`郑州市`,`开封市`,`洛阳市`,`平顶山市`,`安阳市`,`鹤壁市`,`新乡市`,`焦作市`,`濮阳市`,`许昌市`,`漯河市`,`三门峡市`,`南阳市`,`商丘市`,`信阳市`,`周口市`,`驻马店市`,`济源市`],湖北省:[`武汉市`,`黄石市`,`十堰市`,`宜昌市`,`襄阳市`,`鄂州市`,`荆门市`,`孝感市`,`荆州市`,`黄冈市`,`咸宁市`,`随州市`,`恩施土家族苗族自治州`,`仙桃市`,`潜江市`,`天门市`,`神农架林区`],湖南省:[`长沙市`,`株洲市`,`湘潭市`,`衡阳市`,`邵阳市`,`岳阳市`,`常德市`,`张家界市`,`益阳市`,`郴州市`,`永州市`,`怀化市`,`娄底市`,`湘西土家族苗族自治州`],广东省:[`广州市`,`韶关市`,`深圳市`,`珠海市`,`汕头市`,`佛山市`,`江门市`,`湛江市`,`茂名市`,`肇庆市`,`惠州市`,`梅州市`,`汕尾市`,`河源市`,`阳江市`,`清远市`,`东莞市`,`中山市`,`潮州市`,`揭阳市`,`云浮市`],广西壮族自治区:[`南宁市`,`柳州市`,`桂林市`,`梧州市`,`北海市`,`防城港市`,`钦州市`,`贵港市`,`玉林市`,`百色市`,`贺州市`,`河池市`,`来宾市`,`崇左市`],海南省:[`海口市`,`三亚市`,`三沙市`,`儋州市`,`五指山市`,`琼海市`,`文昌市`,`万宁市`,`东方市`,`定安县`,`屯昌县`,`澄迈县`,`临高县`,`白沙黎族自治县`,`昌江黎族自治县`,`乐东黎族自治县`,`陵水黎族自治县`,`保亭黎族苗族自治县`,`琼中黎族苗族自治县`],四川省:[`成都市`,`自贡市`,`攀枝花市`,`泸州市`,`德阳市`,`绵阳市`,`广元市`,`遂宁市`,`内江市`,`乐山市`,`南充市`,`眉山市`,`宜宾市`,`广安市`,`达州市`,`雅安市`,`巴中市`,`资阳市`,`阿坝藏族羌族自治州`,`甘孜藏族自治州`,`凉山彝族自治州`],贵州省:[`贵阳市`,`六盘水市`,`遵义市`,`安顺市`,`毕节市`,`铜仁市`,`黔西南布依族苗族自治州`,`黔东南苗族侗族自治州`,`黔南布依族苗族自治州`],云南省:[`昆明市`,`曲靖市`,`玉溪市`,`保山市`,`昭通市`,`丽江市`,`普洱市`,`临沧市`,`楚雄彝族自治州`,`红河哈尼族彝族自治州`,`文山壮族苗族自治州`,`西双版纳傣族自治州`,`大理白族自治州`,`德宏傣族景颇族自治州`,`怒江傈僳族自治州`,`迪庆藏族自治州`],西藏自治区:[`拉萨市`,`日喀则市`,`昌都市`,`林芝市`,`山南市`,`那曲市`,`阿里地区`],陕西省:[`西安市`,`铜川市`,`宝鸡市`,`咸阳市`,`渭南市`,`延安市`,`汉中市`,`榆林市`,`安康市`,`商洛市`],甘肃省:[`兰州市`,`嘉峪关市`,`金昌市`,`白银市`,`天水市`,`武威市`,`张掖市`,`平凉市`,`酒泉市`,`庆阳市`,`定西市`,`陇南市`,`临夏回族自治州`,`甘南藏族自治州`],青海省:[`西宁市`,`海东市`,`海北藏族自治州`,`黄南藏族自治州`,`海南藏族自治州`,`果洛藏族自治州`,`玉树藏族自治州`,`海西蒙古族藏族自治州`],宁夏回族自治区:[`银川市`,`石嘴山市`,`吴忠市`,`固原市`,`中卫市`],新疆维吾尔自治区:[`乌鲁木齐市`,`克拉玛依市`,`吐鲁番市`,`哈密市`,`昌吉回族自治州`,`博尔塔拉蒙古自治州`,`巴音郭楞蒙古自治州`,`阿克苏地区`,`克孜勒苏柯尔克孜自治州`,`喀什地区`,`和田地区`,`伊犁哈萨克自治州`,`塔城地区`,`阿勒泰地区`,`石河子市`,`阿拉尔市`,`图木舒克市`,`五家渠市`,`北屯市`,`铁门关市`,`双河市`,`可克达拉市`,`昆玉市`,`胡杨河市`,`新星市`],香港特别行政区:[`香港`],澳门特别行政区:[`澳门`],台湾省:[`台北市`,`新北市`,`桃园市`,`台中市`,`台南市`,`高雄市`,`新竹市`,`嘉义市`]},ve=`北京市.天津市.上海市.重庆市.河北省.山西省.内蒙古自治区.辽宁省.吉林省.黑龙江省.江苏省.浙江省.安徽省.福建省.江西省.山东省.河南省.湖北省.湖南省.广东省.广西壮族自治区.海南省.四川省.贵州省.云南省.西藏自治区.陕西省.甘肃省.青海省.宁夏回族自治区.新疆维吾尔自治区.香港特别行政区.澳门特别行政区.台湾省`.split(`.`),v=[{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:`company_name`,type:`text`,label:`企业名称`,required:!1,placeholder:`如已注册企业,请填写`},{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 y(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 ye(e){if(!Array.isArray(e)||e.length===0)return v.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;if(i===`select`&&Array.isArray(e.options)&&(d=y(e.options)),r===`track`&&(d=[]),i===`select`&&r!==`track`&&(!d||d.length===0))if(r===`location_province`)d=ve.map(e=>({label:e,value:e}));else{let e=v.find(e=>e.key===r);e?.options?.length&&(d=e.options.map(e=>({...e})))}t.push({key:r,type:i,label:a,required:o,placeholder:c,help:u,options:d})}return t.length?t:v.map(e=>({...e}))}var be={class:`apply-form-page`},xe={class:`form-page-header flex-shrink-0 mb-3`},Se={class:`mb-0 form-page-title`},Ce={key:0,class:`text-secondary prototype-subtitle mb-0 mt-2`},we={key:1,class:`text-danger small mb-0 mt-2`},Te={key:2,class:`text-warning small mb-0 mt-2`},Ee={key:0,class:`apply-form-scroll`},De={class:`card mb-0`},Oe={class:`card-body`},ke={key:0,class:`col-md-4`},Ae={class:`form-label`,id:`trackFieldLabel`},je={key:0,class:`text-danger`},Me={class:`track-custom-select w-100`},Ne=[`required`,`disabled`],Pe=[`value`],Fe={class:`dropdown w-100`},Ie=[`disabled`],Le={class:`track-toggle-label text-truncate`},Re={key:0,class:`track-custom-note`},ze={class:`dropdown-menu w-100 border shadow-sm rounded-2 py-0 my-1 track-custom-menu`},Be=[`onClick`],Ve={class:`track-pick-inline`},He={class:`text-body`},Ue={key:0,class:`track-custom-note`},We={key:0,class:`text-secondary prototype-subtitle d-block`},Ge={key:1,class:`col-12`},Ke={class:`form-label`},qe={key:0,class:`text-danger`},Je=[`disabled`],Ye={key:0,class:`text-secondary prototype-subtitle d-block mt-1`},Xe={key:1,class:`supporting-file-list mt-2`,"aria-live":`polite`},Ze={class:`supporting-file-meta`},Qe=[`title`],$e={class:`supporting-file-size`},et={class:`supporting-file-actions`},tt=[`href`],nt=[`disabled`,`onClick`],rt={class:`text-secondary prototype-subtitle d-block`},it={key:2,class:`invalid-feedback d-block`},at={key:2,class:`col-12`},ot={class:`form-label`},st=[`disabled`],ct={key:0,class:`text-secondary prototype-subtitle d-block mt-1`},lt={key:1,class:`supporting-file-list mt-2`,"aria-live":`polite`},ut={class:`supporting-file-meta`},dt=[`title`],ft={class:`supporting-file-size`},pt={class:`supporting-file-actions`},mt=[`href`],ht=[`disabled`,`onClick`],gt={class:`text-secondary prototype-subtitle d-block`},_t={key:2,class:`invalid-feedback d-block`},vt={class:`form-label`},yt={key:0,class:`text-danger`},bt=[`onUpdate:modelValue`,`required`,`disabled`],xt=[`value`],St={class:`invalid-feedback`},Ct={key:0,class:`text-secondary prototype-subtitle d-block`},wt={class:`form-label`},Tt={key:0,class:`text-danger`},Et=[`required`,`disabled`],Dt=[`value`],Ot={class:`invalid-feedback`},kt={key:0,class:`text-secondary prototype-subtitle d-block`},At={class:`form-label`},jt={key:0,class:`text-danger`},Mt={class:`d-flex flex-wrap align-items-center gap-2 mb-1`},Nt=[`disabled`],Pt={key:0,class:`badge rounded-pill px-3 py-2 promise-signed-badge`},Ft={key:0,class:`text-secondary prototype-subtitle d-block mt-1`},It={class:`form-check`},Lt=[`id`,`onUpdate:modelValue`,`required`,`disabled`],Rt=[`for`],zt={key:0,class:`text-danger`},Bt={key:0,class:`text-secondary prototype-subtitle d-block mt-1`},Vt={class:`form-label`},Ht={key:0,class:`text-danger`},Ut=[`onUpdate:modelValue`,`required`,`disabled`,`placeholder`],Wt={key:0,class:`d-flex justify-content-end mt-1`},Gt={class:`text-secondary prototype-subtitle intro-char-count`},Kt={class:`form-label`},qt={key:0,class:`text-danger`},Jt=[`onUpdate:modelValue`,`type`,`required`,`disabled`,`placeholder`,`pattern`,`autocomplete`],Yt={class:`invalid-feedback`},Xt={key:0,class:`text-secondary prototype-subtitle d-block`},Zt={class:`col-12 apply-form-actions mt-3 pt-3 border-top d-flex gap-2 flex-wrap`},Qt=[`disabled`],$t=[`disabled`],en={class:`modal-dialog modal-dialog-centered promise-sign-modal`},tn={class:`modal-content promise-sign-sheet`},nn={class:`modal-body pt-2`},rn={class:`promise-doc-paper`},an={class:`promise-doc-heading text-center`},on={class:`promise-doc-scroll`},sn=[`innerHTML`],cn={class:`promise-doc-signblock`},ln={class:`promise-doc-signrow`},un={class:`promise-sig-wrap`},dn={class:`promise-sig-box`},fn={class:`promise-doc-daterow`},pn={class:`promise-doc-dateline`},mn={class:`modal-dialog modal-dialog-centered notice-modal-dialog`},hn={class:`modal-body notice-modal-body`},gn={class:`notice-title`},_n={class:`notice-text text-break`,style:{"white-space":`pre-wrap`}},vn=20*1024*1024,yn=`^1[3-9]\\d{9}$`,bn=`

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

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

`,xn=2097152,Sn=fe(ne({__name:`ApplyFormView`,setup(i){let ne=ue,fe=de(),v=le(),y=u(()=>String(v.params.slug??``).trim()),Sn=[`pdf`,`ppt`,`pptx`,`doc`,`docx`,`wps`,`rar`,`zip`];function b(e){let t=e.value;return t==null?null:Array.isArray(t)?t[0]??null:t}function x(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 S(){return se()}function C(){let e=y.value;return e?`?competition_slug=${encodeURIComponent(e)}`:``}function Cn(e){let t={Authorization:`Bearer ${localStorage.getItem(`cxxfds_token`)||``}`,Accept:`application/json`};return e&&(t[`Content-Type`]=`application/json`),t}function w(){localStorage.removeItem(oe);let e=y.value;e?fe.push({name:`participant-login`,params:{slug:e},query:{redirect:v.fullPath}}):fe.push(`/c`)}let T=c(ye([])),E=c([]),wn=c(!1),Tn=c(``),En=c(``),Dn=u(()=>En.value.trim()||bn),D=c(he()),O=c(``),k=te({});function On(e){for(let t of e)t.type!==`file`&&(t.key in k||(k[t.key]=``));e.some(e=>e.key===`commitment_accepted`)&&!(`promise_signature`in k)&&(k.promise_signature=``)}let kn=u(()=>`jscc_signup_form_draft_v2_${y.value||`x`}`),An=c(`draft`),jn=c(!0),Mn=c(!1),Nn=c(null),Pn=c(null),Fn=u(()=>{let e=k.track,t=E.value.find(t=>t.track_code===e);return t?t.title:e||`请选择`}),In=u(()=>k.track?`text-body`:`text-secondary`),Ln=u(()=>{let e=k.track;return(E.value.find(t=>t.track_code===e)?.description??``).trim()});function Rn(e){return(e??``).trim()}function zn(e){k.track=e,Mn.value=!1;let t=b(Pn);t&&ne.getInstance(t)?.hide()}let A=u(()=>k.location_country===`中国`),Bn=u(()=>k.location_country===`海外`),Vn=u(()=>ve.map(e=>({label:e,value:e}))),Hn=u(()=>{let e=k.location_province;return e?(_e[e]||[]).map(e=>({label:e,value:e})):[]});function j(){Bn.value?(k.location_province=``,k.location_city=``):A.value||(k.location_province=``,k.location_city=``,k.oversea_country=``)}l(()=>k.location_country,()=>{j()}),l(()=>k.location_province,(e,t)=>{A.value&&e!==t&&(t==null||String(t).trim()===``||(k.location_city=``))});let M=c([]),N=c([]),P=c(``),F=c(``),Un=c(``),I=c(``),L=c(!1),R=u(()=>!jn.value),Wn=c(null),z=c(null),Gn=c(null),Kn=u(()=>(k.intro||``).length),qn=u(()=>pe(D.value,Tn.value)),Jn=u(()=>{let e=D.value.apply?.headerSubtitle;return me(e)?String(e).trim():``});function Yn(e){let t=String(k[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 B(e){return e.type===`textarea`||e.type===`file`||e.type===`checkbox`?`col-12`:`col-md-4`}function Xn(e){return e.type===`file`?!0:e.key===`location_province`||e.key===`location_city`?A.value:e.key===`oversea_country`?Bn.value:!0}function V(e){return e.key===`location_province`||e.key===`location_city`?A.value:e.key===`oversea_country`?Bn.value:e.required}let Zn=u(()=>T.value.filter(e=>Xn(e)));function Qn(e){return e.key===`track`?E.value.map(e=>({label:e.title,value:e.track_code})):e.key===`location_province`?Vn.value:e.key===`location_city`&&A.value?Hn.value:e.options??[]}function $n(e){return e.key===`location_city`&&A.value}function er(e){return e>=1024*1024?`${(e/1024/1024).toFixed(1).replace(/\.0$/,``)}M`:e>=1024?`${Math.ceil(e/1024)}K`:`${e}B`}function H(e){return e.file?e.file.name:e.original_name||``}function tr(e){let t=e.message||``,n=e.errors;return n&&Object.keys(n).length?`${t}\n${JSON.stringify(n)}`:t||`操作失败`}let nr=c(null),rr=c(`提示`),ir=c(``),ar=c(!1);function U(e,t=`提示`,n=`warning`){rr.value=t,ir.value=e,ar.value=n===`success`,r(()=>{let e=nr.value;e&&ce.getOrCreateInstance(e).show()})}let W=c(null),G=c(null),or=c(``),K=c(!0),q=null,J=520,Y=140,sr=!1,X=!1,cr=null,Z=null;function lr(){cr?.abort(),cr=null}let ur=u(()=>k.commitment_accepted===`1`&&String(k.promise_signature??``).trim()!==``),dr=u(()=>{let e=Tn.value.trim();return e?`${e} 赛事承诺书`:`赛事承诺书`});function fr(e){return`${e.getFullYear()}年${e.getMonth()+1}月${e.getDate()}日`}function pr(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 mr(){let e=G.value;if(!e)return;let t=e.closest(`.promise-sig-wrap`),n=window.devicePixelRatio||1,r=window.getComputedStyle(e);J=Math.max(280,Math.floor(t?.clientWidth||520)),Y=Math.max(76,Math.floor(parseFloat(r.height)||110)),e.style.width=`${J}px`,e.style.height=`${Y}px`,e.width=Math.floor(J*n),e.height=Math.floor(Y*n),q=e.getContext(`2d`),q&&(q.setTransform(1,0,0,1,0,0),q.scale(n,n),q.fillStyle=`#ffffff`,q.fillRect(0,0,J,Y),q.strokeStyle=`#111111`,q.lineWidth=2,q.lineCap=`round`,q.lineJoin=`round`,X=!1,K.value=!0)}function hr(){let e=String(k.promise_signature??``).trim();if(!e||!q)return;let t=new Image;t.onload=()=>{q&&(q.drawImage(t,0,0,J,Y),X=!0,K.value=!1)},t.src=e}function gr(){let e=G.value;if(!e||!q)return;lr(),cr=new AbortController;let{signal:t}=cr,n=t=>{if(`touches`in t&&t.preventDefault(),!q)return;sr=!0;let n=pr(t,e);q.beginPath(),q.moveTo(n.x,n.y)},r=t=>{if(!sr||!q)return;`touches`in t&&t.preventDefault();let n=pr(t,e);q.lineTo(n.x,n.y),q.stroke(),X=!0,K.value=!1},i=()=>{sr=!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 _r(){or.value=fr(new Date);let e=t=>{if(!G.value){t<40&&requestAnimationFrame(()=>e(t+1));return}mr(),gr(),String(k.promise_signature??``).trim()&&k.commitment_accepted===`1`&&hr()};r(()=>{requestAnimationFrame(()=>e(0))})}function vr(e){Z?.();let t=()=>{_r()},n=()=>{lr()};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}}l(W,e=>{Z?.(),e&&vr(e)},{flush:`post`});function yr(){if(R.value)return;let e=W.value;e&&ce.getOrCreateInstance(e).show()}function br(){mr(),gr()}function xr(){let e=G.value;if(!X||!e){U(`请先在签名区域内手写签名后再确认。`,`请确认`,`warning`);return}let t=e.toDataURL(`image/png`);if(t.length>xn){U(`签名数据过大,请清除后重新签名或联系管理员。`,`提示`,`warning`);return}k.promise_signature=t,k.commitment_accepted=`1`;let n=W.value;n&&ce.getInstance(n)?.hide()}function Sr(){let e={};for(let t of T.value)if(t.type!==`file`){if(t.type===`checkbox`){e[t.key]=k[t.key]===`1`;continue}e[t.key]=k[t.key]??``}return T.value.some(e=>e.key===`commitment_accepted`)&&(e.promise_signature=k.promise_signature??``),e}function Cr(e,t,n){let r=e.filter(e=>e.file),i=e.filter(e=>e.fromServer&&!e.file);if(!r.length&&!i.length)return{ok:n,feedback:n?``:t};let a=r.map(e=>e.file).find(e=>{let t=(e.name.split(`.`).pop()||``).toLowerCase();return!Sn.includes(t)});if(a)return{ok:!1,feedback:`“${a.name}”格式不支持,请上传 PDF/PPT/PPTX/DOC/DOCX/WPS/RAR/ZIP`};let o=r.map(e=>e.file).find(e=>e.size>vn);return o?{ok:!1,feedback:`“${o.name}”大小不能超过20M`}:{ok:!0,feedback:``}}function wr(){return T.value.some(e=>e.key===`plan`&&e.type===`file`)}function Tr(){return T.value.some(e=>e.key===`supporting`&&e.type===`file`)}function Q(){if(!wr())return b(z)?.setCustomValidity(``),!0;let e=Cr(M.value,`请上传商业计划书`,!1);return Un.value=e.feedback,b(z)?.setCustomValidity(e.ok?``:`missing`),e.ok}function $(){if(!Tr())return b(Gn)?.setCustomValidity(``),!0;let e=Cr(N.value,`文件格式或大小不符合要求`,!0);return I.value=e.feedback,b(Gn)?.setCustomValidity(e.ok?``:`bad`),e.ok}function Er(){L.value=!0,Q(),$();let e=T.value.find(e=>e.key===`track`);if(e&&Xn(e)){Mn.value=!k.track;let e=b(Nn);e&&e.setCustomValidity(k.track?``:`请选择主题赛道`)}else Mn.value=!1,b(Nn)?.setCustomValidity(``);return!(Wn.value?.checkValidity()??!1)||e&&V(e)&&!k.track||!Q()||!$()?!1:T.value.find(e=>e.key===`commitment_accepted`)&&(k.commitment_accepted!==`1`||!String(k.promise_signature??``).trim())?(U(`请先阅读并完成参赛承诺书的手写签署。`,`提示`,`warning`),!1):!0}async function Dr(e){let t=localStorage.getItem(oe);if(!t)return;let n=(e===`plan`?M.value:N.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(`${S()}/api/applications/current/files${C()}`,{method:`POST`,headers:{Authorization:`Bearer ${t}`,Accept:`application/json`},body:n}),a=await i.json().catch(()=>({}));if(i.status===401){w();return}if(!i.ok){U(tr(a),`提示`,`warning`);return}let o=r.previewUrl;r.id=a.id,r.fromServer=!0,r.original_name=a.original_name,r.size=a.size,r.url=a.url,r.previewUrl=a.url,o&&String(o).startsWith(`blob:`)&&URL.revokeObjectURL(o),delete r.file}U(``,`上传成功`,`success`),e===`plan`?Q():$()}}async function Or(e,t){let n=t===`plan`?[...M.value]:[...N.value],r=n.find(t=>String(t.id)===String(e));if(r){if(r.fromServer&&typeof r.id==`number`){if(!localStorage.getItem(`cxxfds_token`)){w();return}let e=await fetch(`${S()}/api/applications/current/files/${r.id}${C()}`,{method:`DELETE`,headers:Cn(!1)});if(e.status===401){w();return}if(!e.ok){U(`删除失败`,`提示`,`warning`);return}}r.previewUrl&&String(r.previewUrl).startsWith(`blob:`)&&URL.revokeObjectURL(r.previewUrl),n=n.filter(t=>String(t.id)!==String(e)),t===`plan`?M.value=n:N.value=n,L.value=!0,t===`plan`?Q():$()}}function kr(e,t){if(!e?.length)return;let n=t===`plan`?M.value:N.value;if(Array.from(e).forEach(e=>{n.push({id:`tmp-${Date.now()}-${Math.random().toString(16).slice(2)}`,file:e,previewUrl:URL.createObjectURL(e),fromServer:!1})}),t===`plan`){M.value=[...n],P.value=``;let e=b(z);e&&(e.value=``),L.value=!0,Q()}else{N.value=[...n],F.value=``;let e=b(Gn);e&&(e.value=``),L.value=!0,$()}Dr(t)}function Ar(){return{formModel:{...k},planFileNames:M.value.map(H).filter(Boolean),supportingFileNames:N.value.map(H).filter(Boolean)}}function jr(){let e=Ar();localStorage.setItem(kn.value,JSON.stringify(e)),e.planFileNames.length?P.value=`已保存商业计划书名称:${e.planFileNames.join(`、`)}`:P.value=``,e.supportingFileNames.length?F.value=`已保存其他佐证材料名称:${e.supportingFileNames.join(`、`)}`:F.value=``}function Mr(){let e=localStorage.getItem(kn.value);if(e)try{let t=JSON.parse(e);if(t.formModel&&typeof t.formModel==`object`)for(let e of Object.keys(t.formModel))k[e]=t.formModel[e]??``;let n=t.planFileNames||[];n.length&&(P.value=`上次保存商业计划书名称:${n.join(`、`)}(浏览器限制,需重新选择后预览或删除)`);let r=t.supportingFileNames;r?.length&&(F.value=`上次保存其他佐证材料名称:${r.join(`、`)}(浏览器限制,需重新选择后预览或删除)`),j()}catch{localStorage.removeItem(kn.value)}}async function Nr(){wn.value=!1;let e=y.value;if(!e){O.value=`缺少赛事地址`;return}O.value=``;try{let t=await fetch(`${S()}/api/v1/public/competitions/by-slug/${encodeURIComponent(e)}`,{headers:{Accept:`application/json`}});if(!t.ok){O.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;Tn.value=String(r.name??``),En.value=typeof r.pledge_content_html==`string`?r.pledge_content_html:``;let i=r.tracks;E.value=Array.isArray(i)?i:[];let a=r.signup_form_schema;if(typeof a==`string`)try{a=JSON.parse(a)}catch{a=[]}T.value=ye(a),On(T.value),D.value=ge(r.branding_json??null);let o=D.value.documentTitle;me(o)&&typeof document<`u`&&(document.title=o.trim()),wn.value=!0}catch{O.value=`网络错误,无法加载赛事`}}function Pr(e){An.value=e.status||`draft`,jn.value=e.participant_may_edit!==!1,k.player_name=e.player_name||``,k.school=e.school||``,k.degree=e.degree||``,k.contact_email=e.contact_email||``,k.contact_mobile=e.contact_mobile||``,k.company_name=e.company_name||``,k.project_name=e.project_name||``,k.track=e.track||``,k.location_country=e.location_country||``,k.location_province=e.location_province||``,k.location_city=e.location_city||``,k.oversea_country=e.oversea_country||``,k.intro=e.intro||``;let t=typeof e.promise_signature==`string`?e.promise_signature:``;k.promise_signature=t,k.commitment_accepted=t.trim()&&e.promise_signed_at?`1`:``,j(),M.value=(e.files||[]).filter(e=>e.kind===`plan`).map(e=>({id:e.id,fromServer:!0,original_name:e.original_name,size:e.size,url:e.url,previewUrl:e.url})),N.value=(e.files||[]).filter(e=>e.kind===`supporting`).map(e=>({id:e.id,fromServer:!0,original_name:e.original_name,size:e.size,url:e.url,previewUrl:e.url})),Q(),$()}async function Fr(){if(!localStorage.getItem(`cxxfds_token`))return!1;let e=await fetch(`${S()}/api/applications/current${C()}`,{headers:Cn(!1)});return e.status===401?(localStorage.removeItem(oe),w(),!1):e.ok?(Pr(await e.json()),!0):!1}async function Ir(){let e=await fetch(`${S()}/api/applications/current${C()}`,{method:`PUT`,headers:Cn(!0),body:JSON.stringify(Sr())});if(e.status===401)return w(),!1;if(!e.ok)return e.json().catch(()=>({})),U(``,`保存失败`,`warning`),!1;try{Pr(await e.json())}catch{}return!0}async function Lr(){let e=await fetch(`${S()}/api/applications/current/submit${C()}`,{method:`POST`,headers:Cn(!0),body:JSON.stringify(Sr())});return e.status===401?(w(),!1):e.ok?(Pr(await e.json()),!0):(e.json().catch(()=>({})),U(``,`提交失败`,`warning`),!1)}async function Rr(){if(!localStorage.getItem(`cxxfds_token`)){w();return}await Ir()&&(jr(),U(``,`保存成功`,`success`))}async function zr(){if(!localStorage.getItem(`cxxfds_token`)){w();return}Er()&&await Lr()&&U(``,`提交成功`,`success`)}return a(()=>{Z?.(),lr()}),o(()=>{(async()=>{await Nr(),!O.value&&(await Fr()||Mr(),j())})()}),(r,i)=>(h(),g(`div`,be,[_(`div`,xe,[_(`h5`,Se,m(qn.value),1),!O.value&&Jn.value?(h(),g(`p`,Ce,m(Jn.value),1)):t(``,!0),O.value?(h(),g(`p`,we,m(O.value),1)):wn.value&&E.value.length===0&&T.value.some(e=>e.key===`track`)?(h(),g(`p`,Te,` 本场赛事尚未在「赛道管理」中配置可用赛道,提交时可能会失败,请联系管理员。 `)):t(``,!0)]),O.value?t(``,!0):(h(),g(`div`,Ee,[_(`div`,De,[_(`div`,Oe,[_(`form`,{id:`applyForm`,ref_key:`applyFormEl`,ref:Wn,class:e([`row g-3`,{"was-validated":L.value}]),onSubmit:i[5]||=re(()=>{},[`prevent`])},[(h(!0),g(p,null,s(Zn.value,r=>(h(),g(p,{key:r.type===`file`?`f-`+r.key:r.key},[r.key===`track`?(h(),g(`div`,ke,[_(`label`,Ae,[n(m(r.label)+` `,1),V(r)?(h(),g(`span`,je,`*`)):t(``,!0)]),_(`div`,Me,[f(_(`select`,{id:`track`,ref_for:!0,ref_key:`trackHiddenSelect`,ref:Nn,"onUpdate:modelValue":i[0]||=e=>k.track=e,class:`visually-hidden`,required:V(r),tabindex:`-1`,"aria-hidden":`true`,disabled:R.value},[i[6]||=_(`option`,{value:``},`请选择`,-1),(h(!0),g(p,null,s(E.value,e=>(h(),g(`option`,{key:e.track_code,value:e.track_code},m(e.title),9,Pe))),128))],8,Ne),[[ae,k.track]]),_(`div`,Fe,[_(`button`,{ref_for:!0,ref_key:`trackDropdownBtn`,ref:Pn,type:`button`,class:e([`dropdown-toggle form-select track-custom-toggle editable w-100 text-start`,{"is-invalid":Mn.value&&L.value}]),"aria-labelledby":`trackFieldLabel`,"aria-expanded":`false`,"data-bs-toggle":`dropdown`,"data-bs-display":`static`,"data-bs-auto-close":`true`,disabled:R.value},[_(`span`,Le,[_(`span`,{class:e(In.value)},m(Fn.value),3),Ln.value?(h(),g(`span`,Re,m(Ln.value),1)):t(``,!0)])],10,Ie),_(`ul`,ze,[_(`li`,null,[_(`button`,{type:`button`,class:`dropdown-item track-pick border-0 w-100 text-start rounded-0`,onClick:i[1]||=e=>zn(``)},[...i[7]||=[_(`span`,{class:`text-secondary`},`请选择`,-1)]])]),(h(!0),g(p,null,s(E.value,e=>(h(),g(`li`,{key:e.track_code},[_(`button`,{type:`button`,class:`dropdown-item track-pick border-0 w-100 text-start rounded-0`,onClick:t=>zn(e.track_code)},[_(`span`,Ve,[_(`span`,He,m(e.title),1),Rn(e.description)?(h(),g(`span`,Ue,m(Rn(e.description)),1)):t(``,!0)])],8,Be)]))),128))]),i[8]||=_(`div`,{class:`invalid-feedback`},`请选择主题赛道`,-1)])]),x(r.help)?(h(),g(`small`,We,m(x(r.help)),1)):t(``,!0)])):r.type===`file`&&r.key===`plan`?(h(),g(`div`,Ge,[_(`label`,Ke,[n(m(r.label)+` `,1),r.required?(h(),g(`span`,qe,`*`)):t(``,!0)]),_(`input`,{ref_for:!0,ref_key:`planFileInput`,ref:z,type:`file`,class:e([`form-control editable`,{"is-invalid":L.value&&!!Un.value}]),accept:`.pdf,.ppt,.pptx,.doc,.docx,.wps,.rar,.zip`,multiple:``,disabled:R.value,onChange:i[2]||=e=>kr(e.target.files,`plan`)},null,42,Je),x(r.help)?(h(),g(`small`,Ye,m(x(r.help)),1)):t(``,!0),M.value.length?(h(),g(`div`,Xe,[(h(!0),g(p,null,s(M.value,e=>(h(),g(`div`,{key:String(e.id),class:`supporting-file-item`},[_(`div`,Ze,[_(`span`,{class:`supporting-file-name`,title:H(e)},m(H(e)),9,Qe),_(`span`,$e,m(er(e.file?e.file.size:e.size||0)),1)]),_(`div`,et,[_(`a`,{class:`btn btn-sm btn-outline-primary`,href:e.previewUrl||e.url||`#`,target:`_blank`,rel:`noopener`},`预览`,8,tt),_(`button`,{type:`button`,class:`btn btn-sm btn-outline-secondary`,disabled:R.value,onClick:t=>Or(e.id,`plan`)},` 删除 `,8,nt)])]))),128))])):t(``,!0),_(`small`,rt,m(P.value),1),L.value&&Un.value?(h(),g(`div`,it,m(Un.value),1)):t(``,!0)])):r.type===`file`&&r.key===`supporting`?(h(),g(`div`,at,[_(`label`,ot,m(r.label),1),_(`input`,{ref_for:!0,ref_key:`supportingFileInput`,ref:Gn,type:`file`,class:e([`form-control editable`,{"is-invalid":L.value&&!!I.value}]),accept:`.pdf,.ppt,.pptx,.doc,.docx,.wps,.rar,.zip`,multiple:``,disabled:R.value,onChange:i[3]||=e=>kr(e.target.files,`supporting`)},null,42,st),x(r.help)?(h(),g(`small`,ct,m(x(r.help)),1)):t(``,!0),N.value.length?(h(),g(`div`,lt,[(h(!0),g(p,null,s(N.value,e=>(h(),g(`div`,{key:String(e.id),class:`supporting-file-item`},[_(`div`,ut,[_(`span`,{class:`supporting-file-name`,title:H(e)},m(H(e)),9,dt),_(`span`,ft,m(er(e.file?e.file.size:e.size||0)),1)]),_(`div`,pt,[_(`a`,{class:`btn btn-sm btn-outline-primary`,href:e.previewUrl||e.url||`#`,target:`_blank`,rel:`noopener`},`预览`,8,mt),_(`button`,{type:`button`,class:`btn btn-sm btn-outline-secondary`,disabled:R.value,onClick:t=>Or(e.id,`supporting`)},` 删除 `,8,ht)])]))),128))])):t(``,!0),_(`small`,gt,m(F.value),1),L.value&&I.value?(h(),g(`div`,_t,m(I.value),1)):t(``,!0)])):r.type===`select`&&!$n(r)?(h(),g(`div`,{key:3,class:e(B(r))},[_(`label`,vt,[n(m(r.label)+` `,1),V(r)?(h(),g(`span`,yt,`*`)):t(``,!0)]),f(_(`select`,{"onUpdate:modelValue":e=>k[r.key]=e,class:`form-select editable`,required:V(r),disabled:R.value},[i[9]||=_(`option`,{value:``},`请选择`,-1),(h(!0),g(p,null,s(Qn(r),e=>(h(),g(`option`,{key:`${r.key}-${e.value}`,value:e.value},m(e.label),9,xt))),128))],8,bt),[[ae,k[r.key]]]),_(`div`,St,`请选择`+m(r.label),1),x(r.help)?(h(),g(`small`,Ct,m(x(r.help)),1)):t(``,!0)],2)):$n(r)?(h(),g(`div`,{key:4,class:e(B(r))},[_(`label`,wt,[n(m(r.label)+` `,1),V(r)?(h(),g(`span`,Tt,`*`)):t(``,!0)]),f(_(`select`,{"onUpdate:modelValue":i[4]||=e=>k.location_city=e,class:`form-select editable`,required:V(r),disabled:R.value||!A.value},[i[10]||=_(`option`,{value:``},`请选择`,-1),(h(!0),g(p,null,s(Qn(r),e=>(h(),g(`option`,{key:e.value,value:e.value},m(e.label),9,Dt))),128))],8,Et),[[ae,k.location_city]]),_(`div`,Ot,`请选择`+m(r.label),1),x(r.help)?(h(),g(`small`,kt,m(x(r.help)),1)):t(``,!0)],2)):r.type===`checkbox`&&r.key===`commitment_accepted`?(h(),g(`div`,{key:5,class:e(B(r))},[_(`label`,At,[n(m(r.label)+` `,1),V(r)?(h(),g(`span`,jt,`*`)):t(``,!0)]),i[11]||=_(`p`,{class:`small text-secondary mb-2`},` 请点击按钮打开承诺书全文,阅读后在文末手写签名并点击「确认签署」。 `,-1),_(`div`,Mt,[_(`button`,{type:`button`,class:`btn btn-outline-primary btn-sm editable`,disabled:R.value,onClick:yr},m(ur.value?`重新查看承诺书`:`查看并签署参赛承诺书`),9,Nt),ur.value?(h(),g(`span`,Pt,`已完成签署`)):t(``,!0)]),x(r.help)?(h(),g(`small`,Ft,m(x(r.help)),1)):t(``,!0)],2)):r.type===`checkbox`?(h(),g(`div`,{key:6,class:e(B(r))},[_(`div`,It,[f(_(`input`,{id:`signup-field-`+r.key,"onUpdate:modelValue":e=>k[r.key]=e,type:`checkbox`,class:`form-check-input editable`,"true-value":`1`,"false-value":``,required:V(r),disabled:R.value},null,8,Lt),[[ie,k[r.key]]]),_(`label`,{class:`form-check-label`,for:`signup-field-`+r.key},[n(m(r.label),1),V(r)?(h(),g(`span`,zt,` *`)):t(``,!0)],8,Rt),i[12]||=_(`div`,{class:`invalid-feedback`},`请勾选此项以继续`,-1)]),x(r.help)?(h(),g(`small`,Bt,m(x(r.help)),1)):t(``,!0)],2)):r.type===`textarea`?(h(),g(`div`,{key:7,class:e(B(r))},[_(`label`,Vt,[n(m(r.label)+` `,1),V(r)?(h(),g(`span`,Ht,`*`)):t(``,!0)]),f(_(`textarea`,{"onUpdate:modelValue":e=>k[r.key]=e,class:`form-control editable`,rows:`4`,required:V(r),disabled:R.value,placeholder:(r.placeholder??``).trim()},null,8,Ut),[[ee,k[r.key]]]),r.key===`intro`?(h(),g(`div`,Wt,[_(`small`,Gt,m(Kn.value)+` 字`,1)])):t(``,!0),x(r.help)?(h(),g(`small`,{key:1,class:e([`text-secondary prototype-subtitle d-block`,{"mt-1":r.key===`intro`}])},m(x(r.help)),3)):t(``,!0)],2)):(h(),g(`div`,{key:8,class:e(B(r))},[_(`label`,Kt,[n(m(r.label)+` `,1),V(r)?(h(),g(`span`,qt,`*`)):t(``,!0)]),f(_(`input`,{"onUpdate:modelValue":e=>k[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:V(r),disabled:R.value,placeholder:(r.placeholder??``).trim(),pattern:r.key===`contact_mobile`?yn:void 0,autocomplete:r.key===`company_name`?`organization`:void 0},null,10,Jt),[[d,k[r.key]]]),_(`div`,Yt,m(Yn(r)),1),x(r.help)?(h(),g(`small`,Xt,m(x(r.help)),1)):t(``,!0)],2))],64))),128)),_(`div`,Zt,[_(`button`,{type:`button`,class:`btn btn-outline-primary`,disabled:R.value,onClick:Rr},`保存`,8,Qt),_(`button`,{type:`button`,class:`btn btn-success`,disabled:R.value,onClick:zr},`提交报名`,8,$t)])],34)])])])),!O.value&&T.value.some(e=>e.key===`commitment_accepted`)?(h(),g(`div`,{key:1,id:`promiseSignModal`,ref_key:`promiseSignModalRef`,ref:W,class:`modal fade`,tabindex:`-1`,"aria-hidden":`true`,"data-bs-backdrop":`static`},[_(`div`,en,[_(`div`,tn,[_(`div`,nn,[_(`div`,rn,[_(`h1`,an,m(dr.value),1),_(`div`,on,[_(`div`,{class:`promise-doc-body promise-doc-body--rich`,innerHTML:Dn.value},null,8,sn)]),_(`div`,cn,[_(`div`,ln,[i[13]||=_(`span`,{class:`promise-doc-signlabel`},`参赛人签名:`,-1),_(`div`,un,[_(`div`,dn,[_(`canvas`,{ref_key:`promiseCanvasRef`,ref:G,class:`promise-sig-canvas`,width:`520`,height:`140`,"aria-label":`手写签名区域`},null,512),_(`span`,{class:e([`promise-sig-hint`,{"d-none":!K.value}])},`请在框内手写签名`,2)]),_(`div`,{class:`promise-sig-tools`},[_(`button`,{type:`button`,class:`btn btn-sm btn-outline-secondary`,onClick:br},` 清除签名 `)])])]),_(`div`,fn,[_(`span`,pn,[i[14]||=n(`日期:`,-1),_(`strong`,null,m(or.value),1)])])]),_(`div`,{class:`promise-sign-actions`},[i[15]||=_(`button`,{type:`button`,class:`btn promise-close-btn`,"data-bs-dismiss":`modal`},`关闭`,-1),_(`button`,{type:`button`,class:`btn btn-primary`,onClick:xr},`确认签署`)])])])])])],512)):t(``,!0),_(`div`,{ref_key:`noticeModalEl`,ref:nr,id:`applyNoticeModal`,class:`modal fade`,tabindex:`-1`,"aria-hidden":`true`},[_(`div`,mn,[_(`div`,{class:e([`modal-content notice-modal-content`,ar.value?`notice-success`:`notice-warning`])},[i[16]||=_(`div`,{class:`modal-header border-0 pb-0`},[_(`button`,{type:`button`,class:`btn-close ms-auto`,"data-bs-dismiss":`modal`,"aria-label":`关闭`})],-1),_(`div`,hn,[_(`h5`,gn,m(rr.value),1),_(`p`,_n,m(ir.value),1)]),i[17]||=_(`div`,{class:`modal-footer notice-modal-footer border-0`},[_(`button`,{type:`button`,class:`btn btn-primary`,"data-bs-dismiss":`modal`},`确定`)],-1)],2)])],512)]))}}),[[`__scopeId`,`data-v-62a7f11e`]]),b=ne({__name:`ApplyView`,setup(e){return(e,t)=>(h(),i(Sn))}});export{b as default}; \ No newline at end of file +import{$t as e,C as t,D as n,R as r,S as i,V as a,W as o,Y as s,_t as c,at as l,b as u,c as d,ct as f,d as ee,g as p,ht as te,in as m,k as ne,m as re,q as h,s as ie,u as ae,w as g,x as _}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{l as oe,p as se}from"./api-CH6mod_b.js";import{A as ce,C as le,k as ue,w as de}from"./index-D8PaKRyd.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-BQASm1w0.js";var _e={北京市:[`北京市`],天津市:[`天津市`],上海市:[`上海市`],重庆市:[`重庆市`],河北省:[`石家庄市`,`唐山市`,`秦皇岛市`,`邯郸市`,`邢台市`,`保定市`,`张家口市`,`承德市`,`沧州市`,`廊坊市`,`衡水市`],山西省:[`太原市`,`大同市`,`阳泉市`,`长治市`,`晋城市`,`朔州市`,`晋中市`,`运城市`,`忻州市`,`临汾市`,`吕梁市`],内蒙古自治区:[`呼和浩特市`,`包头市`,`乌海市`,`赤峰市`,`通辽市`,`鄂尔多斯市`,`呼伦贝尔市`,`巴彦淖尔市`,`乌兰察布市`,`兴安盟`,`锡林郭勒盟`,`阿拉善盟`],辽宁省:[`沈阳市`,`大连市`,`鞍山市`,`抚顺市`,`本溪市`,`丹东市`,`锦州市`,`营口市`,`阜新市`,`辽阳市`,`盘锦市`,`铁岭市`,`朝阳市`,`葫芦岛市`],吉林省:[`长春市`,`吉林市`,`四平市`,`辽源市`,`通化市`,`白山市`,`松原市`,`白城市`,`延边朝鲜族自治州`],黑龙江省:[`哈尔滨市`,`齐齐哈尔市`,`鸡西市`,`鹤岗市`,`双鸭山市`,`大庆市`,`伊春市`,`佳木斯市`,`七台河市`,`牡丹江市`,`黑河市`,`绥化市`,`大兴安岭地区`],江苏省:[`南京市`,`无锡市`,`徐州市`,`常州市`,`苏州市`,`南通市`,`连云港市`,`淮安市`,`盐城市`,`扬州市`,`镇江市`,`泰州市`,`宿迁市`],浙江省:[`杭州市`,`宁波市`,`温州市`,`嘉兴市`,`湖州市`,`绍兴市`,`金华市`,`衢州市`,`舟山市`,`台州市`,`丽水市`],安徽省:[`合肥市`,`芜湖市`,`蚌埠市`,`淮南市`,`马鞍山市`,`淮北市`,`铜陵市`,`安庆市`,`黄山市`,`滁州市`,`阜阳市`,`宿州市`,`六安市`,`亳州市`,`池州市`,`宣城市`],福建省:[`福州市`,`厦门市`,`莆田市`,`三明市`,`泉州市`,`漳州市`,`南平市`,`龙岩市`,`宁德市`],江西省:[`南昌市`,`景德镇市`,`萍乡市`,`九江市`,`新余市`,`鹰潭市`,`赣州市`,`吉安市`,`宜春市`,`抚州市`,`上饶市`],山东省:[`济南市`,`青岛市`,`淄博市`,`枣庄市`,`东营市`,`烟台市`,`潍坊市`,`济宁市`,`泰安市`,`威海市`,`日照市`,`临沂市`,`德州市`,`聊城市`,`滨州市`,`菏泽市`],河南省:[`郑州市`,`开封市`,`洛阳市`,`平顶山市`,`安阳市`,`鹤壁市`,`新乡市`,`焦作市`,`濮阳市`,`许昌市`,`漯河市`,`三门峡市`,`南阳市`,`商丘市`,`信阳市`,`周口市`,`驻马店市`,`济源市`],湖北省:[`武汉市`,`黄石市`,`十堰市`,`宜昌市`,`襄阳市`,`鄂州市`,`荆门市`,`孝感市`,`荆州市`,`黄冈市`,`咸宁市`,`随州市`,`恩施土家族苗族自治州`,`仙桃市`,`潜江市`,`天门市`,`神农架林区`],湖南省:[`长沙市`,`株洲市`,`湘潭市`,`衡阳市`,`邵阳市`,`岳阳市`,`常德市`,`张家界市`,`益阳市`,`郴州市`,`永州市`,`怀化市`,`娄底市`,`湘西土家族苗族自治州`],广东省:[`广州市`,`韶关市`,`深圳市`,`珠海市`,`汕头市`,`佛山市`,`江门市`,`湛江市`,`茂名市`,`肇庆市`,`惠州市`,`梅州市`,`汕尾市`,`河源市`,`阳江市`,`清远市`,`东莞市`,`中山市`,`潮州市`,`揭阳市`,`云浮市`],广西壮族自治区:[`南宁市`,`柳州市`,`桂林市`,`梧州市`,`北海市`,`防城港市`,`钦州市`,`贵港市`,`玉林市`,`百色市`,`贺州市`,`河池市`,`来宾市`,`崇左市`],海南省:[`海口市`,`三亚市`,`三沙市`,`儋州市`,`五指山市`,`琼海市`,`文昌市`,`万宁市`,`东方市`,`定安县`,`屯昌县`,`澄迈县`,`临高县`,`白沙黎族自治县`,`昌江黎族自治县`,`乐东黎族自治县`,`陵水黎族自治县`,`保亭黎族苗族自治县`,`琼中黎族苗族自治县`],四川省:[`成都市`,`自贡市`,`攀枝花市`,`泸州市`,`德阳市`,`绵阳市`,`广元市`,`遂宁市`,`内江市`,`乐山市`,`南充市`,`眉山市`,`宜宾市`,`广安市`,`达州市`,`雅安市`,`巴中市`,`资阳市`,`阿坝藏族羌族自治州`,`甘孜藏族自治州`,`凉山彝族自治州`],贵州省:[`贵阳市`,`六盘水市`,`遵义市`,`安顺市`,`毕节市`,`铜仁市`,`黔西南布依族苗族自治州`,`黔东南苗族侗族自治州`,`黔南布依族苗族自治州`],云南省:[`昆明市`,`曲靖市`,`玉溪市`,`保山市`,`昭通市`,`丽江市`,`普洱市`,`临沧市`,`楚雄彝族自治州`,`红河哈尼族彝族自治州`,`文山壮族苗族自治州`,`西双版纳傣族自治州`,`大理白族自治州`,`德宏傣族景颇族自治州`,`怒江傈僳族自治州`,`迪庆藏族自治州`],西藏自治区:[`拉萨市`,`日喀则市`,`昌都市`,`林芝市`,`山南市`,`那曲市`,`阿里地区`],陕西省:[`西安市`,`铜川市`,`宝鸡市`,`咸阳市`,`渭南市`,`延安市`,`汉中市`,`榆林市`,`安康市`,`商洛市`],甘肃省:[`兰州市`,`嘉峪关市`,`金昌市`,`白银市`,`天水市`,`武威市`,`张掖市`,`平凉市`,`酒泉市`,`庆阳市`,`定西市`,`陇南市`,`临夏回族自治州`,`甘南藏族自治州`],青海省:[`西宁市`,`海东市`,`海北藏族自治州`,`黄南藏族自治州`,`海南藏族自治州`,`果洛藏族自治州`,`玉树藏族自治州`,`海西蒙古族藏族自治州`],宁夏回族自治区:[`银川市`,`石嘴山市`,`吴忠市`,`固原市`,`中卫市`],新疆维吾尔自治区:[`乌鲁木齐市`,`克拉玛依市`,`吐鲁番市`,`哈密市`,`昌吉回族自治州`,`博尔塔拉蒙古自治州`,`巴音郭楞蒙古自治州`,`阿克苏地区`,`克孜勒苏柯尔克孜自治州`,`喀什地区`,`和田地区`,`伊犁哈萨克自治州`,`塔城地区`,`阿勒泰地区`,`石河子市`,`阿拉尔市`,`图木舒克市`,`五家渠市`,`北屯市`,`铁门关市`,`双河市`,`可克达拉市`,`昆玉市`,`胡杨河市`,`新星市`],香港特别行政区:[`香港`],澳门特别行政区:[`澳门`],台湾省:[`台北市`,`新北市`,`桃园市`,`台中市`,`台南市`,`高雄市`,`新竹市`,`嘉义市`]},ve=`北京市.天津市.上海市.重庆市.河北省.山西省.内蒙古自治区.辽宁省.吉林省.黑龙江省.江苏省.浙江省.安徽省.福建省.江西省.山东省.河南省.湖北省.湖南省.广东省.广西壮族自治区.海南省.四川省.贵州省.云南省.西藏自治区.陕西省.甘肃省.青海省.宁夏回族自治区.新疆维吾尔自治区.香港特别行政区.澳门特别行政区.台湾省`.split(`.`),v=[{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:`company_name`,type:`text`,label:`企业名称`,required:!1,placeholder:`如已注册企业,请填写`},{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 y(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 ye(e){if(!Array.isArray(e)||e.length===0)return v.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;if(i===`select`&&Array.isArray(e.options)&&(d=y(e.options)),r===`track`&&(d=[]),i===`select`&&r!==`track`&&(!d||d.length===0))if(r===`location_province`)d=ve.map(e=>({label:e,value:e}));else{let e=v.find(e=>e.key===r);e?.options?.length&&(d=e.options.map(e=>({...e})))}t.push({key:r,type:i,label:a,required:o,placeholder:c,help:u,options:d})}return t.length?t:v.map(e=>({...e}))}var be={class:`apply-form-page`},xe={class:`form-page-header flex-shrink-0 mb-3`},Se={class:`mb-0 form-page-title`},Ce={key:0,class:`text-secondary prototype-subtitle mb-0 mt-2`},we={key:1,class:`text-danger small mb-0 mt-2`},Te={key:2,class:`text-warning small mb-0 mt-2`},Ee={key:0,class:`apply-form-scroll`},De={class:`card mb-0`},Oe={class:`card-body`},ke={key:0,class:`col-md-4`},Ae={class:`form-label`,id:`trackFieldLabel`},je={key:0,class:`text-danger`},Me={class:`track-custom-select w-100`},Ne=[`required`,`disabled`],Pe=[`value`],Fe={class:`dropdown w-100`},Ie=[`disabled`],Le={class:`track-toggle-label text-truncate`},Re={key:0,class:`track-custom-note`},ze={class:`dropdown-menu w-100 border shadow-sm rounded-2 py-0 my-1 track-custom-menu`},Be=[`onClick`],Ve={class:`track-pick-inline`},He={class:`text-body`},Ue={key:0,class:`track-custom-note`},We={key:0,class:`text-secondary prototype-subtitle d-block`},Ge={key:1,class:`col-12`},Ke={class:`form-label`},qe={key:0,class:`text-danger`},Je=[`disabled`],Ye={key:0,class:`text-secondary prototype-subtitle d-block mt-1`},Xe={key:1,class:`supporting-file-list mt-2`,"aria-live":`polite`},Ze={class:`supporting-file-meta`},Qe=[`title`],$e={class:`supporting-file-size`},et={class:`supporting-file-actions`},tt=[`href`],nt=[`disabled`,`onClick`],rt={class:`text-secondary prototype-subtitle d-block`},it={key:2,class:`invalid-feedback d-block`},at={key:2,class:`col-12`},ot={class:`form-label`},st=[`disabled`],ct={key:0,class:`text-secondary prototype-subtitle d-block mt-1`},lt={key:1,class:`supporting-file-list mt-2`,"aria-live":`polite`},ut={class:`supporting-file-meta`},dt=[`title`],ft={class:`supporting-file-size`},pt={class:`supporting-file-actions`},mt=[`href`],ht=[`disabled`,`onClick`],gt={class:`text-secondary prototype-subtitle d-block`},_t={key:2,class:`invalid-feedback d-block`},vt={class:`form-label`},yt={key:0,class:`text-danger`},bt=[`onUpdate:modelValue`,`required`,`disabled`],xt=[`value`],St={class:`invalid-feedback`},Ct={key:0,class:`text-secondary prototype-subtitle d-block`},wt={class:`form-label`},Tt={key:0,class:`text-danger`},Et=[`required`,`disabled`],Dt=[`value`],Ot={class:`invalid-feedback`},kt={key:0,class:`text-secondary prototype-subtitle d-block`},At={class:`form-label`},jt={key:0,class:`text-danger`},Mt={class:`d-flex flex-wrap align-items-center gap-2 mb-1`},Nt=[`disabled`],Pt={key:0,class:`badge rounded-pill px-3 py-2 promise-signed-badge`},Ft={key:0,class:`text-secondary prototype-subtitle d-block mt-1`},It={class:`form-check`},Lt=[`id`,`onUpdate:modelValue`,`required`,`disabled`],Rt=[`for`],zt={key:0,class:`text-danger`},Bt={key:0,class:`text-secondary prototype-subtitle d-block mt-1`},Vt={class:`form-label`},Ht={key:0,class:`text-danger`},Ut=[`onUpdate:modelValue`,`required`,`disabled`,`placeholder`],Wt={key:0,class:`d-flex justify-content-end mt-1`},Gt={class:`text-secondary prototype-subtitle intro-char-count`},Kt={class:`form-label`},qt={key:0,class:`text-danger`},Jt=[`onUpdate:modelValue`,`type`,`required`,`disabled`,`placeholder`,`pattern`,`autocomplete`],Yt={class:`invalid-feedback`},Xt={key:0,class:`text-secondary prototype-subtitle d-block`},Zt={class:`col-12 apply-form-actions mt-3 pt-3 border-top d-flex gap-2 flex-wrap`},Qt=[`disabled`],$t=[`disabled`],en={class:`modal-dialog modal-dialog-centered promise-sign-modal`},tn={class:`modal-content promise-sign-sheet`},nn={class:`modal-body pt-2`},rn={class:`promise-doc-paper`},an={class:`promise-doc-heading text-center`},on={class:`promise-doc-scroll`},sn=[`innerHTML`],cn={class:`promise-doc-signblock`},ln={class:`promise-doc-signrow`},un={class:`promise-sig-wrap`},dn={class:`promise-sig-box`},fn={class:`promise-doc-daterow`},pn={class:`promise-doc-dateline`},mn={class:`modal-dialog modal-dialog-centered notice-modal-dialog`},hn={class:`modal-body notice-modal-body`},gn={class:`notice-title`},_n={class:`notice-text text-break`,style:{"white-space":`pre-wrap`}},vn=20*1024*1024,yn=`^1[3-9]\\d{9}$`,bn=`

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

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

`,xn=2097152,Sn=fe(ne({__name:`ApplyFormView`,setup(i){let ne=ue,fe=de(),v=le(),y=u(()=>String(v.params.slug??``).trim()),Sn=[`pdf`,`ppt`,`pptx`,`doc`,`docx`,`wps`,`rar`,`zip`];function b(e){let t=e.value;return t==null?null:Array.isArray(t)?t[0]??null:t}function x(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 S(){return se()}function C(){let e=y.value;return e?`?competition_slug=${encodeURIComponent(e)}`:``}function Cn(e){let t={Authorization:`Bearer ${localStorage.getItem(`cxxfds_token`)||``}`,Accept:`application/json`};return e&&(t[`Content-Type`]=`application/json`),t}function w(){localStorage.removeItem(oe);let e=y.value;e?fe.push({name:`participant-login`,params:{slug:e},query:{redirect:v.fullPath}}):fe.push(`/c`)}let T=c(ye([])),E=c([]),wn=c(!1),Tn=c(``),En=c(``),Dn=u(()=>En.value.trim()||bn),D=c(he()),O=c(``),k=te({});function On(e){for(let t of e)t.type!==`file`&&(t.key in k||(k[t.key]=``));e.some(e=>e.key===`commitment_accepted`)&&!(`promise_signature`in k)&&(k.promise_signature=``)}let kn=u(()=>`jscc_signup_form_draft_v2_${y.value||`x`}`),An=c(`draft`),jn=c(!0),Mn=c(!1),Nn=c(null),Pn=c(null),Fn=u(()=>{let e=k.track,t=E.value.find(t=>t.track_code===e);return t?t.title:e||`请选择`}),In=u(()=>k.track?`text-body`:`text-secondary`),Ln=u(()=>{let e=k.track;return(E.value.find(t=>t.track_code===e)?.description??``).trim()});function Rn(e){return(e??``).trim()}function zn(e){k.track=e,Mn.value=!1;let t=b(Pn);t&&ne.getInstance(t)?.hide()}let A=u(()=>k.location_country===`中国`),Bn=u(()=>k.location_country===`海外`),Vn=u(()=>ve.map(e=>({label:e,value:e}))),Hn=u(()=>{let e=k.location_province;return e?(_e[e]||[]).map(e=>({label:e,value:e})):[]});function j(){Bn.value?(k.location_province=``,k.location_city=``):A.value||(k.location_province=``,k.location_city=``,k.oversea_country=``)}l(()=>k.location_country,()=>{j()}),l(()=>k.location_province,(e,t)=>{A.value&&e!==t&&(t==null||String(t).trim()===``||(k.location_city=``))});let M=c([]),N=c([]),P=c(``),F=c(``),Un=c(``),I=c(``),L=c(!1),R=u(()=>!jn.value),Wn=c(null),z=c(null),Gn=c(null),Kn=u(()=>(k.intro||``).length),qn=u(()=>pe(D.value,Tn.value)),Jn=u(()=>{let e=D.value.apply?.headerSubtitle;return me(e)?String(e).trim():``});function Yn(e){let t=String(k[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 B(e){return e.type===`textarea`||e.type===`file`||e.type===`checkbox`?`col-12`:`col-md-4`}function Xn(e){return e.type===`file`?!0:e.key===`location_province`||e.key===`location_city`?A.value:e.key===`oversea_country`?Bn.value:!0}function V(e){return e.key===`location_province`||e.key===`location_city`?A.value:e.key===`oversea_country`?Bn.value:e.required}let Zn=u(()=>T.value.filter(e=>Xn(e)));function Qn(e){return e.key===`track`?E.value.map(e=>({label:e.title,value:e.track_code})):e.key===`location_province`?Vn.value:e.key===`location_city`&&A.value?Hn.value:e.options??[]}function $n(e){return e.key===`location_city`&&A.value}function er(e){return e>=1024*1024?`${(e/1024/1024).toFixed(1).replace(/\.0$/,``)}M`:e>=1024?`${Math.ceil(e/1024)}K`:`${e}B`}function H(e){return e.file?e.file.name:e.original_name||``}function tr(e){let t=e.message||``,n=e.errors;return n&&Object.keys(n).length?`${t}\n${JSON.stringify(n)}`:t||`操作失败`}let nr=c(null),rr=c(`提示`),ir=c(``),ar=c(!1);function U(e,t=`提示`,n=`warning`){rr.value=t,ir.value=e,ar.value=n===`success`,r(()=>{let e=nr.value;e&&ce.getOrCreateInstance(e).show()})}let W=c(null),G=c(null),or=c(``),K=c(!0),q=null,J=520,Y=140,sr=!1,X=!1,cr=null,Z=null;function lr(){cr?.abort(),cr=null}let ur=u(()=>k.commitment_accepted===`1`&&String(k.promise_signature??``).trim()!==``),dr=u(()=>{let e=Tn.value.trim();return e?`${e} 赛事承诺书`:`赛事承诺书`});function fr(e){return`${e.getFullYear()}年${e.getMonth()+1}月${e.getDate()}日`}function pr(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 mr(){let e=G.value;if(!e)return;let t=e.closest(`.promise-sig-wrap`),n=window.devicePixelRatio||1,r=window.getComputedStyle(e);J=Math.max(280,Math.floor(t?.clientWidth||520)),Y=Math.max(76,Math.floor(parseFloat(r.height)||110)),e.style.width=`${J}px`,e.style.height=`${Y}px`,e.width=Math.floor(J*n),e.height=Math.floor(Y*n),q=e.getContext(`2d`),q&&(q.setTransform(1,0,0,1,0,0),q.scale(n,n),q.fillStyle=`#ffffff`,q.fillRect(0,0,J,Y),q.strokeStyle=`#111111`,q.lineWidth=2,q.lineCap=`round`,q.lineJoin=`round`,X=!1,K.value=!0)}function hr(){let e=String(k.promise_signature??``).trim();if(!e||!q)return;let t=new Image;t.onload=()=>{q&&(q.drawImage(t,0,0,J,Y),X=!0,K.value=!1)},t.src=e}function gr(){let e=G.value;if(!e||!q)return;lr(),cr=new AbortController;let{signal:t}=cr,n=t=>{if(`touches`in t&&t.preventDefault(),!q)return;sr=!0;let n=pr(t,e);q.beginPath(),q.moveTo(n.x,n.y)},r=t=>{if(!sr||!q)return;`touches`in t&&t.preventDefault();let n=pr(t,e);q.lineTo(n.x,n.y),q.stroke(),X=!0,K.value=!1},i=()=>{sr=!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 _r(){or.value=fr(new Date);let e=t=>{if(!G.value){t<40&&requestAnimationFrame(()=>e(t+1));return}mr(),gr(),String(k.promise_signature??``).trim()&&k.commitment_accepted===`1`&&hr()};r(()=>{requestAnimationFrame(()=>e(0))})}function vr(e){Z?.();let t=()=>{_r()},n=()=>{lr()};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}}l(W,e=>{Z?.(),e&&vr(e)},{flush:`post`});function yr(){if(R.value)return;let e=W.value;e&&ce.getOrCreateInstance(e).show()}function br(){mr(),gr()}function xr(){let e=G.value;if(!X||!e){U(`请先在签名区域内手写签名后再确认。`,`请确认`,`warning`);return}let t=e.toDataURL(`image/png`);if(t.length>xn){U(`签名数据过大,请清除后重新签名或联系管理员。`,`提示`,`warning`);return}k.promise_signature=t,k.commitment_accepted=`1`;let n=W.value;n&&ce.getInstance(n)?.hide()}function Sr(){let e={};for(let t of T.value)if(t.type!==`file`){if(t.type===`checkbox`){e[t.key]=k[t.key]===`1`;continue}e[t.key]=k[t.key]??``}return T.value.some(e=>e.key===`commitment_accepted`)&&(e.promise_signature=k.promise_signature??``),e}function Cr(e,t,n){let r=e.filter(e=>e.file),i=e.filter(e=>e.fromServer&&!e.file);if(!r.length&&!i.length)return{ok:n,feedback:n?``:t};let a=r.map(e=>e.file).find(e=>{let t=(e.name.split(`.`).pop()||``).toLowerCase();return!Sn.includes(t)});if(a)return{ok:!1,feedback:`“${a.name}”格式不支持,请上传 PDF/PPT/PPTX/DOC/DOCX/WPS/RAR/ZIP`};let o=r.map(e=>e.file).find(e=>e.size>vn);return o?{ok:!1,feedback:`“${o.name}”大小不能超过20M`}:{ok:!0,feedback:``}}function wr(){return T.value.some(e=>e.key===`plan`&&e.type===`file`)}function Tr(){return T.value.some(e=>e.key===`supporting`&&e.type===`file`)}function Q(){if(!wr())return b(z)?.setCustomValidity(``),!0;let e=Cr(M.value,`请上传商业计划书`,!1);return Un.value=e.feedback,b(z)?.setCustomValidity(e.ok?``:`missing`),e.ok}function $(){if(!Tr())return b(Gn)?.setCustomValidity(``),!0;let e=Cr(N.value,`文件格式或大小不符合要求`,!0);return I.value=e.feedback,b(Gn)?.setCustomValidity(e.ok?``:`bad`),e.ok}function Er(){L.value=!0,Q(),$();let e=T.value.find(e=>e.key===`track`);if(e&&Xn(e)){Mn.value=!k.track;let e=b(Nn);e&&e.setCustomValidity(k.track?``:`请选择主题赛道`)}else Mn.value=!1,b(Nn)?.setCustomValidity(``);return!(Wn.value?.checkValidity()??!1)||e&&V(e)&&!k.track||!Q()||!$()?!1:T.value.find(e=>e.key===`commitment_accepted`)&&(k.commitment_accepted!==`1`||!String(k.promise_signature??``).trim())?(U(`请先阅读并完成参赛承诺书的手写签署。`,`提示`,`warning`),!1):!0}async function Dr(e){let t=localStorage.getItem(oe);if(!t)return;let n=(e===`plan`?M.value:N.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(`${S()}/api/applications/current/files${C()}`,{method:`POST`,headers:{Authorization:`Bearer ${t}`,Accept:`application/json`},body:n}),a=await i.json().catch(()=>({}));if(i.status===401){w();return}if(!i.ok){U(tr(a),`提示`,`warning`);return}let o=r.previewUrl;r.id=a.id,r.fromServer=!0,r.original_name=a.original_name,r.size=a.size,r.url=a.url,r.previewUrl=a.url,o&&String(o).startsWith(`blob:`)&&URL.revokeObjectURL(o),delete r.file}U(``,`上传成功`,`success`),e===`plan`?Q():$()}}async function Or(e,t){let n=t===`plan`?[...M.value]:[...N.value],r=n.find(t=>String(t.id)===String(e));if(r){if(r.fromServer&&typeof r.id==`number`){if(!localStorage.getItem(`cxxfds_token`)){w();return}let e=await fetch(`${S()}/api/applications/current/files/${r.id}${C()}`,{method:`DELETE`,headers:Cn(!1)});if(e.status===401){w();return}if(!e.ok){U(`删除失败`,`提示`,`warning`);return}}r.previewUrl&&String(r.previewUrl).startsWith(`blob:`)&&URL.revokeObjectURL(r.previewUrl),n=n.filter(t=>String(t.id)!==String(e)),t===`plan`?M.value=n:N.value=n,L.value=!0,t===`plan`?Q():$()}}function kr(e,t){if(!e?.length)return;let n=t===`plan`?M.value:N.value;if(Array.from(e).forEach(e=>{n.push({id:`tmp-${Date.now()}-${Math.random().toString(16).slice(2)}`,file:e,previewUrl:URL.createObjectURL(e),fromServer:!1})}),t===`plan`){M.value=[...n],P.value=``;let e=b(z);e&&(e.value=``),L.value=!0,Q()}else{N.value=[...n],F.value=``;let e=b(Gn);e&&(e.value=``),L.value=!0,$()}Dr(t)}function Ar(){return{formModel:{...k},planFileNames:M.value.map(H).filter(Boolean),supportingFileNames:N.value.map(H).filter(Boolean)}}function jr(){let e=Ar();localStorage.setItem(kn.value,JSON.stringify(e)),e.planFileNames.length?P.value=`已保存商业计划书名称:${e.planFileNames.join(`、`)}`:P.value=``,e.supportingFileNames.length?F.value=`已保存其他佐证材料名称:${e.supportingFileNames.join(`、`)}`:F.value=``}function Mr(){let e=localStorage.getItem(kn.value);if(e)try{let t=JSON.parse(e);if(t.formModel&&typeof t.formModel==`object`)for(let e of Object.keys(t.formModel))k[e]=t.formModel[e]??``;let n=t.planFileNames||[];n.length&&(P.value=`上次保存商业计划书名称:${n.join(`、`)}(浏览器限制,需重新选择后预览或删除)`);let r=t.supportingFileNames;r?.length&&(F.value=`上次保存其他佐证材料名称:${r.join(`、`)}(浏览器限制,需重新选择后预览或删除)`),j()}catch{localStorage.removeItem(kn.value)}}async function Nr(){wn.value=!1;let e=y.value;if(!e){O.value=`缺少赛事地址`;return}O.value=``;try{let t=await fetch(`${S()}/api/v1/public/competitions/by-slug/${encodeURIComponent(e)}`,{headers:{Accept:`application/json`}});if(!t.ok){O.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;Tn.value=String(r.name??``),En.value=typeof r.pledge_content_html==`string`?r.pledge_content_html:``;let i=r.tracks;E.value=Array.isArray(i)?i:[];let a=r.signup_form_schema;if(typeof a==`string`)try{a=JSON.parse(a)}catch{a=[]}T.value=ye(a),On(T.value),D.value=ge(r.branding_json??null);let o=D.value.documentTitle;me(o)&&typeof document<`u`&&(document.title=o.trim()),wn.value=!0}catch{O.value=`网络错误,无法加载赛事`}}function Pr(e){An.value=e.status||`draft`,jn.value=e.participant_may_edit!==!1,k.player_name=e.player_name||``,k.school=e.school||``,k.degree=e.degree||``,k.contact_email=e.contact_email||``,k.contact_mobile=e.contact_mobile||``,k.company_name=e.company_name||``,k.project_name=e.project_name||``,k.track=e.track||``,k.location_country=e.location_country||``,k.location_province=e.location_province||``,k.location_city=e.location_city||``,k.oversea_country=e.oversea_country||``,k.intro=e.intro||``;let t=typeof e.promise_signature==`string`?e.promise_signature:``;k.promise_signature=t,k.commitment_accepted=t.trim()&&e.promise_signed_at?`1`:``,j(),M.value=(e.files||[]).filter(e=>e.kind===`plan`).map(e=>({id:e.id,fromServer:!0,original_name:e.original_name,size:e.size,url:e.url,previewUrl:e.url})),N.value=(e.files||[]).filter(e=>e.kind===`supporting`).map(e=>({id:e.id,fromServer:!0,original_name:e.original_name,size:e.size,url:e.url,previewUrl:e.url})),Q(),$()}async function Fr(){if(!localStorage.getItem(`cxxfds_token`))return!1;let e=await fetch(`${S()}/api/applications/current${C()}`,{headers:Cn(!1)});return e.status===401?(localStorage.removeItem(oe),w(),!1):e.ok?(Pr(await e.json()),!0):!1}async function Ir(){let e=await fetch(`${S()}/api/applications/current${C()}`,{method:`PUT`,headers:Cn(!0),body:JSON.stringify(Sr())});if(e.status===401)return w(),!1;if(!e.ok)return e.json().catch(()=>({})),U(``,`保存失败`,`warning`),!1;try{Pr(await e.json())}catch{}return!0}async function Lr(){let e=await fetch(`${S()}/api/applications/current/submit${C()}`,{method:`POST`,headers:Cn(!0),body:JSON.stringify(Sr())});return e.status===401?(w(),!1):e.ok?(Pr(await e.json()),!0):(e.json().catch(()=>({})),U(``,`提交失败`,`warning`),!1)}async function Rr(){if(!localStorage.getItem(`cxxfds_token`)){w();return}await Ir()&&(jr(),U(``,`保存成功`,`success`))}async function zr(){if(!localStorage.getItem(`cxxfds_token`)){w();return}Er()&&await Lr()&&U(``,`提交成功`,`success`)}return a(()=>{Z?.(),lr()}),o(()=>{(async()=>{await Nr(),!O.value&&(await Fr()||Mr(),j())})()}),(r,i)=>(h(),g(`div`,be,[_(`div`,xe,[_(`h5`,Se,m(qn.value),1),!O.value&&Jn.value?(h(),g(`p`,Ce,m(Jn.value),1)):t(``,!0),O.value?(h(),g(`p`,we,m(O.value),1)):wn.value&&E.value.length===0&&T.value.some(e=>e.key===`track`)?(h(),g(`p`,Te,` 本场赛事尚未在「赛道管理」中配置可用赛道,提交时可能会失败,请联系管理员。 `)):t(``,!0)]),O.value?t(``,!0):(h(),g(`div`,Ee,[_(`div`,De,[_(`div`,Oe,[_(`form`,{id:`applyForm`,ref_key:`applyFormEl`,ref:Wn,class:e([`row g-3`,{"was-validated":L.value}]),onSubmit:i[5]||=re(()=>{},[`prevent`])},[(h(!0),g(p,null,s(Zn.value,r=>(h(),g(p,{key:r.type===`file`?`f-`+r.key:r.key},[r.key===`track`?(h(),g(`div`,ke,[_(`label`,Ae,[n(m(r.label)+` `,1),V(r)?(h(),g(`span`,je,`*`)):t(``,!0)]),_(`div`,Me,[f(_(`select`,{id:`track`,ref_for:!0,ref_key:`trackHiddenSelect`,ref:Nn,"onUpdate:modelValue":i[0]||=e=>k.track=e,class:`visually-hidden`,required:V(r),tabindex:`-1`,"aria-hidden":`true`,disabled:R.value},[i[6]||=_(`option`,{value:``},`请选择`,-1),(h(!0),g(p,null,s(E.value,e=>(h(),g(`option`,{key:e.track_code,value:e.track_code},m(e.title),9,Pe))),128))],8,Ne),[[ae,k.track]]),_(`div`,Fe,[_(`button`,{ref_for:!0,ref_key:`trackDropdownBtn`,ref:Pn,type:`button`,class:e([`dropdown-toggle form-select track-custom-toggle editable w-100 text-start`,{"is-invalid":Mn.value&&L.value}]),"aria-labelledby":`trackFieldLabel`,"aria-expanded":`false`,"data-bs-toggle":`dropdown`,"data-bs-display":`static`,"data-bs-auto-close":`true`,disabled:R.value},[_(`span`,Le,[_(`span`,{class:e(In.value)},m(Fn.value),3),Ln.value?(h(),g(`span`,Re,m(Ln.value),1)):t(``,!0)])],10,Ie),_(`ul`,ze,[_(`li`,null,[_(`button`,{type:`button`,class:`dropdown-item track-pick border-0 w-100 text-start rounded-0`,onClick:i[1]||=e=>zn(``)},[...i[7]||=[_(`span`,{class:`text-secondary`},`请选择`,-1)]])]),(h(!0),g(p,null,s(E.value,e=>(h(),g(`li`,{key:e.track_code},[_(`button`,{type:`button`,class:`dropdown-item track-pick border-0 w-100 text-start rounded-0`,onClick:t=>zn(e.track_code)},[_(`span`,Ve,[_(`span`,He,m(e.title),1),Rn(e.description)?(h(),g(`span`,Ue,m(Rn(e.description)),1)):t(``,!0)])],8,Be)]))),128))]),i[8]||=_(`div`,{class:`invalid-feedback`},`请选择主题赛道`,-1)])]),x(r.help)?(h(),g(`small`,We,m(x(r.help)),1)):t(``,!0)])):r.type===`file`&&r.key===`plan`?(h(),g(`div`,Ge,[_(`label`,Ke,[n(m(r.label)+` `,1),r.required?(h(),g(`span`,qe,`*`)):t(``,!0)]),_(`input`,{ref_for:!0,ref_key:`planFileInput`,ref:z,type:`file`,class:e([`form-control editable`,{"is-invalid":L.value&&!!Un.value}]),accept:`.pdf,.ppt,.pptx,.doc,.docx,.wps,.rar,.zip`,multiple:``,disabled:R.value,onChange:i[2]||=e=>kr(e.target.files,`plan`)},null,42,Je),x(r.help)?(h(),g(`small`,Ye,m(x(r.help)),1)):t(``,!0),M.value.length?(h(),g(`div`,Xe,[(h(!0),g(p,null,s(M.value,e=>(h(),g(`div`,{key:String(e.id),class:`supporting-file-item`},[_(`div`,Ze,[_(`span`,{class:`supporting-file-name`,title:H(e)},m(H(e)),9,Qe),_(`span`,$e,m(er(e.file?e.file.size:e.size||0)),1)]),_(`div`,et,[_(`a`,{class:`btn btn-sm btn-outline-primary`,href:e.previewUrl||e.url||`#`,target:`_blank`,rel:`noopener`},`预览`,8,tt),_(`button`,{type:`button`,class:`btn btn-sm btn-outline-secondary`,disabled:R.value,onClick:t=>Or(e.id,`plan`)},` 删除 `,8,nt)])]))),128))])):t(``,!0),_(`small`,rt,m(P.value),1),L.value&&Un.value?(h(),g(`div`,it,m(Un.value),1)):t(``,!0)])):r.type===`file`&&r.key===`supporting`?(h(),g(`div`,at,[_(`label`,ot,m(r.label),1),_(`input`,{ref_for:!0,ref_key:`supportingFileInput`,ref:Gn,type:`file`,class:e([`form-control editable`,{"is-invalid":L.value&&!!I.value}]),accept:`.pdf,.ppt,.pptx,.doc,.docx,.wps,.rar,.zip`,multiple:``,disabled:R.value,onChange:i[3]||=e=>kr(e.target.files,`supporting`)},null,42,st),x(r.help)?(h(),g(`small`,ct,m(x(r.help)),1)):t(``,!0),N.value.length?(h(),g(`div`,lt,[(h(!0),g(p,null,s(N.value,e=>(h(),g(`div`,{key:String(e.id),class:`supporting-file-item`},[_(`div`,ut,[_(`span`,{class:`supporting-file-name`,title:H(e)},m(H(e)),9,dt),_(`span`,ft,m(er(e.file?e.file.size:e.size||0)),1)]),_(`div`,pt,[_(`a`,{class:`btn btn-sm btn-outline-primary`,href:e.previewUrl||e.url||`#`,target:`_blank`,rel:`noopener`},`预览`,8,mt),_(`button`,{type:`button`,class:`btn btn-sm btn-outline-secondary`,disabled:R.value,onClick:t=>Or(e.id,`supporting`)},` 删除 `,8,ht)])]))),128))])):t(``,!0),_(`small`,gt,m(F.value),1),L.value&&I.value?(h(),g(`div`,_t,m(I.value),1)):t(``,!0)])):r.type===`select`&&!$n(r)?(h(),g(`div`,{key:3,class:e(B(r))},[_(`label`,vt,[n(m(r.label)+` `,1),V(r)?(h(),g(`span`,yt,`*`)):t(``,!0)]),f(_(`select`,{"onUpdate:modelValue":e=>k[r.key]=e,class:`form-select editable`,required:V(r),disabled:R.value},[i[9]||=_(`option`,{value:``},`请选择`,-1),(h(!0),g(p,null,s(Qn(r),e=>(h(),g(`option`,{key:`${r.key}-${e.value}`,value:e.value},m(e.label),9,xt))),128))],8,bt),[[ae,k[r.key]]]),_(`div`,St,`请选择`+m(r.label),1),x(r.help)?(h(),g(`small`,Ct,m(x(r.help)),1)):t(``,!0)],2)):$n(r)?(h(),g(`div`,{key:4,class:e(B(r))},[_(`label`,wt,[n(m(r.label)+` `,1),V(r)?(h(),g(`span`,Tt,`*`)):t(``,!0)]),f(_(`select`,{"onUpdate:modelValue":i[4]||=e=>k.location_city=e,class:`form-select editable`,required:V(r),disabled:R.value||!A.value},[i[10]||=_(`option`,{value:``},`请选择`,-1),(h(!0),g(p,null,s(Qn(r),e=>(h(),g(`option`,{key:e.value,value:e.value},m(e.label),9,Dt))),128))],8,Et),[[ae,k.location_city]]),_(`div`,Ot,`请选择`+m(r.label),1),x(r.help)?(h(),g(`small`,kt,m(x(r.help)),1)):t(``,!0)],2)):r.type===`checkbox`&&r.key===`commitment_accepted`?(h(),g(`div`,{key:5,class:e(B(r))},[_(`label`,At,[n(m(r.label)+` `,1),V(r)?(h(),g(`span`,jt,`*`)):t(``,!0)]),i[11]||=_(`p`,{class:`small text-secondary mb-2`},` 请点击按钮打开承诺书全文,阅读后在文末手写签名并点击「确认签署」。 `,-1),_(`div`,Mt,[_(`button`,{type:`button`,class:`btn btn-outline-primary btn-sm editable`,disabled:R.value,onClick:yr},m(ur.value?`重新查看承诺书`:`查看并签署参赛承诺书`),9,Nt),ur.value?(h(),g(`span`,Pt,`已完成签署`)):t(``,!0)]),x(r.help)?(h(),g(`small`,Ft,m(x(r.help)),1)):t(``,!0)],2)):r.type===`checkbox`?(h(),g(`div`,{key:6,class:e(B(r))},[_(`div`,It,[f(_(`input`,{id:`signup-field-`+r.key,"onUpdate:modelValue":e=>k[r.key]=e,type:`checkbox`,class:`form-check-input editable`,"true-value":`1`,"false-value":``,required:V(r),disabled:R.value},null,8,Lt),[[ie,k[r.key]]]),_(`label`,{class:`form-check-label`,for:`signup-field-`+r.key},[n(m(r.label),1),V(r)?(h(),g(`span`,zt,` *`)):t(``,!0)],8,Rt),i[12]||=_(`div`,{class:`invalid-feedback`},`请勾选此项以继续`,-1)]),x(r.help)?(h(),g(`small`,Bt,m(x(r.help)),1)):t(``,!0)],2)):r.type===`textarea`?(h(),g(`div`,{key:7,class:e(B(r))},[_(`label`,Vt,[n(m(r.label)+` `,1),V(r)?(h(),g(`span`,Ht,`*`)):t(``,!0)]),f(_(`textarea`,{"onUpdate:modelValue":e=>k[r.key]=e,class:`form-control editable`,rows:`4`,required:V(r),disabled:R.value,placeholder:(r.placeholder??``).trim()},null,8,Ut),[[ee,k[r.key]]]),r.key===`intro`?(h(),g(`div`,Wt,[_(`small`,Gt,m(Kn.value)+` 字`,1)])):t(``,!0),x(r.help)?(h(),g(`small`,{key:1,class:e([`text-secondary prototype-subtitle d-block`,{"mt-1":r.key===`intro`}])},m(x(r.help)),3)):t(``,!0)],2)):(h(),g(`div`,{key:8,class:e(B(r))},[_(`label`,Kt,[n(m(r.label)+` `,1),V(r)?(h(),g(`span`,qt,`*`)):t(``,!0)]),f(_(`input`,{"onUpdate:modelValue":e=>k[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:V(r),disabled:R.value,placeholder:(r.placeholder??``).trim(),pattern:r.key===`contact_mobile`?yn:void 0,autocomplete:r.key===`company_name`?`organization`:void 0},null,10,Jt),[[d,k[r.key]]]),_(`div`,Yt,m(Yn(r)),1),x(r.help)?(h(),g(`small`,Xt,m(x(r.help)),1)):t(``,!0)],2))],64))),128)),_(`div`,Zt,[_(`button`,{type:`button`,class:`btn btn-outline-primary`,disabled:R.value,onClick:Rr},`保存`,8,Qt),_(`button`,{type:`button`,class:`btn btn-success`,disabled:R.value,onClick:zr},`提交报名`,8,$t)])],34)])])])),!O.value&&T.value.some(e=>e.key===`commitment_accepted`)?(h(),g(`div`,{key:1,id:`promiseSignModal`,ref_key:`promiseSignModalRef`,ref:W,class:`modal fade`,tabindex:`-1`,"aria-hidden":`true`,"data-bs-backdrop":`static`},[_(`div`,en,[_(`div`,tn,[_(`div`,nn,[_(`div`,rn,[_(`h1`,an,m(dr.value),1),_(`div`,on,[_(`div`,{class:`promise-doc-body promise-doc-body--rich`,innerHTML:Dn.value},null,8,sn)]),_(`div`,cn,[_(`div`,ln,[i[13]||=_(`span`,{class:`promise-doc-signlabel`},`参赛人签名:`,-1),_(`div`,un,[_(`div`,dn,[_(`canvas`,{ref_key:`promiseCanvasRef`,ref:G,class:`promise-sig-canvas`,width:`520`,height:`140`,"aria-label":`手写签名区域`},null,512),_(`span`,{class:e([`promise-sig-hint`,{"d-none":!K.value}])},`请在框内手写签名`,2)]),_(`div`,{class:`promise-sig-tools`},[_(`button`,{type:`button`,class:`btn btn-sm btn-outline-secondary`,onClick:br},` 清除签名 `)])])]),_(`div`,fn,[_(`span`,pn,[i[14]||=n(`日期:`,-1),_(`strong`,null,m(or.value),1)])])]),_(`div`,{class:`promise-sign-actions`},[i[15]||=_(`button`,{type:`button`,class:`btn promise-close-btn`,"data-bs-dismiss":`modal`},`关闭`,-1),_(`button`,{type:`button`,class:`btn btn-primary`,onClick:xr},`确认签署`)])])])])])],512)):t(``,!0),_(`div`,{ref_key:`noticeModalEl`,ref:nr,id:`applyNoticeModal`,class:`modal fade`,tabindex:`-1`,"aria-hidden":`true`},[_(`div`,mn,[_(`div`,{class:e([`modal-content notice-modal-content`,ar.value?`notice-success`:`notice-warning`])},[i[16]||=_(`div`,{class:`modal-header border-0 pb-0`},[_(`button`,{type:`button`,class:`btn-close ms-auto`,"data-bs-dismiss":`modal`,"aria-label":`关闭`})],-1),_(`div`,hn,[_(`h5`,gn,m(rr.value),1),_(`p`,_n,m(ir.value),1)]),i[17]||=_(`div`,{class:`modal-footer notice-modal-footer border-0`},[_(`button`,{type:`button`,class:`btn btn-primary`,"data-bs-dismiss":`modal`},`确定`)],-1)],2)])],512)]))}}),[[`__scopeId`,`data-v-62a7f11e`]]),b=ne({__name:`ApplyView`,setup(e){return(e,t)=>(h(),i(Sn))}});export{b as default}; \ No newline at end of file diff --git a/public/admin/assets/CompetitionFormView-D8jLLcdP.js b/public/admin/assets/CompetitionFormView-BKYnHRcK.js similarity index 99% rename from public/admin/assets/CompetitionFormView-D8jLLcdP.js rename to public/admin/assets/CompetitionFormView-BKYnHRcK.js index 85d0627..a14aa3f 100644 --- a/public/admin/assets/CompetitionFormView-D8jLLcdP.js +++ b/public/admin/assets/CompetitionFormView-BKYnHRcK.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 ae,jt as oe,k as se,kt as N,ln as ce,nn as le,nt as ue,o as de,on as fe,ot as pe,q as me,qt as he,rn as ge,sn as _e,st as P,un as ve,w as ye,x as F,xt as be}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{u as xe}from"./api-CH6mod_b.js";import{C as Se,E as I,O as Ce,T as we,a as Te,c as Ee,h as De,p as Oe,r as ke,w as Ae,y as je}from"./index-CK9_7hK2.js";import{t as Me}from"./_plugin-vue_export-helper-S3RvzygF.js";import{c as Ne,i as Pe,l as Fe,n as Ie,o as Le,r as Re,s as ze,t as Be}from"./competitions-C4QNxYDA.js";import{t as Ve}from"./adminCompetition-CoRnlfMF.js";import{n as He,r as Ue,t as We}from"./competitionBranding-BQASm1w0.js";async function Ge(e,t){if(xe())return De(e,t);let{data:n}=await ke.get(`/competitions/${e}/form-schemas`,{params:t?{purpose:t}:{}});return n.data??[]}async function Ke(e,t){if(xe())return Oe(e,t);let{data:n}=await ke.get(`/competitions/${e}/form-schemas/${t}`),r=n?.data??n;if(!r||typeof r!=`object`||!(`id`in r))throw Error(`表单详情无效`);return r}async function qe(e,t){if(xe())return Te(e,t);let{data:n}=await ke.post(`/competitions/${e}/form-schemas`,t);return n}async function Je(e,t,n){if(xe())return je(e,t,n);let{data:r}=await ke.patch(`/competitions/${e}/form-schemas/${t}`,n);return r}async function Ye(e,t){if(xe()){Ee(e,t);return}await ke.delete(`/competitions/${e}/form-schemas/${t}`)}function Xe(e){Object.getOwnPropertySymbols(e).forEach(t=>{Zr[t]=e[t]})}function Ze(e,t=``){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:ni}}function Qe(e,t,n,r,i,a,o,s=!1,c=!1,l=!1,u=ni){return e&&(s?(e.helper(_r),e.helper(gt(e.inSSR,l))):e.helper(ht(e.inSSR,l)),o&&e.helper(kr)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:a,directives:o,isBlock:s,disableTracking:c,isComponent:l,loc:u}}function $e(e,t=ni){return{type:17,loc:t,elements:e}}function et(e,t=ni){return{type:15,loc:t,properties:e}}function tt(e,t){return{type:16,loc:ni,key:E(e)?nt(e,!0):e,value:t}}function nt(e,t=!1,n=ni,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function rt(e,t){return{type:5,loc:t,content:E(e)?nt(e,!1,t):e}}function it(e,t=ni){return{type:8,loc:t,children:e}}function at(e,t=[],n=ni){return{type:14,loc:n,callee:e,arguments:t}}function ot(e,t=void 0,n=!1,r=!1,i=ni){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function st(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:ni}}function ct(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:ni}}function lt(e){return{type:21,body:e,loc:ni}}function ut(e){return{type:22,elements:e,loc:ni}}function dt(e,t,n){return{type:23,test:e,consequent:t,alternate:n,loc:ni}}function ft(e,t){return{type:24,left:e,right:t,loc:ni}}function pt(e){return{type:25,expressions:e,loc:ni}}function mt(e){return{type:26,returns:e,loc:ni}}function ht(e,t){return e||t?br:xr}function gt(e,t){return e||t?vr:yr}function _t(e,{helper:t,removeHelper:n,inSSR:r}){e.isBlock||(e.isBlock=!0,n(ht(r,e.isComponent)),t(_r),t(gt(r,e.isComponent)))}function vt(e){return e>=97&&e<=122||e>=65&&e<=90}function yt(e){return e===32||e===10||e===9||e===12||e===13}function bt(e){return e===47||e===62||yt(e)}function xt(e){let t=new Uint8Array(e.length);for(let n=0;n{Zr[t]=e[t]})}function Ze(e,t=``){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:ni}}function Qe(e,t,n,r,i,a,o,s=!1,c=!1,l=!1,u=ni){return e&&(s?(e.helper(_r),e.helper(gt(e.inSSR,l))):e.helper(ht(e.inSSR,l)),o&&e.helper(kr)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:a,directives:o,isBlock:s,disableTracking:c,isComponent:l,loc:u}}function $e(e,t=ni){return{type:17,loc:t,elements:e}}function et(e,t=ni){return{type:15,loc:t,properties:e}}function tt(e,t){return{type:16,loc:ni,key:E(e)?nt(e,!0):e,value:t}}function nt(e,t=!1,n=ni,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function rt(e,t){return{type:5,loc:t,content:E(e)?nt(e,!1,t):e}}function it(e,t=ni){return{type:8,loc:t,children:e}}function at(e,t=[],n=ni){return{type:14,loc:n,callee:e,arguments:t}}function ot(e,t=void 0,n=!1,r=!1,i=ni){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function st(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:ni}}function ct(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:ni}}function lt(e){return{type:21,body:e,loc:ni}}function ut(e){return{type:22,elements:e,loc:ni}}function dt(e,t,n){return{type:23,test:e,consequent:t,alternate:n,loc:ni}}function ft(e,t){return{type:24,left:e,right:t,loc:ni}}function pt(e){return{type:25,expressions:e,loc:ni}}function mt(e){return{type:26,returns:e,loc:ni}}function ht(e,t){return e||t?br:xr}function gt(e,t){return e||t?vr:yr}function _t(e,{helper:t,removeHelper:n,inSSR:r}){e.isBlock||(e.isBlock=!0,n(ht(r,e.isComponent)),t(_r),t(gt(r,e.isComponent)))}function vt(e){return e>=97&&e<=122||e>=65&&e<=90}function yt(e){return e===32||e===10||e===9||e===12||e===13}function bt(e){return e===47||e===62||yt(e)}function xt(e){let t=new Uint8Array(e.length);for(let n=0;n{e&&Mt(e,t)});break;case`RestElement`:Mt(e.argument,t);break;case`AssignmentPattern`:Mt(e.left,t);break}return t}function Nt(e){return mi.includes(e.type)?Nt(e.expression):e}function Pt(e){switch(e){case`Teleport`:case`teleport`:return pr;case`Suspense`:case`suspense`:return mr;case`KeepAlive`:case`keep-alive`:return hr;case`BaseTransition`:case`base-transition`:return gr}}function Ft(e,t,n=t.length){return It({offset:e.offset,line:e.line,column:e.column},t,n)}function It(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 Vt(e){return e.type===5||e.type===2}function Ht(e){return e.type===7&&e.name===`pre`}function Ut(e){return e.type===7&&e.name===`slot`}function Wt(e){return e.type===1&&e.tagType===3}function Gt(e){return e.type===1&&e.tagType===2}function Kt(e,t=[]){if(e&&!E(e)&&e.type===14){let n=e.callee;if(!E(n)&&ki.has(n))return Kt(e.arguments[0],t.concat(e))}return[e,t]}function qt(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=Kt(i);i=e[0],a=e[1],o=a[a.length-1]}if(i==null||E(i))r=et([t]);else if(i.type===14){let e=i.arguments[0];!E(e)&&e.type===15?Jt(t,e)||e.properties.unshift(t):i.callee===zr?r=at(n.helper(Pr),[et([t]),i]):i.arguments.unshift(et([t])),!r&&(r=i)}else i.type===15?(Jt(t,i)||i.properties.unshift(t),r=i):(r=at(n.helper(Pr),[et([t]),i]),o&&o.callee===Rr&&(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 Jt(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 Yt(e,t){return`_${t}_${e.replace(/[^\w]/g,(t,n)=>t===`-`?`_`:e.charCodeAt(n).toString())}`}function Xt(e,t){if(!e||Object.keys(t).length===0)return!1;switch(e.type){case 1:for(let n=0;nXt(e,t));case 11:return Xt(e.source,t)?!0:e.children.some(e=>Xt(e,t));case 9:return e.branches.some(e=>Xt(e,t));case 10:return Xt(e.condition,t)?!0:e.children.some(e=>Xt(e,t));case 4:return!e.isStatic&&_i(e.content)&&!!t[e.content];case 8:return e.children.some(e=>y(e)&&Xt(e,t));case 5:case 12:return Xt(e.content,t);case 2:case 3:case 20:return!1;default:return!1}}function Zt(e){return e.type===14&&e.callee===Yr?e.arguments[1].returns:e}function Qt(e){for(let t=0;t{let i=t.start.offset+n;return _n(e,!1,hn(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(Ki,``).trim(),l=i.indexOf(c),u=c.match(Gi);if(u){c=c.replace(Gi,``).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 tn(e,t){return Pi.slice(e,t)}function nn(e){Wi.inSFCRoot&&(Fi.innerLoc=hn(e+1,e+1)),mn(Fi);let{tag:t,ns:n}=Fi;n===0&&Mi.isPreTag(t)&&Bi++,Mi.isVoidTag(t)?an(Fi,e):(Ui.unshift(Fi),(n===1||n===2)&&(Wi.inXML=!0)),Fi=null}function rn(e,t,n){{let t=Ui[0]&&Ui[0].tag;t!==`script`&&t!==`style`&&e.includes(`&`)&&(e=Mi.decodeEntities(e,!1))}let r=Ui[0]||Ni,i=r.children[r.children.length-1];i&&i.type===2?(i.content+=e,gn(i.loc,n)):r.children.push({type:2,content:e,loc:hn(t,n)})}function an(e,t,n=!1){n?gn(e.loc,sn(t,60)):gn(e.loc,on(t,62)+1),Wi.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=tn(e.innerLoc.start.offset,e.innerLoc.end.offset));let{tag:r,ns:i,children:a}=e;if(Vi||(r===`slot`?e.tagType=2:cn(e)?e.tagType=3:ln(e)&&(e.tagType=1)),Wi.inRCDATA||(e.children=dn(a)),i===0&&Mi.isIgnoreNewlineTag(r)){let e=a[0];e&&e.type===2&&(e.content=e.content.replace(/^\r?\n/,``))}i===0&&Mi.isPreTag(r)&&Bi--,Hi===e&&(Vi=Wi.inVPre=!1,Hi=null),Wi.inXML&&(Ui[0]?Ui[0].ns:Mi.ns)===0&&(Wi.inXML=!1);{let t=e.props;if(!Wi.inSFCRoot&&Ct(`COMPILER_NATIVE_TEMPLATE`,Mi)&&e.tag===`template`&&!cn(e)){let t=Ui[0]||Ni,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&&wt(`COMPILER_INLINE_TEMPLATE`,Mi,n.loc)&&e.children.length&&(n.value={type:2,content:tn(e.children[0].loc.start.offset,e.children[e.children.length-1].loc.end.offset),loc:n.loc})}}function on(e,t){let n=e;for(;Pi.charCodeAt(n)!==t&&n=0;)n--;return n}function cn({tag:e,props:t}){if(e===`template`){for(let e=0;e64&&e<91}function dn(e){let t=Mi.whitespace!==`preserve`,n=!1;for(let r=0;re.type!==3);return t.length===1&&t[0].type===1&&!Gt(t[0])?t[0]:null}function Sn(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)&&Tn(s,n)>=2){let t=En(s);t&&(e.props=n.hoist(t))}e.dynamicProps&&=n.hoist(e.dynamicProps)}}}else if(s.type===12&&(r?0:Cn(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++,Sn(s,e,n,!1,i),t&&n.scopes.vSlot--}else if(s.type===11)Sn(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 Cn(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=Tn(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:N,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){E(e)&&(e=nt(e)),D.hoists.push(e);let t=nt(`_hoisted_${D.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1,n=!1){let r=ct(D.cached.length,e,t,n);return D.cached.push(r),r}};return D.filters=new Set,D}function On(e,t){let n=Dn(e,t);kn(e,n),t.hoistStatic&&bn(e,n),t.ssr||dee(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 dee(e,t){let{helper:n}=t,{children:r}=e;if(r.length===1){let n=xn(e);if(n&&n.codegenNode){let r=n.codegenNode;r.type===13&&_t(r,t),e.codegenNode=r}else e.codegenNode=r[0]}else r.length>1&&(e.codegenNode=Qe(t,n(fr),void 0,e.children,64,void 0,void 0,!0,void 0,!1))}function fee(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(Ut))return;let a=[];for(let o=0;o0,p=!a&&r!==`module`;if(Nn(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(Zi).join(`, `)} } = _Vue diff --git a/public/admin/assets/CompetitionListView-CoQ3YPwP.js b/public/admin/assets/CompetitionListView-CGtouV9m.js similarity index 93% rename from public/admin/assets/CompetitionListView-CoQ3YPwP.js rename to public/admin/assets/CompetitionListView-CGtouV9m.js index 15a520f..fe83510 100644 --- a/public/admin/assets/CompetitionListView-CoQ3YPwP.js +++ b/public/admin/assets/CompetitionListView-CGtouV9m.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{E as g}from"./index-CK9_7hK2.js";import{t as _}from"./_plugin-vue_export-helper-S3RvzygF.js";import{a as v}from"./competitions-C4QNxYDA.js";import{t as y}from"./adminCompetition-CoRnlfMF.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}; \ 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{E as g}from"./index-D8PaKRyd.js";import{t as _}from"./_plugin-vue_export-helper-S3RvzygF.js";import{a as v}from"./competitions-B5KfFF-U.js";import{t as y}from"./adminCompetition-Cg47YVEK.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}; \ No newline at end of file diff --git a/public/admin/assets/LoginView-Dow8cv1q.js b/public/admin/assets/LoginView-DUVE-cQV.js similarity index 98% rename from public/admin/assets/LoginView-Dow8cv1q.js rename to public/admin/assets/LoginView-DUVE-cQV.js index cab6d1a..2f0086d 100644 --- a/public/admin/assets/LoginView-Dow8cv1q.js +++ b/public/admin/assets/LoginView-DUVE-cQV.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{a as g,i as _,l as v,m as y,p as b}from"./api-CH6mod_b.js";import{C as x,w as S}from"./index-CK9_7hK2.js";/* empty css */import{i as C,r as w,t as ee}from"./competitionBranding-BQASm1w0.js";/* empty css */var te={class:`login-page-wls__wrap`},ne={class:`login-page-wls__inner`},re={class:`login-page-wls__brand`,"aria-label":`系统说明`},ie={class:`login-page-wls__logo`,"aria-hidden":`true`},ae=[`src`],oe={key:1,viewBox:`0 0 100 100`,width:`72`,height:`72`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},se={key:0,class:`login-page-wls__mark`},ce=[`innerHTML`],le={key:1,class:`login-page-wls__title`},T=[`innerHTML`],ue={class:`login-page-wls__panel`},de={class:`login-page-wls__card`},fe={key:0,class:`login-page-wls__card-title`},pe={class:`login-page-wls__code-row`},me=[`disabled`],he=[`disabled`],ge={key:0,class:`login-page-wls__footer`},_e={class:`login-page-wls__copyright`},E=d({__name:`LoginView`,setup(d){let E=x(),D=S(),O=o(``),k=o(``),A=o(!1),j=o(!1),M=o(!1),N=o(`获取验证码`),P=o(!1),F=o(``),I=o(`neutral`),L=s(()=>String(E.params.slug??``).trim()),R=o(``),z=o(w()),ve=s(()=>I.value===`error`?`login-page-wls__hint login-page-wls__hint--error`:I.value===`success`?`login-page-wls__hint login-page-wls__hint--success`:`login-page-wls__hint`),ye=s(()=>{let e=z.value.login.markLine;return C(e)?B(e):``}),be=s(()=>{let e=z.value.login.headline;return C(e)?B(e):``});function B(e){return e.replace(/&/g,`&`).replace(//g,`>`).replace(/"/g,`"`)}let V=s(()=>R.value?R.value:C(z.value.login.slogan)?z.value.login.slogan:``),xe=s(()=>!!R.value),Se=s(()=>C(z.value.login.cardWelcome)?z.value.login.cardWelcome:``),H=s(()=>Se.value.replace(/登陆/g,`登录`)),U=s(()=>C(z.value.login.footerCopyright)?z.value.login.footerCopyright:``),W=s(()=>C(z.value.login.logoUrl)?z.value.login.logoUrl:``),G=0;function K(){G&&=(window.clearInterval(G),0)}function Ce(){K();let e=y();M.value=!0,N.value=`重新获取(${e}s)`,G=window.setInterval(()=>{if(--e,e<=0){K(),N.value=`获取验证码`,M.value=!1;return}N.value=`重新获取(${e}s)`},1e3)}function q(){return b()}function J(e,t=`neutral`){F.value=e,I.value=t}function Y(){F.value=``,I.value=`neutral`}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,_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{a as g,i as _,l as v,m as y,p as b}from"./api-CH6mod_b.js";import{C as x,w as S}from"./index-D8PaKRyd.js";/* empty css */import{i as C,r as w,t as ee}from"./competitionBranding-BQASm1w0.js";/* empty css */var te={class:`login-page-wls__wrap`},ne={class:`login-page-wls__inner`},re={class:`login-page-wls__brand`,"aria-label":`系统说明`},ie={class:`login-page-wls__logo`,"aria-hidden":`true`},ae=[`src`],oe={key:1,viewBox:`0 0 100 100`,width:`72`,height:`72`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},se={key:0,class:`login-page-wls__mark`},ce=[`innerHTML`],le={key:1,class:`login-page-wls__title`},T=[`innerHTML`],ue={class:`login-page-wls__panel`},de={class:`login-page-wls__card`},fe={key:0,class:`login-page-wls__card-title`},pe={class:`login-page-wls__code-row`},me=[`disabled`],he=[`disabled`],ge={key:0,class:`login-page-wls__footer`},_e={class:`login-page-wls__copyright`},E=d({__name:`LoginView`,setup(d){let E=x(),D=S(),O=o(``),k=o(``),A=o(!1),j=o(!1),M=o(!1),N=o(`获取验证码`),P=o(!1),F=o(``),I=o(`neutral`),L=s(()=>String(E.params.slug??``).trim()),R=o(``),z=o(w()),ve=s(()=>I.value===`error`?`login-page-wls__hint login-page-wls__hint--error`:I.value===`success`?`login-page-wls__hint login-page-wls__hint--success`:`login-page-wls__hint`),ye=s(()=>{let e=z.value.login.markLine;return C(e)?B(e):``}),be=s(()=>{let e=z.value.login.headline;return C(e)?B(e):``});function B(e){return e.replace(/&/g,`&`).replace(//g,`>`).replace(/"/g,`"`)}let V=s(()=>R.value?R.value:C(z.value.login.slogan)?z.value.login.slogan:``),xe=s(()=>!!R.value),Se=s(()=>C(z.value.login.cardWelcome)?z.value.login.cardWelcome:``),H=s(()=>Se.value.replace(/登陆/g,`登录`)),U=s(()=>C(z.value.login.footerCopyright)?z.value.login.footerCopyright:``),W=s(()=>C(z.value.login.logoUrl)?z.value.login.logoUrl:``),G=0;function K(){G&&=(window.clearInterval(G),0)}function Ce(){K();let e=y();M.value=!0,N.value=`重新获取(${e}s)`,G=window.setInterval(()=>{if(--e,e<=0){K(),N.value=`获取验证码`,M.value=!1;return}N.value=`重新获取(${e}s)`},1e3)}function q(){return b()}function J(e,t=`neutral`){F.value=e,I.value=t}function Y(){F.value=``,I.value=`neutral`}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 we(){R.value=``,z.value=w();let e=L.value,t=typeof document<`u`?document.title:``;if(!e){R.value=`缺少赛事访问地址,请从正确入口进入`;return}try{let n=await fetch(`${q()}/api/v1/public/competitions/by-slug/${encodeURIComponent(e)}`,{headers:{Accept:`application/json`}});if(!n.ok){R.value=n.status===404?`赛事不存在或未发布,请核对访问地址`:`无法加载赛事信息`;return}let r=await n.json();z.value=ee(r.branding_json??r.branding??null);let i=z.value.documentTitle;typeof document<`u`&&(C(i)?document.title=i:document.title=t);let a=z.value.login.themePrimary;if(C(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=z.value.login.faviconUrl;if(C(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{R.value=`网络错误,无法校验赛事链接`}}async function Te(){if(M.value)return;let e=O.value.trim();if(!/^1[3-9]\d{9}$/.test(e)){A.value=!0,j.value=!1,J(`请先填写正确手机号`,`error`);return}A.value=!1,j.value=!1,Y(),M.value=!0,N.value=`发送中...`;let t=`${q()}${g}`;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){J(X(r),`error`),N.value=`获取验证码`,M.value=!1,K();return}let i=r;i.debug_code?J(`本次验证码:${i.debug_code}`,`success`):Y(),Ce()}catch{J(`网络错误,请确认后端已启动(Vite 将 /api 代理至 php artisan serve 端口,见 vite.config)`,`error`),N.value=`获取验证码`,M.value=!1,K()}}async function Ee(){let e=/^1[3-9]\d{9}$/.test(O.value.trim()),t=k.value.trim(),n=t.length>0;if(A.value=!e,j.value=e&&!n,!e){J(`请先填写正确手机号`,`error`);return}if(!n){J(`请输入验证码`,`error`);return}if(Y(),P.value=!0,J(`登录中...`,`neutral`),!L.value){J(`缺少赛事访问地址,请从正确入口进入`,`error`),P.value=!1;return}let r=`${q()}${_}`;try{let e=await fetch(r,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`,"X-Requested-With":`XMLHttpRequest`},body:JSON.stringify({mobile:O.value.trim(),code:t,competition_slug:L.value})}),n=await e.json().catch(()=>({}));if(!e.ok){J(X(n),`error`);return}Y(),localStorage.setItem(v,n.token),localStorage.setItem(`cxxfds_user`,JSON.stringify(n.user));let i=typeof E.query.redirect==`string`?E.query.redirect:``;if(i&&i.startsWith(`/`)){await D.replace(i);return}let a=L.value;a?await D.replace({name:`participant-apply`,params:{slug:a}}):await D.replace(`/c`)}catch{J(`网络错误,请确认后端已启动`,`error`)}finally{P.value=!1}}return a(()=>{typeof document<`u`&&(document.documentElement.classList.add(`cxxfds-login-page`),$=!0),document.body.classList.add(`login-page-wls`),we()}),i(()=>{if(typeof document<`u`&&$&&(document.documentElement.classList.remove(`cxxfds-login-page`),$=!1),document.body.classList.remove(`login-page-wls`),K(),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)=>(p(),m(`div`,te,[h(`div`,ne,[h(`aside`,re,[h(`div`,ie,[W.value?(p(),m(`img`,{key:0,src:W.value,alt:``,class:`login-page-wls__logo-img`,width:`72`,height:`72`},null,8,ae)):(p(),m(`svg`,oe,[...a[4]||=[n(`String(q.params.slug??``).trim()),Y=a(g()),X=a(``),se=s(()=>ae(Y.value,X.value)),ce=s(()=>{if(h(Y.value.login.footerCopyright))return Y.value.login.footerCopyright;let e=X.value.trim();return e?`版权所有:${e}`:`版权所有`});async function le(){let e=J.value;if(!e){Y.value=g(),X.value=``;return}try{let t=await fetch(`${p()}/api/v1/public/competitions/by-slug/${encodeURIComponent(e)}`,{headers:{Accept:`application/json`}});if(!t.ok){Y.value=g(),X.value=``;return}let n=await t.json(),r=n.data!=null&&typeof n.data==`object`&&!Array.isArray(n.data)?n.data:n;X.value=String(r.name??``),Y.value=_(r.branding_json??null)}catch{Y.value=g(),X.value=``}}o(J,()=>{le()},{immediate:!0});let Z=a(``),Q=a({name:`—`,mobile:`—`,email:`—`}),$=s(()=>Z.value||`用户`);async function ue(){let e=localStorage.getItem(f),t=p();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();Z.value=r.name||r.mobile||``,Q.value={name:r.name||`—`,mobile:r.mobile||`—`,email:r.email||`—`}}catch{}}function de(){localStorage.removeItem(f),localStorage.removeItem(`cxxfds_user`);let e=J.value;e?m.push({name:`participant-login`,params:{slug:e}}):m.push(`/c`)}return r(()=>{document.body.classList.add(`prototype-page`,`user-mobile-no-menu`),ue()}),t(()=>{document.body.classList.remove(`prototype-page`,`user-mobile-no-menu`)}),(t,r)=>{let a=i(`router-link`),o=i(`router-view`);return te(),u(`div`,v,[d(`header`,y,[d(`div`,b,[d(`span`,x,c(se.value),1),d(`div`,S,[d(`button`,C,[r[0]||=d(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`},[d(`circle`,{cx:`12`,cy:`12`,r:`9.5`,stroke:`currentColor`,"stroke-width":`2`}),d(`circle`,{cx:`12`,cy:`9`,r:`3.2`,fill:`currentColor`}),d(`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),d(`span`,w,c($.value),1)]),d(`ul`,T,[r[2]||=d(`li`,null,[d(`a`,{class:`dropdown-item`,href:`javascript:void(0)`,"data-bs-toggle":`modal`,"data-bs-target":`#profileModal`},[d(`span`,{class:`menu-icon`},`👤`),e(`个人信息 `)])],-1),r[3]||=d(`li`,null,[d(`hr`,{class:`dropdown-divider`})],-1),d(`li`,null,[d(`a`,{class:`dropdown-item text-danger`,href:`javascript:void(0)`,onClick:ee(de,[`prevent`])},[...r[1]||=[d(`span`,{class:`menu-icon`},`↪`,-1),e(`退出登录 `,-1)]])])])])])]),d(`div`,E,[d(`div`,D,[d(`aside`,O,[d(`div`,k,[d(`div`,A,[d(`nav`,j,[n(a,{class:`nav-link text-start`,"active-class":`active`,to:{name:`participant-apply`,params:{slug:J.value}}},{default:ne(()=>[...r[4]||=[e(` 赛事报名 `,-1)]]),_:1},8,[`to`])])])])]),d(`main`,M,[n(o)])])]),d(`footer`,N,c(ce.value),1),d(`div`,P,[d(`div`,oe,[d(`div`,F,[r[8]||=d(`div`,{class:`modal-header profile-modal-header`},[d(`h5`,{class:`modal-title profile-modal-title`},`个人信息`),d(`button`,{type:`button`,class:`btn-close`,"data-bs-dismiss":`modal`,"aria-label":`关闭`})],-1),d(`div`,I,[d(`div`,L,[d(`div`,R,[d(`div`,z,[r[5]||=d(`div`,{class:`profile-field-label`},`姓名`,-1),d(`div`,B,c(Q.value.name),1)])]),d(`div`,V,[d(`div`,H,[r[6]||=d(`div`,{class:`profile-field-label`},`手机号`,-1),d(`div`,U,c(Q.value.mobile),1)])]),d(`div`,W,[d(`div`,G,[r[7]||=d(`div`,{class:`profile-field-label`},`邮箱`,-1),d(`div`,K,c(Q.value.email),1)])])])])])])])])}}}),[[`__scopeId`,`data-v-9928c69b`]]);export{q as default}; \ No newline at end of file diff --git a/public/admin/assets/MainLayout-DExXufjq.css b/public/admin/assets/MainLayout-DExXufjq.css new file mode 100644 index 0000000..4238334 --- /dev/null +++ b/public/admin/assets/MainLayout-DExXufjq.css @@ -0,0 +1 @@ +[data-v-9928c69b] a.router-link-active.nav-link{color:#8f000c;background:#f3e7e9;font-weight:600}#app .participant-layout{flex-direction:column;flex:auto;width:100%;min-height:100svh;display:flex}body.prototype-page.user-mobile-no-menu .participant-layout .layout-header>.container-fluid,body.prototype-page.user-mobile-no-menu .participant-layout .layout-main.container-fluid{width:100%;margin-left:0;margin-right:0;max-width:none!important}.participant-layout .layout-main{flex:auto;min-height:0;overflow:visible}.participant-layout .layout-main>.layout-main-row{min-height:0;overflow:visible}.participant-layout .layout-main>.layout-main-row>main{min-width:0}.participant-layout #layoutFooter{flex-shrink:0;margin-top:auto}@media (width>=768px){html:has(body.prototype-page.user-mobile-no-menu){height:100%;max-height:100dvh;overflow:hidden}body.prototype-page.user-mobile-no-menu{height:100%;max-height:100dvh;margin:0;overflow:hidden}body.prototype-page.user-mobile-no-menu #app{height:100%;max-height:100dvh;overflow:hidden;min-height:0!important}#app .participant-layout{height:100%;max-height:100%;overflow:hidden;min-height:0!important}.participant-layout .layout-main{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.participant-layout .layout-main>.layout-main-row{flex-wrap:nowrap;flex:1;align-items:stretch;min-height:0;max-height:100%;overflow:visible}}.participant-layout .track-custom-select .dropdown-menu{z-index:1085}.participant-layout main .card{overflow:visible} diff --git a/public/admin/assets/MainLayout-It4G9mV5.js b/public/admin/assets/MainLayout-It4G9mV5.js deleted file mode 100644 index 02a6ab3..0000000 --- a/public/admin/assets/MainLayout-It4G9mV5.js +++ /dev/null @@ -1 +0,0 @@ -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 ee,q as te,st as ne,w as u,x as d}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{l as f,p}from"./api-CH6mod_b.js";import{C as re,w as ie}from"./index-CK9_7hK2.js";import{t as m}from"./_plugin-vue_export-helper-S3RvzygF.js";/* empty css *//* empty css */import{a as ae,i as h,r as g,t as _}from"./competitionBranding-BQASm1w0.js";var v={class:`participant-layout`},y={class:`navbar navbar-expand-lg layout-header`},b={class:`container-fluid px-4`},x={class:`navbar-brand mb-0 prototype-title`},S={class:`dropdown`},C={class:`header-user dropdown-toggle`,type:`button`,"data-bs-toggle":`dropdown`,"aria-expanded":`false`},w={class:`header-user-name`},T={class:`dropdown-menu dropdown-menu-end header-user-menu`},E={class:`container-fluid px-4 py-3 layout-main`},D={class:`row layout-main-row g-3`},O={class:`col-12 col-md-3 col-lg-2 layout-sider`},k={class:`card h-100`},A={class:`card-body`},j={class:`nav flex-column gap-2`},M={class:`col-12 col-md-9 col-lg-10 participant-main-col`},N={id:`layoutFooter`,class:`border-top bg-white text-center py-2 small text-secondary prototype-subtitle`},P={id:`profileModal`,class:`modal fade`,tabindex:`-1`,"aria-hidden":`true`},oe={class:`modal-dialog modal-dialog-centered profile-modal-dialog`},F={class:`modal-content profile-modal-content`},I={class:`modal-body profile-modal-body`},L={class:`row g-3`},R={class:`col-md-6`},z={class:`profile-field`},B={class:`profile-field-value`},V={class:`col-md-6`},H={class:`profile-field`},U={class:`profile-field-value`},W={class:`col-12`},G={class:`profile-field`},K={class:`profile-field-value`},q=m(l({__name:`MainLayout`,setup(l){let m=ie(),q=re(),J=s(()=>String(q.params.slug??``).trim()),Y=a(g()),X=a(``),se=s(()=>ae(Y.value,X.value)),ce=s(()=>{if(h(Y.value.login.footerCopyright))return Y.value.login.footerCopyright;let e=X.value.trim();return e?`版权所有:${e}`:`版权所有`});async function le(){let e=J.value;if(!e){Y.value=g(),X.value=``;return}try{let t=await fetch(`${p()}/api/v1/public/competitions/by-slug/${encodeURIComponent(e)}`,{headers:{Accept:`application/json`}});if(!t.ok){Y.value=g(),X.value=``;return}let n=await t.json(),r=n.data!=null&&typeof n.data==`object`&&!Array.isArray(n.data)?n.data:n;X.value=String(r.name??``),Y.value=_(r.branding_json??null)}catch{Y.value=g(),X.value=``}}o(J,()=>{le()},{immediate:!0});let Z=a(``),Q=a({name:`—`,mobile:`—`,email:`—`}),$=s(()=>Z.value||`用户`);async function ue(){let e=localStorage.getItem(f),t=p();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();Z.value=r.name||r.mobile||``,Q.value={name:r.name||`—`,mobile:r.mobile||`—`,email:r.email||`—`}}catch{}}function de(){localStorage.removeItem(f),localStorage.removeItem(`cxxfds_user`);let e=J.value;e?m.push({name:`participant-login`,params:{slug:e}}):m.push(`/c`)}return r(()=>{document.body.classList.add(`prototype-page`,`user-mobile-no-menu`),ue()}),t(()=>{document.body.classList.remove(`prototype-page`,`user-mobile-no-menu`)}),(t,r)=>{let a=i(`router-link`),o=i(`router-view`);return te(),u(`div`,v,[d(`header`,y,[d(`div`,b,[d(`span`,x,c(se.value),1),d(`div`,S,[d(`button`,C,[r[0]||=d(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`},[d(`circle`,{cx:`12`,cy:`12`,r:`9.5`,stroke:`currentColor`,"stroke-width":`2`}),d(`circle`,{cx:`12`,cy:`9`,r:`3.2`,fill:`currentColor`}),d(`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),d(`span`,w,c($.value),1)]),d(`ul`,T,[r[2]||=d(`li`,null,[d(`a`,{class:`dropdown-item`,href:`javascript:void(0)`,"data-bs-toggle":`modal`,"data-bs-target":`#profileModal`},[d(`span`,{class:`menu-icon`},`👤`),e(`个人信息 `)])],-1),r[3]||=d(`li`,null,[d(`hr`,{class:`dropdown-divider`})],-1),d(`li`,null,[d(`a`,{class:`dropdown-item text-danger`,href:`javascript:void(0)`,onClick:ee(de,[`prevent`])},[...r[1]||=[d(`span`,{class:`menu-icon`},`↪`,-1),e(`退出登录 `,-1)]])])])])])]),d(`div`,E,[d(`div`,D,[d(`aside`,O,[d(`div`,k,[d(`div`,A,[d(`nav`,j,[n(a,{class:`nav-link text-start`,"active-class":`active`,to:{name:`participant-apply`,params:{slug:J.value}}},{default:ne(()=>[...r[4]||=[e(` 赛事报名 `,-1)]]),_:1},8,[`to`])])])])]),d(`main`,M,[n(o)])])]),d(`footer`,N,c(ce.value),1),d(`div`,P,[d(`div`,oe,[d(`div`,F,[r[8]||=d(`div`,{class:`modal-header profile-modal-header`},[d(`h5`,{class:`modal-title profile-modal-title`},`个人信息`),d(`button`,{type:`button`,class:`btn-close`,"data-bs-dismiss":`modal`,"aria-label":`关闭`})],-1),d(`div`,I,[d(`div`,L,[d(`div`,R,[d(`div`,z,[r[5]||=d(`div`,{class:`profile-field-label`},`姓名`,-1),d(`div`,B,c(Q.value.name),1)])]),d(`div`,V,[d(`div`,H,[r[6]||=d(`div`,{class:`profile-field-label`},`手机号`,-1),d(`div`,U,c(Q.value.mobile),1)])]),d(`div`,W,[d(`div`,G,[r[7]||=d(`div`,{class:`profile-field-label`},`邮箱`,-1),d(`div`,K,c(Q.value.email),1)])])])])])])])])}}}),[[`__scopeId`,`data-v-8c2b660c`]]);export{q as default}; \ No newline at end of file diff --git a/public/admin/assets/ParticipantLandingView-BbMRFwfo.js b/public/admin/assets/ParticipantLandingView-BZ3N9Nff.js similarity index 93% rename from public/admin/assets/ParticipantLandingView-BbMRFwfo.js rename to public/admin/assets/ParticipantLandingView-BZ3N9Nff.js index 2abad21..73ad750 100644 --- a/public/admin/assets/ParticipantLandingView-BbMRFwfo.js +++ b/public/admin/assets/ParticipantLandingView-BZ3N9Nff.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{w as d}from"./index-CK9_7hK2.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{w as d}from"./index-D8PaKRyd.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/ReviewPortalView-CqaN5RIJ.js b/public/admin/assets/ReviewPortalView-DdeuEh6C.js similarity index 94% rename from public/admin/assets/ReviewPortalView-CqaN5RIJ.js rename to public/admin/assets/ReviewPortalView-DdeuEh6C.js index 2760ad2..a6ae33d 100644 --- a/public/admin/assets/ReviewPortalView-CqaN5RIJ.js +++ b/public/admin/assets/ReviewPortalView-DdeuEh6C.js @@ -1 +1 @@ -import{D as e,Et as t,O as n,S as r,Z as i,b as a,in as o,k as s,q as c,st as l,w as u,x as d}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{E as f,O as p}from"./index-CK9_7hK2.js";import{t as m}from"./_plugin-vue_export-helper-S3RvzygF.js";import{t as h}from"./adminCompetition-CoRnlfMF.js";var g={class:`url`},_={class:`url`},v=m(s({__name:`ReviewPortalView`,setup(s){let{selectedCompetitionId:m,selectedCompetition:v}=p(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),f.success(`已复制`)}catch{f.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{E as f,O as p}from"./index-D8PaKRyd.js";import{t as m}from"./_plugin-vue_export-helper-S3RvzygF.js";import{t as h}from"./adminCompetition-Cg47YVEK.js";var g={class:`url`},_={class:`url`},v=m(s({__name:`ReviewPortalView`,setup(s){let{selectedCompetitionId:m,selectedCompetition:v}=p(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),f.success(`已复制`)}catch{f.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-BhLappy-.js b/public/admin/assets/ReviewerApplicationDetailView-FoRVso9n.js similarity index 99% rename from public/admin/assets/ReviewerApplicationDetailView-BhLappy-.js rename to public/admin/assets/ReviewerApplicationDetailView-FoRVso9n.js index 3a722b2..50d44d9 100644 --- a/public/admin/assets/ReviewerApplicationDetailView-BhLappy-.js +++ b/public/admin/assets/ReviewerApplicationDetailView-FoRVso9n.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{_,b as te,v as ne,y as re}from"./api-CH6mod_b.js";import{A as ie,C as ae,E as v,w as oe}from"./index-CK9_7hK2.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={key:0,class:`col-md-4`},be=[`value`],xe={class:`col-12`},Se=[`value`],Ce={class:`col-12`},we={key:0,class:`form-control-plaintext border rounded px-3 py-2 mb-0 bg-light small text-secondary`},Te={key:1,class:`form-control-plaintext border rounded px-3 py-2 mb-0 bg-light small text-secondary`},Ee={key:1,class:`col-12`},De={class:`list-unstyled mb-0 border rounded px-3 py-2 bg-light small`},Oe=[`onClick`],ke={class:`col-12`},Ae={class:`form-control-plaintext border rounded px-3 py-2 mb-0 bg-light small text-secondary`},je={class:`text-secondary ms-2`},Me={class:`col-12 mt-auto pt-3 border-top d-flex flex-wrap gap-2 align-items-center`},Ne={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`},Pe={key:0,class:`small text-secondary`},Fe={id:`reviewerPledgeModal`,class:`modal fade`,tabindex:`-1`,"aria-labelledby":`reviewerPledgeDocHeading`,"aria-hidden":`true`},Ie={class:`modal-dialog modal-dialog-centered modal-dialog-scrollable reviewer-detail-modal reviewer-detail-modal--pledge`},Le={class:`modal-content promise-sign-sheet`},Re={class:`modal-body pt-2`},R={key:0,class:`promise-doc-paper`},ze={id:`reviewerPledgeDocHeading`,class:`promise-doc-heading text-center`},Be={class:`promise-doc-scroll`},Ve=[`innerHTML`],He={key:1,class:`promise-doc-body promise-doc-body--rich`},Ue={key:0,class:`promise-doc-signblock`},We={class:`reviewer-pledge-sig-row`},Ge=[`src`],Ke={key:1,class:`small text-secondary`},qe={class:`promise-doc-daterow`},Je={class:`promise-doc-dateline`},Ye={id:`reviewerScoreModal`,class:`modal fade`,tabindex:`-1`,"aria-labelledby":`reviewerScoreModalLabel`,"aria-hidden":`true`},Xe={class:`modal-dialog modal-dialog-centered modal-dialog-scrollable reviewer-detail-modal reviewer-detail-modal--score`},Ze={class:`modal-content`},Qe={class:`modal-body`},$e={key:0,class:`small text-secondary mb-3`},et={class:`form-label`},tt={key:0,class:`text-danger`},nt=[`onUpdate:modelValue`],rt=[`onUpdate:modelValue`],it=[`onUpdate:modelValue`],at={class:`modal-footer flex-wrap gap-2`},ot=[`disabled`],z=y(ee({__name:`ReviewerApplicationDetailView`,setup(ee){let y=ae(),z=oe(),B=c(()=>String(y.params.slug??``).trim()),V=c(()=>String(y.params.id??``).trim()),st=r(`reviewerCompetitionName`,o(``)),ct=c(()=>{let e=st.value.trim();return e?`${e} 赛事承诺书`:`赛事承诺书`});function lt(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(()=>lt(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 ut(e){return e.replace(/\.?0+$/,``)}let dt=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 ft(){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 pt(){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 mt(){if(typeof document>`u`)return;let e=document.getElementById(`reviewerScoreModal`);e&&ie.getOrCreateInstance(e).hide()}async function ht(){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=pt(),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):`提交成功`),mt()}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(dt.value),3)):t(``,!0),g(`button`,{type:`button`,class:`btn btn-sm btn-outline-secondary event-back-btn`,onClick:ft},` 返回列表 `)])]),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 company-name-input`,type:`text`,placeholder:`如已注册企业,请填写`,value:H.value.company_name,disabled:``},null,8,k)]),g(`div`,A,[i[8]||=g(`label`,{class:`form-label`},`项目名称`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.project_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.track_title||H.value.track_code,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.location_country||`—`,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_province||`—`,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_city||`—`,disabled:``},null,8,ve)]),H.value.oversea_country?(m(),h(`div`,ye,[i[13]||=g(`label`,{class:`form-label`},`海外国家/地区`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.oversea_country,disabled:``},null,8,be)])):t(``,!0),g(`div`,xe,[i[14]||=g(`label`,{class:`form-label`},`项目简介`,-1),g(`textarea`,{class:`form-control`,rows:`4`,value:H.value.intro,disabled:``},null,8,Se)]),g(`div`,Ce,[i[15]||=g(`label`,{class:`form-label`},`商业计划书`,-1),Y.value?(m(),h(`p`,we,[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`,Te,`—`))]),X.value.length?(m(),h(`div`,Ee,[i[16]||=g(`label`,{class:`form-label`},`其他佐证材料`,-1),g(`ul`,De,[(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,Oe)]))),128))])])):t(``,!0),g(`div`,ke,[i[18]||=g(`label`,{class:`form-label`},`参赛承诺书`,-1),g(`p`,Ae,[H.value.promise_signed?(m(),h(d,{key:0},[i[17]||=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`,je,`日期:`+f(G.value),1)],64)):(m(),h(d,{key:1},[n(`未签署`)],64))])]),g(`div`,Me,[g(`button`,Ne,f(H.value.score_is_pending?`项目评分`:`修改项目评分`),1),H.value.my_review_score?(m(),h(`span`,Pe,`最近保存:`+f(H.value.my_review_score.updated_at)+` · 合计 `+f(ut(Number(H.value.my_review_score.line_total).toFixed(4)))+` 分`,1)):t(``,!0)])])])])):t(``,!0),g(`div`,Fe,[g(`div`,Ie,[g(`div`,Le,[g(`div`,Re,[H.value?(m(),h(`div`,R,[g(`h1`,ze,f(ct.value),1),g(`div`,Be,[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,Ve)):(m(),h(`div`,He,[...i[19]||=[g(`p`,{class:`text-secondary mb-0`},`本场赛事未配置承诺书正文(可在管理端赛事中心维护)。`,-1)]]))]),H.value.promise_signed?(m(),h(`div`,Ue,[g(`div`,We,[i[20]||=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,Ge)):(m(),h(`span`,Ke,`暂无`))]),g(`div`,qe,[g(`span`,Je,[i[21]||=n(`日期:`,-1),g(`strong`,null,f(G.value),1)])])])):t(``,!0)])):t(``,!0),i[22]||=g(`div`,{class:`promise-sign-actions`},[g(`button`,{type:`button`,class:`btn promise-close-btn`,"data-bs-dismiss":`modal`},`关闭`)],-1)])])])]),g(`div`,Ye,[g(`div`,Xe,[g(`div`,Ze,[i[24]||=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`,Qe,[H.value?.review_schema?.is_default?(m(),h(`p`,$e,` 本场赛事未绑定自定义评审表,已使用系统默认维度。 `)):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`,et,[n(f(e.label)+` `,1),e.required?(m(),h(`span`,tt,`*`)):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,nt)),[[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,rt)),[[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,it)),[[u,K.value[e.key]]])]))),128))]),g(`div`,at,[i[23]||=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:ht},f(q.value?`提交中…`:`确认提交`),9,ot)])])])])]))}}),[[`__scopeId`,`data-v-c530d294`]]);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{_,b as te,v as ne,y as re}from"./api-CH6mod_b.js";import{A as ie,C as ae,E as v,w as oe}from"./index-D8PaKRyd.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={key:0,class:`col-md-4`},be=[`value`],xe={class:`col-12`},Se=[`value`],Ce={class:`col-12`},we={key:0,class:`form-control-plaintext border rounded px-3 py-2 mb-0 bg-light small text-secondary`},Te={key:1,class:`form-control-plaintext border rounded px-3 py-2 mb-0 bg-light small text-secondary`},Ee={key:1,class:`col-12`},De={class:`list-unstyled mb-0 border rounded px-3 py-2 bg-light small`},Oe=[`onClick`],ke={class:`col-12`},Ae={class:`form-control-plaintext border rounded px-3 py-2 mb-0 bg-light small text-secondary`},je={class:`text-secondary ms-2`},Me={class:`col-12 mt-auto pt-3 border-top d-flex flex-wrap gap-2 align-items-center`},Ne={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`},Pe={key:0,class:`small text-secondary`},Fe={id:`reviewerPledgeModal`,class:`modal fade`,tabindex:`-1`,"aria-labelledby":`reviewerPledgeDocHeading`,"aria-hidden":`true`},Ie={class:`modal-dialog modal-dialog-centered modal-dialog-scrollable reviewer-detail-modal reviewer-detail-modal--pledge`},Le={class:`modal-content promise-sign-sheet`},Re={class:`modal-body pt-2`},R={key:0,class:`promise-doc-paper`},ze={id:`reviewerPledgeDocHeading`,class:`promise-doc-heading text-center`},Be={class:`promise-doc-scroll`},Ve=[`innerHTML`],He={key:1,class:`promise-doc-body promise-doc-body--rich`},Ue={key:0,class:`promise-doc-signblock`},We={class:`reviewer-pledge-sig-row`},Ge=[`src`],Ke={key:1,class:`small text-secondary`},qe={class:`promise-doc-daterow`},Je={class:`promise-doc-dateline`},Ye={id:`reviewerScoreModal`,class:`modal fade`,tabindex:`-1`,"aria-labelledby":`reviewerScoreModalLabel`,"aria-hidden":`true`},Xe={class:`modal-dialog modal-dialog-centered modal-dialog-scrollable reviewer-detail-modal reviewer-detail-modal--score`},Ze={class:`modal-content`},Qe={class:`modal-body`},$e={key:0,class:`small text-secondary mb-3`},et={class:`form-label`},tt={key:0,class:`text-danger`},nt=[`onUpdate:modelValue`],rt=[`onUpdate:modelValue`],it=[`onUpdate:modelValue`],at={class:`modal-footer flex-wrap gap-2`},ot=[`disabled`],z=y(ee({__name:`ReviewerApplicationDetailView`,setup(ee){let y=ae(),z=oe(),B=c(()=>String(y.params.slug??``).trim()),V=c(()=>String(y.params.id??``).trim()),st=r(`reviewerCompetitionName`,o(``)),ct=c(()=>{let e=st.value.trim();return e?`${e} 赛事承诺书`:`赛事承诺书`});function lt(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(()=>lt(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 ut(e){return e.replace(/\.?0+$/,``)}let dt=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 ft(){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 pt(){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 mt(){if(typeof document>`u`)return;let e=document.getElementById(`reviewerScoreModal`);e&&ie.getOrCreateInstance(e).hide()}async function ht(){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=pt(),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):`提交成功`),mt()}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(dt.value),3)):t(``,!0),g(`button`,{type:`button`,class:`btn btn-sm btn-outline-secondary event-back-btn`,onClick:ft},` 返回列表 `)])]),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 company-name-input`,type:`text`,placeholder:`如已注册企业,请填写`,value:H.value.company_name,disabled:``},null,8,k)]),g(`div`,A,[i[8]||=g(`label`,{class:`form-label`},`项目名称`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.project_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.track_title||H.value.track_code,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.location_country||`—`,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_province||`—`,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_city||`—`,disabled:``},null,8,ve)]),H.value.oversea_country?(m(),h(`div`,ye,[i[13]||=g(`label`,{class:`form-label`},`海外国家/地区`,-1),g(`input`,{class:`form-control`,type:`text`,value:H.value.oversea_country,disabled:``},null,8,be)])):t(``,!0),g(`div`,xe,[i[14]||=g(`label`,{class:`form-label`},`项目简介`,-1),g(`textarea`,{class:`form-control`,rows:`4`,value:H.value.intro,disabled:``},null,8,Se)]),g(`div`,Ce,[i[15]||=g(`label`,{class:`form-label`},`商业计划书`,-1),Y.value?(m(),h(`p`,we,[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`,Te,`—`))]),X.value.length?(m(),h(`div`,Ee,[i[16]||=g(`label`,{class:`form-label`},`其他佐证材料`,-1),g(`ul`,De,[(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,Oe)]))),128))])])):t(``,!0),g(`div`,ke,[i[18]||=g(`label`,{class:`form-label`},`参赛承诺书`,-1),g(`p`,Ae,[H.value.promise_signed?(m(),h(d,{key:0},[i[17]||=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`,je,`日期:`+f(G.value),1)],64)):(m(),h(d,{key:1},[n(`未签署`)],64))])]),g(`div`,Me,[g(`button`,Ne,f(H.value.score_is_pending?`项目评分`:`修改项目评分`),1),H.value.my_review_score?(m(),h(`span`,Pe,`最近保存:`+f(H.value.my_review_score.updated_at)+` · 合计 `+f(ut(Number(H.value.my_review_score.line_total).toFixed(4)))+` 分`,1)):t(``,!0)])])])])):t(``,!0),g(`div`,Fe,[g(`div`,Ie,[g(`div`,Le,[g(`div`,Re,[H.value?(m(),h(`div`,R,[g(`h1`,ze,f(ct.value),1),g(`div`,Be,[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,Ve)):(m(),h(`div`,He,[...i[19]||=[g(`p`,{class:`text-secondary mb-0`},`本场赛事未配置承诺书正文(可在管理端赛事中心维护)。`,-1)]]))]),H.value.promise_signed?(m(),h(`div`,Ue,[g(`div`,We,[i[20]||=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,Ge)):(m(),h(`span`,Ke,`暂无`))]),g(`div`,qe,[g(`span`,Je,[i[21]||=n(`日期:`,-1),g(`strong`,null,f(G.value),1)])])])):t(``,!0)])):t(``,!0),i[22]||=g(`div`,{class:`promise-sign-actions`},[g(`button`,{type:`button`,class:`btn promise-close-btn`,"data-bs-dismiss":`modal`},`关闭`)],-1)])])])]),g(`div`,Ye,[g(`div`,Xe,[g(`div`,Ze,[i[24]||=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`,Qe,[H.value?.review_schema?.is_default?(m(),h(`p`,$e,` 本场赛事未绑定自定义评审表,已使用系统默认维度。 `)):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`,et,[n(f(e.label)+` `,1),e.required?(m(),h(`span`,tt,`*`)):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,nt)),[[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,rt)),[[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,it)),[[u,K.value[e.key]]])]))),128))]),g(`div`,at,[i[23]||=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:ht},f(q.value?`提交中…`:`确认提交`),9,ot)])])])])]))}}),[[`__scopeId`,`data-v-c530d294`]]);export{z as default}; \ No newline at end of file diff --git a/public/admin/assets/ReviewerLayout-DDNz7TUe.js b/public/admin/assets/ReviewerLayout-IoLDvNuu.js similarity index 97% rename from public/admin/assets/ReviewerLayout-DDNz7TUe.js rename to public/admin/assets/ReviewerLayout-IoLDvNuu.js index e8b4723..51bee4b 100644 --- a/public/admin/assets/ReviewerLayout-DDNz7TUe.js +++ b/public/admin/assets/ReviewerLayout-IoLDvNuu.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{_ as ie,c as p,d as m,p as h}from"./api-CH6mod_b.js";import{C as ae,w as oe}from"./index-CK9_7hK2.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-BQASm1w0.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(`${h()}/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}=ie();if(e)try{let t=await fetch(`${h()}${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(){m();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{_ as ie,c as p,d as m,p as h}from"./api-CH6mod_b.js";import{C as ae,w as oe}from"./index-D8PaKRyd.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-BQASm1w0.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(`${h()}/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}=ie();if(e)try{let t=await fetch(`${h()}${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(){m();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-DXA2ytBM.js b/public/admin/assets/ReviewerLoginView-DRh2P3fl.js similarity index 98% rename from public/admin/assets/ReviewerLoginView-DXA2ytBM.js rename to public/admin/assets/ReviewerLoginView-DRh2P3fl.js index eff5061..9758836 100644 --- a/public/admin/assets/ReviewerLoginView-DXA2ytBM.js +++ b/public/admin/assets/ReviewerLoginView-DRh2P3fl.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{p as g,s as _,x as v}from"./api-CH6mod_b.js";import{C as y,w as b}from"./index-CK9_7hK2.js";/* empty css */import{i as x,r as S,t as C}from"./competitionBranding-BQASm1w0.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 g()}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{p as g,s as _,x as v}from"./api-CH6mod_b.js";import{C as y,w as b}from"./index-D8PaKRyd.js";/* empty css */import{i as x,r as S,t as C}from"./competitionBranding-BQASm1w0.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 g()}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}v(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(`v()),{selectedCompetitionId:C}=b(M()),w=s([]),T=s({}),E=s(null),D=s([]),O=s(!1),k=s(!1),A=s(!1),P=s(`create`),J=s(!1),Y=s(null),X=s(),Z=s({name:``,mobile:``,username:``,password:``}),he={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(P.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`}]},ge=l(()=>w.value.find(e=>e.track_code===E.value)?.title??``),_e=l(()=>`已配置 ${E.value?T.value[E.value]??0:0} 名评审员`);async function Q(){let e=C.value;if(O.value=!0,!e){w.value=[],T.value={},E.value=null,O.value=!1;return}try{if(w.value=(await j(e)).filter(e=>e.is_enabled).sort((e,t)=>e.sort-t.sort),!w.value.length){E.value=null,T.value={};return}(!E.value||!w.value.some(e=>e.track_code===E.value))&&(E.value=w.value[0]?.track_code??null),T.value=await F(e)}catch(e){w.value=[],y.warning(e instanceof Error?e.message:`赛道加载失败`)}finally{O.value=!1}}async function $(){let e=C.value,t=E.value;if(!e||!t){D.value=[];return}k.value=!0;try{D.value=(await ie({competition_id:e,track_code:t,page:1,per_page:500})).data,T.value=await F(e)}catch(e){D.value=[],y.error(e instanceof Error?e.message:`加载失败`)}finally{k.value=!1}}function ve(e){E.value=e}c(C,()=>{E.value=null,Q().then(()=>$())},{immediate:!0}),c(E,()=>{$()});function ye(e){return e.reviewer?.password_display??`—`}function be(e){let t=e.reviewer?.mobile;return t&&String(t).trim()!==``?String(t):`—`}function xe(){P.value=`create`,Y.value=null,Z.value={name:``,mobile:``,username:``,password:``},A.value=!0}function Se(e){P.value=`edit`,Y.value=e.reviewer_id;let t=e.reviewer;Z.value={name:t?.name??``,mobile:t?.mobile??``,username:t?.username??``,password:``},A.value=!0}async function Ce(){if(!X.value)return;let e=C.value,t=E.value;!e||!t||await X.value.validate(async n=>{if(n){J.value=!0;try{if(P.value===`create`){let n=0;try{n=(await N({name:Z.value.name.trim(),username:Z.value.username.trim(),password:Z.value.password,mobile:Z.value.mobile.trim()||null})).id}catch(e){y.error(e instanceof Error?e.message:`创建评审员失败`),J.value=!1;return}try{await ae({reviewer_id:n,competition_id:e,track_code:t})}catch(e){try{await re(n)}catch{}y.error(e instanceof Error?e.message:`绑定赛道失败`),J.value=!1;return}y.success(`评审员信息已保存`)}else{let e=Y.value;await ne(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()}:{}}),y.success(`评审员信息已更新`)}A.value=!1,await $(),e&&(T.value=await F(e))}catch(e){y.error(e instanceof Error?e.message:`保存失败`)}finally{J.value=!1}}})}async function we(e){let t=e.reviewer?.name??`该评审员`;try{await x.confirm(`确定移除「${t}」对本赛道的评审权限吗?(不删除全局账号)`,`确认删除`,{type:`warning`,confirmButtonText:`确定删除`,cancelButtonText:`取消`})}catch{return}try{await oe(e.id),y.success(`已移除`),await $();let t=C.value;t&&(T.value=await F(t))}catch(e){y.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`),b=o(`el-row`),x=o(`el-form`),j=o(`el-button`),M=o(`el-dialog`),N=ee(`loading`);return m(),g(`div`,I,[c[10]||=_(`div`,{class:`rev-head`},[_(`h5`,{class:`section-title mb-0`},`评审员管理`)],-1),r(C)?u((m(),g(`div`,L,[_(`aside`,R,[c[6]||=_(`div`,{class:`reviewer-track-panel-title`},`赛道配置`,-1),_(`div`,z,[(m(!0),g(d,null,a(w.value,t=>(m(),g(`button`,{key:t.id,type:`button`,class:e([`reviewer-track-tab`,{active:E.value===t.track_code}]),onClick:e=>ve(t.track_code)},[_(`span`,V,f(t.title),1),_(`span`,H,f(T.value[t.track_code]??0)+` 人`,1)],10,B))),128))])]),_(`section`,U,[_(`div`,W,[_(`div`,null,[_(`h6`,G,f(ge.value||`—`),1),_(`p`,K,f(_e.value),1)]),_(`div`,q,[_(`button`,{type:`button`,class:`prm-btn-outline`,disabled:!E.value,onClick:xe},` 新增评审员 `,8,se)])]),u((m(),g(`div`,ce,[E.value?(m(),g(`table`,le,[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(D.value,e=>(m(),g(`tr`,{key:e.id},[_(`td`,null,f(e.reviewer?.name??`—`),1),_(`td`,null,f(be(e)),1),_(`td`,null,f(e.reviewer?.username??`—`),1),_(`td`,null,f(ye(e)),1),_(`td`,ue,[_(`button`,{type:`button`,class:`prm-btn-outline sm`,onClick:t=>Se(e)},`修改`,8,de),_(`button`,{type:`button`,class:`prm-btn-light sm`,onClick:t=>we(e)},`删除`,8,fe)])]))),128))])])):t(``,!0),E.value?t(``,!0):(m(),g(`div`,pe,f(w.value.length===0?`本场暂无启用中的赛道,请先在「赛事中心」配置赛道后再维护评审员。`:``),1))])),[[N,k.value]]),_(`p`,me,f(S.value?`当前为 Mock:密码可能与原型一致以明文展示。`:`正式环境仅存密码摘要;列表中为占位符而非明文密码。`),1)])])),[[N,O.value]]):(m(),te(l,{key:0,type:`warning`,"show-icon":``,closable:!1,class:`rev-alert`,title:`请先在顶栏「赛事切换」中选择一场赛事,再按赛道维护评审员。`})),i(M,{modelValue:A.value,"onUpdate:modelValue":c[5]||=e=>A.value=e,title:P.value===`create`?`新增评审员`:`修改评审员`,width:`520px`,"destroy-on-close":``,class:`rev-dialog`},{footer:h(()=>[i(j,{onClick:c[4]||=e=>A.value=!1},{default:h(()=>[...c[8]||=[n(`取消`,-1)]]),_:1}),i(j,{type:`primary`,loading:J.value,onClick:Ce},{default:h(()=>[...c[9]||=[n(`确定`,-1)]]),_:1},8,[`loading`])]),default:h(()=>[i(x,{ref_key:`formRef`,ref:X,model:Z.value,rules:he,"label-position":`top`,class:`rev-form`},{default:h(()=>[i(b,{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:P.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:P.value===`create`?`必填`:`留空表示不修改`},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`])]),_:1})]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}}),[[`__scopeId`,`data-v-72de1618`]]);export{J 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{u as v}from"./api-CH6mod_b.js";import{E as y,O as b,T as x,b as S,g as C,l as w,o as T,r as E,s as D,u as O,v as k}from"./index-D8PaKRyd.js";import{t as A}from"./_plugin-vue_export-helper-S3RvzygF.js";import{o as j}from"./competitions-B5KfFF-U.js";import{t as M}from"./adminCompetition-Cg47YVEK.js";async function N(e){if(v())return T(e);let{data:t}=await E.post(`/reviewers`,e),n=t?.data??t;if(!n||typeof n!=`object`)throw Error(`创建响应无效`);return n}async function ne(e,t){if(v())return S(e,t);let{data:n}=await E.put(`/reviewers/${e}`,t),r=n?.data??n;if(!r||typeof r!=`object`)throw Error(`更新响应无效`);return r}async function re(e){if(v()){w(e);return}await E.delete(`/reviewers/${e}`)}function P(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 ie(e){if(v())return C(e);let{data:t}=await E.get(`/reviewer-scopes`,{params:e});return P(t)}async function F(e){if(v())return k(e);let{data:t}=await E.get(`/competitions/${e}/reviewer-scope-track-counts`),n=t?.data??t;return!n||typeof n!=`object`?{}:n}async function ae(e){if(v())return D(e);let{data:t}=await E.post(`/reviewer-scopes`,e),n=t?.data??t;if(!n||typeof n!=`object`)throw Error(`创建响应无效`);return n}async function oe(e){if(v()){O(e);return}await E.delete(`/reviewer-scopes/${e}`)}var I={class:`proto-reviewer-page admin-desktop-page`},L={key:1,class:`reviewer-manage-shell`},R={class:`reviewer-track-panel`},z={class:`reviewer-track-tabs`},B=[`onClick`],V={class:`reviewer-track-tab-name`},H={class:`reviewer-track-tab-count`},U={class:`reviewer-editor-panel`},W={class:`reviewer-editor-head`},G={class:`reviewer-track-title`},K={class:`reviewer-track-meta mb-0`},q={class:`reviewer-editor-actions`},se=[`disabled`],ce={class:`table-responsive`},le={key:0,class:`table table-sm align-middle mb-0 reviewer-manage-table`},ue={class:`text-end reviewer-row-actions`},de=[`onClick`],fe=[`onClick`],pe={key:1,class:`empty-hint`},me={class:`footnote`},J=A(p({__name:`ReviewerManageView`,setup(p){let S=l(()=>v()),{selectedCompetitionId:C}=b(M()),w=s([]),T=s({}),E=s(null),D=s([]),O=s(!1),k=s(!1),A=s(!1),P=s(`create`),J=s(!1),Y=s(null),X=s(),Z=s({name:``,mobile:``,username:``,password:``}),he={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(P.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`}]},ge=l(()=>w.value.find(e=>e.track_code===E.value)?.title??``),_e=l(()=>`已配置 ${E.value?T.value[E.value]??0:0} 名评审员`);async function Q(){let e=C.value;if(O.value=!0,!e){w.value=[],T.value={},E.value=null,O.value=!1;return}try{if(w.value=(await j(e)).filter(e=>e.is_enabled).sort((e,t)=>e.sort-t.sort),!w.value.length){E.value=null,T.value={};return}(!E.value||!w.value.some(e=>e.track_code===E.value))&&(E.value=w.value[0]?.track_code??null),T.value=await F(e)}catch(e){w.value=[],y.warning(e instanceof Error?e.message:`赛道加载失败`)}finally{O.value=!1}}async function $(){let e=C.value,t=E.value;if(!e||!t){D.value=[];return}k.value=!0;try{D.value=(await ie({competition_id:e,track_code:t,page:1,per_page:500})).data,T.value=await F(e)}catch(e){D.value=[],y.error(e instanceof Error?e.message:`加载失败`)}finally{k.value=!1}}function ve(e){E.value=e}c(C,()=>{E.value=null,Q().then(()=>$())},{immediate:!0}),c(E,()=>{$()});function ye(e){return e.reviewer?.password_display??`—`}function be(e){let t=e.reviewer?.mobile;return t&&String(t).trim()!==``?String(t):`—`}function xe(){P.value=`create`,Y.value=null,Z.value={name:``,mobile:``,username:``,password:``},A.value=!0}function Se(e){P.value=`edit`,Y.value=e.reviewer_id;let t=e.reviewer;Z.value={name:t?.name??``,mobile:t?.mobile??``,username:t?.username??``,password:``},A.value=!0}async function Ce(){if(!X.value)return;let e=C.value,t=E.value;!e||!t||await X.value.validate(async n=>{if(n){J.value=!0;try{if(P.value===`create`){let n=0;try{n=(await N({name:Z.value.name.trim(),username:Z.value.username.trim(),password:Z.value.password,mobile:Z.value.mobile.trim()||null})).id}catch(e){y.error(e instanceof Error?e.message:`创建评审员失败`),J.value=!1;return}try{await ae({reviewer_id:n,competition_id:e,track_code:t})}catch(e){try{await re(n)}catch{}y.error(e instanceof Error?e.message:`绑定赛道失败`),J.value=!1;return}y.success(`评审员信息已保存`)}else{let e=Y.value;await ne(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()}:{}}),y.success(`评审员信息已更新`)}A.value=!1,await $(),e&&(T.value=await F(e))}catch(e){y.error(e instanceof Error?e.message:`保存失败`)}finally{J.value=!1}}})}async function we(e){let t=e.reviewer?.name??`该评审员`;try{await x.confirm(`确定移除「${t}」对本赛道的评审权限吗?(不删除全局账号)`,`确认删除`,{type:`warning`,confirmButtonText:`确定删除`,cancelButtonText:`取消`})}catch{return}try{await oe(e.id),y.success(`已移除`),await $();let t=C.value;t&&(T.value=await F(t))}catch(e){y.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`),b=o(`el-row`),x=o(`el-form`),j=o(`el-button`),M=o(`el-dialog`),N=ee(`loading`);return m(),g(`div`,I,[c[10]||=_(`div`,{class:`rev-head`},[_(`h5`,{class:`section-title mb-0`},`评审员管理`)],-1),r(C)?u((m(),g(`div`,L,[_(`aside`,R,[c[6]||=_(`div`,{class:`reviewer-track-panel-title`},`赛道配置`,-1),_(`div`,z,[(m(!0),g(d,null,a(w.value,t=>(m(),g(`button`,{key:t.id,type:`button`,class:e([`reviewer-track-tab`,{active:E.value===t.track_code}]),onClick:e=>ve(t.track_code)},[_(`span`,V,f(t.title),1),_(`span`,H,f(T.value[t.track_code]??0)+` 人`,1)],10,B))),128))])]),_(`section`,U,[_(`div`,W,[_(`div`,null,[_(`h6`,G,f(ge.value||`—`),1),_(`p`,K,f(_e.value),1)]),_(`div`,q,[_(`button`,{type:`button`,class:`prm-btn-outline`,disabled:!E.value,onClick:xe},` 新增评审员 `,8,se)])]),u((m(),g(`div`,ce,[E.value?(m(),g(`table`,le,[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(D.value,e=>(m(),g(`tr`,{key:e.id},[_(`td`,null,f(e.reviewer?.name??`—`),1),_(`td`,null,f(be(e)),1),_(`td`,null,f(e.reviewer?.username??`—`),1),_(`td`,null,f(ye(e)),1),_(`td`,ue,[_(`button`,{type:`button`,class:`prm-btn-outline sm`,onClick:t=>Se(e)},`修改`,8,de),_(`button`,{type:`button`,class:`prm-btn-light sm`,onClick:t=>we(e)},`删除`,8,fe)])]))),128))])])):t(``,!0),E.value?t(``,!0):(m(),g(`div`,pe,f(w.value.length===0?`本场暂无启用中的赛道,请先在「赛事中心」配置赛道后再维护评审员。`:``),1))])),[[N,k.value]]),_(`p`,me,f(S.value?`当前为 Mock:密码可能与原型一致以明文展示。`:`正式环境仅存密码摘要;列表中为占位符而非明文密码。`),1)])])),[[N,O.value]]):(m(),te(l,{key:0,type:`warning`,"show-icon":``,closable:!1,class:`rev-alert`,title:`请先在顶栏「赛事切换」中选择一场赛事,再按赛道维护评审员。`})),i(M,{modelValue:A.value,"onUpdate:modelValue":c[5]||=e=>A.value=e,title:P.value===`create`?`新增评审员`:`修改评审员`,width:`520px`,"destroy-on-close":``,class:`rev-dialog`},{footer:h(()=>[i(j,{onClick:c[4]||=e=>A.value=!1},{default:h(()=>[...c[8]||=[n(`取消`,-1)]]),_:1}),i(j,{type:`primary`,loading:J.value,onClick:Ce},{default:h(()=>[...c[9]||=[n(`确定`,-1)]]),_:1},8,[`loading`])]),default:h(()=>[i(x,{ref_key:`formRef`,ref:X,model:Z.value,rules:he,"label-position":`top`,class:`rev-form`},{default:h(()=>[i(b,{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:P.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:P.value===`create`?`必填`:`留空表示不修改`},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`])]),_:1})]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}}),[[`__scopeId`,`data-v-72de1618`]]);export{J as default}; \ No newline at end of file diff --git a/public/admin/assets/ReviewerProjectsView-D1P_1yT9.js b/public/admin/assets/ReviewerProjectsView-Cmwv-4-f.js similarity index 96% rename from public/admin/assets/ReviewerProjectsView-D1P_1yT9.js rename to public/admin/assets/ReviewerProjectsView-Cmwv-4-f.js index dda75cf..99d5f22 100644 --- a/public/admin/assets/ReviewerProjectsView-D1P_1yT9.js +++ b/public/admin/assets/ReviewerProjectsView-Cmwv-4-f.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{_,o as v,p as y}from"./api-CH6mod_b.js";import{C as b}from"./index-CK9_7hK2.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}=_();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=`${y()}${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{_,o as v,p as y}from"./api-CH6mod_b.js";import{C as b}from"./index-D8PaKRyd.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}=_();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=`${y()}${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-CoRnlfMF.js b/public/admin/assets/adminCompetition-Cg47YVEK.js similarity index 86% rename from public/admin/assets/adminCompetition-CoRnlfMF.js rename to public/admin/assets/adminCompetition-Cg47YVEK.js index 1c30782..cd41d03 100644 --- a/public/admin/assets/adminCompetition-CoRnlfMF.js +++ b/public/admin/assets/adminCompetition-Cg47YVEK.js @@ -1 +1 @@ -import{_t as e,b as t}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{t as n}from"./api-CH6mod_b.js";import{D as r}from"./index-CK9_7hK2.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-CH6mod_b.js";import{D as r}from"./index-D8PaKRyd.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/competitions-C4QNxYDA.js b/public/admin/assets/competitions-B5KfFF-U.js similarity index 96% rename from public/admin/assets/competitions-C4QNxYDA.js rename to public/admin/assets/competitions-B5KfFF-U.js index 01a4945..93246a6 100644 --- a/public/admin/assets/competitions-C4QNxYDA.js +++ b/public/admin/assets/competitions-B5KfFF-U.js @@ -1 +1 @@ -import{u as e}from"./api-CH6mod_b.js";import{S as t,_ as n,d as r,f as i,m as a,r as o,x as s}from"./index-CK9_7hK2.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}; \ No newline at end of file +import{u as e}from"./api-CH6mod_b.js";import{S as t,_ as n,d as r,f as i,m as a,r as o,x as s}from"./index-D8PaKRyd.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}; \ No newline at end of file diff --git a/public/admin/assets/index-CK9_7hK2.js b/public/admin/assets/index-D8PaKRyd.js similarity index 99% rename from public/admin/assets/index-CK9_7hK2.js rename to public/admin/assets/index-D8PaKRyd.js index de66d62..2ee255f 100644 --- a/public/admin/assets/index-CK9_7hK2.js +++ b/public/admin/assets/index-D8PaKRyd.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/CompetitionListView-CoQ3YPwP.js","assets/_plugin-vue_export-helper-S3RvzygF.js","assets/vue.runtime.esm-bundler-6_koQ1g6.js","assets/competitions-C4QNxYDA.js","assets/api-CH6mod_b.js","assets/adminCompetition-CoRnlfMF.js","assets/CompetitionListView-BkKXaYfF.css","assets/CompetitionFormView-D8jLLcdP.js","assets/competitionBranding-BQASm1w0.js","assets/CompetitionFormView-By4PbKhb.css","assets/ReviewerManageView-Wd5gJQQE.js","assets/ReviewerManageView-B28-o5JD.css","assets/ReviewPortalView-CqaN5RIJ.js","assets/ReviewPortalView-TJk8rGN4.css","assets/AdminMenuGroupLayout-CcXLpVEJ.js","assets/MainLayout-It4G9mV5.js","assets/MainLayout-CGRgP4V6.css","assets/bootstrap-CwawXFoc.css","assets/prototype-styles-BwOCJx1Y.css","assets/ParticipantLandingView-BbMRFwfo.js","assets/LoginView-Dow8cv1q.js","assets/login-page-overrides-CZNMr4Fy.css","assets/ReviewerLoginView-DXA2ytBM.js","assets/ReviewerLayout-DDNz7TUe.js","assets/ReviewerLayout-CZ4lqrIz.css","assets/ReviewerApplicationDetailView-BhLappy-.js","assets/ReviewerApplicationDetailView-B96cJr-2.css","assets/ReviewerProjectsView-D1P_1yT9.js","assets/ReviewerProjectsView-DPGhOt9v.css","assets/ApplyView-DGeQJz8H.js","assets/ApplyView-BKe8nCOX.css","assets/AdminLoginView-BtMABMAm.js","assets/AdminLoginView-bA4s83ah.css","assets/AdminLayout-CnAgmXtu.js","assets/AdminLayout-D4bzmhIv.css"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/CompetitionListView-CGtouV9m.js","assets/_plugin-vue_export-helper-S3RvzygF.js","assets/vue.runtime.esm-bundler-6_koQ1g6.js","assets/competitions-B5KfFF-U.js","assets/api-CH6mod_b.js","assets/adminCompetition-Cg47YVEK.js","assets/CompetitionListView-BkKXaYfF.css","assets/CompetitionFormView-BKYnHRcK.js","assets/competitionBranding-BQASm1w0.js","assets/CompetitionFormView-By4PbKhb.css","assets/ReviewerManageView-DCTV2RWw.js","assets/ReviewerManageView-B28-o5JD.css","assets/ReviewPortalView-DdeuEh6C.js","assets/ReviewPortalView-TJk8rGN4.css","assets/AdminMenuGroupLayout-CcXLpVEJ.js","assets/MainLayout-CtyDEL7F.js","assets/MainLayout-DExXufjq.css","assets/bootstrap-CwawXFoc.css","assets/prototype-styles-4QRP4aFA.css","assets/ParticipantLandingView-BZ3N9Nff.js","assets/LoginView-DUVE-cQV.js","assets/login-page-overrides-CZNMr4Fy.css","assets/ReviewerLoginView-DRh2P3fl.js","assets/ReviewerLayout-IoLDvNuu.js","assets/ReviewerLayout-CZ4lqrIz.css","assets/ReviewerApplicationDetailView-FoRVso9n.js","assets/ReviewerApplicationDetailView-B96cJr-2.css","assets/ReviewerProjectsView-Cmwv-4-f.js","assets/ReviewerProjectsView-DPGhOt9v.css","assets/ApplyView-D4GrjnSt.js","assets/ApplyView-BKe8nCOX.css","assets/AdminLoginView-D3VVvyTR.js","assets/AdminLoginView-bA4s83ah.css","assets/AdminLayout-DwGzZ2Ld.js","assets/AdminLayout-D4bzmhIv.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,g as qe,h as Je,l as Ye,n as Xe,r as Ze,u as Qe}from"./api-CH6mod_b.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 $e=`bottom`,et=`right`,tt=`left`,nt=`auto`,rt=[`top`,$e,et,tt],it=`start`,at=`clippingParents`,ot=`viewport`,st=`popper`,ct=`reference`,lt=rt.reduce(function(e,t){return e.concat([t+`-`+it,t+`-end`])},[]),ut=[].concat(rt,[nt]).reduce(function(e,t){return e.concat([t,t+`-`+it,t+`-end`])},[]),dt=`beforeRead`,ft=`read`,pt=`afterRead`,mt=`beforeMain`,ht=`main`,gt=`afterMain`,_t=`beforeWrite`,vt=`write`,yt=`afterWrite`,bt=[dt,ft,pt,mt,ht,gt,_t,vt,yt];function xt(e){return e?(e.nodeName||``).toLowerCase():null}function St(e){if(e==null)return window;if(e.toString()!==`[object Window]`){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Ct(e){return e instanceof St(e).Element||e instanceof Element}function wt(e){return e instanceof St(e).HTMLElement||e instanceof HTMLElement}function Tt(e){return typeof ShadowRoot>`u`?!1:e instanceof St(e).ShadowRoot||e instanceof ShadowRoot}function Et(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];!wt(i)||!xt(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 Dt(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},{});!wt(r)||!xt(r)||(Object.assign(r.style,a),Object.keys(i).forEach(function(e){r.removeAttribute(e)}))})}}var Ot={name:`applyStyles`,enabled:!0,phase:`write`,fn:Et,effect:Dt,requires:[`computeStyles`]};function kt(e){return e.split(`-`)[0]}var At=Math.max,jt=Math.min,Mt=Math.round;function Nt(){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 Pt(){return!/^((?!chrome|android).)*safari/i.test(Nt())}function Ft(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,a=1;t&&wt(e)&&(i=e.offsetWidth>0&&Mt(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&Mt(r.height)/e.offsetHeight||1);var o=(Ct(e)?St(e):window).visualViewport,s=!Pt()&&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 It(e){var t=Ft(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 Lt(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Tt(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Rt(e){return St(e).getComputedStyle(e)}function zt(e){return[`table`,`td`,`th`].indexOf(xt(e))>=0}function Bt(e){return((Ct(e)?e.ownerDocument:e.document)||window.document).documentElement}function Vt(e){return xt(e)===`html`?e:e.assignedSlot||e.parentNode||(Tt(e)?e.host:null)||Bt(e)}function Ht(e){return!wt(e)||Rt(e).position===`fixed`?null:e.offsetParent}function Ut(e){var t=/firefox/i.test(Nt());if(/Trident/i.test(Nt())&&wt(e)&&Rt(e).position===`fixed`)return null;var n=Vt(e);for(Tt(n)&&(n=n.host);wt(n)&&[`html`,`body`].indexOf(xt(n))<0;){var r=Rt(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 Wt(e){for(var t=St(e),n=Ht(e);n&&zt(n)&&Rt(n).position===`static`;)n=Ht(n);return n&&(xt(n)===`html`||xt(n)===`body`&&Rt(n).position===`static`)?t:n||Ut(e)||t}function Gt(e){return[`top`,`bottom`].indexOf(e)>=0?`x`:`y`}function Kt(e,t,n){return At(e,jt(t,n))}function qt(e,t,n){var r=Kt(e,t,n);return r>n?n:r}function Jt(){return{top:0,right:0,bottom:0,left:0}}function Yt(e){return Object.assign({},Jt(),e)}function Xt(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var Zt=function(e,t){return e=typeof e==`function`?e(Object.assign({},t.rects,{placement:t.placement})):e,Yt(typeof e==`number`?Xt(e,rt):e)};function Qt(e){var t,n=e.state,r=e.name,i=e.options,a=n.elements.arrow,o=n.modifiersData.popperOffsets,s=kt(n.placement),c=Gt(s),l=[`left`,`right`].indexOf(s)>=0?`height`:`width`;if(!(!a||!o)){var u=Zt(i.padding,n),d=It(a),f=c===`y`?`top`:tt,p=c===`y`?$e:et,m=n.rects.reference[l]+n.rects.reference[c]-o[c]-n.rects.popper[l],h=o[c]-n.rects.reference[c],g=Wt(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=Kt(y,x,b),C=c;n.modifiersData[r]=(t={},t[C]=S,t.centerOffset=S-x,t)}}function $t(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)||Lt(t.elements.popper,r)&&(t.elements.arrow=r))}var en={name:`arrow`,enabled:!0,phase:`main`,fn:Qt,effect:$t,requires:[`popperOffsets`],requiresIfExists:[`preventOverflow`]};function tn(e){return e.split(`-`)[1]}var nn={top:`auto`,right:`auto`,bottom:`auto`,left:`auto`};function rn(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:Mt(n*i)/i||0,y:Mt(r*i)/i||0}}function an(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=tt,b=`top`,x=window;if(l){var S=Wt(n),C=`clientHeight`,w=`clientWidth`;if(S===St(n)&&(S=Bt(n),Rt(S).position!==`static`&&s===`absolute`&&(C=`scrollHeight`,w=`scrollWidth`)),S=S,i===`top`||(i===`left`||i===`right`)&&a===`end`){b=$e;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=et;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&&nn),O=u===!0?rn({x:p,y:h},St(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 on(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:kt(t.placement),variation:tn(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,an(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,an(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 sn={name:`computeStyles`,enabled:!0,phase:`beforeWrite`,fn:on,data:{}},cn={passive:!0};function ln(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=St(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach(function(e){e.addEventListener(`scroll`,n.update,cn)}),s&&c.addEventListener(`resize`,n.update,cn),function(){a&&l.forEach(function(e){e.removeEventListener(`scroll`,n.update,cn)}),s&&c.removeEventListener(`resize`,n.update,cn)}}var un={name:`eventListeners`,enabled:!0,phase:`write`,fn:function(){},effect:ln,data:{}},dn={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function fn(e){return e.replace(/left|right|bottom|top/g,function(e){return dn[e]})}var pn={start:`end`,end:`start`};function mn(e){return e.replace(/start|end/g,function(e){return pn[e]})}function hn(e){var t=St(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function gn(e){return Ft(Bt(e)).left+hn(e).scrollLeft}function _n(e,t){var n=St(e),r=Bt(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;var l=Pt();(l||!l&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}return{width:a,height:o,x:s+gn(e),y:c}}function vn(e){var t=Bt(e),n=hn(e),r=e.ownerDocument?.body,i=At(t.scrollWidth,t.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=At(t.scrollHeight,t.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),o=-n.scrollLeft+gn(e),s=-n.scrollTop;return Rt(r||t).direction===`rtl`&&(o+=At(t.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:o,y:s}}function yn(e){var t=Rt(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function bn(e){return[`html`,`body`,`#document`].indexOf(xt(e))>=0?e.ownerDocument.body:wt(e)&&yn(e)?e:bn(Vt(e))}function xn(e,t){t===void 0&&(t=[]);var n=bn(e),r=n===e.ownerDocument?.body,i=St(n),a=r?[i].concat(i.visualViewport||[],yn(n)?n:[]):n,o=t.concat(a);return r?o:o.concat(xn(Vt(a)))}function Sn(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Cn(e,t){var n=Ft(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 wn(e,t,n){return t===`viewport`?Sn(_n(e,n)):Ct(t)?Cn(t,n):Sn(vn(Bt(e)))}function Tn(e){var t=xn(Vt(e)),n=[`absolute`,`fixed`].indexOf(Rt(e).position)>=0&&wt(e)?Wt(e):e;return Ct(n)?t.filter(function(e){return Ct(e)&&Lt(e,n)&&xt(e)!==`body`}):[]}function En(e,t,n,r){var i=t===`clippingParents`?Tn(e):[].concat(t),a=[].concat(i,[n]),o=a[0],s=a.reduce(function(t,n){var i=wn(e,n,r);return t.top=At(i.top,t.top),t.right=jt(i.right,t.right),t.bottom=jt(i.bottom,t.bottom),t.left=At(i.left,t.left),t},wn(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 Dn(e){var t=e.reference,n=e.element,r=e.placement,i=r?kt(r):null,a=r?tn(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 $e:c={x:o,y:t.y+t.height};break;case et:c={x:t.x+t.width,y:s};break;case tt:c={x:t.x-n.width,y:s};break;default:c={x:t.x,y:t.y}}var l=i?Gt(i):null;if(l!=null){var u=l===`y`?`height`:`width`;switch(a){case it: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 On(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?at:s,l=n.rootBoundary,u=l===void 0?ot:l,d=n.elementContext,f=d===void 0?st:d,p=n.altBoundary,m=p===void 0?!1:p,h=n.padding,g=h===void 0?0:h,_=Yt(typeof g==`number`?Xt(g,rt):g),v=f===`popper`?ct:st,y=e.rects.popper,b=e.elements[m?v:f],x=En(Ct(b)?b:b.contextElement||Bt(e.elements.popper),c,u,o),S=Ft(e.elements.reference),C=Dn({reference:S,element:y,strategy:`absolute`,placement:i}),w=Sn(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 kn(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?ut:c,u=tn(r),d=u?s?lt:lt.filter(function(e){return tn(e)===u}):rt,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]=On(e,{placement:n,boundary:i,rootBoundary:a,padding:o})[kt(n)],t},{});return Object.keys(p).sort(function(e,t){return p[e]-p[t]})}function An(e){if(kt(e)===`auto`)return[];var t=fn(e);return[mn(e),t,mn(t)]}function jn(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,_=kt(g)===g,v=c||(_||!m?[fn(g)]:An(g)),y=[g].concat(v).reduce(function(e,n){return e.concat(kt(n)===`auto`?kn(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=On(t,{placement:E,boundary:u,rootBoundary:d,altBoundary:f,padding:l}),M=k?O?et:tt:O?$e:`top`;b[A]>x[A]&&(M=fn(M));var N=fn(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 Mn={name:`flip`,enabled:!0,phase:`main`,fn:jn,requiresIfExists:[`offset`],data:{_skip:!1}};function Nn(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 Pn(e){return[`top`,et,$e,tt].some(function(t){return e[t]>=0})}function Fn(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=On(t,{elementContext:`reference`}),s=On(t,{altBoundary:!0}),c=Nn(o,r),l=Nn(s,i,a),u=Pn(c),d=Pn(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 In={name:`hide`,enabled:!0,phase:`main`,requiresIfExists:[`preventOverflow`],fn:Fn};function Ln(e,t,n){var r=kt(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 Rn(e){var t=e.state,n=e.options,r=e.name,i=n.offset,a=i===void 0?[0,0]:i,o=ut.reduce(function(e,n){return e[n]=Ln(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 zn={name:`offset`,enabled:!0,phase:`main`,requires:[`popperOffsets`],fn:Rn};function Bn(e){var t=e.state,n=e.name;t.modifiersData[n]=Dn({reference:t.rects.reference,element:t.rects.popper,strategy:`absolute`,placement:t.placement})}var Vn={name:`popperOffsets`,enabled:!0,phase:`read`,fn:Bn,data:{}};function Hn(e){return e===`x`?`y`:`x`}function Un(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=On(t,{boundary:c,rootBoundary:l,padding:d,altBoundary:u}),_=kt(t.placement),v=tn(t.placement),y=!v,b=Gt(_),x=Hn(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`:tt,A=b===`y`?$e:et,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?It(I):{width:0,height:0},ne=t.modifiersData[`arrow#persistent`]?t.modifiersData[`arrow#persistent`].padding:Jt(),R=ne[k],re=ne[A],ie=Kt(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&&Wt(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=Kt(p?jt(N,se):N,M,p?At(ee,ce):ee);S[b]=le,O[b]=le-M}if(s){var ue=b===`x`?`top`:tt,de=b===`x`?$e:et,fe=S[x],H=x===`y`?`height`:`width`,pe=fe+g[ue],me=fe-g[de],he=[`top`,tt].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?qt(ge,fe,_e):Kt(p?ge:pe,fe,p?_e:me);S[x]=ve,O[x]=ve-fe}t.modifiersData[r]=O}}var Wn={name:`preventOverflow`,enabled:!0,phase:`main`,fn:Un,requiresIfExists:[`offset`]};function Gn(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function Kn(e){return e===St(e)||!wt(e)?hn(e):Gn(e)}function qn(e){var t=e.getBoundingClientRect(),n=Mt(t.width)/e.offsetWidth||1,r=Mt(t.height)/e.offsetHeight||1;return n!==1||r!==1}function Jn(e,t,n){n===void 0&&(n=!1);var r=wt(t),i=wt(t)&&qn(t),a=Bt(t),o=Ft(e,i,n),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!n)&&((xt(t)!==`body`||yn(a))&&(s=Kn(t)),wt(t)?(c=Ft(t,!0),c.x+=t.clientLeft,c.y+=t.clientTop):a&&(c.x=gn(a))),{x:o.left+s.scrollLeft-c.x,y:o.top+s.scrollTop-c.y,width:o.width,height:o.height}}function Yn(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 Xn(e){var t=Yn(e);return bt.reduce(function(e,n){return e.concat(t.filter(function(e){return e.phase===n}))},[])}function Zn(e){var t;return function(){return t||=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})}),t}}function Qn(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 $n={placement:`bottom`,modifiers:[],strategy:`absolute`};function er(){return![...arguments].some(function(e){return!(e&&typeof e.getBoundingClientRect==`function`)})}function tr(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,r=n===void 0?[]:n,i=t.defaultOptions,a=i===void 0?$n:i;return function(e,t,n){n===void 0&&(n=a);var i={placement:`bottom`,orderedModifiers:[],options:Object.assign({},$n,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:Ct(e)?xn(e):e.contextElement?xn(e.contextElement):[],popper:xn(t)};var s=Xn(Qn([].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(er(t,n)){i.rects={reference:Jn(t,Wt(n),i.options.strategy===`fixed`),popper:It(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;rgt,afterRead:()=>pt,afterWrite:()=>yt,applyStyles:()=>Ot,arrow:()=>en,auto:()=>nt,basePlacements:()=>rt,beforeMain:()=>mt,beforeRead:()=>dt,beforeWrite:()=>_t,bottom:()=>$e,clippingParents:()=>at,computeStyles:()=>sn,createPopper:()=>ir,createPopperBase:()=>nr,createPopperLite:()=>rr,detectOverflow:()=>On,end:()=>`end`,eventListeners:()=>un,flip:()=>Mn,hide:()=>In,left:()=>tt,main:()=>ht,modifierPhases:()=>bt,offset:()=>zn,placements:()=>ut,popper:()=>st,popperGenerator:()=>tr,popperOffsets:()=>Vn,preventOverflow:()=>Wn,read:()=>ft,reference:()=>ct,right:()=>et,start:()=>it,top:()=>`top`,variationPlacements:()=>lt,viewport:()=>ot,write:()=>vt}),or=new Map,sr={set(e,t,n){or.has(e)||or.set(e,new Map);let r=or.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 or.has(e)&&or.get(e).get(t)||null},remove(e,t){if(!or.has(e))return;let n=or.get(e);n.delete(t),n.size===0&&or.delete(e)}},cr=1e6,lr=1e3,ur=`transitionend`,dr=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,(e,t)=>`#${CSS.escape(t)}`)),e),fr=e=>e==null?`${e}`:Object.prototype.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase(),pr=e=>{do e+=Math.floor(Math.random()*cr);while(document.getElementById(e));return e},mr=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))*lr)},hr=e=>{e.dispatchEvent(new Event(ur))},gr=e=>!e||typeof e!=`object`?!1:(e.jquery!==void 0&&(e=e[0]),e.nodeType!==void 0),_r=e=>gr(e)?e.jquery?e[0]:e:typeof e==`string`&&e.length>0?document.querySelector(dr(e)):null,vr=e=>{if(!gr(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},yr=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,br=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?br(e.parentNode):null},xr=()=>{},Sr=e=>{e.offsetHeight},Cr=()=>window.jQuery&&!document.body.hasAttribute(`data-bs-no-jquery`)?window.jQuery:null,wr=[],Tr=e=>{document.readyState===`loading`?(wr.length||document.addEventListener(`DOMContentLoaded`,()=>{for(let e of wr)e()}),wr.push(e)):e()},Er=()=>document.documentElement.dir===`rtl`,Dr=e=>{Tr(()=>{let t=Cr();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)}})},Or=(e,t=[],n=e)=>typeof e==`function`?e(...t):n,kr=(e,t,n=!0)=>{if(!n){Or(e);return}let r=mr(t)+5,i=!1,a=({target:n})=>{n===t&&(i=!0,t.removeEventListener(ur,a),Or(e))};t.addEventListener(ur,a),setTimeout(()=>{i||hr(t)},r)},Ar=(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))])},jr=/[^.]*(?=\..*)\.|.*/,Mr=/\..*/,Nr=/::\d+$/,Pr={},Fr=1,Ir={mouseenter:`mouseover`,mouseleave:`mouseout`},Lr=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 Rr(e,t){return t&&`${t}::${Fr++}`||e.uidEvent||Fr++}function zr(e){let t=Rr(e);return e.uidEvent=t,Pr[t]=Pr[t]||{},Pr[t]}function Br(e,t){return function n(r){return Yr(r,{delegateTarget:e}),n.oneOff&&Jr.off(e,r.type,t),t.apply(e,[r])}}function Vr(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 Yr(i,{delegateTarget:o}),r.oneOff&&Jr.off(e,i.type,t,n),n.apply(o,[i])}}function Hr(e,t,n=null){return Object.values(e).find(e=>e.callable===t&&e.delegationSelector===n)}function Ur(e,t,n){let r=typeof t==`string`,i=r?n:t||n,a=qr(e);return Lr.has(a)||(a=e),[r,i,a]}function Wr(e,t,n,r,i){if(typeof t!=`string`||!e)return;let[a,o,s]=Ur(t,n,r);t in Ir&&(o=(e=>function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)})(o));let c=zr(e),l=c[s]||(c[s]={}),u=Hr(l,o,a?n:null);if(u){u.oneOff=u.oneOff&&i;return}let d=Rr(o,t.replace(jr,``)),f=a?Vr(e,n,o):Br(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 Gr(e,t,n,r,i){let a=Hr(t[n],r,i);a&&(e.removeEventListener(n,a,!!i),delete t[n][a.uidEvent])}function Kr(e,t,n,r){let i=t[n]||{};for(let[a,o]of Object.entries(i))a.includes(r)&&Gr(e,t,n,o.callable,o.delegationSelector)}function qr(e){return e=e.replace(Mr,``),Ir[e]||e}var Jr={on(e,t,n,r){Wr(e,t,n,r,!1)},one(e,t,n,r){Wr(e,t,n,r,!0)},off(e,t,n,r){if(typeof t!=`string`||!e)return;let[i,a,o]=Ur(t,n,r),s=o!==t,c=zr(e),l=c[o]||{},u=t.startsWith(`.`);if(a!==void 0){if(!Object.keys(l).length)return;Gr(e,c,o,a,i?n:null);return}if(u)for(let n of Object.keys(c))Kr(e,c,n,t.slice(1));for(let[n,r]of Object.entries(l)){let i=n.replace(Nr,``);(!s||t.includes(i))&&Gr(e,c,o,r.callable,r.delegationSelector)}},trigger(e,t,n){if(typeof t!=`string`||!e)return null;let r=Cr(),i=t!==qr(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=Yr(new Event(t,{bubbles:o,cancelable:!0}),n);return c&&l.preventDefault(),s&&e.dispatchEvent(l),l.defaultPrevented&&a&&a.preventDefault(),l}};function Yr(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 Xr(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 Zr(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}var Qr={setDataAttribute(e,t,n){e.setAttribute(`data-bs-${Zr(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-bs-${Zr(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]=Xr(e.dataset[r])}return t},getDataAttribute(e,t){return Xr(e.getAttribute(`data-bs-${Zr(t)}`))}},$r=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=gr(t)?Qr.getDataAttribute(t,`config`):{};return{...this.constructor.Default,...typeof n==`object`?n:{},...gr(t)?Qr.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=gr(t)?`element`:fr(t);if(!new RegExp(r).test(i))throw TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${i}" but expected type "${r}".`)}}},ei=`5.3.3`,ti=class extends $r{constructor(e,t){super(),e=_r(e),e&&(this._element=e,this._config=this._getConfig(t),sr.set(this._element,this.constructor.DATA_KEY,this))}dispose(){sr.remove(this._element,this.constructor.DATA_KEY),Jr.off(this._element,this.constructor.EVENT_KEY);for(let e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t,n=!0){kr(e,t,n)}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return sr.get(_r(e),this.DATA_KEY)}static getOrCreateInstance(e,t={}){return this.getInstance(e)||new this(e,typeof t==`object`?t:null)}static get VERSION(){return ei}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(e){return`${e}${this.EVENT_KEY}`}},ni=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=>dr(e)).join(`,`):null},ri={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=>!yr(e)&&vr(e))},getSelectorFromElement(e){let t=ni(e);return t&&ri.findOne(t)?t:null},getElementFromSelector(e){let t=ni(e);return t?ri.findOne(t):null},getMultipleElementsFromSelector(e){let t=ni(e);return t?ri.find(t):[]}},ii=(e,t=`hide`)=>{let n=`click.dismiss${e.EVENT_KEY}`,r=e.NAME;Jr.on(document,n,`[data-bs-dismiss="${r}"]`,function(n){if([`A`,`AREA`].includes(this.tagName)&&n.preventDefault(),yr(this))return;let i=ri.getElementFromSelector(this)||this.closest(`.${r}`);e.getOrCreateInstance(i)[t]()})},ai=`alert`,oi=`.bs.alert`,si=`close${oi}`,ci=`closed${oi}`,li=`fade`,ui=`show`,di=class e extends ti{static get NAME(){return ai}close(){if(Jr.trigger(this._element,si).defaultPrevented)return;this._element.classList.remove(ui);let e=this._element.classList.contains(li);this._queueCallback(()=>this._destroyElement(),this._element,e)}_destroyElement(){this._element.remove(),Jr.trigger(this._element,ci),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)}})}};ii(di,`close`),Dr(di);var fi=`button`,pi=`.bs.button`,mi=`.data-api`,hi=`active`,gi=`[data-bs-toggle="button"]`,_i=`click${pi}${mi}`,vi=class e extends ti{static get NAME(){return fi}toggle(){this._element.setAttribute(`aria-pressed`,this._element.classList.toggle(hi))}static jQueryInterface(t){return this.each(function(){let n=e.getOrCreateInstance(this);t===`toggle`&&n[t]()})}};Jr.on(document,_i,gi,e=>{e.preventDefault();let t=e.target.closest(gi);vi.getOrCreateInstance(t).toggle()}),Dr(vi);var yi=`swipe`,bi=`.bs.swipe`,xi=`touchstart${bi}`,Si=`touchmove${bi}`,Ci=`touchend${bi}`,wi=`pointerdown${bi}`,Ti=`pointerup${bi}`,Ei=`touch`,Di=`pen`,Oi=`pointer-event`,ki=40,Ai={endCallback:null,leftCallback:null,rightCallback:null},ji={endCallback:`(function|null)`,leftCallback:`(function|null)`,rightCallback:`(function|null)`},Mi=class e extends $r{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 Ai}static get DefaultType(){return ji}static get NAME(){return yi}dispose(){Jr.off(this._element,bi)}_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(),Or(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<=ki)return;let t=e/this._deltaX;this._deltaX=0,t&&Or(t>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(Jr.on(this._element,wi,e=>this._start(e)),Jr.on(this._element,Ti,e=>this._end(e)),this._element.classList.add(Oi)):(Jr.on(this._element,xi,e=>this._start(e)),Jr.on(this._element,Si,e=>this._move(e)),Jr.on(this._element,Ci,e=>this._end(e)))}_eventIsPointerPenTouch(e){return this._supportPointerEvents&&(e.pointerType===Di||e.pointerType===Ei)}static isSupported(){return`ontouchstart`in document.documentElement||navigator.maxTouchPoints>0}},Ni=`carousel`,Pi=`.bs.carousel`,Fi=`.data-api`,Ii=`ArrowLeft`,Li=`ArrowRight`,Ri=500,zi=`next`,Bi=`prev`,Vi=`left`,Hi=`right`,Ui=`slide${Pi}`,Wi=`slid${Pi}`,Gi=`keydown${Pi}`,Ki=`mouseenter${Pi}`,qi=`mouseleave${Pi}`,Ji=`dragstart${Pi}`,Yi=`load${Pi}${Fi}`,Xi=`click${Pi}${Fi}`,Zi=`carousel`,Qi=`active`,$i=`slide`,ea=`carousel-item-end`,ta=`carousel-item-start`,na=`carousel-item-next`,ra=`carousel-item-prev`,ia=`.active`,aa=`.carousel-item`,oa=ia+aa,sa=`.carousel-item img`,ca=`.carousel-indicators`,la=`[data-bs-slide], [data-bs-slide-to]`,ua=`[data-bs-ride="carousel"]`,da={[Ii]:Hi,[Li]:Vi},fa={interval:5e3,keyboard:!0,pause:`hover`,ride:!1,touch:!0,wrap:!0},pa={interval:`(number|boolean)`,keyboard:`boolean`,pause:`(string|boolean)`,ride:`(boolean|string)`,touch:`boolean`,wrap:`boolean`},ma=class e extends ti{constructor(e,t){super(e,t),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=ri.findOne(ca,this._element),this._addEventListeners(),this._config.ride===Zi&&this.cycle()}static get Default(){return fa}static get DefaultType(){return pa}static get NAME(){return Ni}next(){this._slide(zi)}nextWhenVisible(){!document.hidden&&vr(this._element)&&this.next()}prev(){this._slide(Bi)}pause(){this._isSliding&&hr(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){Jr.one(this._element,Wi,()=>this.cycle());return}this.cycle()}}to(e){let t=this._getItems();if(e>t.length-1||e<0)return;if(this._isSliding){Jr.one(this._element,Wi,()=>this.to(e));return}let n=this._getItemIndex(this._getActive());if(n===e)return;let r=e>n?zi:Bi;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&&Jr.on(this._element,Gi,e=>this._keydown(e)),this._config.pause===`hover`&&(Jr.on(this._element,Ki,()=>this.pause()),Jr.on(this._element,qi,()=>this._maybeEnableCycle())),this._config.touch&&Mi.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(let e of ri.find(sa,this._element))Jr.on(e,Ji,e=>e.preventDefault());let e={leftCallback:()=>this._slide(this._directionToOrder(Vi)),rightCallback:()=>this._slide(this._directionToOrder(Hi)),endCallback:()=>{this._config.pause===`hover`&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),Ri+this._config.interval))}};this._swipeHelper=new Mi(this._element,e)}_keydown(e){if(/input|textarea/i.test(e.target.tagName))return;let t=da[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=ri.findOne(ia,this._indicatorsElement);t.classList.remove(Qi),t.removeAttribute(`aria-current`);let n=ri.findOne(`[data-bs-slide-to="${e}"]`,this._indicatorsElement);n&&(n.classList.add(Qi),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===zi,i=t||Ar(this._getItems(),n,r,this._config.wrap);if(i===n)return;let a=this._getItemIndex(i),o=t=>Jr.trigger(this._element,t,{relatedTarget:i,direction:this._orderToDirection(e),from:this._getItemIndex(n),to:a});if(o(Ui).defaultPrevented||!n||!i)return;let s=!!this._interval;this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(a),this._activeElement=i;let c=r?ta:ea,l=r?na:ra;i.classList.add(l),Sr(i),n.classList.add(c),i.classList.add(c),this._queueCallback(()=>{i.classList.remove(c,l),i.classList.add(Qi),n.classList.remove(Qi,l,c),this._isSliding=!1,o(Wi)},n,this._isAnimated()),s&&this.cycle()}_isAnimated(){return this._element.classList.contains($i)}_getActive(){return ri.findOne(oa,this._element)}_getItems(){return ri.find(aa,this._element)}_clearInterval(){this._interval&&=(clearInterval(this._interval),null)}_directionToOrder(e){return Er()?e===Vi?Bi:zi:e===Vi?zi:Bi}_orderToDirection(e){return Er()?e===Bi?Vi:Hi:e===Bi?Hi:Vi}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]()}})}};Jr.on(document,Xi,la,function(e){let t=ri.getElementFromSelector(this);if(!t||!t.classList.contains(Zi))return;e.preventDefault();let n=ma.getOrCreateInstance(t),r=this.getAttribute(`data-bs-slide-to`);if(r){n.to(r),n._maybeEnableCycle();return}if(Qr.getDataAttribute(this,`slide`)===`next`){n.next(),n._maybeEnableCycle();return}n.prev(),n._maybeEnableCycle()}),Jr.on(window,Yi,()=>{let e=ri.find(ua);for(let t of e)ma.getOrCreateInstance(t)}),Dr(ma);var ha=`collapse`,ga=`.bs.collapse`,_a=`.data-api`,va=`show${ga}`,ya=`shown${ga}`,ba=`hide${ga}`,xa=`hidden${ga}`,Sa=`click${ga}${_a}`,Ca=`show`,wa=`collapse`,Ta=`collapsing`,Ea=`collapsed`,Da=`:scope .${wa} .${wa}`,Oa=`collapse-horizontal`,ka=`width`,Aa=`height`,ja=`.collapse.show, .collapse.collapsing`,Ma=`[data-bs-toggle="collapse"]`,Na={parent:null,toggle:!0},Pa={parent:`(null|element)`,toggle:`boolean`},Fa=class e extends ti{constructor(e,t){super(e,t),this._isTransitioning=!1,this._triggerArray=[];let n=ri.find(Ma);for(let e of n){let t=ri.getSelectorFromElement(e),n=ri.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 Na}static get DefaultType(){return Pa}static get NAME(){return ha}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(ja).filter(e=>e!==this._element).map(t=>e.getOrCreateInstance(t,{toggle:!1}))),t.length&&t[0]._isTransitioning||Jr.trigger(this._element,va).defaultPrevented)return;for(let e of t)e.hide();let n=this._getDimension();this._element.classList.remove(wa),this._element.classList.add(Ta),this._element.style[n]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;let r=()=>{this._isTransitioning=!1,this._element.classList.remove(Ta),this._element.classList.add(wa,Ca),this._element.style[n]=``,Jr.trigger(this._element,ya)},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()||Jr.trigger(this._element,ba).defaultPrevented)return;let e=this._getDimension();this._element.style[e]=`${this._element.getBoundingClientRect()[e]}px`,Sr(this._element),this._element.classList.add(Ta),this._element.classList.remove(wa,Ca);for(let e of this._triggerArray){let t=ri.getElementFromSelector(e);t&&!this._isShown(t)&&this._addAriaAndCollapsedClass([e],!1)}this._isTransitioning=!0;let t=()=>{this._isTransitioning=!1,this._element.classList.remove(Ta),this._element.classList.add(wa),Jr.trigger(this._element,xa)};this._element.style[e]=``,this._queueCallback(t,this._element,!0)}_isShown(e=this._element){return e.classList.contains(Ca)}_configAfterMerge(e){return e.toggle=!!e.toggle,e.parent=_r(e.parent),e}_getDimension(){return this._element.classList.contains(Oa)?ka:Aa}_initializeChildren(){if(!this._config.parent)return;let e=this._getFirstLevelChildren(Ma);for(let t of e){let e=ri.getElementFromSelector(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}}_getFirstLevelChildren(e){let t=ri.find(Da,this._config.parent);return ri.find(e,this._config.parent).filter(e=>!t.includes(e))}_addAriaAndCollapsedClass(e,t){if(e.length)for(let n of e)n.classList.toggle(Ea,!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]()}})}};Jr.on(document,Sa,Ma,function(e){(e.target.tagName===`A`||e.delegateTarget&&e.delegateTarget.tagName===`A`)&&e.preventDefault();for(let e of ri.getMultipleElementsFromSelector(this))Fa.getOrCreateInstance(e,{toggle:!1}).toggle()}),Dr(Fa);var Ia=`dropdown`,La=`.bs.dropdown`,Ra=`.data-api`,za=`Escape`,Ba=`Tab`,Va=`ArrowUp`,Ha=`ArrowDown`,Ua=2,Wa=`hide${La}`,Ga=`hidden${La}`,Ka=`show${La}`,qa=`shown${La}`,Ja=`click${La}${Ra}`,Ya=`keydown${La}${Ra}`,Xa=`keyup${La}${Ra}`,Za=`show`,Qa=`dropup`,$a=`dropend`,eo=`dropstart`,to=`dropup-center`,no=`dropdown-center`,ro=`[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)`,io=`${ro}.${Za}`,ao=`.dropdown-menu`,oo=`.navbar`,so=`.navbar-nav`,co=`.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)`,lo=Er()?`top-end`:`top-start`,uo=Er()?`top-start`:`top-end`,fo=Er()?`bottom-end`:`bottom-start`,po=Er()?`bottom-start`:`bottom-end`,mo=Er()?`left-start`:`right-start`,ho=Er()?`right-start`:`left-start`,go=`top`,_o=`bottom`,vo={autoClose:!0,boundary:`clippingParents`,display:`dynamic`,offset:[0,2],popperConfig:null,reference:`toggle`},yo={autoClose:`(boolean|string)`,boundary:`(string|element)`,display:`string`,offset:`(array|string|function)`,popperConfig:`(null|object|function)`,reference:`(string|element|object)`},bo=class e extends ti{constructor(e,t){super(e,t),this._popper=null,this._parent=this._element.parentNode,this._menu=ri.next(this._element,ao)[0]||ri.prev(this._element,ao)[0]||ri.findOne(ao,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return vo}static get DefaultType(){return yo}static get NAME(){return Ia}toggle(){return this._isShown()?this.hide():this.show()}show(){if(yr(this._element)||this._isShown())return;let e={relatedTarget:this._element};if(!Jr.trigger(this._element,Ka,e).defaultPrevented){if(this._createPopper(),`ontouchstart`in document.documentElement&&!this._parent.closest(so))for(let e of[].concat(...document.body.children))Jr.on(e,`mouseover`,xr);this._element.focus(),this._element.setAttribute(`aria-expanded`,!0),this._menu.classList.add(Za),this._element.classList.add(Za),Jr.trigger(this._element,qa,e)}}hide(){if(yr(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(!Jr.trigger(this._element,Wa,e).defaultPrevented){if(`ontouchstart`in document.documentElement)for(let e of[].concat(...document.body.children))Jr.off(e,`mouseover`,xr);this._popper&&this._popper.destroy(),this._menu.classList.remove(Za),this._element.classList.remove(Za),this._element.setAttribute(`aria-expanded`,`false`),Qr.removeDataAttribute(this._menu,`popper`),Jr.trigger(this._element,Ga,e)}}_getConfig(e){if(e=super._getConfig(e),typeof e.reference==`object`&&!gr(e.reference)&&typeof e.reference.getBoundingClientRect!=`function`)throw TypeError(`${Ia.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return e}_createPopper(){if(ar===void 0)throw TypeError(`Bootstrap's dropdowns require Popper (https://popper.js.org)`);let e=this._element;this._config.reference===`parent`?e=this._parent:gr(this._config.reference)?e=_r(this._config.reference):typeof this._config.reference==`object`&&(e=this._config.reference);let t=this._getPopperConfig();this._popper=ir(e,this._menu,t)}_isShown(){return this._menu.classList.contains(Za)}_getPlacement(){let e=this._parent;if(e.classList.contains($a))return mo;if(e.classList.contains(eo))return ho;if(e.classList.contains(to))return go;if(e.classList.contains(no))return _o;let t=getComputedStyle(this._menu).getPropertyValue(`--bs-position`).trim()===`end`;return e.classList.contains(Qa)?t?uo:lo:t?po:fo}_detectNavbar(){return this._element.closest(oo)!==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`)&&(Qr.setDataAttribute(this._menu,`popper`,`static`),e.modifiers=[{name:`applyStyles`,enabled:!1}]),{...e,...Or(this._config.popperConfig,[e])}}_selectMenuItem({key:e,target:t}){let n=ri.find(co,this._menu).filter(e=>vr(e));n.length&&Ar(n,t,e===Ha,!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===Ua||t.type===`keyup`&&t.key!==Ba)return;let n=ri.find(io);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===Ba||/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===za,i=[Va,Ha].includes(t.key);if(!i&&!r||n&&!r)return;t.preventDefault();let a=this.matches(ro)?this:ri.prev(this,ro)[0]||ri.next(this,ro)[0]||ri.findOne(ro,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())}};Jr.on(document,Ya,ro,bo.dataApiKeydownHandler),Jr.on(document,Ya,ao,bo.dataApiKeydownHandler),Jr.on(document,Ja,bo.clearMenus),Jr.on(document,Xa,bo.clearMenus),Jr.on(document,Ja,ro,function(e){e.preventDefault(),bo.getOrCreateInstance(this).toggle()}),Dr(bo);var xo=`backdrop`,So=`fade`,Co=`show`,wo=`mousedown.bs.${xo}`,To={className:`modal-backdrop`,clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:`body`},Eo={className:`string`,clickCallback:`(function|null)`,isAnimated:`boolean`,isVisible:`boolean`,rootElement:`(element|string)`},Do=class extends $r{constructor(e){super(),this._config=this._getConfig(e),this._isAppended=!1,this._element=null}static get Default(){return To}static get DefaultType(){return Eo}static get NAME(){return xo}show(e){if(!this._config.isVisible){Or(e);return}this._append();let t=this._getElement();this._config.isAnimated&&Sr(t),t.classList.add(Co),this._emulateAnimation(()=>{Or(e)})}hide(e){if(!this._config.isVisible){Or(e);return}this._getElement().classList.remove(Co),this._emulateAnimation(()=>{this.dispose(),Or(e)})}dispose(){this._isAppended&&=(Jr.off(this._element,wo),this._element.remove(),!1)}_getElement(){if(!this._element){let e=document.createElement(`div`);e.className=this._config.className,this._config.isAnimated&&e.classList.add(So),this._element=e}return this._element}_configAfterMerge(e){return e.rootElement=_r(e.rootElement),e}_append(){if(this._isAppended)return;let e=this._getElement();this._config.rootElement.append(e),Jr.on(e,wo,()=>{Or(this._config.clickCallback)}),this._isAppended=!0}_emulateAnimation(e){kr(e,this._getElement(),this._config.isAnimated)}},Oo=`focustrap`,ko=`.bs.focustrap`,Ao=`focusin${ko}`,jo=`keydown.tab${ko}`,Mo=`Tab`,No=`forward`,Po=`backward`,Fo={autofocus:!0,trapElement:null},Io={autofocus:`boolean`,trapElement:`element`},Lo=class extends $r{constructor(e){super(),this._config=this._getConfig(e),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return Fo}static get DefaultType(){return Io}static get NAME(){return Oo}activate(){this._isActive||=(this._config.autofocus&&this._config.trapElement.focus(),Jr.off(document,ko),Jr.on(document,Ao,e=>this._handleFocusin(e)),Jr.on(document,jo,e=>this._handleKeydown(e)),!0)}deactivate(){this._isActive&&(this._isActive=!1,Jr.off(document,ko))}_handleFocusin(e){let{trapElement:t}=this._config;if(e.target===document||e.target===t||t.contains(e.target))return;let n=ri.focusableChildren(t);n.length===0?t.focus():this._lastTabNavDirection===Po?n[n.length-1].focus():n[0].focus()}_handleKeydown(e){e.key===Mo&&(this._lastTabNavDirection=e.shiftKey?Po:No)}},Ro=`.fixed-top, .fixed-bottom, .is-fixed, .sticky-top`,zo=`.sticky-top`,Bo=`padding-right`,Vo=`margin-right`,Ho=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,Bo,t=>t+e),this._setElementAttributes(Ro,Bo,t=>t+e),this._setElementAttributes(zo,Vo,t=>t-e)}reset(){this._resetElementAttributes(this._element,`overflow`),this._resetElementAttributes(this._element,Bo),this._resetElementAttributes(Ro,Bo),this._resetElementAttributes(zo,Vo)}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&&Qr.setDataAttribute(e,t,n)}_resetElementAttributes(e,t){this._applyManipulationCallback(e,e=>{let n=Qr.getDataAttribute(e,t);if(n===null){e.style.removeProperty(t);return}Qr.removeDataAttribute(e,t),e.style.setProperty(t,n)})}_applyManipulationCallback(e,t){if(gr(e)){t(e);return}for(let n of ri.find(e,this._element))t(n)}},Uo=`modal`,Wo=`.bs.modal`,Go=`.data-api`,Ko=`Escape`,qo=`hide${Wo}`,Jo=`hidePrevented${Wo}`,Yo=`hidden${Wo}`,Xo=`show${Wo}`,Zo=`shown${Wo}`,Qo=`resize${Wo}`,$o=`click.dismiss${Wo}`,es=`mousedown.dismiss${Wo}`,ts=`keydown.dismiss${Wo}`,ns=`click${Wo}${Go}`,rs=`modal-open`,is=`fade`,as=`show`,os=`modal-static`,ss=`.modal.show`,cs=`.modal-dialog`,ls=`.modal-body`,us=`[data-bs-toggle="modal"]`,ds={backdrop:!0,focus:!0,keyboard:!0},fs={backdrop:`(boolean|string)`,focus:`boolean`,keyboard:`boolean`},ps=class e extends ti{constructor(e,t){super(e,t),this._dialog=ri.findOne(cs,this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new Ho,this._addEventListeners()}static get Default(){return ds}static get DefaultType(){return fs}static get NAME(){return Uo}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||this._isTransitioning||Jr.trigger(this._element,Xo,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(rs),this._adjustDialog(),this._backdrop.show(()=>this._showElement(e)))}hide(){!this._isShown||this._isTransitioning||Jr.trigger(this._element,qo).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(as),this._queueCallback(()=>this._hideModal(),this._element,this._isAnimated()))}dispose(){Jr.off(window,Wo),Jr.off(this._dialog,Wo),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Do({isVisible:!!this._config.backdrop,isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Lo({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=ri.findOne(ls,this._dialog);t&&(t.scrollTop=0),Sr(this._element),this._element.classList.add(as),this._queueCallback(()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,Jr.trigger(this._element,Zo,{relatedTarget:e})},this._dialog,this._isAnimated())}_addEventListeners(){Jr.on(this._element,ts,e=>{if(e.key===Ko){if(this._config.keyboard){this.hide();return}this._triggerBackdropTransition()}}),Jr.on(window,Qo,()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()}),Jr.on(this._element,es,e=>{Jr.one(this._element,$o,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(rs),this._resetAdjustments(),this._scrollBar.reset(),Jr.trigger(this._element,Yo)})}_isAnimated(){return this._element.classList.contains(is)}_triggerBackdropTransition(){if(Jr.trigger(this._element,Jo).defaultPrevented)return;let e=this._element.scrollHeight>document.documentElement.clientHeight,t=this._element.style.overflowY;t===`hidden`||this._element.classList.contains(os)||(e||(this._element.style.overflowY=`hidden`),this._element.classList.add(os),this._queueCallback(()=>{this._element.classList.remove(os),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=Er()?`paddingLeft`:`paddingRight`;this._element.style[e]=`${t}px`}if(!n&&e){let e=Er()?`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)}})}};Jr.on(document,ns,us,function(e){let t=ri.getElementFromSelector(this);[`A`,`AREA`].includes(this.tagName)&&e.preventDefault(),Jr.one(t,Xo,e=>{e.defaultPrevented||Jr.one(t,Yo,()=>{vr(this)&&this.focus()})});let n=ri.findOne(ss);n&&ps.getInstance(n).hide(),ps.getOrCreateInstance(t).toggle(this)}),ii(ps),Dr(ps);var ms=`offcanvas`,hs=`.bs.offcanvas`,gs=`.data-api`,_s=`load${hs}${gs}`,vs=`Escape`,ys=`show`,bs=`showing`,xs=`hiding`,Ss=`offcanvas-backdrop`,Cs=`.offcanvas.show`,ws=`show${hs}`,Ts=`shown${hs}`,Es=`hide${hs}`,Ds=`hidePrevented${hs}`,Os=`hidden${hs}`,ks=`resize${hs}`,As=`click${hs}${gs}`,js=`keydown.dismiss${hs}`,Ms=`[data-bs-toggle="offcanvas"]`,Ns={backdrop:!0,keyboard:!0,scroll:!1},Ps={backdrop:`(boolean|string)`,keyboard:`boolean`,scroll:`boolean`},Fs=class e extends ti{constructor(e,t){super(e,t),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Ns}static get DefaultType(){return Ps}static get NAME(){return ms}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||Jr.trigger(this._element,ws,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||new Ho().hide(),this._element.setAttribute(`aria-modal`,!0),this._element.setAttribute(`role`,`dialog`),this._element.classList.add(bs),this._queueCallback(()=>{(!this._config.scroll||this._config.backdrop)&&this._focustrap.activate(),this._element.classList.add(ys),this._element.classList.remove(bs),Jr.trigger(this._element,Ts,{relatedTarget:e})},this._element,!0))}hide(){!this._isShown||Jr.trigger(this._element,Es).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(xs),this._backdrop.hide(),this._queueCallback(()=>{this._element.classList.remove(ys,xs),this._element.removeAttribute(`aria-modal`),this._element.removeAttribute(`role`),this._config.scroll||new Ho().reset(),Jr.trigger(this._element,Os)},this._element,!0))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){let e=()=>{if(this._config.backdrop===`static`){Jr.trigger(this._element,Ds);return}this.hide()},t=!!this._config.backdrop;return new Do({className:Ss,isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?e:null})}_initializeFocusTrap(){return new Lo({trapElement:this._element})}_addEventListeners(){Jr.on(this._element,js,e=>{if(e.key===vs){if(this._config.keyboard){this.hide();return}Jr.trigger(this._element,Ds)}})}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)}})}};Jr.on(document,As,Ms,function(e){let t=ri.getElementFromSelector(this);if([`A`,`AREA`].includes(this.tagName)&&e.preventDefault(),yr(this))return;Jr.one(t,Os,()=>{vr(this)&&this.focus()});let n=ri.findOne(Cs);n&&n!==t&&Fs.getInstance(n).hide(),Fs.getOrCreateInstance(t).toggle(this)}),Jr.on(window,_s,()=>{for(let e of ri.find(Cs))Fs.getOrCreateInstance(e).show()}),Jr.on(window,ks,()=>{for(let e of ri.find(`[aria-modal][class*=show][class*=offcanvas-]`))getComputedStyle(e).position!==`fixed`&&Fs.getOrCreateInstance(e).hide()}),ii(Fs),Dr(Fs);var Is={"*":[`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:[]},Ls=new Set([`background`,`cite`,`href`,`itemtype`,`longdesc`,`poster`,`src`,`xlink:href`]),Rs=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,zs=(e,t)=>{let n=e.nodeName.toLowerCase();return t.includes(n)?Ls.has(n)?!!Rs.test(e.nodeValue):!0:t.filter(e=>e instanceof RegExp).some(e=>e.test(n))};function Bs(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)zs(t,i)||e.removeAttribute(t.nodeName)}return r.body.innerHTML}var Vs=`TemplateFactory`,Hs={allowList:Is,content:{},extraClass:``,html:!1,sanitize:!0,sanitizeFn:null,template:`
`},Us={allowList:`object`,content:`object`,extraClass:`(string|function)`,html:`boolean`,sanitize:`boolean`,sanitizeFn:`(null|function)`,template:`string`},Ws={entry:`(string|element|function|null)`,selector:`(string|element)`},Gs=class extends $r{constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return Hs}static get DefaultType(){return Us}static get NAME(){return Vs}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},Ws)}_setContent(e,t,n){let r=ri.findOne(n,e);if(r){if(t=this._resolvePossibleFunction(t),!t){r.remove();return}if(gr(t)){this._putElementInTemplate(_r(t),r);return}if(this._config.html){r.innerHTML=this._maybeSanitize(t);return}r.textContent=t}}_maybeSanitize(e){return this._config.sanitize?Bs(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return Or(e,[this])}_putElementInTemplate(e,t){if(this._config.html){t.innerHTML=``,t.append(e);return}t.textContent=e.textContent}},Ks=`tooltip`,qs=new Set([`sanitize`,`allowList`,`sanitizeFn`]),Js=`fade`,Ys=`modal`,Xs=`show`,Zs=`.tooltip-inner`,Qs=`.${Ys}`,$s=`hide.bs.modal`,ec=`hover`,tc=`focus`,nc=`click`,rc=`manual`,ic=`hide`,ac=`hidden`,oc=`show`,sc=`shown`,cc=`inserted`,lc=`click`,uc=`focusin`,dc=`focusout`,fc=`mouseenter`,pc=`mouseleave`,mc={AUTO:`auto`,TOP:`top`,RIGHT:Er()?`left`:`right`,BOTTOM:`bottom`,LEFT:Er()?`right`:`left`},hc={allowList:Is,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`},gc={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`},_c=class e extends ti{constructor(e,t){if(ar===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 hc}static get DefaultType(){return gc}static get NAME(){return Ks}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),Jr.off(this._element.closest(Qs),$s,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=Jr.trigger(this._element,this.constructor.eventName(oc)),t=(br(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),Jr.trigger(this._element,this.constructor.eventName(cc))),this._popper=this._createPopper(n),n.classList.add(Xs),`ontouchstart`in document.documentElement)for(let e of[].concat(...document.body.children))Jr.on(e,`mouseover`,xr);this._queueCallback(()=>{Jr.trigger(this._element,this.constructor.eventName(sc)),this._isHovered===!1&&this._leave(),this._isHovered=!1},this.tip,this._isAnimated())}hide(){if(!(!this._isShown()||Jr.trigger(this._element,this.constructor.eventName(ic)).defaultPrevented)){if(this._getTipElement().classList.remove(Xs),`ontouchstart`in document.documentElement)for(let e of[].concat(...document.body.children))Jr.off(e,`mouseover`,xr);this._activeTrigger[nc]=!1,this._activeTrigger[tc]=!1,this._activeTrigger[ec]=!1,this._isHovered=null,this._queueCallback(()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute(`aria-describedby`),Jr.trigger(this._element,this.constructor.eventName(ac)))},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(Js,Xs),t.classList.add(`bs-${this.constructor.NAME}-auto`);let n=pr(this.constructor.NAME).toString();return t.setAttribute(`id`,n),this._isAnimated()&&t.classList.add(Js),t}setContent(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new Gs({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[Zs]: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(Js)}_isShown(){return this.tip&&this.tip.classList.contains(Xs)}_createPopper(e){let t=mc[Or(this._config.placement,[this,e,this._element]).toUpperCase()];return ir(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 Or(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,...Or(this._config.popperConfig,[t])}}_setListeners(){let e=this._config.trigger.split(` `);for(let t of e)if(t===`click`)Jr.on(this._element,this.constructor.eventName(lc),this._config.selector,e=>{this._initializeOnDelegatedTarget(e).toggle()});else if(t!==rc){let e=t===ec?this.constructor.eventName(fc):this.constructor.eventName(uc),n=t===ec?this.constructor.eventName(pc):this.constructor.eventName(dc);Jr.on(this._element,e,this._config.selector,e=>{let t=this._initializeOnDelegatedTarget(e);t._activeTrigger[e.type===`focusin`?tc:ec]=!0,t._enter()}),Jr.on(this._element,n,this._config.selector,e=>{let t=this._initializeOnDelegatedTarget(e);t._activeTrigger[e.type===`focusout`?tc:ec]=t._element.contains(e.relatedTarget),t._leave()})}this._hideModalHandler=()=>{this._element&&this.hide()},Jr.on(this._element.closest(Qs),$s,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=Qr.getDataAttributes(this._element);for(let e of Object.keys(t))qs.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:_r(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]()}})}};Dr(_c);var vc=`popover`,yc=`.popover-header`,bc=`.popover-body`,xc={..._c.Default,content:``,offset:[0,8],placement:`right`,template:``,trigger:`click`},Sc={..._c.DefaultType,content:`(null|string|element|function)`};Dr(class e extends _c{static get Default(){return xc}static get DefaultType(){return Sc}static get NAME(){return vc}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[yc]:this._getTitle(),[bc]: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 Cc=`scrollspy`,wc=`.bs.scrollspy`,Tc=`.data-api`,Ec=`activate${wc}`,Dc=`click${wc}`,Oc=`load${wc}${Tc}`,kc=`dropdown-item`,Ac=`active`,jc=`[data-bs-spy="scroll"]`,Mc=`[href]`,Nc=`.nav, .list-group`,Pc=`.nav-link`,Fc=`${Pc}, .nav-item > ${Pc}, .list-group-item`,Ic=`.dropdown`,Lc=`.dropdown-toggle`,Rc={offset:null,rootMargin:`0px 0px -25%`,smoothScroll:!1,target:null,threshold:[.1,.5,1]},zc={offset:`(number|null)`,rootMargin:`string`,smoothScroll:`boolean`,target:`element`,threshold:`array`},Bc=class e extends ti{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 Rc}static get DefaultType(){return zc}static get NAME(){return Cc}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=_r(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&&(Jr.off(this._config.target,Dc),Jr.on(this._config.target,Dc,Mc,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=ri.find(Mc,this._config.target);for(let t of e){if(!t.hash||yr(t))continue;let e=ri.findOne(decodeURI(t.hash),this._element);vr(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(Ac),this._activateParents(e),Jr.trigger(this._element,Ec,{relatedTarget:e}))}_activateParents(e){if(e.classList.contains(kc)){ri.findOne(Lc,e.closest(Ic)).classList.add(Ac);return}for(let t of ri.parents(e,Nc))for(let e of ri.prev(t,Fc))e.classList.add(Ac)}_clearActiveClass(e){e.classList.remove(Ac);let t=ri.find(`${Mc}.${Ac}`,e);for(let e of t)e.classList.remove(Ac)}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]()}})}};Jr.on(window,Oc,()=>{for(let e of ri.find(jc))Bc.getOrCreateInstance(e)}),Dr(Bc);var Vc=`tab`,Hc=`.bs.tab`,Uc=`hide${Hc}`,Wc=`hidden${Hc}`,Gc=`show${Hc}`,Kc=`shown${Hc}`,qc=`click${Hc}`,Jc=`keydown${Hc}`,Yc=`load${Hc}`,Xc=`ArrowLeft`,Zc=`ArrowRight`,Qc=`ArrowUp`,$c=`ArrowDown`,el=`Home`,tl=`End`,nl=`active`,rl=`fade`,il=`show`,al=`dropdown`,ol=`.dropdown-toggle`,sl=`.dropdown-menu`,cl=`:not(${ol})`,ll=`.list-group, .nav, [role="tablist"]`,ul=`.nav-item, .list-group-item`,dl=`.nav-link${cl}, .list-group-item${cl}, [role="tab"]${cl}`,fl=`[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]`,pl=`${dl}, ${fl}`,ml=`.${nl}[data-bs-toggle="tab"], .${nl}[data-bs-toggle="pill"], .${nl}[data-bs-toggle="list"]`,hl=class e extends ti{constructor(e){super(e),this._parent=this._element.closest(ll),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),Jr.on(this._element,Jc,e=>this._keydown(e)))}static get NAME(){return Vc}show(){let e=this._element;if(this._elemIsActive(e))return;let t=this._getActiveElem(),n=t?Jr.trigger(t,Uc,{relatedTarget:e}):null;Jr.trigger(e,Gc,{relatedTarget:t}).defaultPrevented||n&&n.defaultPrevented||(this._deactivate(t,e),this._activate(e,t))}_activate(e,t){e&&(e.classList.add(nl),this._activate(ri.getElementFromSelector(e)),this._queueCallback(()=>{if(e.getAttribute(`role`)!==`tab`){e.classList.add(il);return}e.removeAttribute(`tabindex`),e.setAttribute(`aria-selected`,!0),this._toggleDropDown(e,!0),Jr.trigger(e,Kc,{relatedTarget:t})},e,e.classList.contains(rl)))}_deactivate(e,t){e&&(e.classList.remove(nl),e.blur(),this._deactivate(ri.getElementFromSelector(e)),this._queueCallback(()=>{if(e.getAttribute(`role`)!==`tab`){e.classList.remove(il);return}e.setAttribute(`aria-selected`,!1),e.setAttribute(`tabindex`,`-1`),this._toggleDropDown(e,!1),Jr.trigger(e,Wc,{relatedTarget:t})},e,e.classList.contains(rl)))}_keydown(t){if(![Xc,Zc,Qc,$c,el,tl].includes(t.key))return;t.stopPropagation(),t.preventDefault();let n=this._getChildren().filter(e=>!yr(e)),r;if([el,tl].includes(t.key))r=n[t.key===el?0:n.length-1];else{let e=[Zc,$c].includes(t.key);r=Ar(n,t.target,e,!0)}r&&(r.focus({preventScroll:!0}),e.getOrCreateInstance(r).show())}_getChildren(){return ri.find(pl,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=ri.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(al))return;let r=(e,r)=>{let i=ri.findOne(e,n);i&&i.classList.toggle(r,t)};r(ol,nl),r(sl,il),n.setAttribute(`aria-expanded`,t)}_setAttributeIfNotExists(e,t,n){e.hasAttribute(t)||e.setAttribute(t,n)}_elemIsActive(e){return e.classList.contains(nl)}_getInnerElement(e){return e.matches(pl)?e:ri.findOne(pl,e)}_getOuterElement(e){return e.closest(ul)||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]()}})}};Jr.on(document,qc,fl,function(e){[`A`,`AREA`].includes(this.tagName)&&e.preventDefault(),!yr(this)&&hl.getOrCreateInstance(this).show()}),Jr.on(window,Yc,()=>{for(let e of ri.find(ml))hl.getOrCreateInstance(e)}),Dr(hl);var gl=`toast`,_l=`.bs.toast`,vl=`mouseover${_l}`,yl=`mouseout${_l}`,bl=`focusin${_l}`,xl=`focusout${_l}`,Sl=`hide${_l}`,Cl=`hidden${_l}`,wl=`show${_l}`,Tl=`shown${_l}`,El=`fade`,Dl=`hide`,Ol=`show`,kl=`showing`,Al={animation:`boolean`,autohide:`boolean`,delay:`number`},jl={animation:!0,autohide:!0,delay:5e3},Ml=class e extends ti{constructor(e,t){super(e,t),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return jl}static get DefaultType(){return Al}static get NAME(){return gl}show(){Jr.trigger(this._element,wl).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add(El),this._element.classList.remove(Dl),Sr(this._element),this._element.classList.add(Ol,kl),this._queueCallback(()=>{this._element.classList.remove(kl),Jr.trigger(this._element,Tl),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){!this.isShown()||Jr.trigger(this._element,Sl).defaultPrevented||(this._element.classList.add(kl),this._queueCallback(()=>{this._element.classList.add(Dl),this._element.classList.remove(kl,Ol),Jr.trigger(this._element,Cl)},this._element,this._config.animation))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(Ol),super.dispose()}isShown(){return this._element.classList.contains(Ol)}_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(){Jr.on(this._element,vl,e=>this._onInteraction(e,!0)),Jr.on(this._element,yl,e=>this._onInteraction(e,!1)),Jr.on(this._element,bl,e=>this._onInteraction(e,!0)),Jr.on(this._element,xl,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)}})}};ii(Ml),Dr(Ml);var Nl=typeof window<`u`,Pl,Fl=e=>Pl=e,Il=Symbol();function Ll(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var Rl;(function(e){e.direct=`direct`,e.patchObject=`patch object`,e.patchFunction=`patch function`})(Rl||={});var zl=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 Bl(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 Vl(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){Kl(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function Hl(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function Ul(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 Wl=typeof navigator==`object`?navigator:{userAgent:``},Gl=/Macintosh/.test(Wl.userAgent)&&/AppleWebKit/.test(Wl.userAgent)&&!/Safari/.test(Wl.userAgent),Kl=Nl?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!Gl?ql:`msSaveOrOpenBlob`in Wl?Jl:Yl:()=>{};function ql(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?Ul(r):Hl(r.href)?Vl(e,t,n):(r.target=`_blank`,Ul(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){Ul(r)},0))}function Jl(e,t=`download`,n){if(typeof e==`string`)if(Hl(e))Vl(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){Ul(t)})}else navigator.msSaveOrOpenBlob(Bl(e,n),t)}function Yl(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return Vl(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(zl.HTMLElement))||`safari`in zl,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||Gl)&&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:Xl}=Object;function Zl(){let e=xe(!0),t=e.run(()=>R({})),n=[],r=[],i=Oe({install(e){Fl(i),i._a=e,e.provide(Il,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 Ql=()=>{};function $l(e,t,n,r=Ql){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&Ie()&&Ce(i),i}function eu(e,...t){e.forEach(e=>{e(...t)})}var tu=e=>e(),nu=Symbol(),ru=Symbol();function iu(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];Ll(i)&&Ll(r)&&e.hasOwnProperty(n)&&!fe(r)&&!ce(r)?e[n]=iu(i,r):e[n]=r}return e}var au=Symbol();function ou(e){return!Ll(e)||!Object.prototype.hasOwnProperty.call(e,au)}var{assign:su}=Object;function cu(e){return!!(fe(e)&&e.effect)}function lu(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():{}),su(s(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=Oe(B(()=>{Fl(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return l=uu(e,u,t,n,r,!0),l}function uu(e,t,n={},r,i,a){let o,s=su({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:Rl.patchFunction,storeId:e,events:void 0}):(iu(r.state.value[e],t),n={type:Rl.patchObject,payload:t,storeId:e,events:void 0});let i=m=Symbol();D().then(()=>{m===i&&(l=!0)}),u=!0,eu(d,n,r.state.value[e])}let g=a?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{su(e,t)})}:Ql;function _(){o.stop(),d.clear(),f.clear(),r._s.delete(e)}let v=(t,n=``)=>{if(nu in t)return t[ru]=n,t;let i=function(){Fl(r);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}eu(f,{args:n,name:i[ru],store:y,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:y,n)}catch(e){throw eu(o,e),e}return l instanceof Promise?l.then(e=>(eu(a,e),e)).catch(e=>(eu(o,e),Promise.reject(e))):(eu(a,l),l)};return i[nu]=!0,i[ru]=n,i},y=he({_p:r,$id:e,$onAction:$l.bind(null,f),$patch:h,$reset:g,$subscribe(t,n={}){let i=$l(d,t,n.detached,()=>a()),a=o.run(()=>z(()=>r.state.value[e],r=>{(n.flush===`sync`?u:l)&&t({storeId:e,type:Rl.direct,events:void 0},r)},su({},c,n)));return i},$dispose:_});r._s.set(e,y);let b=(r._a&&r._a.runWithContext||tu)(()=>r._e.run(()=>(o=xe()).run(()=>t({action:v}))));for(let t in b){let n=b[t];fe(n)&&!cu(n)||ce(n)?a||(p&&ou(n)&&(fe(n)?n.value=p[t]:iu(n,p[t])),r.state.value[e][t]=n):typeof n==`function`&&(b[t]=v(n,t),s.actions[t]=n)}return su(y,b),su(Be(y),b),Object.defineProperty(y,`$state`,{get:()=>r.state.value[e],set:e=>{h(t=>{su(t,e)})}}),r._p.forEach(e=>{su(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 du(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=S();return n||=o?w(Il,null):null,n&&Fl(n),n=Pl,n._s.has(e)||(i?uu(e,t,r,n):lu(e,r,n)),n._s.get(e)}return a.$id=e,a}function fu(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`},pu=[`year`,`years`,`month`,`months`,`date`,`dates`,`week`,`datetime`,`datetimerange`,`daterange`,`monthrange`,`yearrange`],mu=[`sun`,`mon`,`tue`,`wed`,`thu`,`fri`,`sat`],hu=`update:modelValue`,gu=`change`,_u=`input`,vu=Symbol(`INSTALLED_KEY`),yu=[``,`default`,`small`,`large`],bu=[`left`,`center`,`right`],xu=typeof global==`object`&&global&&global.Object===Object&&global,Su=typeof self==`object`&&self&&self.Object===Object&&self,Cu=xu||Su||Function(`return this`)(),wu=Cu.Symbol,Tu=Object.prototype,Eu=Tu.hasOwnProperty,Du=Tu.toString,Ou=wu?wu.toStringTag:void 0;function ku(e){var t=Eu.call(e,Ou),n=e[Ou];try{e[Ou]=void 0;var r=!0}catch{}var i=Du.call(e);return r&&(t?e[Ou]=n:delete e[Ou]),i}var Au=Object.prototype.toString;function ju(e){return Au.call(e)}var Mu=`[object Null]`,Nu=`[object Undefined]`,Pu=wu?wu.toStringTag:void 0;function Fu(e){return e==null?e===void 0?Nu:Mu:Pu&&Pu in Object(e)?ku(e):ju(e)}function Iu(e){return typeof e==`object`&&!!e}var Lu=`[object Symbol]`;function Ru(e){return typeof e==`symbol`||Iu(e)&&Fu(e)==Lu}function zu(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n0){if(++t>=Nd)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function Ld(e){return function(){return e}}var Rd=function(){try{var e=Ed(Object,`defineProperty`);return e({},``,{}),e}catch{}}(),zd=Id(Rd?function(e,t){return Rd(e,`toString`,{configurable:!0,enumerable:!1,value:Ld(t),writable:!0})}:od);function Bd(e,t){for(var n=-1,r=e==null?0:e.length;++n-1}var Kd=9007199254740991,qd=/^(?:0|[1-9]\d*)$/;function Jd(e,t){var n=typeof e;return t??=Kd,!!t&&(n==`number`||n!=`symbol`&&qd.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=rf}function of(e){return e!=null&&af(e.length)&&!dd(e)}function sf(e,t,n){if(!Yu(n))return!1;var r=typeof t;return(r==`number`?of(n)&&Jd(t,n.length):r==`string`&&t in n)?Xd(n[t],e):!1}function cf(e){return nf(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&&sf(n[0],n[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++r-1}function Np(e,t){var n=this.__data__,r=Op(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function Pp(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t0&&n(s)?t>1?om(s,t-1,n,r,i):rm(i,s):r||(i[i.length]=s)}return i}function sm(e){return e!=null&&e.length?om(e,1):[]}function cm(e){return zd(tf(e,void 0,sm),e+``)}var lm=ip(Object.getPrototypeOf,Object),um=`[object Object]`,dm=Function.prototype,fm=Object.prototype,pm=dm.toString,mm=fm.hasOwnProperty,hm=pm.call(Object);function gm(e){if(!Iu(e)||Fu(e)!=um)return!1;var t=lm(e);if(t===null)return!0;var n=mm.call(t,`constructor`)&&t.constructor;return typeof n==`function`&&n instanceof n&&pm.call(n)==hm}function _m(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 bm(e,t,n){return n===void 0&&(n=t,t=void 0),n!==void 0&&(n=td(n),n=n===n?n:0),t!==void 0&&(t=td(t),t=t===t?t:0),ym(td(e),t,n)}function xm(){this.__data__=new Pp,this.size=0}function Sm(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function Cm(e){return this.__data__.get(e)}function wm(e){return this.__data__.has(e)}var Tm=200;function Em(e,t){var n=this.__data__;if(n instanceof Pp){var r=n.__data__;if(!Fp||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&Fg?new jg:void 0;for(a.set(e,t),a.set(t,e);++d=t||n<0||d&&r>=a}function _(){var e=N_();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(N_())}function x(){var e=N_(),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 R_(e,t,n){(n!==void 0&&!Xd(e[t],n)||n===void 0&&!(t in e))&&Yd(e,t,n)}function z_(e){return Iu(e)&&of(e)}function B_(e,t){if(!(t===`constructor`&&typeof e[t]==`function`)&&t!=`__proto__`)return e[t]}function V_(e){return $d(e,fp(e))}function H_(e,t,n,r,i,a,o){var s=B_(e,n),c=B_(t,n),l=o.get(c);if(l){R_(e,n,l);return}var u=a?a(s,c,n+``,e,t,o):void 0,d=u===void 0;if(d){var f=Bu(c),p=!f&&Sf(c),m=!f&&!p&&tp(c);u=c,f||p||m?Bu(s)?u=s:z_(s)?u=Md(s):p?(d=!1,u=Pm(c,!0)):m?(d=!1,u=vh(c,!0)):u=[]:gm(c)||_f(c)?(u=s,_f(s)?u=V_(s):(!Yu(s)||dd(s))&&(u=zh(c))):d=!1}d&&(o.set(c,u),i(u,c,r,a,o),o.delete(c)),R_(e,n,u)}function U_(e,t,n,r,i){e!==t&&k_(t,function(a,o){if(i||=new Dm,Yu(a))H_(e,t,o,n,U_,r,i);else{var s=r?r(B_(e,o),a,o+``,e,t,i):void 0;s===void 0&&(s=a),R_(e,o,s)}},fp)}function W_(e,t,n){for(var r=-1,i=e==null?0:e.length;++r1,t}),$d(e,Gm(e),n),r&&(n=wg(n,uv|dv|fv,lv));for(var i=t.length;i--;)cv(n,t[i]);return n});function mv(e,t,n,r){if(!Yu(e))return e;t=Qp(t,e);for(var i=-1,a=t.length,o=a-1,s=e;s!=null&&++i=Sv){var l=t?null:xv(e);if(l)return Rg(l);o=!1,i=Ng,c=new jg}else c=t?[]:s;outer:for(;++re===void 0,Ev=e=>typeof e==`boolean`,Dv=e=>typeof e==`number`,Ov=e=>!e&&e!==0||b(e)&&e.length===0||N(e)&&!Object.keys(e).length,kv=e=>typeof Element>`u`?!1:e instanceof Element,Av=e=>rv(e),jv=e=>I(e)?!Number.isNaN(Number(e)):!1,Mv=e=>e===window;h();var Nv=e=>Object.keys(e),Pv=e=>Object.entries(e),Fv=(e,t,n)=>({get value(){return nm(e,t,n)},set value(n){vv(e,t,n)}}),Iv=`__epPropKey`,X=e=>e,Lv=e=>N(e)&&!!e.__epPropKey,Rv=(e,t)=>{if(!N(e)||Lv(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,[Iv]:!0};return T(e,`default`)&&(s.default=i),s},Z=e=>ev(Object.entries(e).map(([e,t])=>[e,Rv(t,e)])),zv=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`}}),Bv={scroll:({scrollTop:e,fixed:t})=>Dv(e)&&Ev(t),[gu]:e=>Ev(e)},Vv=class extends Error{constructor(e){super(e),this.name=`ElementPlusError`}};function Hv(e,t){throw new Vv(`[${e}] ${t}`)}function Uv(e,t){{let n=I(e)?new Vv(`[${e}] ${t}`):e;console.warn(n)}}var Wv=[`class`,`style`],Gv=/^on[A-Z]/,Kv=(e={})=>{let{excludeListeners:t=!1,excludeKeys:r}=e,i=B(()=>(r?.value||[]).concat(Wv)),a=n();return a?B(()=>ev(Object.entries(a.proxy?.$attrs).filter(([e])=>!i.value.includes(e)&&!(t&&Gv.test(e))))):(Uv(`use-attrs`,`getCurrentInstance() returned null. useAttrs() must be called at the top of a setup function`),B(()=>({})))};function qv(e,t){let n=V();return Ee(()=>{n.value=e()},{...t,flush:t?.flush??`sync`}),pe(n)}function Jv(e,t){return Ie()?(Ce(e,t),!0):!1}var Yv=new WeakMap,Xv=(...e)=>{let t=e[0],r=n()?.proxy??Ie();if(r==null&&!S())throw Error(`injectLocal must be called in setup`);return r&&Yv.has(r)&&t in Yv.get(r)?Yv.get(r)[t]:w(...e)},Zv=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var Qv=e=>e!==void 0,$v=e=>e!=null,ey=Object.prototype.toString,ty=e=>ey.call(e)===`[object Object]`,ny=(e,t,n)=>Math.min(n,Math.max(t,e)),ry=()=>{},iy=ay();function ay(){var e,t;return Zv&&!!(!((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 oy(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 sy(e,t={}){let n,r,i=ry,a=e=>{clearTimeout(e),i(),i=ry},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 cy(...e){let t=0,n,r=!0,i=ry,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=ry)};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 ly(e){return e.endsWith(`rem`)?Number.parseFloat(e)*16:Number.parseFloat(e)}function uy(e){return Array.isArray(e)?e:[e]}function dy(e){return e||n()}function fy(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 py(e){return fy(B(e))}function my(e,t=200,n={}){return oy(sy(t,n),e)}function hy(e,t=200,n={}){let r=R(ze(e)),i=my(()=>{r.value=e.value},t,n);return z(e,()=>i()),He(r)}function gy(e,t=200,n=!1,r=!0,i=!1){return oy(cy(t,n,r,i),e)}function _y(e,t=!0,n){dy(n)?P(e,n):t?e():D(e)}function vy(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,Zv&&l()),Jv(c),{isPending:He(a),start:l,stop:c}}function yy(e,t,n){return z(e,t,{...n,immediate:!0})}var by=Zv?window:void 0,xy=Zv?window.document:void 0;Zv&&window.navigator,Zv&&window.location;function Sy(e){let t=ze(e);return t?.$el??t}function Cy(...e){let t=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),n=B(()=>{let t=uy(ze(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0});return yy(()=>[n.value?.map(e=>Sy(e))??[by].filter(e=>e!=null),uy(ze(n.value?e[1]:e[0])),uy(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=ty(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 wy=!1;function Ty(e,t,n={}){let{window:r=by,ignore:i=[],capture:a=!0,detectIframe:o=!1,controls:s=!1}=n;if(!r)return s?{stop:ry,cancel:ry,trigger:ry}:ry;if(iy&&!wy){wy=!0;let e={passive:!0};Array.from(r.document.body.children).forEach(t=>t.addEventListener(`click`,ry,e)),r.document.documentElement.addEventListener(`click`,ry,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=Sy(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=Sy(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=[Cy(r,`click`,e=>{p||(p=!0,setTimeout(()=>{p=!1},0),f(e))},{passive:!0,capture:a}),Cy(r,`pointerdown`,t=>{let n=Sy(e);c=!l(t)&&!!(n&&!t.composedPath().includes(n))},{passive:!0}),o&&Cy(r,`blur`,n=>{setTimeout(()=>{let i=Sy(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 Ey(){let e=V(!1),t=n();return t&&P(()=>{e.value=!0},t),e}function Dy(e){let t=Ey();return B(()=>(t.value,!!e()))}function Oy(e,t,n={}){let{window:r=by,...i}=n,a,o=Dy(()=>r&&`MutationObserver`in r),s=()=>{a&&=(a.disconnect(),void 0)},c=z(B(()=>{let t=uy(ze(e)).map(Sy).filter($v);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 Jv(u),{isSupported:o,stop:u,takeRecords:l}}function ky(e,t,n={}){let{window:r=by,document:i=r?.document,flush:a=`sync`}=n;if(!r||!i)return ry;let o,s=e=>{o?.(),o=e},c=Ee(()=>{let n=Sy(e);if(n){let{stop:e}=Oy(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 Jv(l),l}function Ay(e={}){let{window:t=by,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};Cy(t,`blur`,e=>{e.relatedTarget===null&&s()},e),Cy(t,`focus`,s,e)}return r&&ky(o,s,{document:i}),s(),o}var jy=Symbol(`vueuse-ssr-width`);function My(){let e=S()?Xv(jy,null):null;return typeof e==`number`?e:void 0}function Ny(e,t={}){let{window:n=by,ssrWidth:r=My()}=t,i=Dy(()=>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>=ly(n[1])),i&&a&&(a=r<=ly(i[1])),t?!a:a});return}i.value&&(o.value=n.matchMedia(ze(e)),s.value=o.value.matches)}),Cy(o,`change`,e=>{s.value=e.matches},{passive:!0}),B(()=>s.value)}function Py(e){return JSON.parse(JSON.stringify(e))}function Fy(e,t,n={}){let{window:r=by,initialValue:i,observe:a=!1}=n,o=V(i),s=B(()=>{var e;return Sy(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&&Oy(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 Iy(e={}){let{document:t=xy}=e;if(!t)return V(`visible`);let n=V(t.visibilityState);return Cy(t,`visibilitychange`,()=>{n.value=t.visibilityState},{passive:!0}),n}function Ly(e,t,n={}){let{window:r=by,...i}=n,a,o=Dy(()=>r&&`ResizeObserver`in r),s=()=>{a&&=(a.disconnect(),void 0)},c=z(B(()=>{let t=ze(e);return Array.isArray(t)?t.map(e=>Sy(e)):[Sy(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 Jv(l),{isSupported:o,stop:l}}function Ry(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=Sy(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 Ly(e,g),z(()=>Sy(e),e=>!e&&g()),Oy(e,g,{attributeFilter:[`style`,`class`]}),i&&Cy(`scroll`,g,{capture:!0,passive:!0}),r&&Cy(`resize`,g,{passive:!0}),_y(()=>{a&&g()}),{height:s,bottom:c,left:l,right:u,top:d,width:f,x:p,y:m,update:g}}function zy(e,t={width:0,height:0},n={}){let{window:r=by,box:i=`content-box`}=n,a=B(()=>{var t;return(t=Sy(e))==null||(t=t.namespaceURI)==null?void 0:t.includes(`svg`)}),o=V(t.width),s=V(t.height),{stop:c}=Ly(e,([t])=>{let n=i===`border-box`?t.borderBoxSize:i===`content-box`?t.contentBoxSize:t.devicePixelContentBoxSize;if(r&&a.value){let t=Sy(e);if(t){let e=t.getBoundingClientRect();o.value=e.width,s.value=e.height}}else if(n){let e=uy(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);_y(()=>{let n=Sy(e);n&&(o.value=`offsetWidth`in n?n.offsetWidth:t.width,s.value=`offsetHeight`in n?n.offsetHeight:t.height)});let l=z(()=>Sy(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 By(e,t,n={}){let{root:r,rootMargin:i,threshold:a=0,window:o=by,immediate:s=!0}=n,c=Dy(()=>o&&`IntersectionObserver`in o),l=B(()=>uy(ze(e)).map(Sy).filter($v)),u=ry,d=V(s),f=c.value?z(()=>[l.value,Sy(r),ze(i),d.value],([e,n,r])=>{if(u(),!d.value||!e.length)return;let i=new IntersectionObserver(t,{root:Sy(n),rootMargin:r,threshold:a});e.forEach(e=>e&&i.observe(e)),u=()=>{i.disconnect(),u=ry}},{immediate:s,flush:`post`}):ry,p=()=>{u(),f(),d.value=!1};return Jv(p),{isSupported:c,isActive:d,pause(){u(),d.value=!1},resume(){d.value=!0},stop:p}}function Vy(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):Py(e):e,_=()=>Qv(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 Hy(e={}){let{window:t=by}=e;if(!t)return V(!1);let n=V(t.document.hasFocus()),r={passive:!0};return Cy(t,`blur`,()=>{n.value=!1},r),Cy(t,`focus`,()=>{n.value=!0},r),n}function Uy(e={}){let{window:t=by,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(),_y(l);let u={passive:!0};return Cy(`resize`,l,u),t&&o===`visual`&&t.visualViewport&&Cy(t.visualViewport,`resize`,l,u),i&&z(Ny(`(orientation: portrait)`),()=>l()),{width:s,height:c}}function Wy(){let e=V(),t=R(0),n=B(()=>({minWidth:`${Math.max(t.value,11)}px`}));return Ly(e,()=>{t.value=e.value?.getBoundingClientRect().width??0}),{calculatorRef:e,calculatorWidth:t,inputStyle:n}}var Gy=({from:e,replacement:t,scope:n,version:r,ref:i,type:a=`API`},o)=>{z(()=>l(o),o=>{o&&Uv(n,`[${a}] ${e} is about to be deprecated in version ${r}, please use ${t} instead. For more detail, please visit: ${i} `)},{immediate:!0})},Ky=`a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])`,qy=e=>typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot,Jy=e=>typeof Element>`u`?!1:e instanceof Element,Yy=e=>getComputedStyle(e).position===`fixed`?!1:e.offsetParent!==null,Xy=e=>Array.from(e.querySelectorAll(Ky)).filter(e=>Zy(e)&&Yy(e)),Zy=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}},Qy=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},$y=e=>!e.getAttribute(`aria-owns`),eb=(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},tb=(e,t)=>{if(!e||!e.focus)return;let n=!1;Jy(e)&&!Zy(e)&&!e.getAttribute(`tabindex`)&&(e.setAttribute(`tabindex`,`-1`),n=!0),e.focus(t),Jy(e)&&n&&e.removeAttribute(`tabindex`)},nb=e=>{e&&(tb(e),!$y(e)&&e.click())},rb=()=>Zv&&/firefox/i.test(window.navigator.userAgent),ib=()=>Zv&&/android/i.test(window.navigator.userAgent);h();var ab=(e=``)=>e.replace(/[|\\{}()[\]^$+*?.]/g,`\\$&`).replace(/-/g,`\\x2d`),ob=e=>ve(e),sb=`utils/dom/style`,cb=(e=``)=>e.split(` `).filter(e=>!!e.trim()),lb=(e,t)=>{if(!e||!t)return!1;if(t.includes(` `))throw Error(`className should not contain space.`);return e.classList.contains(t)},ub=(e,t)=>{!e||!t.trim()||e.classList.add(...cb(t))},db=(e,t)=>{!e||!t.trim()||e.classList.remove(...cb(t))},fb=(e,t)=>{if(!Zv||!e||!t||qy(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]}},pb=(e,t,n)=>{if(!(!e||!t))if(N(t))Pv(t).forEach(([t,n])=>pb(e,t,n));else{let i=r(t);e.style[i]=n}};function mb(e,t=`px`){if(!e&&e!==0)return``;if(Dv(e)||jv(e))return`${e}${t}`;if(I(e))return e;Uv(sb,`binding value must be a string or number`)}var hb=(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}},gb={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}`}}},_b=e=>(t,n)=>vb(t,n,l(e)),vb=(e,t,n)=>nm(n,e,e).replace(/\{(\w+)\}/g,(e,n)=>`${t?.[n]??`{${n}}`}`),yb=e=>({lang:B(()=>l(e).name),locale:fe(e)?e:R(e),t:_b(e)}),bb=Symbol(`localeContextKey`),xb=e=>{let t=e||w(bb,R());return yb(B(()=>t.value||gb))},Sb=`is-`,Cb=(e,t,n,r,i)=>{let a=`${e}-${t}`;return n&&(a+=`-${n}`),r&&(a+=`__${r}`),i&&(a+=`--${i}`),a},wb=Symbol(`namespaceContextKey`),Tb=e=>{let t=e||(n()?w(wb,R(`el`)):R(`el`));return B(()=>l(t)||`el`)},Q=(e,t)=>{let n=Tb(t);return{namespace:n,b:(t=``)=>Cb(n.value,e,t,``,``),e:t=>t?Cb(n.value,e,``,t,``):``,m:t=>t?Cb(n.value,e,``,``,t):``,be:(t,r)=>t&&r?Cb(n.value,e,t,r,``):``,em:(t,r)=>t&&r?Cb(n.value,e,``,t,r):``,bm:(t,r)=>t&&r?Cb(n.value,e,t,``,r):``,bem:(t,r,i)=>t&&r&&i?Cb(n.value,e,t,r,i):``,is:(e,...t)=>{let n=t.length>=1?t[0]:!0;return e&&n?`${Sb}${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 Eb(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 Db=e=>Zv?window.requestAnimationFrame(e):setTimeout(e,16),Ob=e=>Zv?window.cancelAnimationFrame(e):clearTimeout(e),kb=(e,t)=>{if(!Zv)return!1;let n={undefined:`overflow`,true:`overflow-y`,false:`overflow-x`}[String(t)],r=fb(e,n);return[`scroll`,`auto`,`overlay`].some(e=>r.includes(e))},Ab=(e,t)=>{if(!Zv)return;let n=e;for(;n;){if([window,document,document.documentElement].includes(n))return window;if(kb(n,t))return n;n=qy(n)?n.host:n.parentNode}return n},jb,Mb=e=>{if(!Zv)return 0;if(jb!==void 0)return jb;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),jb=n-i,jb};function Nb(e,t){if(!Zv)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 Pb(e,t,n,r,i){let o=Date.now(),s,c=()=>{let l=Date.now()-o,u=Eb(l>r?r:l,t,n,r);Mv(e)?e.scrollTo(window.pageXOffset,u):e.scrollTop=u,l{s&&Ob(s)}}var Fb=(e,t)=>Mv(t)?e.ownerDocument.documentElement:t,Ib=e=>Mv(e)?window.scrollY:e.scrollTop,Lb=(e,t={})=>{fe(e)||Hv(`[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,db(document.body,r.value))},200))};z(e,e=>{if(!e){c();return}s=!1,a=!lb(document.body,r.value),a&&(o=document.body.style.width,ub(document.body,r.value)),i=Mb(n.namespace.value);let t=document.documentElement.clientHeight0&&(t||l===`scroll`)&&a&&(document.body.style.width=`calc(100% - ${i}px)`)}),Ce(()=>c())},Rb=(e,t,{checkForDefaultPrevented:n=!0}={})=>r=>{let i=e?.(r);if(n===!1||!i)return t?.(r)},zb=e=>t=>t.pointerType===`mouse`?e(t):void 0,Bb=e=>{if(e.code&&e.code!==`Unidentified`)return e.code;let t=Vb(e);if(t){if(Object.values(Y).includes(t))return t;switch(t){case` `:return Y.space;default:return``}}return``},Vb=e=>{let t=e.key&&e.key!==`Unidentified`?e.key:``;if(!t&&e.type===`keyup`&&ib()){let n=e.target;t=n.value.charAt(n.selectionStart-1)}return t},Hb=Rv({type:X(Boolean),default:null}),Ub=Rv({type:X(Function)}),Wb=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&&Zv;n&&f(t,!0),(h.value||!n)&&g(e)},y=e=>{if(p.disabled===!0||!Zv)return;let n=m.value&&Zv;n&&f(t,!1),(h.value||!n)&&_(e)},b=e=>{Ev(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]:Hb,[r]:Ub},useModelToggleEmits:i}},{useModelToggle:Gb,useModelToggleProps:Kb,useModelToggleEmits:qb}=Wb(`modelValue`),Jb=e=>{let t=n();return B(()=>t?.proxy?.$props?.[e])},Yb=(e,t,n={})=>{let r={name:`updateState`,enabled:!0,phase:`write`,fn:({state:e})=>{let t=Xb(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=ir(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 Xb(e){let t=Object.keys(e.elements);return{styles:ev(t.map(t=>[t,e.styles[t]||{}])),attributes:ev(t.map(t=>[t,e.attributes[t]]))}}var Zb=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}}},Qb=(e,t=0)=>{if(t===0)return e;let n=R(N(t)&&!!t.initVal),r=null,i=t=>{if(Tv(t)){n.value=e.value;return}r&&clearTimeout(r),r=setTimeout(()=>{n.value=e.value},t)},a=e=>{e===`leading`?Dv(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 $b(){let e,t=(t,r)=>{n(),e=globalThis.setTimeout(t,r)},n=()=>{e!==void 0&&(globalThis.clearTimeout(e),e=void 0)};return Jv(()=>n()),{registerTimeout:t,cancelTimeout:n}}var ex={prefix:Math.floor(Math.random()*1e4),current:0},tx=Symbol(`elIdInjection`),nx=()=>n()?w(tx,ex):ex,rx=e=>{let t=nx();!Zv&&t===ex&&Uv(`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=E4(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&t3.assertOptions(n,{silentJSONParsing:n3.transitional(n3.boolean),forcedJSONParsing:n3.transitional(n3.boolean),clarifyTimeoutError:n3.transitional(n3.boolean),legacyInterceptorReqResOrdering:n3.transitional(n3.boolean)},!1),r!=null&&($.isFunction(r)?t.paramsSerializer={serialize:r}:t3.assertOptions(r,{encode:n3.function,serialize:n3.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),t3.assertOptions(t,{baseUrl:n3.spelling(`baseURL`),withXsrfToken:n3.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=j2.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||J2;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=[Z4.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 f4(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 a3(e){return function(t){return e.apply(null,t)}}function o3(e){return $.isObject(e)&&e.isAxiosError===!0}var s3={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(s3).forEach(([e,t])=>{s3[t]=e});function c3(e){let t=new r3(e),n=s0(r3.prototype.request,t);return $.extend(n,r3.prototype,t,{allOwnKeys:!0}),$.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return c3(E4(e,t))},n}var l3=c3(l4);l3.Axios=r3,l3.CanceledError=f4,l3.CancelToken=i3,l3.isCancel=d4,l3.VERSION=R4,l3.toFormData=V2,l3.AxiosError=F2,l3.Cancel=l3.CanceledError,l3.all=function(e){return Promise.all(e)},l3.spread=a3,l3.isAxiosError=o3,l3.mergeConfig=E4,l3.AxiosHeaders=j2,l3.formToJSON=e=>o4($.isHTMLForm(e)?new FormData(e):e),l3.getAdapter=Y4.getAdapter,l3.HttpStatusCode=s3,l3.default=l3;var u3=l3.create({baseURL:Ke(),headers:{Accept:`application/json`,"Content-Type":`application/json`}});u3.interceptors.request.use(e=>{let t=localStorage.getItem(Xe);return t&&(e.headers.Authorization=`Bearer ${t}`),e}),u3.interceptors.response.use(e=>e,e=>{if(l3.isAxiosError(e)&&e.response?.status===401){localStorage.removeItem(Xe);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 d3(){if(Qe())return k1;let{data:e}=await u3.get(`/me/menus`);return p3(e)}function f3(){return k1}function p3(e){let t=e?.data??e;if(!Array.isArray(t))throw Error(`菜单接口返回格式无效(expect data 为数组)`);return t}var m3=`modulepreload`,h3=function(e){return`/admin/`+e},g3={},_3=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=h3(t,n),t in g3)return;g3[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`:m3,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)})},v3={"admin-competitions-list":()=>_3(()=>import(`./CompetitionListView-CoQ3YPwP.js`),__vite__mapDeps([0,1,2,3,4,5,6])),"admin-competition-form":()=>_3(()=>import(`./CompetitionFormView-D8jLLcdP.js`),__vite__mapDeps([7,1,2,3,4,5,8,9])),"admin-competition-workspace":()=>_3(()=>import(`./CompetitionFormView-D8jLLcdP.js`),__vite__mapDeps([7,1,2,3,4,5,8,9])),"admin-reviewers-list":()=>_3(()=>import(`./ReviewerManageView-Wd5gJQQE.js`),__vite__mapDeps([10,1,2,3,4,5,11])),"admin-review-portal":()=>_3(()=>import(`./ReviewPortalView-CqaN5RIJ.js`),__vite__mapDeps([12,1,2,5,4,13]))},y3=du(`adminMenu`,()=>{let e=R([]);function t(t){e.value=t}return{menus:e,setMenus:t}}),b3=[],x3=!1;function S3(e){b3.push(e)}function C3(e){for(let t of[...b3].reverse())e.hasRoute(t)&&e.removeRoute(t);b3.length=0,x3=!1}function w3(e,t,n){for(let r of n)if(!(r.section&&!r.name))if(r.children?.length){if(!r.name||!r.path)continue;e.addRoute(t,{path:r.path,name:r.name,component:()=>_3(()=>import(`./AdminMenuGroupLayout-CcXLpVEJ.js`),__vite__mapDeps([14,1,2])),meta:{title:r.title,permissionCode:r.permissionCode,menuGroup:!0},children:[]}),S3(r.name),w3(e,r.name,r.children)}else{if(!r.name||!r.path)continue;let n=v3[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}}),S3(r.name)}}async function T3(e){if(x3)return;let t;try{t=await d3()}catch(e){let n=e instanceof Error?e.message:`菜单加载失败`;TZ.error(`${n},已使用本地降级菜单,请检查接口与登录态。`),t=f3()}y3().setMenus(t),w3(e,`AdminLayout`,t),e.addRoute(`AdminLayout`,{path:``,name:`admin-home-redirect`,redirect:{name:`admin-competitions-list`}}),S3(`admin-home-redirect`),e.addRoute(`AdminLayout`,{path:`competitions/new`,name:`admin-competition-new`,component:v3[`admin-competition-form`],meta:{title:`新建赛事`,hideInMenu:!0}}),S3(`admin-competition-new`),e.addRoute(`AdminLayout`,{path:`competitions/:id/edit`,name:`admin-competition-edit`,component:v3[`admin-competition-form`],meta:{title:`编辑赛事`,hideInMenu:!0}}),S3(`admin-competition-edit`),e.addRoute(`AdminLayout`,{path:`competition/workspace`,name:`admin-competition-workspace`,component:v3[`admin-competition-workspace`],meta:{title:`赛事配置`,hideInMenu:!0}}),S3(`admin-competition-workspace`),e.addRoute(`AdminLayout`,{path:`competition/ws/:pathMatch(.*)*`,name:`admin-competition-ws-legacy-redirect`,redirect:{name:`admin-competition-workspace`}}),S3(`admin-competition-ws-legacy-redirect`),x3=!0}function E3(){return x3}var D3=du(`adminAuth`,()=>{let e=R(localStorage.getItem(`cxxfds_admin_token`)??``),t=B(()=>!!e.value.trim());function n(t){e.value=t,t?localStorage.setItem(Xe,t):localStorage.removeItem(Xe)}function r(e){n(``),C3(e)}return{token:e,isAuthenticated:t,setToken:n,logout:r}}),O3=()=>_3(()=>import(`./MainLayout-It4G9mV5.js`),__vite__mapDeps([15,1,2,4,8,16,17,18]));function k3(){let e=localStorage.getItem(Ye),t=localStorage.getItem(Ze);return t?e?{name:`participant-apply`,params:{slug:t},replace:!0}:{name:`participant-login`,params:{slug:t},replace:!0}:{path:`/c`,replace:!0}}var A3=C1({history:H$(`/admin/`),routes:[{path:`/`,redirect:k3},{path:`/c`,name:`participant-landing`,component:()=>_3(()=>import(`./ParticipantLandingView-BbMRFwfo.js`),__vite__mapDeps([19,2,17]))},{path:`/c/:slug/login`,name:`participant-login`,component:()=>_3(()=>import(`./LoginView-Dow8cv1q.js`),__vite__mapDeps([20,2,4,8,21,18])),meta:{guestOnly:!0}},{path:`/c/:slug/review/login`,name:`reviewer-login`,component:()=>_3(()=>import(`./ReviewerLoginView-DXA2ytBM.js`),__vite__mapDeps([22,2,4,8,21,18])),meta:{guestReviewerOnly:!0}},{path:`/c/:slug/review`,component:()=>_3(()=>import(`./ReviewerLayout-DDNz7TUe.js`),__vite__mapDeps([23,1,2,4,8,24,17,18])),meta:{requiresReviewerAuth:!0},children:[{path:`applications/:id(\\d+)`,name:`reviewer-application-detail`,component:()=>_3(()=>import(`./ReviewerApplicationDetailView-BhLappy-.js`),__vite__mapDeps([25,1,2,4,26]))},{path:``,name:`reviewer-projects`,component:()=>_3(()=>import(`./ReviewerProjectsView-D1P_1yT9.js`),__vite__mapDeps([27,1,2,4,28]))}]},{path:`/c/:slug`,component:O3,meta:{requiresAuth:!0},children:[{path:``,redirect:e=>({name:`participant-apply`,params:{slug:e.params.slug}})},{path:`apply`,name:`participant-apply`,component:()=>_3(()=>import(`./ApplyView-DGeQJz8H.js`),__vite__mapDeps([29,1,2,4,8,30]))}]},{path:`/app`,redirect:()=>{let e=localStorage.getItem(Ze);return e?{name:`participant-apply`,params:{slug:e}}:{path:`/c`}}},{path:`/app/apply`,redirect:()=>{let e=localStorage.getItem(Ze);return e?{name:`participant-apply`,params:{slug:e}}:{path:`/c`}}},{path:`/admin/login`,name:`admin-login`,component:()=>_3(()=>import(`./AdminLoginView-BtMABMAm.js`),__vite__mapDeps([31,1,2,4,32]))},{path:`/admin`,name:`AdminLayout`,component:()=>_3(()=>import(`./AdminLayout-CnAgmXtu.js`),__vite__mapDeps([33,1,2,3,4,5,34])),children:[]}]});A3.beforeEach(async e=>{let t=e.params.slug==null?``:String(e.params.slug).trim();!Je(e.path)&&t&&localStorage.setItem(Ze,t);let n=localStorage.getItem(Ye);if(Je(e.path)){let{token:n,competitionSlug:r}=Ge();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=D3();return e.name===`admin-login`||e.path===`/admin/login`?t.isAuthenticated?(E3()||await T3(A3),{name:`admin-competitions-list`,replace:!0}):!0:t.isAuthenticated?E3()?!0:(await T3(A3),{...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}:k3()}return!0});var j3=Zl();ke(E1).use(j3).use(A3).use(vQ,{locale:yQ}).mount(`#app`);export{ps as A,T1 as C,du as D,TZ as E,fu as O,I1 as S,UZ as T,F1 as _,W1 as a,n0 as b,K1 as c,L1 as d,N1 as f,i0 as g,H1 as h,l3 as i,bo as k,r0 as l,M1 as m,y3 as n,t0 as o,U1 as p,u3 as r,a0 as s,D3 as t,o0 as u,e0 as v,w1 as w,P1 as x,G1 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=E4(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&t3.assertOptions(n,{silentJSONParsing:n3.transitional(n3.boolean),forcedJSONParsing:n3.transitional(n3.boolean),clarifyTimeoutError:n3.transitional(n3.boolean),legacyInterceptorReqResOrdering:n3.transitional(n3.boolean)},!1),r!=null&&($.isFunction(r)?t.paramsSerializer={serialize:r}:t3.assertOptions(r,{encode:n3.function,serialize:n3.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),t3.assertOptions(t,{baseUrl:n3.spelling(`baseURL`),withXsrfToken:n3.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=j2.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||J2;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=[Z4.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 f4(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 a3(e){return function(t){return e.apply(null,t)}}function o3(e){return $.isObject(e)&&e.isAxiosError===!0}var s3={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(s3).forEach(([e,t])=>{s3[t]=e});function c3(e){let t=new r3(e),n=s0(r3.prototype.request,t);return $.extend(n,r3.prototype,t,{allOwnKeys:!0}),$.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return c3(E4(e,t))},n}var l3=c3(l4);l3.Axios=r3,l3.CanceledError=f4,l3.CancelToken=i3,l3.isCancel=d4,l3.VERSION=R4,l3.toFormData=V2,l3.AxiosError=F2,l3.Cancel=l3.CanceledError,l3.all=function(e){return Promise.all(e)},l3.spread=a3,l3.isAxiosError=o3,l3.mergeConfig=E4,l3.AxiosHeaders=j2,l3.formToJSON=e=>o4($.isHTMLForm(e)?new FormData(e):e),l3.getAdapter=Y4.getAdapter,l3.HttpStatusCode=s3,l3.default=l3;var u3=l3.create({baseURL:Ke(),headers:{Accept:`application/json`,"Content-Type":`application/json`}});u3.interceptors.request.use(e=>{let t=localStorage.getItem(Xe);return t&&(e.headers.Authorization=`Bearer ${t}`),e}),u3.interceptors.response.use(e=>e,e=>{if(l3.isAxiosError(e)&&e.response?.status===401){localStorage.removeItem(Xe);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 d3(){if(Qe())return k1;let{data:e}=await u3.get(`/me/menus`);return p3(e)}function f3(){return k1}function p3(e){let t=e?.data??e;if(!Array.isArray(t))throw Error(`菜单接口返回格式无效(expect data 为数组)`);return t}var m3=`modulepreload`,h3=function(e){return`/admin/`+e},g3={},_3=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=h3(t,n),t in g3)return;g3[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`:m3,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)})},v3={"admin-competitions-list":()=>_3(()=>import(`./CompetitionListView-CGtouV9m.js`),__vite__mapDeps([0,1,2,3,4,5,6])),"admin-competition-form":()=>_3(()=>import(`./CompetitionFormView-BKYnHRcK.js`),__vite__mapDeps([7,1,2,3,4,5,8,9])),"admin-competition-workspace":()=>_3(()=>import(`./CompetitionFormView-BKYnHRcK.js`),__vite__mapDeps([7,1,2,3,4,5,8,9])),"admin-reviewers-list":()=>_3(()=>import(`./ReviewerManageView-DCTV2RWw.js`),__vite__mapDeps([10,1,2,3,4,5,11])),"admin-review-portal":()=>_3(()=>import(`./ReviewPortalView-DdeuEh6C.js`),__vite__mapDeps([12,1,2,5,4,13]))},y3=du(`adminMenu`,()=>{let e=R([]);function t(t){e.value=t}return{menus:e,setMenus:t}}),b3=[],x3=!1;function S3(e){b3.push(e)}function C3(e){for(let t of[...b3].reverse())e.hasRoute(t)&&e.removeRoute(t);b3.length=0,x3=!1}function w3(e,t,n){for(let r of n)if(!(r.section&&!r.name))if(r.children?.length){if(!r.name||!r.path)continue;e.addRoute(t,{path:r.path,name:r.name,component:()=>_3(()=>import(`./AdminMenuGroupLayout-CcXLpVEJ.js`),__vite__mapDeps([14,1,2])),meta:{title:r.title,permissionCode:r.permissionCode,menuGroup:!0},children:[]}),S3(r.name),w3(e,r.name,r.children)}else{if(!r.name||!r.path)continue;let n=v3[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}}),S3(r.name)}}async function T3(e){if(x3)return;let t;try{t=await d3()}catch(e){let n=e instanceof Error?e.message:`菜单加载失败`;TZ.error(`${n},已使用本地降级菜单,请检查接口与登录态。`),t=f3()}y3().setMenus(t),w3(e,`AdminLayout`,t),e.addRoute(`AdminLayout`,{path:``,name:`admin-home-redirect`,redirect:{name:`admin-competitions-list`}}),S3(`admin-home-redirect`),e.addRoute(`AdminLayout`,{path:`competitions/new`,name:`admin-competition-new`,component:v3[`admin-competition-form`],meta:{title:`新建赛事`,hideInMenu:!0}}),S3(`admin-competition-new`),e.addRoute(`AdminLayout`,{path:`competitions/:id/edit`,name:`admin-competition-edit`,component:v3[`admin-competition-form`],meta:{title:`编辑赛事`,hideInMenu:!0}}),S3(`admin-competition-edit`),e.addRoute(`AdminLayout`,{path:`competition/workspace`,name:`admin-competition-workspace`,component:v3[`admin-competition-workspace`],meta:{title:`赛事配置`,hideInMenu:!0}}),S3(`admin-competition-workspace`),e.addRoute(`AdminLayout`,{path:`competition/ws/:pathMatch(.*)*`,name:`admin-competition-ws-legacy-redirect`,redirect:{name:`admin-competition-workspace`}}),S3(`admin-competition-ws-legacy-redirect`),x3=!0}function E3(){return x3}var D3=du(`adminAuth`,()=>{let e=R(localStorage.getItem(`cxxfds_admin_token`)??``),t=B(()=>!!e.value.trim());function n(t){e.value=t,t?localStorage.setItem(Xe,t):localStorage.removeItem(Xe)}function r(e){n(``),C3(e)}return{token:e,isAuthenticated:t,setToken:n,logout:r}}),O3=()=>_3(()=>import(`./MainLayout-CtyDEL7F.js`),__vite__mapDeps([15,1,2,4,8,16,17,18]));function k3(){let e=localStorage.getItem(Ye),t=localStorage.getItem(Ze);return t?e?{name:`participant-apply`,params:{slug:t},replace:!0}:{name:`participant-login`,params:{slug:t},replace:!0}:{path:`/c`,replace:!0}}var A3=C1({history:H$(`/admin/`),routes:[{path:`/`,redirect:k3},{path:`/c`,name:`participant-landing`,component:()=>_3(()=>import(`./ParticipantLandingView-BZ3N9Nff.js`),__vite__mapDeps([19,2,17]))},{path:`/c/:slug/login`,name:`participant-login`,component:()=>_3(()=>import(`./LoginView-DUVE-cQV.js`),__vite__mapDeps([20,2,4,8,21,18])),meta:{guestOnly:!0}},{path:`/c/:slug/review/login`,name:`reviewer-login`,component:()=>_3(()=>import(`./ReviewerLoginView-DRh2P3fl.js`),__vite__mapDeps([22,2,4,8,21,18])),meta:{guestReviewerOnly:!0}},{path:`/c/:slug/review`,component:()=>_3(()=>import(`./ReviewerLayout-IoLDvNuu.js`),__vite__mapDeps([23,1,2,4,8,24,17,18])),meta:{requiresReviewerAuth:!0},children:[{path:`applications/:id(\\d+)`,name:`reviewer-application-detail`,component:()=>_3(()=>import(`./ReviewerApplicationDetailView-FoRVso9n.js`),__vite__mapDeps([25,1,2,4,26]))},{path:``,name:`reviewer-projects`,component:()=>_3(()=>import(`./ReviewerProjectsView-Cmwv-4-f.js`),__vite__mapDeps([27,1,2,4,28]))}]},{path:`/c/:slug`,component:O3,meta:{requiresAuth:!0},children:[{path:``,redirect:e=>({name:`participant-apply`,params:{slug:e.params.slug}})},{path:`apply`,name:`participant-apply`,component:()=>_3(()=>import(`./ApplyView-D4GrjnSt.js`),__vite__mapDeps([29,1,2,4,8,30]))}]},{path:`/app`,redirect:()=>{let e=localStorage.getItem(Ze);return e?{name:`participant-apply`,params:{slug:e}}:{path:`/c`}}},{path:`/app/apply`,redirect:()=>{let e=localStorage.getItem(Ze);return e?{name:`participant-apply`,params:{slug:e}}:{path:`/c`}}},{path:`/admin/login`,name:`admin-login`,component:()=>_3(()=>import(`./AdminLoginView-D3VVvyTR.js`),__vite__mapDeps([31,1,2,4,32]))},{path:`/admin`,name:`AdminLayout`,component:()=>_3(()=>import(`./AdminLayout-DwGzZ2Ld.js`),__vite__mapDeps([33,1,2,3,4,5,34])),children:[]}]});A3.beforeEach(async e=>{let t=e.params.slug==null?``:String(e.params.slug).trim();!Je(e.path)&&t&&localStorage.setItem(Ze,t);let n=localStorage.getItem(Ye);if(Je(e.path)){let{token:n,competitionSlug:r}=Ge();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=D3();return e.name===`admin-login`||e.path===`/admin/login`?t.isAuthenticated?(E3()||await T3(A3),{name:`admin-competitions-list`,replace:!0}):!0:t.isAuthenticated?E3()?!0:(await T3(A3),{...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}:k3()}return!0});var j3=Zl();ke(E1).use(j3).use(A3).use(vQ,{locale:yQ}).mount(`#app`);export{ps as A,T1 as C,du as D,TZ as E,fu as O,I1 as S,UZ as T,F1 as _,W1 as a,n0 as b,K1 as c,L1 as d,N1 as f,i0 as g,H1 as h,l3 as i,bo as k,r0 as l,M1 as m,y3 as n,t0 as o,U1 as p,u3 as r,a0 as s,D3 as t,o0 as u,e0 as v,w1 as w,P1 as x,G1 as y}; \ No newline at end of file diff --git a/public/admin/assets/prototype-styles-4QRP4aFA.css b/public/admin/assets/prototype-styles-4QRP4aFA.css new file mode 100644 index 0000000..84e5dac --- /dev/null +++ b/public/admin/assets/prototype-styles-4QRP4aFA.css @@ -0,0 +1 @@ +:root{--bg:#f5f3f4;--card-bg:#fff;--text:#1f1f1f;--muted:#6b6f76;--primary:#b40010;--primary-dark:#8f000c;--primary-soft:#fbe9eb;--radius-lg:10px;--radius-md:8px;--shadow-soft:0 4px 14px #2e181a0f}html,body{color:var(--text);max-width:100%;font-size:15px}html{-webkit-text-size-adjust:100%}body.prototype-page{background:var(--bg);overflow-x:hidden}body.prototype-page,body.login-page-wls{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.prototype-title{font-size:1.1rem;font-weight:650}.prototype-subtitle{color:var(--muted);font-size:.9rem}.card{border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);border:1px solid #eee2e4}.card .card-body{padding:1rem 1.1rem}.form-label{margin-bottom:.4rem;font-size:.9rem;font-weight:560}.company-name-input::placeholder{color:#c5cad3;opacity:1}.company-name-input::-webkit-input-placeholder{color:#c5cad3}.company-name-input::-moz-placeholder{color:#c5cad3;opacity:1}#locationOverseaCountry::placeholder{color:#c9ced6;opacity:1}.form-control,.form-select,.btn{border-radius:var(--radius-md);font-size:.9rem}.form-control,.form-select{border-color:#e2d5d7;padding-top:.5rem;padding-bottom:.5rem}.btn{border-width:1px;padding:.45rem .82rem}.btn.btn-sm{padding:.34rem .68rem;font-size:.84rem}.btn-primary,.btn-success{background:var(--primary);border-color:var(--primary)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-success:hover,.btn-success:focus,.btn-success:active{background:var(--primary-dark)!important;border-color:var(--primary-dark)!important}.btn-outline-primary{color:var(--primary);border-color:#cf9ea3}.btn-outline-primary:hover,.btn-outline-primary:focus,.btn-outline-primary:active{color:#fff!important;background:var(--primary)!important;border-color:var(--primary)!important}.table>:not(caption)>*>*{padding:.65rem .62rem;font-size:.88rem}.table thead th{color:#3a3335;background:#faf7f7;font-weight:600}.section-title{color:#2f2a2b;font-size:1.35rem;font-weight:620}.report-kpi-card{box-shadow:var(--shadow-soft);background:#fff;border:1px solid #ece2e4;border-radius:10px;min-height:104px;padding:.7rem .78rem}.report-kpi-label{color:#7f6f73;margin-bottom:.28rem;font-size:.82rem}.report-kpi-value{color:#2f292b;font-size:1.25rem;font-weight:650;line-height:1.2}.report-kpi-sub{color:#9a8e91;margin-top:.22rem;font-size:.76rem;line-height:1.35}.report-section-card{box-shadow:var(--shadow-soft);border:1px solid #ece2e4}.report-section-title{color:#40373a;margin-bottom:.72rem;font-size:.93rem;font-weight:620}.report-bar-row+.report-bar-row{margin-top:.62rem}.report-bar-head{justify-content:space-between;gap:.5rem;margin-bottom:.18rem;font-size:.82rem;display:flex}.report-bar-label{color:#3c3436}.report-bar-meta{color:#8b7e81}.report-progress{background:#f2ebec;height:.42rem}.report-progress .progress-bar{background:linear-gradient(90deg,#d3545f 0%,#b40010 100%)}.report-split-line{margin-top:1.1rem!important;margin-bottom:1.1rem!important}.report-table th{white-space:nowrap}.top5-track-card{background:linear-gradient(#fffefe 0%,#fff9fa 100%);border:1px solid #efe3e5;border-radius:10px;padding:.55rem .62rem}.top5-track-title{color:#4a3d41;margin-bottom:.38rem;font-size:.84rem;font-weight:600}.top5-track-list{margin:0;padding:0;list-style:none}.top5-item-row{border-radius:6px;grid-template-columns:1.4rem minmax(0,1fr) auto;align-items:center;gap:.4rem;padding:.22rem .2rem;display:grid}.top5-item-row+.top5-item-row{margin-top:.12rem}.top5-item-row:nth-child(odd){background:#fbf4f5}.top5-item-rank{color:#7b5d63;background:#f3e5e7;border-radius:999px;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;font-size:.75rem;display:inline-flex}.top5-item-name{color:#3f3538;white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.top5-item-score{color:#6d4950;font-size:.8rem}#scoreInput::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}#scoreInput::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}#scoreInput[type=number]{appearance:textfield}.report-main-grid>[class*=col-]>.d-flex>.report-section-card{flex:1 1 0}.form-page-header{border-bottom:1px solid #ede4e5;padding:.2rem .1rem .6rem}.form-page-title{letter-spacing:.3px;color:#262224;font-size:1.35rem;font-weight:700;line-height:1.2}#applyForm .form-label,#applyForm .form-check-label{font-weight:400}.filter-panel{background:#fcfafa;border:1px solid #eee4e5;border-radius:10px;padding:.8rem}.table-panel{-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #ece2e4;border-radius:10px;overflow:auto}.reviewer-manage-shell{grid-template-columns:14.5rem minmax(0,1fr);align-items:start;gap:.9rem;display:grid}.reviewer-track-panel,.reviewer-editor-panel{box-shadow:var(--shadow-soft);background:#fff;border:1px solid #ece2e4;border-radius:10px}.reviewer-track-panel{padding:.72rem}.reviewer-track-panel-title{color:#827579;margin-bottom:.55rem;font-size:.78rem;font-weight:600}.reviewer-track-tabs{gap:.42rem;display:grid}.reviewer-track-tab{color:#3e3437;text-align:left;background:#fbf7f8;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;width:100%;padding:.58rem .62rem;display:flex}.reviewer-track-tab.active{color:var(--primary);background:var(--primary-soft);border-color:#e5bdc1}.reviewer-track-tab-name{font-size:.86rem;font-weight:600}.reviewer-track-tab-count{color:#8b7e81;white-space:nowrap;font-size:.78rem}.reviewer-editor-panel{padding:.8rem}.reviewer-editor-head{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.72rem;display:flex}.reviewer-editor-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.reviewer-track-title{color:#322b2d;margin:0 0 .18rem;font-size:1rem;font-weight:650}.reviewer-track-meta{color:#8b7e81;font-size:.78rem}.reviewer-manage-table{min-width:620px}.reviewer-manage-table th{color:#4a4043;background:#faf7f7;font-size:.8rem;font-weight:600}.reviewer-manage-table td{vertical-align:middle}.reviewer-row-actions{white-space:nowrap}.reviewer-row-actions .btn+.btn{margin-left:.35rem}.reviewer-edit-label{font-weight:400}.status-pill{text-align:center;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-width:58px;padding:.14rem .5rem;font-size:.8rem;font-weight:600;display:inline-flex}.status-pending{color:#8a5600;background:#f9edd1;border-color:#ecd8a6}.status-pass{color:#0f6d4e;background:#e8f8f1;border-color:#b8e0cd}.status-reject{color:#9c1f28;background:#fdecec;border-color:#f0c2c7}.admin-list-table .status-pill.status-pending,.admin-list-table td.admin-total-pending-text{color:#b4232c!important;font-weight:400!important}body.admin-desktop-page .admin-list-table .admin-manage-status-tag{border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-width:46px;padding:.08rem .38rem;font-size:.76rem;display:inline-flex}body.admin-desktop-page .admin-list-table .admin-manage-status-progress{color:#8a5600;background:#f9edd1;border-color:#ecd8a6}body.admin-desktop-page .admin-list-table .admin-manage-status-pass{color:#0f6d4e;background:#e8f8f1;border-color:#b8e0cd}body.admin-desktop-page .admin-list-table .admin-manage-status-fail{color:#9c1f28;background:#fdecec;border-color:#f0c2c7}body.admin-desktop-page .admin-list-table .form-check-input{border-width:1px;border-color:#cfb8bc}body.admin-desktop-page .admin-list-table .form-check-input:checked,body.admin-desktop-page .admin-list-table .form-check-input:indeterminate{background-color:var(--primary);border-color:var(--primary)}body.admin-desktop-page .admin-list-table .form-check-input:focus{border-color:var(--primary);box-shadow:0 0 0 .16rem #b4001029}#adminBatchActionBar .btn-outline-primary{color:var(--primary);background:#fff7f8;border-color:#cf9ea3}#adminBatchActionBar .btn-outline-primary:hover,#adminBatchActionBar .btn-outline-primary:focus,#adminBatchActionBar .btn-outline-primary:active{color:var(--primary-dark)!important;background:#fdeef0!important;border-color:#c78d94!important}#adminBatchActionBar .btn-outline-primary:disabled,#adminBatchActionBar .btn-outline-primary.disabled{opacity:1;color:#cc9ca3!important;background:#fdf6f7!important;border-color:#e7cfd2!important}body.reviewer-score-2colors .status-pass,body.reviewer-score-2colors .status-reject{color:#0f6d4e;background:#e8f8f1;border-color:#b8e0cd}.score-value-box{font-weight:600;color:#0f6d4e!important;background:#e8f8f1!important;border-color:#b8e0cd!important}#reviewerOpinionList .list-group-item{font-size:.82rem;line-height:1.45}#reviewerOpinionList{border:1px solid #ece2e4;border-radius:8px;overflow:hidden}#reviewerOpinionList .reviewer-score-header,#reviewerOpinionList .reviewer-score-row{grid-template-columns:1fr auto;align-items:center;gap:.75rem;padding:.45rem .75rem;font-size:.82rem;line-height:1.4;display:grid}#reviewerOpinionList .reviewer-score-header{color:#6f6368;background:#f8f5f6;font-weight:600}#reviewerOpinionList .reviewer-score-row+.reviewer-score-row{border-top:1px solid #f0e8ea}#reviewerOpinionList .reviewer-score-name{color:#3f3538}#reviewerOpinionList .reviewer-score-pending{color:#9a343b}#reviewerOpinionList .reviewer-score-done{color:#0f6d4e}.event-back-btn{color:#5a5053;background:#f3eff0;border:1px solid #d8cfd1;border-radius:999px;justify-content:center;align-items:center;min-width:86px;padding:.14rem .5rem;font-size:.8rem;font-weight:600;display:inline-flex}.event-back-btn:hover,.event-back-btn:focus,.event-back-btn:active{color:#4d4447!important;background:#e8e2e4!important;border-color:#cbc0c3!important}.top-tools{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.layout-header{background:#fff;border-bottom:1px solid #ebdfe1}.header-user{color:#6b6f76;background:0 0;border:0;align-items:center;gap:.42rem;padding:.1rem;display:inline-flex}.header-user:after{display:none}.header-user-name{color:#4a4446;font-size:.93rem;font-weight:560}.header-user-menu{border:1px solid #e8dde0;border-radius:10px;min-width:170px;padding:.4rem 0;box-shadow:0 8px 18px #2b161817}.header-user-menu .dropdown-item{align-items:center;gap:.4rem;padding:.52rem .9rem;font-size:.92rem;display:flex}.header-user-menu .dropdown-divider{margin:.35rem 0}.menu-icon{text-align:center;opacity:.8;width:1.1rem}.profile-modal-dialog{max-width:760px}.profile-modal-content{border:1px solid #e6dfe1;border-radius:14px;box-shadow:0 14px 34px #28141624}.profile-modal-header{border-bottom:1px solid #ece3e5;padding:1rem 1.2rem .85rem}.profile-modal-title{letter-spacing:.2px;font-size:1.06rem;font-weight:620}.profile-modal-body{padding:1rem 1.2rem 1.1rem}.profile-field{background:#f5f7fa;border:1px solid #e1e5eb;border-radius:12px;min-height:76px;padding:.65rem .82rem}.profile-field-label{color:#6b6f76;margin-bottom:.24rem;font-size:.78rem}.profile-field-value{color:#2a2e35;word-break:break-all;font-size:.9rem;font-weight:460;line-height:1.35}.layout-main{min-width:0;height:calc(100vh - 112px)}.layout-sider .card{background:#fbf8f8;border-color:#eee1e3}.layout-sider .nav-link{color:#3d3436;background:0 0;border:0;border-radius:8px;padding:.58rem .68rem;font-size:.9rem}.layout-sider .nav-link.active{color:#8f000c;background:#f3e7e9;font-weight:600}.reviewer-mode .layout-sider .nav-link,.reviewer-mode .layout-sider .nav-link.active{color:#8f000c;background:#f3e7e9;border:0;font-weight:600}.mobile-nav-wrap{-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #eadedf;border-radius:10px;gap:.5rem;padding:.35rem;display:flex;overflow-x:auto}.mobile-nav-link{color:#3d3436;white-space:nowrap;background:#f9f5f6;border:1px solid #ddced1;border-radius:999px;flex:none;padding:.38rem .78rem;font-size:.86rem;font-weight:560}.mobile-nav-link.active{color:#8f000c;background:#f3e7e9;border-color:#cfaeb3}.main-iframe{width:100%;height:100%;box-shadow:var(--shadow-soft);background:#fff;border:1px solid #ece1e3;border-radius:10px;display:block}input,select,textarea{font-size:16px}.btn{touch-action:manipulation}.promise-signed-badge{font-weight:500;color:#2e7d32!important;background:#e8f5e9!important;border-color:#a5d6a7!important}.promise-sign-modal{--bs-modal-width:min(42rem, calc(100vw - 1.5rem));max-width:var(--bs-modal-width);margin-top:.75rem;margin-bottom:.75rem}.promise-sign-sheet{border-radius:12px;max-height:calc(100dvh - 1.5rem);overflow:hidden}#promiseSignModal .modal-body{max-height:none;padding:.85rem;overflow:visible}.promise-doc-paper{color:#111;min-height:0;box-shadow:none;background:#fff;border:0;border-radius:0;padding:.75rem 1rem .85rem;font-family:SimSun,Songti SC,STSong,serif;font-size:clamp(.86rem,1.25vw,.98rem);line-height:1.7}.promise-doc-heading{letter-spacing:.02em;color:#1f1718;margin:0 0 1.05rem;font-size:clamp(1.16rem,2.2vw,1.38rem);font-weight:800;line-height:1.32}.promise-doc-body{text-align:justify;text-justify:inter-ideograph;color:#221b1c}.promise-doc-body p{text-indent:2em;margin:0 0 .62rem}.promise-doc-signblock{margin-top:.78rem;padding-top:0}.promise-doc-signrow{flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:.5rem 1rem;display:flex}.promise-doc-signlabel{color:#221b1c;flex-shrink:0;padding-top:.18rem;font-size:1rem}.promise-sig-wrap{flex:1;min-width:240px;max-width:100%}.promise-sig-box{position:relative}.promise-sig-canvas{cursor:crosshair;touch-action:none;background:#fff;border:1px solid #333;border-radius:2px;width:100%;max-width:100%;height:clamp(82px,16vh,120px);display:block}.promise-sig-tools{justify-content:flex-start;align-items:center;margin-top:.35rem;display:flex}.promise-sig-hint{pointer-events:none;color:#221b1c47;font-family:PingFang SC,Microsoft YaHei,Arial,sans-serif;font-size:.76rem;position:absolute;top:.42rem;left:.55rem}.promise-doc-daterow{text-align:right;margin-top:.5rem;font-family:SimSun,Songti SC,STSong,serif;font-size:1rem}.promise-doc-dateline{min-width:11rem;display:inline-block}.promise-close-btn{color:#2f353c;background:#f3f5f7;border:1px solid #cfd5dc;min-width:4.2rem;font-weight:500}.promise-close-btn:hover,.promise-close-btn:focus,.promise-close-btn:active{color:#1f252b!important;background:#e5eaef!important;border-color:#bcc5cf!important}.promise-sign-actions{justify-content:flex-end;gap:.45rem;margin-top:.65rem;display:flex}.promise-sign-actions .btn{min-height:2rem;padding:.28rem .68rem;font-size:.82rem;line-height:1.25}.track-custom-select{position:relative}.track-custom-toggle{text-align:left;cursor:pointer;font-size:.875rem;font-weight:400}.track-custom-toggle .text-body,.track-custom-toggle .text-secondary{font-weight:400}.track-custom-note{color:#b8c0c9;font-weight:400}.track-custom-menu .track-pick{white-space:normal;font-size:.8125rem;font-weight:400;line-height:1.45;display:block}.track-custom-menu button.track-pick{font-weight:400}.track-custom-menu .track-pick .track-pick-inline{grid-template-columns:auto minmax(0,1fr);align-items:start;column-gap:.35rem;width:100%;display:grid}.track-custom-menu .track-pick .text-body{white-space:nowrap;font-weight:400}.track-custom-menu .track-pick .track-custom-note{font-size:.88em;font-weight:400;display:block}.track-custom-toggle.is-invalid{border-color:#dc3545}.file-upload-panel{background:#fcfafb;border:1px solid #e9dfe1;border-radius:10px;padding:.65rem}.uploaded-file-row{background:#fff;border:1px solid #ebe3e4;border-radius:8px;align-items:center;gap:.5rem;padding:.45rem .6rem;display:flex}.uploaded-file-label{color:#7a6d70;flex:none;font-size:.82rem}.uploaded-file-link{color:#8f000c;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.92rem;font-weight:560;text-decoration:none;overflow:hidden}#planFileLink{color:var(--primary);font-size:.9rem;font-weight:400}#planFileLink:hover,#planFileLink:focus{color:var(--primary-dark);font-weight:700}a[target=_blank]{color:var(--primary);text-decoration:none}a[target=_blank]:hover,a[target=_blank]:focus{color:var(--primary-dark);font-weight:700;text-decoration:none}.uploaded-file-link:hover,.uploaded-file-link:focus{color:#a30917;text-decoration:underline}.supporting-file-list{flex-wrap:wrap;align-items:flex-start;gap:.5rem;min-width:0;display:flex}.supporting-file-item{background:#fff;border:1px solid #ebe3e4;border-radius:8px;align-items:center;gap:.55rem;max-width:100%;padding:.5rem .6rem;display:inline-flex}.supporting-file-meta{flex:0 auto;min-width:0}.supporting-file-name{color:#3a3335;white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:560;display:block;overflow:hidden}.supporting-file-size{color:#8b7e81;margin-top:.12rem;font-size:.78rem;display:block}.supporting-file-actions{flex-flow:row;flex:none;justify-content:flex-start;align-items:center;gap:.45rem;display:flex}.supporting-file-actions .btn{white-space:nowrap;flex:none;width:auto;max-width:none}.promise-doc-link,.promise-doc-link:hover,.promise-doc-link:focus,.promise-doc-link:active{color:var(--primary);text-decoration:none}body.login-page-wls{color:#333;-webkit-font-smoothing:antialiased;background:linear-gradient(135deg,#fefcfc 0%,#fbe9eb 36%,#f7f5f6 88%);flex-direction:column;min-height:100dvh;margin:0;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;display:flex}body.login-page-wls *,body.login-page-wls :before,body.login-page-wls :after{box-sizing:border-box}.login-page-wls__wrap{flex-direction:column;flex:1;width:100%;display:flex}.login-page-wls__inner{flex:1;grid-template-columns:minmax(0,1.15fr) minmax(340px,400px);align-content:center;align-items:center;gap:2rem clamp(2.25rem,5.5vw,5rem);width:100%;max-width:1180px;margin:0 auto;padding:clamp(1.5rem,4vh,3rem) clamp(1.5rem,4vw,3.5rem);display:grid}.login-page-wls__brand{text-align:left;justify-self:start;width:100%;max-width:520px;padding:0}.login-page-wls__logo{margin-bottom:.6rem}.login-page-wls__mark{margin-bottom:.9rem}.login-page-wls__mark-cn{color:#5c6068;letter-spacing:.14em;padding:.15rem 0 .1rem;font-size:clamp(1.02rem,1.35vw,1.14rem);font-weight:500;line-height:1.5;display:inline-block}.login-page-wls__mark-sep{vertical-align:.08em;color:currentColor;opacity:1;padding:0 .28em;font-size:.58em;font-weight:500;line-height:1;display:inline-block}.login-page-wls__title-main .login-page-wls__mark-sep{font-weight:700}.login-page-wls__mark-en{color:#9ca3af;letter-spacing:.12em;text-transform:uppercase;margin-top:.24rem;font-size:.68rem}.login-page-wls__title{color:#222;letter-spacing:.01em;flex-direction:column;gap:.2rem;margin:0 0 .75rem;font-weight:700;display:flex}.login-page-wls__title-main{max-width:100%;font-size:clamp(1.32rem,2vw,1.68rem);line-height:1.3}.login-page-wls__title-sub{color:#3b3d42;font-size:clamp(1.04rem,1.45vw,1.2rem);font-weight:600;line-height:1.3}.login-page-wls__slogan{color:#8b8e94;max-width:100%;margin:0;font-size:.86rem;line-height:1.62}.login-page-wls__panel{justify-content:flex-end;justify-self:stretch;align-items:center;min-width:0;padding:0;display:flex}.login-page-wls__card{background:#fff;border-radius:14px;width:100%;max-width:360px;margin:0;padding:2.25rem 2rem 1.75rem;box-shadow:0 8px 28px #78182012,0 2px 8px #0000000a}.login-page-wls__card-title{text-align:center;color:#333;margin:0 0 1.65rem;font-size:1.125rem;font-weight:700}.login-page-wls__form{flex-direction:column;display:flex}.login-page-wls__input{color:#333;background:#fff;border:1px solid #dcdfe6;border-radius:8px;outline:none;width:100%;margin-bottom:.95rem;padding:.72rem .9rem;font-size:.9375rem;transition:border-color .15s,box-shadow .15s}.login-page-wls__input::placeholder{color:#b0b4bf}.login-page-wls__input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #b400101f}.login-page-wls__code-row{align-items:stretch;gap:.55rem;margin-bottom:.95rem;display:flex}.login-page-wls__input.login-page-wls__input-code{flex:1;margin-bottom:0}.login-page-wls__code-btn{color:#9f0f1c;min-width:6.3rem;text-shadow:none;-webkit-text-stroke:0;cursor:pointer;background:#fff7f8;border:1px solid #dfc4c7;border-radius:8px;padding:0 .7rem;font-size:.82rem;font-weight:500;transition:all .15s}.login-page-wls__code-btn:hover{background:#feeef0;border-color:#d9a6ac}.login-page-wls__code-btn:disabled{opacity:.68;cursor:not-allowed}.login-page-wls__role{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.1rem;padding:0 .05rem;display:flex}.login-page-wls__role-label{color:#888;white-space:nowrap;font-size:.8125rem}.login-page-wls__role-select{color:#444;background:#fafafa;border:1px solid #e5e7eb;border-radius:8px;outline:none;flex:1;max-width:168px;padding:.42rem .55rem;font-size:.8125rem}.login-page-wls__role-select:focus{border-color:var(--primary)}.login-page-wls__submit{color:#fff;cursor:pointer;background:linear-gradient(#cf2c3a 0%,#ba1424 55%,#a90a1a 100%);border:none;border-radius:8px;width:100%;margin-top:.15rem;padding:.78rem 1rem;font-size:1rem;font-weight:600;transition:filter .15s,transform .1s,box-shadow .15s;box-shadow:0 2px 8px #b4001029}.login-page-wls__submit:hover{filter:brightness(1.03);box-shadow:0 2px 10px #b4001033}.login-page-wls__submit:active{transform:scale(.99)}.login-page-wls__quick-entry{text-align:center;color:#b3a9ab;-webkit-user-select:none;user-select:none;margin-top:.6rem;font-size:.76rem}.login-page-wls__quick-link{color:#aba1a4;text-decoration:none;transition:color .15s}.login-page-wls__quick-link:hover{color:#8f7f83;text-decoration:none}.login-page-wls__quick-sep{color:#cbc3c5;margin:0 .38rem}.login-page-wls__hint{text-align:center;color:#aaa;margin:1rem 0 0;font-size:.75rem;line-height:1.5}.login-page-wls__form--invalid .login-page-wls__input:invalid{border-color:#e57373}.login-page-wls__footer{text-align:center;padding:.75rem 1rem 1.25rem}.login-page-wls__copyright{color:#aaa;margin:0;font-size:.75rem}.notice-modal-dialog{max-width:760px}.notice-modal-content{border:1px solid #e8dde0;border-radius:12px;box-shadow:0 12px 36px #28141629}.notice-modal-body{text-align:center;padding:1rem 2rem 1.6rem}.notice-icon{color:#a65a64;border:1.8px solid #d6b9bd;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto .8rem;display:flex}.notice-title{color:#2c2628;margin-bottom:.55rem;font-size:1.55rem;font-weight:650}.notice-text{color:#615659;margin:0;font-size:1.05rem;line-height:1.7}.notice-modal-footer{justify-content:center;gap:.7rem;padding-bottom:1.6rem}.notice-cancel-btn{color:#2f3136;background:#e3e5e9;border-color:#d2d6dc;min-width:72px}.notice-cancel-btn:hover,.notice-cancel-btn:focus,.notice-cancel-btn:active{color:#2a2d33!important;background:#d4d9e0!important;border-color:#c4cad3!important}.notice-ok-btn{min-width:82px}.notice-modal-content.notice-success .notice-icon{color:#2f8a62;background:#f2fbf7;border-color:#b9dfce}.notice-modal-content.notice-warning .notice-icon{color:#a65a64;background:#fff;border-color:#d6b9bd}#exportModal .modal-footer .btn-primary{background-color:var(--primary)!important;border-color:var(--primary)!important;color:#fff!important}#exportModal .modal-footer .btn-primary:hover,#exportModal .modal-footer .btn-primary:focus{background-color:var(--primary-dark)!important;border-color:var(--primary-dark)!important;color:#fff!important}#exportModal .form-check-input:checked{background-color:var(--primary);border-color:var(--primary);--bs-form-check-bg-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round' d='M6.2 10.2l2.6 2.6 5.8-6'/%3E%3C/svg%3E");background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round' d='M6.2 10.2l2.6 2.6 5.8-6'/%3E%3C/svg%3E")!important}#exportModal .form-check-input:focus{border-color:#b400108c;box-shadow:0 0 0 .2rem #b400101f}#exportModal .modal-export-dialog{--bs-modal-width:min(96vw, 1680px);width:100%;max-width:min(96vw,1680px);margin-left:auto;margin-right:auto}#exportModal .export-preview-scroll{max-height:300px;overflow:auto}#exportModal .export-preview-table{width:max-content;min-width:100%}#exportModal .export-preview-table th,#exportModal .export-preview-table td{white-space:nowrap}@media (width<=960px){.login-page-wls__inner{grid-template-columns:1fr;justify-items:center;row-gap:2.25rem;padding-left:1.25rem;padding-right:1.25rem}.login-page-wls__brand{text-align:center;flex-direction:column;justify-self:center;align-items:center;max-width:26rem;display:flex}.login-page-wls__panel{justify-content:center;width:100%;max-width:360px}}@media (width<=992px){body.user-mobile-no-menu #mobileNavSection,body.user-mobile-no-menu .layout-sider{display:none!important}.layout-header .container-fluid,.layout-main.container-fluid{padding-left:.9rem!important;padding-right:.9rem!important}.layout-main{height:auto;min-height:calc(100dvh - 120px)}.layout-main>.row,.layout-sider .card{height:auto!important}.main-iframe{height:calc(100dvh - 230px);min-height:calc(100dvh - 230px)}.layout-sider{display:none}.navbar-brand.prototype-title{white-space:normal;max-width:calc(100vw - 128px);font-size:.96rem;line-height:1.35}.modal-dialog{margin:.75rem}.section-title{font-size:1.35rem}.filter-panel .row>[class*=col-]{min-width:0}.table .btn.btn-sm{min-height:34px;padding-left:.65rem;padding-right:.65rem}body.admin-desktop-page{overflow-x:hidden}body.admin-desktop-page .d-flex.justify-content-between.align-items-center{align-items:flex-start!important}body.admin-desktop-page .filter-panel .row{--bs-gutter-y:.65rem}body.admin-desktop-page .filter-panel .row>[class*=col-]{width:100%}body.admin-desktop-page #adminBatchToolbar,body.admin-desktop-page #adminBatchActionBar{-webkit-overflow-scrolling:touch;padding-bottom:.12rem;overflow-x:auto}body.admin-desktop-page #adminBatchToolbar .btn,body.admin-desktop-page #adminBatchActionBar .btn{flex:none}}@media (width<=768px){html,body{font-size:14px}.card .card-body{padding:.95rem}.btn{width:auto}.top-tools{justify-content:flex-start;width:100%}.form-page-title{font-size:1.3rem}.notice-modal-body{padding:.6rem 1rem 1.2rem}.notice-title{font-size:1.3rem}.notice-text{font-size:.98rem}.table>:not(caption)>*>*{padding:.56rem .5rem;font-size:.84rem}.table thead th{white-space:nowrap}.filter-panel{padding:.7rem}.reviewer-manage-shell{grid-template-columns:1fr}.reviewer-editor-head{flex-direction:column;align-items:stretch}.reviewer-editor-actions{justify-content:flex-start}.filter-panel .btn{min-height:38px}#filterQueryBtn,#filterResetBtn{flex:1}#saveBtn,#submitBtn,#resubmitBtn,#rejectBtn,#approveBtn{width:100%}#auditActionBar{grid-template-columns:1fr;display:grid!important}.table-responsive{-webkit-overflow-scrolling:touch}#detailStatusBadge{white-space:normal;justify-content:flex-start;max-width:100%;line-height:1.35}.modal-body{max-height:64vh;overflow-y:auto}.status-pill{white-space:nowrap}.profile-modal-header,.profile-modal-body,.notice-modal-footer{padding-left:.95rem;padding-right:.95rem}#exportModal .modal-export-dialog{--bs-modal-width:98vw;max-width:98vw}#exportModal .export-preview-scroll{max-height:52vh}.promise-sign-modal{--bs-modal-width:calc(100vw - .75rem);margin-top:.38rem;margin-bottom:.38rem}.promise-sign-sheet{max-height:calc(100dvh - .75rem)}#promiseSignModal .modal-body{max-height:none;padding:.62rem;overflow:visible}.promise-doc-paper{padding:.55rem .65rem .62rem;font-size:.84rem;line-height:1.55}.promise-doc-heading{margin-bottom:.7rem;font-size:1.08rem;font-weight:800}.promise-doc-body p{margin-bottom:.34rem}.promise-doc-signblock{margin-top:.44rem;padding-top:.44rem}.promise-doc-signrow{gap:.35rem .55rem}.promise-doc-signlabel,.promise-doc-daterow{font-size:.88rem}.promise-sig-canvas{height:clamp(72px,14vh,92px)}.promise-sig-tools{gap:.5rem;margin-top:.28rem}.promise-sig-hint{font-size:.72rem}.promise-doc-dateline{min-width:9.5rem}.promise-sign-actions{margin-top:.45rem}.promise-sign-actions .btn{min-height:1.9rem;padding:.24rem .58rem;font-size:.78rem}.supporting-file-list{flex-flow:column;align-items:stretch}.supporting-file-actions{flex-flow:row;justify-content:flex-start;align-items:center;gap:.45rem;width:100%;display:flex}.supporting-file-actions .btn{white-space:nowrap;flex:none;max-width:none;min-height:0;padding:.26rem .62rem;font-size:.78rem;line-height:1.25;width:auto!important}.supporting-file-item{flex-direction:column;align-items:stretch;gap:.5rem;width:100%;max-width:none;display:flex}.supporting-file-meta{flex:none;width:100%;min-width:0}.track-custom-toggle{min-height:2.75rem;padding-top:.52rem;padding-bottom:.52rem;line-height:1.32}.track-custom-menu{max-height:min(70vh,22rem)!important}.track-custom-menu .track-pick{font-size:.8125rem;font-weight:400;padding-top:.55rem!important;padding-bottom:.55rem!important}.login-page-wls__card{border-radius:12px;max-width:100%;padding:1.5rem 1rem 1.15rem}.login-page-wls__title-main{font-size:1.2rem}.login-page-wls__title-sub{font-size:.98rem}.login-page-wls__slogan{font-size:.8rem;line-height:1.55}.uploaded-file-row{flex-wrap:wrap;align-items:flex-start;gap:.35rem}.uploaded-file-link{white-space:normal;word-break:break-all;width:100%;line-height:1.45}.login-page-wls__footer{padding-bottom:calc(1rem + env(safe-area-inset-bottom))}}@media (height<=620px){.promise-sign-modal{margin-top:.25rem;margin-bottom:.25rem}.promise-sign-sheet{max-height:calc(100dvh - .5rem)}#promiseSignModal .modal-body{padding:.5rem .58rem}.promise-doc-paper{padding:.42rem .55rem .48rem;font-size:.8rem;line-height:1.42}.promise-doc-heading{margin-bottom:.5rem;font-size:1rem;font-weight:800}.promise-doc-body p{margin-bottom:.26rem}.promise-doc-signblock{margin-top:.28rem;padding-top:.28rem}.promise-sig-canvas{height:64px}.promise-doc-daterow{margin-top:.35rem!important}.promise-sign-actions{margin-top:.3rem}.promise-sign-actions .btn{min-height:1.75rem;padding:.2rem .5rem;font-size:.76rem}}@media (width<=576px){.container-fluid.p-3,.container-fluid.p-3.p-md-4{padding:.7rem!important}.navbar-brand.prototype-title{max-width:calc(100vw - 92px);font-size:.9rem}.header-user-name{display:none}.layout-main{padding-top:.6rem!important;padding-bottom:.7rem!important}.mobile-nav-wrap{gap:.4rem;padding:.3rem}.mobile-nav-link{padding:.34rem .68rem;font-size:.82rem}.main-iframe{border-radius:8px;height:calc(100dvh - 186px);min-height:calc(100dvh - 186px)}.track-custom-toggle{min-height:2.8rem;padding-left:.65rem;padding-right:2rem}.track-custom-menu .track-pick{font-size:.8125rem;font-weight:400}.btn,.btn.btn-sm{min-height:38px}.modal.show{justify-content:center;align-items:center;padding:.45rem;display:flex!important}.modal-dialog{width:100%;margin:0!important}.modal-content{border-radius:10px}.modal-header,.modal-body,.modal-footer{padding-left:.85rem;padding-right:.85rem}.table-responsive>.table.admin-list-table{min-width:900px}.table-responsive>.table.my-events-table,.my-events-table{min-width:100%}.my-events-table thead{display:none}.my-events-table tbody tr{background:#fff;border:1px solid #eadfe1;border-radius:10px;margin:.6rem;display:block;box-shadow:0 2px 10px #2d12150a}.my-events-table tbody td{white-space:normal;justify-content:space-between;align-items:flex-start;gap:.75rem;font-size:.86rem;display:flex;border:0!important;border-bottom:1px dashed #f0e6e8!important;padding:.58rem .7rem!important}.my-events-table tbody td:last-child{border-bottom:0!important}.my-events-table tbody td:before{content:attr(data-label);color:#7b6f72;flex:0 0 4.5rem;font-weight:600}.my-events-table tbody td[data-label=审核状态] .status-pill{margin-left:auto}.my-events-table tbody td[data-label=操作]{padding-top:.45rem!important}.my-events-table tbody td[data-label=操作] a.btn{text-align:center;justify-content:center;align-items:center;min-width:5.5rem;margin-left:auto;display:inline-flex}#exportModal .export-preview-table{min-width:980px}.login-page-wls__input{font-size:16px}.login-page-wls__code-btn{min-width:6rem}.login-page-wls__quick-entry{white-space:normal;line-height:1.6}#eventDetailActions{justify-content:flex-start}#eventDetailActions .btn{min-width:5.2rem;padding-left:.78rem;padding-right:.78rem;width:auto!important}#userFormActions{justify-content:flex-start}#userFormActions .btn{min-width:5.6rem;min-height:34px;padding:.34rem .88rem;font-size:.9rem;width:auto!important}#myEventDetailTopActions .status-pill{min-width:0;min-height:32px;padding:.12rem .55rem;font-size:.88rem}#myEventDetailTopActions .event-back-btn{min-width:0;min-height:32px;padding:.16rem .56rem;font-size:.82rem}.profile-modal-dialog{max-width:96vw}.profile-modal-content{border-radius:12px}.profile-modal-header{padding:.9rem 1rem .75rem}.profile-modal-title{font-size:1.02rem;font-weight:660}.profile-modal-body{padding:.8rem .95rem .95rem}.profile-modal-body .row{--bs-gutter-y:.68rem}.profile-field{border-radius:10px;min-height:74px;padding:.62rem .78rem}.profile-field-label{margin-bottom:.28rem;font-size:.8rem}.profile-field-value{font-size:.92rem;font-weight:560;line-height:1.35}#myEventDetailTopActions .status-pill,#myEventDetailTopActions .event-back-btn{min-height:30px}#myEventDetailTopActions .status-pill{padding:.12rem .48rem;font-size:.84rem}#myEventDetailTopActions .event-back-btn{padding:.12rem .5rem;font-size:.8rem}}@media (width<=768px){body.admin-desktop-page .container-fluid.p-3,body.admin-desktop-page .container-fluid.p-3.p-md-4{padding:.8rem!important}body.admin-desktop-page .table>:not(caption)>*>*{padding:.65rem .62rem;font-size:.88rem}body.admin-desktop-page .table-responsive>.table.admin-list-table{min-width:900px}body.admin-desktop-page .reviewer-manage-shell{grid-template-columns:1fr}body.admin-desktop-page .reviewer-track-tabs{-webkit-overflow-scrolling:touch;gap:.5rem;padding-bottom:.1rem;display:flex;overflow-x:auto}body.admin-desktop-page .reviewer-track-tab{flex:0 0 min(13rem,72vw)}body.admin-desktop-page .admin-list-table th.admin-actions-head{white-space:nowrap;width:8.4rem}body.admin-desktop-page .admin-list-table td.admin-actions-cell{white-space:nowrap;padding-right:.35rem!important}body.admin-desktop-page .admin-list-table td.admin-actions-cell .btn{margin-bottom:0;margin-right:.22rem;padding:.22rem .5rem}body.admin-desktop-page .admin-list-table td.admin-actions-cell .btn:last-child{margin-right:0}body.admin-desktop-page .admin-list-table td.admin-total-pending-text{color:#b4232c;font-weight:600}body.admin-desktop-page .admin-list-table .status-pending{color:#b4232c}body.admin-desktop-page #filterQueryBtn,body.admin-desktop-page #filterResetBtn{flex:1 1 0}#reviewerOpinionList .list-group-item{font-size:.88rem;line-height:1.5}}:is(html:has(body.prototype-page),html:has(body.login-page-wls)){font-size:15px;line-height:1.5}body.prototype-page,body.prototype-page #app,body.login-page-wls,body.login-page-wls #app{color:#1f1f1f!important;font-size:15px!important;line-height:1.5!important}body.prototype-page .form-page-title{letter-spacing:.3px;color:#262224!important;font-size:1.35rem!important;font-weight:700!important}body.prototype-page .apply-form-scroll>.card{border-radius:var(--radius-lg,10px);box-shadow:var(--shadow-soft,0 4px 14px #2e181a0f);background:#fff;border:1px solid #eee2e4!important}body.prototype-page #applyForm .supporting-file-actions{flex-flow:row;justify-content:flex-start;align-items:center;gap:.45rem;display:flex}body.prototype-page #applyForm .supporting-file-actions .btn{white-space:nowrap;flex:none;width:auto;max-width:none}body.prototype-page #applyForm .form-label,body.prototype-page #applyForm .form-check-label{margin-bottom:.4rem;color:#1f1f1f!important;font-size:.9rem!important;font-weight:400!important}body.prototype-page #applyForm .form-control,body.prototype-page #applyForm .form-select{color:#1f1f1f!important;border-radius:var(--radius-md,8px)!important;border-color:#e2d5d7!important;padding-top:.5rem!important;padding-bottom:.5rem!important;font-size:.9rem!important;font-weight:400!important;line-height:1.5!important}body.prototype-page #applyForm input.form-control:not([type=file]),body.prototype-page #applyForm select.form-select{min-height:2.5rem!important}body.prototype-page #applyForm textarea.form-control{resize:vertical;min-height:auto}body.prototype-page #applyForm .form-control::placeholder{opacity:1;color:#9aa3ad!important}body.prototype-page #applyForm .form-control::-webkit-input-placeholder{color:#9aa3ad!important}body.prototype-page #applyForm .form-control::-moz-placeholder{opacity:1;color:#9aa3ad!important}body.prototype-page #applyForm select.form-select:invalid{color:#9aa3ad!important}body.prototype-page #applyForm select.form-select option{color:#1f1f1f!important}body.prototype-page #applyForm input[type=file].form-control{min-height:auto!important;padding-top:.38rem!important;padding-bottom:.38rem!important}body.prototype-page #applyForm .track-custom-toggle.form-select{--bs-form-select-bg-img:none!important;background-image:none!important;border-color:#e2d5d7!important;flex-direction:row!important;justify-content:space-between!important;align-items:center!important;gap:.5rem!important;width:100%!important;min-height:2.5rem!important;padding-right:.75rem!important;font-size:.9rem!important;font-weight:400!important;line-height:1.5!important;display:flex!important}body.prototype-page #applyForm .track-custom-toggle.form-select .track-toggle-label{text-align:left;flex:auto;min-width:0;display:block}body.prototype-page #applyForm .track-custom-toggle.form-select:after{vertical-align:middle;flex-shrink:0;margin-left:0}body.prototype-page #applyForm.was-validated .form-control:valid,body.prototype-page #applyForm .form-control.is-valid,body.prototype-page #applyForm.was-validated textarea.form-control:valid,body.prototype-page #applyForm textarea.form-control.is-valid{box-shadow:none!important;background-image:none!important;border-color:#e2d5d7!important;padding-right:.75rem!important}body.prototype-page #applyForm.was-validated .form-control:invalid,body.prototype-page #applyForm .form-control.is-invalid,body.prototype-page #applyForm.was-validated textarea.form-control:invalid,body.prototype-page #applyForm textarea.form-control.is-invalid{background-image:none!important;padding-right:.75rem!important}body.prototype-page #applyForm.was-validated .form-select:valid:not([multiple]):not([size]),body.prototype-page #applyForm.was-validated .form-select:valid:not([multiple])[size="1"],body.prototype-page #applyForm .form-select.is-valid:not([multiple]):not([size]),body.prototype-page #applyForm .form-select.is-valid:not([multiple])[size="1"],body.prototype-page #applyForm.was-validated .form-select:invalid:not([multiple]):not([size]),body.prototype-page #applyForm.was-validated .form-select:invalid:not([multiple])[size="1"],body.prototype-page #applyForm .form-select.is-invalid:not([multiple]):not([size]),body.prototype-page #applyForm .form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon:none!important;background-image:var(--bs-form-select-bg-img)!important;background-position:right .75rem center!important;background-repeat:no-repeat!important;background-size:16px 12px!important;padding-right:2.25rem!important}body.prototype-page #applyForm.was-validated .form-select:valid:not([multiple]):not([size]),body.prototype-page #applyForm.was-validated .form-select:valid:not([multiple])[size="1"],body.prototype-page #applyForm .form-select.is-valid:not([multiple]):not([size]),body.prototype-page #applyForm .form-select.is-valid:not([multiple])[size="1"]{box-shadow:none!important;border-color:#e2d5d7!important}body.prototype-page #applyForm .form-control:focus,body.prototype-page #applyForm .form-select:focus,body.prototype-page #applyForm .track-custom-toggle.form-select:focus,body.prototype-page #applyForm.was-validated .form-control:valid:focus,body.prototype-page #applyForm .form-control.is-valid:focus{border-color:#cfaeb3!important;box-shadow:0 0 0 .2rem #b400101f!important}body.prototype-page #applyForm.was-validated .form-control:invalid:focus,body.prototype-page #applyForm .form-control.is-invalid:focus,body.prototype-page #applyForm.was-validated .form-select:invalid:focus,body.prototype-page #applyForm .form-select.is-invalid:focus{border-color:#dc3545!important;box-shadow:0 0 0 .2rem #dc354526!important}body.prototype-page #applyForm .track-custom-toggle.is-invalid{border-color:#dc3545!important}body.prototype-page #applyForm .invalid-feedback{margin-top:.28rem;color:#dc3545!important;font-size:.875rem!important}body.prototype-page #applyForm .invalid-feedback.d-block{display:block!important}body.prototype-page #applyForm .intro-char-count,body.prototype-page #applyForm .prototype-subtitle{color:#6b6f76!important;font-size:.9rem!important}body.prototype-page #promiseSignModal .promise-sign-sheet{max-height:calc(100dvh - 1.5rem);overflow:hidden}body.prototype-page #promiseSignModal .promise-sign-sheet .modal-body{max-height:none;overflow:visible}body.prototype-page #promiseSignModal .promise-doc-scroll{-webkit-overflow-scrolling:touch;max-height:min(44vh,100dvh - 16rem);overflow:hidden auto}@media (width>=768px){.participant-layout .layout-main{flex-direction:column;min-height:0;display:flex}.participant-layout .layout-main>.layout-main-row{flex:1;align-items:stretch;min-height:0;max-height:100%}.participant-layout .layout-main>.layout-main-row>.layout-sider{flex-direction:column;min-height:0;max-height:100%;display:flex}.participant-layout .layout-main>.layout-main-row>.layout-sider>.card{flex:auto;min-height:0}.participant-layout .layout-main>.layout-main-row>.participant-main-col{flex-direction:column;min-width:0;max-height:100%;display:flex;overflow:hidden;min-height:0!important}body.prototype-page .apply-form-page{flex-direction:column;flex:1;min-height:0;max-height:100%;display:flex;overflow:hidden}body.prototype-page .apply-form-page .apply-form-scroll{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow:hidden auto}}@media (width<=767.98px){body.prototype-page #applyForm .supporting-file-list{flex-flow:column;align-items:stretch}body.prototype-page #applyForm .supporting-file-item{flex-direction:column;align-items:stretch;gap:.5rem;width:100%;max-width:none;display:flex}body.prototype-page #applyForm .supporting-file-meta{flex:none;width:100%;min-width:0}body.prototype-page #applyForm .supporting-file-actions{justify-content:flex-start;align-items:center;width:100%;flex-flow:row!important;display:flex!important}body.prototype-page #applyForm .supporting-file-actions .btn{white-space:nowrap;max-width:none;min-height:0;flex:none!important;width:auto!important;padding:.26rem .62rem!important;font-size:.78rem!important;line-height:1.25!important}body.prototype-page .apply-form-scroll{box-sizing:border-box;padding-bottom:.35rem;padding-left:.25rem;padding-right:.25rem}} diff --git a/public/admin/assets/prototype-styles-BwOCJx1Y.css b/public/admin/assets/prototype-styles-BwOCJx1Y.css deleted file mode 100644 index c38480d..0000000 --- a/public/admin/assets/prototype-styles-BwOCJx1Y.css +++ /dev/null @@ -1 +0,0 @@ -:root{--bg:#f5f3f4;--card-bg:#fff;--text:#1f1f1f;--muted:#6b6f76;--primary:#b40010;--primary-dark:#8f000c;--primary-soft:#fbe9eb;--radius-lg:10px;--radius-md:8px;--shadow-soft:0 4px 14px #2e181a0f}html,body{color:var(--text);max-width:100%;font-size:15px}html{-webkit-text-size-adjust:100%}body.prototype-page{background:var(--bg);overflow-x:hidden}body.prototype-page,body.login-page-wls{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.prototype-title{font-size:1.1rem;font-weight:650}.prototype-subtitle{color:var(--muted);font-size:.9rem}.card{border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);border:1px solid #eee2e4}.card .card-body{padding:1rem 1.1rem}.form-label{margin-bottom:.4rem;font-size:.9rem;font-weight:560}.company-name-input::placeholder{color:#c5cad3;opacity:1}.company-name-input::-webkit-input-placeholder{color:#c5cad3}.company-name-input::-moz-placeholder{color:#c5cad3;opacity:1}#locationOverseaCountry::placeholder{color:#c9ced6;opacity:1}.form-control,.form-select,.btn{border-radius:var(--radius-md);font-size:.9rem}.form-control,.form-select{border-color:#e2d5d7;padding-top:.5rem;padding-bottom:.5rem}.btn{border-width:1px;padding:.45rem .82rem}.btn.btn-sm{padding:.34rem .68rem;font-size:.84rem}.btn-primary,.btn-success{background:var(--primary);border-color:var(--primary)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-success:hover,.btn-success:focus,.btn-success:active{background:var(--primary-dark)!important;border-color:var(--primary-dark)!important}.btn-outline-primary{color:var(--primary);border-color:#cf9ea3}.btn-outline-primary:hover,.btn-outline-primary:focus,.btn-outline-primary:active{color:#fff!important;background:var(--primary)!important;border-color:var(--primary)!important}.table>:not(caption)>*>*{padding:.65rem .62rem;font-size:.88rem}.table thead th{color:#3a3335;background:#faf7f7;font-weight:600}.section-title{color:#2f2a2b;font-size:1.35rem;font-weight:620}.report-kpi-card{box-shadow:var(--shadow-soft);background:#fff;border:1px solid #ece2e4;border-radius:10px;min-height:104px;padding:.7rem .78rem}.report-kpi-label{color:#7f6f73;margin-bottom:.28rem;font-size:.82rem}.report-kpi-value{color:#2f292b;font-size:1.25rem;font-weight:650;line-height:1.2}.report-kpi-sub{color:#9a8e91;margin-top:.22rem;font-size:.76rem;line-height:1.35}.report-section-card{box-shadow:var(--shadow-soft);border:1px solid #ece2e4}.report-section-title{color:#40373a;margin-bottom:.72rem;font-size:.93rem;font-weight:620}.report-bar-row+.report-bar-row{margin-top:.62rem}.report-bar-head{justify-content:space-between;gap:.5rem;margin-bottom:.18rem;font-size:.82rem;display:flex}.report-bar-label{color:#3c3436}.report-bar-meta{color:#8b7e81}.report-progress{background:#f2ebec;height:.42rem}.report-progress .progress-bar{background:linear-gradient(90deg,#d3545f 0%,#b40010 100%)}.report-split-line{margin-top:1.1rem!important;margin-bottom:1.1rem!important}.report-table th{white-space:nowrap}.top5-track-card{background:linear-gradient(#fffefe 0%,#fff9fa 100%);border:1px solid #efe3e5;border-radius:10px;padding:.55rem .62rem}.top5-track-title{color:#4a3d41;margin-bottom:.38rem;font-size:.84rem;font-weight:600}.top5-track-list{margin:0;padding:0;list-style:none}.top5-item-row{border-radius:6px;grid-template-columns:1.4rem minmax(0,1fr) auto;align-items:center;gap:.4rem;padding:.22rem .2rem;display:grid}.top5-item-row+.top5-item-row{margin-top:.12rem}.top5-item-row:nth-child(odd){background:#fbf4f5}.top5-item-rank{color:#7b5d63;background:#f3e5e7;border-radius:999px;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;font-size:.75rem;display:inline-flex}.top5-item-name{color:#3f3538;white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.top5-item-score{color:#6d4950;font-size:.8rem}#scoreInput::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}#scoreInput::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}#scoreInput[type=number]{appearance:textfield}.report-main-grid>[class*=col-]>.d-flex>.report-section-card{flex:1 1 0}.form-page-header{border-bottom:1px solid #ede4e5;padding:.2rem .1rem .6rem}.form-page-title{letter-spacing:.3px;color:#262224;font-size:1.35rem;font-weight:700;line-height:1.2}#applyForm .form-label,#applyForm .form-check-label{font-weight:400}.filter-panel{background:#fcfafa;border:1px solid #eee4e5;border-radius:10px;padding:.8rem}.table-panel{-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #ece2e4;border-radius:10px;overflow:auto}.reviewer-manage-shell{grid-template-columns:14.5rem minmax(0,1fr);align-items:start;gap:.9rem;display:grid}.reviewer-track-panel,.reviewer-editor-panel{box-shadow:var(--shadow-soft);background:#fff;border:1px solid #ece2e4;border-radius:10px}.reviewer-track-panel{padding:.72rem}.reviewer-track-panel-title{color:#827579;margin-bottom:.55rem;font-size:.78rem;font-weight:600}.reviewer-track-tabs{gap:.42rem;display:grid}.reviewer-track-tab{color:#3e3437;text-align:left;background:#fbf7f8;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;width:100%;padding:.58rem .62rem;display:flex}.reviewer-track-tab.active{color:var(--primary);background:var(--primary-soft);border-color:#e5bdc1}.reviewer-track-tab-name{font-size:.86rem;font-weight:600}.reviewer-track-tab-count{color:#8b7e81;white-space:nowrap;font-size:.78rem}.reviewer-editor-panel{padding:.8rem}.reviewer-editor-head{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.72rem;display:flex}.reviewer-editor-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.reviewer-track-title{color:#322b2d;margin:0 0 .18rem;font-size:1rem;font-weight:650}.reviewer-track-meta{color:#8b7e81;font-size:.78rem}.reviewer-manage-table{min-width:620px}.reviewer-manage-table th{color:#4a4043;background:#faf7f7;font-size:.8rem;font-weight:600}.reviewer-manage-table td{vertical-align:middle}.reviewer-row-actions{white-space:nowrap}.reviewer-row-actions .btn+.btn{margin-left:.35rem}.reviewer-edit-label{font-weight:400}.status-pill{text-align:center;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-width:58px;padding:.14rem .5rem;font-size:.8rem;font-weight:600;display:inline-flex}.status-pending{color:#8a5600;background:#f9edd1;border-color:#ecd8a6}.status-pass{color:#0f6d4e;background:#e8f8f1;border-color:#b8e0cd}.status-reject{color:#9c1f28;background:#fdecec;border-color:#f0c2c7}.admin-list-table .status-pill.status-pending,.admin-list-table td.admin-total-pending-text{color:#b4232c!important;font-weight:400!important}body.admin-desktop-page .admin-list-table .admin-manage-status-tag{border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-width:46px;padding:.08rem .38rem;font-size:.76rem;display:inline-flex}body.admin-desktop-page .admin-list-table .admin-manage-status-progress{color:#8a5600;background:#f9edd1;border-color:#ecd8a6}body.admin-desktop-page .admin-list-table .admin-manage-status-pass{color:#0f6d4e;background:#e8f8f1;border-color:#b8e0cd}body.admin-desktop-page .admin-list-table .admin-manage-status-fail{color:#9c1f28;background:#fdecec;border-color:#f0c2c7}body.admin-desktop-page .admin-list-table .form-check-input{border-width:1px;border-color:#cfb8bc}body.admin-desktop-page .admin-list-table .form-check-input:checked,body.admin-desktop-page .admin-list-table .form-check-input:indeterminate{background-color:var(--primary);border-color:var(--primary)}body.admin-desktop-page .admin-list-table .form-check-input:focus{border-color:var(--primary);box-shadow:0 0 0 .16rem #b4001029}#adminBatchActionBar .btn-outline-primary{color:var(--primary);background:#fff7f8;border-color:#cf9ea3}#adminBatchActionBar .btn-outline-primary:hover,#adminBatchActionBar .btn-outline-primary:focus,#adminBatchActionBar .btn-outline-primary:active{color:var(--primary-dark)!important;background:#fdeef0!important;border-color:#c78d94!important}#adminBatchActionBar .btn-outline-primary:disabled,#adminBatchActionBar .btn-outline-primary.disabled{opacity:1;color:#cc9ca3!important;background:#fdf6f7!important;border-color:#e7cfd2!important}body.reviewer-score-2colors .status-pass,body.reviewer-score-2colors .status-reject{color:#0f6d4e;background:#e8f8f1;border-color:#b8e0cd}.score-value-box{font-weight:600;color:#0f6d4e!important;background:#e8f8f1!important;border-color:#b8e0cd!important}#reviewerOpinionList .list-group-item{font-size:.82rem;line-height:1.45}#reviewerOpinionList{border:1px solid #ece2e4;border-radius:8px;overflow:hidden}#reviewerOpinionList .reviewer-score-header,#reviewerOpinionList .reviewer-score-row{grid-template-columns:1fr auto;align-items:center;gap:.75rem;padding:.45rem .75rem;font-size:.82rem;line-height:1.4;display:grid}#reviewerOpinionList .reviewer-score-header{color:#6f6368;background:#f8f5f6;font-weight:600}#reviewerOpinionList .reviewer-score-row+.reviewer-score-row{border-top:1px solid #f0e8ea}#reviewerOpinionList .reviewer-score-name{color:#3f3538}#reviewerOpinionList .reviewer-score-pending{color:#9a343b}#reviewerOpinionList .reviewer-score-done{color:#0f6d4e}.event-back-btn{color:#5a5053;background:#f3eff0;border:1px solid #d8cfd1;border-radius:999px;justify-content:center;align-items:center;min-width:86px;padding:.14rem .5rem;font-size:.8rem;font-weight:600;display:inline-flex}.event-back-btn:hover,.event-back-btn:focus,.event-back-btn:active{color:#4d4447!important;background:#e8e2e4!important;border-color:#cbc0c3!important}.top-tools{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.layout-header{background:#fff;border-bottom:1px solid #ebdfe1}.header-user{color:#6b6f76;background:0 0;border:0;align-items:center;gap:.42rem;padding:.1rem;display:inline-flex}.header-user:after{display:none}.header-user-name{color:#4a4446;font-size:.93rem;font-weight:560}.header-user-menu{border:1px solid #e8dde0;border-radius:10px;min-width:170px;padding:.4rem 0;box-shadow:0 8px 18px #2b161817}.header-user-menu .dropdown-item{align-items:center;gap:.4rem;padding:.52rem .9rem;font-size:.92rem;display:flex}.header-user-menu .dropdown-divider{margin:.35rem 0}.menu-icon{text-align:center;opacity:.8;width:1.1rem}.profile-modal-dialog{max-width:760px}.profile-modal-content{border:1px solid #e6dfe1;border-radius:14px;box-shadow:0 14px 34px #28141624}.profile-modal-header{border-bottom:1px solid #ece3e5;padding:1rem 1.2rem .85rem}.profile-modal-title{letter-spacing:.2px;font-size:1.06rem;font-weight:620}.profile-modal-body{padding:1rem 1.2rem 1.1rem}.profile-field{background:#f5f7fa;border:1px solid #e1e5eb;border-radius:12px;min-height:76px;padding:.65rem .82rem}.profile-field-label{color:#6b6f76;margin-bottom:.24rem;font-size:.78rem}.profile-field-value{color:#2a2e35;word-break:break-all;font-size:.9rem;font-weight:460;line-height:1.35}.layout-main{min-width:0;height:calc(100vh - 112px)}.layout-sider .card{background:#fbf8f8;border-color:#eee1e3}.layout-sider .nav-link{color:#3d3436;background:0 0;border:0;border-radius:8px;padding:.58rem .68rem;font-size:.9rem}.layout-sider .nav-link.active{color:#8f000c;background:#f3e7e9;font-weight:600}.reviewer-mode .layout-sider .nav-link,.reviewer-mode .layout-sider .nav-link.active{color:#8f000c;background:#f3e7e9;border:0;font-weight:600}.mobile-nav-wrap{-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #eadedf;border-radius:10px;gap:.5rem;padding:.35rem;display:flex;overflow-x:auto}.mobile-nav-link{color:#3d3436;white-space:nowrap;background:#f9f5f6;border:1px solid #ddced1;border-radius:999px;flex:none;padding:.38rem .78rem;font-size:.86rem;font-weight:560}.mobile-nav-link.active{color:#8f000c;background:#f3e7e9;border-color:#cfaeb3}.main-iframe{width:100%;height:100%;box-shadow:var(--shadow-soft);background:#fff;border:1px solid #ece1e3;border-radius:10px;display:block}input,select,textarea{font-size:16px}.btn{touch-action:manipulation}.promise-signed-badge{font-weight:500;color:#2e7d32!important;background:#e8f5e9!important;border-color:#a5d6a7!important}.promise-sign-modal{--bs-modal-width:min(42rem, calc(100vw - 1.5rem));max-width:var(--bs-modal-width);margin-top:.75rem;margin-bottom:.75rem}.promise-sign-sheet{border-radius:12px;max-height:calc(100dvh - 1.5rem);overflow:hidden}#promiseSignModal .modal-body{max-height:none;padding:.85rem;overflow:visible}.promise-doc-paper{color:#111;min-height:0;box-shadow:none;background:#fff;border:0;border-radius:0;padding:.75rem 1rem .85rem;font-family:SimSun,Songti SC,STSong,serif;font-size:clamp(.86rem,1.25vw,.98rem);line-height:1.7}.promise-doc-heading{letter-spacing:.02em;color:#1f1718;margin:0 0 1.05rem;font-size:clamp(1.16rem,2.2vw,1.38rem);font-weight:800;line-height:1.32}.promise-doc-body{text-align:justify;text-justify:inter-ideograph;color:#221b1c}.promise-doc-body p{text-indent:2em;margin:0 0 .62rem}.promise-doc-signblock{margin-top:.78rem;padding-top:0}.promise-doc-signrow{flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:.5rem 1rem;display:flex}.promise-doc-signlabel{color:#221b1c;flex-shrink:0;padding-top:.18rem;font-size:1rem}.promise-sig-wrap{flex:1;min-width:240px;max-width:100%}.promise-sig-box{position:relative}.promise-sig-canvas{cursor:crosshair;touch-action:none;background:#fff;border:1px solid #333;border-radius:2px;width:100%;max-width:100%;height:clamp(82px,16vh,120px);display:block}.promise-sig-tools{justify-content:flex-start;align-items:center;margin-top:.35rem;display:flex}.promise-sig-hint{pointer-events:none;color:#221b1c47;font-family:PingFang SC,Microsoft YaHei,Arial,sans-serif;font-size:.76rem;position:absolute;top:.42rem;left:.55rem}.promise-doc-daterow{text-align:right;margin-top:.5rem;font-family:SimSun,Songti SC,STSong,serif;font-size:1rem}.promise-doc-dateline{min-width:11rem;display:inline-block}.promise-close-btn{color:#2f353c;background:#f3f5f7;border:1px solid #cfd5dc;min-width:4.2rem;font-weight:500}.promise-close-btn:hover,.promise-close-btn:focus,.promise-close-btn:active{color:#1f252b!important;background:#e5eaef!important;border-color:#bcc5cf!important}.promise-sign-actions{justify-content:flex-end;gap:.45rem;margin-top:.65rem;display:flex}.promise-sign-actions .btn{min-height:2rem;padding:.28rem .68rem;font-size:.82rem;line-height:1.25}.track-custom-select{position:relative}.track-custom-toggle{text-align:left;cursor:pointer;font-size:.875rem;font-weight:400}.track-custom-toggle .text-body,.track-custom-toggle .text-secondary{font-weight:400}.track-custom-note{color:#b8c0c9;font-weight:400}.track-custom-menu .track-pick{white-space:normal;font-size:.8125rem;font-weight:400;line-height:1.45;display:block}.track-custom-menu button.track-pick{font-weight:400}.track-custom-menu .track-pick .track-pick-inline{grid-template-columns:auto minmax(0,1fr);align-items:start;column-gap:.35rem;width:100%;display:grid}.track-custom-menu .track-pick .text-body{white-space:nowrap;font-weight:400}.track-custom-menu .track-pick .track-custom-note{font-size:.88em;font-weight:400;display:block}.track-custom-toggle.is-invalid{border-color:#dc3545}.file-upload-panel{background:#fcfafb;border:1px solid #e9dfe1;border-radius:10px;padding:.65rem}.uploaded-file-row{background:#fff;border:1px solid #ebe3e4;border-radius:8px;align-items:center;gap:.5rem;padding:.45rem .6rem;display:flex}.uploaded-file-label{color:#7a6d70;flex:none;font-size:.82rem}.uploaded-file-link{color:#8f000c;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.92rem;font-weight:560;text-decoration:none;overflow:hidden}#planFileLink{color:var(--primary);font-size:.9rem;font-weight:400}#planFileLink:hover,#planFileLink:focus{color:var(--primary-dark);font-weight:700}a[target=_blank]{color:var(--primary);text-decoration:none}a[target=_blank]:hover,a[target=_blank]:focus{color:var(--primary-dark);font-weight:700;text-decoration:none}.uploaded-file-link:hover,.uploaded-file-link:focus{color:#a30917;text-decoration:underline}.supporting-file-list{flex-wrap:wrap;align-items:flex-start;gap:.5rem;min-width:0;display:flex}.supporting-file-item{background:#fff;border:1px solid #ebe3e4;border-radius:8px;align-items:center;gap:.55rem;max-width:100%;padding:.5rem .6rem;display:inline-flex}.supporting-file-meta{flex:0 auto;min-width:0}.supporting-file-name{color:#3a3335;white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:560;display:block;overflow:hidden}.supporting-file-size{color:#8b7e81;margin-top:.12rem;font-size:.78rem;display:block}.supporting-file-actions{flex:none;align-items:center;gap:.32rem;display:flex}.supporting-file-actions .btn{white-space:nowrap}.promise-doc-link,.promise-doc-link:hover,.promise-doc-link:focus,.promise-doc-link:active{color:var(--primary);text-decoration:none}body.login-page-wls{color:#333;-webkit-font-smoothing:antialiased;background:linear-gradient(135deg,#fefcfc 0%,#fbe9eb 36%,#f7f5f6 88%);flex-direction:column;min-height:100dvh;margin:0;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;display:flex}body.login-page-wls *,body.login-page-wls :before,body.login-page-wls :after{box-sizing:border-box}.login-page-wls__wrap{flex-direction:column;flex:1;width:100%;display:flex}.login-page-wls__inner{flex:1;grid-template-columns:minmax(0,1.15fr) minmax(340px,400px);align-content:center;align-items:center;gap:2rem clamp(2.25rem,5.5vw,5rem);width:100%;max-width:1180px;margin:0 auto;padding:clamp(1.5rem,4vh,3rem) clamp(1.5rem,4vw,3.5rem);display:grid}.login-page-wls__brand{text-align:left;justify-self:start;width:100%;max-width:520px;padding:0}.login-page-wls__logo{margin-bottom:.6rem}.login-page-wls__mark{margin-bottom:.9rem}.login-page-wls__mark-cn{color:#5c6068;letter-spacing:.14em;padding:.15rem 0 .1rem;font-size:clamp(1.02rem,1.35vw,1.14rem);font-weight:500;line-height:1.5;display:inline-block}.login-page-wls__mark-sep{vertical-align:.08em;color:currentColor;opacity:1;padding:0 .28em;font-size:.58em;font-weight:500;line-height:1;display:inline-block}.login-page-wls__title-main .login-page-wls__mark-sep{font-weight:700}.login-page-wls__mark-en{color:#9ca3af;letter-spacing:.12em;text-transform:uppercase;margin-top:.24rem;font-size:.68rem}.login-page-wls__title{color:#222;letter-spacing:.01em;flex-direction:column;gap:.2rem;margin:0 0 .75rem;font-weight:700;display:flex}.login-page-wls__title-main{max-width:100%;font-size:clamp(1.32rem,2vw,1.68rem);line-height:1.3}.login-page-wls__title-sub{color:#3b3d42;font-size:clamp(1.04rem,1.45vw,1.2rem);font-weight:600;line-height:1.3}.login-page-wls__slogan{color:#8b8e94;max-width:100%;margin:0;font-size:.86rem;line-height:1.62}.login-page-wls__panel{justify-content:flex-end;justify-self:stretch;align-items:center;min-width:0;padding:0;display:flex}.login-page-wls__card{background:#fff;border-radius:14px;width:100%;max-width:360px;margin:0;padding:2.25rem 2rem 1.75rem;box-shadow:0 8px 28px #78182012,0 2px 8px #0000000a}.login-page-wls__card-title{text-align:center;color:#333;margin:0 0 1.65rem;font-size:1.125rem;font-weight:700}.login-page-wls__form{flex-direction:column;display:flex}.login-page-wls__input{color:#333;background:#fff;border:1px solid #dcdfe6;border-radius:8px;outline:none;width:100%;margin-bottom:.95rem;padding:.72rem .9rem;font-size:.9375rem;transition:border-color .15s,box-shadow .15s}.login-page-wls__input::placeholder{color:#b0b4bf}.login-page-wls__input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #b400101f}.login-page-wls__code-row{align-items:stretch;gap:.55rem;margin-bottom:.95rem;display:flex}.login-page-wls__input.login-page-wls__input-code{flex:1;margin-bottom:0}.login-page-wls__code-btn{color:#9f0f1c;min-width:6.3rem;text-shadow:none;-webkit-text-stroke:0;cursor:pointer;background:#fff7f8;border:1px solid #dfc4c7;border-radius:8px;padding:0 .7rem;font-size:.82rem;font-weight:500;transition:all .15s}.login-page-wls__code-btn:hover{background:#feeef0;border-color:#d9a6ac}.login-page-wls__code-btn:disabled{opacity:.68;cursor:not-allowed}.login-page-wls__role{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.1rem;padding:0 .05rem;display:flex}.login-page-wls__role-label{color:#888;white-space:nowrap;font-size:.8125rem}.login-page-wls__role-select{color:#444;background:#fafafa;border:1px solid #e5e7eb;border-radius:8px;outline:none;flex:1;max-width:168px;padding:.42rem .55rem;font-size:.8125rem}.login-page-wls__role-select:focus{border-color:var(--primary)}.login-page-wls__submit{color:#fff;cursor:pointer;background:linear-gradient(#cf2c3a 0%,#ba1424 55%,#a90a1a 100%);border:none;border-radius:8px;width:100%;margin-top:.15rem;padding:.78rem 1rem;font-size:1rem;font-weight:600;transition:filter .15s,transform .1s,box-shadow .15s;box-shadow:0 2px 8px #b4001029}.login-page-wls__submit:hover{filter:brightness(1.03);box-shadow:0 2px 10px #b4001033}.login-page-wls__submit:active{transform:scale(.99)}.login-page-wls__quick-entry{text-align:center;color:#b3a9ab;-webkit-user-select:none;user-select:none;margin-top:.6rem;font-size:.76rem}.login-page-wls__quick-link{color:#aba1a4;text-decoration:none;transition:color .15s}.login-page-wls__quick-link:hover{color:#8f7f83;text-decoration:none}.login-page-wls__quick-sep{color:#cbc3c5;margin:0 .38rem}.login-page-wls__hint{text-align:center;color:#aaa;margin:1rem 0 0;font-size:.75rem;line-height:1.5}.login-page-wls__form--invalid .login-page-wls__input:invalid{border-color:#e57373}.login-page-wls__footer{text-align:center;padding:.75rem 1rem 1.25rem}.login-page-wls__copyright{color:#aaa;margin:0;font-size:.75rem}.notice-modal-dialog{max-width:760px}.notice-modal-content{border:1px solid #e8dde0;border-radius:12px;box-shadow:0 12px 36px #28141629}.notice-modal-body{text-align:center;padding:1rem 2rem 1.6rem}.notice-icon{color:#a65a64;border:1.8px solid #d6b9bd;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto .8rem;display:flex}.notice-title{color:#2c2628;margin-bottom:.55rem;font-size:1.55rem;font-weight:650}.notice-text{color:#615659;margin:0;font-size:1.05rem;line-height:1.7}.notice-modal-footer{justify-content:center;gap:.7rem;padding-bottom:1.6rem}.notice-cancel-btn{color:#2f3136;background:#e3e5e9;border-color:#d2d6dc;min-width:72px}.notice-cancel-btn:hover,.notice-cancel-btn:focus,.notice-cancel-btn:active{color:#2a2d33!important;background:#d4d9e0!important;border-color:#c4cad3!important}.notice-ok-btn{min-width:82px}.notice-modal-content.notice-success .notice-icon{color:#2f8a62;background:#f2fbf7;border-color:#b9dfce}.notice-modal-content.notice-warning .notice-icon{color:#a65a64;background:#fff;border-color:#d6b9bd}#exportModal .modal-footer .btn-primary{background-color:var(--primary)!important;border-color:var(--primary)!important;color:#fff!important}#exportModal .modal-footer .btn-primary:hover,#exportModal .modal-footer .btn-primary:focus{background-color:var(--primary-dark)!important;border-color:var(--primary-dark)!important;color:#fff!important}#exportModal .form-check-input:checked{background-color:var(--primary);border-color:var(--primary);--bs-form-check-bg-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round' d='M6.2 10.2l2.6 2.6 5.8-6'/%3E%3C/svg%3E");background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round' d='M6.2 10.2l2.6 2.6 5.8-6'/%3E%3C/svg%3E")!important}#exportModal .form-check-input:focus{border-color:#b400108c;box-shadow:0 0 0 .2rem #b400101f}#exportModal .modal-export-dialog{--bs-modal-width:min(96vw, 1680px);width:100%;max-width:min(96vw,1680px);margin-left:auto;margin-right:auto}#exportModal .export-preview-scroll{max-height:300px;overflow:auto}#exportModal .export-preview-table{width:max-content;min-width:100%}#exportModal .export-preview-table th,#exportModal .export-preview-table td{white-space:nowrap}@media (width<=960px){.login-page-wls__inner{grid-template-columns:1fr;justify-items:center;row-gap:2.25rem;padding-left:1.25rem;padding-right:1.25rem}.login-page-wls__brand{text-align:center;flex-direction:column;justify-self:center;align-items:center;max-width:26rem;display:flex}.login-page-wls__panel{justify-content:center;width:100%;max-width:360px}}@media (width<=992px){body.user-mobile-no-menu #mobileNavSection,body.user-mobile-no-menu .layout-sider{display:none!important}.layout-header .container-fluid,.layout-main.container-fluid{padding-left:.9rem!important;padding-right:.9rem!important}.layout-main{height:auto;min-height:calc(100dvh - 120px)}.layout-main>.row,.layout-sider .card{height:auto!important}.main-iframe{height:calc(100dvh - 230px);min-height:calc(100dvh - 230px)}.layout-sider{display:none}.navbar-brand.prototype-title{white-space:normal;max-width:calc(100vw - 128px);font-size:.96rem;line-height:1.35}.modal-dialog{margin:.75rem}.section-title{font-size:1.35rem}.filter-panel .row>[class*=col-]{min-width:0}.table .btn.btn-sm{min-height:34px;padding-left:.65rem;padding-right:.65rem}body.admin-desktop-page{overflow-x:hidden}body.admin-desktop-page .d-flex.justify-content-between.align-items-center{align-items:flex-start!important}body.admin-desktop-page .filter-panel .row{--bs-gutter-y:.65rem}body.admin-desktop-page .filter-panel .row>[class*=col-]{width:100%}body.admin-desktop-page #adminBatchToolbar,body.admin-desktop-page #adminBatchActionBar{-webkit-overflow-scrolling:touch;padding-bottom:.12rem;overflow-x:auto}body.admin-desktop-page #adminBatchToolbar .btn,body.admin-desktop-page #adminBatchActionBar .btn{flex:none}}@media (width<=768px){html,body{font-size:14px}.card .card-body{padding:.95rem}.btn{width:auto}.top-tools{justify-content:flex-start;width:100%}.form-page-title{font-size:1.3rem}.notice-modal-body{padding:.6rem 1rem 1.2rem}.notice-title{font-size:1.3rem}.notice-text{font-size:.98rem}.table>:not(caption)>*>*{padding:.56rem .5rem;font-size:.84rem}.table thead th{white-space:nowrap}.filter-panel{padding:.7rem}.reviewer-manage-shell{grid-template-columns:1fr}.reviewer-editor-head{flex-direction:column;align-items:stretch}.reviewer-editor-actions{justify-content:flex-start}.filter-panel .btn{min-height:38px}#filterQueryBtn,#filterResetBtn{flex:1}#saveBtn,#submitBtn,#resubmitBtn,#rejectBtn,#approveBtn{width:100%}#auditActionBar{grid-template-columns:1fr;display:grid!important}.table-responsive{-webkit-overflow-scrolling:touch}#detailStatusBadge{white-space:normal;justify-content:flex-start;max-width:100%;line-height:1.35}.modal-body{max-height:64vh;overflow-y:auto}.status-pill{white-space:nowrap}.profile-modal-header,.profile-modal-body,.notice-modal-footer{padding-left:.95rem;padding-right:.95rem}#exportModal .modal-export-dialog{--bs-modal-width:98vw;max-width:98vw}#exportModal .export-preview-scroll{max-height:52vh}.promise-sign-modal{--bs-modal-width:calc(100vw - .75rem);margin-top:.38rem;margin-bottom:.38rem}.promise-sign-sheet{max-height:calc(100dvh - .75rem)}#promiseSignModal .modal-body{max-height:none;padding:.62rem;overflow:visible}.promise-doc-paper{padding:.55rem .65rem .62rem;font-size:.84rem;line-height:1.55}.promise-doc-heading{margin-bottom:.7rem;font-size:1.08rem;font-weight:800}.promise-doc-body p{margin-bottom:.34rem}.promise-doc-signblock{margin-top:.44rem;padding-top:.44rem}.promise-doc-signrow{gap:.35rem .55rem}.promise-doc-signlabel,.promise-doc-daterow{font-size:.88rem}.promise-sig-canvas{height:clamp(72px,14vh,92px)}.promise-sig-tools{gap:.5rem;margin-top:.28rem}.promise-sig-hint{font-size:.72rem}.promise-doc-dateline{min-width:9.5rem}.promise-sign-actions{margin-top:.45rem}.promise-sign-actions .btn{min-height:1.9rem;padding:.24rem .58rem;font-size:.78rem}.supporting-file-actions{justify-content:flex-start}.supporting-file-item{width:100%}.supporting-file-meta{flex:auto}.track-custom-toggle{min-height:2.75rem;padding-top:.52rem;padding-bottom:.52rem;line-height:1.32}.track-custom-menu{max-height:min(70vh,22rem)!important}.track-custom-menu .track-pick{font-size:.8125rem;font-weight:400;padding-top:.55rem!important;padding-bottom:.55rem!important}.login-page-wls__card{border-radius:12px;max-width:100%;padding:1.5rem 1rem 1.15rem}.login-page-wls__title-main{font-size:1.2rem}.login-page-wls__title-sub{font-size:.98rem}.login-page-wls__slogan{font-size:.8rem;line-height:1.55}.uploaded-file-row{flex-wrap:wrap;align-items:flex-start;gap:.35rem}.uploaded-file-link{white-space:normal;word-break:break-all;width:100%;line-height:1.45}.login-page-wls__footer{padding-bottom:calc(1rem + env(safe-area-inset-bottom))}}@media (height<=620px){.promise-sign-modal{margin-top:.25rem;margin-bottom:.25rem}.promise-sign-sheet{max-height:calc(100dvh - .5rem)}#promiseSignModal .modal-body{padding:.5rem .58rem}.promise-doc-paper{padding:.42rem .55rem .48rem;font-size:.8rem;line-height:1.42}.promise-doc-heading{margin-bottom:.5rem;font-size:1rem;font-weight:800}.promise-doc-body p{margin-bottom:.26rem}.promise-doc-signblock{margin-top:.28rem;padding-top:.28rem}.promise-sig-canvas{height:64px}.promise-doc-daterow{margin-top:.35rem!important}.promise-sign-actions{margin-top:.3rem}.promise-sign-actions .btn{min-height:1.75rem;padding:.2rem .5rem;font-size:.76rem}}@media (width<=576px){.container-fluid.p-3,.container-fluid.p-3.p-md-4{padding:.7rem!important}.navbar-brand.prototype-title{max-width:calc(100vw - 92px);font-size:.9rem}.header-user-name{display:none}.layout-main{padding-top:.6rem!important;padding-bottom:.7rem!important}.mobile-nav-wrap{gap:.4rem;padding:.3rem}.mobile-nav-link{padding:.34rem .68rem;font-size:.82rem}.main-iframe{border-radius:8px;height:calc(100dvh - 186px);min-height:calc(100dvh - 186px)}.track-custom-toggle{min-height:2.8rem;padding-left:.65rem;padding-right:2rem}.track-custom-menu .track-pick{font-size:.8125rem;font-weight:400}.btn,.btn.btn-sm{min-height:38px}.modal.show{justify-content:center;align-items:center;padding:.45rem;display:flex!important}.modal-dialog{width:100%;margin:0!important}.modal-content{border-radius:10px}.modal-header,.modal-body,.modal-footer{padding-left:.85rem;padding-right:.85rem}.table-responsive>.table.admin-list-table{min-width:900px}.table-responsive>.table.my-events-table,.my-events-table{min-width:100%}.my-events-table thead{display:none}.my-events-table tbody tr{background:#fff;border:1px solid #eadfe1;border-radius:10px;margin:.6rem;display:block;box-shadow:0 2px 10px #2d12150a}.my-events-table tbody td{white-space:normal;justify-content:space-between;align-items:flex-start;gap:.75rem;font-size:.86rem;display:flex;border:0!important;border-bottom:1px dashed #f0e6e8!important;padding:.58rem .7rem!important}.my-events-table tbody td:last-child{border-bottom:0!important}.my-events-table tbody td:before{content:attr(data-label);color:#7b6f72;flex:0 0 4.5rem;font-weight:600}.my-events-table tbody td[data-label=审核状态] .status-pill{margin-left:auto}.my-events-table tbody td[data-label=操作]{padding-top:.45rem!important}.my-events-table tbody td[data-label=操作] a.btn{text-align:center;justify-content:center;align-items:center;min-width:5.5rem;margin-left:auto;display:inline-flex}#exportModal .export-preview-table{min-width:980px}.login-page-wls__input{font-size:16px}.login-page-wls__code-btn{min-width:6rem}.login-page-wls__quick-entry{white-space:normal;line-height:1.6}#eventDetailActions{justify-content:flex-start}#eventDetailActions .btn{min-width:5.2rem;padding-left:.78rem;padding-right:.78rem;width:auto!important}#userFormActions{justify-content:flex-start}#userFormActions .btn{min-width:5.6rem;min-height:34px;padding:.34rem .88rem;font-size:.9rem;width:auto!important}#myEventDetailTopActions .status-pill{min-width:0;min-height:32px;padding:.12rem .55rem;font-size:.88rem}#myEventDetailTopActions .event-back-btn{min-width:0;min-height:32px;padding:.16rem .56rem;font-size:.82rem}.profile-modal-dialog{max-width:96vw}.profile-modal-content{border-radius:12px}.profile-modal-header{padding:.9rem 1rem .75rem}.profile-modal-title{font-size:1.02rem;font-weight:660}.profile-modal-body{padding:.8rem .95rem .95rem}.profile-modal-body .row{--bs-gutter-y:.68rem}.profile-field{border-radius:10px;min-height:74px;padding:.62rem .78rem}.profile-field-label{margin-bottom:.28rem;font-size:.8rem}.profile-field-value{font-size:.92rem;font-weight:560;line-height:1.35}#myEventDetailTopActions .status-pill,#myEventDetailTopActions .event-back-btn{min-height:30px}#myEventDetailTopActions .status-pill{padding:.12rem .48rem;font-size:.84rem}#myEventDetailTopActions .event-back-btn{padding:.12rem .5rem;font-size:.8rem}}@media (width<=768px){body.admin-desktop-page .container-fluid.p-3,body.admin-desktop-page .container-fluid.p-3.p-md-4{padding:.8rem!important}body.admin-desktop-page .table>:not(caption)>*>*{padding:.65rem .62rem;font-size:.88rem}body.admin-desktop-page .table-responsive>.table.admin-list-table{min-width:900px}body.admin-desktop-page .reviewer-manage-shell{grid-template-columns:1fr}body.admin-desktop-page .reviewer-track-tabs{-webkit-overflow-scrolling:touch;gap:.5rem;padding-bottom:.1rem;display:flex;overflow-x:auto}body.admin-desktop-page .reviewer-track-tab{flex:0 0 min(13rem,72vw)}body.admin-desktop-page .admin-list-table th.admin-actions-head{white-space:nowrap;width:8.4rem}body.admin-desktop-page .admin-list-table td.admin-actions-cell{white-space:nowrap;padding-right:.35rem!important}body.admin-desktop-page .admin-list-table td.admin-actions-cell .btn{margin-bottom:0;margin-right:.22rem;padding:.22rem .5rem}body.admin-desktop-page .admin-list-table td.admin-actions-cell .btn:last-child{margin-right:0}body.admin-desktop-page .admin-list-table td.admin-total-pending-text{color:#b4232c;font-weight:600}body.admin-desktop-page .admin-list-table .status-pending{color:#b4232c}body.admin-desktop-page #filterQueryBtn,body.admin-desktop-page #filterResetBtn{flex:1 1 0}#reviewerOpinionList .list-group-item{font-size:.88rem;line-height:1.5}}:is(html:has(body.prototype-page),html:has(body.login-page-wls)){font-size:15px;line-height:1.5}body.prototype-page,body.prototype-page #app,body.login-page-wls,body.login-page-wls #app{color:#1f1f1f!important;font-size:15px!important;line-height:1.5!important}body.prototype-page .form-page-title{letter-spacing:.3px;color:#262224!important;font-size:1.35rem!important;font-weight:700!important}body.prototype-page #applyForm .form-label,body.prototype-page #applyForm .form-check-label{margin-bottom:.4rem;color:#1f1f1f!important;font-size:.9rem!important;font-weight:400!important}body.prototype-page #applyForm .form-control,body.prototype-page #applyForm .form-select{color:#1f1f1f!important;border-radius:var(--radius-md,8px)!important;border-color:#e2d5d7!important;padding-top:.5rem!important;padding-bottom:.5rem!important;font-size:.9rem!important;font-weight:400!important;line-height:1.5!important}body.prototype-page #applyForm input.form-control:not([type=file]),body.prototype-page #applyForm select.form-select{min-height:2.5rem!important}body.prototype-page #applyForm textarea.form-control{resize:vertical;min-height:auto}body.prototype-page #applyForm .form-control::placeholder{opacity:1;color:#9aa3ad!important}body.prototype-page #applyForm .form-control::-webkit-input-placeholder{color:#9aa3ad!important}body.prototype-page #applyForm .form-control::-moz-placeholder{opacity:1;color:#9aa3ad!important}body.prototype-page #applyForm select.form-select:invalid{color:#9aa3ad!important}body.prototype-page #applyForm select.form-select option{color:#1f1f1f!important}body.prototype-page #applyForm input[type=file].form-control{min-height:auto!important;padding-top:.38rem!important;padding-bottom:.38rem!important}body.prototype-page #applyForm .track-custom-toggle.form-select{--bs-form-select-bg-img:none!important;background-image:none!important;border-color:#e2d5d7!important;flex-direction:row!important;justify-content:space-between!important;align-items:center!important;gap:.5rem!important;width:100%!important;min-height:2.5rem!important;padding-right:.75rem!important;font-size:.9rem!important;font-weight:400!important;line-height:1.5!important;display:flex!important}body.prototype-page #applyForm .track-custom-toggle.form-select .track-toggle-label{text-align:left;flex:auto;min-width:0;display:block}body.prototype-page #applyForm .track-custom-toggle.form-select:after{vertical-align:middle;flex-shrink:0;margin-left:0}body.prototype-page #applyForm.was-validated .form-control:valid,body.prototype-page #applyForm .form-control.is-valid,body.prototype-page #applyForm.was-validated textarea.form-control:valid,body.prototype-page #applyForm textarea.form-control.is-valid{box-shadow:none!important;background-image:none!important;border-color:#e2d5d7!important;padding-right:.75rem!important}body.prototype-page #applyForm.was-validated .form-control:invalid,body.prototype-page #applyForm .form-control.is-invalid,body.prototype-page #applyForm.was-validated textarea.form-control:invalid,body.prototype-page #applyForm textarea.form-control.is-invalid{background-image:none!important;padding-right:.75rem!important}body.prototype-page #applyForm.was-validated .form-select:valid:not([multiple]):not([size]),body.prototype-page #applyForm.was-validated .form-select:valid:not([multiple])[size="1"],body.prototype-page #applyForm .form-select.is-valid:not([multiple]):not([size]),body.prototype-page #applyForm .form-select.is-valid:not([multiple])[size="1"],body.prototype-page #applyForm.was-validated .form-select:invalid:not([multiple]):not([size]),body.prototype-page #applyForm.was-validated .form-select:invalid:not([multiple])[size="1"],body.prototype-page #applyForm .form-select.is-invalid:not([multiple]):not([size]),body.prototype-page #applyForm .form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon:none!important;background-image:var(--bs-form-select-bg-img)!important;background-position:right .75rem center!important;background-repeat:no-repeat!important;background-size:16px 12px!important;padding-right:2.25rem!important}body.prototype-page #applyForm.was-validated .form-select:valid:not([multiple]):not([size]),body.prototype-page #applyForm.was-validated .form-select:valid:not([multiple])[size="1"],body.prototype-page #applyForm .form-select.is-valid:not([multiple]):not([size]),body.prototype-page #applyForm .form-select.is-valid:not([multiple])[size="1"]{box-shadow:none!important;border-color:#e2d5d7!important}body.prototype-page #applyForm .form-control:focus,body.prototype-page #applyForm .form-select:focus,body.prototype-page #applyForm .track-custom-toggle.form-select:focus,body.prototype-page #applyForm.was-validated .form-control:valid:focus,body.prototype-page #applyForm .form-control.is-valid:focus{border-color:#cfaeb3!important;box-shadow:0 0 0 .2rem #b400101f!important}body.prototype-page #applyForm.was-validated .form-control:invalid:focus,body.prototype-page #applyForm .form-control.is-invalid:focus,body.prototype-page #applyForm.was-validated .form-select:invalid:focus,body.prototype-page #applyForm .form-select.is-invalid:focus{border-color:#dc3545!important;box-shadow:0 0 0 .2rem #dc354526!important}body.prototype-page #applyForm .track-custom-toggle.is-invalid{border-color:#dc3545!important}body.prototype-page #applyForm .invalid-feedback{margin-top:.28rem;color:#dc3545!important;font-size:.875rem!important}body.prototype-page #applyForm .invalid-feedback.d-block{display:block!important}body.prototype-page #applyForm .intro-char-count,body.prototype-page #applyForm .prototype-subtitle{color:#6b6f76!important;font-size:.9rem!important}body.prototype-page #promiseSignModal .promise-sign-sheet{max-height:calc(100dvh - 1.5rem);overflow:hidden}body.prototype-page #promiseSignModal .promise-sign-sheet .modal-body{max-height:none;overflow:visible}body.prototype-page #promiseSignModal .promise-doc-scroll{-webkit-overflow-scrolling:touch;max-height:min(44vh,100dvh - 16rem);overflow:hidden auto}@media (width>=768px){.participant-layout .layout-main{flex-direction:column;min-height:0;display:flex}.participant-layout .layout-main>.layout-main-row{flex:1;align-items:stretch;min-height:0;max-height:100%}.participant-layout .layout-main>.layout-main-row>.layout-sider{flex-direction:column;min-height:0;max-height:100%;display:flex}.participant-layout .layout-main>.layout-main-row>.layout-sider>.card{flex:auto;min-height:0}.participant-layout .layout-main>.layout-main-row>.participant-main-col{flex-direction:column;min-width:0;max-height:100%;display:flex;overflow:hidden;min-height:0!important}body.prototype-page .apply-form-page{flex-direction:column;flex:1;min-height:0;max-height:100%;display:flex;overflow:hidden}body.prototype-page .apply-form-page .apply-form-scroll{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow:hidden auto}} diff --git a/public/admin/frontend/prototype/assets/prototype.css b/public/admin/frontend/prototype/assets/prototype.css index d8705d1..f0fd905 100644 --- a/public/admin/frontend/prototype/assets/prototype.css +++ b/public/admin/frontend/prototype/assets/prototype.css @@ -1160,12 +1160,18 @@ a[target="_blank"]:focus { .supporting-file-actions { display: flex; + flex-direction: row; + flex-wrap: nowrap; align-items: center; + justify-content: flex-start; + gap: 0.45rem; flex: 0 0 auto; - gap: 0.32rem; } .supporting-file-actions .btn { + flex: 0 0 auto; + width: auto; + max-width: none; white-space: nowrap; } @@ -1903,16 +1909,46 @@ body.login-page-wls *::after { font-size: 0.78rem; } + .supporting-file-list { + flex-direction: column; + flex-wrap: nowrap; + align-items: stretch; + } + .supporting-file-actions { + display: flex; + flex-direction: row; + flex-wrap: nowrap; + align-items: center; justify-content: flex-start; + gap: 0.45rem; + width: 100%; + } + + .supporting-file-actions .btn { + flex: 0 0 auto; + width: auto !important; + max-width: none; + min-height: 0; + padding: 0.26rem 0.62rem; + font-size: 0.78rem; + line-height: 1.25; + white-space: nowrap; } .supporting-file-item { width: 100%; + max-width: none; + display: flex; + flex-direction: column; + align-items: stretch; + gap: 0.5rem; } .supporting-file-meta { - flex: 1 1 auto; + flex: none; + width: 100%; + min-width: 0; } /* 赛道自定义下拉:手机端触控与列表可读性 */ diff --git a/public/admin/index.html b/public/admin/index.html index 0c3ae1b..b8eacd4 100644 --- a/public/admin/index.html +++ b/public/admin/index.html @@ -5,7 +5,7 @@ 江苏创青春新消费大赛报名系统 - cxxfds-web - +