6cbcab31 by 杨炀

no message

1 parent 734b1000
...@@ -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 }
......
...@@ -59,10 +59,19 @@ ...@@ -59,10 +59,19 @@
59 <!-- | &nbsp;<span @click="goRegister">注册</span>--> 59 <!-- | &nbsp;<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 &nbsp;&nbsp;<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 &nbsp;&nbsp; 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) {
......
...@@ -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?'地&ensp;&ensp;&ensp;&ensp;点':'Location' }}</label>{{ n.address }}</p> 17 <p class="ppl esp"><label>{{ language==0?'地&ensp;&ensp;&ensp;&ensp;点':'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?'联&ensp;系&ensp;人':'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?'邮&ensp;&ensp;&ensp;&ensp;箱':'E-mail' }}</label>{{ n.contactEmail }}</p> 22 <p class="ppl" v-if="n.contactEmail"><label>{{ language==0?'邮&ensp;&ensp;&ensp;&ensp;箱':'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>
......
...@@ -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?'地&ensp;&ensp;&ensp;&ensp;点':'Location' }}:</label>{{ n.address }}</p>--> 74 <!-- <p class="ppl" v-if="n.address"><label>{{ language==0?'地&ensp;&ensp;&ensp;&ensp;点':'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?'联&ensp;&ensp;':'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?'邮&ensp;&ensp;&ensp;&ensp;箱':'E-mail' }}:</label>{{ n.contactEmail }}</p> 79 <p class="ppl esp"><label>{{ language==0?'邮&ensp;&ensp;&ensp;&ensp;箱':'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?'分&ensp;&ensp;赛':'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 = {}
......
...@@ -346,6 +346,8 @@ function next() { ...@@ -346,6 +346,8 @@ function next() {
346 setToken(res.data.token) 346 setToken(res.data.token)
347 console.log(matchId.value) 347 console.log(matchId.value)
348 afterR() 348 afterR()
349 }).catch(err => {
350
349 }) 351 })
350 } 352 }
351 353
......
...@@ -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 }
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!