cfa859f8 by 华明祺

no message

1 parent e3f46817
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24px" height="23px"><path fill-rule="evenodd" fill="rgb(146, 154, 160)" d="M1.242,17.158 C2.102,17.158 2.498,17.424 2.998,17.759 C3.558,18.134 4.257,18.601 5.551,18.601 C6.846,18.601 7.543,18.134 8.103,17.759 C8.603,17.424 8.998,17.158 9.857,17.158 C10.718,17.158 11.113,17.424 11.615,17.759 C12.175,18.134 12.873,18.601 14.168,18.601 C15.464,18.601 16.162,18.134 16.722,17.759 C17.224,17.424 17.620,17.158 18.481,17.158 C19.342,17.158 19.738,17.424 20.240,17.759 C20.801,18.134 21.498,18.601 22.794,18.601 C23.191,18.601 23.513,18.278 23.513,17.880 C23.513,17.481 23.191,17.158 22.794,17.158 C21.934,17.158 21.537,16.893 21.036,16.558 C20.474,16.183 19.777,15.715 18.481,15.715 C17.185,15.715 16.487,16.183 15.926,16.558 C15.425,16.893 15.028,17.158 14.168,17.158 C13.307,17.158 12.912,16.893 12.411,16.558 C11.850,16.183 11.152,15.715 9.857,15.715 C8.563,15.715 7.866,16.183 7.306,16.558 C6.806,16.893 6.411,17.158 5.551,17.158 C4.692,17.158 4.296,16.893 3.796,16.558 C3.235,16.183 2.537,15.715 1.242,15.715 C0.846,15.715 0.524,16.038 0.524,16.437 C0.524,16.835 0.846,17.158 1.242,17.158 L1.242,17.158 ZM22.794,21.038 C21.934,21.038 21.537,20.773 21.036,20.438 C20.474,20.063 19.777,19.595 18.481,19.595 C17.185,19.595 16.487,20.063 15.926,20.438 C15.425,20.773 15.028,21.038 14.168,21.038 C13.307,21.038 12.912,20.773 12.411,20.438 C11.850,20.063 11.152,19.595 9.857,19.595 C8.563,19.595 7.866,20.063 7.306,20.438 C6.806,20.773 6.411,21.038 5.551,21.038 C4.692,21.038 4.296,20.773 3.796,20.438 C3.235,20.063 2.537,19.595 1.242,19.595 C0.846,19.595 0.524,19.918 0.524,20.317 C0.524,20.715 0.846,21.038 1.242,21.038 C2.102,21.038 2.498,21.304 2.998,21.638 C3.558,22.014 4.257,22.481 5.551,22.481 C6.846,22.481 7.543,22.014 8.103,21.638 C8.603,21.304 8.998,21.038 9.857,21.038 C10.718,21.038 11.113,21.304 11.615,21.638 C12.175,22.014 12.873,22.481 14.168,22.481 C15.464,22.481 16.162,22.014 16.722,21.638 C17.224,21.304 17.620,21.038 18.481,21.038 C19.342,21.038 19.738,21.304 20.240,21.638 C20.801,22.014 21.498,22.481 22.794,22.481 C23.191,22.481 23.513,22.158 23.513,21.760 C23.513,21.361 23.191,21.038 22.794,21.038 L22.794,21.038 ZM3.527,14.664 C3.924,14.664 3.1000,14.399 3.1000,14.000 L3.1000,9.1000 L13.1000,9.1000 L13.1000,14.000 C13.1000,14.399 14.004,14.664 14.401,14.664 C14.797,14.664 15.000,14.399 15.000,14.000 L15.000,5.000 C15.000,3.286 16.508,2.338 18.215,2.338 C19.922,2.338 21.312,3.734 21.312,5.449 C21.312,5.848 21.633,6.171 22.030,6.171 C22.427,6.171 22.748,5.848 22.748,5.449 C22.748,2.939 20.714,0.896 18.215,0.896 C15.717,0.896 13.1000,2.489 13.1000,5.000 L13.1000,9.000 L3.1000,9.000 L3.1000,5.000 C3.1000,3.286 5.635,2.338 7.342,2.338 C9.049,2.338 10.439,3.734 10.439,5.449 C10.439,5.848 10.761,6.171 11.158,6.171 C11.554,6.171 11.876,5.848 11.876,5.449 C11.873,2.936 9.845,0.899 7.342,0.896 C4.839,0.899 3.002,2.487 3.000,5.000 L3.000,14.000 C3.000,14.399 3.130,14.664 3.527,14.664 L3.527,14.664 Z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="26px" height="17px"><path fill-rule="evenodd" fill="rgb(146, 154, 160)" d="M23.1000,13.1000 L23.1000,15.000 C23.1000,16.263 22.595,17.002 21.297,17.002 C19.999,17.002 18.1000,16.263 18.1000,15.000 L18.1000,10.1000 L6.1000,10.1000 L6.1000,15.000 C6.1000,16.263 6.004,17.002 4.706,17.002 C3.408,17.002 2.356,15.978 2.356,14.715 L2.356,13.859 C1.979,13.989 1.483,14.002 1.000,13.1000 C0.571,13.998 0.006,13.947 0.006,13.000 L0.006,4.997 C0.006,4.050 0.795,3.282 1.768,3.282 C2.005,3.282 2.197,3.329 2.356,3.412 L2.356,3.282 C2.356,2.676 2.604,2.094 3.044,1.666 C3.485,1.237 4.083,0.996 4.706,0.996 C4.706,0.996 5.465,0.787 6.368,1.666 C6.809,2.094 6.1000,2.394 6.1000,3.000 L6.1000,6.1000 L18.1000,6.1000 L18.1000,3.1000 C18.1000,1.780 19.927,0.996 21.297,0.996 C22.472,0.926 23.952,1.658 23.1000,3.000 L23.1000,3.320 C24.075,3.301 24.152,3.286 24.235,3.282 C25.208,3.282 25.997,4.050 25.997,4.997 L25.997,13.000 C25.997,13.947 24.973,13.1000 23.1000,13.1000 ZM1.768,4.426 C1.768,4.426 1.000,4.382 1.000,5.000 L1.000,12.1000 C0.1000,13.571 1.988,13.387 1.1000,12.1000 L1.1000,5.000 C1.1000,4.684 2.093,4.426 1.768,4.426 ZM6.000,10.1000 L6.000,6.1000 L6.000,3.1000 C6.048,1.941 4.1000,2.000 4.1000,2.000 C4.098,1.853 2.905,2.276 3.000,3.1000 L3.000,5.000 L3.000,12.1000 L3.000,13.1000 C3.148,15.694 4.351,15.1000 4.1000,15.1000 C5.649,15.1000 6.000,14.631 6.000,13.1000 L6.000,10.1000 ZM6.1000,8.000 L6.1000,9.1000 L18.1000,9.1000 L18.1000,8.000 L6.1000,8.000 ZM21.297,2.139 C20.810,2.139 19.1000,2.412 19.1000,3.1000 L19.1000,6.1000 L19.1000,10.1000 L19.1000,15.000 C19.1000,15.631 20.648,15.858 21.297,15.858 C21.946,15.858 23.000,15.631 23.000,15.000 L23.000,12.1000 L23.000,5.000 L23.000,3.1000 C23.162,2.860 22.369,1.955 21.297,2.139 ZM25.000,5.000 C25.000,4.848 24.760,4.700 24.650,4.593 C24.540,4.486 24.391,4.426 24.235,4.426 C24.078,4.426 24.020,4.488 23.1000,4.586 L23.1000,5.000 L23.1000,12.1000 C23.1000,13.176 24.138,13.484 25.000,12.1000 L25.000,5.000 Z"/></svg>
\ No newline at end of file
......@@ -73,6 +73,8 @@ import {getBaseInfoByActiveId} from "@/apiPc/booking";
import * as match from "@/apiPc/match";
import useUserStore from "@/store/modules/user";
const emit = defineEmits(['pickUp'])
const props = defineProps({
matchId: {
type: String,
......@@ -147,7 +149,7 @@ function applyInvitation() {
const user = useUserStore().user
function goMedia() {
proxy.$modal.msgWarning(language.value == 0 ? '暂未开放' :'Not yet open')
proxy.$modal.msgWarning(language.value == 0 ? '暂未开放' : 'Not yet open')
return;
//如果没登录
......@@ -197,6 +199,13 @@ function popRemark(type) {
building()
return
}
if (type == '2') {
emit("pickUp")
return;
}
const params = {
matchId: props.matchId,
title: language.value == 0 ? '预订说明' : 'Booking Instructions',
......
......@@ -22,15 +22,20 @@
</div>
<div v-if="form.type?.some(v=>v==1)">
<h3 class="leftboderTT">{{ language == 0 ? '接机信息' : 'Pick-up information' }}</h3>
<el-form-item :label="language==0?'抵达人员身份':'Role of Person-Arrival'" prop="pickUpBo.standing"
required>
<el-checkbox-group v-model="form.pickUpBo.standing">
<el-checkbox :label="language==0?'运动员':'Athlete'" name="1"/>
<el-checkbox :label="language==0?'随队人员':'Accompanying Person'" name="2"/>
<el-checkbox :label="language==0?'官员':'Official'" name="3"/>
<el-checkbox :label="language==0?'其他':'Others'" name="4"/>
</el-checkbox-group>
<!-- <el-form-item :label="language==0?'抵达人员身份':'Role of Person-Arrival'" prop="pickUpBo.standing"-->
<!-- required>-->
<!-- <el-checkbox-group v-model="form.pickUpBo.standing">-->
<!-- <el-checkbox :label="language==0?'运动员':'Athlete'" name="1"/>-->
<!-- <el-checkbox :label="language==0?'随队人员':'Accompanying Person'" name="2"/>-->
<!-- <el-checkbox :label="language==0?'官员':'Official'" name="3"/>-->
<!-- <el-checkbox :label="language==0?'其他':'Others'" name="4"/>-->
<!-- </el-checkbox-group>-->
<!-- </el-form-item>-->
<el-form-item :label="language==0?'队伍俱乐部':'Team/Club Name'" prop="pickUpBo.standing" required>
<el-input v-model="form.pickUpBo.standing"/>
</el-form-item>
<el-form-item :label="language==0?'国家/地区':'Country/Region'" prop="pickUpBo.nationalitys" required>
<el-select v-model="form.pickUpBo.nationalitys" filterable multiple style="width: 100%;">
<el-option v-for="item in countrys"
......@@ -97,23 +102,35 @@
:is-show-tip="false"
:limit="1"/>
</el-form-item>
<el-form-item :label="language==0?'酒店预订单':'Hotel Reservation'" prop="pickUpBo.hotleFile" required>
<image-upload v-model="form.pickUpBo.hotleFile" :button-text="language==0?'上传':'Upload'"
:is-show-tip="false"
:limit="1"/>
</el-form-item>
</div>
<div v-if="form.type?.some(v=>v==2)">
<!-- <el-form-item :label="language == 0 ? '送机信息' : 'Delivery information' ">-->
<!-- </el-form-item>-->
<h3 class="leftboderTT">{{ language == 0 ? '送机信息' : 'Delivery information' }}</h3>
<el-form-item
:label="language==0?'离会人员身份':'Role of Person-Departure'"
prop="downOffBo.standing" required>
<!-- <el-input v-model="form.downOffBo.standing"/>-->
<el-checkbox-group v-model="form.downOffBo.standing">
<el-checkbox :label="language==0?'运动员':'Athlete'" name="1"/>
<el-checkbox :label="language==0?'随队人员':'Accompanying Person'" name="2"/>
<el-checkbox :label="language==0?'官员':'Official'" name="3"/>
<el-checkbox :label="language==0?'其他':'Others'" name="4"/>
</el-checkbox-group>
<!-- <el-form-item-->
<!-- :label="language==0?'离会人员身份':'Role of Person-Departure'"-->
<!-- prop="downOffBo.standing" required>-->
<!-- &lt;!&ndash; <el-input v-model="form.downOffBo.standing"/>&ndash;&gt;-->
<!-- <el-checkbox-group v-model="form.downOffBo.standing">-->
<!-- <el-checkbox :label="language==0?'运动员':'Athlete'" name="1"/>-->
<!-- <el-checkbox :label="language==0?'随队人员':'Accompanying Person'" name="2"/>-->
<!-- <el-checkbox :label="language==0?'官员':'Official'" name="3"/>-->
<!-- <el-checkbox :label="language==0?'其他':'Others'" name="4"/>-->
<!-- </el-checkbox-group>-->
<!-- </el-form-item>-->
<el-form-item :label="language==0?'队伍俱乐部':'Team/Club Name'" prop="pickUpBo.standing" required>
<el-input v-model="form.pickUpBo.standing"/>
</el-form-item>
<el-form-item :label="language==0?'国家/地区':'Country/Region'" prop="downOffBo.nationalitys" required>
<el-select v-model="form.downOffBo.nationalitys" filterable multiple style="width: 100%;">
<el-option v-for="item in countrys"
......@@ -181,6 +198,13 @@
:is-show-tip="false"
:limit="1"/>
</el-form-item>
<el-form-item :label="language==0?'酒店预订单':'Hotel Reservation'" prop="pickUpBo.hotleFile" required>
<image-upload v-model="form.pickUpBo.hotleFile" :button-text="language==0?'上传':'Upload'"
:is-show-tip="false"
:limit="1"/>
</el-form-item>
</div>
<div class="text-center">
......
......@@ -108,7 +108,7 @@
</div>
<div class="box">
<HomeQuick :match-id="matchData?.id" :cpt-name="matchData?.name"/>
<HomeQuick :match-id="matchData?.id" :cpt-name="matchData?.name" @pick-up="handlePickup"/>
</div>
<div id="part0" class="box part">
......@@ -530,6 +530,7 @@ const gopicliveUrl = () => {
ElMessage.warning('暂无直播')
}
}
</script>
<style scoped lang="scss">
......
......@@ -93,7 +93,7 @@
</div>
<div class="box">
<HomeQuick :match-id="matchData?.id" :cpt-name="matchData?.name"/>
<HomeQuick :match-id="matchData?.id" :cpt-name="matchData?.name" @pick-up="handlePickup"/>
</div>
......
......@@ -38,12 +38,15 @@
<el-option :label="language==0?'TE/PU(外办)邀请函':'TE/PU Invitation'" value="2"/>
</el-select>
</el-form-item>
<el-form-item v-if="form.invitationType=='2'" label="Proof of Employment" required prop="invitationFile">
<el-text type="danger">Proof of Employment(Note: This document must be issued by the invitee’s association and must bear an official stamp or signature.)</el-text>
<el-form-item v-if="form.invitationType=='2'" label="Proof of Employment" required prop="invitationFileArr">
<el-text type="danger">Proof of Employment(Note: This document must be issued by the invitee’s association and
must bear an official stamp or signature.)
</el-text>
<br/>
<file-upload v-model="form.invitationFile" :is-show-tip="false" :limit="1"></file-upload>
<file-upload v-model="form.invitationFileArr" :is-show-tip="false" :limit="1"></file-upload>
</el-form-item>
<el-form-item :label="language==0?'是否需要中文邀请函':'Do you need a Chinese invitation?'" required prop="chinese">
<el-form-item :label="language==0?'是否需要中文邀请函':'Do you need a Chinese invitation?'" required
prop="chinese">
<el-radio-group v-model="form.chinese">
<el-radio :value="1">{{ language == 0 ? '是' : 'Yes' }}</el-radio>
<el-radio :value="0">{{ language == 0 ? '否' : 'No' }}</el-radio>
......@@ -53,7 +56,7 @@
<!-- 一般信息-->
<el-form-item :label="language==0?'国家/地区协会名':'MNA/Team Name'" :required="form.applicatType==1"
prop="associationCode">
<el-select v-model="form.associationCode" filterable>
<el-select v-model="form.associationCode" filterable clearable>
<el-option v-for="item in mnaList" :key="item.code" :label="language==0?item.nameCn:item.nameEn"
:value="item.code"/>
</el-select>
......@@ -63,7 +66,8 @@
<el-input v-model="form.associationAddress"/>
</el-form-item>
<el-form-item :label="language==0?'邮箱':'Contact Email'" required prop="email">
<el-text type="danger">Note: Notifications from the organizing committee will be sent to this email address.</el-text>
<el-text type="danger">Note: Notifications from the organizing committee will be sent to this email address.
</el-text>
<el-input v-model="form.email" type="email">
<template #append>
<el-button @click="sendEmail" v-loading="codeloading">
......@@ -71,7 +75,7 @@
</el-button>
</template>
</el-input>
<!-- <div class="tip"></div>-->
<!-- <div class="tip"></div>-->
</el-form-item>
<el-form-item prop="code" required>
<el-input placeholder="Email verification code" v-model="form.code"/>
......@@ -92,6 +96,8 @@
<el-input v-model="form.phone"/>
</el-form-item>
<el-form-item :label="language==0?'签证办理中国大使馆':'Chinese Embassy Visas Office'" required prop="embassy">
<el-text type="danger">Ex:EMBASSY OF THE PEOPLE'S REPUBLIC OFCHINA IN THE ISLAMIC REPUBLIC OF PAKISTAN
</el-text>
<el-input v-model="form.embassy"/>
</el-form-item>
<el-form-item :label="language==0?'中国大使馆邮箱':'Chinese Embassy Email'" required prop="embassyEmail">
......@@ -101,7 +107,9 @@
<!--上传护照,多张-->
<div class="cptVisaInfoBosTable">
<el-form-item :label="language==0?'有效证件':'Passport Copy'" required>
<el-text type="danger">Please ensure that the uploaded passport image is clear, complete, and free from glare or reflections.</el-text>
<el-text type="danger">Please ensure that the uploaded passport image is clear, complete, and free from
glare or reflections.
</el-text>
<ImageUpload v-model="form.passportCopy" :is-show-tip="false" :limit="20"
:action="'/league/visa/getPersonInfoFromCert/3'"
paramName="pic" list-type="text" :show-file-list="false"
......@@ -129,7 +137,19 @@
</div>
</template>
<template #default="scope">
<el-input v-model="scope.row.position" size="small"/>
<el-select v-model="scope.row.position" size="small">
<el-option label="Head Of Team" value="Head Of Team"/>
<el-option label="Head Coach" value="Head Coach"/>
<el-option label="Manager" value="Manager"/>
<el-option label="Coach" value="Coach"/>
<el-option label="Trainer" value="Trainer"/>
<el-option label="Team Doctor" value="Team Doctor"/>
<el-option label="Team Physiotherepaist" value="Team Physiotherepaist"/>
<el-option label="Competitor" value="Competitor"/>
<el-option label="MNA Official" value="MNA Official"/>
<el-option label="MNA Guest" value="MNA Guest"/>
</el-select>
</template>
</el-table-column>
<el-table-column prop="lastName" :label="'lastName'" min-width="100">
......@@ -334,27 +354,31 @@ function getMNAList() {
const submit = () => {
console.log(form.value)
if (form.value.email?.indexOf('@') == -1) {
ElMessage.warning(language.value == 0?'请填写正确的邮箱':'Invalid Emaill Address!')
ElMessage.warning(language.value == 0 ? '请填写正确的邮箱' : 'Invalid Emaill Address!')
return
}
if(form.value.applicatType==5 && !form.value.remarks){
if (form.value.applicatType == 5 && !form.value.remarks) {
ElMessage.warning('Please specify Applicant Type')
return
}
if(form.value.position==3 && !form.value.remarks1){
if (form.value.position == 3 && !form.value.remarks1) {
ElMessage.warning('Please specify position')
return
}
for (let row of form.value.cptVisaInfoBos){
if(!row.position){
ElMessage.warning(`Please specify ${row.fristName}'s position`)
return
}
for (let row of form.value.cptVisaInfoBos) {
if (!row.position) {
ElMessage.warning(`Please specify ${row.fristName}'s position`)
return
}
}
if (form.value.files && Array.isArray(form.value.files)) {
form.value.files = form.value.files[0]?.url
}
if (form.value.invitationFileArr) {
form.value.invitationFile = JSON.stringify(form.value.invitationFileArr)
}
proxy.$refs.iformRef.validate(valid => {
if (valid) {
ElMessageBox.confirm(
......@@ -366,8 +390,8 @@ const submit = () => {
}).then(() => {
form.value.cptId = cptId.value
addInvitation(form.value).then((res) => {
if(res.data==-200){
ElMessage.error(language.value == 0 ? '邮箱验证码不正确':'Invalid email verification code')
if (res.data == -200) {
ElMessage.error(language.value == 0 ? '邮箱验证码不正确' : 'Invalid email verification code')
} else {
ElMessage.success(language.value == 0 ? '提交成功' : 'Successfully!')
showR.value = true
......@@ -399,19 +423,20 @@ const getPassportInfo = (res) => {
}
function delPassportInfo(row) {
console.log(row,form.value.cptVisaInfoBos)
if(form.value.cptVisaInfoBos.length==1){
console.log(row, form.value.cptVisaInfoBos)
if (form.value.cptVisaInfoBos.length == 1) {
form.value.cptVisaInfoBos = []
}else {
for(let n of form.value.cptVisaInfoBos){
if(n.passportNo==row.passportNo){
form.value.cptVisaInfoBos.splice(form.value.cptVisaInfoBos.indexOf(n),1)
} else {
for (let n of form.value.cptVisaInfoBos) {
if (n.passportNo == row.passportNo) {
form.value.cptVisaInfoBos.splice(form.value.cptVisaInfoBos.indexOf(n), 1)
}
}
}
}
function sendEmail() {
if(!form.value.email){
if (!form.value.email) {
ElMessage.error(language.value == 0 ? '请输入邮箱' : 'Please enter contact Email')
return
}
......@@ -420,11 +445,11 @@ function sendEmail() {
return
}
codeloading.value = true
sendVisaCode({email:form.value.email}).then(res=>{
sendVisaCode({email: form.value.email}).then(res => {
codeloading.value = false
if(res.code == 200){
if (res.code == 200) {
ElMessage.success(language.value == 0 ? '发送成功,请前往邮箱查看' : 'Send success, please check your email')
}else{
} else {
ElMessage.error(res.msg)
}
})
......@@ -432,7 +457,10 @@ function sendEmail() {
</script>
<style scoped lang="scss">
.red{color: red!important;}
.red {
color: red !important;
}
:deep(.el-upload--picture-card) {
--el-upload-picture-card-size: 60px;
}
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!