60778e70 by zhangmeng

保险

1 parent f8237179
1 <template> 1 <template>
2 <el-card class="mb20"> 2 <el-card class="mb20">
3 <div class=""> 3 <div class="">
4 <div class="matchItem" v-for="n in billList" :key="n.id"> 4 <div v-for="n in billList" :key="n.id" class="matchItem">
5 <div class="status-po"> 5 <div class="status-po">
6 <span class="bg-pink" v-if="n.auditStatus=='0'">{{ language==0?'未提交':'Uncommitted' }}</span> 6 <span v-if="n.auditStatus=='0'" class="bg-pink">{{ language == 0 ? '未提交' : 'Uncommitted' }}</span>
7 <span class="bg-primary" v-if="n.auditStatus=='1'">{{ language==0?'待审核':'Auditing' }}</span> 7 <span v-if="n.auditStatus=='1'" class="bg-primary">{{ language == 0 ? '待审核' : 'Auditing' }}</span>
8 <span class="bg-blue" v-if="n.auditStatus=='2'">{{ language==0?'审核通过':'Approved' }}</span> 8 <span v-if="n.auditStatus=='2'" class="bg-blue">{{ language == 0 ? '审核通过' : 'Approved' }}</span>
9 <span class="bg-danger" v-if="n.auditStatus=='3'">{{ language==0?'审核驳回':'Reject' }}</span> 9 <span v-if="n.auditStatus=='3'" class="bg-danger">{{ language == 0 ? '审核驳回' : 'Reject' }}</span>
10 <span class="bg-warning" v-if="n.auditStatus=='4'">{{ language==0?'已取消':'Canceled' }}</span> 10 <span v-if="n.auditStatus=='4'" class="bg-warning">{{ language == 0 ? '已取消' : 'Canceled' }}</span>
11 </div>
12 <el-row :gutter="15">
13 <el-col :lg="6" :md="8" :xl="10">
14 <img class="mauto w100" :src="fillImgUrl(n.coverUrl)">
15 </el-col>
16 <el-col :lg="18" :md="16" :xl="14">
17 <el-row>
18 <el-col :span="24">
19 <h3>{{ n.name }}</h3>
20 </el-col>
21 <el-col :lg="8">
22 <p class="ppl"><label>{{ language==0?'赛事级别':'Event Level' }}</label>{{ n.level }}</p>
23 <p class="ppl" v-if="n.languageSource=='100'"><label v-if="n.groupName">{{ language==0?'参赛队':'Name of participating team' }}</label>{{n.groupName}}</p>
24 </el-col>
25 <el-col :lg="8">
26 <p class="ppl"><label>{{ language==0?'比赛时间':'Event Date' }}</label>{{ n.signBeginTime?.substring(0,10) }}~{{n.signEndTime.substring(0,10)}}
27 </p>
28 <p class="ppl"><label>{{ language==0?'参赛运动员':'PARTICIPATING ATHLETES' }}</label>{{ n.signSize }}</p>
29 </el-col>
30 <el-col :lg="8">
31 <p class="ppl"><label>{{ language==0?'报名时间':'Registration Period' }}</label>{{ n.signBeginTime.substring(0,10) }}~{{n.signEndTime.substring(0,10)}}</p>
32 <div class="btnbox" style="display: flex">
33 <el-button class="mb10" plain round type="primary" @click="goDetail(n)" v-if="n.auditStatus!='0'">
34 {{ language==0?'详情':'Detail' }}</el-button>
35 <el-button plain round type="primary" @click="continueSign(n)" v-if="n.auditStatus=='0'">
36 {{ language==0?'继续报名':'Continue to register' }}</el-button>
37 <el-button plain round type="primary" @click="withDraw(n)" v-if="n.auditStatus=='1'">
38 {{ language==0?'取消报名':'Cancel registration' }}</el-button>
39 <el-button plain round type="primary" @click="reSign(n)" v-if="n.auditStatus=='3'">
40 {{ language==0?'重新报名':'Re register' }}</el-button>
41 <el-button plain round type="primary" @click="goDetail(n)" v-if="n.auditStatus=='2'&&n.payStatus=='0'">
42 {{ language==0?'缴费':'Pay' }}</el-button>
43 <!-- <el-button plain round type="primary" @click="goRefund(n)" v-if="n.orderId">-->
44 <!-- {{ language==0?'退款':'Refund' }}-->
45 <!-- </el-button>-->
46 </div>
47 </el-col>
48 </el-row>
49 </el-col>
50 </el-row>
51 <el-alert v-if="n.reason" :title="language==0?'驳回理由:'+n.reason :'Reason:'+n.reason" type="error" show-icon :closable="false"/>
52 </div> 11 </div>
53 12 <el-row :gutter="15">
54 <el-empty :image="`/img/order_no.png`" :image-size="228" v-if="billList?.length == 0"/> 13 <el-col :lg="6" :md="8" :xl="10">
55 14 <img :src="fillImgUrl(n.coverUrl)" class="mauto w100">
15 </el-col>
16 <el-col :lg="18" :md="16" :xl="14">
17 <el-row>
18 <el-col :span="24">
19 <h3>{{ n.name }}</h3>
20 </el-col>
21 <el-col :lg="8">
22 <p class="ppl"><label>{{ language == 0 ? '赛事级别' : 'Event Level' }}</label>{{ n.level }}</p>
23 <p v-if="n.languageSource=='100'" class="ppl"><label v-if="n.groupName">{{
24 language == 0 ? '参赛队' : 'Name of participating team'
25 }}</label>{{ n.groupName }}</p>
26 </el-col>
27 <el-col :lg="8">
28 <p class="ppl"><label>{{
29 language == 0 ? '比赛时间' : 'Event Date'
30 }}</label>{{ n.signBeginTime?.substring(0, 10) }}~{{ n.signEndTime.substring(0, 10) }}
31 </p>
32 <p class="ppl"><label>{{
33 language == 0 ? '参赛运动员' : 'PARTICIPATING ATHLETES'
34 }}</label>{{ n.signSize }}</p>
35 </el-col>
36 <el-col :lg="8">
37 <p class="ppl"><label>{{
38 language == 0 ? '报名时间' : 'Registration Period'
39 }}</label>{{ n.signBeginTime.substring(0, 10) }}~{{ n.signEndTime.substring(0, 10) }}</p>
40 <div class="btnbox" style="display: flex">
41 <el-button
42 v-if="n.auditStatus!='0'" class="mb10" plain round type="primary"
43 @click="goDetail(n)"
44 >
45 {{ language == 0 ? '详情' : 'Detail' }}
46 </el-button>
47 <el-button v-if="n.auditStatus=='0'" plain round type="primary" @click="continueSign(n)">
48 {{ language == 0 ? '继续报名' : 'Continue to register' }}
49 </el-button>
50 <el-button v-if="n.auditStatus=='1'" plain round type="primary" @click="withDraw(n)">
51 {{ language == 0 ? '取消报名' : 'Cancel registration' }}
52 </el-button>
53 <el-button v-if="n.auditStatus=='3'" plain round type="primary" @click="reSign(n)">
54 {{ language == 0 ? '重新报名' : 'Re register' }}
55 </el-button>
56 <el-button
57 v-if="n.auditStatus=='2'&&n.payStatus=='0'" plain round type="primary"
58 @click="goDetail(n)"
59 >
60 {{ language == 0 ? '缴费' : 'Pay' }}
61 </el-button>
62 <!-- <el-button plain round type="primary" @click="goRefund(n)" v-if="n.orderId">-->
63 <!-- {{ language==0?'退款':'Refund' }}-->
64 <!-- </el-button>-->
65 </div>
66 </el-col>
67 </el-row>
68 </el-col>
69 </el-row>
70 <el-alert
71 v-if="n.reason" :closable="false" :title="language==0?'驳回理由:'+n.reason :'Reason:'+n.reason" show-icon
72 type="error"
73 />
56 </div> 74 </div>
57 <paginationPc 75
58 v-show="total > 0" 76 <el-empty v-if="billList?.length == 0" :image="`/img/order_no.png`" :image-size="228" />
59 v-model:page="query.pageNum" 77
60 v-model:limit="query.pageSize" 78 </div>
61 :total="total" 79 <paginationPc
62 @pagination="getList" 80 v-show="total > 0"
63 /> 81 v-model:limit="query.pageSize"
82 v-model:page="query.pageNum"
83 :total="total"
84 @pagination="getList"
85 />
64 </el-card> 86 </el-card>
65 87
66 </template> 88 </template>
67 89
68 <script setup> 90 <script setup>
69 import {ref} from 'vue' 91 import { ref } from 'vue'
70 import {useRouter} from 'vue-router' 92 import { useRouter } from 'vue-router'
71 import {getCurrentInstance, onMounted} from '@vue/runtime-core' 93 import { getCurrentInstance, onMounted } from '@vue/runtime-core'
72 import * as match from '@/apiPc/match' 94 import * as match from '@/apiPc/match'
73 import {ElMessage, ElMessageBox} from 'element-plus' 95 import { ElMessage, ElMessageBox } from 'element-plus'
74 import _ from 'lodash' 96 import _ from 'lodash'
75 import useUserStore from "@/store/modules/user"; 97 import useUserStore from '@/store/modules/user'
76 import cache from "@/plugins/cache"; 98 import cache from '@/plugins/cache'
77 import {useStorage} from "@vueuse/core/index"; 99 import { useStorage } from '@vueuse/core/index'
78 import {refundApply} from "@/apiPc/match"; 100 import { refundApply } from '@/apiPc/match'
79 import dayjs from "dayjs"; 101 import dayjs from 'dayjs'
80 const language= useStorage('language',0) 102
103 const language = useStorage('language', 0)
81 const router = useRouter() 104 const router = useRouter()
82 const {proxy} = getCurrentInstance() 105 const { proxy } = getCurrentInstance()
83 const total = ref(0) 106 const total = ref(0)
84 const total2 = ref(0) 107 const total2 = ref(0)
85 const dialogPropsBase = { 108 const dialogPropsBase = {
...@@ -99,7 +122,7 @@ const cptPeriodArr = ref([]) ...@@ -99,7 +122,7 @@ const cptPeriodArr = ref([])
99 const payTimeArr = ref([]) 122 const payTimeArr = ref([])
100 const commitTimeArr = ref([]) 123 const commitTimeArr = ref([])
101 const countryList = ref([]) 124 const countryList = ref([])
102 const tableData = ref([{name: '111'}]) 125 const tableData = ref([{ name: '111' }])
103 const billList = ref([]) 126 const billList = ref([])
104 const query = ref({ 127 const query = ref({
105 pageNum: 1, 128 pageNum: 1,
...@@ -129,27 +152,30 @@ const reset = (form) => { ...@@ -129,27 +152,30 @@ const reset = (form) => {
129 commitTimeArr.value = [] 152 commitTimeArr.value = []
130 getList() 153 getList()
131 } 154 }
132 function withDraw(n){ 155
133 match.withDrawByOrderId(n.orderId).then(res=>{ 156 function withDraw(n) {
157 match.withDrawByOrderId(n.orderId).then(res => {
134 getList() 158 getList()
135 }) 159 })
136 } 160 }
137 function reSign(n){ 161
138 match.recoverMySignFromCancel(n.id).then((res)=>{ 162 function reSign(n) {
163 match.recoverMySignFromCancel(n.id).then((res) => {
139 continueSign(n) 164 continueSign(n)
140 }) 165 })
141 } 166 }
142 function continueSign(n){ 167
143 if(n.status=='0'){ 168 function continueSign(n) {
169 if (n.status == '0') {
144 ElMessage({ 170 ElMessage({
145 message: language.value==0?'赛事已下线无法继续报名':'The current event is offline.', 171 message: language.value == 0 ? '赛事已下线无法继续报名' : 'The current event is offline.',
146 type: 'warning' 172 type: 'warning'
147 }) 173 })
148 return 174 return
149 } 175 }
150 if(n.signEndTime <= dayjs().format('YYYY-MM-DD HH:mm:ss')){ 176 if (n.signEndTime <= dayjs().format('YYYY-MM-DD HH:mm:ss')) {
151 ElMessage({ 177 ElMessage({
152 message: language.value==0?'赛事报名已结束无法继续报名':'The event registration has ended.', 178 message: language.value == 0 ? '赛事报名已结束无法继续报名' : 'The event registration has ended.',
153 type: 'warning' 179 type: 'warning'
154 }) 180 })
155 return 181 return
...@@ -158,7 +184,7 @@ function continueSign(n){ ...@@ -158,7 +184,7 @@ function continueSign(n){
158 // 个人报名 184 // 个人报名
159 router.push({ 185 router.push({
160 name: 'chooseProject', 186 name: 'chooseProject',
161 params:{ 187 params: {
162 id: n.id 188 id: n.id
163 }, 189 },
164 query: { 190 query: {
...@@ -166,11 +192,11 @@ function continueSign(n){ ...@@ -166,11 +192,11 @@ function continueSign(n){
166 } 192 }
167 }) 193 })
168 } 194 }
169 if (user.utype == '2'){ 195 if (user.utype == '2') {
170 // 团队报名 196 // 团队报名
171 router.push({ 197 router.push({
172 name: 'chooseSportsman', 198 name: 'chooseSportsman',
173 params:{ 199 params: {
174 id: n.id 200 id: n.id
175 }, 201 },
176 query: { 202 query: {
...@@ -179,24 +205,27 @@ function continueSign(n){ ...@@ -179,24 +205,27 @@ function continueSign(n){
179 } 205 }
180 }) 206 })
181 } 207 }
182
183 } 208 }
184 function goDetail(n){ 209
210 function goDetail(n) {
185 // 查看详情 211 // 查看详情
186 router.push({ 212 router.push({
187 name:`signPay`, 213 name: `signPay`,
188 query: { 214 query: {
189 orderId: n.encodeOrderId 215 orderId: n.encodeOrderId,
216 buy: n.insuranceBuyStatus
217
190 } 218 }
191 }) 219 })
192 } 220 }
221
193 function goRefund(n) { 222 function goRefund(n) {
194 ElMessageBox.confirm('Are you sure to refund?', 'Refund', { 223 ElMessageBox.confirm('Are you sure to refund?', 'Refund', {
195 confirmButtonText: 'Confirm', 224 confirmButtonText: 'Confirm',
196 cancelButtonText: 'Cancel', 225 cancelButtonText: 'Cancel',
197 type: 'warning', 226 type: 'warning'
198 }).then(() => { 227 }).then(() => {
199 match.refundApply(n.orderId).then(res=>{ 228 match.refundApply(n.orderId).then(res => {
200 ElMessage({ 229 ElMessage({
201 message: 'Refund success', 230 message: 'Refund success',
202 type: 'success' 231 type: 'success'
...@@ -204,6 +233,7 @@ function goRefund(n) { ...@@ -204,6 +233,7 @@ function goRefund(n) {
204 }) 233 })
205 }) 234 })
206 } 235 }
236
207 function getList() { 237 function getList() {
208 console.log(query2.value) 238 console.log(query2.value)
209 match.getMySignCptList(query2.value).then(res => { 239 match.getMySignCptList(query2.value).then(res => {
...@@ -220,48 +250,74 @@ function getList() { ...@@ -220,48 +250,74 @@ function getList() {
220 250
221 </script> 251 </script>
222 252
223 <style scoped lang="scss"> 253 <style lang="scss" scoped>
224 .matchItem { 254 .matchItem {
225 cursor: pointer; 255 cursor: pointer;
226 margin: 0 0 20px; 256 margin: 0 0 20px;
227 padding: 20px 15px;background: #FBFCFD; 257 padding: 20px 15px;
258 background: #FBFCFD;
228 border-radius: 2px; 259 border-radius: 2px;
229 position: relative; 260 position: relative;
230 .status-po{position: absolute;right: 0;top: 0;font-size: 12px; 261
262 .status-po {
263 position: absolute;
264 right: 0;
265 top: 0;
266 font-size: 12px;
231 color: #FFFFFF; 267 color: #FFFFFF;
232 span{border-radius: 0px 10px 0px 10px;padding: 4px 10px;} 268
233 .bg-danger{background: #E60012;} 269 span {
234 .bg-warning{background: #e89f39;} 270 border-radius: 0px 10px 0px 10px;
235 .bg-pink{background: #F740A6;} 271 padding: 4px 10px;
236 .bg-primary{background: var(--el-color-primary)} 272 }
237 .bg-blue{background: #00a0e9} 273
274 .bg-danger {
275 background: #E60012;
276 }
277
278 .bg-warning {
279 background: #e89f39;
280 }
281
282 .bg-pink {
283 background: #F740A6;
284 }
285
286 .bg-primary {
287 background: var(--el-color-primary)
288 }
289
290 .bg-blue {
291 background: #00a0e9
292 }
238 } 293 }
294
239 &:last-child { 295 &:last-child {
240 border-bottom: none; 296 border-bottom: none;
241 } 297 }
242 298
243 .el-avatar { 299 .el-avatar {
244 position: absolute; 300 position: absolute;
245 left: 20px; 301 left: 20px;
246 top: 30px; 302 top: 30px;
247 303
248 img { 304 img {
249 background: #fff; 305 background: #fff;
250 } 306 }
251 } 307 }
252 308
253 .info { 309 .info {
254 p { 310 p {
255 font-size: 14px; 311 font-size: 14px;
256 } 312 }
257 } 313 }
258 314
259 .typeTag { 315 .typeTag {
260 position: absolute; 316 position: absolute;
261 right: 0; 317 right: 0;
262 top: 0; 318 top: 0;
263 } 319 }
264 320
265 h3 { 321 h3 {
266 font-weight: 500; 322 font-weight: 500;
267 margin: 0 0 10px; 323 margin: 0 0 10px;
...@@ -269,7 +325,7 @@ function getList() { ...@@ -269,7 +325,7 @@ function getList() {
269 color: #000000; 325 color: #000000;
270 text-overflow: ellipsis; 326 text-overflow: ellipsis;
271 } 327 }
272 328
273 &:hover h3 { 329 &:hover h3 {
274 color: var(--el-color-primary); 330 color: var(--el-color-primary);
275 } 331 }
...@@ -279,7 +335,7 @@ function getList() { ...@@ -279,7 +335,7 @@ function getList() {
279 text-align: center; 335 text-align: center;
280 font-size: 26px; 336 font-size: 26px;
281 margin: 20px; 337 margin: 20px;
282 338
283 span { 339 span {
284 font-size: 40px; 340 font-size: 40px;
285 font-weight: bold; 341 font-weight: bold;
...@@ -294,7 +350,7 @@ function getList() { ...@@ -294,7 +350,7 @@ function getList() {
294 :deep(.el-radio.el-radio--large .el-radio__label) { 350 :deep(.el-radio.el-radio--large .el-radio__label) {
295 display: flex; 351 display: flex;
296 align-items: center; 352 align-items: center;
297 353
298 img { 354 img {
299 margin-right: 6px; 355 margin-right: 6px;
300 } 356 }
...@@ -321,16 +377,41 @@ function getList() { ...@@ -321,16 +377,41 @@ function getList() {
321 .el-form--inline .el-form-item { 377 .el-form--inline .el-form-item {
322 width: auto; 378 width: auto;
323 } 379 }
324 .ppl{font-size: 14px; 380
325 label{color: #929AA0;display: block;font-size: 12px;} 381 .ppl {
382 font-size: 14px;
383
384 label {
385 color: #929AA0;
386 display: block;
387 font-size: 12px;
388 }
326 } 389 }
327 .btnbox{text-align: right;} 390
391 .btnbox {
392 text-align: right;
393 }
394
328 @media screen and (max-width: 768px) { 395 @media screen and (max-width: 768px) {
329 .matchItem{ 396 .matchItem {
330 img.w100{margin-bottom: 10px} 397 img.w100 {
331 .ppl{margin: 0 0 5px;display: flex;} 398 margin-bottom: 10px
332 .status-po{right: 15px;top: 23px;z-index: 2} 399 }
333 .btnbox{justify-content: end;} 400
401 .ppl {
402 margin: 0 0 5px;
403 display: flex;
404 }
405
406 .status-po {
407 right: 15px;
408 top: 23px;
409 z-index: 2
410 }
411
412 .btnbox {
413 justify-content: end;
414 }
334 } 415 }
335 } 416 }
336 </style> 417 </style>
......
...@@ -481,7 +481,7 @@ function submitForm(n) { ...@@ -481,7 +481,7 @@ function submitForm(n) {
481 481
482 function commit() { 482 function commit() {
483 if (language.value == 0 && insuranceFlag.value == 2 && checked.value == '0') { 483 if (language.value == 0 && insuranceFlag.value == 2 && checked.value == '0') {
484 ElMessageBox.confirm(language.value == 0 ? '你是否同意赛事帮忙购买保险?' : 'Do you agree to have the event organizer help purchase insurance?', 484 ElMessageBox.confirm(language.value == 0 ? '你是否同意赛事帮忙购买保险?' : 'Do you agree to have the event organizer help purchase insurance?',
485 language.value == 0 ? '提示' : 'Tip', { 485 language.value == 0 ? '提示' : 'Tip', {
486 confirmButtonText: language.value == 0 ? '是' : 'Yes', 486 confirmButtonText: language.value == 0 ? '是' : 'Yes',
487 cancelButtonText: language.value == 0 ? '否,进入下一步' : 'NO,Go Next', 487 cancelButtonText: language.value == 0 ? '否,进入下一步' : 'NO,Go Next',
......
...@@ -437,7 +437,7 @@ function submitForm() { ...@@ -437,7 +437,7 @@ function submitForm() {
437 type: 'warning' 437 type: 'warning'
438 }) 438 })
439 } else if (language.value == 0 && insuranceFlag.value == '2' && checked.value == 0) { 439 } else if (language.value == 0 && insuranceFlag.value == '2' && checked.value == 0) {
440 ElMessageBox.confirm(language.value == 0 ? '你是否同意赛事帮忙购买保险?' : 'Do you agree to have the event organizer help purchase insurance?', 440 ElMessageBox.confirm(language.value == 0 ? '你是否同意赛事帮忙购买保险?' : 'Do you agree to have the event organizer help purchase insurance?',
441 language.value == 0 ? '提示' : 'Tip', { 441 language.value == 0 ? '提示' : 'Tip', {
442 confirmButtonText: language.value == 0 ? '是' : 'Yes', 442 confirmButtonText: language.value == 0 ? '是' : 'Yes',
443 cancelButtonText: language.value == 0 ? '否,进入下一步' : 'NO,Go Next', 443 cancelButtonText: language.value == 0 ? '否,进入下一步' : 'NO,Go Next',
......
...@@ -3,7 +3,9 @@ ...@@ -3,7 +3,9 @@
3 <div v-if="!errorBox" class="box"> 3 <div v-if="!errorBox" class="box">
4 <el-card :body-style="{ padding: '0px' }" class="mt20"> 4 <el-card :body-style="{ padding: '0px' }" class="mt20">
5 <div slot="header"> 5 <div slot="header">
6 <div class="bg-lineg">{{ language == 0 ? '报名缴费清单' : 'Registration Payment List' }}</div> 6 <div class="bg-lineg">
7 {{ language == 0 ? '报名缴费清单' : 'Registration Payment List' }}
8 </div>
7 </div> 9 </div>
8 <match-info-row v-if="matchId" :match-id="matchId" /> 10 <match-info-row v-if="matchId" :match-id="matchId" />
9 <div v-if="isLogin"> 11 <div v-if="isLogin">
...@@ -11,7 +13,8 @@ ...@@ -11,7 +13,8 @@
11 <coach-info-row v-if="groupId" :group-id="groupId" :match-id="matchId" /> 13 <coach-info-row v-if="groupId" :group-id="groupId" :match-id="matchId" />
12 14
13 <div v-if="user.utype=='1'&&myMemberTable.length>0" class="pd20"> 15 <div v-if="user.utype=='1'&&myMemberTable.length>0" class="pd20">
14 <div class="leftboderTT">{{ language == 0 ? '随行人员清单' : 'List of accompanying personnel' }} 16 <div class="leftboderTT">
17 {{ language == 0 ? '随行人员清单' : 'List of accompanying personnel' }}
15 </div> 18 </div>
16 <div> 19 <div>
17 <el-table :data="myMemberTable" border class="mt20"> 20 <el-table :data="myMemberTable" border class="mt20">
...@@ -41,7 +44,9 @@ ...@@ -41,7 +44,9 @@
41 </div> 44 </div>
42 </div> 45 </div>
43 <div v-if="signInfoList?.length>0||zuQuery.athName" class="pd20"> 46 <div v-if="signInfoList?.length>0||zuQuery.athName" class="pd20">
44 <div class="leftboderTT">{{ language == 0 ? '参赛人员保险费' : 'Participant Insurance Fee' }} 47 <div class="leftboderTT">
48 <!-- {{ language == 0 ? '' + '参赛人员保险费' : 'Participant Insurance Fee' }}-->
49 {{ language == 0 ? '' + '参赛人员' : 'Participant' }}
45 <div class="fr"> 50 <div class="fr">
46 <el-input 51 <el-input
47 v-model="zuQuery.athName" :prefix-icon="Search" clearable 52 v-model="zuQuery.athName" :prefix-icon="Search" clearable
...@@ -51,12 +56,18 @@ ...@@ -51,12 +56,18 @@
51 </div> 56 </div>
52 <!-- 人员列表--> 57 <!-- 人员列表-->
53 <sign-info-table 58 <sign-info-table
54 v-if="matchId" :has-action="false" :list="signInfoList" :match-id="matchId" 59 v-if="matchId"
55 :show-summary="true" :total="insuranceFeeTotal" class="mt20" 60 :has-action="false"
61 :list="signInfoList"
62 :match-id="matchId"
63 :show-summary="buy==1"
64 :total="insuranceFeeTotal"
65 class="mt20"
56 /> 66 />
57 </div> 67 </div>
58 <div v-if="zuTableList?.length>0||zuQuery.groName" class="pd20"> 68 <div v-if="zuTableList?.length>0||zuQuery.groName" class="pd20">
59 <div class="leftboderTT">{{ language == 0 ? '参赛设项服务费' : 'Registration Fee for Event Entry' }} 69 <div class="leftboderTT">
70 {{ language == 0 ? '参赛设项服务费' : 'Registration Fee for Event Entry' }}
60 <div class="fr"> 71 <div class="fr">
61 <el-input 72 <el-input
62 v-model="zuQuery.groName" :prefix-icon="Search" clearable 73 v-model="zuQuery.groName" :prefix-icon="Search" clearable
...@@ -65,7 +76,10 @@ ...@@ -65,7 +76,10 @@
65 </div> 76 </div>
66 </div> 77 </div>
67 <zu-table 78 <zu-table
68 :has-action="false" :list="zuTableList" :show-summary="true" :total="serviceFeeTotal" 79 :has-action="false"
80 :list="zuTableList"
81 :show-summary="true"
82 :total="serviceFeeTotal"
69 class="mt20" 83 class="mt20"
70 /> 84 />
71 </div> 85 </div>
...@@ -96,12 +110,13 @@ ...@@ -96,12 +110,13 @@
96 <div v-if="signInfoList?.length>0" class="item"><label>{{ 110 <div v-if="signInfoList?.length>0" class="item"><label>{{
97 language == 0 ? '参赛服务费' : 'REGISTRATION FEE' 111 language == 0 ? '参赛服务费' : 'REGISTRATION FEE'
98 }}:</label><span>{{ language == 0 ? '¥' : '€' }}{{ serviceFeeTotal }}</span></div> 112 }}:</label><span>{{ language == 0 ? '¥' : '€' }}{{ serviceFeeTotal }}</span></div>
99 <div v-if="zuTableList?.length>0" class="item"><label>{{ 113 <div v-if="zuTableList?.length>0 &&buy!='0'" class="item"><label>{{
100 language == 0 ? '保险费' : 'INSURANCE' 114 language == 0 ? '保险费' : 'INSURANCE'
101 }}:</label><span>{{ language == 0 ? '¥' : '€' }}{{ insuranceFeeTotal }}</span></div> 115 }}:</label><span>{{ language == 0 ? '¥' : '€' }}{{ insuranceFeeTotal }}</span></div>
102 <div class="item"><label>{{ language == 0 ? '费用总计' : 'Total Cost' }}:</label><span 116 <div class="item">
103 class="size26" 117 <label>{{ language == 0 ? '费用总计' : 'Total Cost' }}:</label>
104 >{{ language == 0 ? '¥' : '€' }}{{ form.totalFee }}</span></div> 118 <span class="size26">{{ language == 0 ? '¥' : '€' }}{{ form.totalFee }}</span>
119 </div>
105 </div> 120 </div>
106 </el-col> 121 </el-col>
107 </el-row> 122 </el-row>
...@@ -162,7 +177,9 @@ ...@@ -162,7 +177,9 @@
162 </el-row> 177 </el-row>
163 </el-card> 178 </el-card>
164 <el-card v-if="form.auditStatus=='2'&&form.payStatus=='0'&&Number(form.totalFee)>0" class="mb60"> 179 <el-card v-if="form.auditStatus=='2'&&form.payStatus=='0'&&Number(form.totalFee)>0" class="mb60">
165 <div class="leftboderTT">{{ language == 0 ? '选择支付方式' : 'Choose payment method' }}</div> 180 <div class="leftboderTT">
181 {{ language == 0 ? '选择支付方式' : 'Choose payment method' }}
182 </div>
166 <div class="mt20"> 183 <div class="mt20">
167 <el-radio-group v-model="payType" @change="changePaytype"> 184 <el-radio-group v-model="payType" @change="changePaytype">
168 <!-- 0 线下 1 支付宝 2 微信 3 paypal--> 185 <!-- 0 线下 1 支付宝 2 微信 3 paypal-->
...@@ -291,73 +308,76 @@ ...@@ -291,73 +308,76 @@
291 308
292 <div v-if="payType == '3'"> 309 <div v-if="payType == '3'">
293 <table cellpadding="0" cellspacing="0" class="table-border table"> 310 <table cellpadding="0" cellspacing="0" class="table-border table">
294 <tr> 311 <tbody>
295 <th class="head" colspan="2"> 312 <tr>
296 {{ language == 0 ? '线下缴费的收款信息' : 'Offline Payment Collection Information' }} 313 <th class="head" colspan="2">
297 </th> 314 {{ language == 0 ? '线下缴费的收款信息' : 'Offline Payment Collection Information' }}
298 </tr> 315 </th>
299 <tr> 316 </tr>
300 <th>{{ language == 0 ? '付款金额' : 'Payment Amount' }}</th> 317 <tr>
301 <td> 318 <th>{{ language == 0 ? '付款金额' : 'Payment Amount' }}</th>
302 {{ language == 0 ? '¥' : '€' }}{{ totalFee }} 319 <td>
303 <div class="text-gray">{{ 320 {{ language == 0 ? '¥' : '€' }}{{ totalFee }}
304 language == 0 ? '请按照指定金额进行打款' : 'Please make the payment according to the specified amount' 321 <div class="text-gray">{{
305 }} 322 language == 0 ? '请按照指定金额进行打款' : 'Please make the payment according to the specified amount'
306 </div> 323 }}
307 </td> 324 </div>
308 </tr> 325 </td>
309 <tr> 326 </tr>
310 <th>{{ language == 0 ? '收款账号' : `Receiver's Account Number` }}</th> 327 <tr>
311 <td> 328 <th>{{ language == 0 ? '收款账号' : `Receiver's Account Number` }}</th>
312 {{ form.payInformation?.receivingAccount }} 329 <td>
313 <span 330 {{ form.payInformation?.receivingAccount }}
314 v-if="language==0" class="text-primary size12 pointer" 331 <span
315 @click="copy(form.payInformation?.receivingAccount)" 332 v-if="language==0" class="text-primary size12 pointer"
316 >复制25位账号</span> 333 @click="copy(form.payInformation?.receivingAccount)"
317 <span v-else class="text-primary size12 pointer" @click="copy(form.payInformation?.receivingAccount)">Copy 25-digit Account Number</span> 334 >复制25位账号</span>
318 <div v-if="language==0" class="text-gray">请勿重复打款</div> 335 <span v-else class="text-primary size12 pointer" @click="copy(form.payInformation?.receivingAccount)">Copy 25-digit Account Number</span>
319 <div v-else class="text-gray">Please do not make duplicate payments</div> 336 <div v-if="language==0" class="text-gray">请勿重复打款</div>
320 </td> 337 <div v-else class="text-gray">Please do not make duplicate payments</div>
321 </tr> 338 </td>
322 <tr> 339 </tr>
323 <th>{{ language == 0 ? '收款公司名' : 'Name of the Payee Company' }}</th> 340 <tr>
324 <td>{{ form.payInformation?.receivingCompany }}</td> 341 <th>{{ language == 0 ? '收款公司名' : 'Name of the Payee Company' }}</th>
325 </tr> 342 <td>{{ form.payInformation?.receivingCompany }}</td>
326 <tr> 343 </tr>
327 <th>{{ language == 0 ? '开户银行' : 'Bank Name' }}</th> 344 <tr>
328 <td>{{ form.payInformation?.openingBank }}</td> 345 <th>{{ language == 0 ? '开户银行' : 'Bank Name' }}</th>
329 </tr> 346 <td>{{ form.payInformation?.openingBank }}</td>
330 <tr> 347 </tr>
331 <th>{{ language == 0 ? '备注信息' : 'Remarks' }}</th> 348 <tr>
332 <td> 349 <th>{{ language == 0 ? '备注信息' : 'Remarks' }}</th>
333 {{ form.payInformation?.remarks }} 350 <td>
334 </td> 351 {{ form.payInformation?.remarks }}
335 </tr> 352 </td>
336 <tr> 353 </tr>
337 <th>{{ language == 0 ? '联系人' : 'Contacts' }}</th> 354 <tr>
338 <td> 355 <th>{{ language == 0 ? '联系人' : 'Contacts' }}</th>
339 {{ form.payInformation?.contacts }} 356 <td>
340 </td> 357 {{ form.payInformation?.contacts }}
341 </tr> 358 </td>
342 <tr> 359 </tr>
343 <th>{{ language == 0 ? '联系电话' : 'Telephone' }}</th> 360 <tr>
344 <td>{{ form.payInformation?.contactPhone }}</td> 361 <th>{{ language == 0 ? '联系电话' : 'Telephone' }}</th>
345 </tr> 362 <td>{{ form.payInformation?.contactPhone }}</td>
346 <tr> 363 </tr>
347 <th>{{ language == 0 ? '操作' : 'Actions' }}</th> 364 <tr>
348 <td> 365 <th>{{ language == 0 ? '操作' : 'Actions' }}</th>
349 <file-upload 366 <td>
350 v-model="voucherObj" :button-text="language==0?'上传汇款单':'Upload Remittance Receipt'" 367 <file-upload
351 :button-type="1" :is-show-tip="false" 368 v-model="voucherObj" :button-text="language==0?'上传汇款单':'Upload Remittance Receipt'"
352 :limit="1" 369 :button-type="1" :is-show-tip="false"
353 /> 370 :limit="1"
354 <span 371 />
355 v-if="language==0" 372 <span
356 class="text-danger size12" 373 v-if="language==0"
357 >*您可以在上传汇款单完成后,与联系人进行电话确认。具体缴费结果,可以在个人中心-我的报名中查看进度</span> 374 class="text-danger size12"
358 <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> 375 >*您可以在上传汇款单完成后,与联系人进行电话确认。具体缴费结果,可以在个人中心-我的报名中查看进度</span>
359 </td> 376 <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>
360 </tr> 377 </td>
378 </tr>
379 </tbody>
380
361 </table> 381 </table>
362 382
363 <div class="text-center"> 383 <div class="text-center">
...@@ -432,7 +452,9 @@ ...@@ -432,7 +452,9 @@
432 </el-form-item> 452 </el-form-item>
433 </div> 453 </div>
434 <div class="tip mt20"> 454 <div class="tip mt20">
435 <label>{{ language == 0 ? '开电子收据须知' : 'Receipt notice' }}:</label> 455 <label>
456 {{ language == 0 ? '开电子收据须知' : 'Receipt notice' }}:
457 </label>
436 <div class="pd10"> 458 <div class="pd10">
437 {{ remark }} 459 {{ remark }}
438 </div> 460 </div>
...@@ -467,6 +489,7 @@ import { useStorage } from '@vueuse/core/index' ...@@ -467,6 +489,7 @@ import { useStorage } from '@vueuse/core/index'
467 import { ElMessage, ElMessageBox } from 'element-plus' 489 import { ElMessage, ElMessageBox } from 'element-plus'
468 import { getBaseInfoByActiveId, getReceipt } from '@/apiPc/booking' 490 import { getBaseInfoByActiveId, getReceipt } from '@/apiPc/booking'
469 491
492 const buy = ref(route.query.buy || '0')
470 const isLogin = ref(false) 493 const isLogin = ref(false)
471 const language = useStorage('language', 0) 494 const language = useStorage('language', 0)
472 const signInfoList = ref([]) 495 const signInfoList = ref([])
...@@ -486,7 +509,8 @@ const insuranceFeeTotal = ref(0) ...@@ -486,7 +509,8 @@ const insuranceFeeTotal = ref(0)
486 const serviceFeeTotal = ref(0) 509 const serviceFeeTotal = ref(0)
487 const zuQuery = ref({ 510 const zuQuery = ref({
488 cptId: matchId.value, 511 cptId: matchId.value,
489 groupId: groupId.value 512 groupId: groupId.value,
513 buy: route.query.buy || '0'
490 }) 514 })
491 const user = useUserStore().user 515 const user = useUserStore().user
492 const remark = ref('') 516 const remark = ref('')
...@@ -521,7 +545,10 @@ if (useUserStore().user) { ...@@ -521,7 +545,10 @@ if (useUserStore().user) {
521 } 545 }
522 546
523 function getData() { 547 function getData() {
524 return match.getMyOrderDetail({ orderId: orderId.value }).then(res => { 548 return match.getMyOrderDetail({
549 orderId: orderId.value,
550 buy: buy.value
551 }).then(res => {
525 totalFee.value = res.data.totalFee 552 totalFee.value = res.data.totalFee
526 form.value = res.data 553 form.value = res.data
527 form.value.payTypeArr = res.data.payType.split(',') 554 form.value.payTypeArr = res.data.payType.split(',')
...@@ -560,6 +587,7 @@ function upRR() { ...@@ -560,6 +587,7 @@ function upRR() {
560 587
561 function getSignList() { 588 function getSignList() {
562 match.getMySignInfoList(zuQuery.value).then(res => { 589 match.getMySignInfoList(zuQuery.value).then(res => {
590 console.log(res)
563 insuranceFeeTotal.value = 0 591 insuranceFeeTotal.value = 0
564 serviceFeeTotal.value = 0 592 serviceFeeTotal.value = 0
565 signInfoList.value = res.data?.singleData || [] 593 signInfoList.value = res.data?.singleData || []
...@@ -571,6 +599,7 @@ function getSignList() { ...@@ -571,6 +599,7 @@ function getSignList() {
571 serviceFeeTotal.value = serviceFeeTotal.value + Number(z.project.serviceFee) 599 serviceFeeTotal.value = serviceFeeTotal.value + Number(z.project.serviceFee)
572 } 600 }
573 }).catch(err => { 601 }).catch(err => {
602 console.log(err)
574 if (isLogin.value) { 603 if (isLogin.value) {
575 router.push({ name: 'myMatch' }) 604 router.push({ name: 'myMatch' })
576 } 605 }
...@@ -740,6 +769,7 @@ function downloadAndSend() { ...@@ -740,6 +769,7 @@ function downloadAndSend() {
740 showSJ() 769 showSJ()
741 }) 770 })
742 }).catch(err => { 771 }).catch(err => {
772 console.log(err)
743 loading.value = false 773 loading.value = false
744 }) 774 })
745 } 775 }
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!