ae1a1f37 by 李婷婷

个人随行人员

1 parent 2a7aa630
...@@ -343,6 +343,13 @@ export function getPerPersonList(query, userId) { ...@@ -343,6 +343,13 @@ export function getPerPersonList(query, userId) {
343 params: query 343 params: query
344 }) 344 })
345 } 345 }
346 export function getPerPersonList2(query, userId) {
347 return request({
348 url: `/systemj/personInfo/getPersonInfoListByPersonIdNoLabel2/${userId}`,
349 method: 'get',
350 params: query
351 })
352 }
346 353
347 // 选择队友 354 // 选择队友
348 export function getMate(data) { 355 export function getMate(data) {
...@@ -434,6 +441,13 @@ export function groupSignSavePerson(data) { ...@@ -434,6 +441,13 @@ export function groupSignSavePerson(data) {
434 data: data 441 data: data
435 }) 442 })
436 } 443 }
444 export function savePersonInfo(data) {
445 return request({
446 url: `/league/unitCompetitionRole/savePersonInfo`,
447 method: 'post',
448 data: data
449 })
450 }
437 451
438 export function getCanSignProjectList(cptId) { 452 export function getCanSignProjectList(cptId) {
439 return request({ 453 return request({
......
...@@ -565,6 +565,12 @@ export const constantRoutes = [ ...@@ -565,6 +565,12 @@ export const constantRoutes = [
565 meta: { title: '选择参赛项目' } 565 meta: { title: '选择参赛项目' }
566 }, 566 },
567 { 567 {
568 path: 'list/:id/chooseCoachPerson',
569 component: () => import('@/viewsPc/match/components/chooseCoachPerson'),
570 name: 'chooseCoachPerson',
571 meta: { title: '选择教练/领队/其他' }
572 },
573 {
568 path: 'list/:id/signPreview', 574 path: 'list/:id/signPreview',
569 component: () => import('@/viewsPc/match/signPreview'), 575 component: () => import('@/viewsPc/match/signPreview'),
570 name: 'signPreview', 576 name: 'signPreview',
......
...@@ -735,6 +735,12 @@ export const constantRoutes = [ ...@@ -735,6 +735,12 @@ export const constantRoutes = [
735 meta: { title: '选择参赛项目' } 735 meta: { title: '选择参赛项目' }
736 }, 736 },
737 { 737 {
738 path: 'list/:id/chooseCoachPerson',
739 component: () => import('@/viewsPc/match/components/chooseCoachPerson'),
740 name: 'chooseCoachPerson',
741 meta: { title: '选择教练/领队/其他' }
742 },
743 {
738 path: 'list/:id/signPreview', 744 path: 'list/:id/signPreview',
739 component: () => import('@/viewsPc/match/signPreview'), 745 component: () => import('@/viewsPc/match/signPreview'),
740 name: 'signPreview', 746 name: 'signPreview',
......
...@@ -426,7 +426,13 @@ export const constantRoutes = [ ...@@ -426,7 +426,13 @@ export const constantRoutes = [
426 component: () => import('@/viewsPc/match/chooseProject'), 426 component: () => import('@/viewsPc/match/chooseProject'),
427 name: 'chooseProject', 427 name: 'chooseProject',
428 meta: { title: '选择参赛项目' } 428 meta: { title: '选择参赛项目' }
429 } 429 },
430 {
431 path: 'list/:id/chooseCoachPerson',
432 component: () => import('@/viewsPc/match/components/chooseCoachPerson'),
433 name: 'chooseCoachPerson',
434 meta: { title: '选择教练/领队/其他' }
435 },
430 ] 436 ]
431 }, 437 },
432 { 438 {
......
...@@ -115,7 +115,19 @@ const goConti = () => { ...@@ -115,7 +115,19 @@ const goConti = () => {
115 matchId: cptId 115 matchId: cptId
116 } 116 }
117 }) 117 })
118 } else if (signType == '1') { 118 }
119 // else if (signType == '1') {
120 // alert('222')
121 // router.push({
122 // path: `/match/list/${cptId}/chooseCoach`,
123 // query: {
124 // matchId: cptId,
125 // groupId: form.value.signList[0].groupId,
126 // signType: 1
127 // }
128 // })
129 // }
130 else if (signType == '1') {
119 router.push({ 131 router.push({
120 path: `/match/list/${cptId}/chooseSportsman`, 132 path: `/match/list/${cptId}/chooseSportsman`,
121 query: { 133 query: {
......
...@@ -697,10 +697,10 @@ function applyInvitation() { ...@@ -697,10 +697,10 @@ function applyInvitation() {
697 697
698 .zn-btn { 698 .zn-btn {
699 background: #FFFFFF; 699 background: #FFFFFF;
700 font-size: 18px; 700 font-size: 16px;
701 color: #453DEA; 701 color: #453DEA;
702 border-radius: 23px; 702 border-radius: 23px;
703 padding: 10px 20px; 703 padding: 10px 18px;
704 display: inline-flex; 704 display: inline-flex;
705 align-items: center; 705 align-items: center;
706 } 706 }
...@@ -1170,7 +1170,7 @@ function applyInvitation() { ...@@ -1170,7 +1170,7 @@ function applyInvitation() {
1170 } 1170 }
1171 1171
1172 h1 { 1172 h1 {
1173 text-align: center 1173 text-align: center;
1174 } 1174 }
1175 } 1175 }
1176 } 1176 }
......
...@@ -124,7 +124,7 @@ ...@@ -124,7 +124,7 @@
124 <download /> 124 <download />
125 </el-icon> 125 </el-icon>
126 </a> 126 </a>
127 <a class="zn-btn ml20 btn-q" @click="reserveSearch">Reservation Inquiry</a> 127 <a class="zn-btn btn-q" @click="reserveSearch">Reservation Inquiry</a>
128 <!-- <a 128 <!-- <a
129 v-if="matchData.isCourseView==1" class="zn-btn ml20 btn-q forPc" 129 v-if="matchData.isCourseView==1" class="zn-btn ml20 btn-q forPc"
130 style="font-size: 15px;margin-right: 20px" @click="popMaster" 130 style="font-size: 15px;margin-right: 20px" @click="popMaster"
...@@ -134,10 +134,10 @@ ...@@ -134,10 +134,10 @@
134 <Edit /> 134 <Edit />
135 </el-icon> 135 </el-icon>
136 </a> --> 136 </a> -->
137 137 <br/>
138 <a class="zn-btn ml20 btn-q" @click="backNumberSearch">Competition 138 <a class="zn-btn btn-q" @click="backNumberSearch">Competition
139 Number</a> 139 Number</a>
140 <a class="zn-btn ml20 btn-q" @click="schSearchSearch">Schedule 140 <a class="zn-btn btn-q" @click="schSearchSearch">Schedule
141 Inquiry</a> 141 Inquiry</a>
142 142
143 </div> 143 </div>
...@@ -716,7 +716,7 @@ function applyInvitation() { ...@@ -716,7 +716,7 @@ function applyInvitation() {
716 text-transform: uppercase; 716 text-transform: uppercase;
717 font-size: 16px; 717 font-size: 16px;
718 width: fit-content; 718 width: fit-content;
719 margin: 5px 5px 5px 0; 719 margin: 5px 5px 5px 15px;
720 color: #453DEA; 720 color: #453DEA;
721 border-radius: 23px; 721 border-radius: 23px;
722 padding: 10px 20px; 722 padding: 10px 20px;
...@@ -1408,7 +1408,7 @@ function applyInvitation() { ...@@ -1408,7 +1408,7 @@ function applyInvitation() {
1408 } 1408 }
1409 1409
1410 .zn-btn { 1410 .zn-btn {
1411 margin-top: 10px 1411 margin-top: 15px
1412 } 1412 }
1413 } 1413 }
1414 1414
......
...@@ -307,12 +307,12 @@ function geren() { ...@@ -307,12 +307,12 @@ function geren() {
307 if (res[1].data.id != null) { 307 if (res[1].data.id != null) {
308 hasChooseObj.value = res[1].data 308 hasChooseObj.value = res[1].data
309 hasChooseId = res[1].data.id 309 hasChooseId = res[1].data.id
310 form.value.coachs = hasChooseObj.value.coachIds.split(',') 310 form.value.coachs = hasChooseObj.value.coachIds.split(',')||[]
311 form.value.leader = hasChooseObj.value.leaderIds.split(',') 311 form.value.leader = hasChooseObj.value.leaderIds.split(',')||[]
312 form.value.other = hasChooseObj.value.otherIds.split(',') 312 form.value.other = hasChooseObj.value.otherIds.split(',')||[]
313 form.value.doctor = hasChooseObj.value.doctorIds.split(',') 313 form.value.doctor = hasChooseObj.value.doctorIds.split(',')||[]
314 form.value.translator = hasChooseObj.value.translatorIds.split(',') 314 form.value.translator = hasChooseObj.value.translatorIds.split(',')||[]
315 form.value.official = hasChooseObj.value.officialIds.split(',') 315 form.value.official = hasChooseObj.value.officialIds.split(',')||[]
316 } 316 }
317 }) 317 })
318 } 318 }
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
3 <!-- 个人报名-国外--> 3 <!-- 个人报名-国外-->
4 <div class="box ph-30"> 4 <div class="box ph-30">
5 <el-card class="mb20"> 5 <el-card class="mb20">
6 <single-sign-step :active-step="1" :language="language" /> 6 <single-sign-step :active-step="2" :language="language" />
7 </el-card> 7 </el-card>
8 8
9 <el-card :body-style="{'padding': '0'}"> 9 <el-card :body-style="{'padding': '0'}">
...@@ -126,13 +126,13 @@ ...@@ -126,13 +126,13 @@
126 <zu-table v-else :language="language" :list="zuTableList" @delete="removeThis" /> 126 <zu-table v-else :language="language" :list="zuTableList" @delete="removeThis" />
127 127
128 <div v-if="showPersonList||myMemberTable.length>0"> 128 <div v-if="showPersonList||myMemberTable.length>0">
129 <el-row class="mt20"> 129 <!-- <el-row class="mt20">
130 <el-col :span="24"> 130 <el-col :span="24">
131 <el-button plain type="primary" @click="addAccompany"> 131 <el-button plain type="primary" @click="addAccompany">
132 {{ language == 0 ? '添加随行人员' : 'Add accompanying personnel' }} 132 {{ language == 0 ? '添加随行人员' : 'Add accompanying personnel' }}
133 </el-button> 133 </el-button>
134 </el-col> 134 </el-col>
135 </el-row> 135 </el-row> -->
136 <el-table :data="myMemberTable" border class="mt20"> 136 <el-table :data="myMemberTable" border class="mt20">
137 <el-table-column :label="language==0?'序号':'Index'" align="center" type="index" width="70" /> 137 <el-table-column :label="language==0?'序号':'Index'" align="center" type="index" width="70" />
138 <el-table-column :label="language==0?'姓氏':'Surname'" min-width="100" prop="xing" /> 138 <el-table-column :label="language==0?'姓氏':'Surname'" min-width="100" prop="xing" />
...@@ -167,6 +167,7 @@ ...@@ -167,6 +167,7 @@
167 </div> 167 </div>
168 168
169 <div class="text-center mt20 father"> 169 <div class="text-center mt20 father">
170 <el-button type="primary" class="w200px" plain round @click="goPrev()">{{ language==0?'上一步':'Go back' }}</el-button>
170 <el-button 171 <el-button
171 class="btn-lineG w200px" round style="position: relative ; z-index: 99;" type="primary" 172 class="btn-lineG w200px" round style="position: relative ; z-index: 99;" type="primary"
172 @click="submitForm" 173 @click="submitForm"
...@@ -360,7 +361,7 @@ function upDateChoosedList() { ...@@ -360,7 +361,7 @@ function upDateChoosedList() {
360 } 361 }
361 362
362 function getMyMemberTable() { 363 function getMyMemberTable() {
363 match.getPerPersonList({ cptId: matchId.value, searchLabels: '1,2,3,4,5,6' }, userId.value).then(res => { 364 match.getPerPersonList2({ cptId: matchId.value, searchLabels: '1,2,3,4,5,6' }, userId.value).then(res => {
364 myMemberTable.value = res.rows 365 myMemberTable.value = res.rows
365 if (res.rows.length > 0) { 366 if (res.rows.length > 0) {
366 showPersonList.value = true 367 showPersonList.value = true
...@@ -418,7 +419,16 @@ function getSignInfoList() { ...@@ -418,7 +419,16 @@ function getSignInfoList() {
418 zuTableList.value = res.data.zuData || [] 419 zuTableList.value = res.data.zuData || []
419 }) 420 })
420 } 421 }
421 422 function goPrev() {
423 router.push({
424 name: 'chooseCoachPerson',
425 query: {
426 matchId: matchId.value,
427 groupId: groupId.value,
428 isNational: true,
429 }
430 })
431 }
422 432
423 function submitForm() { 433 function submitForm() {
424 if (signInfoList.value.length == 0) { 434 if (signInfoList.value.length == 0) {
...@@ -457,33 +467,34 @@ function submitForm() { ...@@ -457,33 +467,34 @@ function submitForm() {
457 } 467 }
458 } 468 }
459 469
460 if (showPersonList.value) { 470 // if (showPersonList.value) {
461 if (myMemberTable.value.length == 0) { 471 // if (myMemberTable.value.length == 0) {
462 ElMessageBox.confirm(language.value == 0 ? '是否继续添加随行人员?' : 'Do you want to add casual personnel?', 472 // ElMessageBox.confirm(language.value == 0 ? '是否继续添加随行人员?' : 'Do you want to add casual personnel?',
463 language.value == 0 ? '提示' : 'Tip', { 473 // language.value == 0 ? '提示' : 'Tip', {
464 confirmButtonText: language.value == 0 ? '是' : 'Yes', 474 // confirmButtonText: language.value == 0 ? '是' : 'Yes',
465 cancelButtonText: language.value == 0 ? '否,进入下一步' : 'NO,Go Next', 475 // cancelButtonText: language.value == 0 ? '否,进入下一步' : 'NO,Go Next',
466 type: 'warning' 476 // type: 'warning'
467 }).then(() => { 477 // }).then(() => {
468 478
469 }).catch(() => { 479 // }).catch(() => {
470 commit() 480 // commit()
471 }) 481 // })
472 } else { 482 // } else {
473 commit() 483 // commit()
474 } 484 // }
475 } else { 485 // }
476 ElMessageBox.confirm(language.value == 0 ? '是否添加随行人员?' : 'Do you want to add casual personnel?', 486 // else {
477 language.value == 0 ? '提示' : 'Tip', { 487 // ElMessageBox.confirm(language.value == 0 ? '是否添加随行人员?' : 'Do you want to add casual personnel?',
478 confirmButtonText: language.value == 0 ? '是' : 'Yes', 488 // language.value == 0 ? '提示' : 'Tip', {
479 cancelButtonText: language.value == 0 ? '否,进入下一步' : 'NO,Go Next', 489 // confirmButtonText: language.value == 0 ? '是' : 'Yes',
480 type: 'warning' 490 // cancelButtonText: language.value == 0 ? '否,进入下一步' : 'NO,Go Next',
481 }).then(() => { 491 // type: 'warning'
482 showPersonList.value = true 492 // }).then(() => {
483 }).catch(() => { 493 // showPersonList.value = true
494 // }).catch(() => {
484 commit() 495 commit()
485 }) 496 // })
486 } 497 // }
487 } 498 }
488 499
489 function commit() { 500 function commit() {
......
...@@ -209,7 +209,7 @@ import { useStorage } from '@vueuse/core/index' ...@@ -209,7 +209,7 @@ import { useStorage } from '@vueuse/core/index'
209 209
210 const language = useStorage('language', 0) 210 const language = useStorage('language', 0)
211 const data = reactive({ 211 const data = reactive({
212 coachForm: {}, activeStep: 2, 212 coachForm: {}, activeStep: 3,
213 tourCurrent: 0, 213 tourCurrent: 0,
214 tableData: [], 214 tableData: [],
215 signInfoList: [], 215 signInfoList: [],
......
1 <template>
2 <div class="">
3
4 <div class="box ph-30">
5 <el-card v-if="user">
6 <single-sign-step v-if="user.utype=='1'" activeStep="2" :language="language"/>
7 <team-sign-step v-if="user.utype=='2'" :activeStep="2" :language="language"/>
8 </el-card>
9
10 <el-card class="mt20" v-if="isNational">
11 <h3 class="text-center text-danger" v-if="language==0">是否添加随行人员,如果没有,请点击下一步,跳过此步骤</h3>
12 <h3 class="text-center text-danger" v-else>
13 Do you need to add accompanying persons? If not, please proceed to the next step.
14 </h3>
15 </el-card>
16
17 <el-row class="mt20" :gutter="20">
18 <el-col :lg="12">
19 <el-card v-loading="loading">
20 <template #header>
21 <div class="card-header">
22 <img src="@/assets/sign/tag01.png"/>
23 {{ language==0?'教练':'Coach' }}
24 </div>
25 </template>
26 <div class="chooseForm">
27 <el-checkbox-group v-model="form.coachs" @change="changecoachs">
28 <div class="addBttn" @click="addCoach('1')">+</div>
29 <el-checkbox v-for="c in personAllList?.coaches" :value="c.id">
30 <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
31 <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
32 <el-avatar fit="cover" v-else-if="c.sex == 1" :size="60" src="/img/head0.png"/>
33
34 <p class="name">{{ c.realName }}
35 <el-icon @click.stop="editPerson(c.id)">
36 <Edit/>
37 </el-icon>
38 </p>
39 </el-checkbox>
40 </el-checkbox-group>
41 </div>
42 </el-card>
43 </el-col>
44 <el-col :lg="12">
45 <el-card v-loading="loading">
46 <template #header>
47 <div class="card-header">
48 <img src="@/assets/sign/tag02.png"/>
49 {{ language==0?'领队':'HEAD OF TEAM' }}
50 <span class="tip" v-if="language==0&&!isNational">(必选一位领队)</span>
51 <span class="tip" v-if="language==1&&!isNational">(Team Leader select at least one)</span>
52 </div>
53 </template>
54 <div class="chooseForm">
55 <el-checkbox-group v-model="form.leader">
56 <div class="addBttn" @click="addCoach('2')">+</div>
57 <el-checkbox v-for="c in personAllList?.leaders" :value="c.id">
58 <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
59 <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
60 <el-avatar fit="cover" v-else-if="c.sex == 1" :size="60" src="/img/head0.png"/>
61 <p class="name">{{ c.realName }}
62 <el-icon @click.stop="editPerson(c.id)">
63 <Edit/>
64 </el-icon>
65 </p>
66 </el-checkbox>
67 </el-checkbox-group>
68 </div>
69 </el-card>
70 </el-col>
71 <el-col :lg="12">
72 <el-card class="mt20" v-loading="loading">
73 <template #header>
74 <div class="card-header" v-if="isNational">
75 <img src="@/assets/sign/tag03.png"/>
76 {{ language==0?'队医':'Team doctor' }}
77 </div>
78 <div class="card-header" v-else>
79 <img src="@/assets/sign/gl.png"/>
80 {{ language==0?'管理':'Manager' }}
81 </div>
82 </template>
83 <div class="chooseForm">
84 <el-checkbox-group v-model="form.doctor">
85 <div class="addBttn" @click="addCoach('4')">+</div>
86 <el-checkbox v-for="c in personAllList?.teamDoctors" :value="c.id">
87 <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
88 <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
89 <el-avatar fit="cover" v-else-if="c.sex == 1" :size="60" src="/img/head0.png"/>
90 <p class="name">{{ c.realName }}
91 <el-icon @click.stop="editPerson(c.id)">
92 <Edit/>
93 </el-icon>
94 </p>
95 </el-checkbox>
96 </el-checkbox-group>
97 </div>
98 </el-card>
99 </el-col>
100 <el-col :lg="12">
101 <el-card class="mt20" v-loading="loading">
102 <template #header>
103 <div class="card-header">
104 <img src="@/assets/sign/tag04.png"/>
105 {{ language==0?'翻译':'Interpreter' }}
106 </div>
107 </template>
108 <div class="chooseForm">
109 <el-checkbox-group v-model="form.translator">
110 <div class="addBttn" @click="addCoach('5')">+</div>
111 <el-checkbox v-for="c in personAllList?.translators" :value="c.id">
112 <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
113 <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
114 <el-avatar fit="cover" v-else-if="c.sex == 1" :size="60" src="/img/head0.png"/>
115 <p class="name">{{ c.realName }}
116 <el-icon @click.stop="editPerson(c.id)">
117 <Edit/>
118 </el-icon>
119 </p>
120 </el-checkbox>
121 </el-checkbox-group>
122 </div>
123 </el-card>
124 </el-col>
125 <el-col :lg="12">
126 <el-card class="mt20" v-loading="loading">
127 <template #header>
128 <div class="card-header">
129 <img src="@/assets/sign/tag05.png"/>
130 {{ language==0?'官员':'Official' }}
131 </div>
132 </template>
133 <div class="chooseForm">
134 <el-checkbox-group v-model="form.official">
135 <div class="addBttn" @click="addCoach('6')">+</div>
136 <el-checkbox v-for="c in personAllList?.officials" :value="c.id">
137 <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
138 <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
139 <el-avatar fit="cover" v-else-if="c.sex == 1" :size="60" src="/img/head0.png"/>
140 <p class="name">{{ c.realName }}
141 <el-icon @click.stop="editPerson(c.id)">
142 <Edit/>
143 </el-icon>
144 </p>
145 </el-checkbox>
146 </el-checkbox-group>
147 </div>
148 </el-card>
149 </el-col>
150 <el-col :lg="12">
151 <el-card class="mt20" v-loading="loading">
152 <template #header>
153 <div class="card-header">
154 <img src="@/assets/sign/tag06.png"/>
155 {{ language==0?'其他':'Other' }}
156 </div>
157 </template>
158 <div class="chooseForm">
159 <el-checkbox-group v-model="form.other">
160 <div class="addBttn" @click="addCoach('3')">+</div>
161 <el-checkbox v-for="c in personAllList?.others" :value="c.id">
162 <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
163 <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
164 <el-avatar fit="cover" v-else-if="c.sex == 1" :size="60" src="/img/head0.png"/>
165 <p class="name">{{ c.realName }}
166 <el-icon @click.stop="editPerson(c.id)">
167 <Edit/>
168 </el-icon>
169 </p>
170 </el-checkbox>
171 </el-checkbox-group>
172 </div>
173 </el-card>
174 </el-col>
175 </el-row>
176 <el-card class="mt20">
177 <div class="text-center">
178 <el-button type="primary" class="w200px" plain round @click="goPrev()">{{ language==0?'上一步':'Go back' }}</el-button>
179 <el-button type="primary" class="btn-lineG w200px" round @click="goNext()">{{language==0?'下一步':'Next'}}</el-button>
180 </div>
181 </el-card>
182
183
184 </div>
185
186 <dialogAddCoach ref="dialogAddCoachRef" @submitForm="getList"/>
187 <dialogAddCoach_En ref="dialogAddCoachRef_En" @submitForm="getList"/>
188
189 </div>
190 </template>
191
192 <script setup>
193 import TeamSignStep from './teamSignStep'
194 import SingleSignStep from './singleSignStep'
195 import {ref, reactive,toRefs} from 'vue'
196 import {getCurrentInstance, onMounted} from '@vue/runtime-core'
197 import * as match from '@/apiPc/match'
198 import DialogAddCoach from './addCoach'
199 import DialogAddCoach_En from './addCoach_en'
200 const {proxy} = getCurrentInstance()
201 const router = useRouter()
202 const route = useRoute()
203 import {ElMessage, ElMessageBox} from 'element-plus'
204 import {useRoute, useRouter} from 'vue-router'
205 import useUserStore from "@/store/modules/user";
206 import {useStorage} from "@vueuse/core/index";
207 const language= useStorage('language',0)
208
209 const data = reactive({
210 loading:false,
211 form: {
212 coachs: [],
213 leader: [],
214 doctor:[],
215 other: [],
216 translator: [],
217 official: []
218 },
219 personAllList: [],
220 hasChooseObj: {},
221 groupId: '0',
222 signType: '',
223 activeStep: 1,
224 isNational:false,
225 languageSource:''
226 })
227 const {loading,
228 form,personAllList,
229 rules,
230 signType,
231 groupId,
232 hasChooseObj,activeStep,isNational,languageSource
233 } = toRefs(data)
234 let matchId = ''
235 const user = useUserStore().user
236 const group = useUserStore().group || {}
237 onMounted(() => {
238 matchId = route.query.matchId
239 groupId.value = group.id
240 signType.value = route.query.signType || ''
241 if(route.query.isNational==true||route.query.isNational=='true'){
242 isNational.value = true
243 }
244 if(route.query.isNational==false||route.query.isNational=='false'){
245 isNational.value = false
246 }
247 languageSource.value = route.query.languageSource
248 if(!user){
249 router.push({name: 'home'})
250 return
251 }
252 getList()
253 })
254
255 function getList() {
256 // console.log(user.utype)
257 if (user.utype == '1') {
258 geren()
259 }
260 if (user.utype == '2'){
261 tuandui()
262 }
263 }
264
265 function changecoachs(e) {
266 // console.log(e)
267 }
268
269 // 获取报名时是否已选过
270 let hasChooseId
271
272 function tuandui() {
273 loading.value = true
274 Promise.all([
275 match.getMyGroupForCpt(groupId.value, matchId),
276 match.getChooseDoneGroupCoachs(matchId, groupId.value)
277 ]).then((res) => {
278 personAllList.value = res[0].data
279 loading.value = false
280 if (res[1].data.id != null) {
281 hasChooseObj.value = res[1].data
282 hasChooseId = res[1].data.id
283 if (hasChooseObj.value.coachIds) {
284 form.value.coachs = hasChooseObj.value.coachIds.split(',')
285 } else {
286 form.value.coachs = []
287 }
288 if (hasChooseObj.value.leaderIds) {
289 form.value.leader = hasChooseObj.value.leaderIds.split(',')
290 } else {
291 form.value.leader = []
292 }
293 form.value.other = hasChooseObj.value.otherIds.split(',')
294 form.value.doctor = hasChooseObj.value.teamDoctorIds.split(',')
295 form.value.translator = hasChooseObj.value.translatorIds.split(',')
296 form.value.official = hasChooseObj.value.officialIds.split(',')
297 }
298 })
299 }
300
301 function geren() {
302 loading.value = true
303 Promise.all([
304 match.getMyPersonInfoWithcptId(matchId),
305 match.getChooseDoneSingleCoachs(matchId)
306 ]).then((res) => {
307 personAllList.value = res[0].data
308 loading.value = false
309 console.log(999,res[1].data)
310 if (res[1].data.id != null) {
311 hasChooseObj.value = res[1].data
312 hasChooseId = res[1].data.id
313 form.value.coachs = hasChooseObj.value.coachIds ? hasChooseObj.value.coachIds.split(',') : [];
314 form.value.leader = hasChooseObj.value.leaderIds ? hasChooseObj.value.leaderIds.split(',') : [];
315 form.value.other = hasChooseObj.value.otherIds ? hasChooseObj.value.otherIds.split(',') : [];
316 form.value.doctor = hasChooseObj.value.doctorIds ? hasChooseObj.value.doctorIds.split(',') : []; // 个人接口可能是doctorIds
317 form.value.translator = hasChooseObj.value.translatorIds ? hasChooseObj.value.translatorIds.split(',') : [];
318 form.value.official = hasChooseObj.value.officialIds ? hasChooseObj.value.officialIds.split(',') : [];
319 }
320 })
321 }
322
323 function goNext() {
324 console.log(877,form.value.doctor)
325 if (!isNational.value && (form.value.leader.length == 0)) {
326 ElMessage.warning(language.value==0?'必选一位领队':'Team Leaders select at least one')
327 return
328 }
329 // (personAllList.value.coaches.length>=0 && form.value.coachs?.toString().length == 0)&&
330 // (personAllList.value.teamDoctors.length>=0 && form.value.doctor?.toString().length == 0)&&
331 // (personAllList.value.translators.length>=0 && form.value.translator?.toString().length == 0)&&
332 // (personAllList.value.others.length>=0 && form.value.other?.toString().length == 0)&&
333 // (personAllList.value.officials.length>=0 && form.value.official?.toString().length == 0)&&
334 // (personAllList.value.leaders.length>=0 && form.value.leader?.toString().length == 0)
335
336 if((personAllList.value.coaches.length>0 ||
337 personAllList.value.teamDoctors.length>0||
338 personAllList.value.translators.length>0||
339 personAllList.value.others.length>0||
340 personAllList.value.officials.length>0 ||
341 personAllList.value.leaders.length>0
342 )&&(form.value.coachs?.toString().length == 0&&
343 form.value.leader?.toString().length == 0&&
344 form.value.other?.toString().length == 0&&
345 form.value.doctor?.toString().length == 0&&
346 form.value.translator?.toString().length == 0&&
347 form.value.official?.toString().length == 0)
348 ){
349 ElMessageBox.confirm(language.value==0?'您已添加随行人员,但尚未选中,是否进行下一步?':'You have added a follower, but have not selected, do you want to continue?', {
350 confirmButtonText: language.value==0?'下一步':'Next',
351 cancelButtonText: language.value==0?'取消':'Cancel',
352 type: 'warning'
353 }).then(()=>{
354 next()
355 })
356 return
357 }
358 next()
359 }
360
361 function next() {
362 var obj = {
363 cptId: matchId,
364 coachIds: form.value.coachs?.toString() || '',
365 leaderIds: form.value.leader?.toString() || '',
366 otherIds: form.value.other?.toString() || '',
367 teamDoctorIds: form.value.doctor?.toString() || '',
368 translatorIds: form.value.translator?.toString() || '',
369 officialIds: form.value.official?.toString() || ''
370 }
371 if (hasChooseId) {
372 obj.id = hasChooseId
373 }
374 if (groupId.value && groupId.value != 0) {
375 obj.unitId = groupId.value
376 }
377 if (user.utype == '1') {
378 // 个人报名
379 match.singleSignSavePerson(obj).then(res => {
380 router.push({
381 name: 'chooseProject',
382 query: {
383 matchId: matchId,
384 isNational:isNational.value,
385 languageSource:languageSource.value
386 }
387 })
388 })
389 }
390 if (user.utype == '2'){
391 // 团队报名
392 match.savePersonInfo(obj).then(res => {
393 router.push({
394 name: 'chooseSportsman',
395 query: {
396 matchId: matchId,
397 groupId: groupId.value,
398 signType: signType.value,
399 isNational:isNational.value,
400 languageSource:languageSource.value
401 }
402 })
403 })
404 }
405
406 }
407 function goPrev() {
408 if(languageSource.value=='100'){
409 // router.push({
410 // name: `teamSignCn`,
411 // query: {
412 // matchId: matchId,
413 // groupId: groupId.value,
414 // languageSource:languageSource.value,
415 // isNational: false
416 // }
417 // })
418 router.push({
419 name: 'matchDetail',
420 params: {
421 id: matchId
422 },
423 query: {
424 matchId: matchId
425 }
426 })
427
428 } else {
429 // router.push({
430 // name: `teamSign`,
431 // query: {
432 // matchId: matchId,
433 // groupId: groupId.value,
434 // languageSource:languageSource.value,
435 // isNational:isNational.value
436 // }
437 // })
438 router.push({
439 name: 'matchDetail',
440 params: {
441 id: matchId
442 },
443 query: {
444 matchId: matchId
445 }
446 })
447 }
448 }
449
450 function editPerson(id) {
451 var obj = {
452 title: language.value==0?'编辑人员':'Edit',
453 id: id,
454 groupId: groupId.value || 0
455 }
456 if(isNational.value){
457 proxy.$refs['dialogAddCoachRef_En'].open(obj)
458 }else {
459 proxy.$refs['dialogAddCoachRef'].open(obj)
460 }
461 }
462
463 function addCoach(n) {
464 var obj = {
465 title: language.value==0?'新建人员':'Add',
466 id: 0,
467 label: n,
468 groupId: groupId.value
469 }
470 if(isNational.value){
471 proxy.$refs['dialogAddCoachRef_En'].open(obj)
472 }else {
473 proxy.$refs['dialogAddCoachRef'].open(obj)
474 }
475 }
476 </script>
477
478 <style scoped lang="scss">
479 .addBttn {margin-right: 20px;
480 width: 60px;
481 color: #7B7F83;
482 font-size: 20px;
483 height: 60px;
484 display: flex;
485 align-items: center;
486 justify-content: center;
487 background: #FFFFFF;
488 border: 1px dashed #95A1A6;
489 border-radius: 50%;
490
491 &:hover {
492 cursor: pointer;
493 color: var(--el-color-primary);
494 border-color: var(--el-color-primary);
495 }
496 }
497
498 .card-header {text-transform: uppercase;
499 display: flex;
500 align-items: center;color: var(--el-color-primary);
501
502 img {
503 margin-right: 8px;
504 flex: 0 0 auto;
505 }
506 }
507
508 .panel-footer .el-button--success {
509 padding: 0 40px;
510 }
511 .chooseForm{
512 :deep(.el-form-item__content){background: rgba(245, 247, 249, 0.38);
513 padding: 20px 40px 10px;}
514 .el-checkbox{height: auto;text-align: center;}
515 :deep(.el-checkbox__input){position: absolute;right: 0;top: 0;}
516 .name{text-align: center;}
517 }
518 :deep(.el-avatar)>img{width: 100%;}
519
520 </style>
1 <template> 1 <template>
2 <el-steps :active="activeStep" align-center> 2 <el-steps :active="activeStep" align-center>
3 <el-step :title="language==0?'校验 WDSF 会员号':'Check WDSF MIN'" /> 3 <el-step :title="language==0?'校验 WDSF 会员号':'Check WDSF MIN'" />
4 <el-step :title="language==0?'教练/领队/其他':'Coach/Head Of Team/Other'" />
4 <el-step :title="language==0?'选手报名':'Participant Registration'" /> 5 <el-step :title="language==0?'选手报名':'Participant Registration'" />
5 <el-step :title="language==0?'提交审核':'Submit for review'" /> 6 <el-step :title="language==0?'提交审核':'Submit for review'" />
6 </el-steps> 7 </el-steps>
......
...@@ -434,8 +434,8 @@ ...@@ -434,8 +434,8 @@
434 434
435 <div v-if="matchData.leagueId==0" class="fixed_gg_l" @click="applyInvitation"> 435 <div v-if="matchData.leagueId==0" class="fixed_gg_l" @click="applyInvitation">
436 <div> 436 <div>
437 <img v-if="language==0" src="@/assets/logo/Invitation_c.png"> 437 <img v-if="language==0 && matchData.invitationSw == '1'" src="@/assets/logo/Invitation_c.png">
438 <img v-else src="@/assets/logo/Invitation_e.png"> 438 <img v-if="language!=0 && matchData.invitationSw == '1'" src="@/assets/logo/Invitation_e.png">
439 </div> 439 </div>
440 440
441 </div> 441 </div>
...@@ -783,9 +783,12 @@ function goTeamSignCn() { ...@@ -783,9 +783,12 @@ function goTeamSignCn() {
783 async function goPersonalSign() { 783 async function goPersonalSign() {
784 // 选项目 784 // 选项目
785 await router.push({ 785 await router.push({
786 name: 'chooseProject', 786 name: 'chooseCoachPerson',
787 query: { 787 query: {
788 matchId: matchId.value 788 matchId: matchId.value,
789 groupId: groupId.value,
790 isNational: true,
791 languageSource: matchData.value.languageSource
789 } 792 }
790 }) 793 })
791 } 794 }
......
...@@ -207,7 +207,7 @@ function getMatch() { ...@@ -207,7 +207,7 @@ function getMatch() {
207 } 207 }
208 208
209 function getMyMemberTable() { 209 function getMyMemberTable() {
210 match.getPerPersonList({ cptId: matchId.value, searchLabels: '1,2,3,4,5,6' }, user.userId).then(res => { 210 match.getPerPersonList2({ cptId: matchId.value, searchLabels: '1,2,3,4,5,6' }, user.userId).then(res => {
211 myMemberTable.value = res.rows 211 myMemberTable.value = res.rows
212 }) 212 })
213 } 213 }
......
...@@ -64,14 +64,14 @@ export default defineConfig(({ mode, command }) => { ...@@ -64,14 +64,14 @@ export default defineConfig(({ mode, command }) => {
64 proxy: { 64 proxy: {
65 // https://cn.vitejs.dev/config/#server-proxy 65 // https://cn.vitejs.dev/config/#server-proxy
66 '/dev-api/ztx-train': { 66 '/dev-api/ztx-train': {
67 target: 'http://192.168.1.22:8081', 67 target: 'http://192.168.1.128:8081',
68 // target: 'https://wdsfwuxicenter.com/stage-api', 68 // target: 'https://wdsfwuxicenter.com/stage-api',
69 // target: 'https://jijin.wtwuxicenter.com/stage-api', 69 // target: 'https://jijin.wtwuxicenter.com/stage-api',
70 changeOrigin: true, 70 changeOrigin: true,
71 rewrite: (p) => p.replace(/^\/dev-api\/ztx-train/, '') 71 rewrite: (p) => p.replace(/^\/dev-api\/ztx-train/, '')
72 }, 72 },
73 '/dev-api/ztx-match': { 73 '/dev-api/ztx-match': {
74 target: 'http://192.168.1.22:8081', 74 target: 'http://192.168.1.128:8081',
75 // target: 'https://jijin.wtwuxicenter.com/stage-api', 75 // target: 'https://jijin.wtwuxicenter.com/stage-api',
76 // target: 'https://wdsfwuxicenter.com/stage-api', 76 // target: 'https://wdsfwuxicenter.com/stage-api',
77 // target: 'https://wdsfwuxicenter.com/stage-api/', 77 // target: 'https://wdsfwuxicenter.com/stage-api/',
...@@ -79,14 +79,14 @@ export default defineConfig(({ mode, command }) => { ...@@ -79,14 +79,14 @@ export default defineConfig(({ mode, command }) => {
79 rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '') 79 rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '')
80 }, 80 },
81 '/dev-api/ztx-webSite': { 81 '/dev-api/ztx-webSite': {
82 target: 'http://192.168.1.22:8081', 82 target: 'http://192.168.1.128:8081',
83 // target: 'https://wdsfwuxicenter.com/stage-api', 83 // target: 'https://wdsfwuxicenter.com/stage-api',
84 // target: 'https://jijin.wtwuxicenter.com/stage-api', 84 // target: 'https://jijin.wtwuxicenter.com/stage-api',
85 changeOrigin: true, 85 changeOrigin: true,
86 rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') 86 rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '')
87 }, 87 },
88 '/dev-api': { 88 '/dev-api': {
89 target: 'http://192.168.1.22:8081', 89 target: 'http://192.168.1.128:8081',
90 // target: 'http://192.168.1.169:8081', 90 // target: 'http://192.168.1.169:8081',
91 // target: 'https://jijin.wtwuxicenter.com/stage-api', 91 // target: 'https://jijin.wtwuxicenter.com/stage-api',
92 // target: 'https://wdsfwuxicenter.com/stage-api/', 92 // target: 'https://wdsfwuxicenter.com/stage-api/',
...@@ -96,7 +96,7 @@ export default defineConfig(({ mode, command }) => { ...@@ -96,7 +96,7 @@ export default defineConfig(({ mode, command }) => {
96 }, 96 },
97 '/ticket': { 97 '/ticket': {
98 // target: 'https://jijin.wtwuxicenter.com/stage-api', 98 // target: 'https://jijin.wtwuxicenter.com/stage-api',
99 target: 'http://192.168.1.22:8081', 99 target: 'http://192.168.1.128:8081',
100 // target: 'https://wdsfwuxicenter.com/h5/', 100 // target: 'https://wdsfwuxicenter.com/h5/',
101 // target: 'https://ticketh5.wdsfwuxicenter.com/h5/', 101 // target: 'https://ticketh5.wdsfwuxicenter.com/h5/',
102 changeOrigin: true, 102 changeOrigin: true,
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!