no message
Showing
9 changed files
with
335 additions
and
107 deletions
| ... | @@ -133,6 +133,13 @@ export function createPalPay(data) { | ... | @@ -133,6 +133,13 @@ export function createPalPay(data) { |
| 133 | data: data | 133 | data: data |
| 134 | }) | 134 | }) |
| 135 | } | 135 | } |
| 136 | export function createOfflinePay(data) { | ||
| 137 | return request({ | ||
| 138 | url: `/ota/norder/offlinePay`, | ||
| 139 | method: 'post', | ||
| 140 | data: data | ||
| 141 | }) | ||
| 142 | } | ||
| 136 | 143 | ||
| 137 | export function callbackPalPay(tradeNo) { | 144 | export function callbackPalPay(tradeNo) { |
| 138 | return request({ | 145 | return request({ |
| ... | @@ -143,6 +150,14 @@ export function callbackPalPay(tradeNo) { | ... | @@ -143,6 +150,14 @@ export function callbackPalPay(tradeNo) { |
| 143 | } | 150 | } |
| 144 | }) | 151 | }) |
| 145 | } | 152 | } |
| 153 | //对公 上传凭证 | ||
| 154 | export function renewalProof(data) { | ||
| 155 | return request({ | ||
| 156 | url: `/ota/norder/renewalProof`, | ||
| 157 | method: 'put', | ||
| 158 | data: data | ||
| 159 | }) | ||
| 160 | } | ||
| 146 | 161 | ||
| 147 | export function getInvoiceByActiveId(query) { | 162 | export function getInvoiceByActiveId(query) { |
| 148 | return request({ | 163 | return request({ |
| ... | @@ -151,6 +166,13 @@ export function getInvoiceByActiveId(query) { | ... | @@ -151,6 +166,13 @@ export function getInvoiceByActiveId(query) { |
| 151 | params: query | 166 | params: query |
| 152 | }) | 167 | }) |
| 153 | } | 168 | } |
| 169 | export function getRoomBillPayment(query) { | ||
| 170 | return request({ | ||
| 171 | url: `/ota/orderRoom/getRoomBillPayment`, | ||
| 172 | method: 'get', | ||
| 173 | params: query | ||
| 174 | }) | ||
| 175 | } | ||
| 154 | 176 | ||
| 155 | export function getCanInvoiceBills(query) { | 177 | export function getCanInvoiceBills(query) { |
| 156 | return request({ | 178 | return request({ | ... | ... |
| ... | @@ -86,6 +86,12 @@ export function countryList() { | ... | @@ -86,6 +86,12 @@ export function countryList() { |
| 86 | method: 'get' | 86 | method: 'get' |
| 87 | }) | 87 | }) |
| 88 | } | 88 | } |
| 89 | export function associationList() { | ||
| 90 | return request({ | ||
| 91 | url: `/system/association/getList`, | ||
| 92 | method: 'get' | ||
| 93 | }) | ||
| 94 | } | ||
| 89 | 95 | ||
| 90 | export function getAssociation() { | 96 | export function getAssociation() { |
| 91 | return request({ | 97 | return request({ |
| ... | @@ -763,11 +769,19 @@ export function getProjectByCptId(cptId, query) { | ... | @@ -763,11 +769,19 @@ export function getProjectByCptId(cptId, query) { |
| 763 | 769 | ||
| 764 | export function addInvitation(data) { | 770 | export function addInvitation(data) { |
| 765 | return request({ | 771 | return request({ |
| 766 | url: `/league/person`, | 772 | // url: `/league/person`, |
| 773 | url: `/league/visa`, | ||
| 767 | method: 'post', | 774 | method: 'post', |
| 768 | data: data | 775 | data: data |
| 769 | }) | 776 | }) |
| 770 | } | 777 | } |
| 778 | export function getVisaInfo(query) { | ||
| 779 | return request({ | ||
| 780 | url: `/league/visa/getVisa`, | ||
| 781 | method: 'get', | ||
| 782 | params: query | ||
| 783 | }) | ||
| 784 | } | ||
| 771 | 785 | ||
| 772 | // 酒店预约查询 | 786 | // 酒店预约查询 |
| 773 | export function hotelList(params) { | 787 | export function hotelList(params) { | ... | ... |
| ... | @@ -41,7 +41,7 @@ | ... | @@ -41,7 +41,7 @@ |
| 41 | :on-preview="handlePictureCardPreview" | 41 | :on-preview="handlePictureCardPreview" |
| 42 | :file-list="fileListInUpload" | 42 | :file-list="fileListInUpload" |
| 43 | :class="{ hide: fileList.length >= limit }" | 43 | :class="{ hide: fileList.length >= limit }" |
| 44 | name="image" | 44 | :name="paramName" |
| 45 | :disabled="disabled" | 45 | :disabled="disabled" |
| 46 | :accept="accept" | 46 | :accept="accept" |
| 47 | > | 47 | > |
| ... | @@ -94,6 +94,10 @@ const props = defineProps({ | ... | @@ -94,6 +94,10 @@ const props = defineProps({ |
| 94 | type: Number, | 94 | type: Number, |
| 95 | default: 5 | 95 | default: 5 |
| 96 | }, | 96 | }, |
| 97 | paramName: { | ||
| 98 | type: String, | ||
| 99 | default: 'image' | ||
| 100 | }, | ||
| 97 | // 文件类型, 例如['png', 'jpg', 'jpeg'] | 101 | // 文件类型, 例如['png', 'jpg', 'jpeg'] |
| 98 | fileType: { | 102 | fileType: { |
| 99 | type: Array, | 103 | type: Array, |
| ... | @@ -127,7 +131,7 @@ const accept = computed(() => { | ... | @@ -127,7 +131,7 @@ const accept = computed(() => { |
| 127 | }) | 131 | }) |
| 128 | 132 | ||
| 129 | const { proxy } = getCurrentInstance() | 133 | const { proxy } = getCurrentInstance() |
| 130 | const emit = defineEmits(['update:modelValue']) | 134 | const emit = defineEmits(['update:modelValue','response']) |
| 131 | const number = ref(0) | 135 | const number = ref(0) |
| 132 | const uploadList = ref([]) | 136 | const uploadList = ref([]) |
| 133 | const dialogImageUrl = ref('') | 137 | const dialogImageUrl = ref('') |
| ... | @@ -211,6 +215,7 @@ function handleExceed() { | ... | @@ -211,6 +215,7 @@ function handleExceed() { |
| 211 | 215 | ||
| 212 | // 上传成功回调 | 216 | // 上传成功回调 |
| 213 | function handleUploadSuccess(res, file) { | 217 | function handleUploadSuccess(res, file) { |
| 218 | if(!actionUrl.value){ | ||
| 214 | if (res.code === 200) { | 219 | if (res.code === 200) { |
| 215 | uploadList.value.push({ name: file.name, url: res.data || res.msg }) | 220 | uploadList.value.push({ name: file.name, url: res.data || res.msg }) |
| 216 | uploadedSuccessfully() | 221 | uploadedSuccessfully() |
| ... | @@ -221,6 +226,10 @@ function handleUploadSuccess(res, file) { | ... | @@ -221,6 +226,10 @@ function handleUploadSuccess(res, file) { |
| 221 | proxy.$refs.imageUpload.handleRemove(file) | 226 | proxy.$refs.imageUpload.handleRemove(file) |
| 222 | uploadedSuccessfully() | 227 | uploadedSuccessfully() |
| 223 | } | 228 | } |
| 229 | } else { | ||
| 230 | proxy.$modal.closeLoading() | ||
| 231 | emit('response', res) | ||
| 232 | } | ||
| 224 | } | 233 | } |
| 225 | 234 | ||
| 226 | // 删除图片 | 235 | // 删除图片 | ... | ... |
| ... | @@ -76,6 +76,7 @@ | ... | @@ -76,6 +76,7 @@ |
| 76 | :auto-crop-height="options.autoCropHeight" | 76 | :auto-crop-height="options.autoCropHeight" |
| 77 | :fixed-box="options.fixedBox" | 77 | :fixed-box="options.fixedBox" |
| 78 | output-type="png" | 78 | output-type="png" |
| 79 | :output-size="1" | ||
| 79 | @realTime="realTime" | 80 | @realTime="realTime" |
| 80 | /> | 81 | /> |
| 81 | <!-- <img :src="options.img"> --> | 82 | <!-- <img :src="options.img"> --> | ... | ... |
| ... | @@ -352,9 +352,11 @@ | ... | @@ -352,9 +352,11 @@ |
| 352 | <el-row align="middle" justify="space-between"> | 352 | <el-row align="middle" justify="space-between"> |
| 353 | <el-col :lg="12"> | 353 | <el-col :lg="12"> |
| 354 | <div v-if="form.payDate">{{ language == 0 ? '支付时间' : 'Payment Time' }}:{{ form.payDate }}</div> | 354 | <div v-if="form.payDate">{{ language == 0 ? '支付时间' : 'Payment Time' }}:{{ form.payDate }}</div> |
| 355 | <div v-if="form.payDate" class="mt10">{{ language == 0 ? '支付方式' : 'Payment Method' }}: | 355 | <div class="mt10">{{ language == 0 ? '支付方式' : 'Payment Method' }}: |
| 356 | <span v-if="form.paymentType=='1'">{{ language == 0 ? '微信支付' : 'WePay' }}</span> | 356 | <span v-if="form.paymentType=='1'">{{ language == 0 ? '微信支付' : 'WePay' }}</span> |
| 357 | <span v-if="form.paymentType=='3'">PayPal</span> | 357 | <span v-else-if="form.paymentType=='3'">PayPal</span> |
| 358 | <span v-else-if="form.paymentType=='4'|| form.paymentType=='5'">{{language == 0 ?'对公转账':'Bank Transfer'}}</span> | ||
| 359 | <span v-else>--</span> | ||
| 358 | </div> | 360 | </div> |
| 359 | </el-col> | 361 | </el-col> |
| 360 | <el-col :lg="12" class="result"> | 362 | <el-col :lg="12" class="result"> |
| ... | @@ -410,7 +412,7 @@ | ... | @@ -410,7 +412,7 @@ |
| 410 | </el-button> | 412 | </el-button> |
| 411 | </div> | 413 | </div> |
| 412 | 414 | ||
| 413 | <div v-if="form.viewStatus == '0'&&(form.surplus!='0,0'&&form.surplus!='0')" class="pd20"> | 415 | <div v-if="form.viewStatus == '0'&&(form.surplus!='0,0'&&form.surplus!='0')&&form.paymentType!='4'&&form.paymentType!='5'" class="pd20"> |
| 414 | 416 | ||
| 415 | <div class="leftboderTT">{{ language == 0 ? '选择支付方式' : 'Choose payment method' }}</div> | 417 | <div class="leftboderTT">{{ language == 0 ? '选择支付方式' : 'Choose payment method' }}</div> |
| 416 | <div class="mt20"> | 418 | <div class="mt20"> |
| ... | @@ -457,6 +459,12 @@ | ... | @@ -457,6 +459,12 @@ |
| 457 | fill="#003087" p-id="22662"></path> | 459 | fill="#003087" p-id="22662"></path> |
| 458 | </svg> | 460 | </svg> |
| 459 | </el-radio> | 461 | </el-radio> |
| 462 | <el-radio value="4" v-if="language==0&&type=='hotel'" border> | ||
| 463 | 对公打款 | ||
| 464 | </el-radio> | ||
| 465 | <el-radio value="5" v-if="language==1&&type=='hotel'" border> | ||
| 466 | Corporate payment | ||
| 467 | </el-radio> | ||
| 460 | </el-radio-group> | 468 | </el-radio-group> |
| 461 | <div v-if="payType == '2'&&wePayCodeUrl"> | 469 | <div v-if="payType == '2'&&wePayCodeUrl"> |
| 462 | <div class="payImgbox flexCenter"> | 470 | <div class="payImgbox flexCenter"> |
| ... | @@ -481,6 +489,29 @@ | ... | @@ -481,6 +489,29 @@ |
| 481 | </div> | 489 | </div> |
| 482 | </div> | 490 | </div> |
| 483 | </div> | 491 | </div> |
| 492 | |||
| 493 | <!-- 线下支付且待支付状态--> | ||
| 494 | <el-row v-if="(form.paymentType=='4'|| form.paymentType=='5')&&form.viewStatus=='0'" class="proofBox"> | ||
| 495 | <el-col :lg="12"> | ||
| 496 | <div class="flex"> | ||
| 497 | <label style="width: 10em"> | ||
| 498 | {{ language==0?'上传缴费凭证:':'Upload proof:' }} | ||
| 499 | </label> | ||
| 500 | <file-upload :is-show-tip="false" v-model="form.pic" :limit="1"/> | ||
| 501 | </div> | ||
| 502 | </el-col> | ||
| 503 | <el-col :lg="12"> | ||
| 504 | <el-button class="fr" text type="primary" @click="downOfflineInvoice" icon="download"> | ||
| 505 | {{ language == 0 ? '下载缴费单' : 'Download Invoice' }} | ||
| 506 | </el-button> | ||
| 507 | </el-col> | ||
| 508 | <!-- 如果没审批通过--> | ||
| 509 | <el-col :lg="24" align="center" justify="center"> | ||
| 510 | <el-button round type="primary" @click="submitProof">提交凭证</el-button> | ||
| 511 | </el-col> | ||
| 512 | </el-row> | ||
| 513 | |||
| 514 | |||
| 484 | <el-row align="middle" class="mt20 mb60" justify="center"> | 515 | <el-row align="middle" class="mt20 mb60" justify="center"> |
| 485 | <el-col :span="24" class="text-center"> | 516 | <el-col :span="24" class="text-center"> |
| 486 | <el-button v-if="!hideconfirmbtn&&form.viewStatus == '0'" class="btn-lineG w200px" round type="primary" | 517 | <el-button v-if="!hideconfirmbtn&&form.viewStatus == '0'" class="btn-lineG w200px" round type="primary" |
| ... | @@ -493,6 +524,7 @@ | ... | @@ -493,6 +524,7 @@ |
| 493 | <el-button v-if="form.viewStatus == '0'" class="underline" link @click="cancel"> | 524 | <el-button v-if="form.viewStatus == '0'" class="underline" link @click="cancel"> |
| 494 | {{ language == 0 ? '取消订单' : 'Cancel Order' }} | 525 | {{ language == 0 ? '取消订单' : 'Cancel Order' }} |
| 495 | </el-button> | 526 | </el-button> |
| 527 | |||
| 496 | </el-col> | 528 | </el-col> |
| 497 | </el-row> | 529 | </el-row> |
| 498 | 530 | ||
| ... | @@ -540,6 +572,19 @@ | ... | @@ -540,6 +572,19 @@ |
| 540 | </div> | 572 | </div> |
| 541 | </div> | 573 | </div> |
| 542 | </el-dialog> | 574 | </el-dialog> |
| 575 | <el-dialog v-model="showOfflineSuccessDialog" :title="language==0?'提示':'Tip'" width="460px"> | ||
| 576 | <el-result | ||
| 577 | :sub-title="language==0?'请在7日内上传凭证,否则订单取消':'Please upload the payment receipt within 7 days, otherwise the order will be cancelled'" | ||
| 578 | :title="language==0?'订单已提交':'Order submitted'" | ||
| 579 | icon="success" | ||
| 580 | > | ||
| 581 | <template #extra> | ||
| 582 | <el-button class="btn-lineG w200px" round type="primary" @click="downOfflineInvoice"> | ||
| 583 | {{ language == 0 ? '下载缴费单' : 'Download Invoice' }} | ||
| 584 | </el-button> | ||
| 585 | </template> | ||
| 586 | </el-result> | ||
| 587 | </el-dialog> | ||
| 543 | </div> | 588 | </div> |
| 544 | </template> | 589 | </template> |
| 545 | 590 | ||
| ... | @@ -563,16 +608,24 @@ const payType = ref('2') | ... | @@ -563,16 +608,24 @@ const payType = ref('2') |
| 563 | const orderId = ref(route.query.orderId) | 608 | const orderId = ref(route.query.orderId) |
| 564 | const matchId = ref() | 609 | const matchId = ref() |
| 565 | const groupId = ref() | 610 | const groupId = ref() |
| 611 | const proofUrl = ref() | ||
| 566 | import useUserStore from "@/store/modules/user"; | 612 | import useUserStore from "@/store/modules/user"; |
| 567 | import FileUpload from "@/components/FileUpload"; | 613 | import FileUpload from "@/components/FileUpload"; |
| 568 | import {useStorage} from "@vueuse/core/index"; | 614 | import {useStorage} from "@vueuse/core/index"; |
| 569 | import {ElMessage, ElMessageBox} from "element-plus"; | 615 | import {ElMessage, ElMessageBox} from "element-plus"; |
| 570 | import { | 616 | import { |
| 571 | cancelOrder, | 617 | cancelOrder, |
| 572 | cancelOrder2, getBaseInfoByActiveId, | 618 | cancelOrder2, |
| 619 | createOfflinePay, | ||
| 620 | getBaseInfoByActiveId, | ||
| 573 | getCarBilldetailbyId, | 621 | getCarBilldetailbyId, |
| 574 | getFoodBilldetailbyId, | 622 | getFoodBilldetailbyId, |
| 575 | getMealOrderInfoByLogex, getPhotoOrderInfo, getPhotoOrderInfoByLogex, getTicketInfoByActivityId, getTicketOrderInfo, | 623 | getMealOrderInfoByLogex, |
| 624 | getPhotoOrderInfo, | ||
| 625 | getPhotoOrderInfoByLogex, | ||
| 626 | getRoomBillPayment, | ||
| 627 | getTicketInfoByActivityId, | ||
| 628 | getTicketOrderInfo, renewalProof, | ||
| 576 | } from "@/apiPc/booking"; | 629 | } from "@/apiPc/booking"; |
| 577 | import dayjs from 'dayjs' | 630 | import dayjs from 'dayjs' |
| 578 | import {delPerson} from "@/api/exam/person"; | 631 | import {delPerson} from "@/api/exam/person"; |
| ... | @@ -588,6 +641,7 @@ const errorBox = ref(false) | ... | @@ -588,6 +641,7 @@ const errorBox = ref(false) |
| 588 | const hideconfirmbtn = ref(false) | 641 | const hideconfirmbtn = ref(false) |
| 589 | const remark = ref('') | 642 | const remark = ref('') |
| 590 | const showSJDialog = ref(false) | 643 | const showSJDialog = ref(false) |
| 644 | const showOfflineSuccessDialog = ref(false) | ||
| 591 | const loading = ref(false) | 645 | const loading = ref(false) |
| 592 | const lpName = ref('') | 646 | const lpName = ref('') |
| 593 | const matchForm = ref({}) | 647 | const matchForm = ref({}) |
| ... | @@ -671,6 +725,10 @@ function getData() { | ... | @@ -671,6 +725,10 @@ function getData() { |
| 671 | form.value.messageObj = JSON.parse(form.value.message) || {} | 725 | form.value.messageObj = JSON.parse(form.value.message) || {} |
| 672 | form.value.extJsonObj = JSON.parse(form.value.extJson) || {} | 726 | form.value.extJsonObj = JSON.parse(form.value.extJson) || {} |
| 673 | matchId.value = form.value.extJsonObj?.activeId | 727 | matchId.value = form.value.extJsonObj?.activeId |
| 728 | //如果对公打款- | ||
| 729 | if(form.value.paymentType=='4' || form.value.paymentType=='5'){ | ||
| 730 | hideconfirmbtn.value = true | ||
| 731 | } | ||
| 674 | }).catch(err => { | 732 | }).catch(err => { |
| 675 | console.log(err) | 733 | console.log(err) |
| 676 | errorBox.value = true | 734 | errorBox.value = true |
| ... | @@ -738,6 +796,17 @@ function goPay() { | ... | @@ -738,6 +796,17 @@ function goPay() { |
| 738 | } | 796 | } |
| 739 | }) | 797 | }) |
| 740 | } | 798 | } |
| 799 | if (payType.value == '4' || payType.value == '5') { | ||
| 800 | //对公打款 | ||
| 801 | booking.createOfflinePay({orderId: orderId.value}).then(res => { | ||
| 802 | console.log(res) | ||
| 803 | // booking.getRoomBillPayment({orderId: orderId.value}).then(res => { | ||
| 804 | // 显示付款单信息-上传凭证 | ||
| 805 | hideconfirmbtn.value = true | ||
| 806 | showOfflineSuccessDialog.value = true | ||
| 807 | // }) | ||
| 808 | }) | ||
| 809 | } | ||
| 741 | } | 810 | } |
| 742 | 811 | ||
| 743 | let handle; | 812 | let handle; |
| ... | @@ -942,6 +1011,33 @@ const showSJ = () => { | ... | @@ -942,6 +1011,33 @@ const showSJ = () => { |
| 942 | showSJDialog.value = false | 1011 | showSJDialog.value = false |
| 943 | getData() | 1012 | getData() |
| 944 | } | 1013 | } |
| 1014 | |||
| 1015 | const downOfflineInvoice = () => { | ||
| 1016 | //下载 对公转账缴费单 | ||
| 1017 | var obj = { | ||
| 1018 | orderId: orderId.value | ||
| 1019 | } | ||
| 1020 | proxy.download(`/ota/orderRoom/exportRoomBillPayment`, { | ||
| 1021 | ...obj | ||
| 1022 | }, `Invoice_${new Date().getTime()}.pdf`) | ||
| 1023 | } | ||
| 1024 | const submitProof = () => { | ||
| 1025 | //提交凭证 | ||
| 1026 | if(!form.value.pic){ | ||
| 1027 | ElMessage.warning(language.value == 0 ? '请上传凭证' : 'Please upload a voucher') | ||
| 1028 | return | ||
| 1029 | } | ||
| 1030 | booking.renewalProof({ | ||
| 1031 | id: orderId.value, | ||
| 1032 | pic: form.value.pic[0]?.url | ||
| 1033 | }).then(res => { | ||
| 1034 | ElMessage.success({ | ||
| 1035 | message: language.value == 0 ? '凭证提交成功' : 'Voucher submission successful', | ||
| 1036 | type: 'success' | ||
| 1037 | }) | ||
| 1038 | getData() | ||
| 1039 | }) | ||
| 1040 | } | ||
| 945 | </script> | 1041 | </script> |
| 946 | 1042 | ||
| 947 | <style lang="scss" scoped> | 1043 | <style lang="scss" scoped> |
| ... | @@ -1109,4 +1205,5 @@ const showSJ = () => { | ... | @@ -1109,4 +1205,5 @@ const showSJ = () => { |
| 1109 | .price { | 1205 | .price { |
| 1110 | color: orange; | 1206 | color: orange; |
| 1111 | } | 1207 | } |
| 1208 | .proofBox{padding: 20px;margin: 0 20px;border: 1px dashed #999;} | ||
| 1112 | </style> | 1209 | </style> | ... | ... |
| ... | @@ -114,7 +114,7 @@ | ... | @@ -114,7 +114,7 @@ |
| 114 | </span> | 114 | </span> |
| 115 | </el-col> | 115 | </el-col> |
| 116 | <el-col :lg="6" :md="16" :sm="16" :xs="16"> | 116 | <el-col :lg="6" :md="16" :sm="16" :xs="16"> |
| 117 | <div class="text-right mb20 text-danger"> | 117 | <div class="text-right mb20 text-danger" v-if="b.paymentType!='4'&&b.paymentType!='5'"> |
| 118 | <el-countdown | 118 | <el-countdown |
| 119 | v-if="b.status == '0'&&(b.surplus!='0,0'&&b.surplus!='0')" | 119 | v-if="b.status == '0'&&(b.surplus!='0,0'&&b.surplus!='0')" |
| 120 | :value="b.countdown" | 120 | :value="b.countdown" |
| ... | @@ -134,7 +134,8 @@ | ... | @@ -134,7 +134,8 @@ |
| 134 | </el-button> | 134 | </el-button> |
| 135 | <el-button v-if="b.status == '0'&&(b.surplus!='0,0'&&b.surplus!='0')" class="mb10" | 135 | <el-button v-if="b.status == '0'&&(b.surplus!='0,0'&&b.surplus!='0')" class="mb10" |
| 136 | plain round size="small" type="primary" @click="goDetail(b)"> | 136 | plain round size="small" type="primary" @click="goDetail(b)"> |
| 137 | {{ language == 0 ? '支付' : 'Pay' }} | 137 | <span v-if="b.paymentType=='4'||b.paymentType=='5'">{{language == 0 ? '上传凭证' : 'Upload Receipt'}}</span> |
| 138 | <span v-else>{{ language == 0 ? '支付' : 'Pay' }}</span> | ||
| 138 | </el-button> | 139 | </el-button> |
| 139 | <el-button v-if="b.viewStatus==0" class="mb10" plain round size="small" type="warning" | 140 | <el-button v-if="b.viewStatus==0" class="mb10" plain round size="small" type="warning" |
| 140 | @click="cancel(b)"> | 141 | @click="cancel(b)"> | ... | ... |
| ... | @@ -154,7 +154,7 @@ function popRemark(type) { | ... | @@ -154,7 +154,7 @@ function popRemark(type) { |
| 154 | if(type == '0'){ | 154 | if(type == '0'){ |
| 155 | // 签证 | 155 | // 签证 |
| 156 | if(language.value === 0){ | 156 | if(language.value === 0){ |
| 157 | ElMessage.warning('请切换英文页面办理,仅英文页面可以点击') | 157 | ElMessage.warning('请切换英文页面办理') |
| 158 | return | 158 | return |
| 159 | } else { | 159 | } else { |
| 160 | applyInvitation() | 160 | applyInvitation() |
| ... | @@ -235,7 +235,6 @@ function goBooking(n) { | ... | @@ -235,7 +235,6 @@ function goBooking(n) { |
| 235 | margin: 0 5%;width: 75px;height: 75px; | 235 | margin: 0 5%;width: 75px;height: 75px; |
| 236 | } | 236 | } |
| 237 | } | 237 | } |
| 238 | .itemBox_en{} | ||
| 239 | .itemBox_en .item { | 238 | .itemBox_en .item { |
| 240 | flex-direction: column;text-align: center;text-transform: uppercase; | 239 | flex-direction: column;text-align: center;text-transform: uppercase; |
| 241 | height: 100%; | 240 | height: 100%; |
| ... | @@ -258,8 +257,9 @@ height: 100%; | ... | @@ -258,8 +257,9 @@ height: 100%; |
| 258 | } | 257 | } |
| 259 | 258 | ||
| 260 | @media screen and (max-width: 768px) { | 259 | @media screen and (max-width: 768px) { |
| 261 | .itemBox,.itemBox_en{padding: 0 20px 20px} | 260 | .itemBox,.itemBox_en{padding: 0 20px 0} |
| 262 | .item{font-size: 16px; | 261 | .item{font-size: 16px;height: auto !important; |
| 262 | padding: 15px 0; | ||
| 263 | img{width: 50px;height: 50px} | 263 | img{width: 50px;height: 50px} |
| 264 | } | 264 | } |
| 265 | } | 265 | } | ... | ... |
| ... | @@ -4,126 +4,172 @@ | ... | @@ -4,126 +4,172 @@ |
| 4 | :close-on-click-modal="false" class="pcloginpop" | 4 | :close-on-click-modal="false" class="pcloginpop" |
| 5 | destroy-on-close | 5 | destroy-on-close |
| 6 | > | 6 | > |
| 7 | <div class="boxInvitation pd20"> | 7 | <div class="boxInvitation"> |
| 8 | 8 | ||
| 9 | <div class="text-center pd20" v-if="showR"> | 9 | <div class="text-center pd20" v-if="showR"> |
| 10 | <img class="mauto" src="@/assets/dance/ok.png"/> | 10 | <img class="mauto" src="@/assets/dance/ok.png"/> |
| 11 | <!-- <h2 class="text-center">{{ language == 0 ? '申请已提交' : 'Submitted successfully' }}</h2>--> | 11 | <!-- 提交成功等待审核--> |
| 12 | <h4 class="text-center" v-if="language == 0"> | 12 | <h3 v-if="form.status"> |
| 13 | 我们已收到您的邀请函申请,并将尽快处理。请耐心等待。 | 13 | <span v-if="form.status==0">In Approval</span> |
| 14 | </h4> | 14 | <span v-if="form.status==1">Approved</span> |
| 15 | <h4 v-else> | 15 | </h3> |
| 16 | <h4> | ||
| 16 | Your invitation letter application has been received,<br/> | 17 | Your invitation letter application has been received,<br/> |
| 17 | and we will process it as soon as possible. | 18 | and we will process it as soon as possible. |
| 18 | <br/> | 19 | <br/> |
| 19 | Please be patient while waiting. | 20 | Please be patient while waiting. |
| 20 | </h4> | 21 | </h4> |
| 21 | <el-button size="large" type="primary" @click="conti" round class="btn-lineG"> | ||
| 22 | {{ language == 0 ? '继续提交' : 'Continue To Submit' }} | ||
| 23 | </el-button> | ||
| 24 | </div> | 22 | </div> |
| 25 | 23 | ||
| 26 | <el-form :model="form" :rules="rules" ref="iformRef" label-position="top" v-else> | 24 | <el-form :model="form" :rules="rules" ref="iformRef" label-position="top" v-else> |
| 27 | <el-form-item :label="language==0?'申请人类别':'Applicant Type'"> | 25 | <el-form-item :label="language==0?'申请人类别':'Applicant Type'" required prop="applicatType"> |
| 28 | <el-select v-model="form.type"> | 26 | <el-select v-model="form.applicatType"> |
| 29 | <el-option label="MNA" value="1"/> | 27 | <el-option label="MNA" value="1"/> |
| 30 | <el-option label="Technical Officials" value="2"/> | 28 | <el-option label="Technical Officials" value="2"/> |
| 31 | <el-option label="WT Staff" value="3"/> | 29 | <el-option label="WT Staff" value="3"/> |
| 32 | <el-option label="Supplier" value="4"/> | 30 | <el-option label="Supplier" value="4"/> |
| 33 | <el-option label="Other" value="5"/> | 31 | <el-option label="Other" value="5"/> |
| 34 | </el-select> | 32 | </el-select> |
| 35 | <el-input v-if="form.type==5"/> | 33 | <el-input v-if="form.applicatType==5" placeholder="Please specify" v-model="form.remarks"/> |
| 36 | </el-form-item> | 34 | </el-form-item> |
| 37 | <el-form-item :label="language==0?'邀请函类别':'Application Type'" required prop="type"> | 35 | <el-form-item :label="language==0?'邀请函类别':'Application Type'" required prop="invitationType"> |
| 38 | <el-select v-model="form.type"> | 36 | <el-select v-model="form.invitationType"> |
| 39 | <el-option label="一般邀请函" value="1"/> | 37 | <el-option :label="language==0?'一般邀请函':'General Invitation'" value="1"/> |
| 40 | <el-option label="TE/PU(外办)邀请函" value="2"/> | 38 | <el-option :label="language==0?'TE/PU(外办)邀请函':'TE/PU(Foreign) Invitation'" value="2"/> |
| 41 | </el-select> | 39 | </el-select> |
| 42 | </el-form-item> | 40 | </el-form-item> |
| 43 | <el-form-item :label="language==0?'是否需要中文邀请函':'Chinese Invitation'"> | 41 | <el-form-item :label="language==0?'是否需要中文邀请函':'Chinese Invitation'" required prop="chinese"> |
| 44 | <el-radio-group> | 42 | <el-radio-group v-model="form.chinese"> |
| 45 | <el-radio :label="1">{{ language==0?'是':'Yes' }}</el-radio> | 43 | <el-radio :value="1">{{ language==0?'是':'Yes' }}</el-radio> |
| 46 | <el-radio :label="0">{{ language==0?'否':'No' }}</el-radio> | 44 | <el-radio :value="0">{{ language==0?'否':'No' }}</el-radio> |
| 47 | </el-radio-group> | 45 | </el-radio-group> |
| 48 | </el-form-item> | 46 | </el-form-item> |
| 49 | 47 | ||
| 50 | <!-- 一般信息--> | 48 | <!-- 一般信息--> |
| 51 | <el-form-item :label="language==0?'国家/地区协会名':'MNA/Team Name'" required prop="teamName"> | 49 | <el-form-item :label="language==0?'国家/地区协会名':'MNA/Team Name'" :required="form.applicatType!=2" prop="associationCode"> |
| 52 | <el-input v-model="form.teamName"/> | 50 | <el-select v-model="form.associationCode" filterable> |
| 51 | <el-option v-for="item in mnaList" :key="item.code" :label="language==0?item.nameCn:item.nameEn" | ||
| 52 | :value="item.code"/> | ||
| 53 | </el-select> | ||
| 53 | </el-form-item> | 54 | </el-form-item> |
| 54 | <el-form-item :label="language==0?'国家/地区协会地址':'MNA/Team Address'" required prop="teamName"> | 55 | <el-form-item :label="language==0?'国家/地区协会地址':'MNA/Team Address'" :required="form.applicatType!=2" prop="associationAddress"> |
| 55 | <el-input v-model="form.teamName"/> | 56 | <el-input v-model="form.associationAddress"/> |
| 56 | </el-form-item> | 57 | </el-form-item> |
| 57 | <el-form-item :label="language==0?'邮箱':'Email'" required prop="email"> | 58 | <el-form-item :label="language==0?'邮箱':'Email'" required prop="email"> |
| 58 | <el-input v-model="form.email" type="email"/> | 59 | <el-input v-model="form.email" type="email"/> |
| 59 | <div class="tip"></div> | 60 | <div class="tip"></div> |
| 60 | </el-form-item> | 61 | </el-form-item> |
| 61 | <el-form-item :label="language==0?'姓名':'Full Name'" required prop="name"> | 62 | <el-form-item :label="language==0?'姓名':'Full Name'" required prop="fullName"> |
| 62 | <el-input v-model="form.name"/> | 63 | <el-input v-model="form.fullName"/> |
| 63 | </el-form-item> | 64 | </el-form-item> |
| 64 | <el-form-item :label="language==0?'联系人职位':'Position'" required prop="position"> | 65 | <el-form-item :label="language==0?'联系人职位':'Position'" required prop="position"> |
| 65 | <el-select v-model="form.position"> | 66 | <el-select v-model="form.position"> |
| 66 | <el-option label="经理" value="1"/> | 67 | <el-option label="Manager" value="0"/> |
| 67 | <el-option label="领队" value="2"/> | 68 | <el-option label="Team leader" value="1"/> |
| 68 | <el-option label="教练" value="3"/> | 69 | <el-option label="Coach" value="2"/> |
| 69 | <el-option label="其他" value="4"/> | 70 | <el-option label="Other" value="3"/> |
| 70 | </el-select> | 71 | </el-select> |
| 71 | </el-form-item> | 72 | </el-form-item> |
| 72 | <el-form-item :label="language==0?'联系电话':'Mobile'" required prop="mobile"> | 73 | <el-form-item :label="language==0?'联系电话':'Phone'" required prop="phone"> |
| 73 | <el-input v-model="form.mobile"/> | 74 | <el-input v-model="form.phone"/> |
| 75 | </el-form-item> | ||
| 76 | <el-form-item :label="language==0?'签证办理中国大使馆':'Chinese Embassy Visas Office'" required prop="embassy"> | ||
| 77 | <el-input v-model="form.embassy"/> | ||
| 78 | </el-form-item> | ||
| 79 | <el-form-item :label="language==0?'中国大使馆邮箱':'Chinese Embassy Email'" required prop="embassyEmail"> | ||
| 80 | <el-input v-model="form.embassyEmail"/> | ||
| 74 | </el-form-item> | 81 | </el-form-item> |
| 75 | <!-- 签证办理中国大使馆 --> | ||
| 76 | <!-- 中国大使馆邮箱 --> | ||
| 77 | 82 | ||
| 78 | <!--上传护照,多张--> | 83 | <!--上传护照,多张--> |
| 79 | <el-form-item :label="language==0?'有效证件':'Passport Copy'" required prop="passportCopy"> | 84 | <div class="cptVisaInfoBosTable"> |
| 80 | <image-upload v-model="form.passportCopy" :limit="1" :is-show-tip="false" | 85 | <el-form-item :label="language==0?'有效证件':'Passport Copy'" required> |
| 86 | <ImageUpload v-model="form.passportCopy" :is-show-tip="false" | ||
| 81 | :action="'/league/visa/getPersonInfoFromCert/3'" | 87 | :action="'/league/visa/getPersonInfoFromCert/3'" |
| 82 | :button-text="language==0?'上传':'Upload'"/> | 88 | paramName="pic" |
| 89 | :button-text="language==0?'上传':'Upload'" @response="getPassportInfo" | ||
| 90 | /> | ||
| 83 | </el-form-item> | 91 | </el-form-item> |
| 84 | <!--识别信息--> | 92 | <!--识别信息--> |
| 85 | <div> | 93 | <div v-if="form.cptVisaInfoBos?.length>0" class="border"> |
| 86 | <el-form-item :label="language==0?'性别':'Gender'" required prop="gender"> | 94 | <el-table :data="form.cptVisaInfoBos" border size="small"> |
| 87 | <el-radio-group v-model="form.gender"> | 95 | <el-table-column prop="position" :label="'position'" min-width="100"> |
| 88 | <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio> | 96 | <template #default="scope"> |
| 89 | <el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio> | 97 | <el-input v-model="scope.row.position" size="small"/> |
| 90 | </el-radio-group> | 98 | </template> |
| 91 | </el-form-item> | 99 | </el-table-column> |
| 92 | <el-form-item :label="language==0?'国籍':'Nationality'" required prop="nationality"> | 100 | <el-table-column prop="lastName" :label="'lastName'" min-width="100"> |
| 93 | <el-select filterable v-model="form.nationality" style="width: 100%;"> | 101 | <template #default="scope"> |
| 102 | <el-input v-model="scope.row.lastName" size="small"/> | ||
| 103 | </template> | ||
| 104 | </el-table-column> | ||
| 105 | <el-table-column prop="fristName" :label="'firstName'" min-width="100"> | ||
| 106 | <template #default="scope"> | ||
| 107 | <el-input v-model="scope.row.fristName" size="small"/> | ||
| 108 | </template> | ||
| 109 | </el-table-column> | ||
| 110 | <el-table-column prop="sex" :label="language==0?'性别':'Gender'" width="100"> | ||
| 111 | <template #default="scope"> | ||
| 112 | <el-select v-model="scope.row.sex" size="small"> | ||
| 113 | <el-option label="male" value="0"/> | ||
| 114 | <el-option label="female" value="1"/> | ||
| 115 | </el-select> | ||
| 116 | </template> | ||
| 117 | </el-table-column> | ||
| 118 | <el-table-column prop="nationality" :label="language==0?'国籍':'Nationality'" width="110px"> | ||
| 119 | <template #default="scope"> | ||
| 120 | <el-select v-model="scope.row.nationality" size="small" filterable> | ||
| 94 | <el-option v-for="item in countrys" :key="item.id" :label="language==0?item.name:item.enName" | 121 | <el-option v-for="item in countrys" :key="item.id" :label="language==0?item.name:item.enName" |
| 95 | :value="item.id"/> | 122 | :value="item.id"/> |
| 96 | </el-select> | 123 | </el-select> |
| 97 | </el-form-item> | 124 | </template> |
| 98 | <el-form-item :label="language==0?'出生日期':'Date of Birth'" required prop="birth"> | 125 | </el-table-column> |
| 99 | <el-date-picker | 126 | <el-table-column prop="birth" :label="language==0?'出生日期':'Birth'" width="130px"> |
| 100 | v-model="form.birth" | 127 | <template #default="scope"> |
| 128 | <el-date-picker size="small" | ||
| 129 | v-model="scope.row.birthday" | ||
| 101 | style="width: 100%;" placeholder="YYYY-MM-DD" | 130 | style="width: 100%;" placeholder="YYYY-MM-DD" |
| 102 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | 131 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" |
| 103 | /> | 132 | /> |
| 104 | </el-form-item> | 133 | </template> |
| 105 | 134 | </el-table-column> | |
| 106 | <el-form-item :label="language==0?'护照号':'Passport No.'" required prop="passportNo"> | 135 | <el-table-column prop="passportNo" :label="language==0?'护照号':'Passport No.'" width="110px"> |
| 107 | <el-input v-model="form.passportNo"/> | 136 | <template #default="scope"> |
| 108 | </el-form-item> | 137 | <el-input v-model="scope.row.passportNo" size="small"/> |
| 109 | <el-form-item :label="language==0?'护照签发日':'Date of Arrival'" required prop="arrival"> | 138 | </template> |
| 139 | </el-table-column> | ||
| 140 | <el-table-column prop="expiryDate" :label="language==0?'护照签发日':'Expiry Date'" width="130px"> | ||
| 141 | <template #default="scope"> | ||
| 110 | <el-date-picker | 142 | <el-date-picker |
| 111 | v-model="form.arrival" placeholder="YYYY-MM-DD" | 143 | v-model="scope.row.issueDate" size="small" |
| 112 | style="width: 100%;" | 144 | style="width: 100%;" placeholder="YYYY-MM-DD" |
| 113 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | 145 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" |
| 114 | /> | 146 | /> |
| 115 | </el-form-item> | 147 | </template> |
| 116 | <el-form-item :label="language==0?'护照过期日':'Date of Departure'" required prop="departure"> | 148 | </el-table-column> |
| 149 | <el-table-column prop="arrival" :label="language==0?'护照过期日':'Expiration date'" width="130px"> | ||
| 150 | <template #default="scope"> | ||
| 117 | <el-date-picker | 151 | <el-date-picker |
| 118 | v-model="form.departure" | 152 | v-model="scope.row.expiryDate" size="small" |
| 119 | style="width: 100%;" placeholder="YYYY-MM-DD" | 153 | style="width: 100%;" placeholder="YYYY-MM-DD" |
| 120 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | 154 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" |
| 121 | /> | 155 | /> |
| 122 | </el-form-item> | 156 | </template> |
| 157 | </el-table-column> | ||
| 158 | <el-table-column label="Actions"> | ||
| 159 | <template #default="scope"> | ||
| 160 | <el-button type="danger" size="small" @click="delPassportInfo(scope.row)"> | ||
| 161 | {{ language == 0 ? '删除' : 'Delete' }} | ||
| 162 | </el-button> | ||
| 163 | </template> | ||
| 164 | </el-table-column> | ||
| 165 | </el-table> | ||
| 166 | |||
| 167 | </div> | ||
| 168 | |||
| 123 | </div> | 169 | </div> |
| 124 | <!-- 补充材料--> | 170 | <!-- 补充材料--> |
| 125 | <el-form-item :label="language==0?'补充材料':'Additional Documents'" required prop="additionalDocuments"> | 171 | <el-form-item :label="language==0?'补充材料':'Additional Documents'" prop="files"> |
| 126 | <file-upload v-model="form.additionalDocuments" :limit="1" :is-show-tip="false" | 172 | <file-upload v-model="form.files" :limit="1" :is-show-tip="false" |
| 127 | :button-text="language==0?'上传':'Upload'"/> | 173 | :button-text="language==0?'上传':'Upload'"/> |
| 128 | </el-form-item> | 174 | </el-form-item> |
| 129 | 175 | ||
| ... | @@ -145,18 +191,21 @@ import {useStorage} from "@vueuse/core/index"; | ... | @@ -145,18 +191,21 @@ import {useStorage} from "@vueuse/core/index"; |
| 145 | import {getCurrentInstance, watch} from "vue"; | 191 | import {getCurrentInstance, watch} from "vue"; |
| 146 | import {nextTick} from "@vue/runtime-core"; | 192 | import {nextTick} from "@vue/runtime-core"; |
| 147 | import {ElMessage, ElMessageBox} from "element-plus"; | 193 | import {ElMessage, ElMessageBox} from "element-plus"; |
| 148 | import {addInvitation, countryList} from "@/apiPc/match"; | 194 | import {addInvitation, associationList, countryList, getVisaInfo} from "@/apiPc/match"; |
| 149 | import ImageUpload from "@/components/ImageUpload"; | 195 | import ImageUpload from '@/components/ImageUpload/index.vue' |
| 150 | 196 | import useUserStore from "@/store/modules/user"; | |
| 197 | const user = useUserStore().user | ||
| 151 | const {proxy} = getCurrentInstance() | 198 | const {proxy} = getCurrentInstance() |
| 152 | const language = useStorage('language', 0) | 199 | const language = useStorage('language', 0) |
| 153 | const form = ref({ | 200 | const form = ref({ |
| 154 | gender:'0' | 201 | gender:'0', |
| 202 | cptVisaInfoBos:[] | ||
| 155 | }) | 203 | }) |
| 156 | const show = ref(false) | 204 | const show = ref(false) |
| 157 | const showR = ref(false) | 205 | const showR = ref(false) |
| 158 | const title = ref('') | 206 | const title = ref('') |
| 159 | const countrys = ref([]) | 207 | const countrys = ref([]) |
| 208 | const mnaList = ref([]) | ||
| 160 | const cptId = ref('') | 209 | const cptId = ref('') |
| 161 | const rules = ref( | 210 | const rules = ref( |
| 162 | { | 211 | { |
| ... | @@ -174,31 +223,40 @@ const open = (params) => { | ... | @@ -174,31 +223,40 @@ const open = (params) => { |
| 174 | show.value = true | 223 | show.value = true |
| 175 | title.value = params.title | 224 | title.value = params.title |
| 176 | cptId.value = params.cptId | 225 | cptId.value = params.cptId |
| 226 | form.value.userId = user.userId | ||
| 227 | form.value.cptId = params.cptId | ||
| 228 | getCountryList() | ||
| 229 | getMNAList() | ||
| 230 | getVisa() | ||
| 177 | } | 231 | } |
| 178 | defineExpose({open}) | 232 | defineExpose({open}) |
| 179 | watch(show, (value) => { | 233 | |
| 180 | if (!value) { | 234 | function getVisa() { |
| 181 | form.value = { | 235 | getVisaInfo({ |
| 182 | sex: '0' | 236 | userId: user.userId, |
| 183 | } | 237 | cptId: cptId.value |
| 184 | if (language.value == 0) { | 238 | }).then(res=>{ |
| 185 | form.value.countryId = 240 | 239 | console.log(res) |
| 186 | } | 240 | if(res.data && res.data.status!=2){ |
| 241 | showR.value = true | ||
| 242 | form.value = res.data | ||
| 243 | } else { | ||
| 244 | showR.value = false | ||
| 187 | } | 245 | } |
| 188 | nextTick(() => { | ||
| 189 | // proxy.$refs['dialogRef'].clearValidate() | ||
| 190 | }) | 246 | }) |
| 191 | }) | 247 | } |
| 192 | getCountryList() | ||
| 193 | |||
| 194 | function getCountryList() { | 248 | function getCountryList() { |
| 195 | countryList().then(res => { | 249 | countryList().then(res => { |
| 196 | countrys.value = res.data | 250 | countrys.value = res.data |
| 197 | }) | 251 | }) |
| 198 | } | 252 | } |
| 199 | 253 | function getMNAList() { | |
| 254 | associationList().then(res=>{ | ||
| 255 | mnaList.value = res.data | ||
| 256 | }) | ||
| 257 | } | ||
| 200 | const submit = () => { | 258 | const submit = () => { |
| 201 | proxy.$refs.iformRef.validate(valid => { | 259 | console.log(form.value) |
| 202 | if (form.value.email.indexOf('@') == -1) { | 260 | if (form.value.email.indexOf('@') == -1) { |
| 203 | if (language.value == 0) { | 261 | if (language.value == 0) { |
| 204 | ElMessage.warning('请填写正确的邮箱') | 262 | ElMessage.warning('请填写正确的邮箱') |
| ... | @@ -207,6 +265,13 @@ const submit = () => { | ... | @@ -207,6 +265,13 @@ const submit = () => { |
| 207 | } | 265 | } |
| 208 | return | 266 | return |
| 209 | } | 267 | } |
| 268 | // if (Array.isArray(form.value.passportCopy)) { | ||
| 269 | // form.value.passportCopy = form.value.passportCopy[0].url | ||
| 270 | // } | ||
| 271 | if (form.value.files && Array.isArray(form.value.files)) { | ||
| 272 | form.value.files = form.value.files[0]?.url | ||
| 273 | } | ||
| 274 | proxy.$refs.iformRef.validate(valid => { | ||
| 210 | if (valid) { | 275 | if (valid) { |
| 211 | ElMessageBox.confirm( | 276 | ElMessageBox.confirm( |
| 212 | language.value == 0 ? '请确认信息正确并提交吗?' : 'Please confirm that the information is correct and submit it', | 277 | language.value == 0 ? '请确认信息正确并提交吗?' : 'Please confirm that the information is correct and submit it', |
| ... | @@ -216,9 +281,6 @@ const submit = () => { | ... | @@ -216,9 +281,6 @@ const submit = () => { |
| 216 | type: 'warning' | 281 | type: 'warning' |
| 217 | }).then(() => { | 282 | }).then(() => { |
| 218 | form.value.cptId = cptId.value | 283 | form.value.cptId = cptId.value |
| 219 | if (Array.isArray(form.value.passportCopy)) { | ||
| 220 | form.value.passportCopy = form.value.passportCopy[0].url | ||
| 221 | } | ||
| 222 | addInvitation(form.value).then((res) => { | 284 | addInvitation(form.value).then((res) => { |
| 223 | ElMessage.success(language.value == 0 ?'提交成功':'Successfully!') | 285 | ElMessage.success(language.value == 0 ?'提交成功':'Successfully!') |
| 224 | showR.value = true | 286 | showR.value = true |
| ... | @@ -227,19 +289,41 @@ const submit = () => { | ... | @@ -227,19 +289,41 @@ const submit = () => { |
| 227 | } | 289 | } |
| 228 | }) | 290 | }) |
| 229 | } | 291 | } |
| 230 | const conti = () => { | 292 | |
| 231 | showR.value = false | 293 | const getPassportInfo = (res) => { |
| 232 | form.value = { | 294 | console.log(res.data) |
| 233 | gender: '0' | 295 | if(res.data){ |
| 296 | var obj = { | ||
| 297 | position:'', | ||
| 298 | lastName:'', | ||
| 299 | fristName:res.data.name, | ||
| 300 | sex:res.data.sex, | ||
| 301 | birthday:res.data.birth?.slice(0,10), | ||
| 302 | nationality:'', | ||
| 303 | passportNo:res.data.code, | ||
| 304 | issueDate:'', | ||
| 305 | expiryDate:'', | ||
| 234 | } | 306 | } |
| 307 | form.value.cptVisaInfoBos.push(obj) | ||
| 308 | } else { | ||
| 309 | ElMessage.error(res.msg) | ||
| 310 | } | ||
| 311 | } | ||
| 312 | function delPassportInfo(row) { | ||
| 313 | |||
| 235 | } | 314 | } |
| 315 | |||
| 236 | </script> | 316 | </script> |
| 237 | 317 | ||
| 238 | <style scoped lang="scss"> | 318 | <style scoped lang="scss"> |
| 239 | .tip{font-size: 12px;} | 319 | .tip{font-size: 12px;} |
| 240 | .boxInvitation { | 320 | .boxInvitation { |
| 241 | width: 90%; | 321 | width: 96%; |
| 242 | margin: auto | 322 | margin:20px auto 0; |
| 243 | } | 323 | } |
| 244 | h4{font-size: 15px;line-height: 1.6;} | 324 | h4{font-size: 15px;line-height: 1.6;} |
| 325 | .cptVisaInfoBosTable{padding: 15px;margin-bottom: 20px; | ||
| 326 | border: 1px dashed #ebeef5; | ||
| 327 | :deep(.el-table .el-table__header-wrapper th){font-size: 12px;} | ||
| 328 | } | ||
| 245 | </style> | 329 | </style> | ... | ... |
| ... | @@ -142,7 +142,7 @@ function popRemark(type) { | ... | @@ -142,7 +142,7 @@ function popRemark(type) { |
| 142 | } | 142 | } |
| 143 | 143 | ||
| 144 | if (type === 0 && language.value === 0) { //签证服务 | 144 | if (type === 0 && language.value === 0) { //签证服务 |
| 145 | ElMessage.warning('请切换英文页面办理,仅英文页面可以点击') | 145 | ElMessage.warning('请切换英文页面办理') |
| 146 | return | 146 | return |
| 147 | } | 147 | } |
| 148 | 148 | ... | ... |
-
Please register or sign in to post a comment