no message
Showing
39 changed files
with
453 additions
and
257 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({ | ... | ... |
| ... | @@ -5,7 +5,9 @@ | ... | @@ -5,7 +5,9 @@ |
| 5 | 5 | ||
| 6 | /** 基础通用 **/ | 6 | /** 基础通用 **/ |
| 7 | .popo{position: absolute;left: 0;} | 7 | .popo{position: absolute;left: 0;} |
| 8 | 8 | .no-pointer { pointer-events: none } | |
| 9 | .blur20 { filter: blur(20px) } | ||
| 10 | |||
| 9 | .pt5 { | 11 | .pt5 { |
| 10 | padding-top: 5px; | 12 | padding-top: 5px; |
| 11 | } | 13 | } | ... | ... |
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,13 +166,9 @@ function getData() { | ... | @@ -165,13 +166,9 @@ 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 | }) | 171 | }) |
| 173 | } | ||
| 174 | }) | ||
| 175 | 172 | ||
| 176 | } | 173 | } |
| 177 | 174 | ... | ... |
| ... | @@ -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,14 +359,25 @@ function goNext() { | ... | @@ -359,14 +359,25 @@ function goNext() { |
| 359 | } | 359 | } |
| 360 | 360 | ||
| 361 | function goPrev() { | 361 | function goPrev() { |
| 362 | router.push({ | 362 | if(isNational.value){ |
| 363 | name: `teamSign`, | 363 | router.push({ |
| 364 | query: { | 364 | name: `teamSign`, |
| 365 | matchId: matchId, | 365 | query: { |
| 366 | groupId: groupId.value, | 366 | matchId: matchId, |
| 367 | isNational:isNational.value | 367 | groupId: groupId.value, |
| 368 | } | 368 | isNational:isNational.value |
| 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) { | ... | ... |
This diff is collapsed.
Click to expand it.
| ... | @@ -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 | <div>{{ p.birthPeriod }}</div> | 30 | <!-- {{ isNational }}--> |
| 31 | <div>{{p.birthPeriodSecond}}</div> | 31 | <div v-if="isNational"> |
| 32 | <!-- <div>{{ p.birthAgeGroup }};{{p.birthAgeSecondGroup}}</div>--> | 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> | ||
| 49 | <div>{{ p.birthPeriod }}</div> | ||
| 50 | <div>{{p.birthPeriodSecond}}</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> | ... | ... |
This diff is collapsed.
Click to expand it.
| ... | @@ -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