no message
Showing
42 changed files
with
478 additions
and
230 deletions
public/img/logoArr.png
0 → 100644
16 KB
| ... | @@ -148,7 +148,7 @@ li.el-select-dropdown__item { | ... | @@ -148,7 +148,7 @@ li.el-select-dropdown__item { |
| 148 | } | 148 | } |
| 149 | 149 | ||
| 150 | .el-sub-menu .el-sub-menu__title { | 150 | .el-sub-menu .el-sub-menu__title { |
| 151 | font-size: 20px;color: #000; | 151 | font-size: 18px;color: #000; |
| 152 | } | 152 | } |
| 153 | 153 | ||
| 154 | .el-menu--horizontal > .el-sub-menu.is-active .el-sub-menu__title { | 154 | .el-menu--horizontal > .el-sub-menu.is-active .el-sub-menu__title { | ... | ... |
| ... | @@ -599,3 +599,10 @@ export function upReceipt(data) { | ... | @@ -599,3 +599,10 @@ export function upReceipt(data) { |
| 599 | data:data | 599 | data:data |
| 600 | }) | 600 | }) |
| 601 | } | 601 | } |
| 602 | export function signgetSignInfoConflict(query) { | ||
| 603 | return request({ | ||
| 604 | url: `/league/sign/getSignInfoConflict`, | ||
| 605 | method: 'get', | ||
| 606 | params:query | ||
| 607 | }) | ||
| 608 | } | ... | ... |
| ... | @@ -74,11 +74,15 @@ div:focus { | ... | @@ -74,11 +74,15 @@ div:focus { |
| 74 | .pl-5 { | 74 | .pl-5 { |
| 75 | padding-left: 5px; | 75 | padding-left: 5px; |
| 76 | } | 76 | } |
| 77 | .pl-15 { | ||
| 78 | padding-left: 15px; | ||
| 79 | } | ||
| 77 | .mr5{margin-right: 5px;} | 80 | .mr5{margin-right: 5px;} |
| 78 | .block { | 81 | .block { |
| 79 | display: block; | 82 | display: block; |
| 80 | } | 83 | } |
| 81 | 84 | .text-right{text-align: right; | |
| 85 | } | ||
| 82 | .pointer { | 86 | .pointer { |
| 83 | cursor: pointer; | 87 | cursor: pointer; |
| 84 | } | 88 | } | ... | ... |
| ... | @@ -61,6 +61,7 @@ | ... | @@ -61,6 +61,7 @@ |
| 61 | import { getToken } from '@/utils/auth' | 61 | import { getToken } from '@/utils/auth' |
| 62 | import _ from 'lodash' | 62 | import _ from 'lodash' |
| 63 | import { computed } from 'vue' | 63 | import { computed } from 'vue' |
| 64 | import cache from "@/plugins/cache"; | ||
| 64 | 65 | ||
| 65 | const props = defineProps({ | 66 | const props = defineProps({ |
| 66 | modelValue: [String, Object, Array], | 67 | modelValue: [String, Object, Array], |
| ... | @@ -114,7 +115,11 @@ const fileOriginalName = ref('') | ... | @@ -114,7 +115,11 @@ const fileOriginalName = ref('') |
| 114 | const uploadList = ref([]) | 115 | const uploadList = ref([]) |
| 115 | // const baseUrl = import.meta.env.VITE_APP_BASE_API; | 116 | // const baseUrl = import.meta.env.VITE_APP_BASE_API; |
| 116 | const uploadFileUrl = ref(import.meta.env.VITE_APP_BASE_API + props.action) // 上传文件服务器地址 | 117 | const uploadFileUrl = ref(import.meta.env.VITE_APP_BASE_API + props.action) // 上传文件服务器地址 |
| 117 | const headers = ref({ Authorization: 'Bearer ' + getToken() }) | 118 | const language = cache.local.get('language') || 0 |
| 119 | const headers = ref({ | ||
| 120 | Authorization: 'Bearer ' + getToken(), | ||
| 121 | ['Content-Language'] : language==0? 'zh_CN':'en_US' , | ||
| 122 | }) | ||
| 118 | const fileList = ref([]) | 123 | const fileList = ref([]) |
| 119 | const showTip = computed( | 124 | const showTip = computed( |
| 120 | () => props.isShowTip && (props.fileType || props.fileSize) | 125 | () => props.isShowTip && (props.fileType || props.fileSize) | ... | ... |
| ... | @@ -5,7 +5,7 @@ | ... | @@ -5,7 +5,7 @@ |
| 5 | <el-col :lg="12" :md="12" :xs="24"> | 5 | <el-col :lg="12" :md="12" :xs="24"> |
| 6 | <ul> | 6 | <ul> |
| 7 | <li> | 7 | <li> |
| 8 | <router-link to="/about">亚洲体育舞蹈节版权所有</router-link> | 8 | <router-link to="/about"></router-link> |
| 9 | </li> | 9 | </li> |
| 10 | <li> | 10 | <li> |
| 11 | <a target="_blank" href="https://beian.miit.gov.cn/">ICP备案号:苏ICP备2023054420号-2</a> | 11 | <a target="_blank" href="https://beian.miit.gov.cn/">ICP备案号:苏ICP备2023054420号-2</a> | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div class="topNav"> | 2 | <div class="topNav"> |
| 3 | <router-link to="/"> | 3 | <router-link to="/"> |
| 4 | <img class="logo" src="@/assets/v1/nav_logo.png"> | 4 | <!-- <img class="logo" src="@/assets/v1/nav_logo.png">--> |
| 5 | <img class="logo" src="/img/logoArr.png"> | ||
| 5 | </router-link> | 6 | </router-link> |
| 6 | 7 | ||
| 7 | <div class="home-menu forPc" style="margin: 0 20px"> | 8 | <div class="home-menu forPc" style="margin: 0 20px"> |
| 8 | <el-menu | 9 | <el-menu v-if="language==0" |
| 10 | router :default-active="activeIndex" :mode="mode" :ellipsis="true" | ||
| 11 | popper-effect="dark" @select="handleSelect" | ||
| 12 | > | ||
| 13 | <el-menu-item index="/">{{ language==0?'首页':'HOME' }}</el-menu-item> | ||
| 14 | <el-menu-item index="/news">{{ language==0?'新闻资讯':'NEWS' }}</el-menu-item> | ||
| 15 | <el-menu-item index="/notice">{{ language==0?'通知公告':'NOTICEBOARD' }}</el-menu-item> | ||
| 16 | <el-menu-item index="/match/list/0">{{ language==0?'大赛报名':'SIGN UP' }}</el-menu-item> | ||
| 17 | <el-menu-item index="/saiC">{{ language==0?'赛程安排':'COMPETITIONS' }}</el-menu-item> | ||
| 18 | <el-menu-item index="/meta">{{ language==0?'媒体中心':'MEDIA' }}</el-menu-item> | ||
| 19 | <el-menu-item index="/guide">{{ language==0?'参赛指南':'GUIDELINE' }}</el-menu-item> | ||
| 20 | <el-sub-menu index="/about"> | ||
| 21 | <template #title>{{ language==0?'关于我们':'CONTACT & MORE' }}</template> | ||
| 22 | <el-menu-item index="/about/wuDao">{{ language==0?'舞蹈节':'About Us' }}</el-menu-item> | ||
| 23 | <el-menu-item index="/about/regulations" v-if="language==1">Rules & Regulations</el-menu-item> | ||
| 24 | <el-menu-item index="/about/culture">{{ language==0?'地方文化':'Culture' }}</el-menu-item> | ||
| 25 | </el-sub-menu> | ||
| 26 | </el-menu> | ||
| 27 | <el-menu v-else class="enMenu" | ||
| 9 | router :default-active="activeIndex" :mode="mode" :ellipsis="true" | 28 | router :default-active="activeIndex" :mode="mode" :ellipsis="true" |
| 10 | popper-effect="dark" @select="handleSelect" | 29 | popper-effect="dark" @select="handleSelect" |
| 11 | > | 30 | > |
| ... | @@ -220,6 +239,9 @@ function getCode() { | ... | @@ -220,6 +239,9 @@ function getCode() { |
| 220 | </script> | 239 | </script> |
| 221 | 240 | ||
| 222 | <style scoped lang="scss"> | 241 | <style scoped lang="scss"> |
| 242 | .home-menu .enMenu{ | ||
| 243 | //.el-menu-item{margin: 0 3px!important;} | ||
| 244 | } | ||
| 223 | .loginBtn {color: #fff;margin-right: 15px;border: none; | 245 | .loginBtn {color: #fff;margin-right: 15px;border: none; |
| 224 | background: linear-gradient(-90deg, #8623FC, #453DEA);box-shadow:0 0 10px #fff; | 246 | background: linear-gradient(-90deg, #8623FC, #453DEA);box-shadow:0 0 10px #fff; |
| 225 | &:active { | 247 | &:active { |
| ... | @@ -296,7 +318,7 @@ function getCode() { | ... | @@ -296,7 +318,7 @@ function getCode() { |
| 296 | :deep(.el-input){height: 100%} | 318 | :deep(.el-input){height: 100%} |
| 297 | :deep(.el-form-item){height: 40px;} | 319 | :deep(.el-form-item){height: 40px;} |
| 298 | .home-menu .el-menu--horizontal > .el-menu-item{margin: 0 5px; font-size: 18px;} | 320 | .home-menu .el-menu--horizontal > .el-menu-item{margin: 0 5px; font-size: 18px;} |
| 299 | .home-menu .el-sub-menu .el-sub-menu__title{font-size: 18px;} | 321 | .home-menu .el-sub-menu{font-size: 16px;} |
| 300 | .weiMenu.el-menu{ | 322 | .weiMenu.el-menu{ |
| 301 | border: none; | 323 | border: none; |
| 302 | :deep(.el-menu-item.is-active){color: var(--el-color-primary);} | 324 | :deep(.el-menu-item.is-active){color: var(--el-color-primary);} |
| ... | @@ -309,31 +331,36 @@ function getCode() { | ... | @@ -309,31 +331,36 @@ function getCode() { |
| 309 | :deep(.el-sub-menu__title){font-size: 20px} | 331 | :deep(.el-sub-menu__title){font-size: 20px} |
| 310 | :deep(.el-sub-menu .el-sub-menu__icon-arrow){font-size: 20px} | 332 | :deep(.el-sub-menu .el-sub-menu__icon-arrow){font-size: 20px} |
| 311 | } | 333 | } |
| 312 | 334 | @media (max-width: 1675px) { | |
| 313 | @media (max-width: 1400px) { | ||
| 314 | .search { | 335 | .search { |
| 315 | display: none; | 336 | display: none; |
| 316 | } | 337 | } |
| 317 | } | 338 | } |
| 339 | @media (max-width: 1620px) { | ||
| 340 | .home-menu .el-menu--horizontal > .el-menu-item{margin: 0 2px; } | ||
| 341 | } | ||
| 342 | @media (max-width: 1450px) { | ||
| 343 | .home-menu .el-menu--horizontal > .el-menu-item{font-size: 15px} | ||
| 344 | } | ||
| 318 | @media (max-width: 1340px) { | 345 | @media (max-width: 1340px) { |
| 319 | .loginBtn { | 346 | .loginBtn { |
| 320 | display: none; | 347 | display: none; |
| 321 | } | 348 | } |
| 322 | .home-menu .el-menu--horizontal > .el-menu-item{margin: 0; } | 349 | .home-menu .el-menu--horizontal > .el-menu-item{margin: 0; } |
| 323 | } | 350 | } |
| 351 | @media (max-width: 1250px) { | ||
| 352 | .home-menu .el-menu--horizontal > .el-menu-item{font-size: 14px} | ||
| 353 | .topNav .logo{height: 50px} | ||
| 354 | } | ||
| 324 | @media (max-width: 1000px) { | 355 | @media (max-width: 1000px) { |
| 325 | .box { | 356 | .box { |
| 326 | width: 100% | 357 | width: 100% |
| 327 | } | 358 | } |
| 328 | } | ||
| 329 | |||
| 330 | @media (max-width: 800px) { | ||
| 331 | |||
| 332 | .ropenbtn{display: block} | ||
| 333 | |||
| 334 | .forPc { | 359 | .forPc { |
| 335 | display: none; | 360 | display: none; |
| 336 | } | 361 | } |
| 362 | .ropenbtn{display: block} | ||
| 363 | |||
| 337 | } | 364 | } |
| 338 | 365 | ||
| 339 | </style> | 366 | </style> | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div class="topNav"> | 2 | <div class="topNav"> |
| 3 | <router-link to="/"> | 3 | <router-link to="/"> |
| 4 | <img class="logo" src="@/assets/v1/nav_logo.png"> | 4 | <img class="logo" src="/img/logoArr.png"> |
| 5 | </router-link> | 5 | </router-link> |
| 6 | 6 | ||
| 7 | <div class="flex-right" style="display:none;"> | 7 | <div class="flex-right" style="display:none;"> | ... | ... |
| ... | @@ -353,6 +353,49 @@ export const constantRoutes = [ | ... | @@ -353,6 +353,49 @@ export const constantRoutes = [ |
| 353 | ] | 353 | ] |
| 354 | }, | 354 | }, |
| 355 | { | 355 | { |
| 356 | path: 'booking', | ||
| 357 | component: Empty, | ||
| 358 | redirect: '/booking', | ||
| 359 | children: [ | ||
| 360 | { | ||
| 361 | path: '0/:cptId', | ||
| 362 | component: () => import('@/viewsPc/booking/ticket'), | ||
| 363 | name: 'ticket', | ||
| 364 | meta: { title: '票务预订' } | ||
| 365 | }, | ||
| 366 | { | ||
| 367 | path: '1/:cptId', | ||
| 368 | component: () => import('@/viewsPc/booking/hotel'), | ||
| 369 | name: 'hotel', | ||
| 370 | meta: { title: '酒店预约' } | ||
| 371 | }, | ||
| 372 | { | ||
| 373 | path: '2/:cptId', | ||
| 374 | component: () => import('@/viewsPc/booking/car'), | ||
| 375 | name: 'car', | ||
| 376 | meta: { title: '车辆预约' } | ||
| 377 | }, | ||
| 378 | { | ||
| 379 | path: '3/:cptId', | ||
| 380 | component: () => import('@/viewsPc/booking/dinner'), | ||
| 381 | name: 'dinner', | ||
| 382 | meta: { title: '餐饮预订' } | ||
| 383 | }, | ||
| 384 | { | ||
| 385 | path: '4/:cptId', | ||
| 386 | component: () => import('@/viewsPc/booking/makeUp'), | ||
| 387 | name: 'makeUp', | ||
| 388 | meta: { title: '化妆预约' } | ||
| 389 | }, | ||
| 390 | { | ||
| 391 | path: '5/:cptId', | ||
| 392 | component: () => import('@/viewsPc/booking/photo'), | ||
| 393 | name: 'photo', | ||
| 394 | meta: { title: '拍照预约' } | ||
| 395 | }, | ||
| 396 | ] | ||
| 397 | }, | ||
| 398 | { | ||
| 356 | path: 'search', | 399 | path: 'search', |
| 357 | component: Empty, | 400 | component: Empty, |
| 358 | redirect: '/search', | 401 | redirect: '/search', | ... | ... |
src/viewsPc/booking/car.vue
0 → 100644
src/viewsPc/booking/dinner.vue
0 → 100644
src/viewsPc/booking/hotel.vue
0 → 100644
src/viewsPc/booking/makeUp.vue
0 → 100644
src/viewsPc/booking/photo.vue
0 → 100644
src/viewsPc/booking/ticket.vue
0 → 100644
| ... | @@ -45,13 +45,13 @@ import {useRoute, useRouter} from 'vue-router' | ... | @@ -45,13 +45,13 @@ import {useRoute, useRouter} from 'vue-router' |
| 45 | import {onMounted} from '@vue/runtime-core' | 45 | import {onMounted} from '@vue/runtime-core' |
| 46 | import useUserStore from '@/store/modules/user' | 46 | import useUserStore from '@/store/modules/user' |
| 47 | import _ from 'lodash' | 47 | import _ from 'lodash' |
| 48 | import cache from "@/plugins/cache"; | 48 | import {useStorage} from "@vueuse/core/index"; |
| 49 | const language = ref(cache.local.get('language') || 0) | 49 | const language= useStorage('language',0) |
| 50 | 50 | ||
| 51 | const route = useRoute() | 51 | const route = useRoute() |
| 52 | const router = useRouter() | 52 | const router = useRouter() |
| 53 | 53 | ||
| 54 | const user = ref({}) | 54 | const user = useUserStore().user || {} |
| 55 | const menus = ref([ | 55 | const menus = ref([ |
| 56 | { | 56 | { |
| 57 | name: language.value==0?'基础信息':'Basic Information', | 57 | name: language.value==0?'基础信息':'Basic Information', |
| ... | @@ -118,13 +118,6 @@ const menusPersonal = ref([ | ... | @@ -118,13 +118,6 @@ const menusPersonal = ref([ |
| 118 | picUrl2: '/img/nav_27_dwn.png', | 118 | picUrl2: '/img/nav_27_dwn.png', |
| 119 | isActive: false | 119 | isActive: false |
| 120 | }, | 120 | }, |
| 121 | { | ||
| 122 | name: language.value==0?'选手管理':'Player Management', | ||
| 123 | routeName: 'myMember', | ||
| 124 | picUrl1: '/img/nav_31.png', | ||
| 125 | picUrl2: '/img/nav_31_dwn.png', | ||
| 126 | isActive: false | ||
| 127 | }, | ||
| 128 | { | 121 | { |
| 129 | name: language.value==0?'我的报名':'My Registration', | 122 | name: language.value==0?'我的报名':'My Registration', |
| 130 | routeName: 'myMatch', | 123 | routeName: 'myMatch', |
| ... | @@ -149,20 +142,25 @@ const menusPersonal = ref([ | ... | @@ -149,20 +142,25 @@ const menusPersonal = ref([ |
| 149 | ]) | 142 | ]) |
| 150 | let currMenu | 143 | let currMenu |
| 151 | onMounted(() => { | 144 | onMounted(() => { |
| 152 | user.value = useUserStore().user || {} | 145 | if(!user.utype){ |
| 146 | router.push({name: 'home'}) | ||
| 147 | return | ||
| 148 | } | ||
| 153 | if(user.utype=='1'){ | 149 | if(user.utype=='1'){ |
| 154 | currMenu = _.find(menus.value, (m) => { | ||
| 155 | return m.routeName === route.name | ||
| 156 | }) | ||
| 157 | }else { | ||
| 158 | currMenu = _.find(menusPersonal.value, (m) => { | 150 | currMenu = _.find(menusPersonal.value, (m) => { |
| 159 | return m.routeName === route.name | 151 | return m.routeName === route.name |
| 160 | }) | 152 | }) |
| 153 | currMenu.isActive = true | ||
| 161 | } | 154 | } |
| 155 | console.log(route.name) | ||
| 162 | 156 | ||
| 163 | if (currMenu) { | 157 | if(user.utype=='2'){ |
| 158 | currMenu = _.find(menus.value, (m) => { | ||
| 159 | return m.routeName === route.name | ||
| 160 | }) | ||
| 164 | currMenu.isActive = true | 161 | currMenu.isActive = true |
| 165 | } | 162 | } |
| 163 | |||
| 166 | }) | 164 | }) |
| 167 | 165 | ||
| 168 | const toInfo = (item,list) => { | 166 | const toInfo = (item,list) => { | ... | ... |
| ... | @@ -68,10 +68,10 @@ | ... | @@ -68,10 +68,10 @@ |
| 68 | <legend>{{ language==0?'机构法人信息':'Institutional legal person information' }} </legend> | 68 | <legend>{{ language==0?'机构法人信息':'Institutional legal person information' }} </legend> |
| 69 | <div class="pt30" style="max-width: 500px"> | 69 | <div class="pt30" style="max-width: 500px"> |
| 70 | <el-form-item :label="language==0?'法人姓名':'Legal Person Name'" required> | 70 | <el-form-item :label="language==0?'法人姓名':'Legal Person Name'" required> |
| 71 | <el-input type="text" v-model="form.orgCode" :placeholder="language==0?'请输入内容':''"/> | 71 | <el-input type="text" v-model="form.legalName" :placeholder="language==0?'请输入内容':''"/> |
| 72 | </el-form-item> | 72 | </el-form-item> |
| 73 | <el-form-item :label="language==0?'法定代表人身份文件':'Identity documents of the legal representative'" required > | 73 | <el-form-item :label="language==0?'法定代表人身份文件':'Identity documents of the legal representative'" required > |
| 74 | <file-upload :is-show-tip="false" v-model="form.orgCert" :button-text="language==0?'上传文件':'Upload'"/> | 74 | <file-upload :is-show-tip="false" v-model="form.legalFile" :button-text="language==0?'上传文件':'Upload'"/> |
| 75 | </el-form-item> | 75 | </el-form-item> |
| 76 | 76 | ||
| 77 | </div> | 77 | </div> |
| ... | @@ -79,7 +79,7 @@ | ... | @@ -79,7 +79,7 @@ |
| 79 | 79 | ||
| 80 | </el-form> | 80 | </el-form> |
| 81 | <div class="text-center mt30"> | 81 | <div class="text-center mt30"> |
| 82 | <el-button type="primary" class="btn-lineG w200px" round>{{ language==0?'提交审核':'Submit' }}</el-button> | 82 | <el-button type="primary" class="btn-lineG w200px" @click="submit" round>{{ language==0?'提交审核':'Submit' }}</el-button> |
| 83 | </div> | 83 | </div> |
| 84 | </div> | 84 | </div> |
| 85 | </el-card> | 85 | </el-card> |
| ... | @@ -100,7 +100,7 @@ const form = ref({}) | ... | @@ -100,7 +100,7 @@ const form = ref({}) |
| 100 | const regionsList = ref([]) | 100 | const regionsList = ref([]) |
| 101 | const countryList = ref([]) | 101 | const countryList = ref([]) |
| 102 | function submit() { | 102 | function submit() { |
| 103 | commitAudit().then(res => { | 103 | commitAudit(form.value).then(res => { |
| 104 | 104 | ||
| 105 | }) | 105 | }) |
| 106 | } | 106 | } | ... | ... |
| ... | @@ -10,7 +10,7 @@ | ... | @@ -10,7 +10,7 @@ |
| 10 | </div> | 10 | </div> |
| 11 | <!-- uType字段 1 是个人 2是团体--> | 11 | <!-- uType字段 1 是个人 2是团体--> |
| 12 | <!-- {{user}}--> | 12 | <!-- {{user}}--> |
| 13 | <team-info :form="myform" :language="language" v-if="user.utype=='2'"/> | 13 | <team-info :form="myform" v-if="user.utype=='2'"/> |
| 14 | <div class="pd20" v-else> | 14 | <div class="pd20" v-else> |
| 15 | <div class="d-form-border" style="margin-top: 0"> | 15 | <div class="d-form-border" style="margin-top: 0"> |
| 16 | <el-form class="d-form" label-width="120" :rules="rules" ref="formref"> | 16 | <el-form class="d-form" label-width="120" :rules="rules" ref="formref"> | ... | ... |
| ... | @@ -57,12 +57,6 @@ | ... | @@ -57,12 +57,6 @@ |
| 57 | :total="total" | 57 | :total="total" |
| 58 | @pagination="getList" | 58 | @pagination="getList" |
| 59 | /> | 59 | /> |
| 60 | |||
| 61 | <!-- 报项详情--> | ||
| 62 | <dialogModifySign :props="dialogModifySignProps"/> | ||
| 63 | <!-- 订单详情--> | ||
| 64 | <dialogModifyBill :props="dialogModifyBillProps"/> | ||
| 65 | |||
| 66 | </el-card> | 60 | </el-card> |
| 67 | 61 | ||
| 68 | </template> | 62 | </template> |
| ... | @@ -71,14 +65,13 @@ | ... | @@ -71,14 +65,13 @@ |
| 71 | import {ref} from 'vue' | 65 | import {ref} from 'vue' |
| 72 | import {useRouter} from 'vue-router' | 66 | import {useRouter} from 'vue-router' |
| 73 | import {getCurrentInstance, onMounted} from '@vue/runtime-core' | 67 | import {getCurrentInstance, onMounted} from '@vue/runtime-core' |
| 74 | import dialogModifySign from './component/modifySign' | ||
| 75 | import dialogModifyBill from './component/modifyBill' | ||
| 76 | import * as match from '@/apiPc/match' | 68 | import * as match from '@/apiPc/match' |
| 77 | import {ElMessage, ElMessageBox} from 'element-plus' | 69 | import {ElMessage, ElMessageBox} from 'element-plus' |
| 78 | import _ from 'lodash' | 70 | import _ from 'lodash' |
| 79 | import useUserStore from "@/store/modules/user"; | 71 | import useUserStore from "@/store/modules/user"; |
| 80 | import cache from "@/plugins/cache"; | 72 | import cache from "@/plugins/cache"; |
| 81 | const language = ref(cache.local.get('language') || 0) | 73 | import {useStorage} from "@vueuse/core/index"; |
| 74 | const language= useStorage('language',0) | ||
| 82 | const router = useRouter() | 75 | const router = useRouter() |
| 83 | const {proxy} = getCurrentInstance() | 76 | const {proxy} = getCurrentInstance() |
| 84 | const total = ref(0) | 77 | const total = ref(0) |
| ... | @@ -96,9 +89,6 @@ const dialogModifyBillProps = ref({ | ... | @@ -96,9 +89,6 @@ const dialogModifyBillProps = ref({ |
| 96 | ...dialogPropsBase | 89 | ...dialogPropsBase |
| 97 | }) | 90 | }) |
| 98 | const activeName = ref('first') | 91 | const activeName = ref('first') |
| 99 | const myform = ref({}) | ||
| 100 | |||
| 101 | const groupList = ref([]) | ||
| 102 | const cptPeriodArr = ref([]) | 92 | const cptPeriodArr = ref([]) |
| 103 | const payTimeArr = ref([]) | 93 | const payTimeArr = ref([]) |
| 104 | const commitTimeArr = ref([]) | 94 | const commitTimeArr = ref([]) |
| ... | @@ -113,12 +103,6 @@ const query2 = ref({ | ... | @@ -113,12 +103,6 @@ const query2 = ref({ |
| 113 | pageNum: 1, | 103 | pageNum: 1, |
| 114 | pageSize: 10 | 104 | pageSize: 10 |
| 115 | }) | 105 | }) |
| 116 | const payType = ref('') | ||
| 117 | const payPop = ref(false) | ||
| 118 | const showOrganizerInfo = ref(false) | ||
| 119 | const showResult = ref(false) | ||
| 120 | const myBalance = ref('') | ||
| 121 | const nowBill = ref({}) | ||
| 122 | const org = ref({}) | 106 | const org = ref({}) |
| 123 | const user = useUserStore().user | 107 | const user = useUserStore().user |
| 124 | const group = useUserStore().group | 108 | const group = useUserStore().group |
| ... | @@ -194,74 +178,12 @@ function getList() { | ... | @@ -194,74 +178,12 @@ function getList() { |
| 194 | }) | 178 | }) |
| 195 | } | 179 | } |
| 196 | 180 | ||
| 197 | function signRow(row) { | ||
| 198 | _.assign(dialogModifySignProps.value, dialogPropsBase, { | ||
| 199 | open: true, | ||
| 200 | isView: true, | ||
| 201 | title: '报项详情', | ||
| 202 | data: {...row} | ||
| 203 | }) | ||
| 204 | } | ||
| 205 | |||
| 206 | // function getMemberInfoByCptId(cptId) { | 181 | // function getMemberInfoByCptId(cptId) { |
| 207 | // match.getMemberInfoByCptId(cptId).then((res) => { | 182 | // match.getMemberInfoByCptId(cptId).then((res) => { |
| 208 | // myBalance.value = res.data.balance | 183 | // myBalance.value = res.data.balance |
| 209 | // }) | 184 | // }) |
| 210 | // } | 185 | // } |
| 211 | 186 | ||
| 212 | function goPay(bill) { | ||
| 213 | console.log(bill) | ||
| 214 | payPop.value = true | ||
| 215 | nowBill.value = bill | ||
| 216 | // getMemberInfoByCptId(bill.cptId) | ||
| 217 | } | ||
| 218 | |||
| 219 | function payBill() { | ||
| 220 | if (!payType.value) { | ||
| 221 | ElMessage.error('请选择支付方式') | ||
| 222 | return | ||
| 223 | } | ||
| 224 | match.payMatch({orderId: nowBill.value.id, payType: payType.value}).then(res => { | ||
| 225 | if (payType.value == 2) { | ||
| 226 | org.value = res.data.org | ||
| 227 | showOrganizerInfo.value = true | ||
| 228 | } else if (payType.value == 1) { | ||
| 229 | // 微信 | ||
| 230 | proxy.$refs['wePayRef'].open(res.data) | ||
| 231 | } else { | ||
| 232 | showResult.value = true | ||
| 233 | } | ||
| 234 | }) | ||
| 235 | } | ||
| 236 | |||
| 237 | function billDetail(bill) { | ||
| 238 | _.assign(dialogModifyBillProps.value, dialogPropsBase, { | ||
| 239 | open: true, | ||
| 240 | isView: true, | ||
| 241 | title: '订单详情', | ||
| 242 | data: {...bill} | ||
| 243 | }) | ||
| 244 | } | ||
| 245 | |||
| 246 | function cancelBill(bill) { | ||
| 247 | ElMessageBox.confirm('确定取消订单吗?', '提示', { | ||
| 248 | confirmButtonText: '确定', | ||
| 249 | cancelButtonText: '取消', | ||
| 250 | type: 'warning' | ||
| 251 | }).then(() => { | ||
| 252 | match.cancelMyUnPayedOrder(bill.id).then(Response => { | ||
| 253 | console.log(Response.data) | ||
| 254 | // 刷新数据 | ||
| 255 | getList() | ||
| 256 | }) | ||
| 257 | }) | ||
| 258 | } | ||
| 259 | |||
| 260 | function downloadVoucher(row) { | ||
| 261 | proxy.download( | ||
| 262 | `/ztx-match/pdf/getPayedOrderPdf/${row.id}/${row.groupId || 0}`, {}, '报项凭证.pdf' | ||
| 263 | ) | ||
| 264 | } | ||
| 265 | </script> | 187 | </script> |
| 266 | 188 | ||
| 267 | <style scoped lang="scss"> | 189 | <style scoped lang="scss"> |
| ... | @@ -364,7 +286,7 @@ function downloadVoucher(row) { | ... | @@ -364,7 +286,7 @@ function downloadVoucher(row) { |
| 364 | width: auto; | 286 | width: auto; |
| 365 | } | 287 | } |
| 366 | .ppl{font-size: 14px; | 288 | .ppl{font-size: 14px; |
| 367 | label{color: #929AA0;} | 289 | label{color: #929AA0;display: block;font-size: 12px;} |
| 368 | } | 290 | } |
| 369 | .btnbox{text-align: right;} | 291 | .btnbox{text-align: right;} |
| 370 | </style> | 292 | </style> | ... | ... |
| ... | @@ -9,16 +9,6 @@ | ... | @@ -9,16 +9,6 @@ |
| 9 | <el-form-item :label="language==0?'姓名':'Name'"> | 9 | <el-form-item :label="language==0?'姓名':'Name'"> |
| 10 | <el-input v-model="query.realName" style="width: 120px;" clearable/> | 10 | <el-input v-model="query.realName" style="width: 120px;" clearable/> |
| 11 | </el-form-item> | 11 | </el-form-item> |
| 12 | <!-- <el-form-item :label="language==0?'短名':'Nick Name'">--> | ||
| 13 | <!-- <el-input v-model="query.shortName" style="width: 120px;" clearable/>--> | ||
| 14 | <!-- </el-form-item>--> | ||
| 15 | <!-- <el-form-item :label="language==0?'手机号码':'Phone'">--> | ||
| 16 | <!-- <el-input v-model="query.phone" style="width: 120px;" clearable/>--> | ||
| 17 | <!-- </el-form-item>--> | ||
| 18 | <!-- <el-form-item :label="language==0?'邮箱':'E-mail'">--> | ||
| 19 | <!-- <el-input v-model="query.email" style="width: 120px;" clearable/>--> | ||
| 20 | <!-- </el-form-item>--> | ||
| 21 | |||
| 22 | <el-form-item :label="language==0?'证件类型':'ID Type'"> | 12 | <el-form-item :label="language==0?'证件类型':'ID Type'"> |
| 23 | <el-input v-model="query.idcType" style="width: 120px;" clearable/> | 13 | <el-input v-model="query.idcType" style="width: 120px;" clearable/> |
| 24 | </el-form-item> | 14 | </el-form-item> | ... | ... |
| ... | @@ -73,14 +73,12 @@ import * as match from '@/apiPc/match' | ... | @@ -73,14 +73,12 @@ import * as match from '@/apiPc/match' |
| 73 | import { ElMessage, ElMessageBox } from 'element-plus' | 73 | import { ElMessage, ElMessageBox } from 'element-plus' |
| 74 | import useUserStore from '@/store/modules/user' | 74 | import useUserStore from '@/store/modules/user' |
| 75 | import _ from "lodash"; | 75 | import _ from "lodash"; |
| 76 | import {useStorage} from "@vueuse/core/index"; | ||
| 77 | const language= useStorage('language',0) | ||
| 76 | const props = defineProps({ | 78 | const props = defineProps({ |
| 77 | form:{ | 79 | form:{ |
| 78 | type:Object, | 80 | type:Object, |
| 79 | required:true | 81 | required:true |
| 80 | }, | ||
| 81 | language:{ | ||
| 82 | type:Number, | ||
| 83 | required:true | ||
| 84 | } | 82 | } |
| 85 | }) | 83 | }) |
| 86 | const countryList = ref([]) | 84 | const countryList = ref([]) | ... | ... |
| ... | @@ -412,6 +412,7 @@ const scores = ref([]) | ... | @@ -412,6 +412,7 @@ const scores = ref([]) |
| 412 | const nowscores = ref([]) | 412 | const nowscores = ref([]) |
| 413 | const livelist = ref([]) | 413 | const livelist = ref([]) |
| 414 | const matchData = ref({}) | 414 | const matchData = ref({}) |
| 415 | const loading = ref(false) | ||
| 415 | const picList = ref([]) | 416 | const picList = ref([]) |
| 416 | const calendarValue = ref(dayjs('2024-07-22').toDate()) | 417 | const calendarValue = ref(dayjs('2024-07-22').toDate()) |
| 417 | const calendarRange = ref([dayjs('2024-07-21').toDate(),dayjs('2024-07-27').toDate()]) | 418 | const calendarRange = ref([dayjs('2024-07-21').toDate(),dayjs('2024-07-27').toDate()]) |
| ... | @@ -448,7 +449,6 @@ const init = () => { | ... | @@ -448,7 +449,6 @@ const init = () => { |
| 448 | match.getMaList().then((res) => { | 449 | match.getMaList().then((res) => { |
| 449 | match.getMatchById({id: res.rows[0].id}).then(resposn => { | 450 | match.getMatchById({id: res.rows[0].id}).then(resposn => { |
| 450 | matchData.value = resposn.data | 451 | matchData.value = resposn.data |
| 451 | loading.value = false | ||
| 452 | // var today = dayjs().format('YYYY-MM-DD HH:mm:ss') | 452 | // var today = dayjs().format('YYYY-MM-DD HH:mm:ss') |
| 453 | // time.value = dayjs(resposn.data.signEndTime).diff(today, 'millisecond') | 453 | // time.value = dayjs(resposn.data.signEndTime).diff(today, 'millisecond') |
| 454 | }) | 454 | }) | ... | ... |
| ... | @@ -393,7 +393,7 @@ function submitForm(n) { | ... | @@ -393,7 +393,7 @@ function submitForm(n) { |
| 393 | } | 393 | } |
| 394 | if (showPersonList.value) { | 394 | if (showPersonList.value) { |
| 395 | if (myMemberTable.value.length == 0) { | 395 | if (myMemberTable.value.length == 0) { |
| 396 | ElMessageBox.confirm(language.value == 0 ? '是否继续添加随性人员?' : 'Do you want to add casual personnel?', | 396 | ElMessageBox.confirm(language.value == 0 ? '是否继续添加随行人员?' : 'Do you want to add casual personnel?', |
| 397 | language.value == 0 ? '提示' : 'Tip', { | 397 | language.value == 0 ? '提示' : 'Tip', { |
| 398 | confirmButtonText: language.value == 0 ? '确定' : 'Yes', | 398 | confirmButtonText: language.value == 0 ? '确定' : 'Yes', |
| 399 | cancelButtonText: language.value == 0 ? '取消' : 'Cancel', | 399 | cancelButtonText: language.value == 0 ? '取消' : 'Cancel', |
| ... | @@ -407,7 +407,7 @@ function submitForm(n) { | ... | @@ -407,7 +407,7 @@ function submitForm(n) { |
| 407 | commit() | 407 | commit() |
| 408 | } | 408 | } |
| 409 | } else { | 409 | } else { |
| 410 | ElMessageBox.confirm(language.value == 0 ? '是否添加随性人员?' : 'Do you want to add casual personnel?', | 410 | ElMessageBox.confirm(language.value == 0 ? '是否添加随行人员?' : 'Do you want to add casual personnel?', |
| 411 | language.value == 0 ? '提示' : 'Tip', { | 411 | language.value == 0 ? '提示' : 'Tip', { |
| 412 | confirmButtonText: language.value == 0 ? '确定' : 'Yes', | 412 | confirmButtonText: language.value == 0 ? '确定' : 'Yes', |
| 413 | cancelButtonText: language.value == 0 ? '取消' : 'Cancel', | 413 | cancelButtonText: language.value == 0 ? '取消' : 'Cancel', |
| ... | @@ -616,6 +616,7 @@ const goPersonInfo = (row) => { | ... | @@ -616,6 +616,7 @@ const goPersonInfo = (row) => { |
| 616 | console.log(row) | 616 | console.log(row) |
| 617 | // debugger | 617 | // debugger |
| 618 | const params = { | 618 | const params = { |
| 619 | matchId: matchId.value, | ||
| 619 | title: language.value==0?'完善补充信息':'Complete the supplementary information', | 620 | title: language.value==0?'完善补充信息':'Complete the supplementary information', |
| 620 | participantsInfoArr: extraform.value, | 621 | participantsInfoArr: extraform.value, |
| 621 | personId: row.personInfo.id, | 622 | personId: row.personInfo.id, | ... | ... |
This diff is collapsed.
Click to expand it.
| ... | @@ -46,11 +46,6 @@ | ... | @@ -46,11 +46,6 @@ |
| 46 | <el-option v-for="l in labels" :key="l.value" :value="l.value" :label="language==0?l.label:l.enlabel"/> | 46 | <el-option v-for="l in labels" :key="l.value" :value="l.value" :label="language==0?l.label:l.enlabel"/> |
| 47 | </el-select> | 47 | </el-select> |
| 48 | </el-form-item> | 48 | </el-form-item> |
| 49 | <!-- <el-form-item :label="language==0?'短名':'nike name'" prop="shortName" required>--> | ||
| 50 | <!-- <el-input v-model="form.shortName" :placeholder="language==0?'赛事用名':''"/>--> | ||
| 51 | <!-- </el-form-item>--> | ||
| 52 | |||
| 53 | |||
| 54 | </el-col> | 49 | </el-col> |
| 55 | <el-col :lg="12"> | 50 | <el-col :lg="12"> |
| 56 | <el-form-item :label="language==0?'手机号码':'Phone'" prop="phone" required> | 51 | <el-form-item :label="language==0?'手机号码':'Phone'" prop="phone" required> |
| ... | @@ -133,8 +128,6 @@ const data = reactive({ | ... | @@ -133,8 +128,6 @@ const data = reactive({ |
| 133 | rules: { | 128 | rules: { |
| 134 | xing: [{required: true, message: '必填', trigger: 'blur'}], | 129 | xing: [{required: true, message: '必填', trigger: 'blur'}], |
| 135 | ming: [{required: true, message: '必填', trigger: 'blur'}], | 130 | ming: [{required: true, message: '必填', trigger: 'blur'}], |
| 136 | // shortName: [{required: true, message: '必填', trigger: 'blur'}], | ||
| 137 | // email: [{required: true, message: '必填', trigger: 'blur'}], | ||
| 138 | countryId: [{required: true, message: '必填', trigger: 'change'}], | 131 | countryId: [{required: true, message: '必填', trigger: 'change'}], |
| 139 | idcType: [{required: true, message: '必填', trigger: 'change'}], | 132 | idcType: [{required: true, message: '必填', trigger: 'change'}], |
| 140 | idcCode: [{required: true, message: '必填', trigger: 'blur'}], | 133 | idcCode: [{required: true, message: '必填', trigger: 'blur'}], |
| ... | @@ -149,8 +142,6 @@ const data = reactive({ | ... | @@ -149,8 +142,6 @@ const data = reactive({ |
| 149 | rules_cn:{ | 142 | rules_cn:{ |
| 150 | xing: [{required: true, message: 'required', trigger: 'blur'}], | 143 | xing: [{required: true, message: 'required', trigger: 'blur'}], |
| 151 | ming: [{required: true, message: 'required', trigger: 'blur'}], | 144 | ming: [{required: true, message: 'required', trigger: 'blur'}], |
| 152 | // shortName: [{required: true, message: 'required', trigger: 'blur'}], | ||
| 153 | // email: [{required: true, message: 'required', trigger: 'blur'}], | ||
| 154 | countryId: [{required: true, message: 'required', trigger: 'change'}], | 145 | countryId: [{required: true, message: 'required', trigger: 'change'}], |
| 155 | idcType: [{required: true, message: 'required', trigger: 'change'}], | 146 | idcType: [{required: true, message: 'required', trigger: 'change'}], |
| 156 | idcCode: [{required: true, message: 'required', trigger: 'blur'}], | 147 | idcCode: [{required: true, message: 'required', trigger: 'blur'}], | ... | ... |
| ... | @@ -155,7 +155,10 @@ const open = (params) => { | ... | @@ -155,7 +155,10 @@ const open = (params) => { |
| 155 | } | 155 | } |
| 156 | }) | 156 | }) |
| 157 | } else { | 157 | } else { |
| 158 | if (params.id != 0) { // 编辑舞伴 | 158 | if (params.id == 0) { |
| 159 | //新增 | ||
| 160 | editgay = false | ||
| 161 | } else {// 编辑舞伴 | ||
| 159 | editgay = true | 162 | editgay = true |
| 160 | form.value = params.form | 163 | form.value = params.form |
| 161 | } | 164 | } | ... | ... |
| ... | @@ -73,7 +73,7 @@ | ... | @@ -73,7 +73,7 @@ |
| 73 | <!-- />--> | 73 | <!-- />--> |
| 74 | <template #footer> | 74 | <template #footer> |
| 75 | <div class="dialog-footer text-center"> | 75 | <div class="dialog-footer text-center"> |
| 76 | <el-button type="primary" @click="submitForm">{{language==0?'确定':'Confirm'}}</el-button> | 76 | <el-button type="primary" @click="submit">{{language==0?'确定':'Confirm'}}</el-button> |
| 77 | <el-button @click="cancel">{{language==0?'取消':'Cancel'}}</el-button> | 77 | <el-button @click="cancel">{{language==0?'取消':'Cancel'}}</el-button> |
| 78 | </div> | 78 | </div> |
| 79 | </template> | 79 | </template> |
| ... | @@ -155,7 +155,7 @@ function handleSelectionChange(val) { | ... | @@ -155,7 +155,7 @@ function handleSelectionChange(val) { |
| 155 | choosedList = val | 155 | choosedList = val |
| 156 | } | 156 | } |
| 157 | 157 | ||
| 158 | function submitForm() { | 158 | function submit() { |
| 159 | emit('transfer', choosedList) | 159 | emit('transfer', choosedList) |
| 160 | // emit('submitForm', choosedList) | 160 | // emit('submitForm', choosedList) |
| 161 | show.value = false | 161 | show.value = false | ... | ... |
| ... | @@ -7,19 +7,19 @@ | ... | @@ -7,19 +7,19 @@ |
| 7 | <span v-if="!names.coachList">--</span> | 7 | <span v-if="!names.coachList">--</span> |
| 8 | </div> | 8 | </div> |
| 9 | <div class="item"><label>{{ language == 0 ? '翻译' : 'Translator' }}</label> | 9 | <div class="item"><label>{{ language == 0 ? '翻译' : 'Translator' }}</label> |
| 10 | <span v-for="c in names.translatorList">{{ c.realName }}</span> | 10 | <span v-for="c in names.translatorList">{{ c.realName }},</span> |
| 11 | <span v-if="!names.translatorList">--</span> | 11 | <span v-if="!names.translatorList">--</span> |
| 12 | </div> | 12 | </div> |
| 13 | </el-col> | 13 | </el-col> |
| 14 | <el-col :lg="8"> | 14 | <el-col :lg="8"> |
| 15 | <div class="item"> | 15 | <div class="item"> |
| 16 | <label>{{ language == 0 ? '领队' : 'Team leader' }}</label> | 16 | <label>{{ language == 0 ? '领队' : 'Team leader' }}</label> |
| 17 | <span v-for="c in names.leaderList">{{ c.realName }}</span> | 17 | <span v-for="c in names.leaderList">{{ c.realName }},</span> |
| 18 | <span v-if="!names.leaderList">--</span> | 18 | <span v-if="!names.leaderList">--</span> |
| 19 | </div> | 19 | </div> |
| 20 | <div class="item"> | 20 | <div class="item"> |
| 21 | <label>{{ language == 0 ? '官员' : 'Official' }}</label> | 21 | <label>{{ language == 0 ? '官员' : 'Official' }}</label> |
| 22 | <span class="mr5" v-for="c in names.officialList">{{ c.realName }}</span> | 22 | <span class="mr5" v-for="c in names.officialList">{{ c.realName }},</span> |
| 23 | <span v-if="!names.officialList">--</span> | 23 | <span v-if="!names.officialList">--</span> |
| 24 | </div> | 24 | </div> |
| 25 | </el-col> | 25 | </el-col> |
| ... | @@ -27,16 +27,16 @@ | ... | @@ -27,16 +27,16 @@ |
| 27 | <div class="item"> | 27 | <div class="item"> |
| 28 | <label>{{ language == 0 ? '队医' : 'Team doctor' }}</label> | 28 | <label>{{ language == 0 ? '队医' : 'Team doctor' }}</label> |
| 29 | <span class="mr5" v-for="c in names.teamDoctorList"> | 29 | <span class="mr5" v-for="c in names.teamDoctorList"> |
| 30 | {{ c.realName }} | 30 | {{ c.realName }}, |
| 31 | </span> | 31 | </span> |
| 32 | <span v-if="!names.teamDoctorList">--</span> | 32 | <span v-if="!names.teamDoctorList">--</span> |
| 33 | </div> | 33 | </div> |
| 34 | <div class="item"> | 34 | <div class="item"> |
| 35 | <label>{{ language == 0 ? '其他' : 'Other' }}</label> | 35 | <label>{{ language == 0 ? '其他' : 'Other' }}</label> |
| 36 | <span class="mr5" v-for="c in names.otherList"> | 36 | <span class="mr5" v-for="c in names.otherList"> |
| 37 | {{ c.shortName }} | 37 | {{ c.realName }}, |
| 38 | </span> | 38 | </span> |
| 39 | <span v-if="!names.otherList">--</span> | 39 | <span v-if="names.otherList?.length==0">--</span> |
| 40 | </div> | 40 | </div> |
| 41 | </el-col> | 41 | </el-col> |
| 42 | </el-row> | 42 | </el-row> | ... | ... |
| ... | @@ -73,18 +73,20 @@ const data = reactive({ | ... | @@ -73,18 +73,20 @@ const data = reactive({ |
| 73 | groupId: '0' | 73 | groupId: '0' |
| 74 | }) | 74 | }) |
| 75 | const { form, show, countryList, participantsInfoArr, title, groupId } = toRefs(data) | 75 | const { form, show, countryList, participantsInfoArr, title, groupId } = toRefs(data) |
| 76 | const matchId = route.params.id | ||
| 77 | let extraId = 0 | 76 | let extraId = 0 |
| 78 | let personId | 77 | let personId |
| 78 | let matchId | ||
| 79 | onMounted(() => { | 79 | onMounted(() => { |
| 80 | getCountryList() | 80 | getCountryList() |
| 81 | }) | 81 | }) |
| 82 | const open = (params) => { | 82 | const open = (params) => { |
| 83 | // debugger | 83 | // debugger |
| 84 | console.log(params) | ||
| 84 | show.value = true | 85 | show.value = true |
| 85 | title.value = params.title | 86 | title.value = params.title |
| 86 | personId = params.personId | 87 | personId = params.personId |
| 87 | extraId = params.extraId | 88 | extraId = params.extraId |
| 89 | matchId = params.matchId | ||
| 88 | participantsInfoArr.value = params.participantsInfoArr | 90 | participantsInfoArr.value = params.participantsInfoArr |
| 89 | init() | 91 | init() |
| 90 | } | 92 | } |
| ... | @@ -137,7 +139,7 @@ function getCountryList() { | ... | @@ -137,7 +139,7 @@ function getCountryList() { |
| 137 | function submitForm() { | 139 | function submitForm() { |
| 138 | let fileInfo = {} | 140 | let fileInfo = {} |
| 139 | for (const n of participantsInfoArr.value) { | 141 | for (const n of participantsInfoArr.value) { |
| 140 | if (n.status == 0 && (!n.value && !n.fixWxFile)) { | 142 | if (n.status == 0 && (!n.value && (!n.fixWxFile||!n.fixWxFile.length==0))) { |
| 141 | ElMessage.error(`请完善${n.name}信息`) | 143 | ElMessage.error(`请完善${n.name}信息`) |
| 142 | return | 144 | return |
| 143 | } | 145 | } | ... | ... |
| ... | @@ -15,7 +15,6 @@ | ... | @@ -15,7 +15,6 @@ |
| 15 | <el-col :lg="8"> | 15 | <el-col :lg="8"> |
| 16 | <div class="item"><label>{{ language==0?'负责人姓名':'Contact Person' }}</label>{{ groupInfo.contactPerson }}</div> | 16 | <div class="item"><label>{{ language==0?'负责人姓名':'Contact Person' }}</label>{{ groupInfo.contactPerson }}</div> |
| 17 | <div class="item"><label>{{ language==0?'参赛队名称':'Name of participating team' }}</label>{{ groupInfo.abreviations }}</div> | 17 | <div class="item"><label>{{ language==0?'参赛队名称':'Name of participating team' }}</label>{{ groupInfo.abreviations }}</div> |
| 18 | |||
| 19 | </el-col> | 18 | </el-col> |
| 20 | <el-col :lg="8"> | 19 | <el-col :lg="8"> |
| 21 | <div class="item"><label>{{ language==0?'邮箱':'Email' }}</label>{{ groupInfo.contactEmail }}</div> | 20 | <div class="item"><label>{{ language==0?'邮箱':'Email' }}</label>{{ groupInfo.contactEmail }}</div> | ... | ... |
| ... | @@ -69,6 +69,7 @@ function submit(res) { | ... | @@ -69,6 +69,7 @@ function submit(res) { |
| 69 | 69 | ||
| 70 | const open = (params) => { | 70 | const open = (params) => { |
| 71 | show.value = true | 71 | show.value = true |
| 72 | show.value = true | ||
| 72 | title.value = params.title | 73 | title.value = params.title |
| 73 | action.value = `/systemj/personInfo/importPerson/${groupId}` | 74 | action.value = `/systemj/personInfo/importPerson/${groupId}` |
| 74 | } | 75 | } | ... | ... |
| ... | @@ -5,11 +5,8 @@ | ... | @@ -5,11 +5,8 @@ |
| 5 | <el-table-column :label="language==0?'姓氏':'Last Name'" prop="xing" min-width="100"/> | 5 | <el-table-column :label="language==0?'姓氏':'Last Name'" prop="xing" min-width="100"/> |
| 6 | <el-table-column :label="language==0?'名':'First Name'" prop="ming" min-width="100"/> | 6 | <el-table-column :label="language==0?'名':'First Name'" prop="ming" min-width="100"/> |
| 7 | <el-table-column :label="language==0?'所属国家':'Nationality'" prop="countryName" min-width="100"/> | 7 | <el-table-column :label="language==0?'所属国家':'Nationality'" prop="countryName" min-width="100"/> |
| 8 | <!-- <el-table-column :label="language==0?'短名':'Nick Name'" prop="shortName" min-width="110"/>--> | ||
| 9 | <el-table-column :label="language==0?'性别':'Gender'" prop="sexStr"/> | 8 | <el-table-column :label="language==0?'性别':'Gender'" prop="sexStr"/> |
| 10 | <!-- <el-table-column :label="language==0?'年龄':'Age'" prop="age"/>--> | 9 | <!-- <el-table-column :label="language==0?'年龄':'Age'" prop="age"/>--> |
| 11 | <!-- <el-table-column :label="language==0?'手机号码':'Phone Number'" prop="phone" width="120"/>--> | ||
| 12 | <!-- <el-table-column :label="language==0?'邮箱':'E-mail'" prop="email" width="150"/>--> | ||
| 13 | <el-table-column :label="language==0?'证件类型':'ID Type'" prop="idcTypeStr" :min-width="language==0?'80':'160'"/> | 10 | <el-table-column :label="language==0?'证件类型':'ID Type'" prop="idcTypeStr" :min-width="language==0?'80':'160'"/> |
| 14 | <el-table-column :label="language==0?'证件号码':'ID NO.'" prop="idcCode" width="200"/> | 11 | <el-table-column :label="language==0?'证件号码':'ID NO.'" prop="idcCode" width="200"/> |
| 15 | <el-table-column :label="language==0?'出生日期':'Birth'" prop="birth" width="110"/> | 12 | <el-table-column :label="language==0?'出生日期':'Birth'" prop="birth" width="110"/> | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <el-row :gutter="14" v-if="language==0"> | 2 | <el-row :gutter="14" v-if="language==0"> |
| 3 | <el-col :lg="4"> | 3 | <el-col :lg="4"> |
| 4 | <div class="funcBtn" @click="building"> | 4 | <div class="funcBtn" @click="goBooking(0)"> |
| 5 | <img src="@/assets/dance/btn04.png"/> | 5 | <img src="@/assets/dance/btn04.png"/> |
| 6 | <h4>票务预订</h4> | 6 | <h4>票务预订</h4> |
| 7 | </div> | 7 | </div> |
| 8 | </el-col> | 8 | </el-col> |
| 9 | <el-col :lg="4"> | 9 | <el-col :lg="4"> |
| 10 | <div class="funcBtn" @click="building"> | 10 | <div class="funcBtn" @click="goBooking(1)"> |
| 11 | <img src="@/assets/dance/btn01.png"/> | 11 | <img src="@/assets/dance/btn01.png"/> |
| 12 | <h4>酒店预约</h4> | 12 | <h4>酒店预约</h4> |
| 13 | </div> | 13 | </div> |
| 14 | </el-col> | 14 | </el-col> |
| 15 | <el-col :lg="4"> | 15 | <el-col :lg="4"> |
| 16 | <div class="funcBtn" @click="building"> | 16 | <div class="funcBtn" @click="goBooking(2)"> |
| 17 | <img src="@/assets/dance/btn02.png"/> | 17 | <img src="@/assets/dance/btn02.png"/> |
| 18 | <h4>车辆预约</h4> | 18 | <h4>车辆预约</h4> |
| 19 | </div> | 19 | </div> |
| 20 | </el-col> | 20 | </el-col> |
| 21 | <el-col :lg="4"> | 21 | <el-col :lg="4"> |
| 22 | <div class="funcBtn" @click="building"> | 22 | <div class="funcBtn" @click="goBooking(3)"> |
| 23 | <img src="@/assets/dance/btn03.png"/> | 23 | <img src="@/assets/dance/btn03.png"/> |
| 24 | <h4>餐饮预订</h4> | 24 | <h4>餐饮预订</h4> |
| 25 | </div> | 25 | </div> |
| 26 | </el-col> | 26 | </el-col> |
| 27 | <el-col :lg="4"> | 27 | <el-col :lg="4"> |
| 28 | <div class="funcBtn" @click="building"> | 28 | <div class="funcBtn" @click="goBooking(4)"> |
| 29 | <img src="@/assets/dance/btn05.png"/> | 29 | <img src="@/assets/dance/btn05.png"/> |
| 30 | <h4>化妆预约</h4> | 30 | <h4>化妆预约</h4> |
| 31 | </div> | 31 | </div> |
| 32 | </el-col> | 32 | </el-col> |
| 33 | <el-col :lg="4"> | 33 | <el-col :lg="4"> |
| 34 | <div class="funcBtn" @click="building"> | 34 | <div class="funcBtn" @click="goBooking(5)"> |
| 35 | <img src="@/assets/dance/btn06.png"/> | 35 | <img src="@/assets/dance/btn06.png"/> |
| 36 | <h4>拍照预约</h4> | 36 | <h4>拍照预约</h4> |
| 37 | </div> | 37 | </div> |
| ... | @@ -85,6 +85,28 @@ const language = ref(cache.local.get('language') || 0) | ... | @@ -85,6 +85,28 @@ const language = ref(cache.local.get('language') || 0) |
| 85 | function building() { | 85 | function building() { |
| 86 | ElMessage.warning('Building!') | 86 | ElMessage.warning('Building!') |
| 87 | } | 87 | } |
| 88 | function goBooking(n) { | ||
| 89 | switch (n) { | ||
| 90 | case 0: | ||
| 91 | // 票务 | ||
| 92 | break; | ||
| 93 | case 1: | ||
| 94 | //酒店 | ||
| 95 | break; | ||
| 96 | case 2: | ||
| 97 | //车辆 | ||
| 98 | break; | ||
| 99 | case 4: | ||
| 100 | //餐饮 | ||
| 101 | break; | ||
| 102 | case 5: | ||
| 103 | //化妆 | ||
| 104 | break; | ||
| 105 | case 6: | ||
| 106 | //拍照 | ||
| 107 | break; | ||
| 108 | } | ||
| 109 | } | ||
| 88 | </script> | 110 | </script> |
| 89 | 111 | ||
| 90 | <style scoped> | 112 | <style scoped> | ... | ... |
| ... | @@ -10,11 +10,7 @@ | ... | @@ -10,11 +10,7 @@ |
| 10 | <span v-if="scope.row.personInfo.representing">{{scope.row.personInfo.representing}}</span> | 10 | <span v-if="scope.row.personInfo.representing">{{scope.row.personInfo.representing}}</span> |
| 11 | </template> | 11 | </template> |
| 12 | </el-table-column> | 12 | </el-table-column> |
| 13 | <!-- <el-table-column :label="language==0?'短名':'Nick Name'" prop="personInfo.shortName" min-width="110"/>--> | ||
| 14 | <el-table-column :label="language==0?'性别':'Gender'" prop="personInfo.sexStr"/> | 13 | <el-table-column :label="language==0?'性别':'Gender'" prop="personInfo.sexStr"/> |
| 15 | <!-- <el-table-column :label="language==0?'年龄':'Age'" prop="personInfo.age"/>--> | ||
| 16 | <!-- <el-table-column :label="language==0?'手机号码':'Phone Number'" prop="personInfo.phone" min-width="130"/>--> | ||
| 17 | <!-- <el-table-column :label="language==0?'邮箱':'E-mail'" prop="personInfo.email" width="150"/>--> | ||
| 18 | <el-table-column :label="language==0?'证件类型':'ID Type'" :width="language==0?'':'140'" prop="personInfo.idcTypeStr"/> | 14 | <el-table-column :label="language==0?'证件类型':'ID Type'" :width="language==0?'':'140'" prop="personInfo.idcTypeStr"/> |
| 19 | <el-table-column :label="language==0?'证件号码':'ID NO.'" prop="personInfo.idcCode" width="200"/> | 15 | <el-table-column :label="language==0?'证件号码':'ID NO.'" prop="personInfo.idcCode" width="200"/> |
| 20 | <el-table-column :label="language==0?'出生日期':'Birth'" prop="personInfo.birth" width="110"/> | 16 | <el-table-column :label="language==0?'出生日期':'Birth'" prop="personInfo.birth" width="110"/> |
| ... | @@ -58,7 +54,7 @@ | ... | @@ -58,7 +54,7 @@ |
| 58 | <el-table-column v-for="(e,index) in extraTableHead" :key="index" :label="e" min-width="110" align="center"> | 54 | <el-table-column v-for="(e,index) in extraTableHead" :key="index" :label="e" min-width="110" align="center"> |
| 59 | <template #default="scope"> | 55 | <template #default="scope"> |
| 60 | <el-link v-if="scope.row.signInfo[0].extraPersonInfoMapList[index]?.type=='2'" | 56 | <el-link v-if="scope.row.signInfo[0].extraPersonInfoMapList[index]?.type=='2'" |
| 61 | :herf="scope.row.signInfo[0].extraPersonInfoMapList[index].value.url"> | 57 | :href="fillImgUrl(scope.row.signInfo[0].extraPersonInfoMapList[index].value.url)"> |
| 62 | {{ scope.row.signInfo[0].extraPersonInfoMapList[index].value.name }} | 58 | {{ scope.row.signInfo[0].extraPersonInfoMapList[index].value.name }} |
| 63 | </el-link> | 59 | </el-link> |
| 64 | <img v-else-if="scope.row.signInfo[0].extraPersonInfoMapList[index]?.type=='3'" style="width: 50px;" | 60 | <img v-else-if="scope.row.signInfo[0].extraPersonInfoMapList[index]?.type=='3'" style="width: 50px;" |
| ... | @@ -115,7 +111,7 @@ const props = defineProps({ | ... | @@ -115,7 +111,7 @@ const props = defineProps({ |
| 115 | default: false | 111 | default: false |
| 116 | }, | 112 | }, |
| 117 | total:{ | 113 | total:{ |
| 118 | type: String, | 114 | type: Number, |
| 119 | required: false, | 115 | required: false, |
| 120 | default: '0' | 116 | default: '0' |
| 121 | } | 117 | } | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div class="pd20"> | 2 | <div class="pv20"> |
| 3 | <div class="matchItem" v-for="n in list" :key="n.id" @click="goDetail(n.id)"> | 3 | <div class="matchItem" v-for="n in list" :key="n.id" @click="goDetail(n.id)"> |
| 4 | <el-row :gutter="15"> | 4 | <el-row :gutter="15"> |
| 5 | <el-col :lg="7" :md="24" :xl="6"> | 5 | <el-col :lg="7" :md="24" :xl="6"> |
| 6 | <img class="mauto w100" :src="fillImgUrl(n.coverUrl)"> | 6 | <img class="mauto w100" :src="fillImgUrl(n.coverUrl)"> |
| 7 | </el-col> | 7 | </el-col> |
| 8 | <el-col :lg="10" :md="12" :xl="12"> | 8 | <el-col :lg="9" :md="12" :xl="12"> |
| 9 | <div class="info"> | 9 | <div class="info"> |
| 10 | <h3>{{ n.name }}</h3> | 10 | <h3>{{ n.name }}</h3> |
| 11 | <p class="ppl"><label>{{ language==0?'比赛时间':'Playing Time' }}:</label>{{n.beginTime?.slice(0,10)}} ~ {{ n.endTime?.slice(0,10) }}</p> | 11 | <p class="ppl"><label>{{ language==0?'比赛时间':'Playing Time' }}:</label>{{n.beginTime?.slice(0,10)}} ~ {{ n.endTime?.slice(0,10) }}</p> |
| ... | @@ -18,7 +18,7 @@ | ... | @@ -18,7 +18,7 @@ |
| 18 | 18 | ||
| 19 | </div> | 19 | </div> |
| 20 | </el-col> | 20 | </el-col> |
| 21 | <el-col :lg="7" :md="12" :xl="6"> | 21 | <el-col :lg="8" :md="12" :xl="6"> |
| 22 | <p class="countDownTitle"> | 22 | <p class="countDownTitle"> |
| 23 | <span v-if="language==0">报名截止倒计时</span> | 23 | <span v-if="language==0">报名截止倒计时</span> |
| 24 | <span v-else>Registration deadline countdown</span> | 24 | <span v-else>Registration deadline countdown</span> |
| ... | @@ -78,11 +78,14 @@ function goDetail(id) { | ... | @@ -78,11 +78,14 @@ function goDetail(id) { |
| 78 | </script> | 78 | </script> |
| 79 | 79 | ||
| 80 | <style scoped lang="scss"> | 80 | <style scoped lang="scss"> |
| 81 | .pv20{padding: 0 20px;} | ||
| 81 | .mt60{margin-top: 60px} | 82 | .mt60{margin-top: 60px} |
| 82 | .matchItem { | 83 | .matchItem { |
| 83 | cursor: pointer;margin: 0 0 20px;padding: 0 0 20px; | 84 | cursor: pointer;padding: 0 0 20px; |
| 84 | background: #FFFFFF;border-bottom: 1px solid #e5e5e5; | 85 | background: #FFFFFF;border-bottom: 1px solid #e5e5e5; |
| 85 | position: relative; | 86 | position: relative; |
| 87 | .el-col{padding-top: 20px} | ||
| 88 | .countDownTitle{margin: 0} | ||
| 86 | &:last-child { | 89 | &:last-child { |
| 87 | border-bottom: none; | 90 | border-bottom: none; |
| 88 | } | 91 | } |
| ... | @@ -174,5 +177,7 @@ function goDetail(id) { | ... | @@ -174,5 +177,7 @@ function goDetail(id) { |
| 174 | line-height: 50px; | 177 | line-height: 50px; |
| 175 | text-align: center; | 178 | text-align: center; |
| 176 | } | 179 | } |
| 177 | 180 | @media (max-width: 1450px) { | |
| 181 | .block{width: 44px;font-size: 20px;} | ||
| 182 | } | ||
| 178 | </style> | 183 | </style> | ... | ... |
| ... | @@ -95,7 +95,7 @@ | ... | @@ -95,7 +95,7 @@ |
| 95 | <el-row :gutter="20" v-if="matchData.signType == '0'"> | 95 | <el-row :gutter="20" v-if="matchData.signType == '0'"> |
| 96 | <el-col v-for="t in signDoneGroupList" :key="t.id" :span="8"> | 96 | <el-col v-for="t in signDoneGroupList" :key="t.id" :span="8"> |
| 97 | <div class="teamItem"> | 97 | <div class="teamItem"> |
| 98 | <el-avatar :size="60" :src="t.imgUrl||t.avatar"/> | 98 | <el-avatar :size="60" :src="fillImgUrl(t.imgUrl||t.avatar)"/> |
| 99 | <span class="name">{{ t.name }}</span> | 99 | <span class="name">{{ t.name }}</span> |
| 100 | </div> | 100 | </div> |
| 101 | </el-col> | 101 | </el-col> |
| ... | @@ -104,7 +104,7 @@ | ... | @@ -104,7 +104,7 @@ |
| 104 | <el-col :span="24" v-for="(t,index) in signDoneGroupList" :key="t.id"> | 104 | <el-col :span="24" v-for="(t,index) in signDoneGroupList" :key="t.id"> |
| 105 | <div class="nowteamItem"> | 105 | <div class="nowteamItem"> |
| 106 | <span>{{ index + 1 }}.</span> | 106 | <span>{{ index + 1 }}.</span> |
| 107 | <el-avatar :size="80" :src="t.imgUrl||t.avatar" :fit="cover"/> | 107 | <el-avatar :size="80" :src="fillImgUrl(t.imgUrl||t.avatar)" :fit="cover"/> |
| 108 | <div class="info"> | 108 | <div class="info"> |
| 109 | <h3 class="name">{{ t.name }}</h3> | 109 | <h3 class="name">{{ t.name }}</h3> |
| 110 | <p v-if="t.extraInfo"> | 110 | <p v-if="t.extraInfo"> |
| ... | @@ -363,10 +363,49 @@ function checkIsSign() { | ... | @@ -363,10 +363,49 @@ function checkIsSign() { |
| 363 | type: 'warning', | 363 | type: 'warning', |
| 364 | } | 364 | } |
| 365 | ).then(() => { | 365 | ).then(() => { |
| 366 | match.recoverMySignFromCancel(n.id).then((res)=>{ | 366 | match.recoverMySignFromCancel(matchId.value).then((res)=>{ |
| 367 | 367 | switch (matchData.value.signType) { | |
| 368 | case '0': | ||
| 369 | if (user.utype == '1') { | ||
| 370 | goPersonalSign() | ||
| 371 | } else { | ||
| 372 | ElMessageBox.confirm( | ||
| 373 | '当前活动是个人活动,无法报名', | ||
| 374 | '提示', | ||
| 375 | { | ||
| 376 | confirmButtonText: '好的', | ||
| 377 | cancelButtonText: '取消', | ||
| 378 | type: 'warning', | ||
| 379 | } | ||
| 380 | ) | ||
| 381 | } | ||
| 382 | break | ||
| 383 | case '1': | ||
| 384 | if (user.utype == '1') { | ||
| 385 | ElMessageBox.confirm( | ||
| 386 | '当前活动是团队活动,无法报名', | ||
| 387 | '提示', | ||
| 388 | { | ||
| 389 | confirmButtonText: '好的', | ||
| 390 | cancelButtonText: '取消', | ||
| 391 | type: 'warning', | ||
| 392 | } | ||
| 393 | ) | ||
| 394 | } else { | ||
| 395 | goTeamSign() | ||
| 396 | } | ||
| 397 | break | ||
| 398 | case '2': | ||
| 399 | if (user.utype == '1') { | ||
| 400 | goPersonalSign() | ||
| 401 | } else { | ||
| 402 | goTeamSign() | ||
| 403 | } | ||
| 404 | break | ||
| 405 | } | ||
| 368 | }) | 406 | }) |
| 369 | }) | 407 | }) |
| 408 | return Promise.reject('rejected message') | ||
| 370 | } | 409 | } |
| 371 | }) | 410 | }) |
| 372 | } | 411 | } | ... | ... |
| ... | @@ -242,28 +242,31 @@ onMounted(() => { | ... | @@ -242,28 +242,31 @@ onMounted(() => { |
| 242 | } else { | 242 | } else { |
| 243 | groupId.value = 0 | 243 | groupId.value = 0 |
| 244 | } | 244 | } |
| 245 | if (route.params.id != 0) { | ||
| 246 | matchId.value = route.params.id | ||
| 247 | getMatch(matchId.value) | ||
| 248 | getGroupListByCptId(matchId.value) | ||
| 249 | } else { | ||
| 250 | getMatchId() | ||
| 251 | } | ||
| 252 | }) | ||
| 253 | function getMatchId() { | ||
| 245 | match.getMaList().then((res) => { | 254 | match.getMaList().then((res) => { |
| 246 | if (route.params.id != 0) { | 255 | matchId.value = res.rows[0].id |
| 247 | matchId.value = route.params.id | ||
| 248 | } else { | ||
| 249 | matchId.value = res.rows[0].id | ||
| 250 | } | ||
| 251 | getMatch(matchId.value) | 256 | getMatch(matchId.value) |
| 252 | getGroupListByCptId(matchId.value) | 257 | getGroupListByCptId(matchId.value) |
| 253 | }) | 258 | }) |
| 254 | }) | 259 | } |
| 255 | 260 | function getMatch(id) { | |
| 256 | function getMatch() { | ||
| 257 | loading.value = true | 261 | loading.value = true |
| 258 | match.getMatchById({id: matchId.value}).then(res => { | 262 | match.getMatchById({id: id}).then(res => { |
| 259 | matchData.value = res.data | 263 | matchData.value = res.data |
| 260 | loading.value = false | 264 | loading.value = false |
| 261 | var today = dayjs().format('YYYY-MM-DD HH:mm:ss') | 265 | var today = dayjs().format('YYYY-MM-DD HH:mm:ss') |
| 262 | time.value = dayjs(res.data.signEndTime).diff(today, 'millisecond') | 266 | time.value = dayjs(res.data.signEndTime).diff(today, 'millisecond') |
| 263 | }).catch(res => { | 267 | }).catch(res => { |
| 264 | error.value = true | 268 | router.push({path: '/match/list/0'}) |
| 265 | loading.value = false | 269 | setTimeout("window.location.reload()", 1000) |
| 266 | |||
| 267 | }) | 270 | }) |
| 268 | } | 271 | } |
| 269 | 272 | ||
| ... | @@ -405,7 +408,7 @@ function checkIsSign() { | ... | @@ -405,7 +408,7 @@ function checkIsSign() { |
| 405 | type: 'warning', | 408 | type: 'warning', |
| 406 | } | 409 | } |
| 407 | ).then(() => { | 410 | ).then(() => { |
| 408 | match.recoverMySignFromCancel(n.id).then((res)=>{ | 411 | match.recoverMySignFromCancel(matchId.value).then((res)=>{ |
| 409 | 412 | ||
| 410 | }) | 413 | }) |
| 411 | }) | 414 | }) | ... | ... |
| ... | @@ -191,7 +191,7 @@ | ... | @@ -191,7 +191,7 @@ |
| 191 | </td> | 191 | </td> |
| 192 | <td v-for="(e,index) in extraTableHead" :key="index"> | 192 | <td v-for="(e,index) in extraTableHead" :key="index"> |
| 193 | <a v-if="row.signInfo[0].extraPersonInfoMapList[index]?.type=='2'" | 193 | <a v-if="row.signInfo[0].extraPersonInfoMapList[index]?.type=='2'" |
| 194 | :herf="row.signInfo[0].extraPersonInfoMapList[index].value.url"> | 194 | :href="row.signInfo[0].extraPersonInfoMapList[index].value.url"> |
| 195 | {{ row.signInfo[0].extraPersonInfoMapList[index].value.name }} | 195 | {{ row.signInfo[0].extraPersonInfoMapList[index].value.name }} |
| 196 | </a> | 196 | </a> |
| 197 | <img v-else-if="row.signInfo[0].extraPersonInfoMapList[index]?.type=='3'" style="width: 50px;" | 197 | <img v-else-if="row.signInfo[0].extraPersonInfoMapList[index]?.type=='3'" style="width: 50px;" | ... | ... |
| ... | @@ -15,13 +15,13 @@ | ... | @@ -15,13 +15,13 @@ |
| 15 | </div> | 15 | </div> |
| 16 | <div> | 16 | <div> |
| 17 | <el-table class="mt20" :data="myMemberTable" border> | 17 | <el-table class="mt20" :data="myMemberTable" border> |
| 18 | <el-table-column type="index" label="Index" width="70" align="center"/> | 18 | <el-table-column type="index" :label="language==0?'Index':'序号'" width="70" align="center"/> |
| 19 | <el-table-column :label="language==0?'姓氏':'surname'" prop="xing" min-width="100"/> | 19 | <el-table-column :label="language==0?'姓氏':'surname'" prop="xing" min-width="100"/> |
| 20 | <el-table-column :label="language==0?'名':'name'" prop="ming" min-width="100"/> | 20 | <el-table-column :label="language==0?'名':'name'" prop="ming" min-width="100"/> |
| 21 | <el-table-column label="Passport number" prop="idcCode" min-width="120"/> | 21 | <el-table-column :label="language==0?'Passport number':'护照号'" prop="idcCode" min-width="120"/> |
| 22 | <el-table-column label="Birthday" prop="birth"/> | 22 | <el-table-column :label="language==0?'Birthday':'生日'" prop="birth"/> |
| 23 | <el-table-column label="Sex" prop="sexStr"/> | 23 | <el-table-column :label="language==0?'Sex':'性别'" prop="sexStr"/> |
| 24 | <el-table-column label="Role" min-width="160"> | 24 | <el-table-column :label="language==0?'Role':'角色'" min-width="160"> |
| 25 | <template #default="scope"> | 25 | <template #default="scope"> |
| 26 | <div class="roletd"> | 26 | <div class="roletd"> |
| 27 | <span v-for="item in scope.row.label?.split(',')" :key="item.id" class="text-primary"> | 27 | <span v-for="item in scope.row.label?.split(',')" :key="item.id" class="text-primary"> |
| ... | @@ -40,17 +40,39 @@ | ... | @@ -40,17 +40,39 @@ |
| 40 | </div> | 40 | </div> |
| 41 | </div> | 41 | </div> |
| 42 | <div class="pd20" v-if="signInfoList?.length>0"> | 42 | <div class="pd20" v-if="signInfoList?.length>0"> |
| 43 | <div class="leftboderTT">{{ language == 0 ? '参赛人员保险费' : 'Participant Insurance Fee' }}</div> | 43 | <div class="leftboderTT">{{ language == 0 ? '参赛人员保险费' : 'Participant Insurance Fee' }} |
| 44 | <div class="fr"> | ||
| 45 | <el-input size="small" v-model="zuQuery.athName" :prefix-icon="Search" | ||
| 46 | @change="getSignList" clearable/> | ||
| 47 | </div> | ||
| 48 | </div> | ||
| 44 | <!-- 人员列表--> | 49 | <!-- 人员列表--> |
| 45 | <sign-info-table class="mt20" v-if="matchId" :show-summary="true" :total="insuranceFeeTotal" :match-id="matchId" :list="signInfoList" :hasAction="false"/> | 50 | <sign-info-table class="mt20" v-if="matchId" :show-summary="true" :total="insuranceFeeTotal" |
| 51 | :match-id="matchId" :list="signInfoList" :hasAction="false"/> | ||
| 46 | </div> | 52 | </div> |
| 47 | <div class="pd20" v-if="zuTableList?.length>0"> | 53 | <div class="pd20" v-if="zuTableList?.length>0"> |
| 48 | <div class="leftboderTT">{{ language == 0 ? '参赛设项报名费' : 'Registration Fee for Event Entry' }}</div> | 54 | <div class="leftboderTT">{{ language == 0 ? '参赛设项报名费' : 'Registration Fee for Event Entry' }} |
| 49 | <zu-table class="mt20" :list="zuTableList" :show-summary="true" :total="serviceFeeTotal" :hasAction="false"/> | 55 | <div class="fr"> |
| 56 | <el-input size="small" v-model="zuQuery.groName" :prefix-icon="Search" | ||
| 57 | @change="getSignList" clearable/> | ||
| 58 | </div> | ||
| 59 | </div> | ||
| 60 | <zu-table class="mt20" :list="zuTableList" :show-summary="true" :total="serviceFeeTotal" | ||
| 61 | :hasAction="false"/> | ||
| 50 | </div> | 62 | </div> |
| 51 | <el-row class="priceBar"> | 63 | <el-row class="priceBar"> |
| 52 | <el-col :lg="24" :xs="24"> | 64 | <el-col :lg="12" :xs="24" class="pl-15"> |
| 53 | <div class="flex"> | 65 | <el-link class="mr10" type="primary" @click="exportSignList(1)"><el-icon><Upload /></el-icon> |
| 66 | {{ language==0?'导出参赛人员清单':'Export Participant List' }}</el-link> | ||
| 67 | <el-link class="mr10" type="primary" @click="exportSignList(2)"><el-icon><Upload /></el-icon> | ||
| 68 | {{ language==0?'导出设项报名清单':'Registration Fee for Event Entry' }}</el-link> | ||
| 69 | |||
| 70 | <el-link type="primary" @click="exportPdf"><el-icon><Upload /></el-icon> | ||
| 71 | {{ language==0?'导出pdf':'Export PDF' }} | ||
| 72 | </el-link> | ||
| 73 | </el-col> | ||
| 74 | <el-col :lg="12" :xs="24"> | ||
| 75 | <div class="flex" v-if="Number(form.totalFee)>0"> | ||
| 54 | <div class="item" v-if="signInfoList?.length>0"><label>{{ language==0?'报名费':'Registration Fee' }}:</label><span>{{ language==0?'¥':'€' }}{{serviceFeeTotal}}</span></div> | 76 | <div class="item" v-if="signInfoList?.length>0"><label>{{ language==0?'报名费':'Registration Fee' }}:</label><span>{{ language==0?'¥':'€' }}{{serviceFeeTotal}}</span></div> |
| 55 | <div class="item" v-if="zuTableList?.length>0"><label>{{ language==0?'保险费':'Insurance Fee' }}:</label><span>{{ language==0?'¥':'€' }}{{insuranceFeeTotal}}</span></div> | 77 | <div class="item" v-if="zuTableList?.length>0"><label>{{ language==0?'保险费':'Insurance Fee' }}:</label><span>{{ language==0?'¥':'€' }}{{insuranceFeeTotal}}</span></div> |
| 56 | <div class="item"><label>{{ language==0?'费用总计':'Total Cost' }}:</label><span class="size26">{{ language==0?'¥':'€' }}{{form.totalFee}}</span></div> | 78 | <div class="item"><label>{{ language==0?'费用总计':'Total Cost' }}:</label><span class="size26">{{ language==0?'¥':'€' }}{{form.totalFee}}</span></div> |
| ... | @@ -64,6 +86,8 @@ | ... | @@ -64,6 +86,8 @@ |
| 64 | {{ language == 0 ?'登录后查看详细报项信息':'View detailed report information after logging in' }} | 86 | {{ language == 0 ?'登录后查看详细报项信息':'View detailed report information after logging in' }} |
| 65 | </el-button> | 87 | </el-button> |
| 66 | </div> | 88 | </div> |
| 89 | |||
| 90 | |||
| 67 | </el-card> | 91 | </el-card> |
| 68 | 92 | ||
| 69 | <el-card class="mt20 mb20"> | 93 | <el-card class="mt20 mb20"> |
| ... | @@ -285,12 +309,13 @@ | ... | @@ -285,12 +309,13 @@ |
| 285 | </template> | 309 | </template> |
| 286 | 310 | ||
| 287 | <script setup> | 311 | <script setup> |
| 288 | import {ref} from 'vue' | 312 | import {Search} from "@element-plus/icons-vue" |
| 313 | import {getCurrentInstance, ref} from 'vue' | ||
| 289 | import {onMounted} from "@vue/runtime-core" | 314 | import {onMounted} from "@vue/runtime-core" |
| 290 | import {useRoute,useRouter} from "vue-router" | 315 | import {useRoute,useRouter} from "vue-router" |
| 291 | import * as match from "@/apiPc/match" | 316 | import * as match from "@/apiPc/match" |
| 292 | import MatchInfoRow from "@/viewsPc/match/components/matchInfo-row"; | 317 | import MatchInfoRow from "@/viewsPc/match/components/matchInfo-row"; |
| 293 | 318 | const {proxy} = getCurrentInstance() | |
| 294 | const route = useRoute() | 319 | const route = useRoute() |
| 295 | const router = useRouter() | 320 | const router = useRouter() |
| 296 | const matchInfo = ref({}) | 321 | const matchInfo = ref({}) |
| ... | @@ -324,6 +349,10 @@ const errorBox = ref(false) | ... | @@ -324,6 +349,10 @@ const errorBox = ref(false) |
| 324 | const hideconfirmbtn = ref(false) | 349 | const hideconfirmbtn = ref(false) |
| 325 | const insuranceFeeTotal = ref(0) | 350 | const insuranceFeeTotal = ref(0) |
| 326 | const serviceFeeTotal = ref(0) | 351 | const serviceFeeTotal = ref(0) |
| 352 | const zuQuery = ref({ | ||
| 353 | cptId: matchId.value, | ||
| 354 | groupId: groupId.value | ||
| 355 | }) | ||
| 327 | const user = useUserStore().user | 356 | const user = useUserStore().user |
| 328 | console.log(route.query.orderId) | 357 | console.log(route.query.orderId) |
| 329 | // 1763462073870237698 | 358 | // 1763462073870237698 |
| ... | @@ -338,6 +367,8 @@ function getData() { | ... | @@ -338,6 +367,8 @@ function getData() { |
| 338 | form.value.payTypeArr = res.data.payType.split(',') | 367 | form.value.payTypeArr = res.data.payType.split(',') |
| 339 | matchId.value = form.value.cptId | 368 | matchId.value = form.value.cptId |
| 340 | groupId.value = form.value.groupId || 0 | 369 | groupId.value = form.value.groupId || 0 |
| 370 | zuQuery.value.groupId = groupId.value | ||
| 371 | zuQuery.value.cptId = matchId.value | ||
| 341 | if(isLogin.value){ | 372 | if(isLogin.value){ |
| 342 | getSignList() | 373 | getSignList() |
| 343 | if(user.utype=='1'){ | 374 | if(user.utype=='1'){ |
| ... | @@ -361,21 +392,17 @@ function upRR() { | ... | @@ -361,21 +392,17 @@ function upRR() { |
| 361 | }) | 392 | }) |
| 362 | } | 393 | } |
| 363 | function getSignList() { | 394 | function getSignList() { |
| 364 | match.getMySignInfoList({ | 395 | match.getMySignInfoList(zuQuery.value).then(res => { |
| 365 | cptId: matchId.value, | ||
| 366 | groupId: groupId.value | ||
| 367 | }).then(res => { | ||
| 368 | insuranceFeeTotal.value = 0 | 396 | insuranceFeeTotal.value = 0 |
| 369 | serviceFeeTotal.value = 0 | 397 | serviceFeeTotal.value = 0 |
| 370 | signInfoList.value = res.data.singleData | 398 | signInfoList.value = res.data?.singleData || [] |
| 371 | zuTableList.value = res.data.zuData | 399 | zuTableList.value = res.data?.zuData || [] |
| 372 | for(var s of signInfoList.value){ | 400 | for(var s of signInfoList.value){ |
| 373 | insuranceFeeTotal.value = insuranceFeeTotal.value + Number(s.insuranceFee) | 401 | insuranceFeeTotal.value = insuranceFeeTotal.value + Number(s.insuranceFee) |
| 374 | } | 402 | } |
| 375 | for(var z of zuTableList.value){ | 403 | for(var z of zuTableList.value){ |
| 376 | serviceFeeTotal.value = serviceFeeTotal.value + Number(z.project.serviceFee) | 404 | serviceFeeTotal.value = serviceFeeTotal.value + Number(z.project.serviceFee) |
| 377 | } | 405 | } |
| 378 | |||
| 379 | }) | 406 | }) |
| 380 | } | 407 | } |
| 381 | function goHome() { | 408 | function goHome() { |
| ... | @@ -424,7 +451,53 @@ function startforGetData() { | ... | @@ -424,7 +451,53 @@ function startforGetData() { |
| 424 | function showLogin(){ | 451 | function showLogin(){ |
| 425 | useUserStore().setReLogin() | 452 | useUserStore().setReLogin() |
| 426 | } | 453 | } |
| 454 | function exportSignList(n) { | ||
| 455 | var obj = { | ||
| 456 | cptId: matchId.value, | ||
| 457 | groupId: groupId.value, | ||
| 458 | type:n | ||
| 459 | } | ||
| 460 | var fileName | ||
| 461 | if(language.value==0){ | ||
| 462 | if(n==1){ | ||
| 463 | fileName = '参赛人员清单' | ||
| 464 | }else { | ||
| 465 | fileName = '设项报名清单' | ||
| 466 | } | ||
| 467 | proxy.download('/league/sign/exportCn', { | ||
| 468 | ...obj | ||
| 469 | }, `${fileName}_${new Date().getTime()}.xlsx`) | ||
| 470 | } else { | ||
| 471 | if(n==1){ | ||
| 472 | fileName = 'Participant List' | ||
| 473 | }else { | ||
| 474 | fileName = 'Registration Fee for Event Entry' | ||
| 475 | } | ||
| 476 | proxy.download('/league/sign/exportEn', { | ||
| 477 | ...obj | ||
| 478 | }, `${fileName}_${new Date().getTime()}.xlsx`) | ||
| 479 | } | ||
| 480 | |||
| 481 | } | ||
| 482 | function exportPdf() { | ||
| 483 | var obj = { | ||
| 484 | cptId: matchId.value, | ||
| 485 | groupId: groupId.value | ||
| 486 | } | ||
| 487 | var fileName | ||
| 488 | if(language.value==0){ | ||
| 489 | fileName = '设项报名清单' | ||
| 490 | proxy.download('/pdf/exportMySignInfoList', { | ||
| 491 | ...obj | ||
| 492 | }, `${fileName}_${new Date().getTime()}.pdf`) | ||
| 493 | } else { | ||
| 494 | fileName = 'Registration Fee for Event Entry' | ||
| 495 | proxy.download('/pdf/exportMySignInfoList', { | ||
| 496 | ...obj | ||
| 497 | }, `${fileName}_${new Date().getTime()}.pdf`) | ||
| 498 | } | ||
| 427 | 499 | ||
| 500 | } | ||
| 428 | </script> | 501 | </script> |
| 429 | 502 | ||
| 430 | <style scoped lang="scss"> | 503 | <style scoped lang="scss"> | ... | ... |
| ... | @@ -47,7 +47,7 @@ | ... | @@ -47,7 +47,7 @@ |
| 47 | @change="getSignList" clearable/> | 47 | @change="getSignList" clearable/> |
| 48 | </div> | 48 | </div> |
| 49 | </div> | 49 | </div> |
| 50 | <sign-info-table class="mt20" :showSummary="true" :total="form.cptInsuranceFee?.totalFee" :match-id="matchId" :list="signInfoList" :hasAction="false"/> | 50 | <sign-info-table class="mt20" :showSummary="true" :total="signTotal" :match-id="matchId" :list="signInfoList" :hasAction="false"/> |
| 51 | </div> | 51 | </div> |
| 52 | <div class="mt20"> | 52 | <div class="mt20"> |
| 53 | <div class="leftboderTT">{{ language==0?'设项报名清单':'Event Registration List' }} | 53 | <div class="leftboderTT">{{ language==0?'设项报名清单':'Event Registration List' }} |
| ... | @@ -56,7 +56,7 @@ | ... | @@ -56,7 +56,7 @@ |
| 56 | @change="getSignList" clearable/> | 56 | @change="getSignList" clearable/> |
| 57 | </div> | 57 | </div> |
| 58 | </div> | 58 | </div> |
| 59 | <zu-table class="mt20" :showSummary="true" :total="form.cptRegistrationFee?.totalFee" :list="zuTableList" :hasAction="false"/> | 59 | <zu-table class="mt20" :showSummary="true" :total="zuTotal" :list="zuTableList" :hasAction="false"/> |
| 60 | </div> | 60 | </div> |
| 61 | </div> | 61 | </div> |
| 62 | 62 | ||
| ... | @@ -121,14 +121,14 @@ const matchId = ref(route.query.matchId) | ... | @@ -121,14 +121,14 @@ const matchId = ref(route.query.matchId) |
| 121 | const signInfoList = ref([]) | 121 | const signInfoList = ref([]) |
| 122 | const signEndTime = ref('') | 122 | const signEndTime = ref('') |
| 123 | const zuTableList = ref([]) | 123 | const zuTableList = ref([]) |
| 124 | const zuTotal = ref(0) | ||
| 125 | const signTotal = ref(0) | ||
| 124 | const myMemberTable = ref([]) | 126 | const myMemberTable = ref([]) |
| 125 | const user = useUserStore().user | 127 | const user = useUserStore().user |
| 126 | const {proxy} = getCurrentInstance() | 128 | const {proxy} = getCurrentInstance() |
| 127 | const zuQuery = ref({ | 129 | const zuQuery = ref({ |
| 128 | cptId: matchId.value, | 130 | cptId: matchId.value, |
| 129 | groupId: groupId.value, | 131 | groupId: groupId.value |
| 130 | name:'', | ||
| 131 | groupName:'' | ||
| 132 | }) | 132 | }) |
| 133 | onMounted(()=>{ | 133 | onMounted(()=>{ |
| 134 | Promise.all([ | 134 | Promise.all([ |
| ... | @@ -154,12 +154,20 @@ function getMyMemberTable() { | ... | @@ -154,12 +154,20 @@ function getMyMemberTable() { |
| 154 | } | 154 | } |
| 155 | function getSignList() { | 155 | function getSignList() { |
| 156 | match.getMySignInfoList(zuQuery.value).then(res=>{ | 156 | match.getMySignInfoList(zuQuery.value).then(res=>{ |
| 157 | zuTotal.value = 0 | ||
| 158 | signTotal.value = 0 | ||
| 157 | signInfoList.value = res.data.singleData | 159 | signInfoList.value = res.data.singleData |
| 158 | zuTableList.value = res.data.zuData | 160 | zuTableList.value = res.data.zuData |
| 161 | for(var s of signInfoList.value){ | ||
| 162 | signTotal.value = signTotal.value + Number(s.insuranceFee) | ||
| 163 | } | ||
| 164 | for(var z of zuTableList.value){ | ||
| 165 | zuTotal.value = zuTotal.value + Number(z.project.serviceFee) | ||
| 166 | } | ||
| 159 | }) | 167 | }) |
| 160 | } | 168 | } |
| 161 | const goPrev = () => { | 169 | const goPrev = () => { |
| 162 | if(user.type=='2'){ | 170 | if(user.utype=='2'){ |
| 163 | router.push({ | 171 | router.push({ |
| 164 | name: 'chooseSportsman', | 172 | name: 'chooseSportsman', |
| 165 | query: { | 173 | query: { |
| ... | @@ -167,7 +175,8 @@ const goPrev = () => { | ... | @@ -167,7 +175,8 @@ const goPrev = () => { |
| 167 | groupId: groupId.value | 175 | groupId: groupId.value |
| 168 | } | 176 | } |
| 169 | }) | 177 | }) |
| 170 | } else { | 178 | } |
| 179 | if(user.utype=='1'){ | ||
| 171 | router.push({ | 180 | router.push({ |
| 172 | name: 'chooseProject', | 181 | name: 'chooseProject', |
| 173 | params:{ | 182 | params:{ |
| ... | @@ -186,15 +195,17 @@ const getFee = (entryId) => { | ... | @@ -186,15 +195,17 @@ const getFee = (entryId) => { |
| 186 | cptId: matchId.value | 195 | cptId: matchId.value |
| 187 | }).then(res => { | 196 | }).then(res => { |
| 188 | form.value = res.data | 197 | form.value = res.data |
| 198 | // zuTotal.value = form.value.cptRegistrationFee?.totalFee | ||
| 199 | // signTotal.value = form.value.cptInsuranceFee?.totalFee | ||
| 189 | }) | 200 | }) |
| 190 | } | 201 | } |
| 191 | const submitForm = (n) => { | 202 | const submitForm = (n) => { |
| 192 | if(n==0){ | 203 | if(n==0){ |
| 193 | ElMessageBox.confirm(language.value==0?`您当前的操作为暂存,并不是提交审核, | 204 | ElMessageBox.confirm(language.value==0?`您当前的操作为暂存,并不是提交审核, |
| 194 | 必须在报名截止时间${signEndTime.value}之前完成提交。 | 205 | 必须在报名截止时间${signEndTime.value.substring(0,10)}之前完成提交。 |
| 195 | 您也可以在个人中心-我的报名中,找到这条报名,点击提交审核。`: | 206 | 您也可以在个人中心-我的报名中,找到这条报名,点击提交审核。`: |
| 196 | `Your current operation is temporary and not submitted for review, | 207 | `Your current operation is temporary and not submitted for review, |
| 197 | Submission must be completed before the registration deadline${signEndTime.value}。 | 208 | Submission must be completed before the registration deadline${signEndTime.value.substring(0,10)}。 |
| 198 | You can also find this registration in the My Registration section of your personal center and click submit for review.`, | 209 | You can also find this registration in the My Registration section of your personal center and click submit for review.`, |
| 199 | language.value == 0 ? '提示' : 'Tip', { | 210 | language.value == 0 ? '提示' : 'Tip', { |
| 200 | confirmButtonText: language.value == 0 ? '去个人中心' : 'Go My Registration ', | 211 | confirmButtonText: language.value == 0 ? '去个人中心' : 'Go My Registration ', |
| ... | @@ -265,6 +276,10 @@ function exportPdf() { | ... | @@ -265,6 +276,10 @@ function exportPdf() { |
| 265 | ...obj | 276 | ...obj |
| 266 | }, `${fileName}_${new Date().getTime()}.pdf`) | 277 | }, `${fileName}_${new Date().getTime()}.pdf`) |
| 267 | } else { | 278 | } else { |
| 279 | fileName = 'Registration Fee for Event Entry' | ||
| 280 | proxy.download('/pdf/exportMySignInfoList', { | ||
| 281 | ...obj | ||
| 282 | }, `${fileName}_${new Date().getTime()}.pdf`) | ||
| 268 | } | 283 | } |
| 269 | 284 | ||
| 270 | } | 285 | } | ... | ... |
| ... | @@ -10,7 +10,7 @@ | ... | @@ -10,7 +10,7 @@ |
| 10 | <match-info-row :match-id="cptId" :language="language"/> | 10 | <match-info-row :match-id="cptId" :language="language"/> |
| 11 | <div class="h20"></div> | 11 | <div class="h20"></div> |
| 12 | <el-form ref="ruleFormRef" label-width="120px" class="signForm" | 12 | <el-form ref="ruleFormRef" label-width="120px" class="signForm" |
| 13 | :model="form" :rules="rules" | 13 | :model="form" :rules="language==0?rules:rules_en" |
| 14 | :label-position="language==0?'left':'top'"> | 14 | :label-position="language==0?'left':'top'"> |
| 15 | <el-row> | 15 | <el-row> |
| 16 | <el-col :lg="8" :offset="2"> | 16 | <el-col :lg="8" :offset="2"> |
| ... | @@ -133,7 +133,7 @@ const data = reactive({ | ... | @@ -133,7 +133,7 @@ const data = reactive({ |
| 133 | } | 133 | } |
| 134 | }, | 134 | }, |
| 135 | groupId: route.query.groupId||0, | 135 | groupId: route.query.groupId||0, |
| 136 | cptId: route.params.id||0, | 136 | cptId: route.query.matchId||0, |
| 137 | signType: false, | 137 | signType: false, |
| 138 | regionsList: [], | 138 | regionsList: [], |
| 139 | participantsInfoArr: [], | 139 | participantsInfoArr: [], |
| ... | @@ -148,6 +148,15 @@ const data = reactive({ | ... | @@ -148,6 +148,15 @@ const data = reactive({ |
| 148 | abreviations: { required: true, message: '请填写内容', trigger: 'blur' }, | 148 | abreviations: { required: true, message: '请填写内容', trigger: 'blur' }, |
| 149 | address: { required: true, message: '请填写内容', trigger: 'blur' } | 149 | address: { required: true, message: '请填写内容', trigger: 'blur' } |
| 150 | }, | 150 | }, |
| 151 | rules_en: { | ||
| 152 | imgUrl: { required: true, message: 'required', trigger: 'blur' }, | ||
| 153 | name: { required: true, message: 'required', trigger: 'blur' }, | ||
| 154 | type: { required: true, message: 'required', trigger: 'change' }, | ||
| 155 | contactPerson: { required: true, message: 'required', trigger: 'blur' }, | ||
| 156 | contactEmail: { required: true, message: 'required', trigger: 'blur' }, | ||
| 157 | abreviations: { required: true, message: 'required', trigger: 'blur' }, | ||
| 158 | address: { required: true, message: 'required', trigger: 'blur' } | ||
| 159 | }, | ||
| 151 | coachOrLeaderFlag: '', | 160 | coachOrLeaderFlag: '', |
| 152 | matchInfo:{} | 161 | matchInfo:{} |
| 153 | }) | 162 | }) |
| ... | @@ -159,13 +168,14 @@ const { | ... | @@ -159,13 +168,14 @@ const { |
| 159 | signType, | 168 | signType, |
| 160 | participantsInfoArr, | 169 | participantsInfoArr, |
| 161 | cptId, | 170 | cptId, |
| 162 | rules, | 171 | rules,rules_en, |
| 163 | regionsList,matchInfo, | 172 | regionsList,matchInfo, |
| 164 | coachOrLeaderFlag, accept,typeOptions | 173 | coachOrLeaderFlag, accept,typeOptions |
| 165 | } = toRefs(data) | 174 | } = toRefs(data) |
| 166 | const uploadUrl = ref('/upload/upLoadToFileServer') | 175 | const uploadUrl = ref('/upload/upLoadToFileServer') |
| 167 | 176 | ||
| 168 | onMounted(() => { | 177 | onMounted(() => { |
| 178 | console.log(cptId.value,route.query,route.params) | ||
| 169 | // 获取团体信息 | 179 | // 获取团体信息 |
| 170 | getGroupInfo() | 180 | getGroupInfo() |
| 171 | signType.value = route.query.signType | 181 | signType.value = route.query.signType |
| ... | @@ -232,8 +242,8 @@ function submitForm() { | ... | @@ -232,8 +242,8 @@ function submitForm() { |
| 232 | if (valid) { | 242 | if (valid) { |
| 233 | console.log(form.value) | 243 | console.log(form.value) |
| 234 | for (const n of participantsInfoArr.value) { | 244 | for (const n of participantsInfoArr.value) { |
| 235 | if (n.status == 0 && (!n.value && !n.fixWxFile)) { | 245 | if (n.status == 0 && (!n.value && (!n.fixWxFile||!n.fixWxFile.length==0))) { |
| 236 | ElMessage.error(`请完善${n.name}信息`) | 246 | ElMessage.error(language.value==0?`请完善${n.name}信息`:`Please complete ${n.name} information`) |
| 237 | return | 247 | return |
| 238 | } | 248 | } |
| 239 | } | 249 | } |
| ... | @@ -243,7 +253,8 @@ function submitForm() { | ... | @@ -243,7 +253,8 @@ function submitForm() { |
| 243 | let fileInfo = {} | 253 | let fileInfo = {} |
| 244 | for (var p of participantsInfoArr.value) { | 254 | for (var p of participantsInfoArr.value) { |
| 245 | if (p.type == '2' && p.fixWxFile) { | 255 | if (p.type == '2' && p.fixWxFile) { |
| 246 | const temp = p.fixWxFile[0].name.split('.') | 256 | console.log(p.fixWxFile) |
| 257 | const temp = p.fixWxFile[0]?.name.split('.') | ||
| 247 | fileInfo = { | 258 | fileInfo = { |
| 248 | url: p.fixWxFile[0].url, | 259 | url: p.fixWxFile[0].url, |
| 249 | name: p.fixWxFile[0].name, | 260 | name: p.fixWxFile[0].name, | ... | ... |
-
Please register or sign in to post a comment