d793ca6b by 杨炀

no message

1 parent ce2e4083
...@@ -245,14 +245,17 @@ ...@@ -245,14 +245,17 @@
245 </div> 245 </div>
246 </el-col> 246 </el-col>
247 <el-col :lg="24"> 247 <el-col :lg="24">
248 <el-button round class="mt20 btn-lineG" size="large" v-if="form.viewStatus=='1'||form.viewStatus=='5'" type="primary" @click="exportPdf"> 248 <div class="text-center">
249 <el-icon><Upload /></el-icon> 249 <el-button round class="mt20 btn-lineG" size="large" v-if="(form.viewStatus=='1'||form.viewStatus=='5')&&type == 'hotel'" type="primary" @click="exportPdf">
250 {{ language==0?'导出酒店预订单':'Export PDF' }} 250 <el-icon><Upload /></el-icon>
251 </el-button> 251 {{ language==0?'导出酒店预订单':'Export PDF' }}
252 <el-button round class="mt20 btn-lineG" size="large" v-if="form.viewStatus=='1'||form.viewStatus=='5'" type="primary" 252 </el-button>
253 @click="exportPdf"> 253 <el-button round class="mt20 btn-lineG" size="large" v-if="(form.viewStatus=='1'||form.viewStatus=='5')&&(type=='makeUp'||type=='hotel')" type="primary"
254 {{ language==0?'下载收据':'Upload Invoice' }} 254 @click="downInvoice">
255 </el-button> 255 <el-icon><Download /></el-icon>
256 {{ language==0?'下载收据':'DownLoad Invoice' }}
257 </el-button>
258 </div>
256 </el-col> 259 </el-col>
257 </el-row> 260 </el-row>
258 </div> 261 </div>
...@@ -374,6 +377,24 @@ ...@@ -374,6 +377,24 @@
374 </el-result> 377 </el-result>
375 </div> 378 </div>
376 <Dialog ref="DialogRef" /> 379 <Dialog ref="DialogRef" />
380
381 <el-dialog :title="language==0?'开收据':'Issue a receipt'" v-model="showSJDialog" width="460px"
382 :close-on-click-modal="false" :close-on-press-escape="false">
383 <div class="flex">
384 <el-form-item :label="language==0?'开票人':'Name'">
385 <div class="flex">
386 <el-input v-model="lpName" :placeholder="language==0?'请输入开票人':'Please enter your name'"></el-input>
387 <el-button type="primary" @click="submitSJ">{{ language == 0 ? '提交并下载' : 'Submit' }}</el-button>
388 </div>
389 </el-form-item>
390 </div>
391 <div class="tip mt20" v-if="remark">
392 <label>{{ language == 0 ? '开电子收据须知' : 'Receipt notice' }}:</label>
393 <div class="pd10">
394 {{ remark }}
395 </div>
396 </div>
397 </el-dialog>
377 </div> 398 </div>
378 </template> 399 </template>
379 400
...@@ -400,10 +421,10 @@ const groupId = ref() ...@@ -400,10 +421,10 @@ const groupId = ref()
400 import useUserStore from "@/store/modules/user"; 421 import useUserStore from "@/store/modules/user";
401 import FileUpload from "@/components/FileUpload"; 422 import FileUpload from "@/components/FileUpload";
402 import {useStorage} from "@vueuse/core/index"; 423 import {useStorage} from "@vueuse/core/index";
403 import {ElMessage} from "element-plus"; 424 import {ElMessage, ElMessageBox} from "element-plus";
404 import { 425 import {
405 cancelOrder, 426 cancelOrder,
406 cancelOrder2, 427 cancelOrder2, getBaseInfoByActiveId,
407 getCarBilldetailbyId, 428 getCarBilldetailbyId,
408 getFoodBilldetailbyId, 429 getFoodBilldetailbyId,
409 getMealOrderInfoByLogex, getPhotoOrderInfo, getPhotoOrderInfoByLogex 430 getMealOrderInfoByLogex, getPhotoOrderInfo, getPhotoOrderInfoByLogex
...@@ -420,6 +441,10 @@ const formInfo=ref({}) ...@@ -420,6 +441,10 @@ const formInfo=ref({})
420 const type = ref('') 441 const type = ref('')
421 const errorBox = ref(false) 442 const errorBox = ref(false)
422 const hideconfirmbtn = ref(false) 443 const hideconfirmbtn = ref(false)
444 const remark = ref('')
445 const showSJDialog = ref(false)
446 const loading = ref(false)
447 const lpName = ref('')
423 448
424 const user = useUserStore().user 449 const user = useUserStore().user
425 if (useUserStore().user) { 450 if (useUserStore().user) {
...@@ -453,7 +478,9 @@ onMounted(() => { ...@@ -453,7 +478,9 @@ onMounted(() => {
453 break 478 break
454 } 479 }
455 } 480 }
456 481 if(route.query.matchId){
482 matchId.value = route.query.matchId
483 }
457 getData() 484 getData()
458 }) 485 })
459 486
...@@ -583,6 +610,7 @@ function MakeUpOrder(){ ...@@ -583,6 +610,7 @@ function MakeUpOrder(){
583 return booking.getMealOrderInfo({orderId: orderId.value}).then(res => { 610 return booking.getMealOrderInfo({orderId: orderId.value}).then(res => {
584 form.value=res.data 611 form.value=res.data
585 totalFee.value=language.value==0?form.value.total:form.value.totalEn 612 totalFee.value=language.value==0?form.value.total:form.value.totalEn
613 matchId.value = form.value.activeId
586 MakeUpIno() 614 MakeUpIno()
587 console.log(res) 615 console.log(res)
588 }).catch(err => { 616 }).catch(err => {
...@@ -590,7 +618,6 @@ function MakeUpOrder(){ ...@@ -590,7 +618,6 @@ function MakeUpOrder(){
590 errorBox.value = true 618 errorBox.value = true
591 }) 619 })
592 } 620 }
593
594 function MakeUpIno(){ 621 function MakeUpIno(){
595 booking.getMealOrderInfoByLogex({asmId: form.value.asmId}).then(res=>{ 622 booking.getMealOrderInfoByLogex({asmId: form.value.asmId}).then(res=>{
596 formInfo.value=res.data 623 formInfo.value=res.data
...@@ -670,6 +697,48 @@ function handleView(){ ...@@ -670,6 +697,48 @@ function handleView(){
670 proxy.$refs['DialogRef'].open(language.value==0? form.value.details:form.value.detailsEn) 697 proxy.$refs['DialogRef'].open(language.value==0? form.value.details:form.value.detailsEn)
671 } 698 }
672 699
700 function downInvoice() {
701 getremark()
702 if (form.value.receiptFlag == '0') {
703 showSJDialog.value = true
704 } else {
705 showSJ()
706 }
707 }
708
709 function getremark(){
710 getBaseInfoByActiveId(matchId.value).then(res => {
711 if (res.data) {
712 remark.value = res.data.remarks
713 }
714 })
715 }
716 function submitSJ() {
717 loading.value = true
718 ElMessageBox.confirm(language.value == 0 ? '提交后无法修改开票人,确认提交吗?' : 'Confirm to submit ?', {
719 confirmButtonText: language.value == 0 ? '确定' : 'Confirm',
720 cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
721 type: 'warning'
722 }).then(() => {
723 showSJ()
724 })
725 }
726 const showSJ = () => {
727 // 查看电子收据预览信息
728 var obj = {
729 orderId: orderId.value,
730 type: 1
731 }
732 if (form.value.receiptFlag == '0') {
733 obj.receiptInfo = lpName.value
734 }
735 // 报名
736 proxy.download(`/ota/norder/getReceipt/${obj.orderId}`, {
737 ...obj
738 }, `Receipt_${new Date().getTime()}.pdf`)
739 showSJDialog.value = false
740 getData()
741 }
673 </script> 742 </script>
674 743
675 <style scoped lang="scss"> 744 <style scoped lang="scss">
......
...@@ -152,7 +152,8 @@ function goDetail(b) { ...@@ -152,7 +152,8 @@ function goDetail(b) {
152 name: 'bookingPay', 152 name: 'bookingPay',
153 query: { 153 query: {
154 orderId: b.id, 154 orderId: b.id,
155 orderType: b.orderType 155 orderType: b.orderType,
156 activeId:b.activeId
156 } 157 }
157 }) 158 })
158 } 159 }
......
1 <template> 1 <template>
2 <el-dialog 2 <el-dialog
3 v-model="show" :close-on-click-modal="false" :title="language==0?'背号查询':'Back Number'" append-to-body 3 v-model="show" :close-on-click-modal="false" :title="language==0?'背号查询':'Competition Number'" append-to-body
4 center class="pcloginpop" 4 center class="pcloginpop"
5 close-icon="CircleClose" destroy-on-close 5 close-icon="CircleClose" destroy-on-close
6 width="460px" 6 width="460px"
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
8 <div style="min-height: 300px"> 8 <div style="min-height: 300px">
9 9
10 <div v-if="!type||type==''"> 10 <div v-if="!type||type==''">
11 <div @click="type='0'" class="rItem">个人查询</div> 11 <div @click="type='0'" class="rItem">{{ language == 0 ? '个人查询':'Personal Query' }}</div>
12 <div @click="type='1'" class="rItem">团队查询</div> 12 <div @click="type='1'" class="rItem">{{ language == 0 ? '团队查询':'Team Query' }}</div>
13 </div> 13 </div>
14 14
15 <div v-if="type=='0'"> 15 <div v-if="type=='0'">
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
59 {{language == 0 ? '查询' : 'Search' }} 59 {{language == 0 ? '查询' : 'Search' }}
60 </el-button> 60 </el-button>
61 </div> 61 </div>
62 <span class="tip">*模糊查询</span> 62 <span class="tip">*{{ language == 0 ?'模糊查询':'Fuzzy query' }}</span>
63 63
64 <div v-if="teamlist.length>0" class="temell mt20"> 64 <div v-if="teamlist.length>0" class="temell mt20">
65 <el-collapse v-model="activeNames" accordion> 65 <el-collapse v-model="activeNames" accordion>
......
...@@ -313,7 +313,7 @@ ...@@ -313,7 +313,7 @@
313 </div> 313 </div>
314 <div> 314 <div>
315 <a target="_blank" class="text-primary" 315 <a target="_blank" class="text-primary"
316 href="https://wdsfwuxicenter.com/stage-api/fs/file/Schedule-WDSF_ASIAN_DANCESPORT_FESTIVAL_2024.WUXI.pdf"> 316 href="https://wdsfwuxicenter.com/stage-api/fs/file/WUXI_COMPETITION_TIMETABLE.pdf">
317 <el-icon style="position: relative;top: 2px"> 317 <el-icon style="position: relative;top: 2px">
318 <download/> 318 <download/>
319 </el-icon> 319 </el-icon>
......
...@@ -142,7 +142,7 @@ ...@@ -142,7 +142,7 @@
142 <!-- <a class="zn-btn ml20 btn-q forPc" v-show="matchData?.id=='1778253367748993026'" style="font-size: 15px;margin-right: 20px" @click="popMaster">--> 142 <!-- <a class="zn-btn ml20 btn-q forPc" v-show="matchData?.id=='1778253367748993026'" style="font-size: 15px;margin-right: 20px" @click="popMaster">-->
143 <!-- Junior &Youth Camp REGISTER<el-icon><Edit /></el-icon>--> 143 <!-- Junior &Youth Camp REGISTER<el-icon><Edit /></el-icon>-->
144 <!-- </a>--> 144 <!-- </a>-->
145 <a class="zn-btn ml20 btn-q" v-show="matchData?.id=='1778253367748993026'" @click="backNumberSearch">Back Number</a> 145 <a class="zn-btn ml20 btn-q" v-show="matchData?.id=='1778253367748993026'" @click="backNumberSearch">Competition Number</a>
146 <!-- <div>--> 146 <!-- <div>-->
147 <!-- <a class=" ding" style="font-size: 15px;margin-top: 10px" @click="handlePickup">Pick-up/drop-off service--> 147 <!-- <a class=" ding" style="font-size: 15px;margin-top: 10px" @click="handlePickup">Pick-up/drop-off service-->
148 <!-- </a>--> 148 <!-- </a>-->
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
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 12
13 <div class="pd20" v-if="user.utype=='1'&&myMemberTable.length>0"> 13 <div class="pd20" v-if="user.utype=='1'&&myMemberTable.length>0">
14 <div class="leftboderTT">{{ language==0?'随行人员清单':'List of accompanying personnel' }} 14 <div class="leftboderTT">{{ language == 0 ? '随行人员清单' : 'List of accompanying personnel' }}
15 </div> 15 </div>
16 <div> 16 <div>
17 <el-table class="mt20" :data="myMemberTable" border> 17 <el-table class="mt20" :data="myMemberTable" border>
...@@ -19,8 +19,8 @@ ...@@ -19,8 +19,8 @@
19 <el-table-column :label="language=='1'?'Surname':'姓氏'" prop="xing" min-width="100"/> 19 <el-table-column :label="language=='1'?'Surname':'姓氏'" prop="xing" min-width="100"/>
20 <el-table-column :label="language=='0'?'名':'Name'" prop="ming" min-width="100"/> 20 <el-table-column :label="language=='0'?'名':'Name'" prop="ming" min-width="100"/>
21 <el-table-column :label="language==0?'国家/地区':'Nationality'" prop="countryName" min-width="100"/> 21 <el-table-column :label="language==0?'国家/地区':'Nationality'" prop="countryName" min-width="100"/>
22 <!-- <el-table-column :label="language=='1'?'Passport number':'护照号'" prop="idcCode" min-width="120"/>--> 22 <!-- <el-table-column :label="language=='1'?'Passport number':'护照号'" prop="idcCode" min-width="120"/>-->
23 <!-- <el-table-column :label="language=='1'?'Birthday':'生日'" prop="birth"/>--> 23 <!-- <el-table-column :label="language=='1'?'Birthday':'生日'" prop="birth"/>-->
24 <el-table-column :label="language=='1'?'Gender':'性别'" prop="sexStr"/> 24 <el-table-column :label="language=='1'?'Gender':'性别'" prop="sexStr"/>
25 <el-table-column :label="language=='1'?'Role':'角色'" min-width="160"> 25 <el-table-column :label="language=='1'?'Role':'角色'" min-width="160">
26 <template #default="scope"> 26 <template #default="scope">
...@@ -63,28 +63,45 @@ ...@@ -63,28 +63,45 @@
63 </div> 63 </div>
64 <el-row class="priceBar"> 64 <el-row class="priceBar">
65 <el-col :lg="12" :xs="24" class="pl-15"> 65 <el-col :lg="12" :xs="24" class="pl-15">
66 <el-link class="mr10" type="primary" @click="exportSignList(1)"><el-icon><Upload /></el-icon> 66 <el-link class="mr10" type="primary" @click="exportSignList(1)">
67 {{ language==0?'导出参赛人员清单':'Export Participant List' }}</el-link> 67 <el-icon>
68 <el-link class="mr10" type="primary" @click="exportSignList(2)"><el-icon><Upload /></el-icon> 68 <Upload/>
69 {{ language==0?'导出设项报名清单':'Export LIST OF REGISTERED COMPETITIONS' }}</el-link> 69 </el-icon>
70 {{ language == 0 ? '导出参赛人员清单' : 'Export Participant List' }}
71 </el-link>
72 <el-link class="mr10" type="primary" @click="exportSignList(2)">
73 <el-icon>
74 <Upload/>
75 </el-icon>
76 {{ language == 0 ? '导出设项报名清单' : 'Export LIST OF REGISTERED COMPETITIONS' }}
77 </el-link>
70 78
71 <el-link type="primary" @click="exportPdf"><el-icon><Upload /></el-icon> 79 <el-link type="primary" @click="exportPdf">
72 {{ language==0?'导出pdf':'Export PDF' }} 80 <el-icon>
81 <Upload/>
82 </el-icon>
83 {{ language == 0 ? '导出pdf' : 'Export PDF' }}
73 </el-link> 84 </el-link>
74 </el-col> 85 </el-col>
75 <el-col :lg="12" :xs="24"> 86 <el-col :lg="12" :xs="24">
76 <div class="flex" v-if="Number(form.totalFee)>0"> 87 <div class="flex" v-if="Number(form.totalFee)>0">
77 <div class="item" v-if="signInfoList?.length>0"><label>{{ language==0?'参赛服务费':'REGISTRATION FEE' }}:</label><span>{{ language==0?'¥':'€' }}{{serviceFeeTotal}}</span></div> 88 <div class="item" v-if="signInfoList?.length>0"><label>{{
78 <div class="item" v-if="zuTableList?.length>0"><label>{{ language==0?'保险费':'INSURANCE' }}:</label><span>{{ language==0?'¥':'€' }}{{insuranceFeeTotal}}</span></div> 89 language == 0 ? '参赛服务费' : 'REGISTRATION FEE'
79 <div class="item"><label>{{ language==0?'费用总计':'Total Cost' }}:</label><span class="size26">{{ language==0?'¥':'€' }}{{form.totalFee}}</span></div> 90 }}:</label><span>{{ language == 0 ? '¥' : '€' }}{{ serviceFeeTotal }}</span></div>
91 <div class="item" v-if="zuTableList?.length>0"><label>{{
92 language == 0 ? '保险费' : 'INSURANCE'
93 }}:</label><span>{{ language == 0 ? '¥' : '€' }}{{ insuranceFeeTotal }}</span></div>
94 <div class="item"><label>{{ language == 0 ? '费用总计' : 'Total Cost' }}:</label><span
95 class="size26">{{ language == 0 ? '¥' : '€' }}{{ form.totalFee }}</span></div>
80 </div> 96 </div>
81 </el-col> 97 </el-col>
82 </el-row> 98 </el-row>
83 </div> 99 </div>
84 <div v-else class="pd20 skeletonBox"> 100 <div v-else class="pd20 skeletonBox">
85 <el-skeleton :rows="8"/> 101 <el-skeleton :rows="8"/>
86 <el-button type="primary" class="btn-lineG" size="large" :style="language == 0 ?'width:200px':'width:400px'" round @click="showLogin"> 102 <el-button type="primary" class="btn-lineG" size="large" :style="language == 0 ?'width:200px':'width:400px'"
87 {{ language == 0 ?'登录后查看详细报项信息':'View detailed report information after logging in' }} 103 round @click="showLogin">
104 {{ language == 0 ? '登录后查看详细报项信息' : 'View detailed report information after logging in' }}
88 </el-button> 105 </el-button>
89 </div> 106 </div>
90 </el-card> 107 </el-card>
...@@ -94,45 +111,51 @@ ...@@ -94,45 +111,51 @@
94 <el-col :lg="12"> 111 <el-col :lg="12">
95 <div class="text-warning flex" v-if="form.auditStatus=='1'"> 112 <div class="text-warning flex" v-if="form.auditStatus=='1'">
96 <img src="@/assets/img/ing.png"> 113 <img src="@/assets/img/ing.png">
97 {{ language==0?'报名信息审核中':'Registration Information under review' }} 114 {{ language == 0 ? '报名信息审核中' : 'Registration Information under review' }}
98 </div> 115 </div>
99 <div class="text-success flex" v-if="form.auditStatus=='2'"> 116 <div class="text-success flex" v-if="form.auditStatus=='2'">
100 <img src="@/assets/img/r.png"> 117 <img src="@/assets/img/r.png">
101 {{ language==0?'报名信息审核通过':'Registration Information Approved' }} 118 {{ language == 0 ? '报名信息审核通过' : 'Registration Information Approved' }}
102 </div> 119 </div>
103 <div class="text-danger flex" v-if="form.auditStatus=='3'"> 120 <div class="text-danger flex" v-if="form.auditStatus=='3'">
104 <img src="@/assets/img/w.png"> 121 <img src="@/assets/img/w.png">
105 <div> 122 <div>
106 {{ language==0?'报名信息审核拒绝':'Registration Information rejected' }} 123 {{ language == 0 ? '报名信息审核拒绝' : 'Registration Information rejected' }}
107 <div v-if="form.reason" class="rre">{{language==0?'驳回理由':'Reason'}}:{{form.reason}}</div> 124 <div v-if="form.reason" class="rre">{{ language == 0 ? '驳回理由' : 'Reason' }}:{{ form.reason }}</div>
108 </div> 125 </div>
109 </div> 126 </div>
110 <div class="text-danger flex" v-if="form.auditStatus=='4'"> 127 <div class="text-danger flex" v-if="form.auditStatus=='4'">
111 <img src="@/assets/img/w.png"> 128 <img src="@/assets/img/w.png">
112 <div> 129 <div>
113 {{ language==0?'报名已取消':'Registration cancelled' }} 130 {{ language == 0 ? '报名已取消' : 'Registration cancelled' }}
114 </div> 131 </div>
115 </div> 132 </div>
116 </el-col> 133 </el-col>
117 <el-col :lg="12" v-if="Number(form.totalFee)>0"> 134 <el-col :lg="12" v-if="Number(form.totalFee)>0">
118 <div class="priceb" v-if="form.payStatus=='0'">{{ language==0?'待支付金额':'Amount Due' }}:<span class="price">{{ language==0?'¥':'€' }}{{ Number(totalFee).toFixed(2) }}</span></div> 135 <div class="priceb" v-if="form.payStatus=='0'">{{ language == 0 ? '待支付金额' : 'Amount Due' }}:<span
119 <div class="priceb" v-else-if="form.payStatus=='1'">{{ language==0?'线下支付待核销':'Amount Due' }}:<span class="price">{{ language==0?'¥':'€' }}{{ Number(totalFee).toFixed(2) }}</span></div> 136 class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span></div>
120 <div class="priceb" v-else-if="form.payStatus=='3'">{{ language==0?'已支付金额':'Amount Due' }}:<span class="price">{{ language==0?'¥':'€' }}{{ Number(totalFee).toFixed(2) }}</span></div> 137 <div class="priceb" v-else-if="form.payStatus=='1'">{{
121 <div class="priceb" v-else-if="form.payStatus=='5'">{{ language==0?'已退款':'Refunded' }}:<span class="price">{{ language==0?'¥':'€' }}{{ Number(totalFee).toFixed(2) }}</span></div> 138 language == 0 ? '线下支付待核销' : 'Amount Due'
122 <div class="priceb" v-else>{{ language==0?'费用总计':'Amount Due' }}:<span class="price">{{ language==0?'¥':'€' }}{{ Number(totalFee).toFixed(2) }}</span></div> 139 }}:<span class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span></div>
140 <div class="priceb" v-else-if="form.payStatus=='3'">{{ language == 0 ? '已支付金额' : 'Amount Due' }}:<span
141 class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span></div>
142 <div class="priceb" v-else-if="form.payStatus=='5'">{{ language == 0 ? '已退款' : 'Refunded' }}:<span
143 class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span></div>
144 <div class="priceb" v-else>{{ language == 0 ? '费用总计' : 'Amount Due' }}:<span
145 class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span></div>
123 </el-col> 146 </el-col>
124 </el-row> 147 </el-row>
125 </el-card> 148 </el-card>
126 <el-card class="mb60" v-if="form.auditStatus=='2'&&form.payStatus=='0'&&Number(form.totalFee)>0"> 149 <el-card class="mb60" v-if="form.auditStatus=='2'&&form.payStatus=='0'&&Number(form.totalFee)>0">
127 <div class="leftboderTT">{{ language==0?'选择支付方式':'Choose payment method' }}</div> 150 <div class="leftboderTT">{{ language == 0 ? '选择支付方式' : 'Choose payment method' }}</div>
128 <div class="mt20"> 151 <div class="mt20">
129 <el-radio-group v-model="payType" @change="changePaytype"> 152 <el-radio-group v-model="payType" @change="changePaytype">
130 <!-- 0 线下 1 支付宝 2 微信 3 paypal--> 153 <!-- 0 线下 1 支付宝 2 微信 3 paypal-->
131 <!-- <el-radio label="1" border>--> 154 <!-- <el-radio label="1" border>-->
132 <!-- <svg t="1709003181386" class="icon" viewBox="0 0 3283 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="31015" width="100" height="40"><path d="M1163.122759 94.631724H593.92A133.826207 133.826207 0 0 0 459.034483 228.457931v567.084138a133.473103 133.473103 0 0 0 133.826207 133.826207h570.262069a133.826207 133.826207 0 0 0 134.17931-133.826207v-5.296552s-217.864828-90.394483-328.033103-143.36c-73.445517 90.747586-168.783448 145.478621-267.652414 145.478621-167.017931 0-223.514483-145.831724-144.419311-241.875862a169.136552 169.136552 0 0 1 92.16-51.906207c70.62069-17.302069 184.32 10.946207 290.604138 45.903448A587.211034 587.211034 0 0 0 988.689655 429.373793h-328.73931v-32.838621h168.783448V337.213793h-204.446896v-33.191724h204.446896V219.630345a14.124138 14.124138 0 0 1 14.477241-14.477242h82.273104v98.868966h202.328276v33.191724h-202.328276v59.321379h165.252414a677.605517 677.605517 0 0 1-70.62069 176.551725c50.14069 18.008276 94.984828 35.310345 128.529655 46.256551a930.427586 930.427586 0 0 0 147.950345 42.725518V228.457931a133.826207 133.826207 0 0 0-133.473103-133.826207z" fill="#089fe8" p-id="31016"></path><path d="M663.481379 548.016552a162.78069 162.78069 0 0 0-81.566896 30.366896c-64.617931 55.790345-26.129655 158.190345 104.165517 158.190345 75.917241 0 151.481379-48.375172 211.862069-125.704827-85.804138-40.96-156.424828-70.267586-234.46069-62.852414zM2488.673103 225.28h239.757242v47.668966h85.804138V216.805517a22.951724 22.951724 0 0 0-21.892414-23.304827h-139.122759V149.009655h-89.335172v44.137931h-160.662069v79.80138h85.451034zM1882.394483 360.518621h67.442758v247.172413h73.798621V280.011034h-26.835862l55.437241-126.764137H1970.317241l-87.922758 207.271724zM2824.827586 596.391724l-26.835862-90.747586a13.771034 13.771034 0 0 0-13.064827-10.24h-70.62069l20.48 70.62069H2648.275862v-135.944828h164.546207v-32.132414H2648.275862v-63.55862h164.546207v-32.132414h-409.6v32.132414h164.546207v63.55862h-164.546207v32.132414h164.546207V564.965517h-164.546207v32.132414H2824.827586zM2158.521379 323.442759a16.595862 16.595862 0 0 0-15.183448-9.886897h-63.558621l49.434483 156.424828h75.564138z" fill="#089fe8" p-id="31017"></path><path d="M2319.889655 156.777931h-76.623448v80.154483h-188.557241v32.132414h188.557241v287.426206a13.064828 13.064828 0 0 1-12.358621 12.005518h-38.841379v31.77931h99.222069a30.013793 30.013793 0 0 0 28.601379-29.66069V269.064828h31.073104v-32.132414h-31.073104zM1871.448276 577.677241a913.831724 913.831724 0 0 1-168.783448-80.507586 357.34069 357.34069 0 0 0 141.241379-194.56H1694.896552V249.997241h170.195862v-32.83862H1694.896552V150.422069h-75.211035a15.536552 15.536552 0 0 0-15.183448 15.536552v51.2h-169.136552v32.83862h169.136552v52.612414h-141.241379v32.838621h284.248276a278.951724 278.951724 0 0 1-93.572414 127.470345 360.871724 360.871724 0 0 1-93.572414-94.984828H1483.034483a423.724138 423.724138 0 0 0 122.173793 130.295173 662.775172 662.775172 0 0 1-172.667586 77.329655v39.194482A773.296552 773.296552 0 0 0 1653.230345 529.655172 781.771034 781.771034 0 0 0 1871.448276 614.753103zM1553.655172 674.78069l-70.620689 190.675862h35.310345l13.417931-38.488276h70.620689l12.711724 38.488276h35.310345l-70.620689-190.675862z m-12.711724 128.176551l27.188966-79.095172 26.482758 79.095172zM1796.237241 674.78069h-34.251034v190.675862h115.464827v-26.129655h-81.213793v-164.546207zM2003.155862 674.78069h34.251035v190.322758h-34.251035zM2250.328276 674.78069h-74.151724v190.675862h35.310345v-73.445518h39.900689a58.615172 58.615172 0 1 0 0-117.230344z m-2.118621 91.100689H2210.427586v-64.971034h37.782069a31.073103 31.073103 0 0 1 30.366897 32.485517 30.72 30.72 0 0 1-30.366897 32.485517zM2465.015172 674.78069l-70.620689 190.675862h35.310345l13.417931-38.488276h70.620689l12.711724 38.488276h35.310345l-70.620689-190.675862z m-12.711724 128.176551l27.542069-79.095172 27.188966 79.095172zM2716.071724 755.994483l-38.135172-81.213793H2641.213793l57.555862 112.286896v78.388966h33.897931v-78.388966l0.353104-0.353103 57.555862-111.933793h-37.075862l-37.428966 81.213793z" fill="#089fe8" p-id="31018"></path></svg>--> 155 <!-- <svg t="1709003181386" class="icon" viewBox="0 0 3283 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="31015" width="100" height="40"><path d="M1163.122759 94.631724H593.92A133.826207 133.826207 0 0 0 459.034483 228.457931v567.084138a133.473103 133.473103 0 0 0 133.826207 133.826207h570.262069a133.826207 133.826207 0 0 0 134.17931-133.826207v-5.296552s-217.864828-90.394483-328.033103-143.36c-73.445517 90.747586-168.783448 145.478621-267.652414 145.478621-167.017931 0-223.514483-145.831724-144.419311-241.875862a169.136552 169.136552 0 0 1 92.16-51.906207c70.62069-17.302069 184.32 10.946207 290.604138 45.903448A587.211034 587.211034 0 0 0 988.689655 429.373793h-328.73931v-32.838621h168.783448V337.213793h-204.446896v-33.191724h204.446896V219.630345a14.124138 14.124138 0 0 1 14.477241-14.477242h82.273104v98.868966h202.328276v33.191724h-202.328276v59.321379h165.252414a677.605517 677.605517 0 0 1-70.62069 176.551725c50.14069 18.008276 94.984828 35.310345 128.529655 46.256551a930.427586 930.427586 0 0 0 147.950345 42.725518V228.457931a133.826207 133.826207 0 0 0-133.473103-133.826207z" fill="#089fe8" p-id="31016"></path><path d="M663.481379 548.016552a162.78069 162.78069 0 0 0-81.566896 30.366896c-64.617931 55.790345-26.129655 158.190345 104.165517 158.190345 75.917241 0 151.481379-48.375172 211.862069-125.704827-85.804138-40.96-156.424828-70.267586-234.46069-62.852414zM2488.673103 225.28h239.757242v47.668966h85.804138V216.805517a22.951724 22.951724 0 0 0-21.892414-23.304827h-139.122759V149.009655h-89.335172v44.137931h-160.662069v79.80138h85.451034zM1882.394483 360.518621h67.442758v247.172413h73.798621V280.011034h-26.835862l55.437241-126.764137H1970.317241l-87.922758 207.271724zM2824.827586 596.391724l-26.835862-90.747586a13.771034 13.771034 0 0 0-13.064827-10.24h-70.62069l20.48 70.62069H2648.275862v-135.944828h164.546207v-32.132414H2648.275862v-63.55862h164.546207v-32.132414h-409.6v32.132414h164.546207v63.55862h-164.546207v32.132414h164.546207V564.965517h-164.546207v32.132414H2824.827586zM2158.521379 323.442759a16.595862 16.595862 0 0 0-15.183448-9.886897h-63.558621l49.434483 156.424828h75.564138z" fill="#089fe8" p-id="31017"></path><path d="M2319.889655 156.777931h-76.623448v80.154483h-188.557241v32.132414h188.557241v287.426206a13.064828 13.064828 0 0 1-12.358621 12.005518h-38.841379v31.77931h99.222069a30.013793 30.013793 0 0 0 28.601379-29.66069V269.064828h31.073104v-32.132414h-31.073104zM1871.448276 577.677241a913.831724 913.831724 0 0 1-168.783448-80.507586 357.34069 357.34069 0 0 0 141.241379-194.56H1694.896552V249.997241h170.195862v-32.83862H1694.896552V150.422069h-75.211035a15.536552 15.536552 0 0 0-15.183448 15.536552v51.2h-169.136552v32.83862h169.136552v52.612414h-141.241379v32.838621h284.248276a278.951724 278.951724 0 0 1-93.572414 127.470345 360.871724 360.871724 0 0 1-93.572414-94.984828H1483.034483a423.724138 423.724138 0 0 0 122.173793 130.295173 662.775172 662.775172 0 0 1-172.667586 77.329655v39.194482A773.296552 773.296552 0 0 0 1653.230345 529.655172 781.771034 781.771034 0 0 0 1871.448276 614.753103zM1553.655172 674.78069l-70.620689 190.675862h35.310345l13.417931-38.488276h70.620689l12.711724 38.488276h35.310345l-70.620689-190.675862z m-12.711724 128.176551l27.188966-79.095172 26.482758 79.095172zM1796.237241 674.78069h-34.251034v190.675862h115.464827v-26.129655h-81.213793v-164.546207zM2003.155862 674.78069h34.251035v190.322758h-34.251035zM2250.328276 674.78069h-74.151724v190.675862h35.310345v-73.445518h39.900689a58.615172 58.615172 0 1 0 0-117.230344z m-2.118621 91.100689H2210.427586v-64.971034h37.782069a31.073103 31.073103 0 0 1 30.366897 32.485517 30.72 30.72 0 0 1-30.366897 32.485517zM2465.015172 674.78069l-70.620689 190.675862h35.310345l13.417931-38.488276h70.620689l12.711724 38.488276h35.310345l-70.620689-190.675862z m-12.711724 128.176551l27.542069-79.095172 27.188966 79.095172zM2716.071724 755.994483l-38.135172-81.213793H2641.213793l57.555862 112.286896v78.388966h33.897931v-78.388966l0.353104-0.353103 57.555862-111.933793h-37.075862l-37.428966 81.213793z" fill="#089fe8" p-id="31018"></path></svg>-->
133 <!-- </el-radio>--> 156 <!-- </el-radio>-->
134 <el-radio label="2" v-if="form.payTypeArr.indexOf('2')>-1" border> 157 <el-radio label="2" v-if="form.payTypeArr.indexOf('2')>-1" border>
135 <!-- 微信--> 158 <!-- 微信-->
136 <svg t="1709002960407" class="icon" viewBox="0 0 3152 1024" version="1.1" 159 <svg t="1709002960407" class="icon" viewBox="0 0 3152 1024" version="1.1"
137 xmlns="http://www.w3.org/2000/svg" p-id="24747" width="94" height="40"> 160 xmlns="http://www.w3.org/2000/svg" p-id="24747" width="94" height="40">
138 <path 161 <path
...@@ -144,7 +167,7 @@ ...@@ -144,7 +167,7 @@
144 </svg> 167 </svg>
145 </el-radio> 168 </el-radio>
146 <el-radio label="3" v-if="form.payTypeArr.indexOf('0')>-1" border> 169 <el-radio label="3" v-if="form.payTypeArr.indexOf('0')>-1" border>
147 <!-- 线下--> 170 <!-- 线下-->
148 <svg t="1709003441012" class="icon" viewBox="0 0 3527 1024" version="1.1" 171 <svg t="1709003441012" class="icon" viewBox="0 0 3527 1024" version="1.1"
149 xmlns="http://www.w3.org/2000/svg" p-id="32905" width="90" height="40"> 172 xmlns="http://www.w3.org/2000/svg" p-id="32905" width="90" height="40">
150 <path 173 <path
...@@ -174,7 +197,7 @@ ...@@ -174,7 +197,7 @@
174 </svg> 197 </svg>
175 </el-radio> 198 </el-radio>
176 <el-radio label="4" v-if="form.payTypeArr.indexOf('3')>-1" border> 199 <el-radio label="4" v-if="form.payTypeArr.indexOf('3')>-1" border>
177 <!-- paypal--> 200 <!-- paypal-->
178 <svg t="1709002828937" class="icon" viewBox="0 0 4220 1024" version="1.1" 201 <svg t="1709002828937" class="icon" viewBox="0 0 4220 1024" version="1.1"
179 xmlns="http://www.w3.org/2000/svg" p-id="22654" width="94" height="40"> 202 xmlns="http://www.w3.org/2000/svg" p-id="22654" width="94" height="40">
180 <path 203 <path
...@@ -217,7 +240,8 @@ ...@@ -217,7 +240,8 @@
217 </div> 240 </div>
218 <div class="tip text-center text-danger" v-if="language==0"> 241 <div class="tip text-center text-danger" v-if="language==0">
219 支付后不要关闭此窗口,等待确认支付成功. 242 支付后不要关闭此窗口,等待确认支付成功.
220 若长时间未收到支付成功提醒,请刷新页面</div> 243 若长时间未收到支付成功提醒,请刷新页面
244 </div>
221 <div class="tip text-center text-danger" v-else> 245 <div class="tip text-center text-danger" v-else>
222 After payment, do not close this window and wait for confirmation of successful payment. 246 After payment, do not close this window and wait for confirmation of successful payment.
223 <br/> 247 <br/>
...@@ -229,90 +253,110 @@ ...@@ -229,90 +253,110 @@
229 <div v-if="payType == '3'"> 253 <div v-if="payType == '3'">
230 <table class="table-border table" cellpadding="0" cellspacing="0"> 254 <table class="table-border table" cellpadding="0" cellspacing="0">
231 <tr> 255 <tr>
232 <th colspan="2" class="head">{{ language==0?'线下缴费的收款信息':'Offline Payment Collection Information' }}</th> 256 <th colspan="2" class="head">
257 {{ language == 0 ? '线下缴费的收款信息' : 'Offline Payment Collection Information' }}
258 </th>
233 </tr> 259 </tr>
234 <tr> 260 <tr>
235 <th>{{ language==0?'付款金额':'Payment Amount' }}</th> 261 <th>{{ language == 0 ? '付款金额' : 'Payment Amount' }}</th>
236 <td> 262 <td>
237 {{ language==0?'¥':'€' }}{{ totalFee }} 263 {{ language == 0 ? '¥' : '€' }}{{ totalFee }}
238 <div class="text-gray">{{ language==0?'请按照指定金额进行打款':'Please make the payment according to the specified amount' }}</div> 264 <div class="text-gray">{{
265 language == 0 ? '请按照指定金额进行打款' : 'Please make the payment according to the specified amount'
266 }}
267 </div>
239 </td> 268 </td>
240 </tr> 269 </tr>
241 <tr> 270 <tr>
242 <th>{{ language==0?'收款账号':`Receiver's Account Number` }}</th> 271 <th>{{ language == 0 ? '收款账号' : `Receiver's Account Number` }}</th>
243 <td> 272 <td>
244 {{ form.payInformation?.receivingAccount }} 273 {{ form.payInformation?.receivingAccount }}
245 <span v-if="language==0" class="text-primary size12 pointer" @click="copy(form.payInformation?.receivingAccount)">复制25位账号</span> 274 <span v-if="language==0" class="text-primary size12 pointer"
275 @click="copy(form.payInformation?.receivingAccount)">复制25位账号</span>
246 <span v-else class="text-primary size12 pointer" @click="copy(form.payInformation?.receivingAccount)">Copy 25-digit Account Number</span> 276 <span v-else class="text-primary size12 pointer" @click="copy(form.payInformation?.receivingAccount)">Copy 25-digit Account Number</span>
247 <div v-if="language==0" class="text-gray">请勿重复打款</div> 277 <div v-if="language==0" class="text-gray">请勿重复打款</div>
248 <div v-else class="text-gray">Please do not make duplicate payments</div> 278 <div v-else class="text-gray">Please do not make duplicate payments</div>
249 </td> 279 </td>
250 </tr> 280 </tr>
251 <tr> 281 <tr>
252 <th>{{ language==0?'收款公司名':'Name of the Payee Company' }}</th> 282 <th>{{ language == 0 ? '收款公司名' : 'Name of the Payee Company' }}</th>
253 <td>{{ form.payInformation?.receivingCompany }}</td> 283 <td>{{ form.payInformation?.receivingCompany }}</td>
254 </tr> 284 </tr>
255 <tr> 285 <tr>
256 <th>{{ language==0?'开户银行':'Bank Name' }}</th> 286 <th>{{ language == 0 ? '开户银行' : 'Bank Name' }}</th>
257 <td>{{ form.payInformation?.openingBank }}</td> 287 <td>{{ form.payInformation?.openingBank }}</td>
258 </tr> 288 </tr>
259 <tr> 289 <tr>
260 <th>{{ language==0?'备注信息':'Remarks' }}</th> 290 <th>{{ language == 0 ? '备注信息' : 'Remarks' }}</th>
261 <td> 291 <td>
262 {{ form.payInformation?.remarks }} 292 {{ form.payInformation?.remarks }}
263 </td> 293 </td>
264 </tr> 294 </tr>
265 <tr> 295 <tr>
266 <th>{{ language==0?'联系人':'Contacts' }}</th> 296 <th>{{ language == 0 ? '联系人' : 'Contacts' }}</th>
267 <td> 297 <td>
268 {{ form.payInformation?.contacts }} 298 {{ form.payInformation?.contacts }}
269 </td> 299 </td>
270 </tr> 300 </tr>
271 <tr> 301 <tr>
272 <th>{{ language==0?'联系电话':'Telephone' }}</th> 302 <th>{{ language == 0 ? '联系电话' : 'Telephone' }}</th>
273 <td>{{ form.payInformation?.contactPhone }}</td> 303 <td>{{ form.payInformation?.contactPhone }}</td>
274 </tr> 304 </tr>
275 <tr> 305 <tr>
276 <th>{{ language==0?'操作':'Actions' }}</th> 306 <th>{{ language == 0 ? '操作' : 'Actions' }}</th>
277 <td> 307 <td>
278 <file-upload :limit="1" v-model="voucherObj" :button-type="1" :is-show-tip="false" :button-text="language==0?'上传汇款单':'Upload Remittance Receipt'"/> 308 <file-upload :limit="1" v-model="voucherObj" :button-type="1" :is-show-tip="false"
279 <span v-if="language==0" class="text-danger size12">*您可以在上传汇款单完成后,与联系人进行电话确认。具体缴费结果,可以在个人中心-我的报名中查看进度</span> 309 :button-text="language==0?'上传汇款单':'Upload Remittance Receipt'"/>
310 <span v-if="language==0"
311 class="text-danger size12">*您可以在上传汇款单完成后,与联系人进行电话确认。具体缴费结果,可以在个人中心-我的报名中查看进度</span>
280 <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> 312 <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>
281 </td> 313 </td>
282 </tr> 314 </tr>
283 </table> 315 </table>
284 316
285 <div class="text-center"> 317 <div class="text-center">
286 <el-button type="primary" @click="upRR" round class="btn-lineG w200px">{{ language==0?'保存':'Save' }}</el-button> 318 <el-button type="primary" @click="upRR" round class="btn-lineG w200px">{{
319 language == 0 ? '保存' : 'Save'
320 }}
321 </el-button>
287 </div> 322 </div>
288 </div> 323 </div>
289 <div class="text-center mt20" v-else> 324 <div class="text-center mt20" v-else>
290 <el-button v-if="!hideconfirmbtn" type="primary" @click="goPay" round class="btn-lineG w200px"> 325 <el-button v-if="!hideconfirmbtn" type="primary" @click="goPay" round class="btn-lineG w200px">
291 {{ language==0?'确定':'Submit' }}</el-button> 326 {{ language == 0 ? '确定' : 'Submit' }}
327 </el-button>
292 </div> 328 </div>
293 </div> 329 </div>
294 </el-card> 330 </el-card>
295 <el-card class="mb60" v-if="form.payStatus == '3'"> 331 <el-card class="mb60">
296 <div class="text-center"> 332 <div class="text-center" v-if="form.payStatus == '3'">
297 <el-icon color="#32B16C" size="80"><SuccessFilled /></el-icon> 333 <el-icon color="#32B16C" size="80">
298 <p class="text-success">{{ language==0?'支付成功':'successful!' }}</p> 334 <SuccessFilled/>
299 <h3 class="wePrice">{{ language==0?'¥':'€' }}{{form.totalFee || 0}}</h3> 335 </el-icon>
336 <p class="text-success">{{ language == 0 ? '支付成功' : 'successful!' }}</p>
337 <h3 class="wePrice">{{ language == 0 ? '¥' : '€' }}{{ form.totalFee || 0 }}</h3>
338
339 <el-button type="primary" round class="btn-lineG w200px" @click="downInvoice">
340 {{ language == 0 ? '下载收据' : 'DownLoad Invoice' }}
341 </el-button>
300 </div> 342 </div>
301 </el-card> 343 </el-card>
302 <el-card class="mb60" v-if="form.payStatus == '1' && form.curPayType=='2'"> 344 <el-card class="mb60" v-if="form.payStatus == '1' && form.curPayType=='2'">
303 <!-- 线下支付待核销--> 345 <!-- 线下支付待核销-->
304 <label>{{ language==0?'线下支付':'Offline Payment' }}</label> 346 <label>{{ language == 0 ? '线下支付' : 'Offline Payment' }}</label>
305 <div class="text-center"> 347 <div class="text-center">
306 <el-icon color="#32B16C" size="80"><SuccessFilled /></el-icon> 348 <el-icon color="#32B16C" size="80">
307 <p class="text-success">{{ language==0?'支付成功':'successfully!' }}</p> 349 <SuccessFilled/>
308 <h3 class="wePrice">{{ language==0?'¥':'€' }}{{form.totalFee}}</h3> 350 </el-icon>
309 <span v-if="language==0" class="text-danger size12">*您可以在上传汇款单完成后,与联系人进行电话确认。具体缴费结果,可以在个人中心-我的报名中查看进度</span> 351 <p class="text-success">{{ language == 0 ? '支付成功' : 'successfully!' }}</p>
352 <h3 class="wePrice">{{ language == 0 ? '¥' : '€' }}{{ form.totalFee }}</h3>
353 <span v-if="language==0"
354 class="text-danger size12">*您可以在上传汇款单完成后,与联系人进行电话确认。具体缴费结果,可以在个人中心-我的报名中查看进度</span>
310 <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> 355 <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>
311 </div> 356 </div>
312 </el-card> 357 </el-card>
313 </div> 358 </div>
314 359
315
316 <div class="box" v-if="errorBox"> 360 <div class="box" v-if="errorBox">
317 <el-result 361 <el-result
318 icon="error" 362 icon="error"
...@@ -320,10 +364,31 @@ ...@@ -320,10 +364,31 @@
320 :sub-title="language==0?'请确认订单号是否正确':'Please confirm if the order number is correct'" 364 :sub-title="language==0?'请确认订单号是否正确':'Please confirm if the order number is correct'"
321 > 365 >
322 <template #extra> 366 <template #extra>
323 <el-button type="primary" @click="goHome" class="btn-lineG w200px" round>{{ language==0?'返回首页':'Home' }}</el-button> 367 <el-button type="primary" @click="goHome" class="btn-lineG w200px" round>
368 {{ language == 0 ? '返回首页' : 'Home' }}
369 </el-button>
324 </template> 370 </template>
325 </el-result> 371 </el-result>
326 </div> 372 </div>
373
374 <el-dialog :title="language==0?'开收据':'Issue a receipt'" v-model="showSJDialog" width="460px"
375 :close-on-click-modal="false" :close-on-press-escape="false">
376 <div class="flex">
377 <el-form-item :label="language==0?'开票人':'Name'">
378 <div class="flex">
379 <el-input v-model="lpName" :placeholder="language==0?'请输入开票人':'Please enter your name'"></el-input>
380 <el-button type="primary" @click="submitSJ">{{ language == 0 ? '提交并下载' : 'Submit' }}</el-button>
381 </div>
382 </el-form-item>
383 </div>
384 <div class="tip mt20">
385 <label>{{ language == 0 ? '开电子收据须知' : 'Receipt notice' }}:</label>
386 <div class="pd10">
387 {{ remark }}
388 </div>
389 </div>
390 </el-dialog>
391
327 </div> 392 </div>
328 </template> 393 </template>
329 394
...@@ -331,9 +396,10 @@ ...@@ -331,9 +396,10 @@
331 import {Search} from "@element-plus/icons-vue" 396 import {Search} from "@element-plus/icons-vue"
332 import {getCurrentInstance, ref} from 'vue' 397 import {getCurrentInstance, ref} from 'vue'
333 import {onMounted} from "@vue/runtime-core" 398 import {onMounted} from "@vue/runtime-core"
334 import {useRoute,useRouter} from "vue-router" 399 import {useRoute, useRouter} from "vue-router"
335 import * as match from "@/apiPc/match" 400 import * as match from "@/apiPc/match"
336 import MatchInfoRow from "@/viewsPc/match/components/matchInfo-row"; 401 import MatchInfoRow from "@/viewsPc/match/components/matchInfo-row";
402
337 const {proxy} = getCurrentInstance() 403 const {proxy} = getCurrentInstance()
338 const route = useRoute() 404 const route = useRoute()
339 const router = useRouter() 405 const router = useRouter()
...@@ -348,9 +414,11 @@ import ZuTable from "@/viewsPc/match/components/zu-table"; ...@@ -348,9 +414,11 @@ import ZuTable from "@/viewsPc/match/components/zu-table";
348 import useUserStore from "@/store/modules/user"; 414 import useUserStore from "@/store/modules/user";
349 import FileUpload from "@/components/FileUpload"; 415 import FileUpload from "@/components/FileUpload";
350 import {useStorage} from "@vueuse/core/index"; 416 import {useStorage} from "@vueuse/core/index";
351 import {ElMessage} from "element-plus"; 417 import {ElMessage, ElMessageBox} from "element-plus";
418 import {getBaseInfoByActiveId, getReceipt} from "@/apiPc/booking";
419
352 const isLogin = ref(false) 420 const isLogin = ref(false)
353 const language= useStorage('language',0) 421 const language = useStorage('language', 0)
354 const signInfoList = ref([]) 422 const signInfoList = ref([])
355 const zuTableList = ref([]) 423 const zuTableList = ref([])
356 const totalFee = ref('') 424 const totalFee = ref('')
...@@ -359,7 +427,7 @@ const form = ref({}) ...@@ -359,7 +427,7 @@ const form = ref({})
359 const voucherObj = ref([]) 427 const voucherObj = ref([])
360 const myMemberTable = ref([]) 428 const myMemberTable = ref([])
361 const upForm = ref({ 429 const upForm = ref({
362 orderId:orderId.value 430 orderId: orderId.value
363 }) 431 })
364 const errorBox = ref(false) 432 const errorBox = ref(false)
365 const hideconfirmbtn = ref(false) 433 const hideconfirmbtn = ref(false)
...@@ -371,17 +439,21 @@ const zuQuery = ref({ ...@@ -371,17 +439,21 @@ const zuQuery = ref({
371 groupId: groupId.value 439 groupId: groupId.value
372 }) 440 })
373 const user = useUserStore().user 441 const user = useUserStore().user
442 const remark = ref('')
443 const showSJDialog = ref(false)
444 const loading = ref(false)
445 const lpName = ref('')
374 console.log(route.query.orderId) 446 console.log(route.query.orderId)
375 // 1763462073870237698 447 // 1763462073870237698
376 onMounted(() => { 448 onMounted(() => {
377 if (route.query.orderId) { 449 if (route.query.orderId) {
378 getData() 450 getData()
379 } 451 }
380 if(route.query.lang){ 452 if (route.query.lang) {
381 if(route.query.lang=='ZH'){ 453 if (route.query.lang == 'ZH') {
382 language.value = 0 454 language.value = 0
383 } 455 }
384 if(route.query.lang=='EN'){ 456 if (route.query.lang == 'EN') {
385 language.value = 1 457 language.value = 1
386 } 458 }
387 } 459 }
...@@ -397,137 +469,147 @@ onMounted(() => { ...@@ -397,137 +469,147 @@ onMounted(() => {
397 if (useUserStore().user) { 469 if (useUserStore().user) {
398 isLogin.value = true 470 isLogin.value = true
399 } 471 }
472
400 function getData() { 473 function getData() {
401 return match.getMyOrderDetail({orderId:orderId.value}).then(res => { 474 return match.getMyOrderDetail({orderId: orderId.value}).then(res => {
402 totalFee.value = res.data.totalFee 475 totalFee.value = res.data.totalFee
403 form.value = res.data 476 form.value = res.data
404 form.value.payTypeArr = res.data.payType.split(',') 477 form.value.payTypeArr = res.data.payType.split(',')
405 matchId.value = form.value.cptId 478 matchId.value = form.value.cptId
406 groupId.value = form.value.groupId || 0 479 groupId.value = form.value.groupId || 0
407 zuQuery.value.groupId = groupId.value 480 zuQuery.value.groupId = groupId.value
408 zuQuery.value.cptId = matchId.value 481 zuQuery.value.cptId = matchId.value
409 if(isLogin.value){ 482 if (isLogin.value) {
410 getSignList() 483 getSignList()
411 if(user.utype=='1'){ 484 if (user.utype == '1') {
412 getMyMemberTable() 485 getMyMemberTable()
413 } 486 }
414 } 487 }
415 }).catch(err=>{ 488 }).catch(err => {
416 console.log(err) 489 console.log(err)
417 errorBox.value = true 490 errorBox.value = true
418 }) 491 })
419 } 492 }
493
420 function getMyMemberTable() { 494 function getMyMemberTable() {
421 match.getPerPersonList({cptId: matchId.value, searchLabels: '1,2,3,4,5,6'}, user.userId).then(res => { 495 match.getPerPersonList({cptId: matchId.value, searchLabels: '1,2,3,4,5,6'}, user.userId).then(res => {
422 myMemberTable.value = res.rows 496 myMemberTable.value = res.rows
423 }) 497 })
424 } 498 }
499
425 function upRR() { 500 function upRR() {
426 if(voucherObj.value.length==0){ 501 if (voucherObj.value.length == 0) {
427 ElMessage.warning(language.value==0?'请上传凭证':'Please upload the voucher') 502 ElMessage.warning(language.value == 0 ? '请上传凭证' : 'Please upload the voucher')
428 return 503 return
429 } 504 }
430 upForm.value.voucher = voucherObj.value[0].url 505 upForm.value.voucher = voucherObj.value[0].url
431 match.upReceipt(upForm.value).then(res=>{ 506 match.upReceipt(upForm.value).then(res => {
432 getData() 507 getData()
433 }) 508 })
434 } 509 }
510
435 function getSignList() { 511 function getSignList() {
436 match.getMySignInfoList(zuQuery.value).then(res => { 512 match.getMySignInfoList(zuQuery.value).then(res => {
437 insuranceFeeTotal.value = 0 513 insuranceFeeTotal.value = 0
438 serviceFeeTotal.value = 0 514 serviceFeeTotal.value = 0
439 signInfoList.value = res.data?.singleData || [] 515 signInfoList.value = res.data?.singleData || []
440 zuTableList.value = res.data?.zuData || [] 516 zuTableList.value = res.data?.zuData || []
441 for(var s of signInfoList.value){ 517 for (var s of signInfoList.value) {
442 insuranceFeeTotal.value = insuranceFeeTotal.value + Number(s.insuranceFee) 518 insuranceFeeTotal.value = insuranceFeeTotal.value + Number(s.insuranceFee)
443 } 519 }
444 for(var z of zuTableList.value){ 520 for (var z of zuTableList.value) {
445 serviceFeeTotal.value = serviceFeeTotal.value + Number(z.project.serviceFee) 521 serviceFeeTotal.value = serviceFeeTotal.value + Number(z.project.serviceFee)
446 } 522 }
447 }).catch(err=>{ 523 }).catch(err => {
448 if(isLogin.value){ 524 if (isLogin.value) {
449 router.push({name:'myMatch'}) 525 router.push({name: 'myMatch'})
450 return 526 return
451 } 527 }
452 }) 528 })
453 } 529 }
530
454 function goHome() { 531 function goHome() {
455 router.push('/') 532 router.push('/')
456 } 533 }
534
457 function changePaytype() { 535 function changePaytype() {
458 hideconfirmbtn.value = false 536 hideconfirmbtn.value = false
459 wePayCodeUrl.value = '' 537 wePayCodeUrl.value = ''
460 if(handle) { 538 if (handle) {
461 clearTimeout(handle) 539 clearTimeout(handle)
462 handle=null 540 handle = null
463 } 541 }
464 } 542 }
465 function goPay(){ 543
466 if(payType.value=='2' && form.value.payTypeArr.indexOf('2')>-1){ 544 function goPay() {
467 if(isphone.value){ 545 if (payType.value == '2' && form.value.payTypeArr.indexOf('2') > -1) {
546 if (isphone.value) {
468 //拉起移动支付 547 //拉起移动支付
469 match.createWePayPhone({orderId:orderId.value}).then(res=>{ 548 match.createWePayPhone({orderId: orderId.value}).then(res => {
470 hideconfirmbtn.value = true 549 hideconfirmbtn.value = true
471 window.location.href = res.data 550 window.location.href = res.data
472 }) 551 })
473 } else { 552 } else {
474 match.createWePay({orderId:orderId.value}).then(res=>{ 553 match.createWePay({orderId: orderId.value}).then(res => {
475 wePayCodeUrl.value = res.data 554 wePayCodeUrl.value = res.data
476 hideconfirmbtn.value = true 555 hideconfirmbtn.value = true
477 startforGetData() 556 startforGetData()
478 }) 557 })
479 } 558 }
480 } else if(payType.value=='2' && form.value.payTypeArr.indexOf('2')==-1){ 559 } else if (payType.value == '2' && form.value.payTypeArr.indexOf('2') == -1) {
481 ElMessage.warning(language.value == 0 ? '请选择支付方式' : 'Please select payment method') 560 ElMessage.warning(language.value == 0 ? '请选择支付方式' : 'Please select payment method')
482 return 561 return
483 } 562 }
484 if(payType.value=='4'){ 563 if (payType.value == '4') {
485 match.createPalPay({orderId:orderId.value}).then(res=>{ 564 match.createPalPay({orderId: orderId.value}).then(res => {
486 if(res.data){ 565 if (res.data) {
487 location.href=res.data 566 location.href = res.data
488 } 567 }
489 }) 568 })
490 } 569 }
491 } 570 }
571
492 let handle; 572 let handle;
573
493 function startforGetData() { 574 function startforGetData() {
494 handle= setTimeout(()=>{ 575 handle = setTimeout(() => {
495 getData().then(()=>{ 576 getData().then(() => {
496 if( form.value.payTime){ 577 if (form.value.payTime) {
497 if(handle) { 578 if (handle) {
498 clearTimeout(handle) 579 clearTimeout(handle)
499 handle=null 580 handle = null
500 } 581 }
501 }else{ 582 } else {
502 startforGetData() 583 startforGetData()
503 } 584 }
504 }) 585 })
505 },2000) 586 }, 2000)
506 } 587 }
507 588
508 function showLogin(){ 589 function showLogin() {
509 useUserStore().setReLogin() 590 useUserStore().setReLogin()
510 } 591 }
592
511 function exportSignList(n) { 593 function exportSignList(n) {
512 var obj = { 594 var obj = {
513 cptId: matchId.value, 595 cptId: matchId.value,
514 groupId: groupId.value, 596 groupId: groupId.value,
515 type:n 597 type: n
516 } 598 }
517 var fileName 599 var fileName
518 if(language.value==0){ 600 if (language.value == 0) {
519 if(n==1){ 601 if (n == 1) {
520 fileName = '参赛人员清单' 602 fileName = '参赛人员清单'
521 }else { 603 } else {
522 fileName = '设项报名清单' 604 fileName = '设项报名清单'
523 } 605 }
524 proxy.download('/league/sign/exportCn', { 606 proxy.download('/league/sign/exportCn', {
525 ...obj 607 ...obj
526 }, `${fileName}_${new Date().getTime()}.xlsx`) 608 }, `${fileName}_${new Date().getTime()}.xlsx`)
527 } else { 609 } else {
528 if(n==1){ 610 if (n == 1) {
529 fileName = 'Participant List' 611 fileName = 'Participant List'
530 }else { 612 } else {
531 fileName = 'LIST OF REGISTERED COMPETITIONS' 613 fileName = 'LIST OF REGISTERED COMPETITIONS'
532 } 614 }
533 proxy.download('/league/sign/exportEn', { 615 proxy.download('/league/sign/exportEn', {
...@@ -536,13 +618,14 @@ function exportSignList(n) { ...@@ -536,13 +618,14 @@ function exportSignList(n) {
536 } 618 }
537 619
538 } 620 }
621
539 function exportPdf() { 622 function exportPdf() {
540 var obj = { 623 var obj = {
541 cptId: matchId.value, 624 cptId: matchId.value,
542 groupId: groupId.value 625 groupId: groupId.value
543 } 626 }
544 var fileName 627 var fileName
545 if(language.value==0){ 628 if (language.value == 0) {
546 fileName = '设项报名清单' 629 fileName = '设项报名清单'
547 proxy.download('/pdf/exportMySignInfoList', { 630 proxy.download('/pdf/exportMySignInfoList', {
548 ...obj 631 ...obj
...@@ -555,19 +638,93 @@ function exportPdf() { ...@@ -555,19 +638,93 @@ function exportPdf() {
555 } 638 }
556 639
557 } 640 }
641
558 function copy(str) { 642 function copy(str) {
559 navigator.clipboard.writeText(str).then(() => { 643 navigator.clipboard.writeText(str).then(() => {
560 ElMessage.success(language.value==0?'复制成功':'Copy successfully') 644 ElMessage.success(language.value == 0 ? '复制成功' : 'Copy successfully')
645 })
646 }
647
648 function downInvoice() {
649 getremark()
650 if (form.value.receiptFlag == '0') {
651 showSJDialog.value = true
652 } else {
653 showSJ()
654 }
655 }
656
657 function getremark() {
658 getBaseInfoByActiveId(matchId.value).then(res => {
659 if (res.data) {
660 remark.value = res.data.remarks
661 }
561 }) 662 })
562 } 663 }
664
665 function submitSJ() {
666 loading.value = true
667 ElMessageBox.confirm(language.value == 0 ? '提交后无法修改开票人,确认提交吗?' : 'Confirm to submit ?', {
668 confirmButtonText: language.value == 0 ? '确定' : 'Confirm',
669 cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
670 type: 'warning'
671 }).then(() => {
672 showSJ()
673 })
674 }
675
676 function downloadAndSend() {
677 getReceipt({
678 orderId: orderId.value,
679 receiptInfo: lpName.value,
680 type: 1
681 }).then(res => {
682 loading.value = false
683 ElMessageBox.confirm(language.value == 0 ? `已发送至您的邮箱 ${user.userName},请注意查收` : `A receipt has been sent to your email ${user.userName}, please check it`, {
684 confirmButtonText: language.value == 0 ? '确定' : 'Confirm',
685 cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
686 type: 'warning'
687 }).then(() => {
688 showSJDialog.value = false
689 showSJ()
690 })
691 }).catch(err => {
692 loading.value = false
693 })
694 }
695
696 const showSJ = () => {
697 // 查看电子收据预览信息
698 var obj = {
699 orderId: form.value.oid,
700 type: 1
701 }
702 if (form.value.receiptFlag == '0') {
703 obj.receiptInfo = lpName.value
704 }
705 // 报名
706 proxy.download(`/league/signOrder/getReceipt/${obj.orderId}`, {
707 ...obj
708 }, `Receipt_${new Date().getTime()}.pdf`)
709 showSJDialog.value = false
710 getData()
711 }
563 </script> 712 </script>
564 713
565 <style scoped lang="scss"> 714 <style scoped lang="scss">
566 .wePrice{font-size: 24px;font-weight: 400;} 715 .wePrice {
716 font-size: 24px;
717 font-weight: 400;
718 }
719
567 .el-radio.is-bordered { 720 .el-radio.is-bordered {
568 height: 40px; 721 height: 40px;
569 } 722 }
570 .border{border: 1px solid #e1e1e1;} 723
724 .border {
725 border: 1px solid #e1e1e1;
726 }
727
571 .leftboderTT { 728 .leftboderTT {
572 font-weight: 600; 729 font-weight: 600;
573 font-size: 16px; 730 font-size: 16px;
...@@ -649,22 +806,60 @@ function copy(str) { ...@@ -649,22 +806,60 @@ function copy(str) {
649 } 806 }
650 } 807 }
651 } 808 }
652 .skeletonBox{position: relative;overflow: hidden; 809
653 .btn-lineG{position: absolute;left: 0;right: 0;margin: auto;top: 0;bottom: 0; 810 .skeletonBox {
654 width: 200px;box-shadow: 0 0 1000px 500px rgba(255,255,255,0.5); 811 position: relative;
812 overflow: hidden;
813
814 .btn-lineG {
815 position: absolute;
816 left: 0;
817 right: 0;
818 margin: auto;
819 top: 0;
820 bottom: 0;
821 width: 200px;
822 box-shadow: 0 0 1000px 500px rgba(255, 255, 255, 0.5);
655 823
656 } 824 }
657 } 825 }
658 826
659 .payImgbox{text-align: center;border: 1px solid #fff;padding: 20px;} 827 .payImgbox {
660 .priceBar{padding: 0 0 20px; 828 text-align: center;
661 .flex{display: flex;justify-content: right;align-items: baseline; 829 border: 1px solid #fff;
662 .item{font-size: 16px;margin-right: 15px; 830 padding: 20px;
663 label{color: #95A1A6;} 831 }
664 span{font-family: DIN Alternate;} 832
833 .priceBar {
834 padding: 0 0 20px;
835
836 .flex {
837 display: flex;
838 justify-content: right;
839 align-items: baseline;
840
841 .item {
842 font-size: 16px;
843 margin-right: 15px;
844
845 label {
846 color: #95A1A6;
847 }
848
849 span {
850 font-family: DIN Alternate;
851 }
665 } 852 }
666 } 853 }
667 .size26{font-size: 26px;} 854
855 .size26 {
856 font-size: 26px;
857 }
858 }
859
860 .rre {
861 color: #333;
862 font-size: 16px;
863 margin-top: 10px
668 } 864 }
669 .rre{color: #333;font-size: 16px;margin-top: 10px}
670 </style> 865 </style>
......
...@@ -83,14 +83,14 @@ export default defineConfig(({ mode, command }) => { ...@@ -83,14 +83,14 @@ export default defineConfig(({ mode, command }) => {
83 }, 83 },
84 '/dev-api': { 84 '/dev-api': {
85 // target: 'http://192.168.1.118:8081/', 85 // target: 'http://192.168.1.118:8081/',
86 // target: 'http://192.168.1.131:8081/', 86 target: 'http://192.168.1.131:8081/',
87 // target: 'https://jijin.wtwuxicenter.com/stage-api', 87 // target: 'https://jijin.wtwuxicenter.com/stage-api',
88 target: 'https://wdsfwuxicenter.com/stage-api/', 88 // target: 'https://wdsfwuxicenter.com/stage-api/',
89 changeOrigin: true, 89 changeOrigin: true,
90 rewrite: (p) => p.replace(/^\/dev-api/, '') 90 rewrite: (p) => p.replace(/^\/dev-api/, '')
91 }, 91 },
92 '/ticket': { 92 '/ticket': {
93 target: 'http://192.168.1.118:8098/', 93 target: 'http://192.168.1.131:8081/',
94 // target: 'http://192.168.1.131:8081/', 94 // target: 'http://192.168.1.131:8081/',
95 // target: 'https://jijin.wtwuxicenter.com/h5', 95 // target: 'https://jijin.wtwuxicenter.com/h5',
96 // target: 'https://ticketh5.wdsfwuxicenter.com/h5/stage-api', 96 // target: 'https://ticketh5.wdsfwuxicenter.com/h5/stage-api',
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!