aa92ff7d by 杨炀

no message

1 parent b73dad45
...@@ -547,6 +547,13 @@ export function getProjectPageByPerIds(query) { ...@@ -547,6 +547,13 @@ export function getProjectPageByPerIds(query) {
547 params: query 547 params: query
548 }) 548 })
549 } 549 }
550 export function getMatchNewslistByCode(query) {
551 return request({
552 url: `/ztx/notesort/listByCode`,
553 method: 'get',
554 params: query
555 })
556 }
550 557
551 export function createWePay(data) { 558 export function createWePay(data) {
552 return request({ 559 return request({
...@@ -571,3 +578,10 @@ export function callbackPalPay(tradeNo) { ...@@ -571,3 +578,10 @@ export function callbackPalPay(tradeNo) {
571 } 578 }
572 }) 579 })
573 } 580 }
581 export function upReceipt(data) {
582 return request({
583 url: `/league/signOrder/offlinePay`,
584 method: 'post',
585 data:data
586 })
587 }
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
17 :accept="accept" 17 :accept="accept"
18 > 18 >
19 <!-- 上传按钮 --> 19 <!-- 上传按钮 -->
20 <el-button type="primary">选取文件</el-button> 20 <el-button type="primary">{{ text }}</el-button>
21 </el-upload> 21 </el-upload>
22 <!-- 上传提示 --> 22 <!-- 上传提示 -->
23 <div v-if="showTip" class="el-upload__tip"> 23 <div v-if="showTip" class="el-upload__tip">
...@@ -88,6 +88,10 @@ const props = defineProps({ ...@@ -88,6 +88,10 @@ const props = defineProps({
88 type: String, 88 type: String,
89 default: 'file' 89 default: 'file'
90 }, 90 },
91 text: {
92 type: String,
93 default: '选取文件'
94 },
91 action: { 95 action: {
92 type: String, 96 type: String,
93 default: '/upload/uploadFile' 97 default: '/upload/uploadFile'
......
...@@ -18,7 +18,13 @@ ...@@ -18,7 +18,13 @@
18 :accept="accept" 18 :accept="accept"
19 > 19 >
20 <!-- 上传按钮 --> 20 <!-- 上传按钮 -->
21 <el-button type="primary" :disabled="props.disabled">{{ buttonText }}</el-button> 21 <el-button type="primary" v-if="buttonType=0" :disabled="props.disabled">{{ buttonText }}</el-button>
22 <el-link class="mr10" type="primary" v-else>
23 <el-icon>
24 <Upload/>
25 </el-icon>
26 {{ buttonText }}
27 </el-link>
22 </el-upload> 28 </el-upload>
23 <!-- 上传提示 --> 29 <!-- 上传提示 -->
24 <div v-if="showTip && !disabled" class="el-upload__tip"> 30 <div v-if="showTip && !disabled" class="el-upload__tip">
...@@ -75,7 +81,7 @@ const props = defineProps({ ...@@ -75,7 +81,7 @@ const props = defineProps({
75 // 文件类型, 例如['png', 'jpg', 'jpeg'] 81 // 文件类型, 例如['png', 'jpg', 'jpeg']
76 fileType: { 82 fileType: {
77 type: Array, 83 type: Array,
78 default: () => ['doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'txt', 'pdf', 'zip', 'rar'] 84 default: () => ['doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'txt', 'pdf', 'zip', 'rar','png', 'jpg', 'jpeg']
79 }, 85 },
80 // 是否显示提示 86 // 是否显示提示
81 isShowTip: { 87 isShowTip: {
...@@ -93,6 +99,10 @@ const props = defineProps({ ...@@ -93,6 +99,10 @@ const props = defineProps({
93 buttonText:{ 99 buttonText:{
94 type: String, 100 type: String,
95 default: '上传文件' 101 default: '上传文件'
102 },
103 buttonType:{
104 type: Number,
105 default: 0
96 } 106 }
97 }) 107 })
98 const accept = computed(() => { 108 const accept = computed(() => {
......
...@@ -227,4 +227,5 @@ li img { ...@@ -227,4 +227,5 @@ li img {
227 height: calc(100vh - 80px);overflow: auto;top: 80px; 227 height: calc(100vh - 80px);overflow: auto;top: 80px;
228 } 228 }
229 } 229 }
230 .app-container{min-height: 80vh;}
230 </style> 231 </style>
......
...@@ -22,12 +22,12 @@ ...@@ -22,12 +22,12 @@
22 <p class="ppl"><label v-if="n.groupName">{{ language==0?'参赛队':'Name of participating team' }}</label>{{n.groupName}}</p> 22 <p class="ppl"><label v-if="n.groupName">{{ language==0?'参赛队':'Name of participating team' }}</label>{{n.groupName}}</p>
23 </el-col> 23 </el-col>
24 <el-col :lg="8"> 24 <el-col :lg="8">
25 <p class="ppl"><label>{{ language==0?'比赛时间':'Event Date' }}</label>{{ n.signBeginTime }}~{{n.signEndTime}} 25 <p class="ppl"><label>{{ language==0?'比赛时间':'Event Date' }}</label>{{ n.signBeginTime?.substring(0,10) }}~{{n.signEndTime.substring(0,10)}}
26 </p> 26 </p>
27 <p class="ppl"><label>{{ language==0?'参赛运动员':'Participating athletes' }}</label>{{ n.signSize }}</p> 27 <p class="ppl"><label>{{ language==0?'参赛运动员':'Participating athletes' }}</label>{{ n.signSize }}</p>
28 </el-col> 28 </el-col>
29 <el-col :lg="8"> 29 <el-col :lg="8">
30 <p class="ppl"><label>{{ language==0?'报名时间':'Registration Period' }}</label>{{ n.signBeginTime }}~{{n.signEndTime}}</p> 30 <p class="ppl"><label>{{ language==0?'报名时间':'Registration Period' }}</label>{{ n.signBeginTime.substring(0,10) }}~{{n.signEndTime.substring(0,10)}}</p>
31 <div class="btnbox"> 31 <div class="btnbox">
32 <el-button plain round type="primary" @click="goDetail(n)" v-if="n.auditStatus!='0'"> 32 <el-button plain round type="primary" @click="goDetail(n)" v-if="n.auditStatus!='0'">
33 {{ language==0?'详情':'Detail' }}</el-button> 33 {{ language==0?'详情':'Detail' }}</el-button>
......
...@@ -390,13 +390,6 @@ const rankList = ref([ ...@@ -390,13 +390,6 @@ const rankList = ref([
390 { index: '6', code: 'tn', score: '170' ,gj:'中国'}, 390 { index: '6', code: 'tn', score: '170' ,gj:'中国'},
391 { index: '7', code: 'gw', score: '170' ,gj:'中国'} 391 { index: '7', code: 'gw', score: '170' ,gj:'中国'}
392 ]) 392 ])
393 const rankTabs = ref([
394 { name: '拉丁舞' },
395 { name: '标准舞' },
396 { name: '摇滚舞' },
397 { name: '莎莎舞' },
398 { name: '街舞' }
399 ])
400 const personList = ref([ 393 const personList = ref([
401 { name: '张晋', pp:'欧洲舞团团长、艺术总监',src:r01 }, 394 { name: '张晋', pp:'欧洲舞团团长、艺术总监',src:r01 },
402 { name: '王晓敏', pp:'欧洲舞团团长、艺术总监',src:r02 }, 395 { name: '王晓敏', pp:'欧洲舞团团长、艺术总监',src:r02 },
......
...@@ -124,15 +124,13 @@ ...@@ -124,15 +124,13 @@
124 </el-col> 124 </el-col>
125 <el-col :sm="24" :lg="12"> 125 <el-col :sm="24" :lg="12">
126 <div class="indexTitle"> 126 <div class="indexTitle">
127 <h3 class="leftboderTT">RESULT</h3> 127 <h3 class="leftboderTT">MEDAL TALLY</h3>
128 <a class="more" @click="gosaiC">MORE</a> 128 <a class="more" href="#/saiC">MORE</a>
129 </div> 129 </div>
130 <!--历史排名--> 130 <!--历史排名-->
131 <el-card :body-style="{'padding':'10px 20px 18px'}"> 131 <el-card :body-style="{'padding':'10px 20px 18px'}">
132 <el-tabs v-model="activeRankName" @tab-click="rankTabClick">
133 <el-tab-pane v-for="(p,index) in rankTabs" :label="p.name" :name="index">
134 <el-table stripe :data="rankList"> 132 <el-table stripe :data="rankList">
135 <el-table-column label="Ranking" align="center" width="100" type="index"> 133 <el-table-column label="Ranking" align="center" width="80" type="index">
136 <template #default="scope"> 134 <template #default="scope">
137 <span v-if="scope.row.index == 1" style="color:#F8A617">{{ scope.row.index }}</span> 135 <span v-if="scope.row.index == 1" style="color:#F8A617">{{ scope.row.index }}</span>
138 <span v-else-if="scope.row.index == 2" style="color:#778B92">{{ scope.row.index }}</span> 136 <span v-else-if="scope.row.index == 2" style="color:#778B92">{{ scope.row.index }}</span>
...@@ -140,16 +138,44 @@ ...@@ -140,16 +138,44 @@
140 <span v-else>{{ scope.row.index }}</span> 138 <span v-else>{{ scope.row.index }}</span>
141 </template> 139 </template>
142 </el-table-column> 140 </el-table-column>
143 <el-table-column label="Name" prop="name" /> 141 <el-table-column label="Country/Region" prop="name" min-width="100" align="center">
144 <el-table-column label="Country" prop="gj" /> 142 <template #default="scope">
145 <el-table-column label="Score" align="center"> 143 <div>
144 <span :class="`flag-icon flag-icon-${scope.row.code}`"></span>
145 {{ scope.row.gj }}</div>
146 </template>
147 </el-table-column>
148 <el-table-column prop="score">
149 <template #header>
150 <img src="@/assets/dance/1.png">
151 </template>
152 <template #default="scope">
153 <div class="text-warning">{{ scope.row.score }}</div>
154 </template>
155 </el-table-column>
156 <el-table-column prop="score">
157 <template #header>
158 <img src="@/assets/dance/2.png">
159 </template>
160 <template #default="scope">
161 <div class="text-blue">{{ scope.row.score }}</div>
162 </template>
163 </el-table-column>
164 <el-table-column prop="score">
165 <template #header>
166 <img src="@/assets/dance/3.png">
167 </template>
168 <template #default="scope">
169 <div class="text-primary">{{ scope.row.score }}</div>
170 </template>
171 </el-table-column>
172 <el-table-column label="Total" align="center">
146 <template #default="scope"> 173 <template #default="scope">
147 <div class="text-primary">{{ scope.row.score }}</div> 174 <div class="text-primary">{{ scope.row.score }}</div>
148 </template> 175 </template>
149 </el-table-column> 176 </el-table-column>
150 </el-table> 177 </el-table>
151 </el-tab-pane> 178
152 </el-tabs>
153 </el-card> 179 </el-card>
154 </el-col> 180 </el-col>
155 </el-row> 181 </el-row>
...@@ -366,22 +392,15 @@ const navigationPic = ref({ ...@@ -366,22 +392,15 @@ const navigationPic = ref({
366 }) 392 })
367 const router = useRouter() 393 const router = useRouter()
368 const { proxy } = getCurrentInstance() 394 const { proxy } = getCurrentInstance()
369 const activeRankName = ref(0)
370 const time = ref(0) 395 const time = ref(0)
371 const rankList = ref([ 396 const rankList = ref([
372 { index: '1', name: 'Chen Shasha', score: '170',gj:'CHINA' }, 397 { index: '1', code: 'cn', score: '170',gj:'China' },
373 { index: '2', name: 'Chen Shasha', score: '170' ,gj:'CHINA'}, 398 { index: '2', code: 'us', score: '170' ,gj:'China'},
374 { index: '3', name: 'Chen Shasha', score: '170',gj:'CHINA' }, 399 { index: '3', code: 'de', score: '170',gj:'China' },
375 { index: '4', name: 'Chen Shasha', score: '170',gj:'CHINA' }, 400 { index: '4', code: 'eg', score: '170',gj:'China' },
376 { index: '5', name: 'Chen Shasha', score: '170' ,gj:'CHINA'}, 401 { index: '5', code: 'ly', score: '170' ,gj:'China'},
377 { index: '6', name: 'Chen Shasha', score: '170' ,gj:'CHINA'} 402 { index: '6', code: 'tn', score: '170' ,gj:'China'},
378 ]) 403 { index: '7', code: 'gw', score: '170' ,gj:'China'}
379 const rankTabs = ref([
380 { name: 'Latin' },
381 { name: 'Standard' },
382 { name: 'Rock and roll' },
383 { name: 'Sharsa' },
384 { name: 'Breaking' }
385 ]) 404 ])
386 const personList = ref([ 405 const personList = ref([
387 { name: 'Zhang Jin', pp: 'artistic director', src: r01 }, 406 { name: 'Zhang Jin', pp: 'artistic director', src: r01 },
...@@ -606,9 +625,9 @@ const goList = (query, name) => { ...@@ -606,9 +625,9 @@ const goList = (query, name) => {
606 } 625 }
607 } 626 }
608 627
609 .calendarList{border: 1px solid #F0F0F0;padding:12px 20px;overflow: auto;height: 220px; 628 .calendarList{border: 1px solid #F0F0F0;padding:12px 20px;overflow: auto;height: 233px;
610 ul{ 629 ul{
611 li{background: #F6F9FE;margin:7px 0 7px 20px;position: relative;padding: 13px; 630 li{background: #F6F9FE;margin:7px 0 7px 0;position: relative;padding: 13px;
612 border-radius: 10px; 631 border-radius: 10px;
613 font-weight: 500; 632 font-weight: 500;
614 font-size: 15px; 633 font-size: 15px;
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
33 </div> 33 </div>
34 34
35 <div class="text-center mt30 mb20"> 35 <div class="text-center mt30 mb20">
36 <el-button class="primary-kx w200px" round @click="goHome">{{ language == 0 ? '返回首页' : 'Homepage' }}</el-button> 36 <el-button class="primary-kx w200px" round @click="goHome">{{ language == 0 ? '返回首页' : 'Return to Homepage' }}</el-button>
37 <el-button type="primary" class="btn-lineG w200px" round @click="goSign"> 37 <el-button type="primary" class="btn-lineG w200px" round @click="goSign">
38 {{ language == 0 ? '返回赛事报名模块' : 'Return to Event Registration Module' }}</el-button> 38 {{ language == 0 ? '返回赛事报名模块' : 'Return to Event Registration Module' }}</el-button>
39 </div> 39 </div>
......
...@@ -39,6 +39,9 @@ ...@@ -39,6 +39,9 @@
39 <el-form-item :label="language==0?'手机号码':'Phone'" prop="phone" required> 39 <el-form-item :label="language==0?'手机号码':'Phone'" prop="phone" required>
40 <el-input v-model="form.phone" type="number"/> 40 <el-input v-model="form.phone" type="number"/>
41 </el-form-item> 41 </el-form-item>
42 <el-form-item :label="language==0?'WDSF会员号':'WDSF code'" prop="wdsfMin">
43 <el-input v-model="form.wdsfMin" type="number"/>
44 </el-form-item>
42 </el-col> 45 </el-col>
43 <el-col :lg="12"> 46 <el-col :lg="12">
44 <el-form-item :label="language==0?'所属国家':'Nationality'" prop="countryId" required> 47 <el-form-item :label="language==0?'所属国家':'Nationality'" prop="countryId" required>
......
1 <template> 1 <template>
2 <el-dialog v-model="show" :title="title" width="500px" close-icon="CircleClose" 2 <el-dialog v-model="show" :title="title" width="500px" close-icon="CircleClose"
3 append-to-body :close-on-click-modal="false" class="pcloginpop" center> 3 append-to-body :close-on-click-modal="false" class="pcloginpop" center>
4 <el-form ref="dialogRef" label-width="100px"> 4 <el-form ref="dialogRef" :label-width="language==0?'100px':'160px'">
5 <el-form-item :label="language==0?'下载模板':'Download template'"> 5 <el-form-item :label="language==0?'下载模板':'Download template'">
6 <el-link href="/file/UserImport-ch.xlsx" v-if="language==0" type="primary" target="_blank">人员模板</el-link> 6 <el-link href="/file/UserImport-ch.xlsx" v-if="language==0" type="primary" target="_blank">人员模板</el-link>
7 <el-link href="/file/UserImport-en.xlsx" v-else type="primary" target="_blank">Personnel template</el-link> 7 <el-link href="/file/UserImport-en.xlsx" v-else type="primary" target="_blank">Personnel template</el-link>
8 </el-form-item> 8 </el-form-item>
9 9
10 <el-form-item :label="language==0?'上传模板':'Upload template'" prop="discount"> 10 <el-form-item :label="language==0?'上传模板':'Upload template'" prop="discount">
11 <fileImport ref="upload" name="excel" :action="action" @uploadSuccess="uploadSuccess" /> 11 <fileImport :text="language==0?'选取文件':'Select File'" ref="upload" name="excel" :action="action" @uploadSuccess="uploadSuccess" />
12 </el-form-item> 12 </el-form-item>
13 </el-form> 13 </el-form>
14 14
...@@ -45,23 +45,23 @@ function uploadSuccess(res) { ...@@ -45,23 +45,23 @@ function uploadSuccess(res) {
45 confirmButtonText: '好的' 45 confirmButtonText: '好的'
46 }) 46 })
47 } else { 47 } else {
48 if(res.data.repeatInSystemColumn){ 48 if(res.data.repeatInSystemColumn.length>0){
49 proxy.$modal.msgError(`${res.data.repeatInSystemColumn}系统中已存在`) 49 proxy.$modal.msgError(`${res.data.repeatInSystemColumn}${language.value==0?'系统中已存在':'is in system'}`)
50 } 50 }
51 if(res.data.errCountryColumn){ 51 if(res.data.errCountryColumn.length>0){
52 proxy.$modal.msgError(`${res.data.errCountryColumn}所属国家有误`) 52 proxy.$modal.msgError(`${res.data.errCountryColumn}${language.value==0?'所属国家有误':'error Country'}`)
53 } 53 }
54 if(res.data.errIdcTypeColumn){ 54 if(res.data.errIdcTypeColumn.length>0){
55 proxy.$modal.msgError(`${res.data.errIdcTypeColumn}证件号错误`) 55 proxy.$modal.msgError(`${res.data.errIdcTypeColumn}${language.value==0?'证件号错误':'error ID type'}`)
56 } 56 }
57 if(res.data.errSexColumn){ 57 if(res.data.errSexColumn.length>0){
58 proxy.$modal.msgError(`${res.data.errSexColumn}性别错误`) 58 proxy.$modal.msgError(`${res.data.errSexColumn}${language.value == 0? '性别错误' : 'error sex'}`)
59 } 59 }
60 if(res.data.incompleteColumn){ 60 if(res.data.incompleteColumn.length>0){
61 proxy.$modal.msgError(`${res.data.incompleteColumn}必填项未完成`) 61 proxy.$modal.msgError(`${res.data.incompleteColumn}${language.value == 0? '必填项未完成' : 'incomplete'}`)
62 } 62 }
63 if(res.data.repeatInFileColumn){ 63 if(res.data.repeatInFileColumn.length>0){
64 proxy.$modal.msgError(`${res.data.repeatInFileColumn}文件内重复`) 64 proxy.$modal.msgError(`${res.data.repeatInFileColumn}${language.value == 0? '文件内重复' : 'Repeat In File'}`)
65 } 65 }
66 66
67 } 67 }
......
...@@ -7,11 +7,26 @@ ...@@ -7,11 +7,26 @@
7 <div class="xzbox" v-html="form.ocOrganizer"> 7 <div class="xzbox" v-html="form.ocOrganizer">
8 </div> 8 </div>
9 <div class="indexTitle"><h3 class="leftboderTT">报名须知</h3></div> 9 <div class="indexTitle"><h3 class="leftboderTT">报名须知</h3></div>
10 <div class="xzbox" v-html="form.signKnow"> 10 <div class="xzbox">
11 11 <div v-html="form.signKnow"></div>
12 <el-link v-if="form.signKnowUrl" type="primary" :href="fillImgUrl(JSON.parse(form.signKnowUrl)[0]?.url)" target="_blank">
13 <el-icon :size="20">
14 <Download />
15 </el-icon>
16 {{ JSON.parse(form.signKnowUrl)[0]?.name }}
17 </el-link>
12 </div> 18 </div>
13 <div class="indexTitle" v-if="form.type==0"><h3 class="leftboderTT">赛事规程</h3></div> 19 <div class="indexTitle"><h3 class="leftboderTT">免责声明</h3></div>
14 <div class="xzbox" v-if="form.type==0"> 20 <div class="xzbox">
21 <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank">
22 <el-icon :size="20">
23 <Download />
24 </el-icon>
25 {{ JSON.parse(form.disclaimerUrl)[0]?.name }}
26 </el-link>
27 </div>
28 <div class="indexTitle"><h3 class="leftboderTT">赛事规程</h3></div>
29 <div class="xzbox">
15 30
16 <el-link v-if="form.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank"> 31 <el-link v-if="form.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank">
17 <el-icon :size="20"> 32 <el-icon :size="20">
...@@ -20,8 +35,8 @@ ...@@ -20,8 +35,8 @@
20 {{ JSON.parse(form.ruleUrl)[0]?.name }} 35 {{ JSON.parse(form.ruleUrl)[0]?.name }}
21 </el-link> 36 </el-link>
22 </div> 37 </div>
23 <div class="indexTitle" v-if="form.type==1"><h3 class="leftboderTT">竞赛项目</h3></div> 38 <div class="indexTitle" v-if="form.type==1&&form.cptProjectList?.length > 0"><h3 class="leftboderTT">竞赛项目</h3></div>
24 <div class="collapsebox" v-if="form.type==1"> 39 <div class="collapsebox" v-if="form.type==1&&form.cptProjectList?.length > 0">
25 <div class="pd20"> 40 <div class="pd20">
26 <table class="table" cellspacing="0" cellpadding="0" v-if="form.cptProjectList?.length > 0"> 41 <table class="table" cellspacing="0" cellpadding="0" v-if="form.cptProjectList?.length > 0">
27 <tr> 42 <tr>
...@@ -33,7 +48,7 @@ ...@@ -33,7 +48,7 @@
33 <th>参赛年龄</th> 48 <th>参赛年龄</th>
34 <th>服务费(元)</th> 49 <th>服务费(元)</th>
35 </tr> 50 </tr>
36 <tr v-for="(p,index) in matchData.cptProjectList" :key="index"> 51 <tr v-for="(p,index) in form.cptProjectList" :key="index">
37 <td>{{ p.code }}</td> 52 <td>{{ p.code }}</td>
38 <td>{{ p.name }}</td> 53 <td>{{ p.name }}</td>
39 <td>{{ p.danceType }}</td> 54 <td>{{ p.danceType }}</td>
...@@ -55,11 +70,27 @@ ...@@ -55,11 +70,27 @@
55 <div class="xzbox" v-html="form.ocOrganizer"> 70 <div class="xzbox" v-html="form.ocOrganizer">
56 </div> 71 </div>
57 <div class="indexTitle"><h3 class="leftboderTT">Notes</h3></div> 72 <div class="indexTitle"><h3 class="leftboderTT">Notes</h3></div>
58 <div class="xzbox" v-html="form.signKnow"> 73 <div class="xzbox">
59 74 <div v-html="form.signKnow"></div>
75 <el-link v-if="form.signKnowUrl" type="primary" :href="fillImgUrl(JSON.parse(form.signKnowUrl)[0]?.url)" target="_blank">
76 <el-icon :size="20">
77 <Download />
78 </el-icon>
79 {{ JSON.parse(form.signKnowUrl)[0]?.name }}
80 </el-link>
81 </div>
82 <div class="indexTitle"><h3 class="leftboderTT">Disclaimers</h3></div>
83 <div class="xzbox">
84 <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank">
85 <el-icon :size="20">
86 <Download />
87 </el-icon>
88 {{ JSON.parse(form.disclaimerUrl)[0]?.name }}
89 </el-link>
60 </div> 90 </div>
61 <div class="indexTitle" v-if="form.type==0"><h3 class="leftboderTT">Competition Regulations</h3></div> 91
62 <div class="xzbox" v-if="form.type==0"> 92 <div class="indexTitle"><h3 class="leftboderTT">Competition Regulations</h3></div>
93 <div class="xzbox">
63 <div v-html="form.ruleContent"> 94 <div v-html="form.ruleContent">
64 95
65 </div> 96 </div>
...@@ -70,8 +101,8 @@ ...@@ -70,8 +101,8 @@
70 {{ JSON.parse(form.ruleUrl)[0]?.name }} 101 {{ JSON.parse(form.ruleUrl)[0]?.name }}
71 </el-link> 102 </el-link>
72 </div> 103 </div>
73 <div class="indexTitle" v-if="form.type==1"><h3 class="leftboderTT">Event settings</h3></div> 104 <div class="indexTitle" v-if="form.type==1 && form.cptProjectList?.length > 0"><h3 class="leftboderTT">Event settings</h3></div>
74 <div class="collapsebox" v-if="form.type==1"> 105 <div class="collapsebox" v-if="form.type==1 && form.cptProjectList?.length > 0">
75 106
76 <div class="pd20"> 107 <div class="pd20">
77 <table class="table" cellspacing="0" cellpadding="0" v-if="form.cptProjectList?.length > 0"> 108 <table class="table" cellspacing="0" cellpadding="0" v-if="form.cptProjectList?.length > 0">
...@@ -84,7 +115,7 @@ ...@@ -84,7 +115,7 @@
84 <th>Age</th> 115 <th>Age</th>
85 <th>Registration Fee</th> 116 <th>Registration Fee</th>
86 </tr> 117 </tr>
87 <tr v-for="(p,index) in matchData.cptProjectList" :key="index"> 118 <tr v-for="(p,index) in form.cptProjectList" :key="index">
88 <td>{{ p.code }}</td> 119 <td>{{ p.code }}</td>
89 <td>{{ p.name }}</td> 120 <td>{{ p.name }}</td>
90 <td>{{ p.danceType }}</td> 121 <td>{{ p.danceType }}</td>
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
12 <!-- <a class="more" @click="goList(query2.sortId,'专题报道')">MORE</a>--> 12 <!-- <a class="more" @click="goList(query2.sortId,'专题报道')">MORE</a>-->
13 </div> 13 </div>
14 <div> 14 <div>
15 <div class="item" v-for="n in newsList" :key="n.id"> 15 <div class="item" v-for="n in newsList" :key="n.id" @click="goDetail(n)">
16 <p class="esp">{{ n.name }}</p> 16 <p class="esp">{{ n.name }}</p>
17 </div> 17 </div>
18 </div> 18 </div>
...@@ -20,25 +20,28 @@ ...@@ -20,25 +20,28 @@
20 <div class="indexTitle"><h3 class="leftboderTT">{{ language==0?'赛事视频':'Event Videos' }}</h3> 20 <div class="indexTitle"><h3 class="leftboderTT">{{ language==0?'赛事视频':'Event Videos' }}</h3>
21 <!-- <a class="more" @click="goList(10000006,'赛事视频')">MORE</a>--> 21 <!-- <a class="more" @click="goList(10000006,'赛事视频')">MORE</a>-->
22 </div> 22 </div>
23 <div class="item" v-for="n in newsList2" :key="n.id"> 23 <div class="item" v-for="n in newsList2" :key="n.id" @click="goDetail(n)">
24 <div class="videoImgbox" @click="goDetail(n)"> 24 <div class="videoImgbox" @click="goDetail(n)">
25 <img :src="fillImgUrl_webSite(n.picUrl)"> 25 <img :src="fillImgUrl(n.picUrl)">
26 </div> 26 </div>
27 </div> 27 </div>
28 <div class="indexTitle"><h3 class="leftboderTT">{{ language==0?'赛事图片':'Event Photos' }}</h3> 28 <div class="indexTitle"><h3 class="leftboderTT">{{ language==0?'赛事图片':'Event Photos' }}</h3>
29 <!-- <a class="more" @click="goList(10000007,'赛事图片')">MORE</a>--> 29 <!-- <a class="more" @click="goList(10000007,'赛事图片')">MORE</a>-->
30 </div> 30 </div>
31 <div v-for="n in newsList3" :key="n.id"> 31 <div v-for="n in newsList3" :key="n.id" @click="goDetail(n)">
32 <div class="picbox" @click="goDetail(n)"><img :src="fillImgUrl_webSite(n.picUrl)"/></div> 32 <div class="picbox"><img :src="fillImgUrl(n.picUrl)"/></div>
33 </div> 33 </div>
34 </el-card> 34 </el-card>
35 </template> 35 </template>
36 36
37 <script setup> 37 <script setup>
38 import {getNewsListById} from "@/apiPc/webSite";
39 import {onMounted, ref} from "vue"; 38 import {onMounted, ref} from "vue";
40 import cache from '@/plugins/cache' 39 import cache from '@/plugins/cache'
40 import {getMatchNewslistByCode} from "@/apiPc/match";
41 import {useRouter} from "vue-router";
42 import {getNewsListById} from "@/apiPc/webSite";
41 const language = ref(cache.local.get('language') || 0) 43 const language = ref(cache.local.get('language') || 0)
44 const router = useRouter()
42 const props = defineProps({ 45 const props = defineProps({
43 matchId: { 46 matchId: {
44 type: String, 47 type: String,
...@@ -91,6 +94,15 @@ const goList = (sortId,name) => { ...@@ -91,6 +94,15 @@ const goList = (sortId,name) => {
91 } 94 }
92 }) 95 })
93 } 96 }
97 const goDetail = (n) => {
98 if (n.isOut == '1') {
99 window.open(n.jumpUrl)
100 } else {
101 window.open(router.resolve({
102 path: `/news/detail/${n.noteId}`
103 }).href)
104 }
105 }
94 </script> 106 </script>
95 107
96 <style scoped lang="scss"> 108 <style scoped lang="scss">
......
...@@ -2,18 +2,18 @@ ...@@ -2,18 +2,18 @@
2 <div style="padding: 30px 20px 20px"> 2 <div style="padding: 30px 20px 20px">
3 <!--日程--> 3 <!--日程-->
4 <el-timeline> 4 <el-timeline>
5 <el-timeline-item 5 <el-timeline-item color="#453DEA" size="large" hollow="true"
6 v-for="s in matchData.cptScheduleList" 6 v-for="s in matchData.cptScheduleList"
7 :key="s.id" hide-timestamp 7 :key="s.id" hide-timestamp
8 placement="top" 8 placement="top"
9 > 9 >
10 <p style="font-size: 16px;margin: 0"> 10 <p style="font-size: 16px;margin: 0;color: var(--el-color-primary);">
11 {{ s.timeRange?.split(',')[0].substring(0, 16) }} 11 {{ s.timeRange?.split(',')[0].substring(0, 16) }}
12 ~ 12 ~
13 {{ s.timeRange?.split(',')[1].substring(0, 16) }} 13 {{ s.timeRange?.split(',')[1].substring(0, 16) }}
14 </p> 14 </p>
15 15
16 <p style="font-size: 16px;">{{ s.name }}</p> 16 <p style="font-size: 18px;color: #000;">{{ s.name }}</p>
17 <p v-if="s.introduction" v-html="s.introduction"></p> 17 <p v-if="s.introduction" v-html="s.introduction"></p>
18 <div class="time-address"> 18 <div class="time-address">
19 <el-icon> 19 <el-icon>
...@@ -39,6 +39,7 @@ const props = defineProps({ ...@@ -39,6 +39,7 @@ const props = defineProps({
39 </script> 39 </script>
40 40
41 <style scoped lang="scss"> 41 <style scoped lang="scss">
42 .time-address{color: #666;}
42 .indexTitle{margin: 20px 0 12px; 43 .indexTitle{margin: 20px 0 12px;
43 h3{ 44 h3{
44 font-size: 20px; 45 font-size: 20px;
......
...@@ -11,8 +11,9 @@ ...@@ -11,8 +11,9 @@
11 <el-table-column :label="language==0?'出生日期':'Birth'" prop="birth" width="110"/> 11 <el-table-column :label="language==0?'出生日期':'Birth'" prop="birth" width="110"/>
12 <el-table-column :label="language==0?'手机号码':'Phone Number'" prop="phone" width="120"/> 12 <el-table-column :label="language==0?'手机号码':'Phone Number'" prop="phone" width="120"/>
13 <el-table-column :label="language==0?'邮箱':'E-mail'" prop="email" width="150"/> 13 <el-table-column :label="language==0?'邮箱':'E-mail'" prop="email" width="150"/>
14 <el-table-column :label="language==0?'证件类型':'ID Type'" prop="idcTypeStr"/> 14 <el-table-column :label="language==0?'证件类型':'ID Type'" prop="idcTypeStr" :min-width="language==0?'60':'160'"/>
15 <el-table-column :label="language==0?'证件号码':'ID NO.'" prop="idcCode" width="200"/> 15 <el-table-column :label="language==0?'证件号码':'ID NO.'" prop="idcCode" width="200"/>
16 <el-table-column :label="language==0?'WDSF会员号':'WDSF code'" prop="wdsfMin" width="200"/>
16 <el-table-column :label="language==0?'会员角色':'Role'" width="150"> 17 <el-table-column :label="language==0?'会员角色':'Role'" width="150">
17 <template #default="scope"> 18 <template #default="scope">
18 <div class="esp"> 19 <div class="esp">
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
38 38
39 <div class="text-center mt30"> 39 <div class="text-center mt30">
40 <a class="btn-lineG mb20 mauto" style="display: block;"> 40 <a class="btn-lineG mb20 mauto" style="display: block;">
41 {{ language==0?'我要报名':'Application' }}</a> 41 {{ language==0?'我要报名':'Register' }}</a>
42 </div> 42 </div>
43 </el-col> 43 </el-col>
44 </el-row> 44 </el-row>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
4 <div class="box mb20 "> 4 <div class="box mb20 ">
5 <el-card class="mb20"> 5 <el-card class="mb20">
6 <el-row :gutter="20"> 6 <el-row :gutter="20">
7 <el-col :lg="7" :md="24" :xl="6" > 7 <el-col :lg="7" :md="12" :xl="6" >
8 <img class="mauto w100" :src="fillImgUrl(matchData.coverUrl)" > 8 <img class="mauto w100" :src="fillImgUrl(matchData.coverUrl)" >
9 </el-col> 9 </el-col>
10 <el-col :lg="9" :md="12" :xl="10"> 10 <el-col :lg="9" :md="12" :xl="10">
...@@ -31,45 +31,46 @@ ...@@ -31,45 +31,46 @@
31 </template> 31 </template>
32 </van-count-down> 32 </van-count-down>
33 33
34 <div> 34 <div class="flexCenter">
35 <a class="btn-lineG mb20" @click="choseSignType" style="display: block;text-align: center;">Register</a> 35 <el-button type="primary" round size="large" class="btn-lineG mb20 mt30 w100"
36 @click="choseSignType" style="font-size: 16px">Register</el-button>
36 </div> 37 </div>
37 </el-col> 38 </el-col>
38 </el-row> 39 </el-row>
39 </el-card> 40 </el-card>
40 41
41 <el-row gutter="14"> 42 <el-row gutter="14">
42 <el-col :lg="4"> 43 <el-col :lg="4" :md="8" :xs="12">
43 <div class="funcBtn" @click="building"> 44 <div class="funcBtn" @click="building">
44 <img src="@/assets/dance/btn04.png"/> 45 <img src="@/assets/dance/btn04.png"/>
45 <h4>Ticket Booking</h4> 46 <h4>Ticket Booking</h4>
46 </div> 47 </div>
47 </el-col> 48 </el-col>
48 <el-col :lg="4"> 49 <el-col :lg="4" :md="8" :xs="12">
49 <div class="funcBtn" @click="building"> 50 <div class="funcBtn" @click="building">
50 <img src="@/assets/dance/btn01.png"/> 51 <img src="@/assets/dance/btn01.png"/>
51 <h4>Hotel Reservation</h4> 52 <h4>Hotel Reservation</h4>
52 </div> 53 </div>
53 </el-col> 54 </el-col>
54 <el-col :lg="4"> 55 <el-col :lg="4" :md="8" :xs="12">
55 <div class="funcBtn" @click="building"> 56 <div class="funcBtn" @click="building">
56 <img src="@/assets/dance/btn02.png"/> 57 <img src="@/assets/dance/btn02.png"/>
57 <h4>Vehicle Reservation</h4> 58 <h4>Vehicle Reservation</h4>
58 </div> 59 </div>
59 </el-col> 60 </el-col>
60 <el-col :lg="4"> 61 <el-col :lg="4" :md="8" :xs="12">
61 <div class="funcBtn" @click="building"> 62 <div class="funcBtn" @click="building">
62 <img src="@/assets/dance/btn03.png"/> 63 <img src="@/assets/dance/btn03.png"/>
63 <h4>Dining Reservation</h4> 64 <h4>Dining Reservation</h4>
64 </div> 65 </div>
65 </el-col> 66 </el-col>
66 <el-col :lg="4"> 67 <el-col :lg="4" :md="8" :xs="12">
67 <div class="funcBtn" @click="building"> 68 <div class="funcBtn" @click="building">
68 <img src="@/assets/dance/btn05.png"/> 69 <img src="@/assets/dance/btn05.png"/>
69 <h4>Makeup appointment</h4> 70 <h4>Makeup Appointment</h4>
70 </div> 71 </div>
71 </el-col> 72 </el-col>
72 <el-col :lg="4"> 73 <el-col :lg="4" :md="8" :xs="12">
73 <div class="funcBtn" @click="building"> 74 <div class="funcBtn" @click="building">
74 <img src="@/assets/dance/btn06.png"/> 75 <img src="@/assets/dance/btn06.png"/>
75 <h4>Photography Appointment</h4> 76 <h4>Photography Appointment</h4>
...@@ -119,7 +120,7 @@ ...@@ -119,7 +120,7 @@
119 <el-row :gutter="20" v-if="matchData.signType == '0'"> 120 <el-row :gutter="20" v-if="matchData.signType == '0'">
120 <el-col v-for="t in signDoneGroupList" :key="t.id" :span="8"> 121 <el-col v-for="t in signDoneGroupList" :key="t.id" :span="8">
121 <div class="teamItem"> 122 <div class="teamItem">
122 <el-avatar :size="60" :src="t.imgUrl||t.avatar" /> 123 <el-avatar :size="60" :src="fillImgUrl(t.imgUrl||t.avatar)" />
123 <span class="name">{{ t.name }}</span> 124 <span class="name">{{ t.name }}</span>
124 </div> 125 </div>
125 </el-col> 126 </el-col>
...@@ -128,7 +129,7 @@ ...@@ -128,7 +129,7 @@
128 <el-col :span="24" v-for="(t,index) in signDoneGroupList" :key="t.id"> 129 <el-col :span="24" v-for="(t,index) in signDoneGroupList" :key="t.id">
129 <div class="nowteamItem"> 130 <div class="nowteamItem">
130 <span>{{index+1}}.</span> 131 <span>{{index+1}}.</span>
131 <el-avatar :size="80" :src="t.imgUrl||t.avatar" :fit="cover"/> 132 <el-avatar :size="80" :src="fillImgUrl(t.imgUrl||t.avatar)" :fit="cover"/>
132 <div class="info"> 133 <div class="info">
133 <h3 class="name">{{ t.name }}</h3> 134 <h3 class="name">{{ t.name }}</h3>
134 <p v-if="t.extraInfo"> 135 <p v-if="t.extraInfo">
......
1 <template>
2 <div class="app-container">
3 <div class="mt30" />
4 <div class="box mb20 ">
5 <el-card class="mb20">
6 <el-row :gutter="20">
7 <el-col :lg="7" :md="24" :xl="6" >
8 <img class="mauto" src="@/assets/dance/fm.jpg">
9 </el-col>
10 <el-col :lg="9" :md="12" :xl="10">
11 <h3>
12 2024年WDSF亚洲体育舞蹈节亚洲体育 舞蹈节
13 </h3>
14 <p class="ppl"><label class="bm1">比赛时间:</label>2024.07.21-2024.07.23</p>
15 <p class="ppl"><label class="bm2">赛事级别:</label>联赛</p>
16 <p class="ppl"><label class="bm3">&ensp;&ensp;&ensp;&ensp;点:</label>江苏省无锡市滨湖区体育中心A区201</p>
17 <p class="ppl"><label class="bm4">报名截止:</label>2024-06-30 13:00</p>
18 </el-col>
19 <el-col :lg="8" :md="12" :xl="8">
20 <p class="countDownTitle"><span>报名截止倒计时</span></p>
21 <van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒">
22 <template #default="timeData">
23 <span class="block">{{ timeData.days }}</span>
24 <span class="colon"></span>
25 <span class="block">{{ timeData.hours }}</span>
26 <span class="colon"></span>
27 <span class="block">{{ timeData.minutes }}</span>
28 <span class="colon"></span>
29 <span class="block">{{ timeData.seconds }}</span>
30 <span class="colon"></span>
31 </template>
32 </van-count-down>
33
34 <div class="funcBtns">
35 <div>
36 <img src="@/assets/dance/btn01.png"/>
37 <h4>酒店预约</h4>
38 </div>
39 <div>
40 <img src="@/assets/dance/btn02.png"/>
41 <h4>接送预约</h4>
42 </div>
43 <div>
44 <img src="@/assets/dance/btn03.png"/>
45 <h4>餐饮预约</h4>
46 </div>
47 </div>
48 </el-col>
49 </el-row>
50 </el-card>
51
52 <el-row :gutter="20">
53 <el-col :lg="18">
54 <el-card :body-style="{'padding':'0'}">
55
56 <div class="lineHead">
57 <ul>
58 <li class="active">赛事详情</li>
59 <li>日程</li>
60 <li>参赛队</li>
61 <li>成绩</li>
62 <li>报名须知</li>
63 </ul>
64 </div>
65
66 <div style="padding: 0 20px 20px">
67 <!-- 赛事详情-->
68 <div class="indexTitle"><h3 class="leftboderTT">组织机构</h3></div>
69 <el-row :gutter="20">
70 <el-col :lg="8">
71 <div class="dlbox">
72 <dl>
73 <dt>主办单位</dt>
74 <dd>世界体育舞蹈联合会(WDSF)</dd>
75 <dd>亚洲体育舞蹈联合会(DSA)</dd>
76 <dd>中国体育联合会(CDSF)</dd>
77 </dl>
78 </div>
79 </el-col>
80 <el-col :lg="8">
81 <div class="dlbox">
82 <dl>
83 <dt>承办单位</dt>
84 <dd>江苏省体育总会</dd>
85 <dd>无锡市人民政府</dd>
86 </dl>
87 </div>
88 </el-col>
89 <el-col :lg="8">
90 <div class="dlbox">
91 <dl>
92 <dt>协办单位</dt>
93 <dd>无锡市体育局</dd>
94 <dd>江苏无锡经济开发区管理委员会</dd>
95 <dd>江苏省体育舞蹈运动协会</dd>
96 </dl>
97 </div>
98 </el-col>
99 <el-col :lg="8">
100 <div class="dlbox">
101 <dl>
102 <dt>运营单位</dt>
103 <dd>吉金无锡运动健康有限公司</dd>
104 </dl>
105 </div>
106 </el-col>
107
108 </el-row>
109 <div class="indexTitle"><h3 class="leftboderTT">报名须知</h3></div>
110 <div class="xzbox">
111 1.各单位限报1支队伍,每队需报领队1名(运动员可兼任),运动员限报4名<br>
112 2.参赛运动员必须是参赛企业的员工(包括劳务派遣和外籍员工)<br>
113 3.参赛运动员必须年满18至50周岁,50周岁以上者不建议参加此次比赛<br>
114 4.参赛运动员必须身体健康
115 </div>
116
117 <div class="indexTitle"><h3 class="leftboderTT">竞赛项目</h3></div>
118 <div class="collapsebox">
119 <el-collapse v-model="activeNames" @change="handleChange">
120 <el-collapse-item title="霹雳舞" name="1">
121 <div class="pd20">
122 <table class="table">
123 <tr>
124 <td>日期</td>
125 <td>单元</td>
126 <td>组别</td>
127 <td>时间</td>
128 <td>阶段</td>
129 </tr>
130 <tr>
131 <td rowspan="4">2023/10/6(星期五)</td>
132 <td rowspan="4">BRK01</td>
133 <td>男子</td>
134 <td>14:30 - 15:30</td>
135 <td>资格赛</td>
136 </tr>
137 <tr>
138 <td>女子</td>
139 <td>14:30 - 15:30</td>
140 <td>资格赛</td>
141 </tr>
142 <tr>
143 <td>男子</td>
144 <td>14:30 - 15:30</td>
145 <td>循环赛</td>
146 </tr>
147 <tr>
148 <td>女子</td>
149 <td>14:30 - 15:30</td>
150 <td>循环赛</td>
151 </tr>
152 <tr>
153 <td rowspan="8">2023/10/7(星期六)</td>
154 <td rowspan="8">BRK02</td>
155 <td>男子</td>
156 <td>14:30 - 15:30</td>
157 <td>四分之一决赛</td>
158 </tr>
159 <tr>
160 <td>男子</td>
161 <td>14:30 - 15:30</td>
162 <td>四分之一决赛</td>
163 </tr>
164 <tr>
165 <td>女子</td>
166 <td>14:30 - 15:30</td>
167 <td>半决赛</td>
168 </tr>
169 <tr>
170 <td>女子</td>
171 <td>14:30 - 15:30</td>
172 <td>半决赛</td>
173 </tr>
174 <tr>
175 <td>男子</td>
176 <td>14:30 - 15:30</td>
177 <td>季军赛</td>
178 </tr>
179 <tr>
180 <td>女子</td>
181 <td>14:30 - 15:30</td>
182 <td>季军赛</td>
183 </tr>
184 <tr>
185 <td>男子</td>
186 <td>14:30 - 15:30</td>
187 <td>决赛</td>
188 </tr>
189 <tr>
190 <td>女子</td>
191 <td>14:30 - 15:30</td>
192 <td>决赛</td>
193 </tr>
194 <tr>
195 <td colspan="5" style="text-align: left">
196 注:竞赛日程将根据最终参赛人数和电视转播的要求进行调整
197 </td>
198 </tr>
199 </table>
200 </div>
201 </el-collapse-item>
202 <el-collapse-item title="拉丁舞" name="2">
203 <div class="pd20">
204 <table class="table">
205 <tr>
206 <td>日期</td>
207 <td>单元</td>
208 <td>组别</td>
209 <td>时间</td>
210 <td>阶段</td>
211 </tr>
212 <tr>
213 <td rowspan="4">2023/10/6(星期五)</td>
214 <td rowspan="4">BRK01</td>
215 <td>男子</td>
216 <td>14:30 - 15:30</td>
217 <td>资格赛</td>
218 </tr>
219 <tr>
220 <td>女子</td>
221 <td>14:30 - 15:30</td>
222 <td>资格赛</td>
223 </tr>
224 <tr>
225 <td>男子</td>
226 <td>14:30 - 15:30</td>
227 <td>循环赛</td>
228 </tr>
229 <tr>
230 <td>女子</td>
231 <td>14:30 - 15:30</td>
232 <td>循环赛</td>
233 </tr>
234 <tr>
235 <td rowspan="8">2023/10/7(星期六)</td>
236 <td rowspan="8">BRK02</td>
237 <td>男子</td>
238 <td>14:30 - 15:30</td>
239 <td>四分之一决赛</td>
240 </tr>
241 <tr>
242 <td>男子</td>
243 <td>14:30 - 15:30</td>
244 <td>四分之一决赛</td>
245 </tr>
246 <tr>
247 <td>女子</td>
248 <td>14:30 - 15:30</td>
249 <td>半决赛</td>
250 </tr>
251 <tr>
252 <td>女子</td>
253 <td>14:30 - 15:30</td>
254 <td>半决赛</td>
255 </tr>
256 <tr>
257 <td>男子</td>
258 <td>14:30 - 15:30</td>
259 <td>季军赛</td>
260 </tr>
261 <tr>
262 <td>女子</td>
263 <td>14:30 - 15:30</td>
264 <td>季军赛</td>
265 </tr>
266 <tr>
267 <td>男子</td>
268 <td>14:30 - 15:30</td>
269 <td>决赛</td>
270 </tr>
271 <tr>
272 <td>女子</td>
273 <td>14:30 - 15:30</td>
274 <td>决赛</td>
275 </tr>
276
277 </table>
278 </div>
279 </el-collapse-item>
280 <el-collapse-item title="国际舞" name="3">
281 <div class="pd20">
282 <table class="table">
283 <tr>
284 <td>日期</td>
285 <td>单元</td>
286 <td>组别</td>
287 <td>时间</td>
288 <td>阶段</td>
289 </tr>
290 <tr>
291 <td rowspan="4">2023/10/6(星期五)</td>
292 <td rowspan="4">BRK01</td>
293 <td>男子</td>
294 <td>14:30 - 15:30</td>
295 <td>资格赛</td>
296 </tr>
297 <tr>
298 <td>女子</td>
299 <td>14:30 - 15:30</td>
300 <td>资格赛</td>
301 </tr>
302 <tr>
303 <td>男子</td>
304 <td>14:30 - 15:30</td>
305 <td>循环赛</td>
306 </tr>
307 <tr>
308 <td>女子</td>
309 <td>14:30 - 15:30</td>
310 <td>循环赛</td>
311 </tr>
312 <tr>
313 <td rowspan="8">2023/10/7(星期六)</td>
314 <td rowspan="8">BRK02</td>
315 <td>男子</td>
316 <td>14:30 - 15:30</td>
317 <td>四分之一决赛</td>
318 </tr>
319 <tr>
320 <td>男子</td>
321 <td>14:30 - 15:30</td>
322 <td>四分之一决赛</td>
323 </tr>
324 <tr>
325 <td>女子</td>
326 <td>14:30 - 15:30</td>
327 <td>半决赛</td>
328 </tr>
329 <tr>
330 <td>女子</td>
331 <td>14:30 - 15:30</td>
332 <td>半决赛</td>
333 </tr>
334 <tr>
335 <td>男子</td>
336 <td>14:30 - 15:30</td>
337 <td>季军赛</td>
338 </tr>
339 <tr>
340 <td>女子</td>
341 <td>14:30 - 15:30</td>
342 <td>季军赛</td>
343 </tr>
344 <tr>
345 <td>男子</td>
346 <td>14:30 - 15:30</td>
347 <td>决赛</td>
348 </tr>
349 <tr>
350 <td>女子</td>
351 <td>14:30 - 15:30</td>
352 <td>决赛</td>
353 </tr>
354
355 </table>
356 </div>
357 </el-collapse-item>
358 </el-collapse>
359 </div>
360 </div>
361 </el-card>
362 <div style="height: 20px"></div>
363
364 </el-col>
365 <el-col :lg="6">
366 <a class="btn-lineG mb20" style="display: block;text-align: center;">我要报名</a>
367 <el-card :body-style="{padding: 0}">
368 <el-tabs v-model="activeName2" class="match-tabs" @tab-click="handleClick">
369 <el-tab-pane label="报名时间" name="first">
370 <div class="gg">
371 <p><label>报名时间:</label>2023-03-23至2023-05-09</p>
372 <p><label>比赛时间:</label>2023-05-14至2023-05-14</p>
373 <p><label>联系方式:</label>13915234567</p>
374 </div>
375 </el-tab-pane>
376 </el-tabs>
377 </el-card>
378 </el-col>
379 </el-row>
380 </div>
381
382 <el-dialog v-model="popupGroupList" title="请选择参赛队" width="600px">
383 <div class="popList">
384 <div v-for="(t,index) in groups" :key="index" class="teamItem" @click="getThisGroupId(t)">
385 <el-avatar :size="60" :src="t.imgUrl" />
386 <span class="name">{{ t.name }}({{ t.abreviations }})</span>
387 ({{ t.typeStr }})
388 </div>
389 <el-button plain style="width: 100%;height: 50px;font-size:16px;" type="success" @click="goAddgroup()">
390 <el-icon>
391 <Plus />
392 </el-icon>
393 新建参赛队
394 </el-button>
395 </div>
396 </el-dialog>
397
398
399 </div>
400 </template>
401
402 <script setup>
403 import { getCurrentInstance, ref } from 'vue'
404 import { reactive, onMounted } from '@vue/runtime-core'
405 import { useRoute, useRouter } from 'vue-router'
406
407 const route = useRoute()
408 const router = useRouter()
409 const { proxy } = getCurrentInstance()
410 import * as match from '@/apiPc/match'
411 import { toRefs } from '@vueuse/shared'
412 import { ElMessage } from 'element-plus'
413 import groupDetail from '../center/component/teamInfo_form'
414 const activeName2 = ref('first')
415
416 </script>
417
418 <style scoped lang="scss">
419 .indexTitle{margin: 20px 0 12px;
420 h3{
421 font-size: 20px;
422 color:var(--el-color-primary);
423 }
424 }
425 .xzbox{border: 2px solid #DDECFB;padding: 20px;line-height: 2;
426 color: #29343C;
427 font-size: 16px;}
428 .dlbox{background: url("@/assets/dance/ds_bg.png") no-repeat left;background-size: 100% 100%;
429 padding: 0 0 20px;margin: 0 0 20px;
430 dl{height: 120px;margin: 0;
431 dt{
432 height: 30px;
433 font-size: 16px;margin: 0 0 18px;
434 font-weight: 600;line-height: 30px;display: inline-block;padding:0 20px 0 14px;
435 background: linear-gradient(90deg, #8623FC, #453DEA);
436 border-radius: 0px 0px 15px 0px;color: #fff;}
437 }
438 dd{
439 font-size: 14px;line-height: 1.6;
440 color: #29343C;}
441 }
442 .ppl{color: #29343C;
443 label{color: #929AA0;}
444 }
445 .bm1{background: url("@/assets/dance/bm1.png") no-repeat left;background-size: contain;padding-left: 24px;}
446 .bm2{background: url("@/assets/dance/bm2.png") no-repeat left;background-size: contain;padding-left: 24px;}
447 .bm3{background: url("@/assets/dance/bm3.png") no-repeat left;background-size: contain;padding-left: 24px;}
448 .bm4{background: url("@/assets/dance/bm4.png") no-repeat left;background-size: contain;padding-left: 24px;}
449 .app-container {
450 padding: 0;
451 background: #F5F7F9;
452 }
453
454 .countDownTitle {
455 text-align: center;
456 color: #525F6B;
457 position: relative;
458 width: 100%;
459 left: 0;
460 font-size: 14px;
461 }
462
463 .countDownTitle span {
464 background: #fff;
465 padding: 0 10px;
466 position: relative;
467 z-index: 1;
468 }
469
470 .countDownTitle::after {
471 position: absolute;
472 background: #ccc;
473 height: 1px;
474 content: '';
475 top: 0;
476 bottom: 0;
477 margin: auto;
478 width: 100%;
479 left: 0;
480 }
481
482 .typeTag {
483 border-radius: 10px 10px 10px 0px;
484 padding: 2px 12px;
485 background: #FF8124;
486 font-size: 14px;
487 color: #fff;
488 }
489
490 .matchItem {
491 cursor: pointer;
492 margin-bottom: 40px;
493 height: 180px;
494 background: #FFFFFF;
495 position: relative;
496 border-radius: 10px;
497
498 .el-avatar {
499 position: absolute;
500 left: 20px;
501 top: 30px;
502
503 img {
504 background: #fff;
505 }
506 }
507
508 .info {
509 padding: 12px 0 0 140px;
510
511 p {
512 font-size: 14px;
513 }
514 }
515
516 .typeTag {
517 position: absolute;
518 right: 0;
519 top: 0;
520 }
521
522 h3 {
523 font-weight: 500;
524 font-size: 18px;
525 color: #000000;
526 text-overflow: ellipsis;
527 }
528
529 &:hover h3 {
530 font-weight: bold;
531 }
532 }
533
534 .el-pagination {
535 justify-content: center;
536 --el-pagination-bg-color: none;
537 }
538
539 .kind {
540 background: #fff;
541 margin: 0 0 30px;
542
543 ul {
544 list-style: none;
545 padding: 30px 0 10px;
546
547 li {
548 margin: 0 0 20px;
549 display: flex;
550 align-items: center;
551 }
552 }
553 }
554
555 .listTitle {
556 display: flex;
557 justify-content: space-between;
558 align-items: center;
559 }
560
561 .match-tabs {
562 background: #fff;
563 padding: 10px 20px 20px;
564 }
565
566 .teamItem {
567 height: 80px;
568 background: #FBFCFD;
569 border-radius: 10px;
570 margin: 10px 0;
571 display: flex;
572 align-items: center;
573 padding: 0 20px;
574 overflow: hidden;
575 text-overflow: ellipsis;
576
577 .el-avatar {
578 border: 1px solid #EEEEEE;
579 }
580
581 .name {
582 margin-left: 15px;
583 flex: 1;
584 font-size: 14px;
585 }
586 }
587
588 .grid-top {
589 background: #fff;
590 min-height: 300px;
591 padding: 28px 28px 10px;
592 border-radius: 10px;
593 margin: 30px auto;
594 position: relative;
595
596 .cover {
597 width: 420px;
598 height: 250px;
599 position: absolute;
600 border-radius: 10px;
601 background: #fff;
602 object-fit: cover;
603 }
604
605 .info {
606 padding-left: 440px;
607
608 h3 {
609 font-weight: 500;
610 color: #000000;
611 margin: 0 0 10px;
612 font-size: 24px;
613 img{margin-right: 10px}
614 .typeTag {
615 border-radius: 13px 13px 13px 0;
616 margin-left: 10px;
617 }
618 }
619
620 p {
621 color: #7B7F83;
622 font-size: 16px;
623 }
624 .countDownTitle{font-size: 14px;}
625 .el-button.el-button--primary {
626 background: #CA171D;
627 border: none;
628 }
629 }
630 }
631
632 .gg {
633 margin: 0 0 28px;
634
635 h3 {border-left: 2px solid #BA2E29; padding: 0 0 0 12px;
636 margin: 20px 0 8px;
637 font-weight: 500;
638 font-size: 16px;
639 }
640
641 p {
642 font-size: 16px;
643 color: #000;
644 margin: 0 0 8px;
645 line-height: 24px;
646 label{color: #7D8790;}
647 }
648
649 .pp {
650 border: 1px solid rgba(186, 46, 41, 0.3);
651 padding: 20px;
652 }
653 }
654
655 .van-count-down {
656 text-align: center;
657 margin: 20px 0;
658 }
659
660 .colon {
661 display: inline-block;
662 font-size: 16px;
663 margin: 0 8px;
664 color: #7B7F83;
665 }
666
667 .block {
668 display: inline-block;
669 width: 52px;
670 color: #fff;
671 font-size: 26px;
672 font-weight: bold;
673 border-radius: 10px;
674 background: url(@/assets/img/djs_bg.png) left;
675 background-size: 100% 100%;
676 line-height: 50px;
677 text-align: center;
678 }
679
680
681 .time-address {
682 font-size: 15px;
683 margin: 10px 0 0;
684 color: #999;
685 }
686
687 .popList .teamItem {
688 cursor: pointer;
689 }
690
691 .popList .teamItem:hover {
692 background: #e7e7e7;
693 }
694
695 .richContent {
696 overflow: hidden;
697 }
698
699 .richContent img {
700 max-width: 100%;
701 }
702
703 .red-center {
704 font-size: 24px;
705 text-align: center;
706 font-family: DIN Alternate;
707 padding: 30px 0;
708 font-weight: bold;
709 color: #E60012;
710 }
711
712 .plist {
713 dt {
714 font-size: 14px;
715 }
716
717 dd {
718 display: inline-block;
719 margin: 0 15px 0 0;
720 }
721
722 dd.t {
723 display: block;
724 margin: 15px 0 6px;
725 border-left: 3px solid #1ec886;
726 line-height: 1;
727 padding: 6px;
728 background: #f5f5f5;
729 }
730
731 li {
732 line-height: 40px;
733 display: flex;
734 justify-content: space-between;
735 padding: 0 20px;
736 align-items: center;
737 cursor: pointer;
738 }
739
740 li:hover {
741 background: #eee;
742 }
743 }
744
745 .pp .el-link {
746 margin-right: 15px;
747 font-size: 16px;
748 }
749
750 :deep(.el-collapse-item__header) {
751 font-weight: 500;
752 font-size: 16px;
753 }
754
755 .pobtns {
756 position: absolute;
757 right: 20px;
758 bottom: 20px;
759 }
760
761 :deep(.el-tabs__item) {
762 font-size: 16px;
763 }
764
765 .signButton {
766 margin: 0 0 20px;
767
768 button {
769 width: 90%;background: var(--el-color-primary);
770 font-size: 20px;margin: 30px auto 0;display: block;
771 height: 50px;
772 }
773 }
774
775 .el-timeline-item__timestamp.is-top {
776 font-size: 16px;
777 }
778
779 .el-timeline-item__content {
780 font-size: 16px;
781 margin: 10px 0 0;
782 }
783
784 .typeTag.blue {
785 background: #00a0e9;
786 }
787
788 .typeTag.green {
789 background: #34cf96;
790 }
791
792 :deep(.el-tabs__nav-wrap::after) {
793 height: 1px;
794 }
795
796 .table{width: 100%;border-left: 1px solid #e1e1e1;border-top:1px solid #e1e1e1;
797 th{background: #eee;padding: 6px 10px;
798 border-right: 1px solid #e1e1e1;
799 border-bottom:1px solid #e1e1e1;
800 font-size: 15px;
801 }
802 td{padding: 6px 10px;border-right: 1px solid #e1e1e1;font-size: 15px;
803 border-bottom:1px solid #e1e1e1;vertical-align: middle;text-align: center;
804 span{margin-right: 10px}
805 span::after{content: ','}
806 span:last-child::after{content: ''}
807 }
808 }
809 .flexLine{display: flex;
810 label{font-weight: normal}
811 }
812
813 .nowteamItem{
814 height: 100px;
815 background: #FBFCFD;
816 border-radius: 10px;
817 margin: 20px 0;
818 display: flex;
819 align-items: center;
820 padding: 0 20px;
821 overflow: hidden;
822 text-overflow: ellipsis;
823 .el-avatar {margin: 0 20px}
824 .info{
825 h3{margin: 0 0 15px;}
826 p{margin: 0;color: #1ab394}
827 }
828 .rr{text-align: right; flex: 1;
829 span{color: #1ab394}
830 }
831 }
832
833 .collapsebox{
834 .el-collapse-item{margin-bottom: 15px;--el-collapse-content-bg-color:#F4F9FE;
835 border: 2px solid #DDECFB;
836 .table{background: #fff;}
837 }
838 .is-active{--el-collapse-header-bg-color:#F4F9FE}
839 :deep(.el-collapse-item__header){padding: 0 20px;}
840 }
841 .funcBtns{display: flex; justify-content: space-around;
842 div{text-align: center;background: #F7FAFF;box-shadow:0 0 10px #d4cae4;
843 border-radius: 15px;padding: 0px 10px 5px;
844 img{}
845 h4{margin: 0;font-size: 16px;}
846 }
847 }
848 .table{white-space: nowrap}
849 @media (max-width: 800px) {
850 .van-count-down{
851 .block{margin: 0 10px;}
852 }
853 .colon{display: none;}
854 .funcBtns{
855 div{padding: 0 0 10px;
856 margin: 0 5px;
857
858 }
859 }
860 }
861 </style>
...@@ -9,19 +9,21 @@ ...@@ -9,19 +9,21 @@
9 <div v-if="isLogin"> 9 <div v-if="isLogin">
10 <group-info-row v-if="groupId" :group-id="groupId"/> 10 <group-info-row v-if="groupId" :group-id="groupId"/>
11 <coach-info-row v-if="groupId" :group-id="groupId" :match-id="matchId"/> 11 <coach-info-row v-if="groupId" :group-id="groupId" :match-id="matchId"/>
12 <div class="pd20"> 12 <div class="pd20" v-if="signInfoList?.length>0">
13 <div class="leftboderTT">{{ language == 0 ? '参赛人员保险费' : 'Participant Insurance Fee' }}</div> 13 <div class="leftboderTT">{{ language == 0 ? '参赛人员保险费' : 'Participant Insurance Fee' }}</div>
14 <!-- 人员列表--> 14 <!-- 人员列表-->
15 <sign-info-table class="mt20" v-if="matchId" :match-id="matchId" :list="signInfoList" :hasAction="false"/> 15 <sign-info-table class="mt20" v-if="matchId" :match-id="matchId" :list="signInfoList" :hasAction="false"/>
16 </div> 16 </div>
17 <div class="pd20"> 17 <div class="pd20" v-if="zuTableList?.length>0">
18 <div class="leftboderTT">{{ language == 0 ? '参赛设项报名费' : 'Registration Fee for Event Entry' }}</div> 18 <div class="leftboderTT">{{ language == 0 ? '参赛设项报名费' : 'Registration Fee for Event Entry' }}</div>
19 <zu-table class="mt20" :list="zuTableList" :hasAction="false"/> 19 <zu-table class="mt20" :list="zuTableList" :hasAction="false"/>
20 </div> 20 </div>
21 </div> 21 </div>
22 <div v-else class="pd20 skeletonBox"> 22 <div v-else class="pd20 skeletonBox">
23 <el-skeleton :rows="8"/> 23 <el-skeleton :rows="8"/>
24 <el-button type="primary" class="w200px btn-lineG" round @click="showLogin">登录后查看详细报项信息</el-button> 24 <el-button type="primary" class="w200px btn-lineG" round @click="showLogin">
25 {{ language == 0 ?'登录后查看详细报项信息':'View detailed report information after logging in' }}
26 </el-button>
25 </div> 27 </div>
26 </el-card> 28 </el-card>
27 29
...@@ -146,13 +148,13 @@ ...@@ -146,13 +148,13 @@
146 <th>{{ language==0?'付款金额':'Payment Amount' }}</th> 148 <th>{{ language==0?'付款金额':'Payment Amount' }}</th>
147 <td> 149 <td>
148 ¥{{ totalFee }} 150 ¥{{ totalFee }}
149 <div class="text-gray">请按照指定金额进行打款</div> 151 <div class="text-gray">{{ language==0?'请按照指定金额进行打款':'Please make the payment according to the specified amount' }}</div>
150 </td> 152 </td>
151 </tr> 153 </tr>
152 <tr> 154 <tr>
153 <th>{{ language==0?'收款账号':`Receiver's Account Number` }}</th> 155 <th>{{ language==0?'收款账号':`Receiver's Account Number` }}</th>
154 <td> 156 <td>
155 {{ form.orgBankAccountNum }} 157 {{ form.payInformation?.receivingAccount }}
156 <span v-if="language==0" class="text-primary size12">复制25位账号</span> 158 <span v-if="language==0" class="text-primary size12">复制25位账号</span>
157 <span v-else class="text-primary size12">Copy 25-digit Account Number</span> 159 <span v-else class="text-primary size12">Copy 25-digit Account Number</span>
158 <div v-if="language==0" class="text-gray">请勿重复打款</div> 160 <div v-if="language==0" class="text-gray">请勿重复打款</div>
...@@ -161,37 +163,32 @@ ...@@ -161,37 +163,32 @@
161 </tr> 163 </tr>
162 <tr> 164 <tr>
163 <th>{{ language==0?'收款公司名':'Name of the Payee Company' }}</th> 165 <th>{{ language==0?'收款公司名':'Name of the Payee Company' }}</th>
164 <td>{{ form.orgBankAccount }}</td> 166 <td>{{ form.payInformation?.receivingCompany }}</td>
165 </tr> 167 </tr>
166 <tr> 168 <tr>
167 <th>{{ language==0?'开户银行':'Bank Name' }}</th> 169 <th>{{ language==0?'开户银行':'Bank Name' }}</th>
168 <td>{{ form.orgBankName }}</td> 170 <td>{{ form.payInformation?.openingBank }}</td>
169 </tr> 171 </tr>
170 <tr> 172 <tr>
171 <th>{{ language==0?'备注信息':'Remarks' }}</th> 173 <th>{{ language==0?'备注信息':'Remarks' }}</th>
172 <td> 174 <td>
173 体育舞蹈报名费保险费 175 {{ form.payInformation?.remarks }}
174 </td> 176 </td>
175 </tr> 177 </tr>
176 <tr> 178 <tr>
177 <th>{{ language==0?'联系人':'Contacts' }}</th> 179 <th>{{ language==0?'联系人':'Contacts' }}</th>
178 <td> 180 <td>
179 张译文 181 {{ form.payInformation?.contacts }}
180 </td> 182 </td>
181 </tr> 183 </tr>
182 <tr> 184 <tr>
183 <th>{{ language==0?'联系电话':'Telephone' }}</th> 185 <th>{{ language==0?'联系电话':'Telephone' }}</th>
184 <td>16882846767</td> 186 <td>{{ form.payInformation?.contactPhone }}</td>
185 </tr> 187 </tr>
186 <tr> 188 <tr>
187 <th>{{ language==0?'操作':'Actions' }}</th> 189 <th>{{ language==0?'操作':'Actions' }}</th>
188 <td> 190 <td>
189 <el-link class="mr10" type="primary"> 191 <file-upload :limit="1" v-model="voucherObj" :button-type="1" :is-show-tip="false" :button-text="language==0?'上传汇款单':'Upload Remittance Receipt'"/>
190 <el-icon>
191 <Upload/>
192 </el-icon>
193 {{ language==0?'上传汇款单':'Upload Remittance Receipt' }}
194 </el-link>
195 <span v-if="language==0" class="text-danger size12">*您可以在上传汇款单完成后,与联系人进行电话确认。具体缴费结果,可以在个人中心-我的报名中查看进度</span> 192 <span v-if="language==0" class="text-danger size12">*您可以在上传汇款单完成后,与联系人进行电话确认。具体缴费结果,可以在个人中心-我的报名中查看进度</span>
196 <span v-else class="text-danger size12">*You can confirm with the contact person by phone after uploading the remittance form. The specific payment results can be viewed in the My Registration section of the personal center to check the progress</span> 193 <span v-else class="text-danger size12">*You can confirm with the contact person by phone after uploading the remittance form. The specific payment results can be viewed in the My Registration section of the personal center to check the progress</span>
197 </td> 194 </td>
...@@ -199,7 +196,7 @@ ...@@ -199,7 +196,7 @@
199 </table> 196 </table>
200 197
201 <div class="text-center"> 198 <div class="text-center">
202 <el-button type="primary" round class="btn-lineG w200px">保存</el-button> 199 <el-button type="primary" @click="upRR" round class="btn-lineG w200px">{{ language==0?'保存':'Save' }}</el-button>
203 </div> 200 </div>
204 </div> 201 </div>
205 <div class="text-center mt20" v-else> 202 <div class="text-center mt20" v-else>
...@@ -217,14 +214,25 @@ ...@@ -217,14 +214,25 @@
217 <h3 class="wePrice">¥{{form.totalFee}}</h3> 214 <h3 class="wePrice">¥{{form.totalFee}}</h3>
218 </div> 215 </div>
219 </el-card> 216 </el-card>
217 <el-card class="mb60" v-if="form.payStatus == '1' && form.curPayType=='2'">
218 <!-- 线下支付待核销-->
219 <div class="text-center">
220 <el-icon color="#32B16C" size="80"><SuccessFilled /></el-icon>
221 <p class="text-success">{{ language==0?'支付成功':'successful!' }}</p>
222 <h3 class="wePrice">¥{{form.totalFee}}</h3>
223 <span v-if="language==0" class="text-danger size12">*您可以在上传汇款单完成后,与联系人进行电话确认。具体缴费结果,可以在个人中心-我的报名中查看进度</span>
224 <span v-else class="text-danger size12">*You can confirm with the contact person by phone after uploading the remittance form. The specific payment results can be viewed in the My Registration section of the personal center to check the progress</span>
225
226 </div>
227 </el-card>
220 </div> 228 </div>
221 229
222 230
223 <div class="box" v-if="errorBox"> 231 <div class="box" v-if="errorBox">
224 <el-result 232 <el-result
225 icon="error" 233 icon="error"
226 title="未找到对应订单" 234 :title="language==0?'未找到对应订单':'No corresponding order found'"
227 sub-title="请确认订单号是否正确" 235 :sub-title="language==0?'请确认订单号是否正确':'Please confirm if the order number is correct'"
228 > 236 >
229 <template #extra> 237 <template #extra>
230 <el-button type="primary" @click="goHome" class="btn-lineG w200px" round>{{ language==0?'返回首页':'Home' }}</el-button> 238 <el-button type="primary" @click="goHome" class="btn-lineG w200px" round>{{ language==0?'返回首页':'Home' }}</el-button>
...@@ -256,6 +264,8 @@ import CoachInfoRow from "@/viewsPc/match/components/coachInfo-row"; ...@@ -256,6 +264,8 @@ import CoachInfoRow from "@/viewsPc/match/components/coachInfo-row";
256 import SignInfoTable from "@/viewsPc/match/components/signInfo-table" 264 import SignInfoTable from "@/viewsPc/match/components/signInfo-table"
257 import ZuTable from "@/viewsPc/match/components/zu-table"; 265 import ZuTable from "@/viewsPc/match/components/zu-table";
258 import useUserStore from "@/store/modules/user"; 266 import useUserStore from "@/store/modules/user";
267 import FileUpload from "@/components/FileUpload";
268 import {upReceipt} from "@/apiPc/match";
259 const isLogin = ref(false) 269 const isLogin = ref(false)
260 const language = ref(cache.local.get('language') || 0) 270 const language = ref(cache.local.get('language') || 0)
261 const signInfoList = ref([]) 271 const signInfoList = ref([])
...@@ -263,6 +273,10 @@ const zuTableList = ref([]) ...@@ -263,6 +273,10 @@ const zuTableList = ref([])
263 const totalFee = ref('') 273 const totalFee = ref('')
264 const wePayCodeUrl = ref('') 274 const wePayCodeUrl = ref('')
265 const form = ref({}) 275 const form = ref({})
276 const voucherObj = ref({})
277 const upForm = ref({
278 orderId:orderId.value
279 })
266 const errorBox = ref(false) 280 const errorBox = ref(false)
267 const hideconfirmbtn = ref(false) 281 const hideconfirmbtn = ref(false)
268 console.log(route.query.orderId) 282 console.log(route.query.orderId)
...@@ -285,7 +299,12 @@ function getData() { ...@@ -285,7 +299,12 @@ function getData() {
285 errorBox.value = true 299 errorBox.value = true
286 }) 300 })
287 } 301 }
288 302 function upRR() {
303 upForm.value.voucher = voucherObj.value[0].url
304 match.upReceipt(upForm.value).then(res=>{
305 getData()
306 })
307 }
289 function getSignList() { 308 function getSignList() {
290 match.getMySignInfoList({ 309 match.getMySignInfoList({
291 cptId: matchId.value, 310 cptId: matchId.value,
...@@ -300,6 +319,7 @@ function goHome() { ...@@ -300,6 +319,7 @@ function goHome() {
300 } 319 }
301 function changePaytype() { 320 function changePaytype() {
302 hideconfirmbtn.value = false 321 hideconfirmbtn.value = false
322 wePayCodeUrl.value = ''
303 if(handle) { 323 if(handle) {
304 clearTimeout(handle) 324 clearTimeout(handle)
305 handle=null 325 handle=null
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
10 </div> 10 </div>
11 </div> 11 </div>
12 <div class="text-center mt30 mb20"> 12 <div class="text-center mt30 mb20">
13 <el-button class="primary-kx w200px" round @click="goHome">{{ language == 0 ? '返回首页' : 'Homepage' }}</el-button> 13 <el-button class="primary-kx w200px" round @click="goHome">{{ language == 0 ? '返回首页' : 'Return to Homepage' }}</el-button>
14 <el-button type="primary" class="btn-lineG w200px" round @click="goSign">{{ language == 0 ? '去报名' : 'Sign Up' }}</el-button> 14 <el-button type="primary" class="btn-lineG w200px" round @click="goSign">{{ language == 0 ? '去报名' : 'Sign Up' }}</el-button>
15 </div> 15 </div>
16 </el-card> 16 </el-card>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!