From 40b2687111e0e8d5ada127e0ffd423d82f241535 Mon Sep 17 00:00:00 2001 From: weizong song Date: Sat, 6 Jun 2026 09:43:29 +0800 Subject: [PATCH] =?UTF-8?q?company=E5=AD=97=E6=AE=B5=E5=A2=9E=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Api/Admin/ApplicationController.php | 1 + .../Controllers/Api/ApplicationController.php | 1 + .../Controllers/Api/AuthSmsController.php | 1 + .../Controllers/Api/UserProfileController.php | 1 + .../Controllers/ChannelEntryController.php | 21 ++++++++++++++---- app/Models/User.php | 1 + ...6_06_100000_add_company_to_users_table.php | 22 +++++++++++++++++++ .../CompetitionSignupFormSchemaSeeder.php | 1 + ...ut-5oObCFY0.js => AdminLayout-B9RUDaPE.js} | 2 +- ...DR_q29uQ.js => AdminLoginView-CqtYXHTl.js} | 2 +- public/admin/assets/ApplyView-DURs0fvo.js | 1 + public/admin/assets/ApplyView-DgX9cs7m.js | 1 - ...ufn.js => CompetitionFormView-DRos9VBA.js} | 4 ++-- ...Gxr.js => CompetitionListView-BbfJ4F-h.js} | 2 +- ...View-Bh9YgWVl.js => LoginView-CO-_1hFZ.js} | 2 +- ...out-BftH7FoP.js => MainLayout-BILBFnMI.js} | 2 +- ....js => ParticipantLandingView-Bv2BqJBZ.js} | 2 +- ...a8ZCCo.js => ReviewPortalView-CpVr3aV7.js} | 2 +- ...ReviewerApplicationDetailView-CjEcHQys.js} | 2 +- ...C4hT_Q4M.js => ReviewerLayout-BNfuV9oj.js} | 2 +- ...3POck.js => ReviewerLoginView-Yml8K3fA.js} | 2 +- ...s-R2.js => ReviewerManageView-vNhTrvlI.js} | 2 +- ...zW.js => ReviewerProjectsView-l9SimN3k.js} | 2 +- ...hGO_qg.js => adminCompetition-9B28RRMo.js} | 2 +- ...s-DiNyIuQv.js => competitions-wkv7rvkn.js} | 2 +- .../{index-D0dRqZdv.js => index-D02IxadN.js} | 4 ++-- public/admin/index.html | 2 +- tests/Feature/AuthSmsControllerTest.php | 1 + .../Feature/ChannelSignupIntegrationTest.php | 11 +++++++++- 29 files changed, 76 insertions(+), 25 deletions(-) create mode 100644 database/migrations/2026_06_06_100000_add_company_to_users_table.php rename public/admin/assets/{AdminLayout-5oObCFY0.js => AdminLayout-B9RUDaPE.js} (91%) rename public/admin/assets/{AdminLoginView-DR_q29uQ.js => AdminLoginView-CqtYXHTl.js} (95%) create mode 100644 public/admin/assets/ApplyView-DURs0fvo.js delete mode 100644 public/admin/assets/ApplyView-DgX9cs7m.js rename public/admin/assets/{CompetitionFormView-BGv5mufn.js => CompetitionFormView-DRos9VBA.js} (99%) rename public/admin/assets/{CompetitionListView-BmZZ5Gxr.js => CompetitionListView-BbfJ4F-h.js} (93%) rename public/admin/assets/{LoginView-Bh9YgWVl.js => LoginView-CO-_1hFZ.js} (98%) rename public/admin/assets/{MainLayout-BftH7FoP.js => MainLayout-BILBFnMI.js} (97%) rename public/admin/assets/{ParticipantLandingView-DKjYpCdI.js => ParticipantLandingView-Bv2BqJBZ.js} (93%) rename public/admin/assets/{ReviewPortalView-C1a8ZCCo.js => ReviewPortalView-CpVr3aV7.js} (94%) rename public/admin/assets/{ReviewerApplicationDetailView-DTJYir0T.js => ReviewerApplicationDetailView-CjEcHQys.js} (99%) rename public/admin/assets/{ReviewerLayout-C4hT_Q4M.js => ReviewerLayout-BNfuV9oj.js} (97%) rename public/admin/assets/{ReviewerLoginView-Uh63POck.js => ReviewerLoginView-Yml8K3fA.js} (99%) rename public/admin/assets/{ReviewerManageView-XSTCs-R2.js => ReviewerManageView-vNhTrvlI.js} (97%) rename public/admin/assets/{ReviewerProjectsView-mVI4bMzW.js => ReviewerProjectsView-l9SimN3k.js} (96%) rename public/admin/assets/{adminCompetition-C7hGO_qg.js => adminCompetition-9B28RRMo.js} (86%) rename public/admin/assets/{competitions-DiNyIuQv.js => competitions-wkv7rvkn.js} (94%) rename public/admin/assets/{index-D0dRqZdv.js => index-D02IxadN.js} (99%) diff --git a/app/Http/Controllers/Api/Admin/ApplicationController.php b/app/Http/Controllers/Api/Admin/ApplicationController.php index bfbf2da..7b9cf7f 100644 --- a/app/Http/Controllers/Api/Admin/ApplicationController.php +++ b/app/Http/Controllers/Api/Admin/ApplicationController.php @@ -164,6 +164,7 @@ class ApplicationController extends Controller 'mobile' => $app->user?->mobile, 'name' => $app->user?->name, 'email' => $app->user?->email, + 'company' => $app->user?->company, ], 'contact_email' => $app->contact_email ?? '', 'degree' => $app->degree ?? '', diff --git a/app/Http/Controllers/Api/ApplicationController.php b/app/Http/Controllers/Api/ApplicationController.php index 467751f..0184f40 100644 --- a/app/Http/Controllers/Api/ApplicationController.php +++ b/app/Http/Controllers/Api/ApplicationController.php @@ -24,6 +24,7 @@ class ApplicationController extends Controller 'user.name' => 'name', 'user.mobile' => 'mobile', 'user.email' => 'email', + 'user.company' => 'company', ]; private function ensureParticipantMayEditSignup(Application $app): void diff --git a/app/Http/Controllers/Api/AuthSmsController.php b/app/Http/Controllers/Api/AuthSmsController.php index 0861016..53ae997 100644 --- a/app/Http/Controllers/Api/AuthSmsController.php +++ b/app/Http/Controllers/Api/AuthSmsController.php @@ -129,6 +129,7 @@ class AuthSmsController extends Controller 'mobile' => $user->mobile, 'name' => $user->name, 'email' => $user->email, + 'company' => $user->company, ], ]); } diff --git a/app/Http/Controllers/Api/UserProfileController.php b/app/Http/Controllers/Api/UserProfileController.php index eb2a3ba..b952a12 100644 --- a/app/Http/Controllers/Api/UserProfileController.php +++ b/app/Http/Controllers/Api/UserProfileController.php @@ -18,6 +18,7 @@ class UserProfileController extends Controller 'mobile' => $user->mobile, 'name' => $user->name, 'email' => $user->email, + 'company' => $user->company, 'application_status' => $app?->status, ]); } diff --git a/app/Http/Controllers/ChannelEntryController.php b/app/Http/Controllers/ChannelEntryController.php index 9f9d79c..7e94092 100644 --- a/app/Http/Controllers/ChannelEntryController.php +++ b/app/Http/Controllers/ChannelEntryController.php @@ -40,9 +40,10 @@ class ChannelEntryController extends Controller [$user, $application, $token] = DB::transaction(function () use ($channel, $competition, $parameters): array { $enteredAt = now(); + $company = $this->nullableTrimmed($parameters['company_name']); $user = User::query()->firstOrCreate( ['mobile' => $parameters['mobile']], - ['name' => null, 'email' => null, 'password' => null] + ['name' => null, 'email' => null, 'company' => $company, 'password' => null] ); if ($user->wasRecentlyCreated) { @@ -53,11 +54,15 @@ class ChannelEntryController extends Controller ]); } - $user->fill([ + $userPayload = [ 'last_channel_id' => $channel->id, 'last_channel_code' => $channel->channel_code, 'last_channel_entered_at' => $enteredAt, - ])->save(); + ]; + if ($company !== null) { + $userPayload['company'] = $company; + } + $user->fill($userPayload)->save(); $application = Application::query()->firstOrCreate( [ @@ -309,7 +314,7 @@ class ChannelEntryController extends Controller } /** - * @return array{id: int, mobile: string, name: ?string, email: ?string} + * @return array{id: int, mobile: string, name: ?string, email: ?string, company: ?string} */ private function handoffUser(User $user): array { @@ -318,6 +323,7 @@ class ChannelEntryController extends Controller 'mobile' => $user->mobile, 'name' => $user->name, 'email' => $user->email, + 'company' => $user->company, ]; } @@ -332,4 +338,11 @@ class ChannelEntryController extends Controller { return is_scalar($value) ? trim((string) $value) : ''; } + + private function nullableTrimmed(mixed $value): ?string + { + $trimmed = $this->trimmed($value); + + return $trimmed === '' ? null : $trimmed; + } } diff --git a/app/Models/User.php b/app/Models/User.php index b2062fc..ffb1da6 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -23,6 +23,7 @@ class User extends Authenticatable 'mobile', 'name', 'email', + 'company', 'password', 'first_channel_id', 'first_channel_code', diff --git a/database/migrations/2026_06_06_100000_add_company_to_users_table.php b/database/migrations/2026_06_06_100000_add_company_to_users_table.php new file mode 100644 index 0000000..54e82d6 --- /dev/null +++ b/database/migrations/2026_06_06_100000_add_company_to_users_table.php @@ -0,0 +1,22 @@ +string('company')->nullable()->after('email'); + }); + } + + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('company'); + }); + } +}; diff --git a/database/seeders/CompetitionSignupFormSchemaSeeder.php b/database/seeders/CompetitionSignupFormSchemaSeeder.php index 713b9a7..70f4753 100644 --- a/database/seeders/CompetitionSignupFormSchemaSeeder.php +++ b/database/seeders/CompetitionSignupFormSchemaSeeder.php @@ -112,6 +112,7 @@ class CompetitionSignupFormSchemaSeeder extends Seeder 'label' => '企业名称', 'required' => false, 'placeholder' => '请填写工商注册全称', + 'prefill_from' => 'user.company', 'required_when' => [ 'field' => 'entry_group', 'values' => [(string) config('contest.entry_group_company_required_value', '创业组')], diff --git a/public/admin/assets/AdminLayout-5oObCFY0.js b/public/admin/assets/AdminLayout-B9RUDaPE.js similarity index 91% rename from public/admin/assets/AdminLayout-5oObCFY0.js rename to public/admin/assets/AdminLayout-B9RUDaPE.js index 18f5c39..98672a5 100644 --- a/public/admin/assets/AdminLayout-5oObCFY0.js +++ b/public/admin/assets/AdminLayout-B9RUDaPE.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{a as y,c as b,n as x,o as S,t as C,u as w}from"./index-D0dRqZdv.js";import{t as T}from"./_plugin-vue_export-helper-S3RvzygF.js";import{a as E}from"./competitions-DiNyIuQv.js";import{t as D}from"./adminCompetition-C7hGO_qg.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=S(),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=S(),y=C(),T=x(),O=D(),{menus:k}=w(T),{competitions:I,selectedCompetitionId:L}=w(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{a as y,c as b,n as x,o as S,t as C,u as w}from"./index-D02IxadN.js";import{t as T}from"./_plugin-vue_export-helper-S3RvzygF.js";import{a as E}from"./competitions-wkv7rvkn.js";import{t as D}from"./adminCompetition-9B28RRMo.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=S(),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=S(),y=C(),T=x(),O=D(),{menus:k}=w(T),{competitions:I,selectedCompetitionId:L}=w(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-DR_q29uQ.js b/public/admin/assets/AdminLoginView-CqtYXHTl.js similarity index 95% rename from public/admin/assets/AdminLoginView-DR_q29uQ.js rename to public/admin/assets/AdminLoginView-CqtYXHTl.js index 809fd3b..d08f853 100644 --- a/public/admin/assets/AdminLoginView-DR_q29uQ.js +++ b/public/admin/assets/AdminLoginView-CqtYXHTl.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{a as d,c as f,i as p,o as m,r as h,t as g}from"./index-D0dRqZdv.js";import{t as _}from"./_plugin-vue_export-helper-S3RvzygF.js";async function v(e){try{let{data:t}=await h.post(`/auth/login`,e);return y(t)}catch(e){if(p.isAxiosError(e)){let t=e.response?.data,n=t&&typeof t==`object`?t:{},r=(typeof n.message==`string`?n.message:``)||(n.errors&&typeof n.errors==`object`?Object.values(n.errors).flat().join(` +import{D as e,O as t,Z as n,_t as r,in as i,k as a,m as o,q as s,st as c,w as l,x as u}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{a as d,c as f,i as p,o as m,r as h,t as g}from"./index-D02IxadN.js";import{t as _}from"./_plugin-vue_export-helper-S3RvzygF.js";async function v(e){try{let{data:t}=await h.post(`/auth/login`,e);return y(t)}catch(e){if(p.isAxiosError(e)){let t=e.response?.data,n=t&&typeof t==`object`?t:{},r=(typeof n.message==`string`?n.message:``)||(n.errors&&typeof n.errors==`object`?Object.values(n.errors).flat().join(` `):``)||e.message;throw Error(r||`登录失败`)}throw e}}function y(e){if(e&&typeof e==`object`){let t=e,n=t.data,r=(typeof t.token==`string`?t.token:void 0)??(typeof t.access_token==`string`?t.access_token:void 0)??(n&&typeof n.token==`string`?n.token:void 0);if(typeof r==`string`)return{token:r,user:t.user??t.admin??n?.user}}throw Error(`登录响应无效`)}var b={class:`login-wrap`},x=_(a({__name:`AdminLoginView`,setup(a){let p=d(),h=m(),_=g(),y=r(``),x=r(``),S=r(!1);function C(e){return e instanceof Error&&e.message.trim()?e.message:typeof e==`string`&&e.trim()?e:`登录失败`}function w(){let e=typeof p.query.redirect==`string`?p.query.redirect:``;return e&&e.startsWith(`/admin`)&&!e.includes(`/login`)?e:`/admin`}async function T(){if(!y.value.trim()||!x.value.trim()){f.warning(`请输入账号和密码`);return}S.value=!0;try{let e=await v({username:y.value.trim(),password:x.value.trim()});_.setToken(e.token),await h.replace(w()),f.success(`登录成功`)}catch(e){f.error(C(e))}finally{S.value=!1}}return(r,a)=>{let d=n(`el-input`),f=n(`el-form-item`),p=n(`el-button`),m=n(`el-form`),h=n(`el-card`);return s(),l(`div`,b,[t(h,{class:`login-card`,shadow:`hover`},{header:c(()=>[...a[2]||=[u(`div`,{class:`card-title`},`管理员登录`,-1)]]),default:c(()=>[t(m,{"label-position":`top`,onSubmit:o(T,[`prevent`])},{default:c(()=>[t(f,{label:`账号`},{default:c(()=>[t(d,{modelValue:y.value,"onUpdate:modelValue":a[0]||=e=>y.value=e,modelModifiers:{trim:!0},autocomplete:`username`,clearable:``},null,8,[`modelValue`])]),_:1}),t(f,{label:`密码`},{default:c(()=>[t(d,{modelValue:x.value,"onUpdate:modelValue":a[1]||=e=>x.value=e,type:`password`,autocomplete:`current-password`,"show-password":``},null,8,[`modelValue`])]),_:1}),t(p,{type:`danger`,class:`w-100`,"native-type":`submit`,loading:S.value},{default:c(()=>[e(i(S.value?`登录中…`:`登录`),1)]),_:1},8,[`loading`])]),_:1})]),_:1})])}}}),[[`__scopeId`,`data-v-205d2561`]]);export{x as default}; \ No newline at end of file diff --git a/public/admin/assets/ApplyView-DURs0fvo.js b/public/admin/assets/ApplyView-DURs0fvo.js new file mode 100644 index 0000000..407ba8d --- /dev/null +++ b/public/admin/assets/ApplyView-DURs0fvo.js @@ -0,0 +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 p,g as m,ht as ee,in as h,k as g,m as te,q as _,s as ne,u as re,w as v,x as y}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{f as ie,l as ae,m as oe}from"./api-d2P9R_jw.js";import{a as se,d as ce,f as le,o as ue}from"./index-D02IxadN.js";import{t as de}from"./_plugin-vue_export-helper-S3RvzygF.js";import{a as fe,i as pe,r as me,t as he}from"./competitionBranding-BQASm1w0.js";var ge={北京市:[`北京市`],天津市:[`天津市`],上海市:[`上海市`],重庆市:[`重庆市`],河北省:[`石家庄市`,`唐山市`,`秦皇岛市`,`邯郸市`,`邢台市`,`保定市`,`张家口市`,`承德市`,`沧州市`,`廊坊市`,`衡水市`],山西省:[`太原市`,`大同市`,`阳泉市`,`长治市`,`晋城市`,`朔州市`,`晋中市`,`运城市`,`忻州市`,`临汾市`,`吕梁市`],内蒙古自治区:[`呼和浩特市`,`包头市`,`乌海市`,`赤峰市`,`通辽市`,`鄂尔多斯市`,`呼伦贝尔市`,`巴彦淖尔市`,`乌兰察布市`,`兴安盟`,`锡林郭勒盟`,`阿拉善盟`],辽宁省:[`沈阳市`,`大连市`,`鞍山市`,`抚顺市`,`本溪市`,`丹东市`,`锦州市`,`营口市`,`阜新市`,`辽阳市`,`盘锦市`,`铁岭市`,`朝阳市`,`葫芦岛市`],吉林省:[`长春市`,`吉林市`,`四平市`,`辽源市`,`通化市`,`白山市`,`松原市`,`白城市`,`延边朝鲜族自治州`],黑龙江省:[`哈尔滨市`,`齐齐哈尔市`,`鸡西市`,`鹤岗市`,`双鸭山市`,`大庆市`,`伊春市`,`佳木斯市`,`七台河市`,`牡丹江市`,`黑河市`,`绥化市`,`大兴安岭地区`],江苏省:[`南京市`,`无锡市`,`徐州市`,`常州市`,`苏州市`,`南通市`,`连云港市`,`淮安市`,`盐城市`,`扬州市`,`镇江市`,`泰州市`,`宿迁市`],浙江省:[`杭州市`,`宁波市`,`温州市`,`嘉兴市`,`湖州市`,`绍兴市`,`金华市`,`衢州市`,`舟山市`,`台州市`,`丽水市`],安徽省:[`合肥市`,`芜湖市`,`蚌埠市`,`淮南市`,`马鞍山市`,`淮北市`,`铜陵市`,`安庆市`,`黄山市`,`滁州市`,`阜阳市`,`宿州市`,`六安市`,`亳州市`,`池州市`,`宣城市`],福建省:[`福州市`,`厦门市`,`莆田市`,`三明市`,`泉州市`,`漳州市`,`南平市`,`龙岩市`,`宁德市`],江西省:[`南昌市`,`景德镇市`,`萍乡市`,`九江市`,`新余市`,`鹰潭市`,`赣州市`,`吉安市`,`宜春市`,`抚州市`,`上饶市`],山东省:[`济南市`,`青岛市`,`淄博市`,`枣庄市`,`东营市`,`烟台市`,`潍坊市`,`济宁市`,`泰安市`,`威海市`,`日照市`,`临沂市`,`德州市`,`聊城市`,`滨州市`,`菏泽市`],河南省:[`郑州市`,`开封市`,`洛阳市`,`平顶山市`,`安阳市`,`鹤壁市`,`新乡市`,`焦作市`,`濮阳市`,`许昌市`,`漯河市`,`三门峡市`,`南阳市`,`商丘市`,`信阳市`,`周口市`,`驻马店市`,`济源市`],湖北省:[`武汉市`,`黄石市`,`十堰市`,`宜昌市`,`襄阳市`,`鄂州市`,`荆门市`,`孝感市`,`荆州市`,`黄冈市`,`咸宁市`,`随州市`,`恩施土家族苗族自治州`,`仙桃市`,`潜江市`,`天门市`,`神农架林区`],湖南省:[`长沙市`,`株洲市`,`湘潭市`,`衡阳市`,`邵阳市`,`岳阳市`,`常德市`,`张家界市`,`益阳市`,`郴州市`,`永州市`,`怀化市`,`娄底市`,`湘西土家族苗族自治州`],广东省:[`广州市`,`韶关市`,`深圳市`,`珠海市`,`汕头市`,`佛山市`,`江门市`,`湛江市`,`茂名市`,`肇庆市`,`惠州市`,`梅州市`,`汕尾市`,`河源市`,`阳江市`,`清远市`,`东莞市`,`中山市`,`潮州市`,`揭阳市`,`云浮市`],广西壮族自治区:[`南宁市`,`柳州市`,`桂林市`,`梧州市`,`北海市`,`防城港市`,`钦州市`,`贵港市`,`玉林市`,`百色市`,`贺州市`,`河池市`,`来宾市`,`崇左市`],海南省:[`海口市`,`三亚市`,`三沙市`,`儋州市`,`五指山市`,`琼海市`,`文昌市`,`万宁市`,`东方市`,`定安县`,`屯昌县`,`澄迈县`,`临高县`,`白沙黎族自治县`,`昌江黎族自治县`,`乐东黎族自治县`,`陵水黎族自治县`,`保亭黎族苗族自治县`,`琼中黎族苗族自治县`],四川省:[`成都市`,`自贡市`,`攀枝花市`,`泸州市`,`德阳市`,`绵阳市`,`广元市`,`遂宁市`,`内江市`,`乐山市`,`南充市`,`眉山市`,`宜宾市`,`广安市`,`达州市`,`雅安市`,`巴中市`,`资阳市`,`阿坝藏族羌族自治州`,`甘孜藏族自治州`,`凉山彝族自治州`],贵州省:[`贵阳市`,`六盘水市`,`遵义市`,`安顺市`,`毕节市`,`铜仁市`,`黔西南布依族苗族自治州`,`黔东南苗族侗族自治州`,`黔南布依族苗族自治州`],云南省:[`昆明市`,`曲靖市`,`玉溪市`,`保山市`,`昭通市`,`丽江市`,`普洱市`,`临沧市`,`楚雄彝族自治州`,`红河哈尼族彝族自治州`,`文山壮族苗族自治州`,`西双版纳傣族自治州`,`大理白族自治州`,`德宏傣族景颇族自治州`,`怒江傈僳族自治州`,`迪庆藏族自治州`],西藏自治区:[`拉萨市`,`日喀则市`,`昌都市`,`林芝市`,`山南市`,`那曲市`,`阿里地区`],陕西省:[`西安市`,`铜川市`,`宝鸡市`,`咸阳市`,`渭南市`,`延安市`,`汉中市`,`榆林市`,`安康市`,`商洛市`],甘肃省:[`兰州市`,`嘉峪关市`,`金昌市`,`白银市`,`天水市`,`武威市`,`张掖市`,`平凉市`,`酒泉市`,`庆阳市`,`定西市`,`陇南市`,`临夏回族自治州`,`甘南藏族自治州`],青海省:[`西宁市`,`海东市`,`海北藏族自治州`,`黄南藏族自治州`,`海南藏族自治州`,`果洛藏族自治州`,`玉树藏族自治州`,`海西蒙古族藏族自治州`],宁夏回族自治区:[`银川市`,`石嘴山市`,`吴忠市`,`固原市`,`中卫市`],新疆维吾尔自治区:[`乌鲁木齐市`,`克拉玛依市`,`吐鲁番市`,`哈密市`,`昌吉回族自治州`,`博尔塔拉蒙古自治州`,`巴音郭楞蒙古自治州`,`阿克苏地区`,`克孜勒苏柯尔克孜自治州`,`喀什地区`,`和田地区`,`伊犁哈萨克自治州`,`塔城地区`,`阿勒泰地区`,`石河子市`,`阿拉尔市`,`图木舒克市`,`五家渠市`,`北屯市`,`铁门关市`,`双河市`,`可克达拉市`,`昆玉市`,`胡杨河市`,`新星市`],香港特别行政区:[`香港`],澳门特别行政区:[`澳门`],台湾省:[`台北市`,`新北市`,`桃园市`,`台中市`,`台南市`,`高雄市`,`新竹市`,`嘉义市`]},_e=`北京市.天津市.上海市.重庆市.河北省.山西省.内蒙古自治区.辽宁省.吉林省.黑龙江省.江苏省.浙江省.安徽省.福建省.江西省.山东省.河南省.湖北省.湖南省.广东省.广西壮族自治区.海南省.四川省.贵州省.云南省.西藏自治区.陕西省.甘肃省.青海省.宁夏回族自治区.新疆维吾尔自治区.香港特别行政区.澳门特别行政区.台湾省`.split(`.`),ve=[`pdf`,`ppt`,`pptx`,`doc`,`docx`,`wps`,`rar`,`zip`],b=[{key:`player_name`,type:`text`,label:`参赛人姓名`,required:!0,help:``},{key:`school`,type:`text`,label:`毕业院校`,required:!0},{key:`degree`,type:`select`,label:`最高学历`,required:!0,options:[`大专`,`本科`,`硕士`,`博士`,`其他`].map(e=>({label:e,value:e}))},{key:`contact_email`,type:`email`,label:`注册邮箱`,required:!0},{key:`contact_mobile`,type:`tel`,label:`联系电话`,required:!0,placeholder:`11 位中国大陆手机号`},{key:`entry_group`,type:`select`,label:`参赛组别`,required:!0,options:[{label:`创新组`,value:`创新组`},{label:`创业组`,value:`创业组`}],help:`仅限创业组填报企业名称(创新组不展示该字段)`},{key:`company_name`,type:`text`,label:`企业名称`,required:!1,required_when:{field:`entry_group`,values:[`创业组`]},placeholder:`请填写工商注册全称`,prefill_from:`user.company`},{key:`project_name`,type:`text`,label:`项目名称`,required:!0},{key:`track`,type:`select`,label:`主题赛道`,required:!0,help:`请从本场赛事公布的赛道中选择`,options:[]},{key:`location_country`,type:`select`,label:`项目所在地`,required:!0,options:[{label:`中国`,value:`中国`},{label:`海外`,value:`海外`}]},{key:`location_province`,type:`select`,label:`省份`,required:!1,options:[]},{key:`location_city`,type:`text`,label:`城市`,required:!1},{key:`oversea_country`,type:`text`,label:`所在国(海外)`,required:!1,placeholder:`如:新加坡、日本、美国`},{key:`intro`,type:`textarea`,label:`项目简介`,required:!1,placeholder:`约200字左右`},{key:`commitment_accepted`,type:`checkbox`,label:`本人已阅读并同意《参赛承诺书》的全部内容`,required:!0,help:`提交报名即表示承诺所填信息真实有效,并遵守赛事规则。`},{key:`plan`,type:`file`,label:`上传商业计划书`,required:!0,help:`可上传多个文件,单文件 20M 以内`},{key:`supporting`,type:`file`,label:`其他佐证材料`,required:!1,help:`可选;格式同计划书`}];function x(e){return Array.isArray(e)?e.map(e=>typeof e==`object`&&e&&`label`in e&&`value`in e?{label:String(e.label),value:String(e.value)}:typeof e==`string`?{label:e,value:e}:null).filter(e=>e!=null&&String(e.label).trim()!==``&&String(e.value).trim()!==``):[]}function S(e){if(e!=null){if(Array.isArray(e)){let t=e.map(e=>String(e).trim().toLowerCase().replace(/^\./,``)).filter(e=>e!==``);return t.length?[...new Set(t)]:void 0}if(typeof e==`string`){let t=e.split(/[,;\s|]+/).map(e=>e.trim().toLowerCase().replace(/^\./,``)).filter(e=>e!==``);return t.length?[...new Set(t)]:void 0}}}function C(e){if(e==null||e===``)return;let t=typeof e==`number`?e:parseInt(String(e),10);if(!Number.isFinite(t))return;let n=Math.floor(t);return n>=1?n:void 0}function ye(e){if(!Array.isArray(e)||e.length===0)return b.map(e=>({...e,options:e.options?[...e.options]:void 0}));let t=[];for(let n of e){if(typeof n!=`object`||!n)continue;let e=n,r=String(e.key??``).trim();if(!r)continue;let i=String(e.type??`text`),a=String(e.label??r),o=!!e.required,s=e.placeholder,c=s!=null&&String(s).trim()!==``?String(s).trim():void 0,l=e.help,u=l!=null&&String(l).trim()!==``?String(l).trim():void 0,d=e.prefill_from,f=d!=null&&String(d).trim()!==``?String(d).trim():void 0,p=e.title_supplement,m=p!=null&&String(p).trim()!==``?String(p).trim():void 0,ee,h=e.required_when;if(typeof h==`object`&&h&&!Array.isArray(h)){let e=h,t=String(e.field??``).trim(),n=e.values,r=Array.isArray(n)?n.map(e=>String(e).trim()).filter(e=>e!==``):[];t&&r.length&&(ee={field:t,values:r})}let g;if(i===`select`&&Array.isArray(e.options)&&(g=x(e.options)),r===`track`&&(g=[]),i===`select`&&r!==`track`&&(!g||g.length===0))if(r===`location_province`)g=_e.map(e=>({label:e,value:e}));else{let e=b.find(e=>e.key===r);e?.options?.length&&(g=e.options.map(e=>({...e})))}let te,_;i===`file`&&(te=S(e.file_extensions),_=C(e.file_max_count)),t.push({key:r,type:i,label:a,title_supplement:m,required:o,placeholder:c,help:u,prefill_from:f,options:g,required_when:ee,file_extensions:te,file_max_count:_})}return t.length?t:b.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={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},Ne={class:`track-custom-select w-100`},Pe=[`required`,`disabled`],Fe=[`value`],Ie={class:`dropdown w-100`},Le=[`disabled`],Re={class:`track-toggle-label text-truncate`},ze={key:0,class:`track-custom-note`},Be={class:`dropdown-menu w-100 border shadow-sm rounded-2 py-0 my-1 track-custom-menu`},Ve=[`onClick`],He={class:`track-pick-inline`},Ue={class:`text-body`},We={key:0,class:`track-custom-note`},Ge={key:0,class:`text-secondary prototype-subtitle d-block`},Ke={key:1,class:`col-12`},qe={class:`form-label`},Je={key:0,class:`text-danger`},Ye={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},Xe=[`accept`,`disabled`],Ze={key:0,class:`text-secondary prototype-subtitle d-block mt-1`},Qe={key:1,class:`supporting-file-list mt-2`,"aria-live":`polite`},$e={class:`supporting-file-meta`},et=[`title`],tt={class:`supporting-file-size`},nt={class:`supporting-file-actions`},rt=[`href`,`download`],it=[`disabled`,`onClick`],at={class:`text-secondary prototype-subtitle d-block`},ot={key:2,class:`invalid-feedback d-block`},st={key:2,class:`col-12`},ct={class:`form-label`},lt={key:0,class:`text-danger`},ut={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},dt=[`accept`,`disabled`],ft={key:0,class:`text-secondary prototype-subtitle d-block mt-1`},pt={key:1,class:`supporting-file-list mt-2`,"aria-live":`polite`},mt={class:`supporting-file-meta`},ht=[`title`],gt={class:`supporting-file-size`},_t={class:`supporting-file-actions`},vt=[`href`,`download`],yt=[`disabled`,`onClick`],bt={class:`text-secondary prototype-subtitle d-block`},xt={key:2,class:`invalid-feedback d-block`},St={class:`form-label`},Ct={key:0,class:`text-danger`},wt={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},Tt=[`onUpdate:modelValue`,`required`,`disabled`],Et=[`value`],Dt={class:`invalid-feedback`},Ot={key:0,class:`text-secondary prototype-subtitle d-block`},kt={class:`form-label`},At={key:0,class:`text-danger`},jt={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},Mt=[`required`,`disabled`],Nt=[`value`],Pt={class:`invalid-feedback`},Ft={key:0,class:`text-secondary prototype-subtitle d-block`},It={class:`form-label`},Lt={key:0,class:`text-danger`},Rt={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},zt={class:`d-flex flex-wrap align-items-center gap-2 mb-1`},Bt=[`disabled`],Vt={key:0,class:`badge rounded-pill px-3 py-2 promise-signed-badge`},Ht={key:0,class:`text-secondary prototype-subtitle d-block mt-1`},Ut={class:`form-check`},Wt=[`id`,`onUpdate:modelValue`,`required`,`disabled`],Gt=[`for`],Kt={key:0,class:`text-danger ms-1`},qt={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},Jt={key:0,class:`text-secondary prototype-subtitle d-block mt-1`},Yt={class:`form-label`},Xt={key:0,class:`text-danger`},Zt={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},Qt=[`onUpdate:modelValue`,`required`,`disabled`],$t={key:0,class:`d-flex flex-wrap align-items-baseline gap-2 mt-1 w-100`},en={key:0,class:`apply-textarea-placeholder-hint mb-0`},tn={key:1,class:`text-secondary prototype-subtitle intro-char-count mb-0 ms-auto`},nn={class:`form-label`},rn={key:0,class:`text-danger`},an={key:1,class:`signup-field-title-supplement ms-1 fw-normal text-secondary`},on=[`onUpdate:modelValue`,`type`,`required`,`disabled`,`placeholder`,`pattern`,`autocomplete`],sn={class:`invalid-feedback`},cn={key:0,class:`text-secondary prototype-subtitle d-block`},ln={class:`col-12 apply-form-actions mt-3 pt-3 border-top d-flex gap-2 flex-wrap`},un=[`disabled`],dn=[`disabled`],fn={class:`modal-dialog modal-dialog-centered promise-sign-modal`},pn={class:`modal-content promise-sign-sheet`},mn={class:`modal-body pt-2`},hn={class:`promise-doc-paper`},gn={class:`promise-doc-heading text-center`},_n={class:`promise-doc-scroll`},vn=[`innerHTML`],yn={class:`promise-doc-signblock`},bn={class:`promise-doc-signrow`},xn={class:`promise-sig-wrap`},Sn={class:`promise-sig-box`},Cn={class:`promise-doc-daterow`},wn={class:`promise-doc-dateline`},Tn={class:`modal-dialog modal-dialog-centered notice-modal-dialog`},En={class:`modal-body notice-modal-body`},Dn={class:`notice-icon`,"aria-hidden":`true`},On={key:0,viewBox:`0 0 24 24`,width:`36`,height:`36`,fill:`none`,"aria-hidden":`true`},kn={key:1,viewBox:`0 0 24 24`,width:`36`,height:`36`,fill:`none`,"aria-hidden":`true`},An={class:`notice-title`},jn={key:0,class:`notice-text text-break`,style:{"white-space":`pre-wrap`}},Mn=20*1024*1024,Nn=`^1[3-9]\\d{9}$`,Pn=`

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

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

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

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

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

`,Fn=2097152,w=de(g({__name:`ApplyFormView`,setup(i){let g=ce,de=ue(),b=se(),x=u(()=>String(b.params.slug??``).trim());function S(e){let t=e.value;return t==null?null:Array.isArray(t)?t[0]??null:t}function C(e){let t=(e??``).trim();return!t||/applications\.|config\/contest|与提交校验|\^1\[3-9\]|kind=\s*plan|kind=\s*supporting|\\d\{9\}/i.test(t)?``:t}function w(e){return String(e.title_supplement??``).trim()}function T(){return ie()}function E(){let e=x.value;return e?`?competition_slug=${encodeURIComponent(e)}`:``}function In(e){let t={Authorization:`Bearer ${localStorage.getItem(`cxxfds_token`)||``}`,Accept:`application/json`};return e&&(t[`Content-Type`]=`application/json`),t}function D(){localStorage.removeItem(ae);let e=x.value;e?de.push({name:`participant-login`,params:{slug:e},query:{redirect:b.fullPath}}):de.push(`/c`)}let O=c(ye([]));function Ln(e){let t=ve.map(e=>e.toLowerCase()),n=new Set(t),r=e?.file_extensions;if(!Array.isArray(r)||r.length===0)return[...t];let i=[...new Set(r.map(e=>String(e).trim().toLowerCase().replace(/^\./,``)).filter(Boolean).filter(e=>n.has(e)))];return i.length>0?i:[...t]}function Rn(e){let t=e?.file_max_count;if(typeof t!=`number`||!Number.isFinite(t))return null;let n=Math.floor(t);return n>=1?n:null}function zn(e){return O.value.find(t=>t.type===`file`&&t.key===e)}function Bn(e){return Ln(e).map(e=>`.`+e).join(`,`)}let k=c([]),Vn=c(!1),Hn=c(``),Un=c(``),Wn=u(()=>Un.value.trim()||Pn),A=c(me()),j=c(``),M=ee({});function Gn(e){for(let t of e)t.type!==`file`&&(t.key in M||(M[t.key]=``));e.some(e=>e.key===`commitment_accepted`)&&!(`promise_signature`in M)&&(M.promise_signature=``)}let Kn=u(()=>`jscc_signup_form_draft_v2_${x.value||`x`}`),qn=c(`draft`),Jn=c(!0),N=c(!1),Yn=c(null),Xn=c(null),Zn=u(()=>{let e=M.track,t=k.value.find(t=>t.track_code===e);return t?t.title:e||`请选择主题赛道`}),Qn=u(()=>M.track?`text-body`:`text-secondary`),$n=u(()=>{let e=M.track;return(k.value.find(t=>t.track_code===e)?.description??``).trim()});function er(e){return(e??``).trim()}function tr(e){M.track=e,N.value=!1;let t=S(Xn);t&&g.getInstance(t)?.hide()}let P=u(()=>M.location_country===`中国`),nr=u(()=>M.location_country===`海外`),rr=u(()=>_e.map(e=>({label:e,value:e}))),ir=u(()=>{let e=M.location_province;return e?(ge[e]||[]).map(e=>({label:e,value:e})):[]});function F(){nr.value?(M.location_province=``,M.location_city=``):P.value||(M.location_province=``,M.location_city=``,M.oversea_country=``)}l(()=>M.location_country,()=>{F()}),l(()=>M.location_province,(e,t)=>{P.value&&e!==t&&(t==null||String(t).trim()===``||(M.location_city=``))}),l(()=>M.entry_group,e=>{e===`创新组`&&(M.company_name=``)});let I=c([]),L=c([]),R=c(``),z=c(``),ar=c(``),or=c(``),B=c(!1),V=u(()=>!Jn.value),sr=c(null),cr=c(null),lr=c(null),ur=u(()=>(M.intro||``).length),dr=u(()=>fe(A.value,Hn.value)),fr=u(()=>{let e=A.value.apply?.headerSubtitle;return pe(e)?String(e).trim():``});function pr(e){let t=String(M[e.key]??``).trim();return e.type===`email`||e.key===`contact_email`?t?`请输入正确的邮箱格式`:`请填写${e.label}`:(e.type===`tel`||e.key===`contact_mobile`)&&t?`请输入正确的11位中国大陆手机号`:`请填写${e.label}`}function H(e){return e.type===`textarea`||e.type===`file`||e.type===`checkbox`?`col-12`:`col-md-4`}function mr(e){return e.type===`textarea`?String(e.placeholder??``).trim():``}function hr(e){return e.type===`file`?!0:e.key===`company_name`?M.entry_group!==`创新组`:e.key===`location_province`||e.key===`location_city`?P.value:e.key===`oversea_country`?nr.value:!0}function U(e){if(e.key===`location_province`||e.key===`location_city`)return P.value;if(e.key===`oversea_country`)return nr.value;let t=e.required_when;if(t?.field&&t.values?.length){let e=String(M[t.field]??``).trim();if(t.values.includes(e))return!0}return e.required}let gr=u(()=>O.value.filter(e=>hr(e)));function _r(e){return e.key===`track`?k.value.map(e=>({label:e.title,value:e.track_code})):e.key===`location_province`?rr.value:e.key===`location_city`&&P.value?ir.value:e.options??[]}function vr(e){return e.key===`location_city`&&P.value}function yr(e){return e>=1024*1024?`${(e/1024/1024).toFixed(1).replace(/\.0$/,``)}M`:e>=1024?`${Math.ceil(e/1024)}K`:`${e}B`}function W(e){return e.file?e.file.name:e.original_name||``}function br(e){return W(e).trim()||void 0}function xr(e){let t=e.message||``,n=e.errors;return n&&Object.keys(n).length?`${t}\n${JSON.stringify(n)}`:t||`操作失败`}let Sr=c(null),Cr=c(`提示`),wr=c(``),Tr=c(!1);function G(e,t=`提示`,n=`warning`){return Cr.value=t,wr.value=e,Tr.value=n===`success`,new Promise(e=>{r(()=>{let t=Sr.value;if(!t){e();return}t.addEventListener(`hidden.bs.modal`,()=>e(),{once:!0}),le.getOrCreateInstance(t).show()})})}function Er(e){return e===`navigateTo`||e===`reLaunch`||e===`switchTab`?e:`redirectTo`}function Dr(e){if(!e)return null;if(e.type===`mini_program`){let t=typeof e.path==`string`?e.path.trim():``;return t?{type:`mini_program`,path:t,method:Er(e.method)}:null}let t=typeof e.redirect_url==`string`?e.redirect_url.trim():``;return t?{type:`web`,redirectUrl:t}:null}let Or=null;function kr(){if(window.wx?.miniProgram)return Promise.resolve(window.wx);if(Or)return Or;let e=new Promise((e,t)=>{let n=document.querySelector(`script[data-cxcyds-wx-jssdk="true"]`);if(n){n.addEventListener(`load`,()=>window.wx?e(window.wx):t(Error(`wx missing`)),{once:!0}),n.addEventListener(`error`,()=>t(Error(`wx jssdk load failed`)),{once:!0});return}let r=document.createElement(`script`);r.src=`https://res.wx.qq.com/open/js/jweixin-1.6.0.js`,r.async=!0,r.dataset.cxcydsWxJssdk=`true`,r.onload=()=>{window.wx?.miniProgram?e(window.wx):t(Error(`wx miniProgram bridge missing`))},r.onerror=()=>t(Error(`wx jssdk load failed`)),document.head.appendChild(r)}).finally(()=>{Or=null});return Or=e,e}async function Ar(e,t){try{let n=(await kr()).miniProgram?.[t];return typeof n==`function`?(n({url:e}),!0):!1}catch{return!1}}let jr=c(null),K=c(null),Mr=c(``),Nr=c(!0),q=null,J=520,Y=140,Pr=!1,X=!1,Fr=null,Z=null;function Ir(){Fr?.abort(),Fr=null}let Lr=u(()=>M.commitment_accepted===`1`&&String(M.promise_signature??``).trim()!==``),Rr=u(()=>{let e=Hn.value.trim();return e?`${e} 赛事承诺书`:`赛事承诺书`});function zr(e){return`${e.getFullYear()}年${e.getMonth()+1}月${e.getDate()}日`}function Br(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 Vr(){let e=K.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,Nr.value=!0)}function Hr(){let e=String(M.promise_signature??``).trim();if(!e||!q)return;let t=new Image;t.onload=()=>{q&&(q.drawImage(t,0,0,J,Y),X=!0,Nr.value=!1)},t.src=e}function Ur(){let e=K.value;if(!e||!q)return;Ir(),Fr=new AbortController;let{signal:t}=Fr,n=t=>{if(`touches`in t&&t.preventDefault(),!q)return;Pr=!0;let n=Br(t,e);q.beginPath(),q.moveTo(n.x,n.y)},r=t=>{if(!Pr||!q)return;`touches`in t&&t.preventDefault();let n=Br(t,e);q.lineTo(n.x,n.y),q.stroke(),X=!0,Nr.value=!1},i=()=>{Pr=!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 Wr(){Mr.value=zr(new Date);let e=t=>{if(!K.value){t<40&&requestAnimationFrame(()=>e(t+1));return}Vr(),Ur(),String(M.promise_signature??``).trim()&&M.commitment_accepted===`1`&&Hr()};r(()=>{requestAnimationFrame(()=>e(0))})}function Gr(e){Z?.();let t=()=>{Wr()},n=()=>{Ir()};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(jr,e=>{Z?.(),e&&Gr(e)},{flush:`post`});function Kr(){if(V.value)return;let e=jr.value;e&&le.getOrCreateInstance(e).show()}function qr(){Vr(),Ur()}function Jr(){let e=K.value;if(!X||!e){G(`请先在签名区域内手写签名后再确认。`,`请确认`,`warning`);return}let t=e.toDataURL(`image/png`);if(t.length>Fn){G(`签名数据过大,请清除后重新签名或联系管理员。`,`提示`,`warning`);return}M.promise_signature=t,M.commitment_accepted=`1`;let n=jr.value;n&&le.getInstance(n)?.hide()}function Yr(){let e={};for(let t of O.value)if(t.type!==`file`){if(t.type===`checkbox`){e[t.key]=M[t.key]===`1`;continue}e[t.key]=M[t.key]??``}return O.value.some(e=>e.key===`commitment_accepted`)&&(e.promise_signature=M.promise_signature??``),e}function Xr(e,t,n,r){let i=Ln(r),a=Rn(r),o=e.filter(e=>e.file),s=e.filter(e=>e.fromServer&&!e.file);if(!o.length&&!s.length)return{ok:n,feedback:n?``:t};if(a!==null&&e.length>a)return{ok:!1,feedback:`最多可上传 ${a} 个文件,请删除多余文件后重试`};let c=o.map(e=>e.file).find(e=>{let t=(e.name.split(`.`).pop()||``).toLowerCase();return!i.includes(t)});if(c)return{ok:!1,feedback:`“${c.name}”格式不支持,请上传 ${i.join(`、`)} 格式的文件`};let l=o.map(e=>e.file).find(e=>e.size>Mn);return l?{ok:!1,feedback:`“${l.name}”大小不能超过20M`}:{ok:!0,feedback:``}}function Zr(){return O.value.some(e=>e.key===`plan`&&e.type===`file`)}function Qr(){return O.value.some(e=>e.key===`supporting`&&e.type===`file`)}function Q(){if(!Zr())return S(cr)?.setCustomValidity(``),!0;let e=zn(`plan`),t=Xr(I.value,`请上传商业计划书`,!1,e);return ar.value=t.feedback,S(cr)?.setCustomValidity(t.ok?``:`missing`),t.ok}function $(){if(!Qr())return S(lr)?.setCustomValidity(``),!0;let e=zn(`supporting`),t=Xr(L.value,`文件格式或大小不符合要求`,!0,e);return or.value=t.feedback,S(lr)?.setCustomValidity(t.ok?``:`bad`),t.ok}function $r(){B.value=!0,Q(),$();let e=O.value.find(e=>e.key===`track`);if(e&&hr(e)){N.value=!M.track;let e=S(Yn);e&&e.setCustomValidity(M.track?``:`请选择主题赛道`)}else N.value=!1,S(Yn)?.setCustomValidity(``);return!(sr.value?.checkValidity()??!1)||e&&U(e)&&!M.track||!Q()||!$()?!1:O.value.find(e=>e.key===`commitment_accepted`)&&(M.commitment_accepted!==`1`||!String(M.promise_signature??``).trim())?(G(`请先阅读并完成参赛承诺书的手写签署。`,`提示`,`warning`),!1):!0}async function ei(e){let t=localStorage.getItem(ae);if(!t)return;let n=(e===`plan`?I.value:L.value).filter(e=>e.file&&!e.fromServer);if(n.length!==0){for(let r of n){if(!r.file)continue;let n=new FormData;n.append(`kind`,e===`plan`?`plan`:`supporting`),n.append(`file`,r.file);let i=await fetch(`${T()}/api/applications/current/files${E()}`,{method:`POST`,headers:{Authorization:`Bearer ${t}`,Accept:`application/json`},body:n}),a=await i.json().catch(()=>({}));if(i.status===401){D();return}if(!i.ok){G(xr(a),`提示`,`warning`);return}let o=r.previewUrl;r.id=a.id,r.fromServer=!0,r.original_name=a.original_name,r.size=a.size;let s=oe(String(a.url??``));r.url=s,r.previewUrl=s,o&&String(o).startsWith(`blob:`)&&URL.revokeObjectURL(o),delete r.file}G(`文件已上传。`,`上传成功`,`success`),e===`plan`?Q():$()}}async function ti(e,t){let n=t===`plan`?[...I.value]:[...L.value],r=n.find(t=>String(t.id)===String(e));if(r){if(r.fromServer&&typeof r.id==`number`){if(!localStorage.getItem(`cxxfds_token`)){D();return}let e=await fetch(`${T()}/api/applications/current/files/${r.id}${E()}`,{method:`DELETE`,headers:In(!1)});if(e.status===401){D();return}if(!e.ok){G(`删除失败`,`提示`,`warning`);return}}r.previewUrl&&String(r.previewUrl).startsWith(`blob:`)&&URL.revokeObjectURL(r.previewUrl),n=n.filter(t=>String(t.id)!==String(e)),t===`plan`?I.value=n:L.value=n,B.value=!0,t===`plan`?Q():$()}}function ni(e,t){if(!e?.length)return;let n=Rn(zn(t)),r=t===`plan`?[...I.value]:[...L.value],i=Array.from(e),a=n===null?i.length:Math.max(0,n-r.length);if(i.length>a&&n!==null&&G(`该栏最多上传 ${n} 个文件,已忽略多余 ${i.length-a} 个选择。`,`提示`,`warning`),i=i.slice(0,a),i.forEach(e=>{r.push({id:`tmp-${Date.now()}-${Math.random().toString(16).slice(2)}`,file:e,previewUrl:URL.createObjectURL(e),fromServer:!1})}),t===`plan`){I.value=[...r],R.value=``;let e=S(cr);e&&(e.value=``),B.value=!0,Q()}else{L.value=[...r],z.value=``;let e=S(lr);e&&(e.value=``),B.value=!0,$()}ei(t)}function ri(){return{formModel:{...M},planFileNames:I.value.map(W).filter(Boolean),supportingFileNames:L.value.map(W).filter(Boolean)}}function ii(){let e=ri();localStorage.setItem(Kn.value,JSON.stringify(e)),e.planFileNames.length?R.value=`已保存商业计划书名称:${e.planFileNames.join(`、`)}`:R.value=``,e.supportingFileNames.length?z.value=`已保存其他佐证材料名称:${e.supportingFileNames.join(`、`)}`:z.value=``}function ai(){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))M[e]=t.formModel[e]??``;let n=t.planFileNames||[];n.length&&(R.value=`上次保存商业计划书名称:${n.join(`、`)}(浏览器限制,需重新选择后预览或删除)`);let r=t.supportingFileNames;r?.length&&(z.value=`上次保存其他佐证材料名称:${r.join(`、`)}(浏览器限制,需重新选择后预览或删除)`),F()}catch{localStorage.removeItem(Kn.value)}}async function oi(){Vn.value=!1;let e=x.value;if(!e){j.value=`缺少赛事地址`;return}j.value=``;try{let t=await fetch(`${T()}/api/v1/public/competitions/by-slug/${encodeURIComponent(e)}`,{headers:{Accept:`application/json`}});if(!t.ok){j.value=t.status===404?`赛事不存在或未发布`:`无法加载赛事配置`;return}let n=await t.json(),r=n.data!=null&&typeof n.data==`object`&&!Array.isArray(n.data)?n.data:n;Hn.value=String(r.name??``),Un.value=typeof r.pledge_content_html==`string`?r.pledge_content_html:``;let i=r.tracks;k.value=Array.isArray(i)?i:[];let a=r.signup_form_schema;if(typeof a==`string`)try{a=JSON.parse(a)}catch{a=[]}O.value=ye(a),Gn(O.value),A.value=he(r.branding_json??null);let o=A.value.documentTitle;pe(o)&&typeof document<`u`&&(document.title=o.trim()),Vn.value=!0}catch{j.value=`网络错误,无法加载赛事`}}function si(e){qn.value=e.status||`draft`,Jn.value=e.participant_may_edit!==!1,M.player_name=e.player_name||``,M.school=e.school||``,M.degree=e.degree||``,M.contact_email=e.contact_email||``,M.contact_mobile=e.contact_mobile||``,M.entry_group=e.entry_group||``,M.company_name=e.company_name||``,M.project_name=e.project_name||``,M.track=e.track||``,M.location_country=e.location_country||``,M.location_province=e.location_province||``,M.location_city=e.location_city||``,M.oversea_country=e.oversea_country||``,M.intro=e.intro||``;let t=typeof e.promise_signature==`string`?e.promise_signature:``;M.promise_signature=t,M.commitment_accepted=t.trim()&&e.promise_signed_at?`1`:``,F(),I.value=(e.files||[]).filter(e=>e.kind===`plan`).map(e=>{let t=oe(e.url);return{id:e.id,fromServer:!0,original_name:e.original_name,size:e.size,url:t,previewUrl:t}}),L.value=(e.files||[]).filter(e=>e.kind===`supporting`).map(e=>{let t=oe(e.url);return{id:e.id,fromServer:!0,original_name:e.original_name,size:e.size,url:t,previewUrl:t}}),Q(),$()}async function ci(){if(!localStorage.getItem(`cxxfds_token`))return!1;let e=await fetch(`${T()}/api/applications/current${E()}`,{headers:In(!1)});return e.status===401?(localStorage.removeItem(ae),D(),!1):e.ok?(si(await e.json()),!0):!1}async function li(){let e=await fetch(`${T()}/api/applications/current${E()}`,{method:`PUT`,headers:In(!0),body:JSON.stringify(Yr())});if(e.status===401)return D(),!1;if(!e.ok)return e.json().catch(()=>({})),G(`草稿未能保存,请检查网络或稍后重试。`,`保存失败`,`warning`),!1;try{si(await e.json())}catch{}return!0}function ui(e){if(typeof e!=`object`||!e||Array.isArray(e))return[];let t=[];for(let n of Object.values(e))if(Array.isArray(n))for(let e of n)typeof e==`string`&&e.trim()&&t.push(e.trim());else typeof n==`string`&&n.trim()&&t.push(n.trim());return t}function di(e){let t=e.trim();return t===`The given data was invalid.`||t===`The given data was invalid`||t===`给定的数据无效。`||t===`给定的数据无效`}function fi(e,t){let n=ui(t.errors);if(n.length>0)return n[0];let r=t.message;if(typeof r==`string`&&r.trim()){let e=r.trim();if(!di(e))return e}return e===404?`赛事不存在或未发布,请返回重新进入报名页。`:e===403?`当前账号无权限提交,请确认登录状态或联系管理员。`:e===409?`报名状态已变更或发生冲突,请刷新页面后重试。`:e===429?`请求过于频繁,请稍后再试。`:e>=500?`服务暂时不可用,请稍后重试。`:e===422?`提交失败,请填写完整信息。`:`报名未能提交,请检查网络或稍后重试。`}async function pi(){let e=await fetch(`${T()}/api/applications/current/submit${E()}`,{method:`POST`,headers:In(!0),body:JSON.stringify(Yr())});if(e.status===401)return D(),!1;if(!e.ok){let t={};try{t=await e.json()}catch{}return G(fi(e.status,t),`提交失败`,`warning`),!1}let t=await e.json();si(t);let n=t.success_notice,r=n?.enabled===!0&&typeof n.message==`string`?n.message.trim():``;return{channelCallback:Dr(t.channel_callback),successNoticeMessage:r}}async function mi(){if(!localStorage.getItem(`cxxfds_token`)){D();return}await li()&&(ii(),G(`已保存草稿(按当前已填写信息暂存)。`,`保存成功`,`success`))}async function hi(){if(!localStorage.getItem(`cxxfds_token`)){D();return}if(!$r())return;let e=await pi();if(!e)return;let t=e.successNoticeMessage||`已提交报名`;if(e.channelCallback){if(await G(t,`提交成功`,`success`),e.channelCallback.type===`mini_program`){await Ar(e.channelCallback.path,e.channelCallback.method)||G(`未检测到微信小程序回跳能力,请从小程序内重新进入或联系管理员。`,`回跳失败`,`warning`);return}window.location.href=e.channelCallback.redirectUrl;return}G(t,`提交成功`,`success`)}return a(()=>{Z?.(),Ir()}),o(()=>{(async()=>{await oi(),!j.value&&(await ci()||ai(),F())})()}),(r,i)=>(_(),v(`div`,be,[y(`div`,xe,[y(`h5`,Se,h(dr.value),1),!j.value&&fr.value?(_(),v(`p`,Ce,h(fr.value),1)):t(``,!0),j.value?(_(),v(`p`,we,h(j.value),1)):Vn.value&&k.value.length===0&&O.value.some(e=>e.key===`track`)?(_(),v(`p`,Te,` 本场赛事尚未在「赛道管理」中配置可用赛道,提交时可能会失败,请联系管理员。 `)):t(``,!0)]),j.value?t(``,!0):(_(),v(`div`,Ee,[y(`div`,De,[y(`div`,Oe,[y(`form`,{id:`applyForm`,ref_key:`applyFormEl`,ref:sr,class:e([`row g-3`,{"was-validated":B.value}]),onSubmit:i[4]||=te(()=>{},[`prevent`])},[(_(!0),v(m,null,s(gr.value,r=>(_(),v(m,{key:r.type===`file`?`f-`+r.key:r.key},[r.key===`track`?(_(),v(`div`,ke,[y(`label`,Ae,[n(h(r.label)+` `,1),U(r)?(_(),v(`span`,je,`*`)):t(``,!0),w(r)?(_(),v(`span`,Me,h(w(r)),1)):t(``,!0)]),y(`div`,Ne,[f(y(`select`,{id:`track`,ref_for:!0,ref_key:`trackHiddenSelect`,ref:Yn,"onUpdate:modelValue":i[0]||=e=>M.track=e,class:`visually-hidden`,required:U(r),tabindex:`-1`,"aria-hidden":`true`,disabled:V.value},[(_(!0),v(m,null,s(k.value,e=>(_(),v(`option`,{key:e.track_code,value:e.track_code},h(e.title),9,Fe))),128))],8,Pe),[[re,M.track]]),y(`div`,Ie,[y(`button`,{ref_for:!0,ref_key:`trackDropdownBtn`,ref:Xn,type:`button`,class:e([`dropdown-toggle form-select track-custom-toggle editable w-100 text-start`,{"is-invalid":N.value&&B.value}]),"aria-labelledby":`trackFieldLabel`,"aria-expanded":`false`,"data-bs-toggle":`dropdown`,"data-bs-display":`static`,"data-bs-auto-close":`true`,disabled:V.value},[y(`span`,Re,[y(`span`,{class:e(Qn.value)},h(Zn.value),3),$n.value?(_(),v(`span`,ze,h($n.value),1)):t(``,!0)])],10,Le),y(`ul`,Be,[(_(!0),v(m,null,s(k.value,e=>(_(),v(`li`,{key:e.track_code},[y(`button`,{type:`button`,class:`dropdown-item track-pick border-0 w-100 text-start rounded-0`,onClick:t=>tr(e.track_code)},[y(`span`,He,[y(`span`,Ue,h(e.title),1),er(e.description)?(_(),v(`span`,We,h(er(e.description)),1)):t(``,!0)])],8,Ve)]))),128))]),i[5]||=y(`div`,{class:`invalid-feedback`},`请选择主题赛道`,-1)])]),C(r.help)?(_(),v(`small`,Ge,h(C(r.help)),1)):t(``,!0)])):r.type===`file`&&r.key===`plan`?(_(),v(`div`,Ke,[y(`label`,qe,[n(h(r.label)+` `,1),U(r)?(_(),v(`span`,Je,`*`)):t(``,!0),w(r)?(_(),v(`span`,Ye,h(w(r)),1)):t(``,!0)]),y(`input`,{ref_for:!0,ref_key:`planFileInput`,ref:cr,type:`file`,class:e([`form-control editable`,{"is-invalid":B.value&&!!ar.value}]),accept:Bn(r),multiple:``,disabled:V.value,onChange:i[1]||=e=>ni(e.target.files,`plan`)},null,42,Xe),C(r.help)?(_(),v(`small`,Ze,h(C(r.help)),1)):t(``,!0),I.value.length?(_(),v(`div`,Qe,[(_(!0),v(m,null,s(I.value,e=>(_(),v(`div`,{key:String(e.id),class:`supporting-file-item`},[y(`div`,$e,[y(`span`,{class:`supporting-file-name`,title:W(e)},h(W(e)),9,et),y(`span`,tt,h(yr(e.file?e.file.size:e.size||0)),1)]),y(`div`,nt,[y(`a`,{class:`btn btn-sm btn-outline-primary`,href:e.previewUrl||e.url||`#`,download:br(e),target:`_blank`,rel:`noopener`},`预览`,8,rt),y(`button`,{type:`button`,class:`btn btn-sm btn-outline-secondary`,disabled:V.value,onClick:t=>ti(e.id,`plan`)},` 删除 `,8,it)])]))),128))])):t(``,!0),y(`small`,at,h(R.value),1),B.value&&ar.value?(_(),v(`div`,ot,h(ar.value),1)):t(``,!0)])):r.type===`file`&&r.key===`supporting`?(_(),v(`div`,st,[y(`label`,ct,[n(h(r.label)+` `,1),U(r)?(_(),v(`span`,lt,`*`)):t(``,!0),w(r)?(_(),v(`span`,ut,h(w(r)),1)):t(``,!0)]),y(`input`,{ref_for:!0,ref_key:`supportingFileInput`,ref:lr,type:`file`,class:e([`form-control editable`,{"is-invalid":B.value&&!!or.value}]),accept:Bn(r),multiple:``,disabled:V.value,onChange:i[2]||=e=>ni(e.target.files,`supporting`)},null,42,dt),C(r.help)?(_(),v(`small`,ft,h(C(r.help)),1)):t(``,!0),L.value.length?(_(),v(`div`,pt,[(_(!0),v(m,null,s(L.value,e=>(_(),v(`div`,{key:String(e.id),class:`supporting-file-item`},[y(`div`,mt,[y(`span`,{class:`supporting-file-name`,title:W(e)},h(W(e)),9,ht),y(`span`,gt,h(yr(e.file?e.file.size:e.size||0)),1)]),y(`div`,_t,[y(`a`,{class:`btn btn-sm btn-outline-primary`,href:e.previewUrl||e.url||`#`,download:br(e),target:`_blank`,rel:`noopener`},`预览`,8,vt),y(`button`,{type:`button`,class:`btn btn-sm btn-outline-secondary`,disabled:V.value,onClick:t=>ti(e.id,`supporting`)},` 删除 `,8,yt)])]))),128))])):t(``,!0),y(`small`,bt,h(z.value),1),B.value&&or.value?(_(),v(`div`,xt,h(or.value),1)):t(``,!0)])):r.type===`select`&&!vr(r)?(_(),v(`div`,{key:3,class:e(H(r))},[y(`label`,St,[n(h(r.label)+` `,1),U(r)?(_(),v(`span`,Ct,`*`)):t(``,!0),w(r)?(_(),v(`span`,wt,h(w(r)),1)):t(``,!0)]),f(y(`select`,{"onUpdate:modelValue":e=>M[r.key]=e,class:`form-select editable`,required:U(r),disabled:V.value},[(_(!0),v(m,null,s(_r(r),e=>(_(),v(`option`,{key:`${r.key}-${e.value}`,value:e.value},h(e.label),9,Et))),128))],8,Tt),[[re,M[r.key]]]),y(`div`,Dt,`请选择`+h(r.label),1),C(r.help)?(_(),v(`small`,Ot,h(C(r.help)),1)):t(``,!0)],2)):vr(r)?(_(),v(`div`,{key:4,class:e(H(r))},[y(`label`,kt,[n(h(r.label)+` `,1),U(r)?(_(),v(`span`,At,`*`)):t(``,!0),w(r)?(_(),v(`span`,jt,h(w(r)),1)):t(``,!0)]),f(y(`select`,{"onUpdate:modelValue":i[3]||=e=>M.location_city=e,class:`form-select editable`,required:U(r),disabled:V.value||!P.value||!String(M.location_province??``).trim()},[(_(!0),v(m,null,s(_r(r),e=>(_(),v(`option`,{key:e.value,value:e.value},h(e.label),9,Nt))),128))],8,Mt),[[re,M.location_city]]),y(`div`,Pt,`请选择`+h(r.label),1),C(r.help)?(_(),v(`small`,Ft,h(C(r.help)),1)):t(``,!0)],2)):r.type===`checkbox`&&r.key===`commitment_accepted`?(_(),v(`div`,{key:5,class:e(H(r))},[y(`label`,It,[n(h(r.label)+` `,1),U(r)?(_(),v(`span`,Lt,`*`)):t(``,!0),w(r)?(_(),v(`span`,Rt,h(w(r)),1)):t(``,!0)]),i[6]||=y(`p`,{class:`small text-secondary mb-2`},` 请点击按钮打开承诺书全文,阅读后在文末手写签名并点击「确认签署」。 `,-1),y(`div`,zt,[y(`button`,{type:`button`,class:`btn btn-outline-primary btn-sm editable`,disabled:V.value,onClick:Kr},h(Lr.value?`重新查看承诺书`:`查看并签署参赛承诺书`),9,Bt),Lr.value?(_(),v(`span`,Vt,`已完成签署`)):t(``,!0)]),C(r.help)?(_(),v(`small`,Ht,h(C(r.help)),1)):t(``,!0)],2)):r.type===`checkbox`?(_(),v(`div`,{key:6,class:e(H(r))},[y(`div`,Ut,[f(y(`input`,{id:`signup-field-`+r.key,"onUpdate:modelValue":e=>M[r.key]=e,type:`checkbox`,class:`form-check-input editable`,"true-value":`1`,"false-value":``,required:U(r),disabled:V.value},null,8,Wt),[[ne,M[r.key]]]),y(`label`,{class:`form-check-label`,for:`signup-field-`+r.key},[n(h(r.label)+` `,1),U(r)?(_(),v(`span`,Kt,`*`)):t(``,!0),w(r)?(_(),v(`span`,qt,h(w(r)),1)):t(``,!0)],8,Gt),i[7]||=y(`div`,{class:`invalid-feedback`},`请勾选此项以继续`,-1)]),C(r.help)?(_(),v(`small`,Jt,h(C(r.help)),1)):t(``,!0)],2)):r.type===`textarea`?(_(),v(`div`,{key:7,class:e(H(r))},[y(`label`,Yt,[n(h(r.label)+` `,1),U(r)?(_(),v(`span`,Xt,`*`)):t(``,!0),w(r)?(_(),v(`span`,Zt,h(w(r)),1)):t(``,!0)]),f(y(`textarea`,{"onUpdate:modelValue":e=>M[r.key]=e,class:`form-control editable`,rows:`4`,placeholder:``,required:U(r),disabled:V.value},null,8,Qt),[[p,M[r.key]]]),mr(r)||r.key===`intro`?(_(),v(`div`,$t,[mr(r)?(_(),v(`small`,en,h(mr(r)),1)):t(``,!0),r.key===`intro`?(_(),v(`small`,tn,h(ur.value)+` 字`,1)):t(``,!0)])):t(``,!0),C(r.help)?(_(),v(`small`,{key:1,class:e([`text-secondary prototype-subtitle d-block`,{"mt-1":r.key===`intro`||mr(r)}])},h(C(r.help)),3)):t(``,!0)],2)):(_(),v(`div`,{key:8,class:e(H(r))},[y(`label`,nn,[n(h(r.label)+` `,1),U(r)?(_(),v(`span`,rn,`*`)):t(``,!0),w(r)?(_(),v(`span`,an,h(w(r)),1)):t(``,!0)]),f(y(`input`,{"onUpdate:modelValue":e=>M[r.key]=e,type:r.type===`email`?`email`:r.key===`contact_mobile`?`tel`:`text`,class:e([`form-control editable`,{"company-name-input":r.key===`company_name`}]),required:U(r),disabled:V.value,placeholder:(r.placeholder??``).trim(),pattern:r.key===`contact_mobile`?Nn:void 0,autocomplete:r.key===`company_name`?`organization`:void 0},null,10,on),[[d,M[r.key]]]),y(`div`,sn,h(pr(r)),1),C(r.help)?(_(),v(`small`,cn,h(C(r.help)),1)):t(``,!0)],2))],64))),128)),y(`div`,ln,[y(`button`,{type:`button`,class:`btn btn-outline-primary`,disabled:V.value,onClick:mi},`保存`,8,un),y(`button`,{type:`button`,class:`btn btn-success`,disabled:V.value,onClick:hi},`提交报名`,8,dn)])],34)])])])),!j.value&&O.value.some(e=>e.key===`commitment_accepted`)?(_(),v(`div`,{key:1,id:`promiseSignModal`,ref_key:`promiseSignModalRef`,ref:jr,class:`modal fade`,tabindex:`-1`,"aria-hidden":`true`,"data-bs-backdrop":`static`},[y(`div`,fn,[y(`div`,pn,[y(`div`,mn,[y(`div`,hn,[y(`h1`,gn,h(Rr.value),1),y(`div`,_n,[y(`div`,{class:`promise-doc-body promise-doc-body--rich`,innerHTML:Wn.value},null,8,vn)]),y(`div`,yn,[y(`div`,bn,[i[8]||=y(`span`,{class:`promise-doc-signlabel`},`参赛人签名:`,-1),y(`div`,xn,[y(`div`,Sn,[y(`canvas`,{ref_key:`promiseCanvasRef`,ref:K,class:`promise-sig-canvas`,width:`520`,height:`140`,"aria-label":`手写签名区域`},null,512),y(`span`,{class:e([`promise-sig-hint`,{"d-none":!Nr.value}])},`请在框内手写签名`,2)]),y(`div`,{class:`promise-sig-tools`},[y(`button`,{type:`button`,class:`btn btn-sm btn-outline-secondary`,onClick:qr},` 清除签名 `)])])]),y(`div`,Cn,[y(`span`,wn,[i[9]||=n(`日期:`,-1),y(`strong`,null,h(Mr.value),1)])])]),y(`div`,{class:`promise-sign-actions`},[i[10]||=y(`button`,{type:`button`,class:`btn btn-light notice-cancel-btn`,"data-bs-dismiss":`modal`},`关闭`,-1),y(`button`,{type:`button`,class:`btn btn-primary`,onClick:Jr},`确认签署`)])])])])])],512)):t(``,!0),y(`div`,{ref_key:`noticeModalEl`,ref:Sr,id:`applyNoticeModal`,class:`modal fade`,tabindex:`-1`,"aria-hidden":`true`},[y(`div`,Tn,[y(`div`,{class:e([`modal-content notice-modal-content`,Tr.value?`notice-success`:`notice-warning`])},[i[13]||=y(`div`,{class:`modal-header border-0 pb-0`},[y(`button`,{type:`button`,class:`btn-close ms-auto`,"data-bs-dismiss":`modal`,"aria-label":`关闭`})],-1),y(`div`,En,[y(`div`,Dn,[Tr.value?(_(),v(`svg`,On,[...i[11]||=[y(`circle`,{cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`1.8`},null,-1),y(`path`,{d:`M7 12.2l3.1 3.1L17.2 8.8`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)]])):(_(),v(`svg`,kn,[...i[12]||=[y(`path`,{d:`M12 3.6L2.9 19.2a1 1 0 0 0 .86 1.5h16.48a1 1 0 0 0 .86-1.5L12 3.6z`,stroke:`currentColor`,"stroke-width":`1.8`},null,-1),y(`path`,{d:`M12 9v5`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`},null,-1),y(`circle`,{cx:`12`,cy:`16.8`,r:`1.1`,fill:`currentColor`},null,-1)]]))]),y(`h5`,An,h(Cr.value),1),wr.value.trim()?(_(),v(`p`,jn,h(wr.value),1)):t(``,!0)]),i[14]||=y(`div`,{class:`modal-footer notice-modal-footer border-0`},[y(`button`,{type:`button`,class:`btn btn-light notice-cancel-btn`,"data-bs-dismiss":`modal`},`取消`),y(`button`,{type:`button`,class:`btn btn-primary notice-ok-btn`,"data-bs-dismiss":`modal`},`确定`)],-1)],2)])],512)]))}}),[[`__scopeId`,`data-v-c5a2e141`]]),T=g({__name:`ApplyView`,setup(e){return(e,t)=>(_(),i(w))}});export{T as default}; \ No newline at end of file diff --git a/public/admin/assets/CompetitionFormView-BGv5mufn.js b/public/admin/assets/CompetitionFormView-DRos9VBA.js similarity index 99% rename from public/admin/assets/CompetitionFormView-BGv5mufn.js rename to public/admin/assets/CompetitionFormView-DRos9VBA.js index b82edb4..b45e5d9 100644 --- a/public/admin/assets/CompetitionFormView-BGv5mufn.js +++ b/public/admin/assets/CompetitionFormView-DRos9VBA.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 ee,at as A,b as j,bt as te,cn as M,ct as ne,g as re,i as ie,in as N,jt as ae,k as oe,kt as se,ln as ce,nn as le,nt as ue,o as de,on as fe,ot as pe,p as me,q as he,qt as ge,rn as _e,sn as ve,st as P,un as ye,w as be,x as F,xt as xe}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{a as Se,c as I,o as Ce,r as we,s as Te,u as Ee}from"./index-D0dRqZdv.js";import{t as De}from"./_plugin-vue_export-helper-S3RvzygF.js";import{c as L,i as Oe,l as ke,n as Ae,o as je,r as Me,s as Ne,t as Pe}from"./competitions-DiNyIuQv.js";import{t as Fe}from"./adminCompetition-C7hGO_qg.js";import{n as Ie,r as Le,t as Re}from"./competitionBranding-BQASm1w0.js";async function ze(e,t){let{data:n}=await we.get(`/competitions/${e}/form-schemas`,{params:t?{purpose:t}:{}});return n.data??[]}async function Be(e,t){let{data:n}=await we.get(`/competitions/${e}/form-schemas/${t}`),r=n?.data??n;if(!r||typeof r!=`object`||!(`id`in r))throw Error(`表单详情无效`);return r}async function Ve(e,t){let{data:n}=await we.post(`/competitions/${e}/form-schemas`,t);return n}async function He(e,t,n){let{data:r}=await we.patch(`/competitions/${e}/form-schemas/${t}`,n);return r}async function Ue(e,t){await we.delete(`/competitions/${e}/form-schemas/${t}`)}function We(e){let t=e?.data??e;if(!t||typeof t!=`object`||!(`id`in t))throw Error(`渠道响应格式无效`);return t}async function Ge(e){let{data:t}=await we.get(`/competitions/${e}/signup-channels`),n=t?.data??t;if(!Array.isArray(n))throw Error(`渠道列表响应格式无效`);return n}async function Ke(e,t){let{data:n}=await we.get(`/competitions/${e}/signup-channels/${t}`);return We(n)}async function qe(e,t){let{data:n}=await we.post(`/competitions/${e}/signup-channels`,t);return We(n)}async function Je(e,t,n){let{data:r}=await we.put(`/competitions/${e}/signup-channels/${t}`,n);return We(r)}function Ye(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 Xe(e,t){let{data:n}=await we.get(`/competitions/${e}/applications`,{params:t});return Ye(n)}async function Ze(e,t){let{data:n}=await we.get(`/competitions/${e}/applications/${t}`);if(!n||typeof n!=`object`)throw Error(`报名详情无效`);return n}async function Qe(e,t,n,r){let i=await we.get(`/competitions/${e}/applications/${t}/files/${n}/download`,{responseType:`blob`}),a=URL.createObjectURL(i.data),o=document.createElement(`a`);o.href=a,o.download=r||`附件`,document.body.appendChild(o),o.click(),o.remove(),URL.revokeObjectURL(a)}function $e(e){Object.getOwnPropertySymbols(e).forEach(t=>{ni[t]=e[t]})}function et(e,t=``){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:si}}function tt(e,t,n,r,i,a,o,s=!1,c=!1,l=!1,u=si){return e&&(s?(e.helper(Sr),e.helper(yt(e.inSSR,l))):e.helper(vt(e.inSSR,l)),o&&e.helper(Pr)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:a,directives:o,isBlock:s,disableTracking:c,isComponent:l,loc:u}}function nt(e,t=si){return{type:17,loc:t,elements:e}}function rt(e,t=si){return{type:15,loc:t,properties:e}}function it(e,t){return{type:16,loc:si,key:E(e)?at(e,!0):e,value:t}}function at(e,t=!1,n=si,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function ot(e,t){return{type:5,loc:t,content:E(e)?at(e,!1,t):e}}function st(e,t=si){return{type:8,loc:t,children:e}}function ct(e,t=[],n=si){return{type:14,loc:n,callee:e,arguments:t}}function lt(e,t=void 0,n=!1,r=!1,i=si){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function ut(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:si}}function dt(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:si}}function ft(e){return{type:21,body:e,loc:si}}function pt(e){return{type:22,elements:e,loc:si}}function mt(e,t,n){return{type:23,test:e,consequent:t,alternate:n,loc:si}}function ht(e,t){return{type:24,left:e,right:t,loc:si}}function gt(e){return{type:25,expressions:e,loc:si}}function _t(e){return{type:26,returns:e,loc:si}}function vt(e,t){return e||t?Tr:Er}function yt(e,t){return e||t?Cr:wr}function bt(e,{helper:t,removeHelper:n,inSSR:r}){e.isBlock||(e.isBlock=!0,n(vt(r,e.isComponent)),t(Sr),t(yt(r,e.isComponent)))}function xt(e){return e>=97&&e<=122||e>=65&&e<=90}function St(e){return e===32||e===10||e===9||e===12||e===13}function Ct(e){return e===47||e===62||St(e)}function wt(e){let t=new Uint8Array(e.length);for(let n=0;n{ni[t]=e[t]})}function et(e,t=``){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:si}}function tt(e,t,n,r,i,a,o,s=!1,c=!1,l=!1,u=si){return e&&(s?(e.helper(Sr),e.helper(yt(e.inSSR,l))):e.helper(vt(e.inSSR,l)),o&&e.helper(Pr)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:a,directives:o,isBlock:s,disableTracking:c,isComponent:l,loc:u}}function nt(e,t=si){return{type:17,loc:t,elements:e}}function rt(e,t=si){return{type:15,loc:t,properties:e}}function it(e,t){return{type:16,loc:si,key:E(e)?at(e,!0):e,value:t}}function at(e,t=!1,n=si,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function ot(e,t){return{type:5,loc:t,content:E(e)?at(e,!1,t):e}}function st(e,t=si){return{type:8,loc:t,children:e}}function ct(e,t=[],n=si){return{type:14,loc:n,callee:e,arguments:t}}function lt(e,t=void 0,n=!1,r=!1,i=si){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function ut(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:si}}function dt(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:si}}function ft(e){return{type:21,body:e,loc:si}}function pt(e){return{type:22,elements:e,loc:si}}function mt(e,t,n){return{type:23,test:e,consequent:t,alternate:n,loc:si}}function ht(e,t){return{type:24,left:e,right:t,loc:si}}function gt(e){return{type:25,expressions:e,loc:si}}function _t(e){return{type:26,returns:e,loc:si}}function vt(e,t){return e||t?Tr:Er}function yt(e,t){return e||t?Cr:wr}function bt(e,{helper:t,removeHelper:n,inSSR:r}){e.isBlock||(e.isBlock=!0,n(vt(r,e.isComponent)),t(Sr),t(yt(r,e.isComponent)))}function xt(e){return e>=97&&e<=122||e>=65&&e<=90}function St(e){return e===32||e===10||e===9||e===12||e===13}function Ct(e){return e===47||e===62||St(e)}function wt(e){let t=new Uint8Array(e.length);for(let n=0;n{e&&Vt(e,t)});break;case`RestElement`:Vt(e.argument,t);break;case`AssignmentPattern`:Vt(e.left,t);break}return t}function Ht(e){return yi.includes(e.type)?Ht(e.expression):e}function Ut(e){switch(e){case`Teleport`:case`teleport`:return vr;case`Suspense`:case`suspense`:return yr;case`KeepAlive`:case`keep-alive`:return br;case`BaseTransition`:case`base-transition`:return xr}}function Wt(e,t,n=t.length){return Gt({offset:e.offset,line:e.line,column:e.column},t,n)}function Gt(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 Zt(e){return e.type===5||e.type===2}function Qt(e){return e.type===7&&e.name===`pre`}function $t(e){return e.type===7&&e.name===`slot`}function en(e){return e.type===1&&e.tagType===3}function tn(e){return e.type===1&&e.tagType===2}function nn(e,t=[]){if(e&&!E(e)&&e.type===14){let n=e.callee;if(!E(n)&&Pi.has(n))return nn(e.arguments[0],t.concat(e))}return[e,t]}function rn(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=nn(i);i=e[0],a=e[1],o=a[a.length-1]}if(i==null||E(i))r=rt([t]);else if(i.type===14){let e=i.arguments[0];!E(e)&&e.type===15?an(t,e)||e.properties.unshift(t):i.callee===Wr?r=ct(n.helper(zr),[rt([t]),i]):i.arguments.unshift(rt([t])),!r&&(r=i)}else i.type===15?(an(t,i)||i.properties.unshift(t),r=i):(r=ct(n.helper(zr),[rt([t]),i]),o&&o.callee===Ur&&(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 an(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 on(e,t){return`_${t}_${e.replace(/[^\w]/g,(t,n)=>t===`-`?`_`:e.charCodeAt(n).toString())}`}function sn(e,t){if(!e||Object.keys(t).length===0)return!1;switch(e.type){case 1:for(let n=0;nsn(e,t));case 11:return sn(e.source,t)?!0:e.children.some(e=>sn(e,t));case 9:return e.branches.some(e=>sn(e,t));case 10:return sn(e.condition,t)?!0:e.children.some(e=>sn(e,t));case 4:return!e.isStatic&&Si(e.content)&&!!t[e.content];case 8:return e.children.some(e=>y(e)&&sn(e,t));case 5:case 12:return sn(e.content,t);case 2:case 3:case 20:return!1;default:return!1}}function cn(e){return e.type===14&&e.callee===ei?e.arguments[1].returns:e}function ln(e){for(let t=0;t{let i=t.start.offset+n;return Tn(e,!1,Cn(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(Zi,``).trim(),l=i.indexOf(c),u=c.match(Xi);if(u){c=c.replace(Xi,``).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 fn(e,t){return zi.slice(e,t)}function pn(e){Yi.inSFCRoot&&(Bi.innerLoc=Cn(e+1,e+1)),Sn(Bi);let{tag:t,ns:n}=Bi;n===0&&Li.isPreTag(t)&&Gi++,Li.isVoidTag(t)?hn(Bi,e):(Ji.unshift(Bi),(n===1||n===2)&&(Yi.inXML=!0)),Bi=null}function mn(e,t,n){{let t=Ji[0]&&Ji[0].tag;t!==`script`&&t!==`style`&&e.includes(`&`)&&(e=Li.decodeEntities(e,!1))}let r=Ji[0]||Ri,i=r.children[r.children.length-1];i&&i.type===2?(i.content+=e,wn(i.loc,n)):r.children.push({type:2,content:e,loc:Cn(t,n)})}function hn(e,t,n=!1){n?wn(e.loc,gn(t,60)):wn(e.loc,tee(t,62)+1),Yi.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=fn(e.innerLoc.start.offset,e.innerLoc.end.offset));let{tag:r,ns:i,children:a}=e;if(Ki||(r===`slot`?e.tagType=2:_n(e)?e.tagType=3:nee(e)&&(e.tagType=1)),Yi.inRCDATA||(e.children=yn(a)),i===0&&Li.isIgnoreNewlineTag(r)){let e=a[0];e&&e.type===2&&(e.content=e.content.replace(/^\r?\n/,``))}i===0&&Li.isPreTag(r)&&Gi--,qi===e&&(Ki=Yi.inVPre=!1,qi=null),Yi.inXML&&(Ji[0]?Ji[0].ns:Li.ns)===0&&(Yi.inXML=!1);{let t=e.props;if(!Yi.inSFCRoot&&Et(`COMPILER_NATIVE_TEMPLATE`,Li)&&e.tag===`template`&&!_n(e)){let t=Ji[0]||Ri,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&&Dt(`COMPILER_INLINE_TEMPLATE`,Li,n.loc)&&e.children.length&&(n.value={type:2,content:fn(e.children[0].loc.start.offset,e.children[e.children.length-1].loc.end.offset),loc:n.loc})}}function tee(e,t){let n=e;for(;zi.charCodeAt(n)!==t&&n=0;)n--;return n}function _n({tag:e,props:t}){if(e===`template`){for(let e=0;e64&&e<91}function yn(e){let t=Li.whitespace!==`preserve`,n=!1;for(let r=0;re.type!==3);return t.length===1&&t[0].type===1&&!tn(t[0])?t[0]:null}function kn(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)&&Mn(s,n)>=2){let t=Nn(s);t&&(e.props=n.hoist(t))}e.dynamicProps&&=n.hoist(e.dynamicProps)}}}else if(s.type===12&&(r?0:An(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++,kn(s,e,n,!1,i),t&&n.scopes.vSlot--}else if(s.type===11)kn(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 An(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=Mn(e,t);if(a===0)return n.set(e,0),0;a1)for(let i=0;in&&(D.childIndex--,D.onNodeRemoved()),D.parent.children.splice(n,1)},onNodeRemoved:se,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){E(e)&&(e=at(e)),D.hoists.push(e);let t=at(`_hoisted_${D.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1,n=!1){let r=dt(D.cached.length,e,t,n);return D.cached.push(r),r}};return D.filters=new Set,D}function Fn(e,t){let n=Pn(e,t);In(e,n),t.hoistStatic&&oee(e,n),t.ssr||see(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 see(e,t){let{helper:n}=t,{children:r}=e;if(r.length===1){let n=On(e);if(n&&n.codegenNode){let r=n.codegenNode;r.type===13&&bt(r,t),e.codegenNode=r}else e.codegenNode=r[0]}else r.length>1&&(e.codegenNode=tt(t,n(_r),void 0,e.children,64,void 0,void 0,!0,void 0,!1))}function cee(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($t))return;let a=[];for(let o=0;o0,p=!a&&r!==`module`;if(uee(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(na).join(`, `)} } = _Vue @@ -10,7 +10,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function bo(e){if(typeof window<`u`&&window.navigator)return!!navigator.userAgent.match(e)}function xo(e,t,n){e.addEventListener(t,n,!us&&gs)}function So(e,t,n){e.removeEventListener(t,n,!us&&gs)}function Co(e,t){if(t){if(t[0]===`>`&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch{return!1}return!1}}function wo(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function To(e,t,n,r){if(e){n||=document;do{if(t!=null&&(t[0]===`>`?e.parentNode===n&&Co(e,t):Co(e,t))||r&&e===n)return e;if(e===n)break}while(e=wo(e))}return null}function Eo(e,t,n){e&&t&&(e.classList?e.classList[n?`add`:`remove`](t):e.className=((` `+e.className+` `).replace(_s,` `).replace(` `+t+` `,` `)+(n?` `+t:``)).replace(_s,` `))}function Do(e,t,n){var r=e&&e.style;if(r){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,``):e.currentStyle&&(n=e.currentStyle),t===void 0?n:n[t];!(t in r)&&t.indexOf(`webkit`)===-1&&(t=`-webkit-`+t),r[t]=n+(typeof n==`string`?``:`px`)}}function Oo(e,t){var n=``;if(typeof e==`string`)n=e;else do{var r=Do(e,`transform`);r&&r!==`none`&&(n=r+` `+n)}while(!t&&(e=e.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(n)}function ko(e,t,n){if(e){var r=e.getElementsByTagName(t),i=0,a=r.length;if(n)for(;i=a:i<=a,!o)return r;if(r===Ao())break;r=Lo(r,!1)}return!1}function No(e,t,n,r){for(var i=0,a=0,o=e.children;ali`:`>*`,swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return cc(e,this.options)},ghostClass:`sortable-ghost`,chosenClass:`sortable-chosen`,dragClass:`sortable-drag`,ignore:`a, img`,filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData(`Text`,t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:`data-id`,delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:`sortable-fallback`,fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:Ko.supportPointer!==!1&&`PointerEvent`in window&&!ps,emptyInsertThreshold:5};for(var r in Ss.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var i in dc(t),this)i.charAt(0)===`_`&&typeof this[i]==`function`&&(this[i]=this[i].bind(this));this.nativeDraggable=t.forceFallback?!1:oc,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?xo(e,`pointerdown`,this._onTapStart):(xo(e,`mousedown`,this._onTapStart),xo(e,`touchstart`,this._onTapStart)),this.nativeDraggable&&(xo(e,`dragover`,this),xo(e,`dragenter`,this)),Bs.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),uo(this,Iee())}function qo(e){e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),e.cancelable&&e.preventDefault()}function Jo(e,t,n,r,i,a,o,s){var c,l=e[ys],u=l.options.onMove,d;return window.CustomEvent&&!us&&!ds?c=new CustomEvent(`move`,{bubbles:!0,cancelable:!0}):(c=document.createEvent(`Event`),c.initEvent(`move`,!0,!0)),c.to=t,c.from=e,c.dragged=n,c.draggedRect=r,c.related=i||t,c.relatedRect=a||jo(t),c.willInsertAfter=s,c.originalEvent=o,e.dispatchEvent(c),u&&(d=u.call(l,c,o)),d}function Yo(e){e.draggable=!1}function Xo(){tc=!1}function Zo(e,t,n){var r=jo(No(n.el,0,n.options,!0)),i=10;return t?e.clientXr.right+i||e.clientX<=r.right&&e.clientY>r.bottom&&e.clientX>=r.left:e.clientX>r.right&&e.clientY>r.top||e.clientX<=r.right&&e.clientY>r.bottom+i}function $o(e,t,n,r,i,a,o,s){var c=r?e.clientY:e.clientX,l=r?n.height:n.width,u=r?n.top:n.left,d=r?n.bottom:n.right,f=!1;if(!o){if(s&&Qsu+l*a/2:cd-Qs)return-Ys}else if(c>u+l*(1-i)/2&&cd-l*a/2)?c>u+l/2?1:-1:0}function es(e){return Fo(R)1&&(Dc.forEach(function(e){r.addAnimationState({target:e,rect:Mc?jo(e):i}),Uo(e),e.fromRect=i,t.removeAnimationState(e)}),Mc=!1,Gee(!this.options.removeCloneOnHide,n))},dragOverCompleted:function(e){var t=e.sortable,n=e.isOwner,r=e.insertion,i=e.activeSortable,a=e.parentEl,o=e.putSortable,s=this.options;if(r){if(n&&i._hideClone(),jc=!1,s.animation&&Dc.length>1&&(Mc||!n&&!i.options.sort&&!o)){var c=jo(Pc,!1,!0,!0);Dc.forEach(function(e){e!==Pc&&(Ho(e,c),a.appendChild(e))}),Mc=!0}if(!n)if(Mc||cs(),Dc.length>1){var l=Ic;i._showClone(t),i.options.animation&&!Ic&&l&&Oc.forEach(function(e){i.addAnimationState({target:e,rect:Fc}),e.fromRect=Fc,e.thisAnimationDuration=null})}else i._showClone(t)}},dragOverAnimationCapture:function(e){var t=e.dragRect,n=e.isOwner,r=e.activeSortable;if(Dc.forEach(function(e){e.thisAnimationDuration=null}),r.options.animation&&!n&&r.multiDrag.isMultiDrag){Fc=uo({},t);var i=Oo(Pc,!0);Fc.top-=i.f,Fc.left-=i.e}},dragOverAnimationComplete:function(){Mc&&(Mc=!1,cs())},drop:function(e){var t=e.originalEvent,n=e.rootEl,r=e.parentEl,i=e.sortable,a=e.dispatchSortableEvent,o=e.oldIndex,s=e.putSortable,c=s||this.sortable;if(t){var l=this.options,u=r.children;if(!Nc)if(l.multiDragKey&&!this.multiDragKeyDown&&this._deselectMultiDrag(),Eo(Pc,l.selectedClass,!~Dc.indexOf(Pc)),~Dc.indexOf(Pc))Dc.splice(Dc.indexOf(Pc),1),kc=null,Wo({sortable:i,rootEl:n,name:`deselect`,targetEl:Pc,originalEvt:t});else{if(Dc.push(Pc),Wo({sortable:i,rootEl:n,name:`select`,targetEl:Pc,originalEvt:t}),t.shiftKey&&kc&&i.el.contains(kc)){var d=Fo(kc),f=Fo(Pc);if(~d&&~f&&d!==f){var p,m;for(f>d?(m=d,p=f):(m=f,p=d+1);m1){var h=jo(Pc),g=Fo(Pc,`:not(.`+this.options.selectedClass+`)`);if(!jc&&l.animation&&(Pc.thisAnimationDuration=null),c.captureAnimationState(),!jc&&(l.animation&&(Pc.fromRect=h,Dc.forEach(function(e){if(e.thisAnimationDuration=null,e!==Pc){var t=Mc?jo(e):h;e.fromRect=t,c.addAnimationState({target:e,rect:t})}})),cs(),Dc.forEach(function(e){u[g]?r.insertBefore(e,u[g]):r.appendChild(e),g++}),o===Fo(Pc))){var _=!1;Dc.forEach(function(e){if(e.sortableIndex!==Fo(e)){_=!0;return}}),_&&a(`update`)}Dc.forEach(function(e){Uo(e)}),c.animateAll()}Ac=c}(n===r||s&&s.lastPutMode!==`clone`)&&Oc.forEach(function(e){e.parentNode&&e.parentNode.removeChild(e)})}},nullingGlobal:function(){this.isMultiDrag=Nc=!1,Oc.length=0},destroyGlobal:function(){this._deselectMultiDrag(),So(document,`pointerup`,this._deselectMultiDrag),So(document,`mouseup`,this._deselectMultiDrag),So(document,`touchend`,this._deselectMultiDrag),So(document,`keydown`,this._checkKeyDown),So(document,`keyup`,this._checkKeyUp)},_deselectMultiDrag:function(e){if(!(Nc!==void 0&&Nc)&&Ac===this.sortable&&!(e&&To(e.target,this.options.draggable,this.sortable.el,!1))&&!(e&&e.button!==0))for(;Dc.length;){var t=Dc[0];Eo(t,this.options.selectedClass,!1),Dc.shift(),Wo({sortable:this.sortable,rootEl:this.sortable.el,name:`deselect`,targetEl:t,originalEvt:e})}},_checkKeyDown:function(e){e.key===this.options.multiDragKey&&(this.multiDragKeyDown=!0)},_checkKeyUp:function(e){e.key===this.options.multiDragKey&&(this.multiDragKeyDown=!1)}},uo(e,{pluginName:`multiDrag`,utils:{select:function(e){var t=e.parentNode[ys];!t||!t.options.multiDrag||~Dc.indexOf(e)||(Ac&&Ac!==t&&(Ac.multiDrag._deselectMultiDrag(),Ac=t),Eo(e,t.options.selectedClass,!0),Dc.push(e))},deselect:function(e){var t=e.parentNode[ys],n=Dc.indexOf(e);!t||!t.options.multiDrag||!~n||(Eo(e,t.options.selectedClass,!1),Dc.splice(n,1))}},eventProperties:function(){var e=this,t=[],n=[];return Dc.forEach(function(r){t.push({multiDragElement:r,index:r.sortableIndex});var i=Mc&&r!==Pc?-1:Mc?Fo(r,`:not(.`+e.options.selectedClass+`)`):Fo(r);n.push({multiDragElement:r,index:i})}),{items:mo(Dc),clones:[].concat(Oc),oldIndicies:t,newIndicies:n}},optionListeners:{multiDragKey:function(e){return e=e.toLowerCase(),e===`ctrl`?e=`Control`:e.length>1&&(e=e.charAt(0).toUpperCase()+e.substr(1)),e}}})}function Gee(e,t){Dc.forEach(function(n,r){var i=t.children[n.sortableIndex+(e?Number(r):0)];i?t.insertBefore(n,i):t.appendChild(n)})}function ss(e,t){Oc.forEach(function(n,r){var i=t.children[n.sortableIndex+(e?Number(r):0)];i?t.insertBefore(n,i):t.appendChild(n)})}function cs(){Dc.forEach(function(e){e!==Pc&&e.parentNode&&e.parentNode.removeChild(e)})}var ls,us,ds,fs,ps,ms,hs,gs,_s,vs,ys,bs,xs,Ss,Cs,ws,R,Ts,Es,Ds,Os,ks,As,js,Ms,Ns,Ps,Fs,Is,Ls,Rs,zs,Bs,Vs,Hs,Us,Ws,Gs,Ks,qs,Js,Ys,Xs,Zs,Qs,$s,ec,tc,nc,rc,ic,ac,oc,sc,cc,lc,uc,dc,fc,pc,mc,hc,gc,_c,vc,yc,bc,xc,Sc,Cc,wc,Tc,Ec,Dc,Oc,kc,Ac,jc,Mc,Nc,Pc,Fc,Ic,Lc=ve((()=>{ls=`1.14.0`,us=bo(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),ds=bo(/Edge/i),fs=bo(/firefox/i),ps=bo(/safari/i)&&!bo(/chrome/i)&&!bo(/android/i),ms=bo(/iP(ad|od|hone)/i),hs=bo(/chrome/i)&&bo(/android/i),gs={capture:!1,passive:!1},_s=/\s+/g,ys=`Sortable`+new Date().getTime(),bs=[],xs={initializeByDefault:!0},Ss={mount:function(e){for(var t in xs)xs.hasOwnProperty(t)&&!(t in e)&&(e[t]=xs[t]);bs.forEach(function(t){if(t.pluginName===e.pluginName)throw`Sortable: Cannot mount plugin ${e.pluginName} more than once`}),bs.push(e)},pluginEvent:function(e,t,n){var r=this;this.eventCanceled=!1,n.cancel=function(){r.eventCanceled=!0};var i=e+`Global`;bs.forEach(function(r){t[r.pluginName]&&(t[r.pluginName][i]&&t[r.pluginName][i](co({sortable:t},n)),t.options[r.pluginName]&&t[r.pluginName][e]&&t[r.pluginName][e](co({sortable:t},n)))})},initializePlugins:function(e,t,n,r){for(var i in bs.forEach(function(r){var i=r.pluginName;if(!(!e.options[i]&&!r.initializeByDefault)){var a=new r(e,t,e.options);a.sortable=e,a.options=e.options,e[i]=a,uo(n,a.defaults)}}),e.options)if(e.options.hasOwnProperty(i)){var a=this.modifyOption(e,i,e.options[i]);a!==void 0&&(e.options[i]=a)}},getEventProperties:function(e,t){var n={};return bs.forEach(function(r){typeof r.eventProperties==`function`&&uo(n,r.eventProperties.call(t[r.pluginName],e))}),n},modifyOption:function(e,t,n){var r;return bs.forEach(function(i){e[i.pluginName]&&i.optionListeners&&typeof i.optionListeners[t]==`function`&&(r=i.optionListeners[t].call(e[i.pluginName],n))}),r}},Cs=[`evt`],ws=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.evt,i=po(n,Cs);Ss.pluginEvent.bind(Ko)(e,t,co({dragEl:R,parentEl:Ts,ghostEl:Es,rootEl:Ds,nextEl:Os,lastDownEl:ks,cloneEl:As,cloneHidden:js,dragStarted:qs,putSortable:Ls,activeSortable:Ko.active,originalEvent:r,oldIndex:Ms,oldDraggableIndex:Ps,newIndex:Ns,newDraggableIndex:Fs,hideGhostForTarget:fc,unhideGhostForTarget:pc,cloneNowHidden:function(){js=!0},cloneNowShown:function(){js=!1},dispatchSortableEvent:function(e){Go({sortable:t,name:e,originalEvent:r})}},i))},Rs=!1,zs=!1,Bs=[],Xs=!1,Zs=!1,ec=[],tc=!1,nc=[],rc=typeof document<`u`,ic=ms,ac=ds||us?`cssFloat`:`float`,oc=rc&&!hs&&!ms&&`draggable`in document.createElement(`div`),sc=function(){if(rc){if(us)return!1;var e=document.createElement(`x`);return e.style.cssText=`pointer-events:auto`,e.style.pointerEvents===`auto`}}(),cc=function(e,t){var n=Do(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),i=No(e,0,t),a=No(e,1,t),o=i&&Do(i),s=a&&Do(a),c=o&&parseInt(o.marginLeft)+parseInt(o.marginRight)+jo(i).width,l=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+jo(a).width;if(n.display===`flex`)return n.flexDirection===`column`||n.flexDirection===`column-reverse`?`vertical`:`horizontal`;if(n.display===`grid`)return n.gridTemplateColumns.split(` `).length<=1?`vertical`:`horizontal`;if(i&&o.float&&o.float!==`none`){var u=o.float===`left`?`left`:`right`;return a&&(s.clear===`both`||s.clear===u)?`vertical`:`horizontal`}return i&&(o.display===`block`||o.display===`flex`||o.display===`table`||o.display===`grid`||c>=r&&n[ac]===`none`||a&&n[ac]===`none`&&c+l>r)?`vertical`:`horizontal`},lc=function(e,t,n){var r=n?e.left:e.top,i=n?e.right:e.bottom,a=n?e.width:e.height,o=n?t.left:t.top,s=n?t.right:t.bottom,c=n?t.width:t.height;return r===o||i===s||r+a/2===o+c/2},uc=function(e,t){var n;return Bs.some(function(r){var i=r[ys].options.emptyInsertThreshold;if(!(!i||Po(r))){var a=jo(r),o=e>=a.left-i&&e<=a.right+i,s=t>=a.top-i&&t<=a.bottom+i;if(o&&s)return n=r}}),n},dc=function(e){function t(e,n){return function(r,i,a,o){var s=r.options.group.name&&i.options.group.name&&r.options.group.name===i.options.group.name;if(e==null&&(n||s))return!0;if(e==null||e===!1)return!1;if(n&&e===`clone`)return e;if(typeof e==`function`)return t(e(r,i,a,o),n)(r,i,a,o);var c=(n?r:i).options.group.name;return e===!0||typeof e==`string`&&e===c||e.join&&e.indexOf(c)>-1}}var n={},r=e.group;(!r||lo(r)!=`object`)&&(r={name:r}),n.name=r.name,n.checkPull=t(r.pull,!0),n.checkPut=t(r.put),n.revertClone=r.revertClone,e.group=n},fc=function(){!sc&&Es&&Do(Es,`display`,`none`)},pc=function(){!sc&&Es&&Do(Es,`display`,``)},rc&&document.addEventListener(`click`,function(e){if(zs)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),zs=!1,!1},!0),mc=function(e){if(R){e=e.touches?e.touches[0]:e;var t=uc(e.clientX,e.clientY);if(t){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[ys]._onDragOver(n)}}},hc=function(e){R&&R.parentNode[ys]._isOutsideThisEl(e.target)},Ko.prototype={constructor:Ko,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(Js=null)},_getDirection:function(e,t){return typeof this.options.direction==`function`?this.options.direction.call(this,e,t,R):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,r=this.options,i=r.preventOnFilter,a=e.type,o=e.touches&&e.touches[0]||e.pointerType&&e.pointerType===`touch`&&e,s=(o||e).target,c=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||s,l=r.filter;if(Bee(n),!R&&!(/mousedown|pointerdown/.test(a)&&e.button!==0||r.disabled)&&!c.isContentEditable&&!(!this.nativeDraggable&&ps&&s&&s.tagName.toUpperCase()===`SELECT`)&&(s=To(s,r.draggable,n,!1),!(s&&s.animated)&&ks!==s)){if(Ms=Fo(s),Ps=Fo(s,r.draggable),typeof l==`function`){if(l.call(this,e,s,this)){Go({sortable:t,rootEl:c,name:`filter`,targetEl:s,toEl:n,fromEl:n}),ws(`filter`,t,{evt:e}),i&&e.cancelable&&e.preventDefault();return}}else if(l&&(l=l.split(`,`).some(function(r){if(r=To(c,r.trim(),n,!1),r)return Go({sortable:t,rootEl:r,name:`filter`,targetEl:s,fromEl:n,toEl:n}),ws(`filter`,t,{evt:e}),!0}),l)){i&&e.cancelable&&e.preventDefault();return}r.handle&&!To(c,r.handle,n,!1)||this._prepareDragStart(e,o,s)}}},_prepareDragStart:function(e,t,n){var r=this,i=r.el,a=r.options,o=i.ownerDocument,s;if(n&&!R&&n.parentNode===i){var c=jo(n);if(Ds=i,R=n,Ts=R.parentNode,Os=R.nextSibling,ks=n,Is=a.group,Ko.dragged=R,Vs={target:R,clientX:(t||e).clientX,clientY:(t||e).clientY},Gs=Vs.clientX-c.left,Ks=Vs.clientY-c.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,R.style[`will-change`]=`all`,s=function(){if(ws(`delayEnded`,r,{evt:e}),Ko.eventCanceled){r._onDrop();return}r._disableDelayedDragEvents(),!fs&&r.nativeDraggable&&(R.draggable=!0),r._triggerDragStart(e,t),Go({sortable:r,name:`choose`,originalEvent:e}),Eo(R,a.chosenClass,!0)},a.ignore.split(`,`).forEach(function(e){ko(R,e.trim(),Yo)}),xo(o,`dragover`,mc),xo(o,`mousemove`,mc),xo(o,`touchmove`,mc),xo(o,`mouseup`,r._onDrop),xo(o,`touchend`,r._onDrop),xo(o,`touchcancel`,r._onDrop),fs&&this.nativeDraggable&&(this.options.touchStartThreshold=4,R.draggable=!0),ws(`delayStart`,this,{evt:e}),a.delay&&(!a.delayOnTouchOnly||t)&&(!this.nativeDraggable||!(ds||us))){if(Ko.eventCanceled){this._onDrop();return}xo(o,`mouseup`,r._disableDelayedDrag),xo(o,`touchend`,r._disableDelayedDrag),xo(o,`touchcancel`,r._disableDelayedDrag),xo(o,`mousemove`,r._delayedDragTouchMoveHandler),xo(o,`touchmove`,r._delayedDragTouchMoveHandler),a.supportPointer&&xo(o,`pointermove`,r._delayedDragTouchMoveHandler),r._dragStartTimer=setTimeout(s,a.delay)}else s()}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){R&&Yo(R),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;So(e,`mouseup`,this._disableDelayedDrag),So(e,`touchend`,this._disableDelayedDrag),So(e,`touchcancel`,this._disableDelayedDrag),So(e,`mousemove`,this._delayedDragTouchMoveHandler),So(e,`touchmove`,this._delayedDragTouchMoveHandler),So(e,`pointermove`,this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t||=e.pointerType==`touch`&&e,!this.nativeDraggable||t?this.options.supportPointer?xo(document,`pointermove`,this._onTouchMove):t?xo(document,`touchmove`,this._onTouchMove):xo(document,`mousemove`,this._onTouchMove):(xo(R,`dragend`,this),xo(Ds,`dragstart`,this._onDragStart));try{document.selection?ts(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,t){if(Rs=!1,Ds&&R){ws(`dragStarted`,this,{evt:t}),this.nativeDraggable&&xo(document,`dragover`,hc);var n=this.options;!e&&Eo(R,n.dragClass,!1),Eo(R,n.ghostClass,!0),Ko.active=this,e&&this._appendGhost(),Go({sortable:this,name:`start`,originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(Hs){this._lastX=Hs.clientX,this._lastY=Hs.clientY,fc();for(var e=document.elementFromPoint(Hs.clientX,Hs.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(Hs.clientX,Hs.clientY),e!==t);)t=e;if(R.parentNode[ys]._isOutsideThisEl(e),t)do{if(t[ys]){var n=void 0;if(n=t[ys]._onDragOver({clientX:Hs.clientX,clientY:Hs.clientY,target:e,rootEl:t}),n&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);pc()}},_onTouchMove:function(e){if(Vs){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,i=e.touches?e.touches[0]:e,a=Es&&Oo(Es,!0),o=Es&&a&&a.a,s=Es&&a&&a.d,c=ic&&$s&&Io($s),l=(i.clientX-Vs.clientX+r.x)/(o||1)+(c?c[0]-ec[0]:0)/(o||1),u=(i.clientY-Vs.clientY+r.y)/(s||1)+(c?c[1]-ec[1]:0)/(s||1);if(!Ko.active&&!Rs){if(n&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))=0&&(Go({sortable:this,name:`update`,toEl:Ts,originalEvent:e}),Go({sortable:this,name:`sort`,toEl:Ts,originalEvent:e})):(Ns>=0&&(Go({rootEl:Ts,name:`add`,toEl:Ts,fromEl:Ds,originalEvent:e}),Go({sortable:this,name:`remove`,toEl:Ts,originalEvent:e}),Go({rootEl:Ts,name:`sort`,toEl:Ts,fromEl:Ds,originalEvent:e}),Go({sortable:this,name:`sort`,toEl:Ts,originalEvent:e})),Ls&&Ls.save()),Ko.active&&((Ns==null||Ns===-1)&&(Ns=Ms,Fs=Ps),Go({sortable:this,name:`end`,toEl:Ts,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){ws(`nulling`,this),Ds=R=Ts=Es=Os=As=ks=js=Vs=Hs=qs=Ns=Fs=Ms=Ps=Js=Ys=Ls=Is=Ko.dragged=Ko.ghost=Ko.clone=Ko.active=null,nc.forEach(function(e){e.checked=!0}),nc.length=Us=Ws=0},handleEvent:function(e){switch(e.type){case`drop`:case`dragend`:this._onDrop(e);break;case`dragenter`:case`dragover`:R&&(this._onDragOver(e),qo(e));break;case`selectstart`:e.preventDefault();break}},toArray:function(){for(var e=[],t,n=this.el.children,r=0,i=n.length,a=this.options;r{(function(n,r){typeof e==`object`&&typeof t==`object`?t.exports=r(ao(),(Lc(),ce(oo))):typeof define==`function`&&define.amd?define([,`sortablejs`],r):typeof e==`object`?e.vuedraggable=r(ao(),(Lc(),ce(oo))):n.vuedraggable=r(n.Vue,n.Sortable)})(typeof self<`u`?self:e,function(e,t){return(function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){typeof Symbol<`u`&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:`Module`}),Object.defineProperty(e,`__esModule`,{value:!0})},n.t=function(e,t){if(t&1&&(e=n(e)),t&8||t&4&&typeof e==`object`&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,`default`,{enumerable:!0,value:e}),t&2&&typeof e!=`string`)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,`a`,t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=``,n(n.s=`fb15`)})({"00ee":(function(e,t,n){var r=n(`b622`)(`toStringTag`),i={};i[r]=`z`,e.exports=String(i)===`[object z]`}),"0366":(function(e,t,n){var r=n(`1c0b`);e.exports=function(e,t,n){if(r(e),t===void 0)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}}),"057f":(function(e,t,n){var r=n(`fc6a`),i=n(`241c`).f,a={}.toString,o=typeof window==`object`&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){try{return i(e)}catch{return o.slice()}};e.exports.f=function(e){return o&&a.call(e)==`[object Window]`?s(e):i(r(e))}}),"06cf":(function(e,t,n){var r=n(`83ab`),i=n(`d1e7`),a=n(`5c6c`),o=n(`fc6a`),s=n(`c04e`),c=n(`5135`),l=n(`0cfb`),u=Object.getOwnPropertyDescriptor;t.f=r?u:function(e,t){if(e=o(e),t=s(t,!0),l)try{return u(e,t)}catch{}if(c(e,t))return a(!i.f.call(e,t),e[t])}}),"0cfb":(function(e,t,n){var r=n(`83ab`),i=n(`d039`),a=n(`cc12`);e.exports=!r&&!i(function(){return Object.defineProperty(a(`div`),`a`,{get:function(){return 7}}).a!=7})}),"13d5":(function(e,t,n){var r=n(`23e7`),i=n(`d58f`).left,a=n(`a640`),o=n(`ae40`),s=a(`reduce`),c=o(`reduce`,{1:0});r({target:`Array`,proto:!0,forced:!s||!c},{reduce:function(e){return i(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})}),"14c3":(function(e,t,n){var r=n(`c6b6`),i=n(`9263`);e.exports=function(e,t){var n=e.exec;if(typeof n==`function`){var a=n.call(e,t);if(typeof a!=`object`)throw TypeError(`RegExp exec method returned something other than an Object or null`);return a}if(r(e)!==`RegExp`)throw TypeError(`RegExp#exec called on incompatible receiver`);return i.call(e,t)}}),"159b":(function(e,t,n){var r=n(`da84`),i=n(`fdbc`),a=n(`17c2`),o=n(`9112`);for(var s in i){var c=r[s],l=c&&c.prototype;if(l&&l.forEach!==a)try{o(l,`forEach`,a)}catch{l.forEach=a}}}),"17c2":(function(e,t,n){var r=n(`b727`).forEach,i=n(`a640`),a=n(`ae40`),o=i(`forEach`),s=a(`forEach`);e.exports=!o||!s?function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}:[].forEach}),"1be4":(function(e,t,n){e.exports=n(`d066`)(`document`,`documentElement`)}),"1c0b":(function(e,t){e.exports=function(e){if(typeof e!=`function`)throw TypeError(String(e)+` is not a function`);return e}}),"1c7e":(function(e,t,n){var r=n(`b622`)(`iterator`),i=!1;try{var a=0,o={next:function(){return{done:!!a++}},return:function(){i=!0}};o[r]=function(){return this},Array.from(o,function(){throw 2})}catch{}e.exports=function(e,t){if(!t&&!i)return!1;var n=!1;try{var a={};a[r]=function(){return{next:function(){return{done:n=!0}}}},e(a)}catch{}return n}}),"1d80":(function(e,t){e.exports=function(e){if(e==null)throw TypeError(`Can't call method on `+e);return e}}),"1dde":(function(e,t,n){var r=n(`d039`),i=n(`b622`),a=n(`2d00`),o=i(`species`);e.exports=function(e){return a>=51||!r(function(){var t=[],n=t.constructor={};return n[o]=function(){return{foo:1}},t[e](Boolean).foo!==1})}}),"23cb":(function(e,t,n){var r=n(`a691`),i=Math.max,a=Math.min;e.exports=function(e,t){var n=r(e);return n<0?i(n+t,0):a(n,t)}}),"23e7":(function(e,t,n){var r=n(`da84`),i=n(`06cf`).f,a=n(`9112`),o=n(`6eeb`),s=n(`ce4e`),c=n(`e893`),l=n(`94ca`);e.exports=function(e,t){var n=e.target,u=e.global,d=e.stat,f,p=u?r:d?r[n]||s(n,{}):(r[n]||{}).prototype,m,h,g,_;if(p)for(m in t){if(g=t[m],e.noTargetGet?(_=i(p,m),h=_&&_.value):h=p[m],f=l(u?m:n+(d?`.`:`#`)+m,e.forced),!f&&h!==void 0){if(typeof g==typeof h)continue;c(g,h)}(e.sham||h&&h.sham)&&a(g,`sham`,!0),o(p,m,g,e)}}}),"241c":(function(e,t,n){var r=n(`ca84`),i=n(`7839`).concat(`length`,`prototype`);t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}}),"25f0":(function(e,t,n){var r=n(`6eeb`),i=n(`825a`),a=n(`d039`),o=n(`ad6d`),s=`toString`,c=RegExp.prototype,l=c[s],u=a(function(){return l.call({source:`a`,flags:`b`})!=`/a/b`}),d=l.name!=s;(u||d)&&r(RegExp.prototype,s,function(){var e=i(this),t=String(e.source),n=e.flags,r=String(n===void 0&&e instanceof RegExp&&!(`flags`in c)?o.call(e):n);return`/`+t+`/`+r},{unsafe:!0})}),"2ca0":(function(e,t,n){var r=n(`23e7`),i=n(`06cf`).f,a=n(`50c4`),o=n(`5a34`),s=n(`1d80`),c=n(`ab13`),l=n(`c430`),u=``.startsWith,d=Math.min,f=c(`startsWith`);r({target:`String`,proto:!0,forced:!(!l&&!f&&function(){var e=i(String.prototype,`startsWith`);return e&&!e.writable}())&&!f},{startsWith:function(e){var t=String(s(this));o(e);var n=a(d(arguments.length>1?arguments[1]:void 0,t.length)),r=String(e);return u?u.call(t,r,n):t.slice(n,n+r.length)===r}})}),"2d00":(function(e,t,n){var r=n(`da84`),i=n(`342f`),a=r.process,o=a&&a.versions,s=o&&o.v8,c,l;s?(c=s.split(`.`),l=c[0]+c[1]):i&&(c=i.match(/Edge\/(\d+)/),(!c||c[1]>=74)&&(c=i.match(/Chrome\/(\d+)/),c&&(l=c[1]))),e.exports=l&&+l}),"342f":(function(e,t,n){e.exports=n(`d066`)(`navigator`,`userAgent`)||``}),"35a1":(function(e,t,n){var r=n(`f5df`),i=n(`3f8c`),a=n(`b622`)(`iterator`);e.exports=function(e){if(e!=null)return e[a]||e[`@@iterator`]||i[r(e)]}}),"37e8":(function(e,t,n){var r=n(`83ab`),i=n(`9bf2`),a=n(`825a`),o=n(`df75`);e.exports=r?Object.defineProperties:function(e,t){a(e);for(var n=o(t),r=n.length,s=0,c;r>s;)i.f(e,c=n[s++],t[c]);return e}}),"3bbe":(function(e,t,n){var r=n(`861d`);e.exports=function(e){if(!r(e)&&e!==null)throw TypeError(`Can't set `+String(e)+` as a prototype`);return e}}),"3ca3":(function(e,t,n){var r=n(`6547`).charAt,i=n(`69f3`),a=n(`7dd0`),o=`String Iterator`,s=i.set,c=i.getterFor(o);a(String,`String`,function(e){s(this,{type:o,string:String(e),index:0})},function(){var e=c(this),t=e.string,n=e.index,i;return n>=t.length?{value:void 0,done:!0}:(i=r(t,n),e.index+=i.length,{value:i,done:!1})})}),"3f8c":(function(e,t){e.exports={}}),4160:(function(e,t,n){var r=n(`23e7`),i=n(`17c2`);r({target:`Array`,proto:!0,forced:[].forEach!=i},{forEach:i})}),"428f":(function(e,t,n){e.exports=n(`da84`)}),"44ad":(function(e,t,n){var r=n(`d039`),i=n(`c6b6`),a=``.split;e.exports=r(function(){return!Object(`z`).propertyIsEnumerable(0)})?function(e){return i(e)==`String`?a.call(e,``):Object(e)}:Object}),"44d2":(function(e,t,n){var r=n(`b622`),i=n(`7c73`),a=n(`9bf2`),o=r(`unscopables`),s=Array.prototype;s[o]??a.f(s,o,{configurable:!0,value:i(null)}),e.exports=function(e){s[o][e]=!0}}),"44e7":(function(e,t,n){var r=n(`861d`),i=n(`c6b6`),a=n(`b622`)(`match`);e.exports=function(e){var t;return r(e)&&((t=e[a])===void 0?i(e)==`RegExp`:!!t)}}),4930:(function(e,t,n){var r=n(`d039`);e.exports=!!Object.getOwnPropertySymbols&&!r(function(){return!String(Symbol())})}),"4d64":(function(e,t,n){var r=n(`fc6a`),i=n(`50c4`),a=n(`23cb`),o=function(e){return function(t,n,o){var s=r(t),c=i(s.length),l=a(o,c),u;if(e&&n!=n){for(;c>l;)if(u=s[l++],u!=u)return!0}else for(;c>l;l++)if((e||l in s)&&s[l]===n)return e||l||0;return!e&&-1}};e.exports={includes:o(!0),indexOf:o(!1)}}),"4de4":(function(e,t,n){var r=n(`23e7`),i=n(`b727`).filter,a=n(`1dde`),o=n(`ae40`),s=a(`filter`),c=o(`filter`);r({target:`Array`,proto:!0,forced:!s||!c},{filter:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})}),"4df4":(function(e,t,n){var r=n(`0366`),i=n(`7b0b`),a=n(`9bdd`),o=n(`e95a`),s=n(`50c4`),c=n(`8418`),l=n(`35a1`);e.exports=function(e){var t=i(e),n=typeof this==`function`?this:Array,u=arguments.length,d=u>1?arguments[1]:void 0,f=d!==void 0,p=l(t),m=0,h,g,_,v,y,b;if(f&&(d=r(d,u>2?arguments[2]:void 0,2)),p!=null&&!(n==Array&&o(p)))for(v=p.call(t),y=v.next,g=new n;!(_=y.call(v)).done;m++)b=f?a(v,d,[_.value,m],!0):_.value,c(g,m,b);else for(h=s(t.length),g=new n(h);h>m;m++)b=f?d(t[m],m):t[m],c(g,m,b);return g.length=m,g}}),"4fad":(function(e,t,n){var r=n(`23e7`),i=n(`6f53`).entries;r({target:`Object`,stat:!0},{entries:function(e){return i(e)}})}),"50c4":(function(e,t,n){var r=n(`a691`),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}}),5135:(function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}}),5319:(function(e,t,n){var r=n(`d784`),i=n(`825a`),a=n(`7b0b`),o=n(`50c4`),s=n(`a691`),c=n(`1d80`),l=n(`8aa5`),u=n(`14c3`),d=Math.max,f=Math.min,p=Math.floor,m=/\$([$&'`]|\d\d?|<[^>]*>)/g,h=/\$([$&'`]|\d\d?)/g,g=function(e){return e===void 0?e:String(e)};r(`replace`,2,function(e,t,n,r){var _=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,v=r.REPLACE_KEEPS_$0,y=_?`$`:`$0`;return[function(n,r){var i=c(this),a=n?.[e];return a===void 0?t.call(String(i),n,r):a.call(n,i,r)},function(e,r){if(!_&&v||typeof r==`string`&&r.indexOf(y)===-1){var a=n(t,e,this,r);if(a.done)return a.value}var c=i(e),p=String(this),m=typeof r==`function`;m||(r=String(r));var h=c.global;if(h){var x=c.unicode;c.lastIndex=0}for(var S=[];;){var C=u(c,p);if(C===null||(S.push(C),!h))break;String(C[0])===``&&(c.lastIndex=l(p,o(c.lastIndex),x))}for(var w=``,T=0,E=0;E=T&&(w+=p.slice(T,O)+te,T=O+D.length)}return w+p.slice(T)}];function b(e,n,r,i,o,s){var c=r+e.length,l=i.length,u=h;return o!==void 0&&(o=a(o),u=m),t.call(s,u,function(t,a){var s;switch(a.charAt(0)){case`$`:return`$`;case`&`:return e;case"`":return n.slice(0,r);case`'`:return n.slice(c);case`<`:s=o[a.slice(1,-1)];break;default:var u=+a;if(u===0)return t;if(u>l){var d=p(u/10);return d===0?t:d<=l?i[d-1]===void 0?a.charAt(1):i[d-1]+a.charAt(1):t}s=i[u-1]}return s===void 0?``:s})}})}),5692:(function(e,t,n){var r=n(`c430`),i=n(`c6cd`);(e.exports=function(e,t){return i[e]||(i[e]=t===void 0?{}:t)})(`versions`,[]).push({version:`3.6.5`,mode:r?`pure`:`global`,copyright:`© 2020 Denis Pushkarev (zloirock.ru)`})}),"56ef":(function(e,t,n){var r=n(`d066`),i=n(`241c`),a=n(`7418`),o=n(`825a`);e.exports=r(`Reflect`,`ownKeys`)||function(e){var t=i.f(o(e)),n=a.f;return n?t.concat(n(e)):t}}),"5a34":(function(e,t,n){var r=n(`44e7`);e.exports=function(e){if(r(e))throw TypeError(`The method doesn't accept regular expressions`);return e}}),"5c6c":(function(e,t){e.exports=function(e,t){return{enumerable:!(e&1),configurable:!(e&2),writable:!(e&4),value:t}}}),"5db7":(function(e,t,n){var r=n(`23e7`),i=n(`a2bf`),a=n(`7b0b`),o=n(`50c4`),s=n(`1c0b`),c=n(`65f0`);r({target:`Array`,proto:!0},{flatMap:function(e){var t=a(this),n=o(t.length),r;return s(e),r=c(t,0),r.length=i(r,t,t,n,0,1,e,arguments.length>1?arguments[1]:void 0),r}})}),6547:(function(e,t,n){var r=n(`a691`),i=n(`1d80`),a=function(e){return function(t,n){var a=String(i(t)),o=r(n),s=a.length,c,l;return o<0||o>=s?e?``:void 0:(c=a.charCodeAt(o),c<55296||c>56319||o+1===s||(l=a.charCodeAt(o+1))<56320||l>57343?e?a.charAt(o):c:e?a.slice(o,o+2):(c-55296<<10)+(l-56320)+65536)}};e.exports={codeAt:a(!1),charAt:a(!0)}}),"65f0":(function(e,t,n){var r=n(`861d`),i=n(`e8b5`),a=n(`b622`)(`species`);e.exports=function(e,t){var n;return i(e)&&(n=e.constructor,typeof n==`function`&&(n===Array||i(n.prototype))?n=void 0:r(n)&&(n=n[a],n===null&&(n=void 0))),new(n===void 0?Array:n)(t===0?0:t)}}),"69f3":(function(e,t,n){var r=n(`7f9a`),i=n(`da84`),a=n(`861d`),o=n(`9112`),s=n(`5135`),c=n(`f772`),l=n(`d012`),u=i.WeakMap,d,f,p,m=function(e){return p(e)?f(e):d(e,{})},h=function(e){return function(t){var n;if(!a(t)||(n=f(t)).type!==e)throw TypeError(`Incompatible receiver, `+e+` required`);return n}};if(r){var g=new u,_=g.get,v=g.has,y=g.set;d=function(e,t){return y.call(g,e,t),t},f=function(e){return _.call(g,e)||{}},p=function(e){return v.call(g,e)}}else{var b=c(`state`);l[b]=!0,d=function(e,t){return o(e,b,t),t},f=function(e){return s(e,b)?e[b]:{}},p=function(e){return s(e,b)}}e.exports={set:d,get:f,has:p,enforce:m,getterFor:h}}),"6eeb":(function(e,t,n){var r=n(`da84`),i=n(`9112`),a=n(`5135`),o=n(`ce4e`),s=n(`8925`),c=n(`69f3`),l=c.get,u=c.enforce,d=String(String).split(`String`);(e.exports=function(e,t,n,s){var c=s?!!s.unsafe:!1,l=s?!!s.enumerable:!1,f=s?!!s.noTargetGet:!1;if(typeof n==`function`&&(typeof t==`string`&&!a(n,`name`)&&i(n,`name`,t),u(n).source=d.join(typeof t==`string`?t:``)),e===r){l?e[t]=n:o(t,n);return}else c?!f&&e[t]&&(l=!0):delete e[t];l?e[t]=n:i(e,t,n)})(Function.prototype,`toString`,function(){return typeof this==`function`&&l(this).source||s(this)})}),"6f53":(function(e,t,n){var r=n(`83ab`),i=n(`df75`),a=n(`fc6a`),o=n(`d1e7`).f,s=function(e){return function(t){for(var n=a(t),s=i(n),c=s.length,l=0,u=[],d;c>l;)d=s[l++],(!r||o.call(n,d))&&u.push(e?[d,n[d]]:n[d]);return u}};e.exports={entries:s(!0),values:s(!1)}}),"73d9":(function(e,t,n){n(`44d2`)(`flatMap`)}),7418:(function(e,t){t.f=Object.getOwnPropertySymbols}),"746f":(function(e,t,n){var r=n(`428f`),i=n(`5135`),a=n(`e538`),o=n(`9bf2`).f;e.exports=function(e){var t=r.Symbol||={};i(t,e)||o(t,e,{value:a.f(e)})}}),7839:(function(e,t){e.exports=[`constructor`,`hasOwnProperty`,`isPrototypeOf`,`propertyIsEnumerable`,`toLocaleString`,`toString`,`valueOf`]}),"7b0b":(function(e,t,n){var r=n(`1d80`);e.exports=function(e){return Object(r(e))}}),"7c73":(function(e,t,n){var r=n(`825a`),i=n(`37e8`),a=n(`7839`),o=n(`d012`),s=n(`1be4`),c=n(`cc12`),l=n(`f772`),u=`>`,d=`<`,f=`prototype`,p=`script`,m=l(`IE_PROTO`),h=function(){},g=function(e){return d+p+u+e+d+`/`+p+u},_=function(e){e.write(g(``)),e.close();var t=e.parentWindow.Object;return e=null,t},v=function(){var e=c(`iframe`),t=`java`+p+`:`,n;return e.style.display=`none`,s.appendChild(e),e.src=String(t),n=e.contentWindow.document,n.open(),n.write(g(`document.F=Object`)),n.close(),n.F},y,b=function(){try{y=document.domain&&new ActiveXObject(`htmlfile`)}catch{}b=y?_(y):v();for(var e=a.length;e--;)delete b[f][a[e]];return b()};o[m]=!0,e.exports=Object.create||function(e,t){var n;return e===null?n=b():(h[f]=r(e),n=new h,h[f]=null,n[m]=e),t===void 0?n:i(n,t)}}),"7dd0":(function(e,t,n){var r=n(`23e7`),i=n(`9ed3`),a=n(`e163`),o=n(`d2bb`),s=n(`d44e`),c=n(`9112`),l=n(`6eeb`),u=n(`b622`),d=n(`c430`),f=n(`3f8c`),p=n(`ae93`),m=p.IteratorPrototype,h=p.BUGGY_SAFARI_ITERATORS,g=u(`iterator`),_=`keys`,v=`values`,y=`entries`,b=function(){return this};e.exports=function(e,t,n,u,p,x,S){i(n,t,u);var C=function(e){if(e===p&&O)return O;if(!h&&e in E)return E[e];switch(e){case _:return function(){return new n(this,e)};case v:return function(){return new n(this,e)};case y:return function(){return new n(this,e)}}return function(){return new n(this)}},w=t+` Iterator`,T=!1,E=e.prototype,D=E[g]||E[`@@iterator`]||p&&E[p],O=!h&&D||C(p),k=t==`Array`&&E.entries||D,ee,A,j;if(k&&(ee=a(k.call(new e)),m!==Object.prototype&&ee.next&&(!d&&a(ee)!==m&&(o?o(ee,m):typeof ee[g]!=`function`&&c(ee,g,b)),s(ee,w,!0,!0),d&&(f[w]=b))),p==v&&D&&D.name!==v&&(T=!0,O=function(){return D.call(this)}),(!d||S)&&E[g]!==O&&c(E,g,O),f[t]=O,p)if(A={values:C(v),keys:x?O:C(_),entries:C(y)},S)for(j in A)(h||T||!(j in E))&&l(E,j,A[j]);else r({target:t,proto:!0,forced:h||T},A);return A}}),"7f9a":(function(e,t,n){var r=n(`da84`),i=n(`8925`),a=r.WeakMap;e.exports=typeof a==`function`&&/native code/.test(i(a))}),"825a":(function(e,t,n){var r=n(`861d`);e.exports=function(e){if(!r(e))throw TypeError(String(e)+` is not an object`);return e}}),"83ab":(function(e,t,n){e.exports=!n(`d039`)(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})}),8418:(function(e,t,n){var r=n(`c04e`),i=n(`9bf2`),a=n(`5c6c`);e.exports=function(e,t,n){var o=r(t);o in e?i.f(e,o,a(0,n)):e[o]=n}}),"861d":(function(e,t){e.exports=function(e){return typeof e==`object`?e!==null:typeof e==`function`}}),8875:(function(e,t,n){var r,i,a;(function(n,o){i=[],r=o,a=typeof r==`function`?r.apply(t,i):r,a!==void 0&&(e.exports=a)})(typeof self<`u`?self:this,function(){function e(){var t=Object.getOwnPropertyDescriptor(document,`currentScript`);if(!t&&`currentScript`in document&&document.currentScript||t&&t.get!==e&&document.currentScript)return document.currentScript;try{throw Error()}catch(e){var n=/.*at [^(]*\((.*):(.+):(.+)\)$/gi.exec(e.stack)||/@([^@]*):(\d+):(\d+)\s*$/gi.exec(e.stack),r=n&&n[1]||!1,i=n&&n[2]||!1,a=document.location.href.replace(document.location.hash,``),o,s,c,l=document.getElementsByTagName(`script`);r===a&&(o=document.documentElement.outerHTML,s=RegExp(`(?:[^\\n]+?\\n){0,`+(i-2)+`}[^<]* + diff --git a/tests/Feature/AuthSmsControllerTest.php b/tests/Feature/AuthSmsControllerTest.php index 8194f88..5567533 100644 --- a/tests/Feature/AuthSmsControllerTest.php +++ b/tests/Feature/AuthSmsControllerTest.php @@ -545,6 +545,7 @@ class AuthSmsControllerTest extends TestCase $table->string('mobile')->unique(); $table->string('name')->nullable(); $table->string('email')->nullable(); + $table->string('company')->nullable(); $table->string('password')->nullable(); $table->timestamps(); }); diff --git a/tests/Feature/ChannelSignupIntegrationTest.php b/tests/Feature/ChannelSignupIntegrationTest.php index 06d36ba..061ee7f 100644 --- a/tests/Feature/ChannelSignupIntegrationTest.php +++ b/tests/Feature/ChannelSignupIntegrationTest.php @@ -165,6 +165,7 @@ class ChannelSignupIntegrationTest extends TestCase $this->assertSame('CHANNEL-A', $user->first_channel_code); $this->assertSame('CHANNEL-A', $user->last_channel_code); + $this->assertSame('测试企业', $user->company); $this->assertSame('CHANNEL-A', $application->signup_channel_code); $this->assertSame('draft', $application->status); $this->assertSame(1, DB::table('personal_access_tokens')->where('tokenable_id', $user->id)->count()); @@ -204,6 +205,7 @@ class ChannelSignupIntegrationTest extends TestCase $this->get('/channel-entry?'.http_build_query($legacyParameters)) ->assertOk() ->assertSee('/admin/c/main-event/apply', false); + $this->assertSame('旧渠道企业', User::query()->where('mobile', '13600136000')->value('company')); $legacyParameters['company_name'] = '旧渠道&企业'; $legacyParameters['hash'] = ChannelEntrySignature::make($legacyParameters, $legacyChannel->shared_secret); $this->assertChannelEntryError($legacyParameters, 'HASH_INVALID'); @@ -219,6 +221,7 @@ class ChannelSignupIntegrationTest extends TestCase $this->get('/channel-entry?'.http_build_query($emptyOptional)) ->assertOk() ->assertSee('/admin/c/main-event/apply', false); + $this->assertNull(User::query()->where('mobile', '13900139000')->value('company')); $forbiddenControls = $this->signed($channelA, ['mobile' => '13700137000']); $forbiddenControls['competition_id'] = '999999'; @@ -255,15 +258,20 @@ class ChannelSignupIntegrationTest extends TestCase 'intro' => '保留简介', ])->save(); - $this->get('/channel-entry?'.http_build_query($this->signed($channelB, ['state' => 'state-B']))) + $this->get('/channel-entry?'.http_build_query($this->signed($channelB, [ + 'company_name' => '新渠道企业', + 'state' => 'state-B', + ]))) ->assertOk(); $user->refresh(); $application->refresh(); $this->assertSame('CHANNEL-A', $user->first_channel_code); $this->assertSame('CHANNEL-B', $user->last_channel_code); + $this->assertSame('新渠道企业', $user->company); $this->assertSame('CHANNEL-B', $application->signup_channel_code); $this->assertSame('state-B', $application->signup_channel_state); + $this->assertSame('保留企业', $application->company_name); $this->assertSame('保留项目', $application->project_name); $logs = file_get_contents($this->logPath) ?: ''; @@ -628,6 +636,7 @@ class ChannelSignupIntegrationTest extends TestCase $table->string('mobile')->unique(); $table->string('name')->nullable(); $table->string('email')->nullable()->unique(); + $table->string('company')->nullable(); $table->timestamp('email_verified_at')->nullable(); $table->string('password')->nullable(); $table->rememberToken();