156f1654 by 杨炀

no message

1 parent 04824efb
......@@ -28,7 +28,7 @@
<el-upload
ref="imageUpload"
:multiple="limit > 1"
:action="uploadImgUrl"
:action="actionUrl || uploadImgUrl"
list-type="picture-card"
:on-success="handleUploadSuccess"
:before-upload="handleBeforeUpload"
......@@ -107,9 +107,15 @@ const props = defineProps({
disabled: {
type: Boolean,
default: false
},
action: {
type: String,
default: ''
}
})
const actionUrl = computed(() => {
return props.action ? baseUrl + props.action : ''
})
const accept = computed(() => {
return _.map(props.fileType, (t) => {
if (t.indexOf('.') === 0) {
......@@ -128,7 +134,7 @@ const dialogImageUrl = ref('')
const dialogVisible = ref(false)
const baseUrl = import.meta.env.VITE_APP_BASE_API
const uploadImgUrl = ref(
import.meta.env.VITE_APP_BASE_API + '/upload/uploadImgToLocalServer'
baseUrl + '/upload/uploadImgToLocalServer'
) // 上传的图片服务器地址
const headers = ref({ Authorization: 'Bearer ' + getToken() })
const fileList = ref([])
......
......@@ -225,14 +225,14 @@ function goBooking(n) {
box-shadow: 0px 0px 21px 0px rgba(41, 23, 101, 0.14);
margin: 10px 0;
display: flex;
align-items: center;
align-items: center;justify-content: center;
font-size: 20px;
background: url("@/assets/dance/btn_bg.png") no-repeat left #FFFFFF;
background-size: 100% 100%;
border-radius: 15px;
img {
margin: 0 5%;width: 75px;
img {object-fit: contain;
margin: 0 5%;width: 75px;height: 75px;
}
}
.itemBox_en{}
......
<template>
<el-dialog v-model="show" :title="title" width="500px" close-icon="CircleClose" center destroy-on-close>
<div class="pd20">
<div class="pd20" v-loading="loading">
<el-form ref="dialogRef" label-position="top" :model="form" :rules="rules" v-if="!isDone">
<el-form-item :label="language==0?'姓氏':'family name'" required prop="lastName">
<el-input v-model="form.lastName"></el-input>
......@@ -55,10 +55,13 @@
<span v-if="form.mediaType==1">Photographer</span>
<span v-if="form.mediaType==2">TV Non-Rights Holder</span>
</el-descriptions-item>
<el-descriptions-item :label="language==0?'国家(地区)':'country'">{{form.country}}</el-descriptions-item>/>
<el-descriptions-item :label="language==0?'国家(地区)':'country'">
<span v-if="language=='0'">{{form.name}}</span>
<span v-if="language=='1'">{{form.enName}}</span>
</el-descriptions-item>
<el-descriptions-item :label="language==0?'证件类型':'ID type'">
<span v-if="form.passType==0">身份证</span>
<span v-if="form.passType==1">护照</span>
<span v-if="form.passType==0">{{ language==0?'身份证':'ID Card' }}</span>
<span v-if="form.passType==1">{{ language==0?'护照':'Passport' }}</span>
</el-descriptions-item>
<el-descriptions-item :label="language==0?'证件号码':'ID NO.'">{{form.idCard}}</el-descriptions-item>
<el-descriptions-item :label="language==0?'邮箱':'work email'">{{form.email}}</el-descriptions-item>
......@@ -67,7 +70,9 @@
</el-descriptions-item>
</el-descriptions>
<el-result icon="success" title="已提交" sub-title="提交后需要修改请联系XXXX邮箱" />
<el-result icon="success"
:title="language==0?'已提交':'Submitted'"
:sub-title="language==0?'提交后需要修改请联系XXXX邮箱':'Submitted, please modify contact XXXX email'" />
</div>
......@@ -88,6 +93,7 @@ import {getMediaInfo, mediaRegister} from "/@/apiPc/common";
import useUserStore from "@/store/modules/user";
import {ElMessageBox} from "element-plus";
const language = useStorage('language', 0)
const loading = ref(false)
const show = ref(false)
const title = ref('')
const form = ref({})
......@@ -134,7 +140,9 @@ const open = (params) => {
}
defineExpose({open})
function getInfo() {
getMediaInfo({userId: user.userId}).then(res=>{
loading.value = true
getMediaInfo({userId: user.userId,cptId: form.value.cptId}).then(res=>{
loading.value = false
if(res.data){
isDone.value = true
form.value = res.data
......
<template>
<div>
<div class="syBg">
<div class="banner">
<el-carousel height="450px" autoplay :interval="2000" class="forPc" :autoplay="false" arrow="hover" @change="carouselChange">
<el-carousel-item style="height: 450px;" v-for="n in maList" :key="n.id">
......@@ -506,6 +506,11 @@ const gopicliveUrl = () => {
</script>
<style scoped lang="scss">
.syBg{
background: url("@/assets/dance/logo_l.png") no-repeat left 98%,
url("@/assets/dance/logo_r1.png") no-repeat right 98%;
background-size: 30%;
}
.btabs{display: flex;position: absolute;bottom: 60px;gap: 10px;
div{color: #fff; background-color: rgba(0, 0, 0, 0.5);
backdrop-filter: blur(4px);border: 2px solid #9ba6d4;border-radius: 50px;
......
<template>
<el-dialog
v-model="show" :title="title" width="600px" append-to-body close-icon="CircleClose" center
:close-on-click-modal="false" class="pcloginpop"
destroy-on-close
>
<div class="boxInvitation pd20">
<div class="text-center pd20" v-if="showR">
<img class="mauto" src="@/assets/dance/ok.png"/>
<!-- <h2 class="text-center">{{ language == 0 ? '申请已提交' : 'Submitted successfully' }}</h2>-->
<h4 class="text-center" v-if="language == 0">
我们已收到您的邀请函申请,并将尽快处理。请耐心等待。
</h4>
<h4 v-else>
Your invitation letter application has been received,<br/>
and we will process it as soon as possible.
<br/>
Please be patient while waiting.
</h4>
<el-button size="large" type="primary" @click="conti" round class="btn-lineG">
{{ language == 0 ? '继续提交' : 'Continue To Submit' }}
</el-button>
</div>
<el-form :model="form" :rules="rules" ref="iformRef" label-position="right" label-width="150px" v-else>
<el-form-item :label="language==0?'姓名':'Name'" required prop="name">
<el-input v-model="form.name"/>
</el-form-item>
<el-form-item :label="language==0?'性别':'Gender'" required prop="gender">
<el-radio-group v-model="form.gender">
<el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio>
<el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item :label="language==0?'国籍':'Nationality'" required prop="nationality">
<el-select filterable v-model="form.nationality" style="width: 100%;">
<el-option v-for="item in countrys" :key="item.id" :label="language==0?item.name:item.enName"
:value="item.id"/>
</el-select>
</el-form-item>
<el-form-item :label="language==0?'出生日期':'Date of Birth'" required prop="birth">
<el-date-picker
v-model="form.birth"
style="width: 100%;" placeholder="YYYY-MM-DD"
type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
/>
</el-form-item>
<el-form-item :label="language==0?'邮箱':'Email'" required prop="email">
<el-input v-model="form.email" type="email"/>
<div class="tip" v-if="language == 0">如以团队名义申请邀请函,建议统一填写领队邮箱。</div>
<div class="tip" v-else>
If a visa invitation letter is applied by the organization, it is recommended to fill in the email of the head of team.
</div>
</el-form-item>
<el-form-item :label="language==0?'护照号':'Passport No.'" required prop="passportNo">
<el-input v-model="form.passportNo"/>
</el-form-item>
<el-form-item :label="language==0?'有效证件':'Passport Copy'" required prop="passportCopy">
<image-upload v-model="form.passportCopy" :limit="1" :is-show-tip="false"
:button-text="language==0?'上传':'Upload'"/>
</el-form-item>
<el-form-item :label="language==0?'抵达日期':'Date of Arrival'" required prop="arrival">
<el-date-picker
v-model="form.arrival" placeholder="YYYY-MM-DD"
style="width: 100%;"
type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
/>
</el-form-item>
<el-form-item :label="language==0?'出发日期':'Date of Departure'" required prop="departure">
<el-date-picker
v-model="form.departure"
style="width: 100%;" placeholder="YYYY-MM-DD"
type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
/>
</el-form-item>
<el-form-item :label="language==0?'备注':'Remark '">
<el-input type="textarea" v-model="form.remark" rows="3"/>
</el-form-item>
<div class="text-center">
<el-button type="primary" size="large" @click="submit" round class="btn-lineG">
{{ language == 0 ? '提交' : 'SUBMIT' }}
</el-button>
</div>
</el-form>
</div>
</el-dialog>
</template>
<script setup>
import {useStorage} from "@vueuse/core/index";
import {getCurrentInstance, watch} from "vue";
import {nextTick} from "@vue/runtime-core";
import {ElMessage, ElMessageBox} from "element-plus";
import {addInvitation, countryList} from "@/apiPc/match";
import ImageUpload from "@/components/ImageUpload";
const {proxy} = getCurrentInstance()
const language = useStorage('language', 0)
const form = ref({
gender:'0'
})
const show = ref(false)
const showR = ref(false)
const title = ref('')
const countrys = ref([])
const cptId = ref('')
const rules = ref(
{
nationality: [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},],
name: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入' : 'Please enter'},],
email: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入' : 'Please enter'},],
birth: [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},],
passportNo: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入' : 'Please enter'},],
passportCopy: [{required: true, trigger: 'blur', message: language.value == 0 ? '请上传' : 'Please Upload'},],
arrival: [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},],
departure: [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},],
})
const open = (params) => {
console.log(params)
show.value = true
title.value = params.title
cptId.value = params.cptId
}
defineExpose({open})
watch(show, (value) => {
if (!value) {
form.value = {
sex: '0'
}
if (language.value == 0) {
form.value.countryId = 240
}
}
nextTick(() => {
// proxy.$refs['dialogRef'].clearValidate()
})
})
getCountryList()
function getCountryList() {
countryList().then(res => {
countrys.value = res.data
})
}
const submit = () => {
proxy.$refs.iformRef.validate(valid => {
if (form.value.email.indexOf('@') == -1) {
if (language.value == 0) {
ElMessage.warning('请填写正确的邮箱')
} else {
ElMessage.warning('Please fill in the correct email')
}
return
}
if (valid) {
ElMessageBox.confirm(
language.value == 0 ? '请确认信息正确并提交吗?' : 'Please confirm that the information is correct and submit it',
language.value == 0 ? '提示' : 'Tips', {
confirmButtonText: language.value == 0 ? '确定' : 'Confirm',
cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
type: 'warning'
}).then(() => {
form.value.cptId = cptId.value
if (Array.isArray(form.value.passportCopy)) {
form.value.passportCopy = form.value.passportCopy[0].url
}
addInvitation(form.value).then((res) => {
ElMessage.success(language.value == 0 ?'提交成功':'Successfully!')
showR.value = true
})
})
}
})
}
const conti = () => {
showR.value = false
form.value = {
gender: '0'
}
}
</script>
<style scoped lang="scss">
.tip{font-size: 12px;}
.boxInvitation {
width: 90%;
margin: auto
}
h4{font-size: 15px;line-height: 1.6;}
</style>
......@@ -23,61 +23,112 @@
</el-button>
</div>
<el-form :model="form" :rules="rules" ref="iformRef" label-position="right" label-width="150px" v-else>
<el-form-item :label="language==0?'姓名':'Name'" required prop="name">
<el-input v-model="form.name"/>
<el-form :model="form" :rules="rules" ref="iformRef" label-position="top" v-else>
<el-form-item :label="language==0?'申请人类别':'Applicant Type'">
<el-select v-model="form.type">
<el-option label="MNA" value="1"/>
<el-option label="Technical Officials" value="2"/>
<el-option label="WT Staff" value="3"/>
<el-option label="Supplier" value="4"/>
<el-option label="Other" value="5"/>
</el-select>
<el-input v-if="form.type==5"/>
</el-form-item>
<el-form-item :label="language==0?'性别':'Gender'" required prop="gender">
<el-radio-group v-model="form.gender">
<el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio>
<el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio>
<el-form-item :label="language==0?'邀请函类别':'Application Type'" required prop="type">
<el-select v-model="form.type">
<el-option label="一般邀请函" value="1"/>
<el-option label="TE/PU(外办)邀请函" value="2"/>
</el-select>
</el-form-item>
<el-form-item :label="language==0?'是否需要中文邀请函':'Chinese Invitation'">
<el-radio-group>
<el-radio :label="1">{{ language==0?'是':'Yes' }}</el-radio>
<el-radio :label="0">{{ language==0?'否':'No' }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item :label="language==0?'国籍':'Nationality'" required prop="nationality">
<el-select filterable v-model="form.nationality" style="width: 100%;">
<el-option v-for="item in countrys" :key="item.id" :label="language==0?item.name:item.enName"
:value="item.id"/>
</el-select>
<!-- 一般信息-->
<el-form-item :label="language==0?'国家/地区协会名':'MNA/Team Name'" required prop="teamName">
<el-input v-model="form.teamName"/>
</el-form-item>
<el-form-item :label="language==0?'出生日期':'Date of Birth'" required prop="birth">
<el-date-picker
v-model="form.birth"
style="width: 100%;" placeholder="YYYY-MM-DD"
type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
/>
<el-form-item :label="language==0?'国家/地区协会地址':'MNA/Team Address'" required prop="teamName">
<el-input v-model="form.teamName"/>
</el-form-item>
<el-form-item :label="language==0?'邮箱':'Email'" required prop="email">
<el-input v-model="form.email" type="email"/>
<div class="tip" v-if="language == 0">如以团队名义申请邀请函,建议统一填写领队邮箱。</div>
<div class="tip" v-else>
If a visa invitation letter is applied by the organization, it is recommended to fill in the email of the head of team.
</div>
<div class="tip"></div>
</el-form-item>
<el-form-item :label="language==0?'护照号':'Passport No.'" required prop="passportNo">
<el-input v-model="form.passportNo"/>
<el-form-item :label="language==0?'姓名':'Full Name'" required prop="name">
<el-input v-model="form.name"/>
</el-form-item>
<el-form-item :label="language==0?'有效证件':'Passport Copy'" required prop="passportCopy">
<image-upload v-model="form.passportCopy" :limit="1" :is-show-tip="false"
:button-text="language==0?'上传':'Upload'"/>
<el-form-item :label="language==0?'联系人职位':'Position'" required prop="position">
<el-select v-model="form.position">
<el-option label="经理" value="1"/>
<el-option label="领队" value="2"/>
<el-option label="教练" value="3"/>
<el-option label="其他" value="4"/>
</el-select>
</el-form-item>
<el-form-item :label="language==0?'抵达日期':'Date of Arrival'" required prop="arrival">
<el-date-picker
v-model="form.arrival" placeholder="YYYY-MM-DD"
style="width: 100%;"
type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
/>
<el-form-item :label="language==0?'联系电话':'Mobile'" required prop="mobile">
<el-input v-model="form.mobile"/>
</el-form-item>
<el-form-item :label="language==0?'出发日期':'Date of Departure'" required prop="departure">
<el-date-picker
v-model="form.departure"
style="width: 100%;" placeholder="YYYY-MM-DD"
type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
/>
<!-- 签证办理中国大使馆 -->
<!-- 中国大使馆邮箱 -->
<!--上传护照,多张-->
<el-form-item :label="language==0?'有效证件':'Passport Copy'" required prop="passportCopy">
<image-upload v-model="form.passportCopy" :limit="1" :is-show-tip="false"
:action="'/league/visa/getPersonInfoFromCert/3'"
:button-text="language==0?'上传':'Upload'"/>
</el-form-item>
<el-form-item :label="language==0?'备注':'Remark '">
<el-input type="textarea" v-model="form.remark" rows="3"/>
<!--识别信息-->
<div>
<el-form-item :label="language==0?'性别':'Gender'" required prop="gender">
<el-radio-group v-model="form.gender">
<el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio>
<el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item :label="language==0?'国籍':'Nationality'" required prop="nationality">
<el-select filterable v-model="form.nationality" style="width: 100%;">
<el-option v-for="item in countrys" :key="item.id" :label="language==0?item.name:item.enName"
:value="item.id"/>
</el-select>
</el-form-item>
<el-form-item :label="language==0?'出生日期':'Date of Birth'" required prop="birth">
<el-date-picker
v-model="form.birth"
style="width: 100%;" placeholder="YYYY-MM-DD"
type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
/>
</el-form-item>
<el-form-item :label="language==0?'护照号':'Passport No.'" required prop="passportNo">
<el-input v-model="form.passportNo"/>
</el-form-item>
<el-form-item :label="language==0?'护照签发日':'Date of Arrival'" required prop="arrival">
<el-date-picker
v-model="form.arrival" placeholder="YYYY-MM-DD"
style="width: 100%;"
type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
/>
</el-form-item>
<el-form-item :label="language==0?'护照过期日':'Date of Departure'" required prop="departure">
<el-date-picker
v-model="form.departure"
style="width: 100%;" placeholder="YYYY-MM-DD"
type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
/>
</el-form-item>
</div>
<!-- 补充材料-->
<el-form-item :label="language==0?'补充材料':'Additional Documents'" required prop="additionalDocuments">
<file-upload v-model="form.additionalDocuments" :limit="1" :is-show-tip="false"
:button-text="language==0?'上传':'Upload'"/>
</el-form-item>
<div class="text-center">
<el-button type="primary" size="large" @click="submit" round class="btn-lineG">
{{ language == 0 ? '提交' : 'SUBMIT' }}
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!