no message
Showing
39 changed files
with
625 additions
and
302 deletions
| ... | @@ -15,6 +15,12 @@ export function getMatchById(params) { | ... | @@ -15,6 +15,12 @@ export function getMatchById(params) { |
| 15 | params: params | 15 | params: params |
| 16 | }) | 16 | }) |
| 17 | } | 17 | } |
| 18 | export function refundApply(orderId) { | ||
| 19 | return request({ | ||
| 20 | url: `/league/signOrder/refundApply?orderId=${orderId}`, | ||
| 21 | method: 'post' | ||
| 22 | }) | ||
| 23 | } | ||
| 18 | 24 | ||
| 19 | export function getMySignCptList(query) { | 25 | export function getMySignCptList(query) { |
| 20 | return request({ | 26 | return request({ | ... | ... |
src/assets/v1/avatar.png
0 → 100644
783 Bytes
| ... | @@ -59,10 +59,19 @@ | ... | @@ -59,10 +59,19 @@ |
| 59 | <!-- | <span @click="goRegister">注册</span>--> | 59 | <!-- | <span @click="goRegister">注册</span>--> |
| 60 | </el-button> | 60 | </el-button> |
| 61 | 61 | ||
| 62 | <el-button v-if="isLogin" style="border-radius: 20px;" class="loginBtn"> | 62 | <el-dropdown v-if="isLogin" class="mr20"> |
| 63 | <span @click="router.push('/center/myInfo')">{{ language==0?'个人中心':'Personal' }}</span> | 63 | |
| 64 | | <span @click="logout()">{{language==0?'退出':'Exit'}}</span> | 64 | <el-avatar :icon="UserFilled"> |
| 65 | </el-button> | 65 | <!-- {{user.userName.substring(0,4)}}--> |
| 66 | </el-avatar> | ||
| 67 | |||
| 68 | <template #dropdown> | ||
| 69 | <el-dropdown-menu> | ||
| 70 | <el-dropdown-item @click="router.push('/center/myInfo')">{{ language==0?'个人中心':'Personal' }}</el-dropdown-item> | ||
| 71 | <el-dropdown-item @click="logout()">{{language==0?'退出':'Exit'}}</el-dropdown-item> | ||
| 72 | </el-dropdown-menu> | ||
| 73 | </template> | ||
| 74 | </el-dropdown> | ||
| 66 | </div> | 75 | </div> |
| 67 | </div> | 76 | </div> |
| 68 | <a class="ropenbtn" @click="showDrawer"> | 77 | <a class="ropenbtn" @click="showDrawer"> |
| ... | @@ -134,7 +143,7 @@ | ... | @@ -134,7 +143,7 @@ |
| 134 | import { computed, ref, watch } from 'vue' | 143 | import { computed, ref, watch } from 'vue' |
| 135 | import { useRoute, useRouter } from 'vue-router' | 144 | import { useRoute, useRouter } from 'vue-router' |
| 136 | import useUserStore from '@/store/modules/user' | 145 | import useUserStore from '@/store/modules/user' |
| 137 | import { Search } from '@element-plus/icons-vue' | 146 | import { Search,UserFilled } from '@element-plus/icons-vue' |
| 138 | import { getCurrentInstance, onMounted } from '@vue/runtime-core' | 147 | import { getCurrentInstance, onMounted } from '@vue/runtime-core' |
| 139 | import _ from 'lodash' | 148 | import _ from 'lodash' |
| 140 | import LoginDialog from '@/viewsPc/login' | 149 | import LoginDialog from '@/viewsPc/login' |
| ... | @@ -155,11 +164,11 @@ const loginForm = ref({}) | ... | @@ -155,11 +164,11 @@ const loginForm = ref({}) |
| 155 | const drawer = ref(false) | 164 | const drawer = ref(false) |
| 156 | const mode = ref('horizontal') | 165 | const mode = ref('horizontal') |
| 157 | const language = useStorage('language', 0) | 166 | const language = useStorage('language', 0) |
| 158 | 167 | const user = useUserStore().user | |
| 159 | 168 | ||
| 160 | onMounted(() => { | 169 | onMounted(() => { |
| 161 | console.log(window.location.href) | 170 | console.log(window.location.href) |
| 162 | if (useUserStore().user) { | 171 | if (user) { |
| 163 | isLogin.value = true | 172 | isLogin.value = true |
| 164 | } | 173 | } |
| 165 | if (route.fullPath.indexOf('news') > -1) { | 174 | if (route.fullPath.indexOf('news') > -1) { | ... | ... |
| ... | @@ -9,12 +9,19 @@ | ... | @@ -9,12 +9,19 @@ |
| 9 | <el-button v-if="!isLogin" style="border-radius: 20px;" class="loginBtn"> | 9 | <el-button v-if="!isLogin" style="border-radius: 20px;" class="loginBtn"> |
| 10 | <span @click="goLogin">{{ language==0?'登录':'LOGIN' }}</span> | 10 | <span @click="goLogin">{{ language==0?'登录':'LOGIN' }}</span> |
| 11 | </el-button> | 11 | </el-button> |
| 12 | 12 | <el-dropdown v-if="isLogin" class="mr20"> | |
| 13 | <el-button v-if="isLogin" style="border-radius: 20px;" class="loginBtn"> | 13 | |
| 14 | <span @click="router.push('/center/myInfo')">{{ language==0?'个人中心':'Personal' }}</span> | 14 | <el-avatar :icon="UserFilled"> |
| 15 | | | 15 | <!-- {{user.userName.substring(0,4)}}--> |
| 16 | <span @click="logout()">{{language==0?'退出':'Exit'}}</span> | 16 | </el-avatar> |
| 17 | </el-button> | 17 | |
| 18 | <template #dropdown> | ||
| 19 | <el-dropdown-menu> | ||
| 20 | <el-dropdown-item @click="router.push('/center/myInfo')">{{ language==0?'个人中心':'Personal' }}</el-dropdown-item> | ||
| 21 | <el-dropdown-item @click="logout()">{{language==0?'退出':'Exit'}}</el-dropdown-item> | ||
| 22 | </el-dropdown-menu> | ||
| 23 | </template> | ||
| 24 | </el-dropdown> | ||
| 18 | </div> | 25 | </div> |
| 19 | </div> | 26 | </div> |
| 20 | <!-- <a class="ropenbtn" @click="showDrawer">--> | 27 | <!-- <a class="ropenbtn" @click="showDrawer">--> |
| ... | @@ -85,7 +92,6 @@ | ... | @@ -85,7 +92,6 @@ |
| 85 | import { computed, ref, watch } from 'vue' | 92 | import { computed, ref, watch } from 'vue' |
| 86 | import { useRoute, useRouter } from 'vue-router' | 93 | import { useRoute, useRouter } from 'vue-router' |
| 87 | import useUserStore from '@/store/modules/user' | 94 | import useUserStore from '@/store/modules/user' |
| 88 | import { Search } from '@element-plus/icons-vue' | ||
| 89 | import { getCurrentInstance, onMounted } from '@vue/runtime-core' | 95 | import { getCurrentInstance, onMounted } from '@vue/runtime-core' |
| 90 | import _ from 'lodash' | 96 | import _ from 'lodash' |
| 91 | import LoginDialog from '@/viewsPc/login' | 97 | import LoginDialog from '@/viewsPc/login' |
| ... | @@ -95,7 +101,7 @@ import Captcha from './captcha' | ... | @@ -95,7 +101,7 @@ import Captcha from './captcha' |
| 95 | import CaptchaSms from './captchaSms' | 101 | import CaptchaSms from './captchaSms' |
| 96 | import cache from '@/plugins/cache' | 102 | import cache from '@/plugins/cache' |
| 97 | import {useStorage} from "@vueuse/core/index"; | 103 | import {useStorage} from "@vueuse/core/index"; |
| 98 | 104 | import {UserFilled } from '@element-plus/icons-vue' | |
| 99 | const router = useRouter() | 105 | const router = useRouter() |
| 100 | const route = useRoute() | 106 | const route = useRoute() |
| 101 | const { proxy } = getCurrentInstance() | 107 | const { proxy } = getCurrentInstance() | ... | ... |
| ... | @@ -464,31 +464,6 @@ export const constantRoutes = [ | ... | @@ -464,31 +464,6 @@ export const constantRoutes = [ |
| 464 | ] | 464 | ] |
| 465 | }, | 465 | }, |
| 466 | { | 466 | { |
| 467 | path: 'train', | ||
| 468 | component: Empty, | ||
| 469 | redirect: '/train/list', | ||
| 470 | children: [ | ||
| 471 | { | ||
| 472 | path: 'list', | ||
| 473 | component: () => import('@/viewsPc/train/index'), | ||
| 474 | name: 'trainList', | ||
| 475 | meta: { title: '培训' } | ||
| 476 | }, | ||
| 477 | { | ||
| 478 | path: 'detail/:id', | ||
| 479 | component: () => import('@/viewsPc/train/detail'), | ||
| 480 | name: 'trainDetail', | ||
| 481 | meta: { title: '培训详情' } | ||
| 482 | }, | ||
| 483 | { | ||
| 484 | path: 'signUp/:id', | ||
| 485 | component: () => import('@/viewsPc/train/signUp'), | ||
| 486 | name: 'trainSignUp', | ||
| 487 | meta: { title: '培训报名' } | ||
| 488 | } | ||
| 489 | ] | ||
| 490 | }, | ||
| 491 | { | ||
| 492 | path: 'center', | 467 | path: 'center', |
| 493 | component: () => import('@/viewsPc/center/index'), | 468 | component: () => import('@/viewsPc/center/index'), |
| 494 | children: [ | 469 | children: [ | ... | ... |
| ... | @@ -466,7 +466,7 @@ export const constantRoutes = [ | ... | @@ -466,7 +466,7 @@ export const constantRoutes = [ |
| 466 | }, | 466 | }, |
| 467 | { | 467 | { |
| 468 | path: 'list/:id/teamSignCn', | 468 | path: 'list/:id/teamSignCn', |
| 469 | component: () => import('@/viewsPc/match/teamSign_bak'), | 469 | component: () => import('@/viewsPc/match/teamSign_Cn'), |
| 470 | name: 'teamSignCn', | 470 | name: 'teamSignCn', |
| 471 | meta: { title: '团队报名-国内赛' } | 471 | meta: { title: '团队报名-国内赛' } |
| 472 | }, | 472 | }, | ... | ... |
| ... | @@ -430,31 +430,6 @@ export const constantRoutes = [ | ... | @@ -430,31 +430,6 @@ export const constantRoutes = [ |
| 430 | ] | 430 | ] |
| 431 | }, | 431 | }, |
| 432 | { | 432 | { |
| 433 | path: 'train', | ||
| 434 | component: Empty, | ||
| 435 | redirect: '/train/list', | ||
| 436 | children: [ | ||
| 437 | { | ||
| 438 | path: 'list', | ||
| 439 | component: () => import('@/viewsPc/train/index'), | ||
| 440 | name: 'trainList', | ||
| 441 | meta: { title: '培训' } | ||
| 442 | }, | ||
| 443 | { | ||
| 444 | path: 'detail/:id', | ||
| 445 | component: () => import('@/viewsPc/train/detail'), | ||
| 446 | name: 'trainDetail', | ||
| 447 | meta: { title: '培训详情' } | ||
| 448 | }, | ||
| 449 | { | ||
| 450 | path: 'signUp/:id', | ||
| 451 | component: () => import('@/viewsPc/train/signUp'), | ||
| 452 | name: 'trainSignUp', | ||
| 453 | meta: { title: '培训报名' } | ||
| 454 | } | ||
| 455 | ] | ||
| 456 | }, | ||
| 457 | { | ||
| 458 | path: 'center', | 433 | path: 'center', |
| 459 | component: () => import('@/viewsPc/center/index'), | 434 | component: () => import('@/viewsPc/center/index'), |
| 460 | children: [ | 435 | children: [ | ... | ... |
| ... | @@ -13,45 +13,46 @@ | ... | @@ -13,45 +13,46 @@ |
| 13 | <team-info :form="myform" 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" |
| 17 | :label-position="language==0?'left':'top'" style="max-width: 500px;margin: auto"> | ||
| 17 | <el-form-item :label="language==0?'用户名':'Account'"> | 18 | <el-form-item :label="language==0?'用户名':'Account'"> |
| 18 | {{ user.userName }} | 19 | {{ user.userName }} |
| 19 | </el-form-item> | 20 | </el-form-item> |
| 20 | <el-form-item :label="language==0?'姓名':'Real Name'" required prop="realName"> | 21 | <el-form-item :label="language==0?'姓名':'Real Name'" required prop="realName"> |
| 21 | <el-input v-model="myform.realName" disabled/> | 22 | <el-input v-model="myform.realName" disabled/> |
| 22 | </el-form-item> | 23 | </el-form-item> |
| 23 | <el-form-item :label="language==0?'性别':'Sex'" required > | 24 | <el-form-item :label="language==0?'性别':'Gender'" required > |
| 24 | <el-radio-group v-model="myform.sex"> | 25 | <el-radio-group v-model="myform.sex"> |
| 25 | <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio> | 26 | <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio> |
| 26 | <el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio> | 27 | <el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio> |
| 27 | </el-radio-group> | 28 | </el-radio-group> |
| 28 | </el-form-item> | 29 | </el-form-item> |
| 29 | <el-form-item :label="language==0?'出生日期':'Birthday'" required> | 30 | <el-form-item :label="language==0?'出生日期':'Birthday'"> |
| 30 | <el-date-picker | 31 | <el-date-picker |
| 31 | v-model="myform.birth" | 32 | v-model="myform.birth" |
| 32 | style="width: 100%;" | 33 | style="width: 100%;" |
| 33 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | 34 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" |
| 34 | /> | 35 | /> |
| 35 | </el-form-item> | 36 | </el-form-item> |
| 36 | <el-form-item label="Representing"> | 37 | <el-form-item :label="language==0?'代表':'Representing'" required> |
| 37 | <el-input v-model="myform.representing" disabled/> | 38 | <el-input v-model="myform.representing" disabled/> |
| 38 | </el-form-item> | 39 | </el-form-item> |
| 39 | <el-form-item label="Age group"> | 40 | <el-form-item :label="language==1?'Age group':'年龄组'" required> |
| 40 | <el-input v-model="myform.ageGroup" disabled/> | 41 | <el-input v-model="myform.ageGroup" disabled/> |
| 41 | </el-form-item> | 42 | </el-form-item> |
| 42 | <el-form-item label="Division"> | 43 | <el-form-item :label="language==0?'舞种':'Division'" required> |
| 43 | <el-input v-model="myform.division" disabled/> | 44 | <el-input v-model="myform.division" disabled/> |
| 44 | </el-form-item> | 45 | </el-form-item> |
| 45 | <el-form-item label="Status"> | 46 | <el-form-item :label="language==0?'状态':'Status'" required> |
| 46 | <el-input v-model="myform.wdsfStatus" disabled/> | 47 | <el-input v-model="myform.wdsfStatus" disabled/> |
| 47 | </el-form-item> | 48 | </el-form-item> |
| 48 | <el-form-item label="Passport" required> | 49 | <el-form-item :label="language==0?'证件号':'Passport number'"> |
| 49 | <el-input v-model="myform.passportNumber"/> | 50 | <el-input v-model="myform.passportNumber"/> |
| 50 | </el-form-item> | 51 | </el-form-item> |
| 51 | <el-form-item label="Passport File" required> | 52 | <el-form-item :label="language==0?'有效证件':'Valid Certificates Scanning Copy'" required> |
| 52 | <file-upload v-model="myform.passportUrl" :limit="1" :is-show-tip="false" :button-text="'Upload'"/> | 53 | <file-upload v-model="myform.passportUrl" :limit="1" :is-show-tip="false" :button-text="'Upload'"/> |
| 53 | </el-form-item> | 54 | </el-form-item> |
| 54 | <el-form-item :label="language==0?'WDSF会员号':'WDSF code'" prop="wdsfMin"> | 55 | <el-form-item :label="language==0?'WDSF会员号':'WDSF MIN'" prop="wdsfMin"> |
| 55 | {{myform.wdsfMin}} | 56 | {{myform.wdsfMin}} |
| 56 | </el-form-item> | 57 | </el-form-item> |
| 57 | <!-- <el-form-item :label="language==0?'证件类型':'ID type'" required prop="idcType">--> | 58 | <!-- <el-form-item :label="language==0?'证件类型':'ID type'" required prop="idcType">--> |
| ... | @@ -67,14 +68,14 @@ | ... | @@ -67,14 +68,14 @@ |
| 67 | <!-- <el-form-item :label="language==0?'证件号码':'ID NO'" prop="idcCode">--> | 68 | <!-- <el-form-item :label="language==0?'证件号码':'ID NO'" prop="idcCode">--> |
| 68 | <!-- <el-input v-model="myform.idcCode" @blur="checkCode"/>--> | 69 | <!-- <el-input v-model="myform.idcCode" @blur="checkCode"/>--> |
| 69 | <!-- </el-form-item>--> | 70 | <!-- </el-form-item>--> |
| 70 | <el-form-item :label="language==0?'类型':'Type'" required> | 71 | <!-- <el-form-item :label="language==0?'类型':'Type'" required>--> |
| 71 | <el-select v-model="myform.type" style="width: 100%;"> | 72 | <!-- <el-select v-model="myform.type" style="width: 100%;">--> |
| 72 | <el-option :label="language==0?'业余':'amateur'" value="0"/> | 73 | <!-- <el-option :label="language==0?'业余':'amateur'" value="0"/>--> |
| 73 | <el-option :label="language==0?'专业':'Professional'" value="1"/> | 74 | <!-- <el-option :label="language==0?'专业':'Professional'" value="1"/>--> |
| 74 | <el-option :label="language==0?'大专院校':'Colleges and universities'" value="2"/> | 75 | <!-- <el-option :label="language==0?'大专院校':'Colleges and universities'" value="2"/>--> |
| 75 | <el-option :label="language==0?'其他':'Other'" value="3"/> | 76 | <!-- <el-option :label="language==0?'其他':'Other'" value="3"/>--> |
| 76 | </el-select> | 77 | <!-- </el-select>--> |
| 77 | </el-form-item> | 78 | <!-- </el-form-item>--> |
| 78 | <!-- <el-form-item :label="language==0?'邮箱':'Email'" required prop="email">--> | 79 | <!-- <el-form-item :label="language==0?'邮箱':'Email'" required prop="email">--> |
| 79 | <!-- <el-input v-model="myform.email" type="email" :placeholder="language==0?'请输入内容':''"/>--> | 80 | <!-- <el-input v-model="myform.email" type="email" :placeholder="language==0?'请输入内容':''"/>--> |
| 80 | <!-- </el-form-item>--> | 81 | <!-- </el-form-item>--> |
| ... | @@ -165,12 +166,8 @@ function getData() { | ... | @@ -165,12 +166,8 @@ function getData() { |
| 165 | } | 166 | } |
| 166 | 167 | ||
| 167 | function save() { | 168 | function save() { |
| 168 | proxy.$refs['dialogRef'].validate((valid) => { | 169 | match.saveMyBaseInfo(myform.value).then(res => { |
| 169 | if(valid){ | 170 | ElMessage.success(language.value==0?'保存成功':'Save successfully') |
| 170 | match.saveMyBaseInfo().then(res => { | ||
| 171 | |||
| 172 | }) | ||
| 173 | } | ||
| 174 | }) | 171 | }) |
| 175 | 172 | ||
| 176 | } | 173 | } | ... | ... |
| ... | @@ -7,6 +7,7 @@ | ... | @@ -7,6 +7,7 @@ |
| 7 | <span class="bg-primary" v-if="n.auditStatus=='1'">{{ language==0?'待审核':'Auditing' }}</span> | 7 | <span class="bg-primary" v-if="n.auditStatus=='1'">{{ language==0?'待审核':'Auditing' }}</span> |
| 8 | <span class="bg-blue" v-if="n.auditStatus=='2'">{{ language==0?'审核通过':'Approved' }}</span> | 8 | <span class="bg-blue" v-if="n.auditStatus=='2'">{{ language==0?'审核通过':'Approved' }}</span> |
| 9 | <span class="bg-danger" v-if="n.auditStatus=='3'">{{ language==0?'审核驳回':'Reject' }}</span> | 9 | <span class="bg-danger" v-if="n.auditStatus=='3'">{{ language==0?'审核驳回':'Reject' }}</span> |
| 10 | <span class="bg-warning" v-if="n.auditStatus=='4'">{{ language==0?'已取消':'Canceled' }}</span> | ||
| 10 | </div> | 11 | </div> |
| 11 | <el-row :gutter="15"> | 12 | <el-row :gutter="15"> |
| 12 | <el-col :lg="6" :md="8" :xl="10"> | 13 | <el-col :lg="6" :md="8" :xl="10"> |
| ... | @@ -18,8 +19,8 @@ | ... | @@ -18,8 +19,8 @@ |
| 18 | <h3>{{ n.name }}</h3> | 19 | <h3>{{ n.name }}</h3> |
| 19 | </el-col> | 20 | </el-col> |
| 20 | <el-col :lg="8"> | 21 | <el-col :lg="8"> |
| 21 | <p class="ppl"><label>{{ language==0?'赛事类型':'Event Type' }}:</label>{{ n.level }}</p> | 22 | <p class="ppl"><label>{{ language==0?'赛事级别':'Event Type' }}:</label>{{ n.level }}</p> |
| 22 | <p class="ppl"><label v-if="n.groupName">{{ language==0?'参赛队':'Name of participating team' }}:</label>{{n.groupName}}</p> | 23 | <p class="ppl" v-if="n.languageSource=='100'"><label v-if="n.groupName">{{ language==0?'参赛队':'Name of participating team' }}:</label>{{n.groupName}}</p> |
| 23 | </el-col> | 24 | </el-col> |
| 24 | <el-col :lg="8"> | 25 | <el-col :lg="8"> |
| 25 | <p class="ppl"><label>{{ language==0?'比赛时间':'Event Date' }}:</label>{{ n.signBeginTime?.substring(0,10) }}~{{n.signEndTime.substring(0,10)}} | 26 | <p class="ppl"><label>{{ language==0?'比赛时间':'Event Date' }}:</label>{{ n.signBeginTime?.substring(0,10) }}~{{n.signEndTime.substring(0,10)}} |
| ... | @@ -38,7 +39,10 @@ | ... | @@ -38,7 +39,10 @@ |
| 38 | <el-button plain round type="primary" @click="reSign(n)" v-if="n.auditStatus=='3'"> | 39 | <el-button plain round type="primary" @click="reSign(n)" v-if="n.auditStatus=='3'"> |
| 39 | {{ language==0?'重新报名':'Re register' }}</el-button> | 40 | {{ language==0?'重新报名':'Re register' }}</el-button> |
| 40 | <el-button plain round type="primary" @click="goDetail(n)" v-if="n.auditStatus=='2'&&n.payStatus=='0'"> | 41 | <el-button plain round type="primary" @click="goDetail(n)" v-if="n.auditStatus=='2'&&n.payStatus=='0'"> |
| 41 | {{ language==0?'缴费':'pay' }}</el-button> | 42 | {{ language==0?'缴费':'Pay' }}</el-button> |
| 43 | <!-- <el-button plain round type="primary" @click="goRefund(n)" v-if="n.orderId">--> | ||
| 44 | <!-- {{ language==0?'退款':'Refund' }}--> | ||
| 45 | <!-- </el-button>--> | ||
| 42 | </div> | 46 | </div> |
| 43 | </el-col> | 47 | </el-col> |
| 44 | </el-row> | 48 | </el-row> |
| ... | @@ -71,6 +75,7 @@ import _ from 'lodash' | ... | @@ -71,6 +75,7 @@ import _ from 'lodash' |
| 71 | import useUserStore from "@/store/modules/user"; | 75 | import useUserStore from "@/store/modules/user"; |
| 72 | import cache from "@/plugins/cache"; | 76 | import cache from "@/plugins/cache"; |
| 73 | import {useStorage} from "@vueuse/core/index"; | 77 | import {useStorage} from "@vueuse/core/index"; |
| 78 | import {refundApply} from "@/apiPc/match"; | ||
| 74 | const language= useStorage('language',0) | 79 | const language= useStorage('language',0) |
| 75 | const router = useRouter() | 80 | const router = useRouter() |
| 76 | const {proxy} = getCurrentInstance() | 81 | const {proxy} = getCurrentInstance() |
| ... | @@ -136,7 +141,7 @@ function reSign(n){ | ... | @@ -136,7 +141,7 @@ function reSign(n){ |
| 136 | function continueSign(n){ | 141 | function continueSign(n){ |
| 137 | if(n.status=='0'){ | 142 | if(n.status=='0'){ |
| 138 | ElMessage({ | 143 | ElMessage({ |
| 139 | message: 'The current event is offline.', | 144 | message: language.value==0?'赛事已下线无法继续报名':'The current event is offline.', |
| 140 | type: 'warning' | 145 | type: 'warning' |
| 141 | }) | 146 | }) |
| 142 | return | 147 | return |
| ... | @@ -177,6 +182,20 @@ function goDetail(n){ | ... | @@ -177,6 +182,20 @@ function goDetail(n){ |
| 177 | } | 182 | } |
| 178 | }) | 183 | }) |
| 179 | } | 184 | } |
| 185 | function goRefund(n) { | ||
| 186 | ElMessageBox.confirm('Are you sure to refund?', 'Refund', { | ||
| 187 | confirmButtonText: 'Confirm', | ||
| 188 | cancelButtonText: 'Cancel', | ||
| 189 | type: 'warning', | ||
| 190 | }).then(() => { | ||
| 191 | match.refundApply(n.orderId).then(res=>{ | ||
| 192 | ElMessage({ | ||
| 193 | message: 'Refund success', | ||
| 194 | type: 'success' | ||
| 195 | }) | ||
| 196 | }) | ||
| 197 | }) | ||
| 198 | } | ||
| 180 | function getList() { | 199 | function getList() { |
| 181 | console.log(query2.value) | 200 | console.log(query2.value) |
| 182 | match.getMySignCptList(query2.value).then(res => { | 201 | match.getMySignCptList(query2.value).then(res => { |
| ... | @@ -204,8 +223,10 @@ function getList() { | ... | @@ -204,8 +223,10 @@ function getList() { |
| 204 | color: #FFFFFF; | 223 | color: #FFFFFF; |
| 205 | span{border-radius: 0px 10px 0px 10px;padding: 4px 10px;} | 224 | span{border-radius: 0px 10px 0px 10px;padding: 4px 10px;} |
| 206 | .bg-danger{background: #E60012;} | 225 | .bg-danger{background: #E60012;} |
| 226 | .bg-warning{background: #e89f39;} | ||
| 207 | .bg-pink{background: #F740A6;} | 227 | .bg-pink{background: #F740A6;} |
| 208 | .bg-primary{background: var(--el-color-primary)} | 228 | .bg-primary{background: var(--el-color-primary)} |
| 229 | .bg-blue{background: #00a0e9} | ||
| 209 | } | 230 | } |
| 210 | &:last-child { | 231 | &:last-child { |
| 211 | border-bottom: none; | 232 | border-bottom: none; | ... | ... |
| ... | @@ -2,7 +2,7 @@ | ... | @@ -2,7 +2,7 @@ |
| 2 | <el-card class="mb20"> | 2 | <el-card class="mb20"> |
| 3 | <div class="funcBtns"> | 3 | <div class="funcBtns"> |
| 4 | <el-button type="primary" @click="addMember">{{ language==0?'添加选手':'Add Player'}}</el-button> | 4 | <el-button type="primary" @click="addMember">{{ language==0?'添加选手':'Add Player'}}</el-button> |
| 5 | <el-button type="primary" plain @click="importSportman">{{ language==0?'导入选手':'Import Player' }}</el-button> | 5 | <el-button type="primary" v-if="group.type!='4'" plain @click="importSportman">{{ language==0?'导入选手':'Import Player' }}</el-button> |
| 6 | </div> | 6 | </div> |
| 7 | <div class="from-Card"> | 7 | <div class="from-Card"> |
| 8 | <el-form :inline="true" :model="query" class="mt20" :label-width="language==0?60:80" size="small"> | 8 | <el-form :inline="true" :model="query" class="mt20" :label-width="language==0?60:80" size="small"> | ... | ... |
| ... | @@ -30,7 +30,7 @@ | ... | @@ -30,7 +30,7 @@ |
| 30 | </el-select> | 30 | </el-select> |
| 31 | </el-form-item> | 31 | </el-form-item> |
| 32 | <el-form-item :label="language==0?'团体类型':'Group type'" prop="type"> | 32 | <el-form-item :label="language==0?'团体类型':'Group type'" prop="type"> |
| 33 | <el-select v-model="form.type" :placeholder="language==0?'请选择团体类型':''" style="width: 100%;"> | 33 | <el-select :disabled="form.type=='4'" v-model="form.type" :placeholder="language==0?'请选择团体类型':''" style="width: 100%;"> |
| 34 | <el-option :label="language==0?'普通院校':'School'" value="0" /> | 34 | <el-option :label="language==0?'普通院校':'School'" value="0" /> |
| 35 | <el-option :label="language==0?'专业舞蹈学校':'Professional dance school'" value="1" /> | 35 | <el-option :label="language==0?'专业舞蹈学校':'Professional dance school'" value="1" /> |
| 36 | <el-option :label="language==0?'培训机构/俱乐部':'Company/Club'" value="2" /> | 36 | <el-option :label="language==0?'培训机构/俱乐部':'Company/Club'" value="2" /> | ... | ... |
| ... | @@ -41,12 +41,13 @@ | ... | @@ -41,12 +41,13 @@ |
| 41 | 41 | ||
| 42 | <div class="box zn-bg"> | 42 | <div class="box zn-bg"> |
| 43 | <div class="zn-Box"> | 43 | <div class="zn-Box"> |
| 44 | <img class="bbbg" v-if="matchData.logoUrl" :src="fillImgUrl(matchData.logoUrl)"/> | 44 | <img class="bbbg" v-if="matchData?.logoUrl" :src="fillImgUrl(matchData?.logoUrl)"/> |
| 45 | <el-row> | 45 | <el-row> |
| 46 | <el-col :sm="24" :lg="10"> | 46 | <el-col :sm="24" :lg="10"> |
| 47 | <div class="bgbg"> | 47 | <div class="bgbg"> |
| 48 | <h1 style="color: #fff">WDSF ASIAN DANCESPORT FESTIVAL .WUXI 2024</h1> | 48 | <h1 style="color: #fff">WDSF ASIAN DANCESPORT FESTIVAL .WUXI 2024</h1> |
| 49 | <a class="zn-btn" href="/file/GUIDE.pdf" target="_blank">ENTRY GUIDE | 49 | <a class="zn-btn" href="/file/GUIDE.pdf" target="_blank"> |
| 50 | ENTRY GUIDE | ||
| 50 | <el-icon><download /></el-icon> | 51 | <el-icon><download /></el-icon> |
| 51 | </a> | 52 | </a> |
| 52 | </div> | 53 | </div> | ... | ... |
| ... | @@ -359,6 +359,7 @@ function goNext() { | ... | @@ -359,6 +359,7 @@ function goNext() { |
| 359 | } | 359 | } |
| 360 | 360 | ||
| 361 | function goPrev() { | 361 | function goPrev() { |
| 362 | if(isNational.value){ | ||
| 362 | router.push({ | 363 | router.push({ |
| 363 | name: `teamSign`, | 364 | name: `teamSign`, |
| 364 | query: { | 365 | query: { |
| ... | @@ -367,6 +368,16 @@ function goPrev() { | ... | @@ -367,6 +368,16 @@ function goPrev() { |
| 367 | isNational:isNational.value | 368 | isNational:isNational.value |
| 368 | } | 369 | } |
| 369 | }) | 370 | }) |
| 371 | } else { | ||
| 372 | router.push({ | ||
| 373 | name: `teamSignCn`, | ||
| 374 | query: { | ||
| 375 | matchId: matchId, | ||
| 376 | groupId: groupId.value, | ||
| 377 | isNational: false | ||
| 378 | } | ||
| 379 | }) | ||
| 380 | } | ||
| 370 | } | 381 | } |
| 371 | 382 | ||
| 372 | function editPerson(id) { | 383 | function editPerson(id) { | ... | ... |
| ... | @@ -17,16 +17,18 @@ | ... | @@ -17,16 +17,18 @@ |
| 17 | <h3 class="panel-title" v-else>My Information</h3> | 17 | <h3 class="panel-title" v-else>My Information</h3> |
| 18 | </div> | 18 | </div> |
| 19 | <div class="panel-body"> | 19 | <div class="panel-body"> |
| 20 | <div class="chooseForm" style="display: flex"> | 20 | <div class="text-danger fontsize14 mb10" v-if="language==0">*报名双人项目请勾选您的舞伴</div> |
| 21 | <div @click="editPerson" style="width: 50%;text-align: center;"> | 21 | <div class="text-danger fontsize14 mb10" v-else>*Please select your dance mate if you are signing up for a double event</div> |
| 22 | <div class="chooseForm" style="display: flex;flex-wrap: wrap;"> | ||
| 23 | <div @click="editPerson" class="mb20" style="width: 50%;text-align: center;"> | ||
| 22 | <el-avatar fit="cover" v-if="form.picUrl" :size="60" :src="fillImgUrl(form.picUrl)"/> | 24 | <el-avatar fit="cover" v-if="form.picUrl" :size="60" :src="fillImgUrl(form.picUrl)"/> |
| 23 | <div v-else> | 25 | <div v-else> |
| 24 | <el-avatar fit="cover" v-if="form.sex == 0" :size="60" src="/img/head1.png"/> | 26 | <el-avatar fit="cover" v-if="form.sex == 0" :size="60" src="/img/head1.png"/> |
| 25 | <el-avatar fit="cover" v-if="form.sex == 1" :size="60" src="/img/head0.png"/> | 27 | <el-avatar fit="cover" v-if="form.sex == 1" :size="60" src="/img/head0.png"/> |
| 26 | </div> | 28 | </div> |
| 27 | <div class="text-center mt10"> | 29 | <div class="text-center mt10"> |
| 28 | <span>{{ form.realName }}</span> | 30 | <span class="mName">{{ form.realName }}</span> |
| 29 | <el-icon> | 31 | <el-icon size="20"> |
| 30 | <Edit/> | 32 | <Edit/> |
| 31 | </el-icon> | 33 | </el-icon> |
| 32 | </div> | 34 | </div> |
| ... | @@ -37,25 +39,24 @@ | ... | @@ -37,25 +39,24 @@ |
| 37 | <el-checkbox :label="form.danceMate.id"> | 39 | <el-checkbox :label="form.danceMate.id"> |
| 38 | <div> | 40 | <div> |
| 39 | <el-avatar fit="cover" v-if="form.danceMate.picUrl" :size="60" :src="fillImgUrl(form.danceMate.picUrl)"/> | 41 | <el-avatar fit="cover" v-if="form.danceMate.picUrl" :size="60" :src="fillImgUrl(form.danceMate.picUrl)"/> |
| 40 | |||
| 41 | <el-avatar fit="cover" v-else-if="form.danceMate.sex == 0" :size="60" | 42 | <el-avatar fit="cover" v-else-if="form.danceMate.sex == 0" :size="60" |
| 42 | src="/img/head1.png"/> | 43 | src="/img/head1.png"/> |
| 43 | <el-avatar fit="cover" v-else-if="form.danceMate.sex == 1" :size="60" | 44 | <el-avatar fit="cover" v-else-if="form.danceMate.sex == 1" :size="60" |
| 44 | src="/img/head0.png"/> | 45 | src="/img/head0.png"/> |
| 45 | <div class="text-center mt10" @click="editMate(form.danceMate)"> | 46 | <div class="text-center mt10" @click="editMate(form.danceMate)"> |
| 46 | <span>{{ form.danceMate.realName }}</span> | 47 | <span class="mName">{{ form.danceMate.realName }}</span> |
| 47 | <el-icon @click.stop="editMate(form.danceMate)"> | 48 | <el-icon @click.stop="editMate(form.danceMate)" size="20"> |
| 48 | <Edit/> | 49 | <Edit/> |
| 49 | </el-icon> | 50 | </el-icon> |
| 50 | <el-icon @click.stop="delMate(form.danceMate)"> | 51 | <!-- <el-icon @click.stop="delMate(form.danceMate)">--> |
| 51 | <Delete/> | 52 | <!-- <Delete/>--> |
| 52 | </el-icon> | 53 | <!-- </el-icon>--> |
| 53 | </div> | 54 | </div> |
| 54 | </div> | 55 | </div> |
| 55 | </el-checkbox> | 56 | </el-checkbox> |
| 56 | </el-checkbox-group> | 57 | </el-checkbox-group> |
| 57 | </div> | 58 | </div> |
| 58 | <div style="width:50%;" v-else @click="addMate"> | 59 | <div style="min-width:50%;" v-else @click="addMate"> |
| 59 | <div class="addBttn" style="margin: 0 auto">+</div> | 60 | <div class="addBttn" style="margin: 0 auto">+</div> |
| 60 | <div class="text-center mt10 text-primary text-sm"> | 61 | <div class="text-center mt10 text-primary text-sm"> |
| 61 | Please add your partner | 62 | Please add your partner |
| ... | @@ -133,23 +134,24 @@ | ... | @@ -133,23 +134,24 @@ |
| 133 | </el-col> | 134 | </el-col> |
| 134 | </el-row> | 135 | </el-row> |
| 135 | <el-table class="mt20" :data="myMemberTable" border> | 136 | <el-table class="mt20" :data="myMemberTable" border> |
| 136 | <el-table-column type="index" label="Index" width="70" align="center"/> | 137 | <el-table-column type="index" :label="language==0?'序号':'Index'" width="70" align="center"/> |
| 137 | <el-table-column :label="language==0?'姓氏':'surname'" prop="xing" min-width="100"/> | 138 | <el-table-column :label="language==0?'姓氏':'Surname'" prop="xing" min-width="100"/> |
| 138 | <el-table-column :label="language==0?'名':'name'" prop="ming" min-width="100"/> | 139 | <el-table-column :label="language==0?'名':'Name'" prop="ming" min-width="100"/> |
| 139 | <el-table-column label="Passport number" prop="idcCode" min-width="120"/> | 140 | <el-table-column :label="language==0?'国家/地区':'Nationality'" prop="countryName" min-width="100"/> |
| 140 | <el-table-column label="Birthday" prop="birth"/> | 141 | <!-- <el-table-column :label="language==0?'证件号':'Valid Documents'" prop="idcCode" min-width="120"/>--> |
| 141 | <el-table-column label="Sex" prop="sexStr"/> | 142 | <!-- <el-table-column label="Birthday" prop="birth"/>--> |
| 142 | <el-table-column label="Role" min-width="160"> | 143 | <el-table-column :label="language==0?'性别':'Gender'" prop="sexStr"/> |
| 144 | <el-table-column :label="language==0?'会员角色':'Role'" min-width="160"> | ||
| 143 | <template #default="scope"> | 145 | <template #default="scope"> |
| 144 | <div class="roletd"> | 146 | <div class="roletd"> |
| 145 | <span v-for="item in scope.row.label?.split(',')" :key="item.id" class="text-primary"> | 147 | <span v-for="item in scope.row.label?.split(',')" :key="item.id" class="text-primary"> |
| 146 | <span v-if="item==='0'" class="ml5">{{ language == 0 ? '运动员' : 'athletes' }}</span> | 148 | <span v-if="item==='0'" class="ml5">{{ language == 0 ? '运动员' : 'athletes' }}</span> |
| 147 | <span v-if="item==='1'" class="ml5">{{ language == 0 ? '教练' : 'coach' }}</span> | 149 | <span v-if="item==='1'" class="ml5">{{ language == 0 ? '教练' : 'coach' }}</span> |
| 148 | <span v-if="item==='2'" class="ml5">{{ language == 0 ? '领队' : 'team leader' }}</span> | 150 | <span v-if="item==='2'" class="ml5">{{ language == 0 ? '领队' : 'team leader' }}</span> |
| 149 | <span v-if="item==='3'" class="ml5">{{ language == 0 ? '队医' : 'team doctor' }}</span> | 151 | <span v-if="item==='4'" class="ml5">{{ language == 0 ? '队医' : 'team doctor' }}</span> |
| 150 | <span v-if="item==='4'" class="ml5">{{ language == 0 ? '翻译' : 'translator' }}</span> | 152 | <span v-if="item==='5'" class="ml5">{{ language == 0 ? '翻译' : 'translator' }}</span> |
| 151 | <span v-if="item==='5'" class="ml5">{{ language == 0 ? '官员' : 'official' }}</span> | 153 | <span v-if="item==='6'" class="ml5">{{ language == 0 ? '官员' : 'official' }}</span> |
| 152 | <span v-if="item==='6'" class="ml5">{{ language == 0 ? '其他' : 'other' }}</span> | 154 | <span v-if="item==='3'" class="ml5">{{ language == 0 ? '其他' : 'other' }}</span> |
| 153 | </span> | 155 | </span> |
| 154 | </div> | 156 | </div> |
| 155 | </template> | 157 | </template> |
| ... | @@ -184,6 +186,7 @@ | ... | @@ -184,6 +186,7 @@ |
| 184 | 186 | ||
| 185 | <dialogEditWdsf ref="dialogEditWdsfRef" @submitForm="changeMeDone"/> | 187 | <dialogEditWdsf ref="dialogEditWdsfRef" @submitForm="changeMeDone"/> |
| 186 | <dialogEditAccompany ref="dialogEditAccompanyRef" @submitForm="getMyMemberTable"/> | 188 | <dialogEditAccompany ref="dialogEditAccompanyRef" @submitForm="getMyMemberTable"/> |
| 189 | <addCoachEn ref="dialogAddCoachEnRef" @submitForm="getMyMemberTable"/> | ||
| 187 | <dialogExtraForm ref="popExtraForm" @submitForm="getSignInfoList"/> | 190 | <dialogExtraForm ref="popExtraForm" @submitForm="getSignInfoList"/> |
| 188 | </div> | 191 | </div> |
| 189 | </template> | 192 | </template> |
| ... | @@ -192,10 +195,11 @@ | ... | @@ -192,10 +195,11 @@ |
| 192 | import {ref, reactive, toRefs} from 'vue' | 195 | import {ref, reactive, toRefs} from 'vue' |
| 193 | import * as match from '@/apiPc/match' | 196 | import * as match from '@/apiPc/match' |
| 194 | import {getCurrentInstance, onMounted} from '@vue/runtime-core' | 197 | import {getCurrentInstance, onMounted} from '@vue/runtime-core' |
| 195 | import dialogEditWdsf from './components/addWdsf' | 198 | import DialogEditWdsf from './components/addWdsf' |
| 196 | import dialogEditAccompany from './components/addAccompany' | 199 | import DialogEditAccompany from './components/addAccompany' |
| 197 | import dialogAllSportsmanList from './components/allSportsmanList' | 200 | import AddCoachEn from './components/addCoach_en' |
| 198 | import dialogExtraForm from './components/extraForm' | 201 | import DialogAllSportsmanList from './components/allSportsmanList' |
| 202 | import DialogExtraForm from './components/extraForm' | ||
| 199 | import {Search, Switch} from "@element-plus/icons-vue"; | 203 | import {Search, Switch} from "@element-plus/icons-vue"; |
| 200 | 204 | ||
| 201 | const {proxy} = getCurrentInstance() | 205 | const {proxy} = getCurrentInstance() |
| ... | @@ -295,6 +299,8 @@ function getMyInfo() { | ... | @@ -295,6 +299,8 @@ function getMyInfo() { |
| 295 | form.value = res.data | 299 | form.value = res.data |
| 296 | myId.value = res.data.id | 300 | myId.value = res.data.id |
| 297 | getProjectList() | 301 | getProjectList() |
| 302 | }).catch(err => { | ||
| 303 | router.push({name: 'home'}) | ||
| 298 | }) | 304 | }) |
| 299 | } | 305 | } |
| 300 | 306 | ||
| ... | @@ -309,8 +315,8 @@ function getMyMemberTable() { | ... | @@ -309,8 +315,8 @@ function getMyMemberTable() { |
| 309 | } | 315 | } |
| 310 | 316 | ||
| 311 | function addAccompany() { | 317 | function addAccompany() { |
| 312 | proxy.$refs['dialogEditAccompanyRef'].open({ | 318 | proxy.$refs['dialogAddCoachEnRef'].open({ |
| 313 | title: 'Add accompanying personnel', | 319 | title: language.value == 0 ? '添加随行人员' : 'Add accompanying personnel', |
| 314 | cptId: matchId.value, | 320 | cptId: matchId.value, |
| 315 | id: 0 | 321 | id: 0 |
| 316 | }) | 322 | }) |
| ... | @@ -398,8 +404,8 @@ function submitForm(n) { | ... | @@ -398,8 +404,8 @@ function submitForm(n) { |
| 398 | if (myMemberTable.value.length == 0) { | 404 | if (myMemberTable.value.length == 0) { |
| 399 | ElMessageBox.confirm(language.value == 0 ? '是否继续添加随行人员?' : 'Do you want to add casual personnel?', | 405 | ElMessageBox.confirm(language.value == 0 ? '是否继续添加随行人员?' : 'Do you want to add casual personnel?', |
| 400 | language.value == 0 ? '提示' : 'Tip', { | 406 | language.value == 0 ? '提示' : 'Tip', { |
| 401 | confirmButtonText: language.value == 0 ? '确定' : 'Yes', | 407 | confirmButtonText: language.value == 0 ? '是' : 'Yes', |
| 402 | cancelButtonText: language.value == 0 ? '取消' : 'Cancel', | 408 | cancelButtonText: language.value == 0 ? '否,进入下一步' : 'N0,Go Next', |
| 403 | type: 'warning' | 409 | type: 'warning' |
| 404 | }).then(() => { | 410 | }).then(() => { |
| 405 | 411 | ||
| ... | @@ -412,8 +418,8 @@ function submitForm(n) { | ... | @@ -412,8 +418,8 @@ function submitForm(n) { |
| 412 | } else { | 418 | } else { |
| 413 | ElMessageBox.confirm(language.value == 0 ? '是否添加随行人员?' : 'Do you want to add casual personnel?', | 419 | ElMessageBox.confirm(language.value == 0 ? '是否添加随行人员?' : 'Do you want to add casual personnel?', |
| 414 | language.value == 0 ? '提示' : 'Tip', { | 420 | language.value == 0 ? '提示' : 'Tip', { |
| 415 | confirmButtonText: language.value == 0 ? '确定' : 'Yes', | 421 | confirmButtonText: language.value == 0 ? '是' : 'Yes', |
| 416 | cancelButtonText: language.value == 0 ? '取消' : 'Cancel', | 422 | cancelButtonText: language.value == 0 ? '否,进入下一步' : 'N0,Go Next', |
| 417 | type: 'warning' | 423 | type: 'warning' |
| 418 | }).then(() => { | 424 | }).then(() => { |
| 419 | showPersonList.value = true | 425 | showPersonList.value = true |
| ... | @@ -553,6 +559,11 @@ function delperson(p) { | ... | @@ -553,6 +559,11 @@ function delperson(p) { |
| 553 | 559 | ||
| 554 | function signUp() { | 560 | function signUp() { |
| 555 | if (projectIds.value.length == 0) { | 561 | if (projectIds.value.length == 0) { |
| 562 | if (language.value == 0) { | ||
| 563 | ElMessage.warning('请选择项目') | ||
| 564 | } else { | ||
| 565 | ElMessage.warning('Please select project') | ||
| 566 | } | ||
| 556 | return | 567 | return |
| 557 | } | 568 | } |
| 558 | let obj = { | 569 | let obj = { |
| ... | @@ -623,7 +634,9 @@ const goPersonInfo = (row) => { | ... | @@ -623,7 +634,9 @@ const goPersonInfo = (row) => { |
| 623 | title: language.value==0?'完善补充信息':'Complete the supplementary information', | 634 | title: language.value==0?'完善补充信息':'Complete the supplementary information', |
| 624 | participantsInfoArr: extraform.value, | 635 | participantsInfoArr: extraform.value, |
| 625 | personId: row.personInfo.id, | 636 | personId: row.personInfo.id, |
| 626 | extraId: row.extraPersonInfo?.id || 0 | 637 | extraId: row.extraPersonInfo?.id || 0, |
| 638 | isNational:true | ||
| 639 | |||
| 627 | } | 640 | } |
| 628 | proxy.$refs['popExtraForm'].open(_.cloneDeep(params)) | 641 | proxy.$refs['popExtraForm'].open(_.cloneDeep(params)) |
| 629 | } | 642 | } |
| ... | @@ -673,7 +686,21 @@ function delMate(mate) { | ... | @@ -673,7 +686,21 @@ function delMate(mate) { |
| 673 | } | 686 | } |
| 674 | 687 | ||
| 675 | function changeMate(e) { | 688 | function changeMate(e) { |
| 676 | console.log(e, mateChosed.value) | 689 | console.log(e, mateChosed.value,form.value.danceMate.passportUrl) |
| 690 | if(form.value.danceMate.passportUrl==''||!form.value.danceMate.passportUrl){ | ||
| 691 | mateChosed.value = [] | ||
| 692 | ElMessageBox.confirm(language.value == 0 ? '请先上传舞伴的有效证件' : 'Please upload the valid certificate of the teammate', | ||
| 693 | language.value == 0 ? '提示' : 'Tip', | ||
| 694 | { | ||
| 695 | confirmButtonText: language.value == 0 ? '确定' : 'Yes', | ||
| 696 | cancelButtonText: language.value == 0 ? '取消' : 'Cancel', | ||
| 697 | }).then(()=>{ | ||
| 698 | editMate(form.value.danceMate) | ||
| 699 | return | ||
| 700 | }).catch(()=>{ | ||
| 701 | return | ||
| 702 | }) | ||
| 703 | } | ||
| 677 | getProjectList() | 704 | getProjectList() |
| 678 | } | 705 | } |
| 679 | 706 | ||
| ... | @@ -845,4 +872,6 @@ function switchTabletype() { | ... | @@ -845,4 +872,6 @@ function switchTabletype() { |
| 845 | display: inline-block | 872 | display: inline-block |
| 846 | } | 873 | } |
| 847 | } | 874 | } |
| 875 | .mName{color: #000;font-size: 15px;display: inline-block;max-width: 10em;text-overflow: ellipsis; | ||
| 876 | overflow: hidden;} | ||
| 848 | </style> | 877 | </style> | ... | ... |
| ... | @@ -13,7 +13,7 @@ | ... | @@ -13,7 +13,7 @@ |
| 13 | <h3 class="panel-title" v-if="language==0">选择参赛运动员清单</h3> | 13 | <h3 class="panel-title" v-if="language==0">选择参赛运动员清单</h3> |
| 14 | <h3 class="panel-title" v-else>Select list of participating athletes</h3> | 14 | <h3 class="panel-title" v-else>Select list of participating athletes</h3> |
| 15 | <!-- <a class="fr" @click="emptyChoosed">{{ language == 0 ? '清空' : 'Empty' }}</a>--> | 15 | <!-- <a class="fr" @click="emptyChoosed">{{ language == 0 ? '清空' : 'Empty' }}</a>--> |
| 16 | <el-button type="primary" plain class="fr" @click="chooseSportman"> | 16 | <el-button type="primary" plain class="fr" @click="chooseSportman" size="small" style="top:12px"> |
| 17 | {{ language == 0 ? '选手管理' : 'Player Management' }} | 17 | {{ language == 0 ? '选手管理' : 'Player Management' }} |
| 18 | </el-button> | 18 | </el-button> |
| 19 | </div> | 19 | </div> |
| ... | @@ -23,7 +23,7 @@ | ... | @@ -23,7 +23,7 @@ |
| 23 | @change="changechoosed"> | 23 | @change="changechoosed"> |
| 24 | <el-option v-for="c in athletesList" :key="c.id" :label="c.xing + c.ming" :value="c.id"> | 24 | <el-option v-for="c in athletesList" :key="c.id" :label="c.xing + c.ming" :value="c.id"> |
| 25 | <div class="flexOption"> | 25 | <div class="flexOption"> |
| 26 | {{ c.xing }}{{ c.ming }} | 26 | {{ c.realName }} |
| 27 | <img v-if="c.sex=='0'" src="@/assets/img/female.png"/> | 27 | <img v-if="c.sex=='0'" src="@/assets/img/female.png"/> |
| 28 | <img v-if="c.sex=='1'" src="@/assets/img/male.png"/> | 28 | <img v-if="c.sex=='1'" src="@/assets/img/male.png"/> |
| 29 | <!-- -{{ c.age }}--> | 29 | <!-- -{{ c.age }}--> |
| ... | @@ -39,6 +39,19 @@ | ... | @@ -39,6 +39,19 @@ |
| 39 | {{ language == 0 ? '重选' : 'Re-select' }} | 39 | {{ language == 0 ? '重选' : 'Re-select' }} |
| 40 | </el-button> | 40 | </el-button> |
| 41 | </div> | 41 | </div> |
| 42 | <!-- --> | ||
| 43 | <div class="pd20 text-center" v-if="athletesList.length==0"> | ||
| 44 | <span>{{ language == 0 ? '暂无运动员' : 'No athletes' }} | ||
| 45 | </span> | ||
| 46 | <span class="text-primary" @click="chooseSportman">{{ language == 0 ? '去创建':' Create' }}</span> | ||
| 47 | </div> | ||
| 48 | <div class="pd20 text-center" v-if="choosedchoosed.length==0"> | ||
| 49 | <span class="text-warning"> | ||
| 50 | {{ language == 0 ? '请在上面的下拉框中选择运动员' : 'Please select athletes in the drop-down box' }} | ||
| 51 | </span> | ||
| 52 | </div> | ||
| 53 | |||
| 54 | |||
| 42 | <!-- <div class="noPicChooseForm" id="chooseArr">--> | 55 | <!-- <div class="noPicChooseForm" id="chooseArr">--> |
| 43 | <!-- <el-checkbox-group v-model="choosedchoosed" @change="changechoosed">--> | 56 | <!-- <el-checkbox-group v-model="choosedchoosed" @change="changechoosed">--> |
| 44 | <!-- <el-checkbox v-for="c in choosedListBak" :value="c.id" border>--> | 57 | <!-- <el-checkbox v-for="c in choosedListBak" :value="c.id" border>--> |
| ... | @@ -117,7 +130,7 @@ | ... | @@ -117,7 +130,7 @@ |
| 117 | <!-- </div>--> | 130 | <!-- </div>--> |
| 118 | <sign-info-table v-if="tableType==0" :match-id="matchId" | 131 | <sign-info-table v-if="tableType==0" :match-id="matchId" |
| 119 | :extraform="extraform" :list="signInfoList" | 132 | :extraform="extraform" :list="signInfoList" |
| 120 | @editExtra="goPersonInfo"/> | 133 | @editExtra="goPersonInfo" :isNational="isNational"/> |
| 121 | <zu-table v-else :list="zuTableList" @delete="removeThis"/> | 134 | <zu-table v-else :list="zuTableList" @delete="removeThis"/> |
| 122 | <div class="text-center mt20"> | 135 | <div class="text-center mt20"> |
| 123 | <el-button type="primary" class="w200px" plain round @click="goPrev()"> | 136 | <el-button type="primary" class="w200px" plain round @click="goPrev()"> |
| ... | @@ -146,12 +159,12 @@ | ... | @@ -146,12 +159,12 @@ |
| 146 | </el-dialog> | 159 | </el-dialog> |
| 147 | <dialogExtraForm ref="popExtraForm" @submitForm="getSignInfoList"/> | 160 | <dialogExtraForm ref="popExtraForm" @submitForm="getSignInfoList"/> |
| 148 | <dialogWdsf ref="popWdsf" @submitForm="getAthletesList" @cancel="removeCurproject"/> | 161 | <dialogWdsf ref="popWdsf" @submitForm="getAthletesList" @cancel="removeCurproject"/> |
| 149 | <el-tour v-model="openTour" :current="tourCurrent"> | 162 | <!-- <el-tour v-model="openTour" :current="tourCurrent">--> |
| 150 | <el-tour-step target="#addRef" title="第一步" description="点击选择运动员" :next-button-props="nextButtonProps"/> | 163 | <!-- <el-tour-step target="#addRef" title="第一步" description="点击选择运动员" :next-button-props="nextButtonProps"/>--> |
| 151 | <el-tour-step v-if="choosedList.length>0" target="#chooseArr" title="第二步" description="勾选报项运动员"/> | 164 | <!-- <el-tour-step v-if="choosedList.length>0" target="#chooseArr" title="第二步" description="勾选报项运动员"/>--> |
| 152 | <el-tour-step v-if="projectList.length>0" target="#projectbox" title="第三步" description="选择报名项目"/> | 165 | <!-- <el-tour-step v-if="projectList.length>0" target="#projectbox" title="第三步" description="选择报名项目"/>--> |
| 153 | <el-tour-step v-if="projectIds.length>0" target="#signUpBtn" title="第四步" description="点击报项"/> | 166 | <!-- <el-tour-step v-if="projectIds.length>0" target="#signUpBtn" title="第四步" description="点击报项"/>--> |
| 154 | </el-tour> | 167 | <!-- </el-tour>--> |
| 155 | </div> | 168 | </div> |
| 156 | </template> | 169 | </template> |
| 157 | 170 | ||
| ... | @@ -342,7 +355,8 @@ function submitForm() { | ... | @@ -342,7 +355,8 @@ function submitForm() { |
| 342 | name: 'signPreview', | 355 | name: 'signPreview', |
| 343 | query: { | 356 | query: { |
| 344 | matchId: matchId.value, | 357 | matchId: matchId.value, |
| 345 | groupId: groupId.value | 358 | groupId: groupId.value, |
| 359 | isNational: isNational.value | ||
| 346 | } | 360 | } |
| 347 | }) | 361 | }) |
| 348 | } | 362 | } |
| ... | @@ -519,7 +533,8 @@ const goPersonInfo = (row) => { | ... | @@ -519,7 +533,8 @@ const goPersonInfo = (row) => { |
| 519 | title: language.value == 0 ? '完善补充信息' : 'Complete the supplementary information', | 533 | title: language.value == 0 ? '完善补充信息' : 'Complete the supplementary information', |
| 520 | participantsInfoArr: extraform.value, | 534 | participantsInfoArr: extraform.value, |
| 521 | personId: row.personInfo.id, | 535 | personId: row.personInfo.id, |
| 522 | extraId: row.extraPersonInfo?.id || 0 | 536 | extraId: row.extraPersonInfo?.id || 0, |
| 537 | isNational: isNational.value | ||
| 523 | } | 538 | } |
| 524 | proxy.$refs['popExtraForm'].open(_.cloneDeep(params)) | 539 | proxy.$refs['popExtraForm'].open(_.cloneDeep(params)) |
| 525 | } | 540 | } | ... | ... |
| ... | @@ -61,12 +61,11 @@ const goHome = () => { | ... | @@ -61,12 +61,11 @@ const goHome = () => { |
| 61 | } | 61 | } |
| 62 | const goSign = () => { | 62 | const goSign = () => { |
| 63 | router.push({ | 63 | router.push({ |
| 64 | name: `matchDetail`, | 64 | name: `matchList` |
| 65 | params:{id:0} | ||
| 66 | }) | 65 | }) |
| 67 | } | 66 | } |
| 68 | </script> | 67 | </script> |
| 69 | 68 | ||
| 70 | <style scoped lang="scss"> | 69 | <style scoped lang="scss"> |
| 71 | .border-info{padding: 30px;line-height: 2;} | 70 | .border-info{padding: 30px;line-height: 2;} |
| 72 | </style> | 71 | </style> | ... | ... |
| ... | @@ -174,8 +174,6 @@ function submitForm() { | ... | @@ -174,8 +174,6 @@ function submitForm() { |
| 174 | } | 174 | } |
| 175 | if(Array.isArray(form.value.passportUrl)){ | 175 | if(Array.isArray(form.value.passportUrl)){ |
| 176 | form.value.passportUrl = form.value.passportUrl[0].url | 176 | form.value.passportUrl = form.value.passportUrl[0].url |
| 177 | } else { | ||
| 178 | form.value.passportUrl = form.value.passportUrl | ||
| 179 | } | 177 | } |
| 180 | proxy.$refs['dialogRef'].validate((valid) => { | 178 | proxy.$refs['dialogRef'].validate((valid) => { |
| 181 | if (valid) { | 179 | if (valid) { | ... | ... |
| ... | @@ -324,12 +324,17 @@ function submitForm() { | ... | @@ -324,12 +324,17 @@ function submitForm() { |
| 324 | return | 324 | return |
| 325 | } | 325 | } |
| 326 | } | 326 | } |
| 327 | 327 | if(!form.value.passportUrl){ | |
| 328 | ElMessage.warning(language.value == 0 ? '请上传有效证件' :'Please upload your passport file') | ||
| 329 | return | ||
| 330 | } | ||
| 328 | if (typeof (form.value.regionId) === 'object') { | 331 | if (typeof (form.value.regionId) === 'object') { |
| 329 | form.value.regionId = _.last(form.value.regionId) | 332 | form.value.regionId = _.last(form.value.regionId) |
| 330 | } | 333 | } |
| 331 | form.value.label = form.value.labelArr.toString() | 334 | form.value.label = form.value.labelArr.toString() |
| 332 | 335 | if(Array.isArray(form.value.passportUrl)){ | |
| 336 | form.value.passportUrl = form.value.passportUrl[0].url | ||
| 337 | } | ||
| 333 | if (groupId.value != 0) { | 338 | if (groupId.value != 0) { |
| 334 | // 团队 | 339 | // 团队 |
| 335 | form.value.groupId = groupId.value | 340 | form.value.groupId = groupId.value | ... | ... |
| ... | @@ -25,7 +25,7 @@ | ... | @@ -25,7 +25,7 @@ |
| 25 | </template> | 25 | </template> |
| 26 | </el-input> | 26 | </el-input> |
| 27 | </el-form-item> | 27 | </el-form-item> |
| 28 | <el-form-item :label="language==0?'姓氏':'Surname'" prop="xing" required> | 28 | <el-form-item :label="language==0?'姓氏':'Surname'" prop="xing" :required="!editDis"> |
| 29 | <el-input v-model="form.xing" :disabled="editDis"/> | 29 | <el-input v-model="form.xing" :disabled="editDis"/> |
| 30 | </el-form-item> | 30 | </el-form-item> |
| 31 | <el-form-item :label="language==0?'名':'Name'" prop="ming" required> | 31 | <el-form-item :label="language==0?'名':'Name'" prop="ming" required> |
| ... | @@ -38,7 +38,7 @@ | ... | @@ -38,7 +38,7 @@ |
| 38 | </el-radio-group> | 38 | </el-radio-group> |
| 39 | </el-form-item> | 39 | </el-form-item> |
| 40 | <el-form-item :label="language==0?'所属国家/地区':'Nationality'" prop="countryId" required> | 40 | <el-form-item :label="language==0?'所属国家/地区':'Nationality'" prop="countryId" required> |
| 41 | <el-select :disabled="language==0" filterable v-model="form.countryId" style="width: 100%;"> | 41 | <el-select filterable v-model="form.countryId" style="width: 100%;"> |
| 42 | <el-option v-for="item in countryList" :key="item.id" :label="language==0?item.name:item.enName" | 42 | <el-option v-for="item in countryList" :key="item.id" :label="language==0?item.name:item.enName" |
| 43 | :value="item.id"/> | 43 | :value="item.id"/> |
| 44 | </el-select> | 44 | </el-select> |
| ... | @@ -153,7 +153,7 @@ const data = reactive({ | ... | @@ -153,7 +153,7 @@ const data = reactive({ |
| 153 | sex: '0' | 153 | sex: '0' |
| 154 | }, | 154 | }, |
| 155 | rules: { | 155 | rules: { |
| 156 | xing: [{required: true, message: '必填', trigger: 'blur'}], | 156 | // xing: [{required: true, message: '必填', trigger: 'blur'}], |
| 157 | ming: [{required: true, message: '必填', trigger: 'blur'}], | 157 | ming: [{required: true, message: '必填', trigger: 'blur'}], |
| 158 | // countryId: [{required: true, message: '必填', trigger: 'change'}], | 158 | // countryId: [{required: true, message: '必填', trigger: 'change'}], |
| 159 | // idcType: [{required: true, message: '必填', trigger: 'change'}], | 159 | // idcType: [{required: true, message: '必填', trigger: 'change'}], |
| ... | @@ -167,7 +167,7 @@ const data = reactive({ | ... | @@ -167,7 +167,7 @@ const data = reactive({ |
| 167 | labelArr: [{required: true, message: '必填', trigger: 'change'}] | 167 | labelArr: [{required: true, message: '必填', trigger: 'change'}] |
| 168 | }, | 168 | }, |
| 169 | rules_cn: { | 169 | rules_cn: { |
| 170 | xing: [{required: true, message: 'required', trigger: 'blur'}], | 170 | // xing: [{required: true, message: 'required', trigger: 'blur'}], |
| 171 | ming: [{required: true, message: 'required', trigger: 'blur'}], | 171 | ming: [{required: true, message: 'required', trigger: 'blur'}], |
| 172 | countryId: [{required: true, message: 'required', trigger: 'change'}], | 172 | countryId: [{required: true, message: 'required', trigger: 'change'}], |
| 173 | // idcType: [{required: true, message: 'required', trigger: 'change'}], | 173 | // idcType: [{required: true, message: 'required', trigger: 'change'}], |
| ... | @@ -221,13 +221,17 @@ onMounted(() => { | ... | @@ -221,13 +221,17 @@ onMounted(() => { |
| 221 | const editgay = ref(false) | 221 | const editgay = ref(false) |
| 222 | const editDis = ref(false) | 222 | const editDis = ref(false) |
| 223 | const isShow = ref(false) | 223 | const isShow = ref(false) |
| 224 | const cptId = ref('0') | ||
| 224 | const open = (params) => { | 225 | const open = (params) => { |
| 225 | console.log(params.label) | 226 | console.log(params.label) |
| 226 | show.value = true | 227 | show.value = true |
| 227 | title.value = params.title | 228 | title.value = params.title |
| 229 | cptId.value = params.cptId | ||
| 228 | groupId.value = params.groupId || '0' | 230 | groupId.value = params.groupId || '0' |
| 229 | if (params.label) { | 231 | if (params.label) { |
| 230 | form.value.labelArr = [params.label] | 232 | form.value.labelArr = [params.label] |
| 233 | } else { | ||
| 234 | form.value.labelArr = [] | ||
| 231 | } | 235 | } |
| 232 | if (params.id != 0) { // 编辑 | 236 | if (params.id != 0) { // 编辑 |
| 233 | editgay.value = true | 237 | editgay.value = true |
| ... | @@ -250,6 +254,8 @@ watch(show, (value) => { | ... | @@ -250,6 +254,8 @@ watch(show, (value) => { |
| 250 | form.value = { | 254 | form.value = { |
| 251 | sex: '0' | 255 | sex: '0' |
| 252 | } | 256 | } |
| 257 | card.value = '' | ||
| 258 | editDis.value = false | ||
| 253 | if (language.value == 0) { | 259 | if (language.value == 0) { |
| 254 | form.value.countryId = 240 | 260 | form.value.countryId = 240 |
| 255 | } | 261 | } |
| ... | @@ -376,6 +382,12 @@ function submitForm() { | ... | @@ -376,6 +382,12 @@ function submitForm() { |
| 376 | // return | 382 | // return |
| 377 | // } | 383 | // } |
| 378 | // } | 384 | // } |
| 385 | if(!editDis.value){ | ||
| 386 | if(!form.value.xing){ | ||
| 387 | ElMessage.warning(language.value == 0 ? '请填写姓' :'Please fill in surname') | ||
| 388 | return | ||
| 389 | } | ||
| 390 | } | ||
| 379 | if(!form.value.passportUrl){ | 391 | if(!form.value.passportUrl){ |
| 380 | ElMessage.warning(language.value == 0 ? '请上传护照文件' :'Please upload your passport file') | 392 | ElMessage.warning(language.value == 0 ? '请上传护照文件' :'Please upload your passport file') |
| 381 | return | 393 | return |
| ... | @@ -385,8 +397,6 @@ function submitForm() { | ... | @@ -385,8 +397,6 @@ function submitForm() { |
| 385 | } | 397 | } |
| 386 | if(Array.isArray(form.value.passportUrl)){ | 398 | if(Array.isArray(form.value.passportUrl)){ |
| 387 | form.value.passportUrl = form.value.passportUrl[0].url | 399 | form.value.passportUrl = form.value.passportUrl[0].url |
| 388 | } else { | ||
| 389 | form.value.passportUrl = form.value.passportUrl | ||
| 390 | } | 400 | } |
| 391 | form.value.label = form.value.labelArr.toString() | 401 | form.value.label = form.value.labelArr.toString() |
| 392 | 402 | ||
| ... | @@ -414,6 +424,7 @@ function submitForm() { | ... | @@ -414,6 +424,7 @@ function submitForm() { |
| 414 | emit('submitForm') | 424 | emit('submitForm') |
| 415 | }) | 425 | }) |
| 416 | } else { | 426 | } else { |
| 427 | form.value.cptId = cptId.value | ||
| 417 | match.savePersonForMyPerson(form.value).then(res => { | 428 | match.savePersonForMyPerson(form.value).then(res => { |
| 418 | ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful') | 429 | ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful') |
| 419 | show.value = false | 430 | show.value = false | ... | ... |
| ... | @@ -212,8 +212,8 @@ function submitForm() { | ... | @@ -212,8 +212,8 @@ function submitForm() { |
| 212 | // ElMessage.warning('Please upload your photo') | 212 | // ElMessage.warning('Please upload your photo') |
| 213 | // return | 213 | // return |
| 214 | // } | 214 | // } |
| 215 | if (!form.value.passportUrl) { | 215 | if (!form.value.passportUrl||form.value.passportUrl==''||form.value.passportUrl.length==0) { |
| 216 | ElMessage.warning('Please upload your passport file') | 216 | ElMessage.warning('Please upload passport file') |
| 217 | return | 217 | return |
| 218 | } | 218 | } |
| 219 | if (editgay) { | 219 | if (editgay) { |
| ... | @@ -223,7 +223,7 @@ function submitForm() { | ... | @@ -223,7 +223,7 @@ function submitForm() { |
| 223 | form.value.passportUrl = form.value.passportUrl[0].url | 223 | form.value.passportUrl = form.value.passportUrl[0].url |
| 224 | } | 224 | } |
| 225 | match.editPersonInfo(form.value).then(res => { | 225 | match.editPersonInfo(form.value).then(res => { |
| 226 | ElMessage.success('保存成功') | 226 | ElMessage.success(language.value == 0 ? '保存成功' :'Successfully') |
| 227 | show.value = false | 227 | show.value = false |
| 228 | emit('submitForm') | 228 | emit('submitForm') |
| 229 | }) | 229 | }) | ... | ... |
| ... | @@ -4,7 +4,7 @@ | ... | @@ -4,7 +4,7 @@ |
| 4 | <el-button type="primary" @click="addMember"> | 4 | <el-button type="primary" @click="addMember"> |
| 5 | {{ language == 0 ? '添加选手' : 'Add Player' }} | 5 | {{ language == 0 ? '添加选手' : 'Add Player' }} |
| 6 | </el-button> | 6 | </el-button> |
| 7 | <el-button type="primary" plain @click="importSportman" v-if="isNational"> | 7 | <el-button type="primary" plain @click="importSportman" v-if="!isNational"> |
| 8 | {{language == 0 ? '导入选手' : 'Import Player'}} | 8 | {{language == 0 ? '导入选手' : 'Import Player'}} |
| 9 | </el-button> | 9 | </el-button> |
| 10 | </div> | 10 | </div> |
| ... | @@ -13,7 +13,7 @@ | ... | @@ -13,7 +13,7 @@ |
| 13 | <el-form-item :label="language==0?'姓名':'Name'"> | 13 | <el-form-item :label="language==0?'姓名':'Name'"> |
| 14 | <el-input v-model="query.realName" style="width: 120px;" clearable/> | 14 | <el-input v-model="query.realName" style="width: 120px;" clearable/> |
| 15 | </el-form-item> | 15 | </el-form-item> |
| 16 | <el-form-item :label="language==0?'证件类型':'ID Type'"> | 16 | <el-form-item :label="language==0?'证件类型':'ID Type'" v-if="!isNational"> |
| 17 | <el-select v-model="query.idcType" style="width: 100px;" clearable @change="getList"> | 17 | <el-select v-model="query.idcType" style="width: 100px;" clearable @change="getList"> |
| 18 | <el-option | 18 | <el-option |
| 19 | v-for="item in certificates" | 19 | v-for="item in certificates" |
| ... | @@ -23,7 +23,7 @@ | ... | @@ -23,7 +23,7 @@ |
| 23 | /> | 23 | /> |
| 24 | </el-select> | 24 | </el-select> |
| 25 | </el-form-item> | 25 | </el-form-item> |
| 26 | <el-form-item :label="language==0?'证件号码':'ID NO.'"> | 26 | <el-form-item :label="language==0?'证件号码':'ID NO.'" v-if="!isNational"> |
| 27 | <el-input v-model="query.idcode" style="width: 120px;" clearable/> | 27 | <el-input v-model="query.idcode" style="width: 120px;" clearable/> |
| 28 | </el-form-item> | 28 | </el-form-item> |
| 29 | <!-- <el-form-item label="角色">--> | 29 | <!-- <el-form-item label="角色">--> |
| ... | @@ -38,20 +38,20 @@ | ... | @@ -38,20 +38,20 @@ |
| 38 | <el-table ref="allSportmenTable" v-loading="loading" :data="tableData" height="60vh" | 38 | <el-table ref="allSportmenTable" v-loading="loading" :data="tableData" height="60vh" |
| 39 | @selection-change="handleSelectionChange"> | 39 | @selection-change="handleSelectionChange"> |
| 40 | <!-- <el-table-column type="selection" :label="language==0?'选择':'Selection'" :selectable="selectable"/>--> | 40 | <!-- <el-table-column type="selection" :label="language==0?'选择':'Selection'" :selectable="selectable"/>--> |
| 41 | <el-table-column type="index" :label="language==0?'序号':'Index'" width="60" :selectable="selectable"/> | 41 | <el-table-column align="center" type="index" :label="language==0?'序号':'Index'" width="60" :selectable="selectable"/> |
| 42 | <el-table-column v-show="isNational" :label="language==0?'WDSF 会员号':'MIN'" prop="wdsfMin" width="100"/> | 42 | <el-table-column v-if="isNational" :label="language==0?'WDSF 会员号':'WDSF MIN'" prop="wdsfMin" width="100"/> |
| 43 | <el-table-column :label="language==0?'姓氏':'Surname'" prop="xing" min-width="100"/> | 43 | <el-table-column align="center" :label="language==0?'姓氏':'Surname'" prop="xing" min-width="100"/> |
| 44 | <el-table-column :label="language==0?'名':'Name'" prop="ming" min-width="100"/> | 44 | <el-table-column align="center" :label="language==0?'名':'Name'" prop="ming" min-width="100"/> |
| 45 | <el-table-column v-show="isNational" :label="language==0?'代表':'Representing'" prop="representing" min-width="120"/> | 45 | <el-table-column align="center" v-if="isNational" :label="language==0?'代表':'Representing'" prop="representing" min-width="120"/> |
| 46 | <el-table-column :label="language==0?'所属国家/地区':'Nationality'" prop="countryName" min-width="100"/> | 46 | <el-table-column align="center" v-if="!isNational" :label="language==0?'所属国家/地区':'Nationality'" prop="countryName" min-width="110"/> |
| 47 | <el-table-column :label="language==0?'性别':'Gender'" prop="sexStr"/> | 47 | <el-table-column :label="language==0?'性别':'Gender'" prop="sexStr"/> |
| 48 | <el-table-column v-show="isNational" :label="language==0?'年龄组':'Age group'" prop="ageGroup" min-width="100"/> | 48 | <el-table-column align="center" v-if="isNational" :label="language==0?'年龄组':'Age group'" prop="ageGroup" min-width="100"/> |
| 49 | <el-table-column v-show="isNational" :label="language==0?'舞种':'Division'" prop="division" min-width="100"/> | 49 | <el-table-column align="center" v-if="isNational" :label="language==0?'舞种':'Division'" prop="division" min-width="100"/> |
| 50 | 50 | ||
| 51 | <el-table-column :label="language==0?'年龄':'Age'" prop="age"/> | 51 | <el-table-column v-if="!isNational" :label="language==0?'年龄':'Age'" prop="age"/> |
| 52 | <el-table-column :label="language==0?'出生日期':'Birth'" prop="birth" width="110"/> | 52 | <el-table-column v-if="!isNational" :label="language==0?'出生日期':'Birth'" prop="birth" width="110"/> |
| 53 | <el-table-column :label="language==0?'证件类型':'ID Type'" prop="idcTypeStr" width="120"/> | 53 | <el-table-column v-if="!isNational" :label="language==0?'证件类型':'ID Type'" prop="idcTypeStr" width="120"/> |
| 54 | <el-table-column :label="language==0?'证件号码':'ID NO.'" prop="idcCode" width="200"/> | 54 | <el-table-column v-if="!isNational" :label="language==0?'证件号码':'ID NO.'" prop="idcCode" width="200"/> |
| 55 | <!-- <el-table-column label="会员角色" width="200">--> | 55 | <!-- <el-table-column label="会员角色" width="200">--> |
| 56 | <!-- <template #default="scope">--> | 56 | <!-- <template #default="scope">--> |
| 57 | <!-- <div>--> | 57 | <!-- <div>--> | ... | ... |
| ... | @@ -9,11 +9,16 @@ | ... | @@ -9,11 +9,16 @@ |
| 9 | </el-descriptions-item> | 9 | </el-descriptions-item> |
| 10 | <el-descriptions-item v-if="form.xing" :label="language==0?'姓氏':'Surname'">{{ form.xing }}</el-descriptions-item> | 10 | <el-descriptions-item v-if="form.xing" :label="language==0?'姓氏':'Surname'">{{ form.xing }}</el-descriptions-item> |
| 11 | <el-descriptions-item :label="language==0?'名':'Name'">{{ form.ming }}</el-descriptions-item> | 11 | <el-descriptions-item :label="language==0?'名':'Name'">{{ form.ming }}</el-descriptions-item> |
| 12 | <el-descriptions-item :label="language==0?'性别':'Sex'">{{ form.sexStr }}</el-descriptions-item> | 12 | <el-descriptions-item :label="language==0?'性别':'Gender'">{{ form.sexStr }}</el-descriptions-item> |
| 13 | <el-descriptions-item v-if="form.countryName" :label="language==0?'所属国家/地区':'Country'">{{ form.countryName }}</el-descriptions-item> | 13 | |
| 14 | <el-descriptions-item :label="language==0?'证件类型':'ID type'">{{ form.idcTypeStr }}</el-descriptions-item> | 14 | <el-descriptions-item v-if="isNational" :label="language==0?'代表':'Representing'">{{ form.representing }}</el-descriptions-item> |
| 15 | <el-descriptions-item :label="language==0?'证件号码':'ID NO'">{{ form.idcCode }}</el-descriptions-item> | 15 | <el-descriptions-item v-else :label="language==0?'所属国家/地区':'Country'">{{ form.countryName }}</el-descriptions-item> |
| 16 | <el-descriptions-item :label="language==0?'出生日期':'birth'">{{ form.birth }}</el-descriptions-item> | 16 | |
| 17 | <el-descriptions-item v-if="isNational" :label="language==0?'WDSF':'WDSF MIN'">{{ form.idcCode }}</el-descriptions-item> | ||
| 18 | <el-descriptions-item v-else :label="language==0?'证件类型':'ID type'">{{ form.idcTypeStr }}</el-descriptions-item> | ||
| 19 | |||
| 20 | <el-descriptions-item v-else :label="language==0?'证件号码':'ID NO'">{{ form.idcCode }}</el-descriptions-item> | ||
| 21 | <el-descriptions-item v-if="!isNational" :label="language==0?'出生日期':'birth'">{{ form.birth }}</el-descriptions-item> | ||
| 17 | </el-descriptions> | 22 | </el-descriptions> |
| 18 | 23 | ||
| 19 | <el-row v-if="participantsInfoArr&&participantsInfoArr.length>0" class="mt20"> | 24 | <el-row v-if="participantsInfoArr&&participantsInfoArr.length>0" class="mt20"> |
| ... | @@ -66,12 +71,13 @@ const language= useStorage('language',0) | ... | @@ -66,12 +71,13 @@ const language= useStorage('language',0) |
| 66 | const data = reactive({ | 71 | const data = reactive({ |
| 67 | form: {}, | 72 | form: {}, |
| 68 | show: false, | 73 | show: false, |
| 74 | isNational: false, | ||
| 69 | countryList: [], | 75 | countryList: [], |
| 70 | participantsInfoArr: [], | 76 | participantsInfoArr: [], |
| 71 | title: '', | 77 | title: '', |
| 72 | groupId: '0' | 78 | groupId: '0' |
| 73 | }) | 79 | }) |
| 74 | const { form, show, countryList, participantsInfoArr, title, groupId } = toRefs(data) | 80 | const { form, show,isNational, countryList, participantsInfoArr, title, groupId } = toRefs(data) |
| 75 | let extraId = 0 | 81 | let extraId = 0 |
| 76 | let personId | 82 | let personId |
| 77 | let matchId | 83 | let matchId |
| ... | @@ -86,6 +92,7 @@ const open = (params) => { | ... | @@ -86,6 +92,7 @@ const open = (params) => { |
| 86 | personId = params.personId | 92 | personId = params.personId |
| 87 | extraId = params.extraId | 93 | extraId = params.extraId |
| 88 | matchId = params.matchId | 94 | matchId = params.matchId |
| 95 | isNational.value = params.isNational | ||
| 89 | participantsInfoArr.value = params.participantsInfoArr | 96 | participantsInfoArr.value = params.participantsInfoArr |
| 90 | init() | 97 | init() |
| 91 | } | 98 | } | ... | ... |
| ... | @@ -3,7 +3,7 @@ | ... | @@ -3,7 +3,7 @@ |
| 3 | <el-row> | 3 | <el-row> |
| 4 | <el-col :lg="8"> | 4 | <el-col :lg="8"> |
| 5 | <el-row :gutter="15"> | 5 | <el-row :gutter="15"> |
| 6 | <el-col :span="4"> | 6 | <el-col :span="4" v-if="groupInfo.imgUrl"> |
| 7 | <img class="w100" :src="fillImgUrl(groupInfo.imgUrl)"/> | 7 | <img class="w100" :src="fillImgUrl(groupInfo.imgUrl)"/> |
| 8 | </el-col> | 8 | </el-col> |
| 9 | <el-col :span="20"> | 9 | <el-col :span="20"> |
| ... | @@ -20,7 +20,7 @@ | ... | @@ -20,7 +20,7 @@ |
| 20 | </el-col> | 20 | </el-col> |
| 21 | <el-col :lg="8"> | 21 | <el-col :lg="8"> |
| 22 | <div class="item"><label>{{ language==0?'负责人姓名':'Contact Person' }}</label>{{ groupInfo.contactPerson }}</div> | 22 | <div class="item"><label>{{ language==0?'负责人姓名':'Contact Person' }}</label>{{ groupInfo.contactPerson }}</div> |
| 23 | <div class="item"><label>{{ language==0?'参赛队名称':'Name of participating team' }}</label>{{ groupInfo.abreviations }}</div> | 23 | <div class="item" v-if="groupInfo.type!='4'"><label>{{ language==0?'参赛队名称':'Name of participating team' }}</label>{{ groupInfo.abreviations }}</div> |
| 24 | </el-col> | 24 | </el-col> |
| 25 | <el-col :lg="8"> | 25 | <el-col :lg="8"> |
| 26 | <div class="item"><label>{{ language==0?'邮箱':'Email' }}</label>{{ groupInfo.contactEmail }}</div> | 26 | <div class="item"><label>{{ language==0?'邮箱':'Email' }}</label>{{ groupInfo.contactEmail }}</div> | ... | ... |
| ... | @@ -27,9 +27,30 @@ | ... | @@ -27,9 +27,30 @@ |
| 27 | <td>{{ p.danceTypeDetailStr }}</td> | 27 | <td>{{ p.danceTypeDetailStr }}</td> |
| 28 | <td>{{ p.playTypeStr }}</td> | 28 | <td>{{ p.playTypeStr }}</td> |
| 29 | <td> | 29 | <td> |
| 30 | <!-- {{ isNational }}--> | ||
| 31 | <div v-if="isNational"> | ||
| 32 | <span v-if="p.ageGroup == '0'" >{{ language==0?'不限制':'Unlimited' }}</span> | ||
| 33 | <span v-if="p.ageGroup == '1'" >Juvenile I</span> | ||
| 34 | <span v-if="p.ageGroup == '2'" >Juvenile II</span> | ||
| 35 | <span v-if="p.ageGroup == '3'" >Juv1& II (comb.)</span> | ||
| 36 | <span v-if="p.ageGroup == '4'" >Junior I</span> | ||
| 37 | <span v-if="p.ageGroup == '5'" >Junior II</span> | ||
| 38 | <span v-if="p.ageGroup == '6'" >Juv I & II (comb.)</span> | ||
| 39 | <span v-if="p.ageGroup == '7'" >Youth</span> | ||
| 40 | <span v-if="p.ageGroup == '8'" >Under 21</span> | ||
| 41 | <span v-if="p.ageGroup == '9'" >Adult</span> | ||
| 42 | <span v-if="p.ageGroup == '10'" >Senior I</span> | ||
| 43 | <span v-if="p.ageGroup == '11'" >Senior II</span> | ||
| 44 | <span v-if="p.ageGroup == '12'" >Senior III</span> | ||
| 45 | <span v-if="p.ageGroup == '13'" >Senior IV</span> | ||
| 46 | <span v-if="p.ageGroup == '14'" >Senior V</span> | ||
| 47 | </div> | ||
| 48 | <div v-else> | ||
| 30 | <div>{{ p.birthPeriod }}</div> | 49 | <div>{{ p.birthPeriod }}</div> |
| 31 | <div>{{p.birthPeriodSecond}}</div> | 50 | <div>{{p.birthPeriodSecond}}</div> |
| 32 | <!-- <div>{{ p.birthAgeGroup }};{{p.birthAgeSecondGroup}}</div>--> | 51 | </div> |
| 52 | |||
| 53 | <!-- <div>{{ p.birthAgeGroup }};{{p.birthAgeSecondGroup}}</div>--> | ||
| 33 | </td> | 54 | </td> |
| 34 | <td>{{ language==0?'¥':'€' }}{{ p.serviceFee }}</td> | 55 | <td>{{ language==0?'¥':'€' }}{{ p.serviceFee }}</td> |
| 35 | </tr> | 56 | </tr> |
| ... | @@ -49,7 +70,12 @@ const props = defineProps({ | ... | @@ -49,7 +70,12 @@ const props = defineProps({ |
| 49 | type: Array, | 70 | type: Array, |
| 50 | required: true, | 71 | required: true, |
| 51 | default:[] | 72 | default:[] |
| 52 | } | 73 | }, |
| 74 | isNational: { | ||
| 75 | type: Boolean, | ||
| 76 | required: false, | ||
| 77 | default: false | ||
| 78 | }, | ||
| 53 | }) | 79 | }) |
| 54 | </script> | 80 | </script> |
| 55 | 81 | ... | ... |
| ... | @@ -6,6 +6,9 @@ | ... | @@ -6,6 +6,9 @@ |
| 6 | <el-col :lg="8"><div class="item"><label>赛事时间</label>{{matchInfo.beginTime?.slice(0,10)}} 至 {{ matchInfo.endTime?.slice(0,10) }}</div></el-col> | 6 | <el-col :lg="8"><div class="item"><label>赛事时间</label>{{matchInfo.beginTime?.slice(0,10)}} 至 {{ matchInfo.endTime?.slice(0,10) }}</div></el-col> |
| 7 | <el-col :lg="8"><div class="item"><label>报名时间</label>{{ matchInfo.signBeginTime?.slice(0,10) }} 至{{ matchInfo.signEndTime?.slice(0,10) }}</div></el-col> | 7 | <el-col :lg="8"><div class="item"><label>报名时间</label>{{ matchInfo.signBeginTime?.slice(0,10) }} 至{{ matchInfo.signEndTime?.slice(0,10) }}</div></el-col> |
| 8 | <el-col :lg="16"><div class="item"><label>比赛地址</label>{{matchInfo.address}}</div></el-col> | 8 | <el-col :lg="16"><div class="item"><label>比赛地址</label>{{matchInfo.address}}</div></el-col> |
| 9 | <el-col :lg="8"><div class="item"><label>联系人</label>{{matchInfo.contactPerson}}</div></el-col> | ||
| 10 | <el-col :lg="8"><div class="item"><label>联系电话</label>086-{{matchInfo.contactTelno}}</div></el-col> | ||
| 11 | <el-col :lg="8"><div class="item"><label>联系邮箱</label>{{matchInfo.contactEmail}}</div></el-col> | ||
| 9 | </el-row> | 12 | </el-row> |
| 10 | <el-row v-else> | 13 | <el-row v-else> |
| 11 | <el-col :lg="8"><div class="item"><label>Event Name</label>{{matchInfo.name}}</div></el-col> | 14 | <el-col :lg="8"><div class="item"><label>Event Name</label>{{matchInfo.name}}</div></el-col> |
| ... | @@ -13,6 +16,9 @@ | ... | @@ -13,6 +16,9 @@ |
| 13 | <el-col :lg="8"><div class="item"><label>Event Date</label>{{matchInfo.beginTime?.slice(0,10)}} ~ {{ matchInfo.endTime?.slice(0,10) }}</div></el-col> | 16 | <el-col :lg="8"><div class="item"><label>Event Date</label>{{matchInfo.beginTime?.slice(0,10)}} ~ {{ matchInfo.endTime?.slice(0,10) }}</div></el-col> |
| 14 | <el-col :lg="8"><div class="item"><label>Registration Period</label>{{ matchInfo.signBeginTime?.slice(0,10) }} ~{{ matchInfo.signEndTime?.slice(0,10) }}</div></el-col> | 17 | <el-col :lg="8"><div class="item"><label>Registration Period</label>{{ matchInfo.signBeginTime?.slice(0,10) }} ~{{ matchInfo.signEndTime?.slice(0,10) }}</div></el-col> |
| 15 | <el-col :lg="16"><div class="item"><label>Event Address</label>{{matchInfo.address}}</div></el-col> | 18 | <el-col :lg="16"><div class="item"><label>Event Address</label>{{matchInfo.address}}</div></el-col> |
| 19 | <el-col :lg="8"><div class="item"><label>Contact Name</label>{{matchInfo.contactPerson}}</div></el-col> | ||
| 20 | <el-col :lg="8"><div class="item"><label>Contact Phone</label>086-{{matchInfo.contactTelno}}</div></el-col> | ||
| 21 | <el-col :lg="8"><div class="item"><label>Contact Email</label>{{matchInfo.contactEmail}}</div></el-col> | ||
| 16 | </el-row> | 22 | </el-row> |
| 17 | </div> | 23 | </div> |
| 18 | </template> | 24 | </template> | ... | ... |
| ... | @@ -82,7 +82,7 @@ | ... | @@ -82,7 +82,7 @@ |
| 82 | <!-- </div>--> | 82 | <!-- </div>--> |
| 83 | <div class="indexTitle" v-if="form.type==1 && form.cptProjectList?.length > 0"><h3 class="leftboderTT">Event settings</h3></div> | 83 | <div class="indexTitle" v-if="form.type==1 && form.cptProjectList?.length > 0"><h3 class="leftboderTT">Event settings</h3></div> |
| 84 | <div v-if="form.type==1 && form.cptProjectList?.length > 0"> | 84 | <div v-if="form.type==1 && form.cptProjectList?.length > 0"> |
| 85 | <match-info-project-list :list="form.cptProjectList" /> | 85 | <match-info-project-list :list="form.cptProjectList" :is-national="form.languageSource!='100'"/> |
| 86 | </div> | 86 | </div> |
| 87 | </div> | 87 | </div> |
| 88 | </template> | 88 | </template> |
| ... | @@ -91,14 +91,19 @@ | ... | @@ -91,14 +91,19 @@ |
| 91 | import {ref} from "vue"; | 91 | import {ref} from "vue"; |
| 92 | import MatchInfoProjectList from "@/viewsPc/match/components/matchInfo-projectList"; | 92 | import MatchInfoProjectList from "@/viewsPc/match/components/matchInfo-projectList"; |
| 93 | import {useStorage} from "@vueuse/core/index"; | 93 | import {useStorage} from "@vueuse/core/index"; |
| 94 | import {onMounted} from "@vue/runtime-core"; | ||
| 94 | 95 | ||
| 95 | const language= useStorage('language',0) | 96 | const language= useStorage('language',0) |
| 97 | |||
| 96 | const props = defineProps({ | 98 | const props = defineProps({ |
| 97 | form:{ | 99 | form:{ |
| 98 | type:Object, | 100 | type:Object, |
| 99 | required:true | 101 | required:true |
| 100 | } | 102 | } |
| 101 | }) | 103 | }) |
| 104 | |||
| 105 | |||
| 106 | |||
| 102 | </script> | 107 | </script> |
| 103 | 108 | ||
| 104 | <style scoped lang="scss"> | 109 | <style scoped lang="scss"> | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div class="mt20"></div> | 2 | <div class="mt20"> |
| 3 | <!-- {{isNational}}--> | ||
| 4 | </div> | ||
| 3 | <el-table :data="list" :sum-text="sumText" border style="width: 100%" v-loading="loading"> | 5 | <el-table :data="list" :sum-text="sumText" border style="width: 100%" v-loading="loading"> |
| 4 | <el-table-column :label="language==0?'序号':'Index'" type="index" width="70" align="center"/> | 6 | <el-table-column :label="language==0?'序号':'Index'" type="index" width="70" align="center"/> |
| 5 | <el-table-column :label="language==0?'姓氏':'Surname'" prop="personInfo.xing" min-width="100"/> | 7 | <el-table-column :label="language==0?'姓氏':'Surname'" prop="personInfo.xing" min-width="100"/> |
| 6 | <el-table-column :label="language==0?'名':'Name'" prop="personInfo.ming" min-width="100"/> | 8 | <el-table-column :label="language==0?'名':'Name'" prop="personInfo.ming" min-width="100"/> |
| 7 | <el-table-column :label="language==0?'所属国家/地区':'Country'" prop="" :min-width="language==0?'100':'120'"> | 9 | <el-table-column :label="language==0?'所属国家/地区':'Country'" min-width="120"> |
| 8 | <template #default="scope"> | 10 | <template #default="scope"> |
| 9 | <span v-if="scope.row.personInfo.countryName">{{scope.row.personInfo.countryName}}</span> | 11 | <span v-if="scope.row.personInfo.countryName">{{scope.row.personInfo.countryName}}</span> |
| 10 | <span v-if="scope.row.personInfo.representing">{{scope.row.personInfo.representing}}</span> | 12 | <span v-if="scope.row.personInfo.representing">{{scope.row.personInfo.representing}}</span> |
| 11 | </template> | 13 | </template> |
| 12 | </el-table-column> | 14 | </el-table-column> |
| 13 | <el-table-column :label="language==0?'性别':'Gender'" prop="personInfo.sexStr"/> | 15 | <el-table-column :label="language==0?'性别':'Gender'" prop="personInfo.sexStr"/> |
| 14 | <el-table-column :label="language==0?'证件类型':'ID Type'" :width="language==0?'':'140'" prop="personInfo.idcTypeStr"/> | 16 | <el-table-column v-if="!isNational" :label="language==0?'证件类型':'ID Type'" :width="language==0?'':'140'" prop="personInfo.idcTypeStr"/> |
| 15 | <el-table-column :label="language==0?'证件号码':'ID NO.'" prop="personInfo.idcCode" width="200"/> | 17 | <el-table-column v-if="!isNational" :label="language==0?'证件号码':'ID NO.'" prop="personInfo.idcCode" width="200"/> |
| 16 | <el-table-column :label="language==0?'出生日期':'Birth'" prop="personInfo.birth" width="110"/> | 18 | <el-table-column v-if="isNational" :label="language==0?'WDSF 会员号':'WDSF MIN'" prop="personInfo.wdsfMin" width="200"/> |
| 17 | <el-table-column :label="language==0?'会员角色':'Role'" width="150"> | 19 | <el-table-column v-if="!isNational" :label="language==0?'出生日期':'Birth'" prop="personInfo.birth" width="110"/> |
| 18 | <template #default="scope"> | 20 | <el-table-column v-if="isNational" :label="language==0?'年龄组':'Age group'" prop="personInfo.ageGroup" width="110"/> |
| 19 | <div class="esp"> | 21 | <el-table-column v-if="isNational" :label="language==0?'舞种':'Division'" prop="personInfo.division" width="110"/> |
| 20 | <span v-for="item in scope.row.personInfo.label?.split(',')" :key="item.id" class="text-primary"> | 22 | <!-- <el-table-column :label="language==0?'会员角色':'Role'" width="150">--> |
| 21 | <span v-if="item==='0'" class="ml5">{{ language == 0 ? '运动员' : 'athletes' }}</span> | 23 | <!-- <template #default="scope">--> |
| 22 | <span v-if="item==='1'" class="ml5">{{ language == 0 ? '教练' : 'coach' }}</span> | 24 | <!-- <div class="esp">--> |
| 23 | <span v-if="item==='2'" class="ml5">{{ language == 0 ? '领队' : 'team leader' }}</span> | 25 | <!-- <span v-for="item in scope.row.personInfo.label?.split(',')" :key="item.id" class="text-primary">--> |
| 24 | <span v-if="item==='3'" class="ml5">{{ language == 0 ? '队医' : 'team doctor' }}</span> | 26 | <!-- <span v-if="item==='0'" class="ml5">{{ language == 0 ? '运动员' : 'athletes' }}</span>--> |
| 25 | <span v-if="item==='4'" class="ml5">{{ language == 0 ? '翻译' : 'translator' }}</span> | 27 | <!-- <span v-if="item==='1'" class="ml5">{{ language == 0 ? '教练' : 'coach' }}</span>--> |
| 26 | <span v-if="item==='5'" class="ml5">{{ language == 0 ? '官员' : 'official' }}</span> | 28 | <!-- <span v-if="item==='2'" class="ml5">{{ language == 0 ? '领队' : 'team leader' }}</span>--> |
| 27 | <span v-if="item==='6'" class="ml5">{{ language == 0 ? '其他' : 'other' }}</span> | 29 | <!-- <span v-if="item==='4'" class="ml5">{{ language == 0 ? '队医' : 'team doctor' }}</span>--> |
| 28 | </span> | 30 | <!-- <span v-if="item==='5'" class="ml5">{{ language == 0 ? '翻译' : 'translator' }}</span>--> |
| 29 | </div> | 31 | <!-- <span v-if="item==='6'" class="ml5">{{ language == 0 ? '官员' : 'official' }}</span>--> |
| 30 | </template> | 32 | <!-- <span v-if="item==='3'" class="ml5">{{ language == 0 ? '其他' : 'other' }}</span>--> |
| 31 | </el-table-column> | 33 | <!-- </span>--> |
| 34 | <!-- </div>--> | ||
| 35 | <!-- </template>--> | ||
| 36 | <!-- </el-table-column>--> | ||
| 32 | <!-- <el-table-column :label="language==0?'详细地址':'Detailed Address'" prop="personInfo.address" min-width="140"/>--> | 37 | <!-- <el-table-column :label="language==0?'详细地址':'Detailed Address'" prop="personInfo.address" min-width="140"/>--> |
| 33 | <el-table-column :label="language==0?'报项':'Entries'" min-width="300" :fixed="hasAction?false:'right'"> | 38 | <el-table-column :label="language==0?'报项':'Entries'" min-width="300" :fixed="hasAction?false:'right'"> |
| 34 | <template #default="props"> | 39 | <template #default="props"> |
| ... | @@ -54,8 +59,9 @@ | ... | @@ -54,8 +59,9 @@ |
| 54 | <el-table-column v-for="(e,index) in extraTableHead" :key="index" :label="e" min-width="110" align="center"> | 59 | <el-table-column v-for="(e,index) in extraTableHead" :key="index" :label="e" min-width="110" align="center"> |
| 55 | <template #default="scope"> | 60 | <template #default="scope"> |
| 56 | <el-link v-if="scope.row.signInfo[0].extraPersonInfoMapList[index]?.type=='2'" | 61 | <el-link v-if="scope.row.signInfo[0].extraPersonInfoMapList[index]?.type=='2'" |
| 62 | target="_blank" | ||
| 57 | :href="fillImgUrl(scope.row.signInfo[0].extraPersonInfoMapList[index].value.url)"> | 63 | :href="fillImgUrl(scope.row.signInfo[0].extraPersonInfoMapList[index].value.url)"> |
| 58 | {{ scope.row.signInfo[0].extraPersonInfoMapList[index].value.name }} | 64 | <span class="text-primary">{{ scope.row.signInfo[0].extraPersonInfoMapList[index].value.name }}</span> |
| 59 | </el-link> | 65 | </el-link> |
| 60 | <img v-else-if="scope.row.signInfo[0].extraPersonInfoMapList[index]?.type=='3'" style="width: 50px;" | 66 | <img v-else-if="scope.row.signInfo[0].extraPersonInfoMapList[index]?.type=='3'" style="width: 50px;" |
| 61 | :src="fillImgUrl(scope.row.signInfo[0].extraPersonInfoMapList[index].value.url||scope.row.signInfo[0].extraPersonInfoMapList[index].value)"> | 67 | :src="fillImgUrl(scope.row.signInfo[0].extraPersonInfoMapList[index].value.url||scope.row.signInfo[0].extraPersonInfoMapList[index].value)"> |
| ... | @@ -120,8 +126,10 @@ import {useStorage} from "@vueuse/core/index"; | ... | @@ -120,8 +126,10 @@ import {useStorage} from "@vueuse/core/index"; |
| 120 | const language= useStorage('language',0) | 126 | const language= useStorage('language',0) |
| 121 | const extraTableHead = ref([]) | 127 | const extraTableHead = ref([]) |
| 122 | const loading = ref(true) | 128 | const loading = ref(true) |
| 129 | const isNational = ref(false) | ||
| 123 | const sumText = ref('保险费') | 130 | const sumText = ref('保险费') |
| 124 | getTableHead() | 131 | getTableHead() |
| 132 | getMatch() | ||
| 125 | const goPersonInfo = (row) => { | 133 | const goPersonInfo = (row) => { |
| 126 | emit('editExtra', row) | 134 | emit('editExtra', row) |
| 127 | } | 135 | } |
| ... | @@ -131,6 +139,16 @@ function getTableHead() { | ... | @@ -131,6 +139,16 @@ function getTableHead() { |
| 131 | loading.value = false | 139 | loading.value = false |
| 132 | }) | 140 | }) |
| 133 | } | 141 | } |
| 142 | function getMatch() { | ||
| 143 | match.getMatchById({ id: props.matchId }).then(res => { | ||
| 144 | if(res.data.languageSource == '100'){ | ||
| 145 | isNational.value = false | ||
| 146 | }else { | ||
| 147 | isNational.value = true | ||
| 148 | } | ||
| 149 | }) | ||
| 150 | } | ||
| 151 | |||
| 134 | function totalMethod() { | 152 | function totalMethod() { |
| 135 | } | 153 | } |
| 136 | </script> | 154 | </script> | ... | ... |
| ... | @@ -17,7 +17,7 @@ | ... | @@ -17,7 +17,7 @@ |
| 17 | <p class="ppl esp"><label>{{ language==0?'地    点':'Location' }}:</label>{{ n.address }}</p> | 17 | <p class="ppl esp"><label>{{ language==0?'地    点':'Location' }}:</label>{{ n.address }}</p> |
| 18 | <p class="ppl"><label>{{language==0?'赛事级别':'Level'}}:</label>{{n.level}}</p> | 18 | <p class="ppl"><label>{{language==0?'赛事级别':'Level'}}:</label>{{n.level}}</p> |
| 19 | <p class="ppl"><label>{{ language==0?'报名截止':'Registration Deadline' }}:</label>{{ n.signEndTime?.slice(0,10) }}</p> | 19 | <p class="ppl"><label>{{ language==0?'报名截止':'Registration Deadline' }}:</label>{{ n.signEndTime?.slice(0,10) }}</p> |
| 20 | <p class="ppl" v-if="n.contactPerson"><label>{{ language==0?'联系人员':'Contact Person' }}:</label>{{ n.contactPerson }}</p> | 20 | <p class="ppl" v-if="n.contactPerson"><label>{{ language==0?'联 系 人':'Contact Person' }}:</label>{{ n.contactPerson }}</p> |
| 21 | <p class="ppl"><label>{{ language==0?'联系电话':'Phone' }}:</label>086-{{ n.contactTelno }}</p> | 21 | <p class="ppl"><label>{{ language==0?'联系电话':'Phone' }}:</label>086-{{ n.contactTelno }}</p> |
| 22 | <p class="ppl" v-if="n.contactEmail"><label>{{ language==0?'邮    箱':'E-mail' }}:</label>{{ n.contactEmail }}</p> | 22 | <p class="ppl" v-if="n.contactEmail"><label>{{ language==0?'邮    箱':'E-mail' }}:</label>{{ n.contactEmail }}</p> |
| 23 | 23 | ... | ... |
| ... | @@ -10,7 +10,7 @@ | ... | @@ -10,7 +10,7 @@ |
| 10 | <div v-html="scope.row.project.remarks"></div> | 10 | <div v-html="scope.row.project.remarks"></div> |
| 11 | </template> | 11 | </template> |
| 12 | </el-table-column> | 12 | </el-table-column> |
| 13 | <el-table-column :label="language==0?'参赛运动员':'Participating athletes'" width="120px"> | 13 | <el-table-column :label="language==0?'参赛运动员':'Participating athletes'" min-width="120px"> |
| 14 | <template #default="scope"> | 14 | <template #default="scope"> |
| 15 | <div> | 15 | <div> |
| 16 | <span v-for="s in scope.row.athletes">{{ s.name }},</span> | 16 | <span v-for="s in scope.row.athletes">{{ s.name }},</span> | ... | ... |
| ... | @@ -23,7 +23,7 @@ | ... | @@ -23,7 +23,7 @@ |
| 23 | <img class="mauto w100" :src="fillImgUrl(matchData.coverUrl)"> | 23 | <img class="mauto w100" :src="fillImgUrl(matchData.coverUrl)"> |
| 24 | </el-col> | 24 | </el-col> |
| 25 | <el-col :lg="9" :md="12" :xl="10" style="position: relative"> | 25 | <el-col :lg="9" :md="12" :xl="10" style="position: relative"> |
| 26 | <h3 class="m0">{{ matchData.name }}{{matchData.languageSource}}</h3> | 26 | <h3 style="margin: 0 0 10px">{{ matchData.name }}</h3> |
| 27 | <div v-if="matchData.type=='1'"> | 27 | <div v-if="matchData.type=='1'"> |
| 28 | <p class="ppl"> | 28 | <p class="ppl"> |
| 29 | <label class="bm2">{{ language == 0 ? '赛事级别' : 'Event Level' }}:</label> | 29 | <label class="bm2">{{ language == 0 ? '赛事级别' : 'Event Level' }}:</label> |
| ... | @@ -47,9 +47,15 @@ | ... | @@ -47,9 +47,15 @@ |
| 47 | d="M780 68H256c-71.6 0-130.2 55.5-130.2 123.2v711.2c1.5 42.8 50 69.3 90.6 50.6l227.2-105c38.5-17.8 83.4-18.5 122.6-1.9l255.4 108.6c34.8 14.8 76.1-2.7 86.3-37.6 1.6-5.4 2.4-11 2.4-16.9v-709C910.2 123.5 851.6 68 780 68zM276.9 231.3h255.9c23.9 0 43.3 18.4 43.3 41s-19.4 41-43.3 41H276.9c-23.9 0-43.3-18.4-43.3-41s19.4-41 43.3-41z m386.8 464H276.9c-23.9 0-43.3-18.4-43.3-41s19.4-41 43.3-41h386.8c23.9 0 43.3 18.4 43.3 41s-19.4 41-43.3 41z m0-191H276.9c-23.9 0-43.3-18.4-43.3-41s19.4-41 43.3-41h386.8c23.9 0 43.3 18.4 43.3 41s-19.4 41-43.3 41z" | 47 | d="M780 68H256c-71.6 0-130.2 55.5-130.2 123.2v711.2c1.5 42.8 50 69.3 90.6 50.6l227.2-105c38.5-17.8 83.4-18.5 122.6-1.9l255.4 108.6c34.8 14.8 76.1-2.7 86.3-37.6 1.6-5.4 2.4-11 2.4-16.9v-709C910.2 123.5 851.6 68 780 68zM276.9 231.3h255.9c23.9 0 43.3 18.4 43.3 41s-19.4 41-43.3 41H276.9c-23.9 0-43.3-18.4-43.3-41s19.4-41 43.3-41z m386.8 464H276.9c-23.9 0-43.3-18.4-43.3-41s19.4-41 43.3-41h386.8c23.9 0 43.3 18.4 43.3 41s-19.4 41-43.3 41z m0-191H276.9c-23.9 0-43.3-18.4-43.3-41s19.4-41 43.3-41h386.8c23.9 0 43.3 18.4 43.3 41s-19.4 41-43.3 41z" |
| 48 | p-id="6579" fill="#d3d8d9"></path> | 48 | p-id="6579" fill="#d3d8d9"></path> |
| 49 | </svg> | 49 | </svg> |
| 50 | {{ language == 0 ? '分站赛' : 'Station race' }}:</label> | 50 | {{ language == 0 ? '分 站 赛' : 'Station race' }}:</label> |
| 51 | {{ matchData.cpts.length }} | 51 | {{ matchData.cpts.length }} |
| 52 | </p> | 52 | </p> |
| 53 | <p class="ppl"><label> | ||
| 54 | <svg style="position: relative;top: 3px;" t="1712726889323" class="icon" viewBox="0 0 1024 1024" version="1.1" | ||
| 55 | xmlns="http://www.w3.org/2000/svg" p-id="37235" width="18" height="18"> | ||
| 56 | <path d="M290.88 128H928V96a64 64 0 0 0-64-64H288a192 192 0 0 0-192 192v576a192 192 0 0 0 192 192h576a64 64 0 0 0 64-64V320a64 64 0 0 0-64-64H290.88A64 64 0 0 1 224 192a64 64 0 0 1 66.88-64z m77.12 608l96-22.72v-29.12a123.2 123.2 0 0 1-58.24-84.48c-29.76-2.24-24.64-41.28-24.64-41.28 0-19.84 10.24-26.24 18.56-27.84v-19.2c0-148.48 128-128 128-128a128 128 0 0 1 55.04 5.12c34.56 11.2 72.32 42.24 72.32 123.2v19.2c8.32 1.92 18.56 8 18.56 28.16 0 0 5.12 39.04-24.64 41.28a123.2 123.2 0 0 1-58.24 84.48v29.12l96 22.72c47.04 16.64 0 96 0 96h-320S320 752 368 736z" fill="#d3d8d9" p-id="37236"></path></svg> | ||
| 57 | {{ language==0?'联 系 人':'Contact Person' }}:</label>{{ matchData.contactPerson }}</p> | ||
| 58 | |||
| 53 | <p class="ppl"> | 59 | <p class="ppl"> |
| 54 | <label> | 60 | <label> |
| 55 | <svg style="position: relative;top: 2px;" t="1711708779620" class="icon" viewBox="0 0 1024 1024" | 61 | <svg style="position: relative;top: 2px;" t="1711708779620" class="icon" viewBox="0 0 1024 1024" |
| ... | @@ -60,6 +66,16 @@ | ... | @@ -60,6 +66,16 @@ |
| 60 | </svg> | 66 | </svg> |
| 61 | {{ language == 0 ? '联系电话' : 'Phone' }}:</label>086-{{ matchData.contactTelno }} | 67 | {{ language == 0 ? '联系电话' : 'Phone' }}:</label>086-{{ matchData.contactTelno }} |
| 62 | </p> | 68 | </p> |
| 69 | <p class="ppl"> | ||
| 70 | <label> | ||
| 71 | <svg style="position: relative;top: 4px;" t="1712726978978" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="40177" | ||
| 72 | width="18" height="18"> | ||
| 73 | <path d="M853.333333 341.333333l-341.333333 213.333334-341.333333-213.333334V256l341.333333 213.333333 341.333333-213.333333m0-85.333333H170.666667c-47.36 0-85.333333 37.973333-85.333334 85.333333v512a85.333333 85.333333 0 0 0 85.333334 85.333333h682.666666a85.333333 85.333333 0 0 0 85.333334-85.333333V256a85.333333 85.333333 0 0 0-85.333334-85.333333z" fill="#d3d8d9" p-id="40178"></path> | ||
| 74 | </svg> | ||
| 75 | {{ language==0?'邮    箱':'E-mail' }}: | ||
| 76 | </label> | ||
| 77 | {{ matchData.contactEmail }}</p> | ||
| 78 | |||
| 63 | </div> | 79 | </div> |
| 64 | 80 | ||
| 65 | <div v-if="matchData.type=='0'"> | 81 | <div v-if="matchData.type=='0'"> |
| ... | @@ -77,7 +93,7 @@ | ... | @@ -77,7 +93,7 @@ |
| 77 | {{ matchData.signEndTime?.slice(0, 10) }} | 93 | {{ matchData.signEndTime?.slice(0, 10) }} |
| 78 | </p> | 94 | </p> |
| 79 | <p class="ppl" v-if="matchData.contactPerson"> | 95 | <p class="ppl" v-if="matchData.contactPerson"> |
| 80 | <label>{{ language == 0 ? '联系人员' : 'Contact Person' }}:</label> | 96 | <label>{{ language == 0 ? '联 系 人' : 'Contact Person' }}:</label> |
| 81 | {{ matchData.contactPerson }} | 97 | {{ matchData.contactPerson }} |
| 82 | </p> | 98 | </p> |
| 83 | <p class="ppl"><label>{{ language == 0 ? '联系电话' : 'Phone' }}:</label> | 99 | <p class="ppl"><label>{{ language == 0 ? '联系电话' : 'Phone' }}:</label> |
| ... | @@ -168,7 +184,7 @@ | ... | @@ -168,7 +184,7 @@ |
| 168 | </div> | 184 | </div> |
| 169 | <matchInfo :form="matchData" v-if="menu[0].active==1"/> | 185 | <matchInfo :form="matchData" v-if="menu[0].active==1"/> |
| 170 | <div v-if="menu[1].active==1"> | 186 | <div v-if="menu[1].active==1"> |
| 171 | <match-info-project-list :list="matchData.cptProjectList"/> | 187 | <match-info-project-list :list="matchData.cptProjectList" :is-national="isNational"/> |
| 172 | </div> | 188 | </div> |
| 173 | <match-schedule-list :match-data="matchData" v-if="menu[2].active==1"/> | 189 | <match-schedule-list :match-data="matchData" v-if="menu[2].active==1"/> |
| 174 | <div v-if="menu[3].active==1"> | 190 | <div v-if="menu[3].active==1"> |
| ... | @@ -404,11 +420,11 @@ function choseSignType() { | ... | @@ -404,11 +420,11 @@ function choseSignType() { |
| 404 | goPersonalSign() | 420 | goPersonalSign() |
| 405 | } else { | 421 | } else { |
| 406 | ElMessageBox.confirm( | 422 | ElMessageBox.confirm( |
| 407 | 'The current event is a personal event, cannot register', | 423 | language.value == 0 ?'当前活动是个人活动,无法报名':'The current event is a personal event, cannot register', |
| 408 | 'Warning', | 424 | language.value == 0 ?'提示':'Warning', |
| 409 | { | 425 | { |
| 410 | confirmButtonText: 'OK', | 426 | confirmButtonText: language.value == 0 ?'好的':'OK', |
| 411 | cancelButtonText: 'Cancel', | 427 | cancelButtonText: language.value == 0 ?'取消':'Cancel', |
| 412 | type: 'warning', | 428 | type: 'warning', |
| 413 | } | 429 | } |
| 414 | ) | 430 | ) |
| ... | @@ -417,11 +433,11 @@ function choseSignType() { | ... | @@ -417,11 +433,11 @@ function choseSignType() { |
| 417 | case '1': | 433 | case '1': |
| 418 | if (user.utype == '1') { | 434 | if (user.utype == '1') { |
| 419 | ElMessageBox.confirm( | 435 | ElMessageBox.confirm( |
| 420 | 'The current event is a team event, cannot register', | 436 | language.value == 0 ?'当前活动是团队活动,无法报名':'The current event is a team event, cannot register', |
| 421 | 'Warning', | 437 | language.value == 0 ?'提示':'Warning', |
| 422 | { | 438 | { |
| 423 | confirmButtonText: 'OK', | 439 | confirmButtonText: language.value == 0 ?'好的':'OK', |
| 424 | cancelButtonText: 'Cancel', | 440 | cancelButtonText: language.value == 0 ?'取消':'Cancel', |
| 425 | type: 'warning', | 441 | type: 'warning', |
| 426 | } | 442 | } |
| 427 | ) | 443 | ) |
| ... | @@ -444,6 +460,18 @@ function choseSignType() { | ... | @@ -444,6 +460,18 @@ function choseSignType() { |
| 444 | function goTeamSign() { | 460 | function goTeamSign() { |
| 445 | if (matchData.value.languageSource == '100') { | 461 | if (matchData.value.languageSource == '100') { |
| 446 | // 国内 | 462 | // 国内 |
| 463 | if(group.type =='4'){ | ||
| 464 | ElMessageBox.confirm( | ||
| 465 | language.value==0?'您的团体类型不符合报名条件':'Your Team type does not meet the registration requirements', | ||
| 466 | language.value==0?'提示':'Warning', | ||
| 467 | { | ||
| 468 | confirmButtonText: language.value==1?'OK':'确定', | ||
| 469 | cancelButtonText: language.value==1?'Cancel':'取消', | ||
| 470 | type: 'warning', | ||
| 471 | } | ||
| 472 | ) | ||
| 473 | return | ||
| 474 | } | ||
| 447 | router.push({ | 475 | router.push({ |
| 448 | path: `${route.params.id}/teamSignCn`, | 476 | path: `${route.params.id}/teamSignCn`, |
| 449 | query: { | 477 | query: { |
| ... | @@ -454,6 +482,19 @@ function goTeamSign() { | ... | @@ -454,6 +482,19 @@ function goTeamSign() { |
| 454 | } | 482 | } |
| 455 | }) | 483 | }) |
| 456 | } else { | 484 | } else { |
| 485 | // 国际赛 | ||
| 486 | if(group.type!='4'){ | ||
| 487 | ElMessageBox.confirm( | ||
| 488 | language.value==0?'您的团体类型不符合报名条件':'Your Team type does not meet the registration requirements', | ||
| 489 | language.value==0?'提示':'Warning', | ||
| 490 | { | ||
| 491 | confirmButtonText: language.value==1?'OK':'确定', | ||
| 492 | cancelButtonText: language.value==1?'Cancel':'取消', | ||
| 493 | type: 'warning', | ||
| 494 | } | ||
| 495 | ) | ||
| 496 | return | ||
| 497 | } | ||
| 457 | router.push({ | 498 | router.push({ |
| 458 | path: `${route.params.id}/teamSign`, | 499 | path: `${route.params.id}/teamSign`, |
| 459 | query: { | 500 | query: { |
| ... | @@ -500,11 +541,11 @@ function checkIsSign() { | ... | @@ -500,11 +541,11 @@ function checkIsSign() { |
| 500 | return match.getMySignInfo(obj).then(res => { | 541 | return match.getMySignInfo(obj).then(res => { |
| 501 | if (res.data.type == '1') { | 542 | if (res.data.type == '1') { |
| 502 | ElMessageBox.confirm( | 543 | ElMessageBox.confirm( |
| 503 | 'Registered, cannot be duplicated. Do you want to go to the personal center to check', | 544 | language.value == 0 ?'已报名,不能重复报名,是否前往个人中心查看':'Registered, cannot be duplicated. Go to the personal center to check?', |
| 504 | 'Warning', | 545 | language.value==0?'提示':'Warning', |
| 505 | { | 546 | { |
| 506 | confirmButtonText: 'OK', | 547 | confirmButtonText: language.value==1?'OK':'确定', |
| 507 | cancelButtonText: 'Cancel', | 548 | cancelButtonText: language.value==1?'Cancel':'取消', |
| 508 | type: 'warning', | 549 | type: 'warning', |
| 509 | } | 550 | } |
| 510 | ).then(() => { | 551 | ).then(() => { |
| ... | @@ -514,18 +555,75 @@ function checkIsSign() { | ... | @@ -514,18 +555,75 @@ function checkIsSign() { |
| 514 | } | 555 | } |
| 515 | if (res.data.type == '2') { | 556 | if (res.data.type == '2') { |
| 516 | ElMessageBox.confirm( | 557 | ElMessageBox.confirm( |
| 517 | 'Registration approval rejected. Do you want to reapply', | 558 | language.value == 0 ?'报名审批拒绝,是否重新报名':'Registration approval rejected. Do you want to register again', |
| 518 | 'Warning', | 559 | language.value==0?'提示':'Warning', |
| 519 | { | 560 | { |
| 520 | confirmButtonText: 'OK', | 561 | confirmButtonText: language.value==1?'OK':'确定', |
| 521 | cancelButtonText: 'Cancel', | 562 | cancelButtonText: language.value==1?'Cancel':'取消', |
| 522 | type: 'warning', | 563 | type: 'warning', |
| 523 | } | 564 | } |
| 524 | ).then(() => { | 565 | ).then(() => { |
| 525 | match.recoverMySignFromCancel(matchId.value).then((res) => { | 566 | reSign() |
| 526 | 567 | }) | |
| 568 | return Promise.reject('rejected message') | ||
| 569 | } | ||
| 570 | if (res.data.type == '3') { | ||
| 571 | ElMessageBox.confirm( | ||
| 572 | language.value == 0 ?'报名已取消,是否重新报名':'Registration cancelled. Do you want to register again', | ||
| 573 | language.value==0?'提示':'Warning', | ||
| 574 | { | ||
| 575 | confirmButtonText: language.value==1?'OK':'确定', | ||
| 576 | cancelButtonText: language.value==1?'Cancel':'取消', | ||
| 577 | type: 'warning', | ||
| 578 | } | ||
| 579 | ).then(() => { | ||
| 580 | reSign() | ||
| 527 | }) | 581 | }) |
| 582 | return Promise.reject('rejected message') | ||
| 583 | } | ||
| 528 | }) | 584 | }) |
| 585 | } | ||
| 586 | |||
| 587 | function reSign(){ | ||
| 588 | match.recoverMySignFromCancel(matchId.value).then((res) => { | ||
| 589 | switch (matchData.value.signType) { | ||
| 590 | case '0': | ||
| 591 | if (user.utype == '1') { | ||
| 592 | goPersonalSign() | ||
| 593 | } else { | ||
| 594 | ElMessageBox.confirm( | ||
| 595 | language.value == 0 ?'当前活动是个人活动,无法报名':'The current event is a personal event, cannot register', | ||
| 596 | language.value==0?'提示':'Warning', | ||
| 597 | { | ||
| 598 | confirmButtonText: language.value==1?'OK':'确定', | ||
| 599 | cancelButtonText: language.value==1?'Cancel':'取消', | ||
| 600 | type: 'warning', | ||
| 601 | } | ||
| 602 | ) | ||
| 603 | } | ||
| 604 | break | ||
| 605 | case '1': | ||
| 606 | if (user.utype == '1') { | ||
| 607 | ElMessageBox.confirm( | ||
| 608 | language.value == 0 ?'当前活动是团队活动,无法报名':'The current event is a team event, cannot register', | ||
| 609 | language.value==0?'提示':'Warning', | ||
| 610 | { | ||
| 611 | confirmButtonText: language.value==1?'OK':'确定', | ||
| 612 | cancelButtonText: language.value==1?'Cancel':'取消', | ||
| 613 | type: 'warning', | ||
| 614 | } | ||
| 615 | ) | ||
| 616 | } else { | ||
| 617 | goTeamSign() | ||
| 618 | } | ||
| 619 | break | ||
| 620 | case '2': | ||
| 621 | if (user.utype == '1') { | ||
| 622 | goPersonalSign() | ||
| 623 | } else { | ||
| 624 | goTeamSign() | ||
| 625 | } | ||
| 626 | break | ||
| 529 | } | 627 | } |
| 530 | }) | 628 | }) |
| 531 | } | 629 | } | ... | ... |
| ... | @@ -173,10 +173,10 @@ | ... | @@ -173,10 +173,10 @@ |
| 173 | <span v-if="item==='0'" class="ml5">{{ language == 0 ? '运动员' : 'athletes' }}</span> | 173 | <span v-if="item==='0'" class="ml5">{{ language == 0 ? '运动员' : 'athletes' }}</span> |
| 174 | <span v-if="item==='1'" class="ml5">{{ language == 0 ? '教练' : 'coach' }}</span> | 174 | <span v-if="item==='1'" class="ml5">{{ language == 0 ? '教练' : 'coach' }}</span> |
| 175 | <span v-if="item==='2'" class="ml5">{{ language == 0 ? '领队' : 'team leader' }}</span> | 175 | <span v-if="item==='2'" class="ml5">{{ language == 0 ? '领队' : 'team leader' }}</span> |
| 176 | <span v-if="item==='3'" class="ml5">{{ language == 0 ? '队医' : 'team doctor' }}</span> | 176 | <span v-if="item==='4'" class="ml5">{{ language == 0 ? '队医' : 'team doctor' }}</span> |
| 177 | <span v-if="item==='4'" class="ml5">{{ language == 0 ? '翻译' : 'translator' }}</span> | 177 | <span v-if="item==='5'" class="ml5">{{ language == 0 ? '翻译' : 'translator' }}</span> |
| 178 | <span v-if="item==='5'" class="ml5">{{ language == 0 ? '官员' : 'official' }}</span> | 178 | <span v-if="item==='6'" class="ml5">{{ language == 0 ? '官员' : 'official' }}</span> |
| 179 | <span v-if="item==='6'" class="ml5">{{ language == 0 ? '其他' : 'other' }}</span> | 179 | <span v-if="item==='3'" class="ml5">{{ language == 0 ? '其他' : 'other' }}</span> |
| 180 | </span> | 180 | </span> |
| 181 | </td> | 181 | </td> |
| 182 | <td> | 182 | <td> | ... | ... |
| ... | @@ -59,6 +59,11 @@ | ... | @@ -59,6 +59,11 @@ |
| 59 | <div class="matchItem" v-for="n in list" :key="n.id" @click="goDetail(n.id)"> | 59 | <div class="matchItem" v-for="n in list" :key="n.id" @click="goDetail(n.id)"> |
| 60 | <el-row :gutter="15"> | 60 | <el-row :gutter="15"> |
| 61 | <el-col :lg="7" :md="24" :xl="6"> | 61 | <el-col :lg="7" :md="24" :xl="6"> |
| 62 | <div class="popo"> | ||
| 63 | <el-tag v-if="n.signType==0">{{ language==0?'个人':'Individual' }}</el-tag> | ||
| 64 | <el-tag v-if="n.signType==1">{{ language==0?'团体':'Team' }}</el-tag> | ||
| 65 | <el-tag v-if="n.signType==2">{{ language==0?'个人/团体':'Individual/Team' }}</el-tag> | ||
| 66 | </div> | ||
| 62 | <img class="mauto mw100 coverLimitHeight" :src="fillImgUrl(n.coverUrl)"> | 67 | <img class="mauto mw100 coverLimitHeight" :src="fillImgUrl(n.coverUrl)"> |
| 63 | </el-col> | 68 | </el-col> |
| 64 | <el-col :lg="9" :md="12" :xl="12"> | 69 | <el-col :lg="9" :md="12" :xl="12"> |
| ... | @@ -69,11 +74,11 @@ | ... | @@ -69,11 +74,11 @@ |
| 69 | <!-- <p class="ppl" v-if="n.address"><label>{{ language==0?'地    点':'Location' }}:</label>{{ n.address }}</p>--> | 74 | <!-- <p class="ppl" v-if="n.address"><label>{{ language==0?'地    点':'Location' }}:</label>{{ n.address }}</p>--> |
| 70 | <!-- <p class="ppl"><label>{{ language==0?'报名截止':'Registration Deadline' }}:</label>{{ n.signEndTime?.slice(0,10) }}</p>--> | 75 | <!-- <p class="ppl"><label>{{ language==0?'报名截止':'Registration Deadline' }}:</label>{{ n.signEndTime?.slice(0,10) }}</p>--> |
| 71 | 76 | ||
| 72 | <p class="ppl"><label>{{ language==0?'联系人员':'Contact Person' }}:</label>{{ n.contactPerson }}</p> | 77 | <p class="ppl"><label>{{ language==0?'联 系 人':'Contact Person' }}:</label>{{ n.contactPerson }}</p> |
| 73 | <p class="ppl"><label>{{ language==0?'联系电话':'Phone' }}:</label>086-{{ n.contactTelno }}</p> | 78 | <p class="ppl"><label>{{ language==0?'联系电话':'Phone' }}:</label>086-{{ n.contactTelno }}</p> |
| 74 | <p class="ppl esp"><label>{{ language==0?'邮    箱':'E-mail' }}:</label>{{ n.contactEmail }}</p> | 79 | <p class="ppl esp"><label>{{ language==0?'邮    箱':'E-mail' }}:</label>{{ n.contactEmail }}</p> |
| 75 | <p class="ppl" v-if="n.type=='1'"> | 80 | <p class="ppl" v-if="n.type=='1'"> |
| 76 | <label>{{ language==0?'分站赛':'Station race' }}:</label>{{n.cpts?.length}} | 81 | <label>{{ language==0?'分 站 赛':'Station race' }}:</label>{{n.cptsSize}} |
| 77 | </p> | 82 | </p> |
| 78 | </div> | 83 | </div> |
| 79 | </el-col> | 84 | </el-col> | ... | ... |
| ... | @@ -16,11 +16,12 @@ | ... | @@ -16,11 +16,12 @@ |
| 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="language=='0'?'序号':'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=='1'?'surname':'姓氏'" prop="xing" min-width="100"/> | 19 | <el-table-column :label="language=='1'?'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="language=='1'?'Passport number':'护照号'" prop="idcCode" min-width="120"/> | 21 | <el-table-column :label="language==0?'国家/地区':'Nationality'" prop="countryName" min-width="100"/> |
| 22 | <el-table-column :label="language=='1'?'Birthday':'生日'" prop="birth"/> | 22 | <!-- <el-table-column :label="language=='1'?'Passport number':'护照号'" prop="idcCode" min-width="120"/>--> |
| 23 | <el-table-column :label="language=='1'?'Sex':'性别'" prop="sexStr"/> | 23 | <!-- <el-table-column :label="language=='1'?'Birthday':'生日'" prop="birth"/>--> |
| 24 | <el-table-column :label="language=='1'?'Gender':'性别'" prop="sexStr"/> | ||
| 24 | <el-table-column :label="language=='1'?'Role':'角色'" min-width="160"> | 25 | <el-table-column :label="language=='1'?'Role':'角色'" min-width="160"> |
| 25 | <template #default="scope"> | 26 | <template #default="scope"> |
| 26 | <div class="roletd"> | 27 | <div class="roletd"> |
| ... | @@ -28,10 +29,10 @@ | ... | @@ -28,10 +29,10 @@ |
| 28 | <span v-if="item==='0'" class="ml5">{{ language == 0 ? '运动员' : 'athletes' }}</span> | 29 | <span v-if="item==='0'" class="ml5">{{ language == 0 ? '运动员' : 'athletes' }}</span> |
| 29 | <span v-if="item==='1'" class="ml5">{{ language == 0 ? '教练' : 'coach' }}</span> | 30 | <span v-if="item==='1'" class="ml5">{{ language == 0 ? '教练' : 'coach' }}</span> |
| 30 | <span v-if="item==='2'" class="ml5">{{ language == 0 ? '领队' : 'team leader' }}</span> | 31 | <span v-if="item==='2'" class="ml5">{{ language == 0 ? '领队' : 'team leader' }}</span> |
| 31 | <span v-if="item==='3'" class="ml5">{{ language == 0 ? '队医' : 'team doctor' }}</span> | 32 | <span v-if="item==='4'" class="ml5">{{ language == 0 ? '队医' : 'team doctor' }}</span> |
| 32 | <span v-if="item==='4'" class="ml5">{{ language == 0 ? '翻译' : 'translator' }}</span> | 33 | <span v-if="item==='5'" class="ml5">{{ language == 0 ? '翻译' : 'translator' }}</span> |
| 33 | <span v-if="item==='5'" class="ml5">{{ language == 0 ? '官员' : 'official' }}</span> | 34 | <span v-if="item==='6'" class="ml5">{{ language == 0 ? '官员' : 'official' }}</span> |
| 34 | <span v-if="item==='6'" class="ml5">{{ language == 0 ? '其他' : 'other' }}</span> | 35 | <span v-if="item==='3'" class="ml5">{{ language == 0 ? '其他' : 'other' }}</span> |
| 35 | </span> | 36 | </span> |
| 36 | </div> | 37 | </div> |
| 37 | </template> | 38 | </template> |
| ... | @@ -39,7 +40,7 @@ | ... | @@ -39,7 +40,7 @@ |
| 39 | </el-table> | 40 | </el-table> |
| 40 | </div> | 41 | </div> |
| 41 | </div> | 42 | </div> |
| 42 | <div class="pd20" v-if="signInfoList?.length>0"> | 43 | <div class="pd20" v-if="signInfoList?.length>0||zuQuery.athName"> |
| 43 | <div class="leftboderTT">{{ language == 0 ? '参赛人员保险费' : 'Participant Insurance Fee' }} | 44 | <div class="leftboderTT">{{ language == 0 ? '参赛人员保险费' : 'Participant Insurance Fee' }} |
| 44 | <div class="fr"> | 45 | <div class="fr"> |
| 45 | <el-input size="small" v-model="zuQuery.athName" :prefix-icon="Search" | 46 | <el-input size="small" v-model="zuQuery.athName" :prefix-icon="Search" |
| ... | @@ -50,7 +51,7 @@ | ... | @@ -50,7 +51,7 @@ |
| 50 | <sign-info-table class="mt20" v-if="matchId" :show-summary="true" :total="insuranceFeeTotal" | 51 | <sign-info-table class="mt20" v-if="matchId" :show-summary="true" :total="insuranceFeeTotal" |
| 51 | :match-id="matchId" :list="signInfoList" :hasAction="false"/> | 52 | :match-id="matchId" :list="signInfoList" :hasAction="false"/> |
| 52 | </div> | 53 | </div> |
| 53 | <div class="pd20" v-if="zuTableList?.length>0"> | 54 | <div class="pd20" v-if="zuTableList?.length>0||zuQuery.groName"> |
| 54 | <div class="leftboderTT">{{ language == 0 ? '参赛设项报名费' : 'Registration Fee for Event Entry' }} | 55 | <div class="leftboderTT">{{ language == 0 ? '参赛设项报名费' : 'Registration Fee for Event Entry' }} |
| 55 | <div class="fr"> | 56 | <div class="fr"> |
| 56 | <el-input size="small" v-model="zuQuery.groName" :prefix-icon="Search" | 57 | <el-input size="small" v-model="zuQuery.groName" :prefix-icon="Search" |
| ... | @@ -108,10 +109,17 @@ | ... | @@ -108,10 +109,17 @@ |
| 108 | <div v-if="form.reason" class="rre">{{language==0?'驳回理由':'Reason'}}:{{form.reason}}</div> | 109 | <div v-if="form.reason" class="rre">{{language==0?'驳回理由':'Reason'}}:{{form.reason}}</div> |
| 109 | </div> | 110 | </div> |
| 110 | </div> | 111 | </div> |
| 112 | <div class="text-danger flex" v-if="form.auditStatus=='4'"> | ||
| 113 | <img src="@/assets/img/w.png"> | ||
| 114 | <div> | ||
| 115 | {{ language==0?'报名已取消':'Registration cancelled' }} | ||
| 116 | </div> | ||
| 117 | </div> | ||
| 111 | </el-col> | 118 | </el-col> |
| 112 | <el-col :lg="12" v-if="Number(form.totalFee)>0"> | 119 | <el-col :lg="12" v-if="Number(form.totalFee)>0"> |
| 113 | <div class="priceb" v-if="form.payStatus=='0'">{{ language==0?'待支付金额':'Amount Due' }}:<span class="price">{{ language==0?'¥':'€' }}{{ Number(totalFee).toFixed(2) }}</span></div> | 120 | <div class="priceb" v-if="form.payStatus=='0'">{{ language==0?'待支付金额':'Amount Due' }}:<span class="price">{{ language==0?'¥':'€' }}{{ Number(totalFee).toFixed(2) }}</span></div> |
| 114 | <div class="priceb" v-if="form.payStatus=='1'">{{ language==0?'已支付金额':'Amount Due' }}:<span class="price">{{ language==0?'¥':'€' }}{{ Number(totalFee).toFixed(2) }}</span></div> | 121 | <div class="priceb" v-if="form.payStatus=='1'">{{ language==0?'已支付金额':'Amount Due' }}:<span class="price">{{ language==0?'¥':'€' }}{{ Number(totalFee).toFixed(2) }}</span></div> |
| 122 | <div class="priceb" v-if="form.payStatus=='5'">{{ language==0?'已退款':'Refunded' }}:<span class="price">{{ language==0?'¥':'€' }}{{ Number(totalFee).toFixed(2) }}</span></div> | ||
| 115 | </el-col> | 123 | </el-col> |
| 116 | </el-row> | 124 | </el-row> |
| 117 | </el-card> | 125 | </el-card> |
| ... | @@ -207,6 +215,15 @@ | ... | @@ -207,6 +215,15 @@ |
| 207 | <img height="360" src="@/assets/img/rr.jpg"/> | 215 | <img height="360" src="@/assets/img/rr.jpg"/> |
| 208 | </div> | 216 | </div> |
| 209 | </div> | 217 | </div> |
| 218 | <div class="tip text-center text-danger" v-if="language==0"> | ||
| 219 | 支付后不要关闭此窗口,等待确认支付成功. | ||
| 220 | 若长时间未收到支付成功提醒,请刷新页面</div> | ||
| 221 | <div class="tip text-center text-danger" v-else> | ||
| 222 | After payment, do not close this window and wait for confirmation of successful payment. | ||
| 223 | <br/> | ||
| 224 | If you have not received a notification of successful payment for a long time, | ||
| 225 | please refresh the page | ||
| 226 | </div> | ||
| 210 | </div> | 227 | </div> |
| 211 | 228 | ||
| 212 | <div v-if="payType == '3'"> | 229 | <div v-if="payType == '3'"> |
| ... | @@ -225,8 +242,8 @@ | ... | @@ -225,8 +242,8 @@ |
| 225 | <th>{{ language==0?'收款账号':`Receiver's Account Number` }}</th> | 242 | <th>{{ language==0?'收款账号':`Receiver's Account Number` }}</th> |
| 226 | <td> | 243 | <td> |
| 227 | {{ form.payInformation?.receivingAccount }} | 244 | {{ form.payInformation?.receivingAccount }} |
| 228 | <span v-if="language==0" class="text-primary size12">复制25位账号</span> | 245 | <span v-if="language==0" class="text-primary size12 pointer" @click="copy(form.payInformation?.receivingAccount)">复制25位账号</span> |
| 229 | <span v-else class="text-primary size12">Copy 25-digit Account Number</span> | 246 | <span v-else class="text-primary size12 pointer" @click="copy(form.payInformation?.receivingAccount)">Copy 25-digit Account Number</span> |
| 230 | <div v-if="language==0" class="text-gray">请勿重复打款</div> | 247 | <div v-if="language==0" class="text-gray">请勿重复打款</div> |
| 231 | <div v-else class="text-gray">Please do not make duplicate payments</div> | 248 | <div v-else class="text-gray">Please do not make duplicate payments</div> |
| 232 | </td> | 249 | </td> |
| ... | @@ -273,19 +290,18 @@ | ... | @@ -273,19 +290,18 @@ |
| 273 | <el-button v-if="!hideconfirmbtn" type="primary" @click="goPay" round class="btn-lineG w200px"> | 290 | <el-button v-if="!hideconfirmbtn" type="primary" @click="goPay" round class="btn-lineG w200px"> |
| 274 | {{ language==0?'确定':'Submit' }}</el-button> | 291 | {{ language==0?'确定':'Submit' }}</el-button> |
| 275 | </div> | 292 | </div> |
| 276 | |||
| 277 | </div> | 293 | </div> |
| 278 | |||
| 279 | </el-card> | 294 | </el-card> |
| 280 | <el-card class="mb60" v-if="form.payStatus == '3'"> | 295 | <el-card class="mb60" v-if="form.payStatus == '3'"> |
| 281 | <div class="text-center"> | 296 | <div class="text-center"> |
| 282 | <el-icon color="#32B16C" size="80"><SuccessFilled /></el-icon> | 297 | <el-icon color="#32B16C" size="80"><SuccessFilled /></el-icon> |
| 283 | <p class="text-success">{{ language==0?'支付成功':'successful!' }}</p> | 298 | <p class="text-success">{{ language==0?'支付成功':'successful!' }}</p> |
| 284 | <h3 class="wePrice">{{ language==0?'¥':'€' }}{{form.totalFee}}</h3> | 299 | <h3 class="wePrice">{{ language==0?'¥':'€' }}{{form.totalFee || 0}}</h3> |
| 285 | </div> | 300 | </div> |
| 286 | </el-card> | 301 | </el-card> |
| 287 | <el-card class="mb60" v-if="form.payStatus == '1' && form.curPayType=='2'"> | 302 | <el-card class="mb60" v-if="form.payStatus == '1' && form.curPayType=='2'"> |
| 288 | <!-- 线下支付待核销--> | 303 | <!-- 线下支付待核销--> |
| 304 | <label>{{ language==0?'线下支付':'Offline Payment' }}</label> | ||
| 289 | <div class="text-center"> | 305 | <div class="text-center"> |
| 290 | <el-icon color="#32B16C" size="80"><SuccessFilled /></el-icon> | 306 | <el-icon color="#32B16C" size="80"><SuccessFilled /></el-icon> |
| 291 | <p class="text-success">{{ language==0?'支付成功':'successfully!' }}</p> | 307 | <p class="text-success">{{ language==0?'支付成功':'successfully!' }}</p> |
| ... | @@ -336,6 +352,7 @@ import ZuTable from "@/viewsPc/match/components/zu-table"; | ... | @@ -336,6 +352,7 @@ import ZuTable from "@/viewsPc/match/components/zu-table"; |
| 336 | import useUserStore from "@/store/modules/user"; | 352 | import useUserStore from "@/store/modules/user"; |
| 337 | import FileUpload from "@/components/FileUpload"; | 353 | import FileUpload from "@/components/FileUpload"; |
| 338 | import {useStorage} from "@vueuse/core/index"; | 354 | import {useStorage} from "@vueuse/core/index"; |
| 355 | import {ElMessage} from "element-plus"; | ||
| 339 | const isLogin = ref(false) | 356 | const isLogin = ref(false) |
| 340 | const language= useStorage('language',0) | 357 | const language= useStorage('language',0) |
| 341 | const signInfoList = ref([]) | 358 | const signInfoList = ref([]) |
| ... | @@ -343,7 +360,7 @@ const zuTableList = ref([]) | ... | @@ -343,7 +360,7 @@ const zuTableList = ref([]) |
| 343 | const totalFee = ref('') | 360 | const totalFee = ref('') |
| 344 | const wePayCodeUrl = ref('') | 361 | const wePayCodeUrl = ref('') |
| 345 | const form = ref({}) | 362 | const form = ref({}) |
| 346 | const voucherObj = ref({}) | 363 | const voucherObj = ref([]) |
| 347 | const myMemberTable = ref([]) | 364 | const myMemberTable = ref([]) |
| 348 | const upForm = ref({ | 365 | const upForm = ref({ |
| 349 | orderId:orderId.value | 366 | orderId:orderId.value |
| ... | @@ -389,6 +406,10 @@ function getMyMemberTable() { | ... | @@ -389,6 +406,10 @@ function getMyMemberTable() { |
| 389 | }) | 406 | }) |
| 390 | } | 407 | } |
| 391 | function upRR() { | 408 | function upRR() { |
| 409 | if(voucherObj.value.length==0){ | ||
| 410 | ElMessage.warning(language.value==0?'请上传凭证':'Please upload the voucher') | ||
| 411 | return | ||
| 412 | } | ||
| 392 | upForm.value.voucher = voucherObj.value[0].url | 413 | upForm.value.voucher = voucherObj.value[0].url |
| 393 | match.upReceipt(upForm.value).then(res=>{ | 414 | match.upReceipt(upForm.value).then(res=>{ |
| 394 | getData() | 415 | getData() |
| ... | @@ -406,6 +427,11 @@ function getSignList() { | ... | @@ -406,6 +427,11 @@ function getSignList() { |
| 406 | for(var z of zuTableList.value){ | 427 | for(var z of zuTableList.value){ |
| 407 | serviceFeeTotal.value = serviceFeeTotal.value + Number(z.project.serviceFee) | 428 | serviceFeeTotal.value = serviceFeeTotal.value + Number(z.project.serviceFee) |
| 408 | } | 429 | } |
| 430 | }).catch(err=>{ | ||
| 431 | if(isLogin.value){ | ||
| 432 | router.push({name:'myMatch'}) | ||
| 433 | return | ||
| 434 | } | ||
| 409 | }) | 435 | }) |
| 410 | } | 436 | } |
| 411 | function goHome() { | 437 | function goHome() { |
| ... | @@ -420,12 +446,15 @@ function changePaytype() { | ... | @@ -420,12 +446,15 @@ function changePaytype() { |
| 420 | } | 446 | } |
| 421 | } | 447 | } |
| 422 | function goPay(){ | 448 | function goPay(){ |
| 423 | if(payType.value=='2'){ | 449 | if(payType.value=='2' && form.value.payTypeArr.indexOf('2')>-1){ |
| 424 | match.createWePay({orderId:orderId.value}).then(res=>{ | 450 | match.createWePay({orderId:orderId.value}).then(res=>{ |
| 425 | wePayCodeUrl.value = res.data | 451 | wePayCodeUrl.value = res.data |
| 426 | hideconfirmbtn.value = true | 452 | hideconfirmbtn.value = true |
| 427 | startforGetData() | 453 | startforGetData() |
| 428 | }) | 454 | }) |
| 455 | } else if(payType.value=='2' && form.value.payTypeArr.indexOf('2')==-1){ | ||
| 456 | ElMessage.warning(language.value == 0 ? '请选择支付方式' : 'Please select payment method') | ||
| 457 | return | ||
| 429 | } | 458 | } |
| 430 | if(payType.value=='4'){ | 459 | if(payType.value=='4'){ |
| 431 | match.createPalPay({orderId:orderId.value}).then(res=>{ | 460 | match.createPalPay({orderId:orderId.value}).then(res=>{ |
| ... | @@ -501,6 +530,11 @@ function exportPdf() { | ... | @@ -501,6 +530,11 @@ function exportPdf() { |
| 501 | } | 530 | } |
| 502 | 531 | ||
| 503 | } | 532 | } |
| 533 | function copy(str) { | ||
| 534 | navigator.clipboard.writeText(str).then(() => { | ||
| 535 | ElMessage.success(language.value==0?'复制成功':'Copy successfully') | ||
| 536 | }) | ||
| 537 | } | ||
| 504 | </script> | 538 | </script> |
| 505 | 539 | ||
| 506 | <style scoped lang="scss"> | 540 | <style scoped lang="scss"> | ... | ... |
| ... | @@ -18,11 +18,13 @@ | ... | @@ -18,11 +18,13 @@ |
| 18 | <div v-if="user.utype=='1'&&myMemberTable.length>0"> | 18 | <div v-if="user.utype=='1'&&myMemberTable.length>0"> |
| 19 | <el-table class="mt20" :data="myMemberTable" border> | 19 | <el-table class="mt20" :data="myMemberTable" border> |
| 20 | <el-table-column type="index" :label="language==0?'序号':'Index'" width="70" align="center"/> | 20 | <el-table-column type="index" :label="language==0?'序号':'Index'" width="70" align="center"/> |
| 21 | <el-table-column :label="language==0?'姓氏':'surname'" prop="xing" min-width="100"/> | 21 | <el-table-column :label="language==0?'姓氏':'Surname'" prop="xing" min-width="100"/> |
| 22 | <el-table-column :label="language==0?'名':'name'" prop="ming" min-width="100"/> | 22 | <el-table-column :label="language==0?'名':'Name'" prop="ming" min-width="100"/> |
| 23 | <el-table-column :label="language==0?'护照号':'Passport number'" prop="idcCode" min-width="120"/> | 23 | <el-table-column :label="language==0?'国家/地区':'Nationality'" prop="countryName" min-width="100"/> |
| 24 | <el-table-column :label="language==0?'出生日期':'Birthday'" prop="birth"/> | 24 | <!-- <el-table-column :label="language==0?'国家':'Nationality'" prop="countryStr" min-width="120"/>--> |
| 25 | <el-table-column :label="language==0?'性别':'Sex'" prop="sexStr"/> | 25 | <!-- <el-table-column :label="language==0?'护照号':'Passport Number'" prop="idcCode" min-width="120"/>--> |
| 26 | <!-- <el-table-column v-show="!isNational" :label="language==0?'出生日期':'Birthday'" prop="birth"/>--> | ||
| 27 | <el-table-column :label="language==0?'性别':'Gender'" prop="sexStr"/> | ||
| 26 | <el-table-column :label="language==0?'角色':'Role'" min-width="160"> | 28 | <el-table-column :label="language==0?'角色':'Role'" min-width="160"> |
| 27 | <template #default="scope"> | 29 | <template #default="scope"> |
| 28 | <div class="roletd"> | 30 | <div class="roletd"> |
| ... | @@ -30,10 +32,10 @@ | ... | @@ -30,10 +32,10 @@ |
| 30 | <span v-if="item==='0'" class="ml5">{{ language == 0 ? '运动员' : 'athletes' }}</span> | 32 | <span v-if="item==='0'" class="ml5">{{ language == 0 ? '运动员' : 'athletes' }}</span> |
| 31 | <span v-if="item==='1'" class="ml5">{{ language == 0 ? '教练' : 'coach' }}</span> | 33 | <span v-if="item==='1'" class="ml5">{{ language == 0 ? '教练' : 'coach' }}</span> |
| 32 | <span v-if="item==='2'" class="ml5">{{ language == 0 ? '领队' : 'team leader' }}</span> | 34 | <span v-if="item==='2'" class="ml5">{{ language == 0 ? '领队' : 'team leader' }}</span> |
| 33 | <span v-if="item==='3'" class="ml5">{{ language == 0 ? '队医' : 'team doctor' }}</span> | 35 | <span v-if="item==='4'" class="ml5">{{ language == 0 ? '队医' : 'team doctor' }}</span> |
| 34 | <span v-if="item==='4'" class="ml5">{{ language == 0 ? '翻译' : 'translator' }}</span> | 36 | <span v-if="item==='5'" class="ml5">{{ language == 0 ? '翻译' : 'translator' }}</span> |
| 35 | <span v-if="item==='5'" class="ml5">{{ language == 0 ? '官员' : 'official' }}</span> | 37 | <span v-if="item==='6'" class="ml5">{{ language == 0 ? '官员' : 'official' }}</span> |
| 36 | <span v-if="item==='6'" class="ml5">{{ language == 0 ? '其他' : 'other' }}</span> | 38 | <span v-if="item==='3'" class="ml5">{{ language == 0 ? '其他' : 'other' }}</span> |
| 37 | </span> | 39 | </span> |
| 38 | </div> | 40 | </div> |
| 39 | </template> | 41 | </template> |
| ... | @@ -47,7 +49,8 @@ | ... | @@ -47,7 +49,8 @@ |
| 47 | @change="getSignList" clearable/> | 49 | @change="getSignList" clearable/> |
| 48 | </div> | 50 | </div> |
| 49 | </div> | 51 | </div> |
| 50 | <sign-info-table class="mt20" :showSummary="true" :total="signTotal" :match-id="matchId" :list="signInfoList" :hasAction="false"/> | 52 | <sign-info-table class="mt20" :showSummary="true" :total="signTotal" :match-id="matchId" |
| 53 | :list="signInfoList" :hasAction="false" :is-national="isNational"/> | ||
| 51 | </div> | 54 | </div> |
| 52 | <div class="mt20"> | 55 | <div class="mt20"> |
| 53 | <div class="leftboderTT">{{ language==0?'设项报名清单':'Event Registration List' }} | 56 | <div class="leftboderTT">{{ language==0?'设项报名清单':'Event Registration List' }} |
| ... | @@ -66,9 +69,9 @@ | ... | @@ -66,9 +69,9 @@ |
| 66 | <el-row class="priceBar"> | 69 | <el-row class="priceBar"> |
| 67 | <el-col :lg="12" :xs="24" class="pd20"> | 70 | <el-col :lg="12" :xs="24" class="pd20"> |
| 68 | <div class="flex"> | 71 | <div class="flex"> |
| 69 | <div class="item"><label>{{ language==0?'报名费':'Registration Fee' }}:</label><span>{{ language==0?'¥':'€' }}{{form.cptRegistrationFee?.totalFee}}</span></div> | 72 | <div class="item" v-if="form.cptRegistrationFee?.totalFee>0"><label>{{ language==0?'报名费':'Registration Fee' }}:</label><span>{{ language==0?'¥':'€' }}{{form.cptRegistrationFee?.totalFee}}</span></div> |
| 70 | <div class="item"><label>{{ language==0?'保险费':'Insurance Fee' }}:</label><span>{{ language==0?'¥':'€' }}{{form.cptInsuranceFee?.totalFee}}</span></div> | 73 | <div class="item" v-if="form.cptInsuranceFee?.totalFee>0"><label>{{ language==0?'保险费':'Insurance Fee' }}:</label><span>{{ language==0?'¥':'€' }}{{form.cptInsuranceFee?.totalFee}}</span></div> |
| 71 | <div class="item"><label>{{ language==0?'费用总计':'Total Cost' }}:</label><span>{{ language==0?'¥':'€' }}{{form.totalFee}}</span></div> | 74 | <div class="item" v-if="form.totalFee>0"><label>{{ language==0?'费用总计':'Total Cost' }}:</label><span>{{ language==0?'¥':'€' }}{{form.totalFee}}</span></div> |
| 72 | </div> | 75 | </div> |
| 73 | </el-col> | 76 | </el-col> |
| 74 | <el-col :lg="12" :xs="24" class="text-right pd20"> | 77 | <el-col :lg="12" :xs="24" class="text-right pd20"> |
| ... | @@ -115,14 +118,15 @@ const router = useRouter() | ... | @@ -115,14 +118,15 @@ const router = useRouter() |
| 115 | const activeStep = ref(3) | 118 | const activeStep = ref(3) |
| 116 | const groupInfo = useUserStore().group || {} | 119 | const groupInfo = useUserStore().group || {} |
| 117 | const language= useStorage('language',0) | 120 | const language= useStorage('language',0) |
| 118 | const groupId = ref(route.query.groupId || 0) | ||
| 119 | const form = ref({}) | 121 | const form = ref({}) |
| 120 | const matchId = ref(route.query.matchId) | ||
| 121 | const signInfoList = ref([]) | 122 | const signInfoList = ref([]) |
| 122 | const signEndTime = ref('') | 123 | const signEndTime = ref('') |
| 123 | const zuTableList = ref([]) | 124 | const zuTableList = ref([]) |
| 124 | const zuTotal = ref(0) | 125 | const zuTotal = ref(0) |
| 125 | const signTotal = ref(0) | 126 | const signTotal = ref(0) |
| 127 | const groupId = ref(route.query.groupId || 0) | ||
| 128 | const matchId = ref(route.query.matchId) | ||
| 129 | const isNational = ref(route.query.isNational||false) | ||
| 126 | const myMemberTable = ref([]) | 130 | const myMemberTable = ref([]) |
| 127 | const user = useUserStore().user | 131 | const user = useUserStore().user |
| 128 | const {proxy} = getCurrentInstance() | 132 | const {proxy} = getCurrentInstance() |
| ... | @@ -145,6 +149,9 @@ function getMatch() { | ... | @@ -145,6 +149,9 @@ function getMatch() { |
| 145 | id: matchId.value | 149 | id: matchId.value |
| 146 | }).then(res => { | 150 | }).then(res => { |
| 147 | signEndTime.value = res.data.signEndTime | 151 | signEndTime.value = res.data.signEndTime |
| 152 | }).catch(err=>{ | ||
| 153 | router.push({name: 'matchList'}) | ||
| 154 | return | ||
| 148 | }) | 155 | }) |
| 149 | } | 156 | } |
| 150 | function getMyMemberTable() { | 157 | function getMyMemberTable() { | ... | ... |
| ... | @@ -53,6 +53,12 @@ | ... | @@ -53,6 +53,12 @@ |
| 53 | </el-select> | 53 | </el-select> |
| 54 | </el-form-item> | 54 | </el-form-item> |
| 55 | <el-form-item :label="language==0?'详细地址':'Detailed Address'" prop="address"> | 55 | <el-form-item :label="language==0?'详细地址':'Detailed Address'" prop="address"> |
| 56 | <el-cascader v-if="form.countryId == 240" | ||
| 57 | v-model="form.regionId" | ||
| 58 | style="width: 100%;" | ||
| 59 | :options="regionsList" | ||
| 60 | :props="{ label:'text' }" | ||
| 61 | /> | ||
| 56 | <el-input type="textarea" v-model="form.address" class="mt10" :placeholder="language==0?'请输入详细地址':''"/> | 62 | <el-input type="textarea" v-model="form.address" class="mt10" :placeholder="language==0?'请输入详细地址':''"/> |
| 57 | </el-form-item> | 63 | </el-form-item> |
| 58 | </el-col> | 64 | </el-col> |
| ... | @@ -186,6 +192,7 @@ onMounted(() => { | ... | @@ -186,6 +192,7 @@ onMounted(() => { |
| 186 | signType.value = route.query.signType | 192 | signType.value = route.query.signType |
| 187 | 193 | ||
| 188 | getRegionsList() | 194 | getRegionsList() |
| 195 | getCountryList() | ||
| 189 | match.getMatchById({ id: cptId.value }).then(res => { | 196 | match.getMatchById({ id: cptId.value }).then(res => { |
| 190 | coachOrLeaderFlag.value = res.data.coachOrLeaderFlag | 197 | coachOrLeaderFlag.value = res.data.coachOrLeaderFlag |
| 191 | matchInfo.value = res.data | 198 | matchInfo.value = res.data |
| ... | @@ -262,7 +269,9 @@ function submitForm() { | ... | @@ -262,7 +269,9 @@ function submitForm() { |
| 262 | return | 269 | return |
| 263 | } | 270 | } |
| 264 | } | 271 | } |
| 265 | 272 | if(Array.isArray(form.value.regionId)){ | |
| 273 | form.value.regionId = form.value.regionId.pop() | ||
| 274 | } | ||
| 266 | if (participantsInfoArr.value.length>0) { | 275 | if (participantsInfoArr.value.length>0) { |
| 267 | // 保存补充信息 | 276 | // 保存补充信息 |
| 268 | let fileInfo = {} | 277 | let fileInfo = {} | ... | ... |
| ... | @@ -23,18 +23,24 @@ | ... | @@ -23,18 +23,24 @@ |
| 23 | <div class="leftboderTT">{{ language == 0 ? '机构信息' : 'Institutional information' }}</div> | 23 | <div class="leftboderTT">{{ language == 0 ? '机构信息' : 'Institutional information' }}</div> |
| 24 | <div class="d-form-border"> | 24 | <div class="d-form-border"> |
| 25 | <el-form class="d-form" size="large" :model="form" ref="registerRef" | 25 | <el-form class="d-form" size="large" :model="form" ref="registerRef" |
| 26 | :rules="registerRules" label-width="120" :label-position="language==0?'left':'top'" | 26 | :rules="form.is=='0'?registerRules:registerRulesEn" label-width="120" :label-position="language==0?'left':'top'" |
| 27 | style="max-width: 500px;margin: auto"> | 27 | style="max-width: 500px;margin: auto"> |
| 28 | <el-form-item label="是否国家队" v-if="language==0"> | 28 | <el-form-item label="是否国家队" v-if="language==0" required> |
| 29 | 29 | <el-select filterable v-model="form.is" @change="changeIs"> | |
| 30 | <el-option label="是" value="1"></el-option> | ||
| 31 | <el-option label="否" value="0"></el-option> | ||
| 32 | </el-select> | ||
| 33 | <div class="tip"> | ||
| 34 | 注册完成后,该属性不可变更 | ||
| 35 | </div> | ||
| 30 | </el-form-item> | 36 | </el-form-item> |
| 31 | <el-form-item :label="language==0?'代表国家/地区':'Representing'" required prop="countryId"> | 37 | <el-form-item :label="language==0?'代表国家/地区':'Representing'" required prop="countryId"> |
| 32 | <el-select filterable v-model="form.countryId"> | 38 | <el-select filterable v-model="form.countryId"> |
| 33 | <!-- <el-option v-for="item in countryList" :key="item.id" :label="language==0?item.name:item.enName" :value="item.id"/>--> | 39 | <!-- <el-option v-for="item in countryList" :key="item.id" :label="language==0?item.name:item.enName" :value="item.id"/>--> |
| 34 | <el-option v-for="item in countryList" :key="item.id" :label="item.eoc||item.enName" :value="item.id"/> | 40 | <el-option v-for="item in countryList" :key="item.id" :label="item.noc||item.enName" :value="item.id"/> |
| 35 | </el-select> | 41 | </el-select> |
| 36 | </el-form-item> | 42 | </el-form-item> |
| 37 | <el-form-item :label="language==0?'详细地址':'Address'" prop="address"> | 43 | <el-form-item :label="language==0?'详细地址':'Address'" prop="address" :required="form.is=='0'"> |
| 38 | <el-cascader v-if="form.countryId == 240" | 44 | <el-cascader v-if="form.countryId == 240" |
| 39 | v-model="regionArr" | 45 | v-model="regionArr" |
| 40 | style="width: 100%;" | 46 | style="width: 100%;" |
| ... | @@ -43,24 +49,24 @@ | ... | @@ -43,24 +49,24 @@ |
| 43 | /> | 49 | /> |
| 44 | <el-input type="textarea" v-model="form.address" class="mt10"/> | 50 | <el-input type="textarea" v-model="form.address" class="mt10"/> |
| 45 | </el-form-item> | 51 | </el-form-item> |
| 46 | <!-- <el-form-item :label="language==0?'团体类型':'Group type'" prop="type" required>--> | 52 | <el-form-item v-if="form.is=='0'&&language==0" :label="language==0?'团体类型':'Group type'" prop="type" required> |
| 47 | <!-- <el-select v-model="form.type" :placeholder="language==0?'请选择团体类型':''" style="width: 100%;">--> | 53 | <el-select v-model="form.type" :placeholder="language==0?'请选择团体类型':''" style="width: 100%;"> |
| 48 | <!-- <el-option :label="language==0?'普通院校':'School'" value="0" />--> | 54 | <el-option :label="language==0?'普通院校':'School'" value="0" /> |
| 49 | <!-- <el-option :label="language==0?'专业舞蹈学校':'Professional dance school'" value="1" />--> | 55 | <el-option :label="language==0?'专业舞蹈学校':'Professional dance school'" value="1" /> |
| 50 | <!-- <el-option :label="language==0?'培训机构/俱乐部':'Company/Club'" value="2" />--> | 56 | <el-option :label="language==0?'培训机构/俱乐部':'Company/Club'" value="2" /> |
| 51 | <!-- <el-option :label="language==0?'地方协会':'Local Association'" value="3" />--> | 57 | <el-option :label="language==0?'地方协会':'Local Association'" value="3" /> |
| 52 | <!-- <el-option :label="language==0?'国家协会':'National Association'" value="4" />--> | 58 | <el-option :disabled="form.is=='0'" :label="language==0?'国家协会':'National Association'" value="4" /> |
| 53 | <!-- </el-select>--> | 59 | </el-select> |
| 54 | <!-- </el-form-item>--> | 60 | </el-form-item> |
| 55 | <el-form-item :label="language==0?'团体名称':'Team Name'" required prop="teamName"> | 61 | <el-form-item :label="language==0?'团体名称':'Team Name'" :required="form.is=='0'" prop="teamName"> |
| 56 | <el-input type="text" v-model="form.teamName" :placeholder="language==0?'请输入内容':''"/> | 62 | <el-input type="text" v-model="form.teamName" :placeholder="language==0?'请输入内容':''"/> |
| 57 | </el-form-item> | 63 | </el-form-item> |
| 58 | <!-- <el-form-item :label="language==0?'专业/业余':'Professional/Amateur'" required prop="majorFlag">--> | 64 | <el-form-item v-if="form.is=='0'" :label="language==0?'专业/业余':'Professional/Amateur'" required prop="majorFlag"> |
| 59 | <!-- <el-select v-model="form.majorFlag">--> | 65 | <el-select v-model="form.majorFlag"> |
| 60 | <!-- <el-option :label="language==0?'专业':'Professional'" value="1" />--> | 66 | <el-option :label="language==0?'专业':'Professional'" value="1" /> |
| 61 | <!-- <el-option :label="language==0?'业余':'Amateur'" value="0" />--> | 67 | <el-option :label="language==0?'业余':'Amateur'" value="0" /> |
| 62 | <!-- </el-select>--> | 68 | </el-select> |
| 63 | <!-- </el-form-item>--> | 69 | </el-form-item> |
| 64 | <el-form-item :label="language==0?'联系人姓名':'Contact Name'" required prop="contactName"> | 70 | <el-form-item :label="language==0?'联系人姓名':'Contact Name'" required prop="contactName"> |
| 65 | <el-input type="text" v-model="form.contactName" :placeholder="language==0?'请输入内容':''"/> | 71 | <el-input type="text" v-model="form.contactName" :placeholder="language==0?'请输入内容':''"/> |
| 66 | </el-form-item> | 72 | </el-form-item> |
| ... | @@ -70,7 +76,8 @@ | ... | @@ -70,7 +76,8 @@ |
| 70 | <el-form-item :label="language==0?'联系人邮箱':'Contact Email'" required prop="contactEmail"> | 76 | <el-form-item :label="language==0?'联系人邮箱':'Contact Email'" required prop="contactEmail"> |
| 71 | <el-input v-model="form.contactEmail" type="email" :placeholder="language==0?'请输入内容':''"/> | 77 | <el-input v-model="form.contactEmail" type="email" :placeholder="language==0?'请输入内容':''"/> |
| 72 | </el-form-item> | 78 | </el-form-item> |
| 73 | <el-form-item prop="photo" :label="language==0?'机构LOGO':'Organizational photos'"> | 79 | <el-form-item prop="photo" :label="language==0?'机构LOGO':'Organizational photos'" |
| 80 | :required="form.is=='0'"> | ||
| 74 | <ImageUpload2 | 81 | <ImageUpload2 |
| 75 | v-model="form.photo" :crop-height="200" :crop-width="200" :limit="1" | 82 | v-model="form.photo" :crop-height="200" :crop-width="200" :limit="1" |
| 76 | :is-show-tip="false" | 83 | :is-show-tip="false" |
| ... | @@ -127,7 +134,9 @@ const props = defineProps({ | ... | @@ -127,7 +134,9 @@ const props = defineProps({ |
| 127 | } | 134 | } |
| 128 | }) | 135 | }) |
| 129 | const data = reactive({ | 136 | const data = reactive({ |
| 130 | form: {}, | 137 | form: { |
| 138 | is: '0' | ||
| 139 | }, | ||
| 131 | loading: false, | 140 | loading: false, |
| 132 | countryList: [], | 141 | countryList: [], |
| 133 | regionsList: [], | 142 | regionsList: [], |
| ... | @@ -135,21 +144,38 @@ const data = reactive({ | ... | @@ -135,21 +144,38 @@ const data = reactive({ |
| 135 | isAgree: false | 144 | isAgree: false |
| 136 | }) | 145 | }) |
| 137 | const {form, countryList, regionsList, isAgree, loading, regionArr} = toRefs(data) | 146 | const {form, countryList, regionsList, isAgree, loading, regionArr} = toRefs(data) |
| 138 | const registerRules = ref( | 147 | const registerRulesEn = ref( |
| 139 | { | 148 | { |
| 140 | password: [ | 149 | password: [ |
| 141 | {required: true, trigger: 'blur', message: '请输入您的密码'}, | 150 | {required: true, trigger: 'blur', message: '请输入您的密码'}, |
| 142 | {min: 6, max: 16, message: '用户密码长度必须介于 6 和 16 之间', trigger: 'blur'} | 151 | {min: 6, max: 16, message: '用户密码长度必须介于 6 和 16 之间', trigger: 'blur'} |
| 143 | ], | 152 | ], |
| 144 | confirmPassword: [{required: true, trigger: 'blur'},], | 153 | confirmPassword: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入':'Please enter'},], |
| 145 | countryId: [{required: true, trigger: 'blur'},], | 154 | countryId: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入':'Please enter'},], |
| 146 | // address: [{required: true, trigger: 'blur', message: '请输入地址'},], | 155 | // address: [{required: true, trigger: 'blur', message: '请输入地址'},], |
| 147 | teamName: [{required: true, trigger: 'blur'},], | 156 | // teamName: [{required: true, trigger: 'blur'},], |
| 148 | contactName: [{required: true, trigger: 'blur'},], | 157 | contactName: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入':'Please enter'},], |
| 149 | contactTel: [{required: true, trigger: 'blur'},], | 158 | contactTel: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入':'Please enter'},], |
| 150 | contactEmail: [{required: true, trigger: 'blur'},], | 159 | contactEmail: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入':'Please enter'},], |
| 151 | // photo: [{required: true, trigger: 'blur', message: '请上传'},], | 160 | // photo: [{required: true, trigger: 'blur', message: '请上传'},], |
| 152 | }) | 161 | }) |
| 162 | const registerRules = ref( | ||
| 163 | { | ||
| 164 | password: [ | ||
| 165 | {required: true, trigger: 'blur', message: '请输入您的密码'}, | ||
| 166 | {min: 6, max: 16, message: '用户密码长度必须介于 6 和 16 之间', trigger: 'blur'} | ||
| 167 | ], | ||
| 168 | confirmPassword: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入':'Please enter'},], | ||
| 169 | countryId: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入':'Please enter'},], | ||
| 170 | address: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入':'Please enter'},], | ||
| 171 | teamName: [{required: true, trigger: 'blur',message: language.value == 0 ? '请输入':'Please enter'},], | ||
| 172 | contactName: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入':'Please enter'},], | ||
| 173 | contactTel: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入':'Please enter'},], | ||
| 174 | contactEmail: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入':'Please enter'},], | ||
| 175 | photo: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入':'Please enter'},], | ||
| 176 | type: [{required: true, trigger: 'blur', message: language.value == 0 ? '请选择':'Please enter'},], | ||
| 177 | majorFlag: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入':'Please enter'},], | ||
| 178 | }) | ||
| 153 | const vconfirmPassword = () => { | 179 | const vconfirmPassword = () => { |
| 154 | if (form.value.password !== form.value.confirmPassword) { | 180 | if (form.value.password !== form.value.confirmPassword) { |
| 155 | ElMessage.warning(language.value == 0 ? '两次输入的密码不一致' :'The two passwords entered are inconsistent') | 181 | ElMessage.warning(language.value == 0 ? '两次输入的密码不一致' :'The two passwords entered are inconsistent') |
| ... | @@ -215,7 +241,21 @@ onMounted(() => { | ... | @@ -215,7 +241,21 @@ onMounted(() => { |
| 215 | if(props.accont.indexOf('@')>-1){ | 241 | if(props.accont.indexOf('@')>-1){ |
| 216 | form.value.contactEmail=props.accont | 242 | form.value.contactEmail=props.accont |
| 217 | } | 243 | } |
| 244 | if(language.value==1){ | ||
| 245 | form.value.type = '4' | ||
| 246 | form.value.is = '1' | ||
| 247 | } else { | ||
| 248 | form.value.countryId = 240 | ||
| 249 | } | ||
| 218 | }) | 250 | }) |
| 251 | const changeIs = (e) => { | ||
| 252 | console.log(e) | ||
| 253 | if(e == 1){ | ||
| 254 | form.value.type = '4' | ||
| 255 | } else { | ||
| 256 | form.value.type = '' | ||
| 257 | } | ||
| 258 | } | ||
| 219 | </script> | 259 | </script> |
| 220 | 260 | ||
| 221 | <style scoped lang="scss"> | 261 | <style scoped lang="scss"> |
| ... | @@ -245,4 +285,10 @@ onMounted(() => { | ... | @@ -245,4 +285,10 @@ onMounted(() => { |
| 245 | font-size: 14px | 285 | font-size: 14px |
| 246 | } | 286 | } |
| 247 | } | 287 | } |
| 288 | .tip { | ||
| 289 | line-height: 1.6; | ||
| 290 | font-size: 12px; | ||
| 291 | margin-top: 6px; | ||
| 292 | color: #666; | ||
| 293 | } | ||
| 248 | </style> | 294 | </style> | ... | ... |
| ... | @@ -82,8 +82,8 @@ export default defineConfig(({ mode, command }) => { | ... | @@ -82,8 +82,8 @@ export default defineConfig(({ mode, command }) => { |
| 82 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') | 82 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') |
| 83 | }, | 83 | }, |
| 84 | '/dev-api': { | 84 | '/dev-api': { |
| 85 | target: 'http://192.168.1.131:8081/', | 85 | // target: 'http://192.168.1.118:8081/', |
| 86 | // target: 'https://dance.itechtop.cn/stage-api', | 86 | target: 'https://dance.itechtop.cn/stage-api', |
| 87 | changeOrigin: true, | 87 | changeOrigin: true, |
| 88 | rewrite: (p) => p.replace(/^\/dev-api/, '') | 88 | rewrite: (p) => p.replace(/^\/dev-api/, '') |
| 89 | } | 89 | } | ... | ... |
-
Please register or sign in to post a comment