no message
Showing
6 changed files
with
318 additions
and
54 deletions
| ... | @@ -28,7 +28,7 @@ | ... | @@ -28,7 +28,7 @@ |
| 28 | <el-upload | 28 | <el-upload |
| 29 | ref="imageUpload" | 29 | ref="imageUpload" |
| 30 | :multiple="limit > 1" | 30 | :multiple="limit > 1" |
| 31 | :action="uploadImgUrl" | 31 | :action="actionUrl || uploadImgUrl" |
| 32 | list-type="picture-card" | 32 | list-type="picture-card" |
| 33 | :on-success="handleUploadSuccess" | 33 | :on-success="handleUploadSuccess" |
| 34 | :before-upload="handleBeforeUpload" | 34 | :before-upload="handleBeforeUpload" |
| ... | @@ -107,9 +107,15 @@ const props = defineProps({ | ... | @@ -107,9 +107,15 @@ const props = defineProps({ |
| 107 | disabled: { | 107 | disabled: { |
| 108 | type: Boolean, | 108 | type: Boolean, |
| 109 | default: false | 109 | default: false |
| 110 | }, | ||
| 111 | action: { | ||
| 112 | type: String, | ||
| 113 | default: '' | ||
| 110 | } | 114 | } |
| 111 | }) | 115 | }) |
| 112 | 116 | const actionUrl = computed(() => { | |
| 117 | return props.action ? baseUrl + props.action : '' | ||
| 118 | }) | ||
| 113 | const accept = computed(() => { | 119 | const accept = computed(() => { |
| 114 | return _.map(props.fileType, (t) => { | 120 | return _.map(props.fileType, (t) => { |
| 115 | if (t.indexOf('.') === 0) { | 121 | if (t.indexOf('.') === 0) { |
| ... | @@ -128,7 +134,7 @@ const dialogImageUrl = ref('') | ... | @@ -128,7 +134,7 @@ const dialogImageUrl = ref('') |
| 128 | const dialogVisible = ref(false) | 134 | const dialogVisible = ref(false) |
| 129 | const baseUrl = import.meta.env.VITE_APP_BASE_API | 135 | const baseUrl = import.meta.env.VITE_APP_BASE_API |
| 130 | const uploadImgUrl = ref( | 136 | const uploadImgUrl = ref( |
| 131 | import.meta.env.VITE_APP_BASE_API + '/upload/uploadImgToLocalServer' | 137 | baseUrl + '/upload/uploadImgToLocalServer' |
| 132 | ) // 上传的图片服务器地址 | 138 | ) // 上传的图片服务器地址 |
| 133 | const headers = ref({ Authorization: 'Bearer ' + getToken() }) | 139 | const headers = ref({ Authorization: 'Bearer ' + getToken() }) |
| 134 | const fileList = ref([]) | 140 | const fileList = ref([]) | ... | ... |
| ... | @@ -225,14 +225,14 @@ function goBooking(n) { | ... | @@ -225,14 +225,14 @@ function goBooking(n) { |
| 225 | box-shadow: 0px 0px 21px 0px rgba(41, 23, 101, 0.14); | 225 | box-shadow: 0px 0px 21px 0px rgba(41, 23, 101, 0.14); |
| 226 | margin: 10px 0; | 226 | margin: 10px 0; |
| 227 | display: flex; | 227 | display: flex; |
| 228 | align-items: center; | 228 | align-items: center;justify-content: center; |
| 229 | font-size: 20px; | 229 | font-size: 20px; |
| 230 | background: url("@/assets/dance/btn_bg.png") no-repeat left #FFFFFF; | 230 | background: url("@/assets/dance/btn_bg.png") no-repeat left #FFFFFF; |
| 231 | background-size: 100% 100%; | 231 | background-size: 100% 100%; |
| 232 | border-radius: 15px; | 232 | border-radius: 15px; |
| 233 | 233 | ||
| 234 | img { | 234 | img {object-fit: contain; |
| 235 | margin: 0 5%;width: 75px; | 235 | margin: 0 5%;width: 75px;height: 75px; |
| 236 | } | 236 | } |
| 237 | } | 237 | } |
| 238 | .itemBox_en{} | 238 | .itemBox_en{} | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <el-dialog v-model="show" :title="title" width="500px" close-icon="CircleClose" center destroy-on-close> | 2 | <el-dialog v-model="show" :title="title" width="500px" close-icon="CircleClose" center destroy-on-close> |
| 3 | <div class="pd20"> | 3 | <div class="pd20" v-loading="loading"> |
| 4 | <el-form ref="dialogRef" label-position="top" :model="form" :rules="rules" v-if="!isDone"> | 4 | <el-form ref="dialogRef" label-position="top" :model="form" :rules="rules" v-if="!isDone"> |
| 5 | <el-form-item :label="language==0?'姓氏':'family name'" required prop="lastName"> | 5 | <el-form-item :label="language==0?'姓氏':'family name'" required prop="lastName"> |
| 6 | <el-input v-model="form.lastName"></el-input> | 6 | <el-input v-model="form.lastName"></el-input> |
| ... | @@ -55,10 +55,13 @@ | ... | @@ -55,10 +55,13 @@ |
| 55 | <span v-if="form.mediaType==1">Photographer</span> | 55 | <span v-if="form.mediaType==1">Photographer</span> |
| 56 | <span v-if="form.mediaType==2">TV Non-Rights Holder</span> | 56 | <span v-if="form.mediaType==2">TV Non-Rights Holder</span> |
| 57 | </el-descriptions-item> | 57 | </el-descriptions-item> |
| 58 | <el-descriptions-item :label="language==0?'国家(地区)':'country'">{{form.country}}</el-descriptions-item>/> | 58 | <el-descriptions-item :label="language==0?'国家(地区)':'country'"> |
| 59 | <span v-if="language=='0'">{{form.name}}</span> | ||
| 60 | <span v-if="language=='1'">{{form.enName}}</span> | ||
| 61 | </el-descriptions-item> | ||
| 59 | <el-descriptions-item :label="language==0?'证件类型':'ID type'"> | 62 | <el-descriptions-item :label="language==0?'证件类型':'ID type'"> |
| 60 | <span v-if="form.passType==0">身份证</span> | 63 | <span v-if="form.passType==0">{{ language==0?'身份证':'ID Card' }}</span> |
| 61 | <span v-if="form.passType==1">护照</span> | 64 | <span v-if="form.passType==1">{{ language==0?'护照':'Passport' }}</span> |
| 62 | </el-descriptions-item> | 65 | </el-descriptions-item> |
| 63 | <el-descriptions-item :label="language==0?'证件号码':'ID NO.'">{{form.idCard}}</el-descriptions-item> | 66 | <el-descriptions-item :label="language==0?'证件号码':'ID NO.'">{{form.idCard}}</el-descriptions-item> |
| 64 | <el-descriptions-item :label="language==0?'邮箱':'work email'">{{form.email}}</el-descriptions-item> | 67 | <el-descriptions-item :label="language==0?'邮箱':'work email'">{{form.email}}</el-descriptions-item> |
| ... | @@ -67,7 +70,9 @@ | ... | @@ -67,7 +70,9 @@ |
| 67 | </el-descriptions-item> | 70 | </el-descriptions-item> |
| 68 | </el-descriptions> | 71 | </el-descriptions> |
| 69 | 72 | ||
| 70 | <el-result icon="success" title="已提交" sub-title="提交后需要修改请联系XXXX邮箱" /> | 73 | <el-result icon="success" |
| 74 | :title="language==0?'已提交':'Submitted'" | ||
| 75 | :sub-title="language==0?'提交后需要修改请联系XXXX邮箱':'Submitted, please modify contact XXXX email'" /> | ||
| 71 | 76 | ||
| 72 | </div> | 77 | </div> |
| 73 | 78 | ||
| ... | @@ -88,6 +93,7 @@ import {getMediaInfo, mediaRegister} from "/@/apiPc/common"; | ... | @@ -88,6 +93,7 @@ import {getMediaInfo, mediaRegister} from "/@/apiPc/common"; |
| 88 | import useUserStore from "@/store/modules/user"; | 93 | import useUserStore from "@/store/modules/user"; |
| 89 | import {ElMessageBox} from "element-plus"; | 94 | import {ElMessageBox} from "element-plus"; |
| 90 | const language = useStorage('language', 0) | 95 | const language = useStorage('language', 0) |
| 96 | const loading = ref(false) | ||
| 91 | const show = ref(false) | 97 | const show = ref(false) |
| 92 | const title = ref('') | 98 | const title = ref('') |
| 93 | const form = ref({}) | 99 | const form = ref({}) |
| ... | @@ -134,7 +140,9 @@ const open = (params) => { | ... | @@ -134,7 +140,9 @@ const open = (params) => { |
| 134 | } | 140 | } |
| 135 | defineExpose({open}) | 141 | defineExpose({open}) |
| 136 | function getInfo() { | 142 | function getInfo() { |
| 137 | getMediaInfo({userId: user.userId}).then(res=>{ | 143 | loading.value = true |
| 144 | getMediaInfo({userId: user.userId,cptId: form.value.cptId}).then(res=>{ | ||
| 145 | loading.value = false | ||
| 138 | if(res.data){ | 146 | if(res.data){ |
| 139 | isDone.value = true | 147 | isDone.value = true |
| 140 | form.value = res.data | 148 | form.value = res.data | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div> | 2 | <div class="syBg"> |
| 3 | <div class="banner"> | 3 | <div class="banner"> |
| 4 | <el-carousel height="450px" autoplay :interval="2000" class="forPc" :autoplay="false" arrow="hover" @change="carouselChange"> | 4 | <el-carousel height="450px" autoplay :interval="2000" class="forPc" :autoplay="false" arrow="hover" @change="carouselChange"> |
| 5 | <el-carousel-item style="height: 450px;" v-for="n in maList" :key="n.id"> | 5 | <el-carousel-item style="height: 450px;" v-for="n in maList" :key="n.id"> |
| ... | @@ -506,6 +506,11 @@ const gopicliveUrl = () => { | ... | @@ -506,6 +506,11 @@ const gopicliveUrl = () => { |
| 506 | </script> | 506 | </script> |
| 507 | 507 | ||
| 508 | <style scoped lang="scss"> | 508 | <style scoped lang="scss"> |
| 509 | .syBg{ | ||
| 510 | background: url("@/assets/dance/logo_l.png") no-repeat left 98%, | ||
| 511 | url("@/assets/dance/logo_r1.png") no-repeat right 98%; | ||
| 512 | background-size: 30%; | ||
| 513 | } | ||
| 509 | .btabs{display: flex;position: absolute;bottom: 60px;gap: 10px; | 514 | .btabs{display: flex;position: absolute;bottom: 60px;gap: 10px; |
| 510 | div{color: #fff; background-color: rgba(0, 0, 0, 0.5); | 515 | div{color: #fff; background-color: rgba(0, 0, 0, 0.5); |
| 511 | backdrop-filter: blur(4px);border: 2px solid #9ba6d4;border-radius: 50px; | 516 | backdrop-filter: blur(4px);border: 2px solid #9ba6d4;border-radius: 50px; | ... | ... |
| 1 | <template> | ||
| 2 | <el-dialog | ||
| 3 | v-model="show" :title="title" width="600px" append-to-body close-icon="CircleClose" center | ||
| 4 | :close-on-click-modal="false" class="pcloginpop" | ||
| 5 | destroy-on-close | ||
| 6 | > | ||
| 7 | <div class="boxInvitation pd20"> | ||
| 8 | |||
| 9 | <div class="text-center pd20" v-if="showR"> | ||
| 10 | <img class="mauto" src="@/assets/dance/ok.png"/> | ||
| 11 | <!-- <h2 class="text-center">{{ language == 0 ? '申请已提交' : 'Submitted successfully' }}</h2>--> | ||
| 12 | <h4 class="text-center" v-if="language == 0"> | ||
| 13 | 我们已收到您的邀请函申请,并将尽快处理。请耐心等待。 | ||
| 14 | </h4> | ||
| 15 | <h4 v-else> | ||
| 16 | Your invitation letter application has been received,<br/> | ||
| 17 | and we will process it as soon as possible. | ||
| 18 | <br/> | ||
| 19 | Please be patient while waiting. | ||
| 20 | </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> | ||
| 25 | |||
| 26 | <el-form :model="form" :rules="rules" ref="iformRef" label-position="right" label-width="150px" v-else> | ||
| 27 | <el-form-item :label="language==0?'姓名':'Name'" required prop="name"> | ||
| 28 | <el-input v-model="form.name"/> | ||
| 29 | </el-form-item> | ||
| 30 | <el-form-item :label="language==0?'性别':'Gender'" required prop="gender"> | ||
| 31 | <el-radio-group v-model="form.gender"> | ||
| 32 | <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio> | ||
| 33 | <el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio> | ||
| 34 | </el-radio-group> | ||
| 35 | </el-form-item> | ||
| 36 | <el-form-item :label="language==0?'国籍':'Nationality'" required prop="nationality"> | ||
| 37 | <el-select filterable v-model="form.nationality" style="width: 100%;"> | ||
| 38 | <el-option v-for="item in countrys" :key="item.id" :label="language==0?item.name:item.enName" | ||
| 39 | :value="item.id"/> | ||
| 40 | </el-select> | ||
| 41 | </el-form-item> | ||
| 42 | <el-form-item :label="language==0?'出生日期':'Date of Birth'" required prop="birth"> | ||
| 43 | <el-date-picker | ||
| 44 | v-model="form.birth" | ||
| 45 | style="width: 100%;" placeholder="YYYY-MM-DD" | ||
| 46 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | ||
| 47 | /> | ||
| 48 | </el-form-item> | ||
| 49 | <el-form-item :label="language==0?'邮箱':'Email'" required prop="email"> | ||
| 50 | <el-input v-model="form.email" type="email"/> | ||
| 51 | <div class="tip" v-if="language == 0">如以团队名义申请邀请函,建议统一填写领队邮箱。</div> | ||
| 52 | <div class="tip" v-else> | ||
| 53 | If a visa invitation letter is applied by the organization, it is recommended to fill in the email of the head of team. | ||
| 54 | </div> | ||
| 55 | </el-form-item> | ||
| 56 | <el-form-item :label="language==0?'护照号':'Passport No.'" required prop="passportNo"> | ||
| 57 | <el-input v-model="form.passportNo"/> | ||
| 58 | </el-form-item> | ||
| 59 | <el-form-item :label="language==0?'有效证件':'Passport Copy'" required prop="passportCopy"> | ||
| 60 | <image-upload v-model="form.passportCopy" :limit="1" :is-show-tip="false" | ||
| 61 | :button-text="language==0?'上传':'Upload'"/> | ||
| 62 | </el-form-item> | ||
| 63 | <el-form-item :label="language==0?'抵达日期':'Date of Arrival'" required prop="arrival"> | ||
| 64 | <el-date-picker | ||
| 65 | v-model="form.arrival" placeholder="YYYY-MM-DD" | ||
| 66 | style="width: 100%;" | ||
| 67 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | ||
| 68 | /> | ||
| 69 | </el-form-item> | ||
| 70 | <el-form-item :label="language==0?'出发日期':'Date of Departure'" required prop="departure"> | ||
| 71 | <el-date-picker | ||
| 72 | v-model="form.departure" | ||
| 73 | style="width: 100%;" placeholder="YYYY-MM-DD" | ||
| 74 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | ||
| 75 | /> | ||
| 76 | </el-form-item> | ||
| 77 | <el-form-item :label="language==0?'备注':'Remark '"> | ||
| 78 | <el-input type="textarea" v-model="form.remark" rows="3"/> | ||
| 79 | </el-form-item> | ||
| 80 | |||
| 81 | <div class="text-center"> | ||
| 82 | <el-button type="primary" size="large" @click="submit" round class="btn-lineG"> | ||
| 83 | {{ language == 0 ? '提交' : 'SUBMIT' }} | ||
| 84 | </el-button> | ||
| 85 | </div> | ||
| 86 | </el-form> | ||
| 87 | </div> | ||
| 88 | </el-dialog> | ||
| 89 | |||
| 90 | </template> | ||
| 91 | |||
| 92 | <script setup> | ||
| 93 | import {useStorage} from "@vueuse/core/index"; | ||
| 94 | import {getCurrentInstance, watch} from "vue"; | ||
| 95 | import {nextTick} from "@vue/runtime-core"; | ||
| 96 | import {ElMessage, ElMessageBox} from "element-plus"; | ||
| 97 | import {addInvitation, countryList} from "@/apiPc/match"; | ||
| 98 | import ImageUpload from "@/components/ImageUpload"; | ||
| 99 | |||
| 100 | const {proxy} = getCurrentInstance() | ||
| 101 | const language = useStorage('language', 0) | ||
| 102 | const form = ref({ | ||
| 103 | gender:'0' | ||
| 104 | }) | ||
| 105 | const show = ref(false) | ||
| 106 | const showR = ref(false) | ||
| 107 | const title = ref('') | ||
| 108 | const countrys = ref([]) | ||
| 109 | const cptId = ref('') | ||
| 110 | const rules = ref( | ||
| 111 | { | ||
| 112 | nationality: [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},], | ||
| 113 | name: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入' : 'Please enter'},], | ||
| 114 | email: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入' : 'Please enter'},], | ||
| 115 | birth: [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},], | ||
| 116 | passportNo: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入' : 'Please enter'},], | ||
| 117 | passportCopy: [{required: true, trigger: 'blur', message: language.value == 0 ? '请上传' : 'Please Upload'},], | ||
| 118 | arrival: [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},], | ||
| 119 | departure: [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},], | ||
| 120 | }) | ||
| 121 | const open = (params) => { | ||
| 122 | console.log(params) | ||
| 123 | show.value = true | ||
| 124 | title.value = params.title | ||
| 125 | cptId.value = params.cptId | ||
| 126 | } | ||
| 127 | defineExpose({open}) | ||
| 128 | watch(show, (value) => { | ||
| 129 | if (!value) { | ||
| 130 | form.value = { | ||
| 131 | sex: '0' | ||
| 132 | } | ||
| 133 | if (language.value == 0) { | ||
| 134 | form.value.countryId = 240 | ||
| 135 | } | ||
| 136 | } | ||
| 137 | nextTick(() => { | ||
| 138 | // proxy.$refs['dialogRef'].clearValidate() | ||
| 139 | }) | ||
| 140 | }) | ||
| 141 | getCountryList() | ||
| 142 | |||
| 143 | function getCountryList() { | ||
| 144 | countryList().then(res => { | ||
| 145 | countrys.value = res.data | ||
| 146 | }) | ||
| 147 | } | ||
| 148 | |||
| 149 | const submit = () => { | ||
| 150 | proxy.$refs.iformRef.validate(valid => { | ||
| 151 | if (form.value.email.indexOf('@') == -1) { | ||
| 152 | if (language.value == 0) { | ||
| 153 | ElMessage.warning('请填写正确的邮箱') | ||
| 154 | } else { | ||
| 155 | ElMessage.warning('Please fill in the correct email') | ||
| 156 | } | ||
| 157 | return | ||
| 158 | } | ||
| 159 | if (valid) { | ||
| 160 | ElMessageBox.confirm( | ||
| 161 | language.value == 0 ? '请确认信息正确并提交吗?' : 'Please confirm that the information is correct and submit it', | ||
| 162 | language.value == 0 ? '提示' : 'Tips', { | ||
| 163 | confirmButtonText: language.value == 0 ? '确定' : 'Confirm', | ||
| 164 | cancelButtonText: language.value == 0 ? '取消' : 'Cancel', | ||
| 165 | type: 'warning' | ||
| 166 | }).then(() => { | ||
| 167 | form.value.cptId = cptId.value | ||
| 168 | if (Array.isArray(form.value.passportCopy)) { | ||
| 169 | form.value.passportCopy = form.value.passportCopy[0].url | ||
| 170 | } | ||
| 171 | addInvitation(form.value).then((res) => { | ||
| 172 | ElMessage.success(language.value == 0 ?'提交成功':'Successfully!') | ||
| 173 | showR.value = true | ||
| 174 | }) | ||
| 175 | }) | ||
| 176 | } | ||
| 177 | }) | ||
| 178 | } | ||
| 179 | const conti = () => { | ||
| 180 | showR.value = false | ||
| 181 | form.value = { | ||
| 182 | gender: '0' | ||
| 183 | } | ||
| 184 | } | ||
| 185 | </script> | ||
| 186 | |||
| 187 | <style scoped lang="scss"> | ||
| 188 | .tip{font-size: 12px;} | ||
| 189 | .boxInvitation { | ||
| 190 | width: 90%; | ||
| 191 | margin: auto | ||
| 192 | } | ||
| 193 | h4{font-size: 15px;line-height: 1.6;} | ||
| 194 | </style> |
| ... | @@ -23,61 +23,112 @@ | ... | @@ -23,61 +23,112 @@ |
| 23 | </el-button> | 23 | </el-button> |
| 24 | </div> | 24 | </div> |
| 25 | 25 | ||
| 26 | <el-form :model="form" :rules="rules" ref="iformRef" label-position="right" label-width="150px" v-else> | 26 | <el-form :model="form" :rules="rules" ref="iformRef" label-position="top" v-else> |
| 27 | <el-form-item :label="language==0?'姓名':'Name'" required prop="name"> | 27 | <el-form-item :label="language==0?'申请人类别':'Applicant Type'"> |
| 28 | <el-input v-model="form.name"/> | 28 | <el-select v-model="form.type"> |
| 29 | <el-option label="MNA" value="1"/> | ||
| 30 | <el-option label="Technical Officials" value="2"/> | ||
| 31 | <el-option label="WT Staff" value="3"/> | ||
| 32 | <el-option label="Supplier" value="4"/> | ||
| 33 | <el-option label="Other" value="5"/> | ||
| 34 | </el-select> | ||
| 35 | <el-input v-if="form.type==5"/> | ||
| 29 | </el-form-item> | 36 | </el-form-item> |
| 30 | <el-form-item :label="language==0?'性别':'Gender'" required prop="gender"> | 37 | <el-form-item :label="language==0?'邀请函类别':'Application Type'" required prop="type"> |
| 31 | <el-radio-group v-model="form.gender"> | 38 | <el-select v-model="form.type"> |
| 32 | <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio> | 39 | <el-option label="一般邀请函" value="1"/> |
| 33 | <el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio> | 40 | <el-option label="TE/PU(外办)邀请函" value="2"/> |
| 41 | </el-select> | ||
| 42 | </el-form-item> | ||
| 43 | <el-form-item :label="language==0?'是否需要中文邀请函':'Chinese Invitation'"> | ||
| 44 | <el-radio-group> | ||
| 45 | <el-radio :label="1">{{ language==0?'是':'Yes' }}</el-radio> | ||
| 46 | <el-radio :label="0">{{ language==0?'否':'No' }}</el-radio> | ||
| 34 | </el-radio-group> | 47 | </el-radio-group> |
| 35 | </el-form-item> | 48 | </el-form-item> |
| 36 | <el-form-item :label="language==0?'国籍':'Nationality'" required prop="nationality"> | 49 | |
| 37 | <el-select filterable v-model="form.nationality" style="width: 100%;"> | 50 | <!-- 一般信息--> |
| 38 | <el-option v-for="item in countrys" :key="item.id" :label="language==0?item.name:item.enName" | 51 | <el-form-item :label="language==0?'国家/地区协会名':'MNA/Team Name'" required prop="teamName"> |
| 39 | :value="item.id"/> | 52 | <el-input v-model="form.teamName"/> |
| 40 | </el-select> | ||
| 41 | </el-form-item> | 53 | </el-form-item> |
| 42 | <el-form-item :label="language==0?'出生日期':'Date of Birth'" required prop="birth"> | 54 | <el-form-item :label="language==0?'国家/地区协会地址':'MNA/Team Address'" required prop="teamName"> |
| 43 | <el-date-picker | 55 | <el-input v-model="form.teamName"/> |
| 44 | v-model="form.birth" | ||
| 45 | style="width: 100%;" placeholder="YYYY-MM-DD" | ||
| 46 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | ||
| 47 | /> | ||
| 48 | </el-form-item> | 56 | </el-form-item> |
| 49 | <el-form-item :label="language==0?'邮箱':'Email'" required prop="email"> | 57 | <el-form-item :label="language==0?'邮箱':'Email'" required prop="email"> |
| 50 | <el-input v-model="form.email" type="email"/> | 58 | <el-input v-model="form.email" type="email"/> |
| 51 | <div class="tip" v-if="language == 0">如以团队名义申请邀请函,建议统一填写领队邮箱。</div> | 59 | <div class="tip"></div> |
| 52 | <div class="tip" v-else> | ||
| 53 | If a visa invitation letter is applied by the organization, it is recommended to fill in the email of the head of team. | ||
| 54 | </div> | ||
| 55 | </el-form-item> | 60 | </el-form-item> |
| 56 | <el-form-item :label="language==0?'护照号':'Passport No.'" required prop="passportNo"> | 61 | <el-form-item :label="language==0?'姓名':'Full Name'" required prop="name"> |
| 57 | <el-input v-model="form.passportNo"/> | 62 | <el-input v-model="form.name"/> |
| 58 | </el-form-item> | 63 | </el-form-item> |
| 59 | <el-form-item :label="language==0?'有效证件':'Passport Copy'" required prop="passportCopy"> | 64 | <el-form-item :label="language==0?'联系人职位':'Position'" required prop="position"> |
| 60 | <image-upload v-model="form.passportCopy" :limit="1" :is-show-tip="false" | 65 | <el-select v-model="form.position"> |
| 61 | :button-text="language==0?'上传':'Upload'"/> | 66 | <el-option label="经理" value="1"/> |
| 67 | <el-option label="领队" value="2"/> | ||
| 68 | <el-option label="教练" value="3"/> | ||
| 69 | <el-option label="其他" value="4"/> | ||
| 70 | </el-select> | ||
| 62 | </el-form-item> | 71 | </el-form-item> |
| 63 | <el-form-item :label="language==0?'抵达日期':'Date of Arrival'" required prop="arrival"> | 72 | <el-form-item :label="language==0?'联系电话':'Mobile'" required prop="mobile"> |
| 64 | <el-date-picker | 73 | <el-input v-model="form.mobile"/> |
| 65 | v-model="form.arrival" placeholder="YYYY-MM-DD" | ||
| 66 | style="width: 100%;" | ||
| 67 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | ||
| 68 | /> | ||
| 69 | </el-form-item> | 74 | </el-form-item> |
| 70 | <el-form-item :label="language==0?'出发日期':'Date of Departure'" required prop="departure"> | 75 | <!-- 签证办理中国大使馆 --> |
| 71 | <el-date-picker | 76 | <!-- 中国大使馆邮箱 --> |
| 72 | v-model="form.departure" | 77 | |
| 73 | style="width: 100%;" placeholder="YYYY-MM-DD" | 78 | <!--上传护照,多张--> |
| 74 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | 79 | <el-form-item :label="language==0?'有效证件':'Passport Copy'" required prop="passportCopy"> |
| 75 | /> | 80 | <image-upload v-model="form.passportCopy" :limit="1" :is-show-tip="false" |
| 81 | :action="'/league/visa/getPersonInfoFromCert/3'" | ||
| 82 | :button-text="language==0?'上传':'Upload'"/> | ||
| 76 | </el-form-item> | 83 | </el-form-item> |
| 77 | <el-form-item :label="language==0?'备注':'Remark '"> | 84 | <!--识别信息--> |
| 78 | <el-input type="textarea" v-model="form.remark" rows="3"/> | 85 | <div> |
| 86 | <el-form-item :label="language==0?'性别':'Gender'" required prop="gender"> | ||
| 87 | <el-radio-group v-model="form.gender"> | ||
| 88 | <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio> | ||
| 89 | <el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio> | ||
| 90 | </el-radio-group> | ||
| 91 | </el-form-item> | ||
| 92 | <el-form-item :label="language==0?'国籍':'Nationality'" required prop="nationality"> | ||
| 93 | <el-select filterable v-model="form.nationality" style="width: 100%;"> | ||
| 94 | <el-option v-for="item in countrys" :key="item.id" :label="language==0?item.name:item.enName" | ||
| 95 | :value="item.id"/> | ||
| 96 | </el-select> | ||
| 97 | </el-form-item> | ||
| 98 | <el-form-item :label="language==0?'出生日期':'Date of Birth'" required prop="birth"> | ||
| 99 | <el-date-picker | ||
| 100 | v-model="form.birth" | ||
| 101 | style="width: 100%;" placeholder="YYYY-MM-DD" | ||
| 102 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | ||
| 103 | /> | ||
| 104 | </el-form-item> | ||
| 105 | |||
| 106 | <el-form-item :label="language==0?'护照号':'Passport No.'" required prop="passportNo"> | ||
| 107 | <el-input v-model="form.passportNo"/> | ||
| 108 | </el-form-item> | ||
| 109 | <el-form-item :label="language==0?'护照签发日':'Date of Arrival'" required prop="arrival"> | ||
| 110 | <el-date-picker | ||
| 111 | v-model="form.arrival" placeholder="YYYY-MM-DD" | ||
| 112 | style="width: 100%;" | ||
| 113 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | ||
| 114 | /> | ||
| 115 | </el-form-item> | ||
| 116 | <el-form-item :label="language==0?'护照过期日':'Date of Departure'" required prop="departure"> | ||
| 117 | <el-date-picker | ||
| 118 | v-model="form.departure" | ||
| 119 | style="width: 100%;" placeholder="YYYY-MM-DD" | ||
| 120 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | ||
| 121 | /> | ||
| 122 | </el-form-item> | ||
| 123 | </div> | ||
| 124 | <!-- 补充材料--> | ||
| 125 | <el-form-item :label="language==0?'补充材料':'Additional Documents'" required prop="additionalDocuments"> | ||
| 126 | <file-upload v-model="form.additionalDocuments" :limit="1" :is-show-tip="false" | ||
| 127 | :button-text="language==0?'上传':'Upload'"/> | ||
| 79 | </el-form-item> | 128 | </el-form-item> |
| 80 | 129 | ||
| 130 | |||
| 131 | |||
| 81 | <div class="text-center"> | 132 | <div class="text-center"> |
| 82 | <el-button type="primary" size="large" @click="submit" round class="btn-lineG"> | 133 | <el-button type="primary" size="large" @click="submit" round class="btn-lineG"> |
| 83 | {{ language == 0 ? '提交' : 'SUBMIT' }} | 134 | {{ language == 0 ? '提交' : 'SUBMIT' }} | ... | ... |
-
Please register or sign in to post a comment