1418e350 by zhangmeng

世锦赛

1 parent c46d2134
......@@ -101,6 +101,12 @@ export const constantRoutes = [
meta: {title: '舞蹈节'}
},
{
path: 'operation',
component: () => import('@/viewsPc/about/operation'),
name: 'operation',
meta: {title: '操作手册'}
},
{
path: 'culture',
component: () => import('@/viewsPc/about/culture'),
name: 'culture',
......@@ -211,7 +217,7 @@ export const constantRoutes = [
name: 'personListHasKind',
meta: {title: '人员列表'}
}
]
},
{
......@@ -680,7 +686,7 @@ export const constantRoutes = [
name: 'payOk',
meta: {title: '支付成功'}
},
{
path: 'commitDone/:orderId',
component: () => import('@/viewsPc/match/commitDone'),
......
<template>
<div>
<div class="mt20"/>
<div class="box">
<el-card>
<el-row>
<el-col>
<div class="infoPart pd20">
<h3 class="leftboderTT">{{ language == 0 ? '操作手册' : 'The Manual' }}</h3>
<br>
<div style="padding-left: 30px">
<el-link v-for="v in fileList" :href="fillImgUrl(v.url)" :underline="false" class="link" target="_blank"
type="primary">
<span style="border-bottom: 1px solid var(--el-color-primary)">
{{ v.name }}
<el-icon style="margin-left: 10px;position: relative;bottom: -2px">
<Download/>
</el-icon>
</span>
</el-link>
</div>
<div class="content">
<div v-html="content"></div>
</div>
</div>
</el-col>
</el-row>
</el-card>
<div v-if="false" class="indexTitle">
<h3 class="leftboderTT">{{ language == 0 ? '联系我们' : 'CONTACT US' }}</h3>
</div>
<div v-if="false" class="mapBox mb20">
<div class="content">
<div v-for="(item,index) in contact" :class="index==0?'phone':index==1?'address':'email'">
<h4>{{ language == 1 ? item.ename : item.name }}</h4>
<p>{{ language == 0 ? item.value : item.evalue }}</p>
</div>
</div>
</div>
</div>
<div style="height: 50px"></div>
</div>
</template>
<script setup>
import {useStorage} from "@vueuse/core";
import {onMounted, ref} from "vue";
import {getppInfo} from "@/apiPc/match";
import {useRoute} from "vue-router";
import {fillImgUrl} from "/@/utils/ruoyi";
const route = useRoute()
const language = useStorage('language', 0)
const activeIndex = ref(0)
const content = ref('')
const fileList = ref([])
onMounted(() => {
if (route.query.activeIndex) {
activeIndex.value = route.query.activeIndex
}
getMenuList()
})
const getMenuList = () => {
getppInfo('10000005').then(res => {
if (language.value == 0) {
content.value = res.data.contextZh
fileList.value = JSON.parse(res.data.fileZh)
} else {
content.value = res.data.contextEh
fileList.value = JSON.parse(res.data.fileEn)
}
})
}
</script>
<style lang="scss" scoped>
.link {
font-size: 16px;
display: block;
margin-bottom: 10px;
}
.leftNav {
ul {
border-right: 2px solid #E5E5E5;
padding: 0 20px 0 0;
}
li {
margin: 30px 0;
padding: 10px;
text-align: right;
border-radius: 2px;
position: relative;
font-weight: 600;
text-transform: uppercase;
font-size: 18px;
cursor: pointer;
background: linear-gradient(90deg, rgba(134, 35, 252, 0.1), rgba(69, 61, 234, 0.1));
}
li::after {
content: '';
position: absolute;
background: #898989;
width: 8px;
height: 8px;
border-radius: 50%;
right: -29px;
border: 4px solid #fff;
outline: 2px solid #898989;
box-sizing: content-box;
top: 0;
bottom: 0;
margin: auto;
}
li.active {
color: #fff;
background: #000;
&::after {
outline: 2px solid #000;
background: #000;
}
}
}
.infoPart {
.leftboderTT {
font-size: 20px;
color: var(--el-color-primary);
}
}
.content {
margin: 20px 0 0;
text-indent: 2em;
line-height: 1.8;
font-weight: 400;
font-size: 16px;
color: #29343C;
img {
max-width: 100%;
margin: 20px auto;
display: block;
}
h4 {
text-indent: 0
}
}
.mapBox {
background: url("@/assets/zhinan/map.png") no-repeat right;
height: 375px;
background-size: cover;
padding: 1px;
position: relative;
display: flex;
.content {
background: #fff;
width: 60%;
left: 40px;
padding: 30px;
text-indent: 0;
line-height: 1;
position: absolute;
height: 90%;
top: 0;
bottom: 0;
margin: auto;
}
div {
padding-left: 60px;
}
.phone {
background: url("@/assets/dance/map01.png") no-repeat left;
background-size: 30px;
}
.address {
background: url("@/assets/dance/map02.png") no-repeat left;
background-size: 30px;
margin: 50px 0;
}
.email {
background: url("@/assets/dance/map03.png") no-repeat left;
background-size: 30px;
}
h4 {
margin: 0;
font-size: 16px;
color: #AAAAAA;
}
p {
margin: 13px 0 0;
}
}
</style>
<template>
<div>
<index-Ch v-if="language ==0" @pop="openMaster" @pickup="openPickup" @backNumber="openBackNumber" @schSearch="openSchSearch"/>
<index-En v-else @pop="openMaster" @pickup="openPickup" @backNumber="openBackNumber" @schSearch="openSchSearch"/>
<index-Ch v-if="language ==0" @backNumber="openBackNumber" @pickup="openPickup" @pop="openMaster"
@schSearch="openSchSearch"/>
<index-En v-else @backNumber="openBackNumber" @pickup="openPickup" @pop="openMaster" @schSearch="openSchSearch"/>
<div v-if="showgg" class="fixed_gg">
<!--天气-->
<el-icon class="cclose" @click.stop="showgg=false"><circle-close /></el-icon>
<el-icon class="cclose" @click.stop="showgg=false">
<circle-close/>
</el-icon>
<div class="bg-lineg pd20">
<div class="smallToday" @click="popWeather">
<div>
......@@ -15,13 +18,14 @@
<div>
<h3 v-if="language == 0">无锡</h3>
<h3 v-else>WUXI</h3>
<div class="wd_p">{{weatherObj.forecast[0]?.low.slice(2)}}~{{weatherObj.forecast[0]?.high.slice(2)}}</div>
<div class="wd_p">{{ weatherObj.forecast[0]?.low.slice(2) }}~{{ weatherObj.forecast[0]?.high.slice(2) }}
</div>
</div>
</div>
</div>
<el-dialog v-model="weatherdialog" width="540" :close-on-click-modal="true"
style="--el-dialog-padding-primary:0;--el-dialog-border-radius:15px;
--el-dialog-bg-color:transparent;overflow: hidden;">
<el-dialog v-model="weatherdialog" :close-on-click-modal="true" style="--el-dialog-padding-primary:0;--el-dialog-border-radius:15px;
--el-dialog-bg-color:transparent;overflow: hidden;"
width="540">
<div class="bg-lineg pd20">
<div class="weatherbox">
<div class="today">
......@@ -30,9 +34,11 @@
<h1 v-else>WUXI</h1>
</div>
<div>
<div class="wd">{{weatherObj.wendu}}°c</div>
<div class="wd_p">{{weatherObj.forecast[0]?.low.slice(2)}}~{{weatherObj.forecast[0]?.high.slice(2)}}</div>
<div class="week">{{weatherObj.forecast[0]?.week}}</div>
<div class="wd">{{ weatherObj.wendu }}°c</div>
<div class="wd_p">
{{ weatherObj.forecast[0]?.low.slice(2) }}~{{ weatherObj.forecast[0]?.high.slice(2) }}
</div>
<div class="week">{{ weatherObj.forecast[0]?.week }}</div>
</div>
<div>
<div class="type">
......@@ -45,22 +51,30 @@
<div class="type">
<weather-icon :type="n.type||n.wea" :width="32"/>
</div>
<div class="wd" v-if="n.low">{{n.low.slice(2,-1)}}/{{n.high.slice(2)}}</div>
<div class="wd" v-if="n.tem_night">{{n.tem_night}}/{{n.tem_day}}</div>
<div class="week" v-if="language==1">
{{n.week=='星期一'?'Mon':n.week=='星期二'?'Tue':n.week=='星期三'?'Wed':n.week=='星期四'?'Thu':n.week=='星期五'?'Fri':n.week=='星期六'?'Sat':n.week=='星期日'?'Sun':''}}
<div v-if="n.low" class="wd">{{ n.low.slice(2, -1) }}/{{ n.high.slice(2) }}</div>
<div v-if="n.tem_night" class="wd">{{ n.tem_night }}/{{ n.tem_day }}</div>
<div v-if="language==1" class="week">
{{
n.week == '星期一' ? 'Mon' : n.week == '星期二' ? 'Tue' : n.week == '星期三' ? 'Wed' : n.week == '星期四' ? 'Thu' : n.week == '星期五' ? 'Fri' : n.week == '星期六' ? 'Sat' : n.week == '星期日' ? 'Sun' : ''
}}
</div>
<div class="week" v-else>
{{n.week}}
<div v-else class="week">
{{ n.week }}
</div>
<div class="date mt10" v-if="n.ymd">{{n.ymd.slice(5,10)}}</div>
<div class="date mt10" v-else>{{n.date.slice(5,10)}}</div>
<div v-if="n.ymd" class="date mt10">{{ n.ymd.slice(5, 10) }}</div>
<div v-else class="date mt10">{{ n.date.slice(5, 10) }}</div>
</li>
</ul>
</div>
</div>
</el-dialog>
</div>
<div class="operation" @click="handelOperation">{{ language == 0 ? '操作手册' : 'GUIDELINE' }}
<el-icon>
<Download/>
</el-icon>
</div>
<dialog-master-class ref="masterClassRef"/>
<pick-up ref="pickupRef"></pick-up>
<back-number ref="backNumberRef"></back-number>
......@@ -81,72 +95,110 @@ import {useStorage} from "@vueuse/core/index";
import {ref} from "vue";
import {getWeather} from "@/apiPc/webSite";
import {getCurrentInstance} from "@vue/runtime-core";
import {useRouter} from "vue-router";
const {proxy} = getCurrentInstance()
const showgg = ref(false)
const router = useRouter()
const language = useStorage('language', 0)
const weatherObj = ref({
forecast:[]
forecast: []
})
const weatherdialog = ref(false)
// init()
function init(){
getWeather().then(res=>{
function init() {
getWeather().then(res => {
weatherObj.value = JSON.parse(res.data).data
showgg.value = true
}).catch(err=>{
}).catch(err => {
showgg.value = false
})
}
const popWeather = () => {
weatherdialog.value = true
}
const openMaster = (params) => {
console.log(params)
var obj = {
title:'大师课申请',
cptId:params.cptId
title: '大师课申请',
cptId: params.cptId
}
proxy.$refs['masterClassRef'].open(obj)
}
const openPickup= (params) => {
const openPickup = (params) => {
console.log(params)
const obj = {
title:'接送机服务',
cptId:params.cptId
title: '接送机服务',
cptId: params.cptId
}
proxy.$refs['pickupRef'].open(obj)
}
const openBackNumber = (params) => {
console.log(params)
const obj = {
title:'背号查询',
cptId:params.cptId
title: '背号查询',
cptId: params.cptId
}
proxy.$refs['backNumberRef'].open(obj)
}
const openSchSearch = (params) => {
console.log(params)
const obj = {
title:'日程查询',
cptId:params.cptId
title: '日程查询',
cptId: params.cptId
}
proxy.$refs['schSearchRef'].open(obj)
}
function handelOperation() {
router.push('/about/operation')
}
</script>
<style scoped lang="scss">
.poCode{position: fixed;right: 0;top: 40%;background: #fff;padding: 10px 0 0;border-radius: 10px;overflow: hidden;
box-shadow: 0 2px 8px #aaa;z-index: 99;}
<style lang="scss" scoped>
.poCode {
position: fixed;
right: 0;
top: 40%;
background: #fff;
padding: 10px 0 0;
border-radius: 10px;
overflow: hidden;
box-shadow: 0 2px 8px #aaa;
z-index: 99;
}
@media screen and (max-width: 768px) {
:deep(.zn-Box .zn-btn){margin-top: 10px;font-size: 14px}
:deep(.bgbg){ padding: 3% 5% 0!important;
h1 {font-size: 22px;margin:20px 0 0;}
:deep(.zn-Box .zn-btn) {
margin-top: 10px;
font-size: 14px
}
.fixed_gg{
:deep(.bgbg) {
padding: 3% 5% 0 !important;
h1 {
font-size: 22px;
margin: 20px 0 0;
}
}
.fixed_gg {
transform: scale(0.7);
transform-origin: right;
}
}
.operation {
position: fixed;
right: 0;
top: 580px;
color: #fff;
background-color: rgba(0, 0, 0, 0.5);
backdrop-filter: blur(4px);
border-radius: 50px;
padding: 10px 20px;
cursor: pointer;
}
</style>
......
<template>
<el-dialog
v-model="show" title="Visa Invitation Letter" append-to-body close-icon="CircleClose" center
close-on-click-modal destroy-on-close width="1100"
v-model="show" append-to-body center close-icon="CircleClose" close-on-click-modal
destroy-on-close title="Visa Invitation Letter" width="1100"
>
<el-descriptions border>
<el-descriptions-item label="No.">{{ form.id }}</el-descriptions-item>
<el-descriptions-item label="Applicant Type">{{ form.remarks || form.applicatTypeName }}</el-descriptions-item>
<el-descriptions-item label="Invitation Type">{{ form.invitationTypeName }}</el-descriptions-item>
<!-- <el-descriptions-item label="Do you need a Chinese invitation?">{{-->
<!-- form.chinese == '1' ? 'YES' : 'No'-->
<!-- }}-->
<!-- </el-descriptions-item>-->
<!-- <el-descriptions-item label="Do you need a Chinese invitation?">{{-->
<!-- form.chinese == '1' ? 'YES' : 'No'-->
<!-- }}-->
<!-- </el-descriptions-item>-->
<el-descriptions-item label="MNA/Team Name">{{ form.nameEn }}</el-descriptions-item>
<el-descriptions-item label="MNA/Team Address">{{ form.associationAddress }}</el-descriptions-item>
<el-descriptions-item label="Contact Email">{{ form.email }}</el-descriptions-item>
......@@ -25,7 +25,7 @@
</el-link>
</el-descriptions-item>
<el-descriptions-item label="Proof of Employment">
<el-link v-if="form.invitationFile" target="_blank" :href="fillImgUrl(form.invitationFile)" type="primary">
<el-link v-if="form.invitationFile" :href="fillImgUrl(form.invitationFile)" target="_blank" type="primary">
proof of employment
</el-link>
</el-descriptions-item>
......@@ -34,29 +34,31 @@
<!-- <el-divider></el-divider>-->
<br/>
<el-table :data="visaList" border stripe>
<el-table-column prop="passportCopy" label="Passport Copy">
<el-table-column label="Passport Copy" prop="passportCopy">
<template #default="{row}">
<el-image
:src="fillImgUrl(row.passportCopy)"
:preview-src-list="[fillImgUrl(row.passportCopy)]"
:preview-teleported="true"
style="width: 50px;height: 70px"
:preview-src-list="[fillImgUrl(row.passportCopy)]"
:preview-teleported="true"
:src="fillImgUrl(row.passportCopy)"
style="width: 50px;height: 70px"
/>
</template>
</el-table-column>
<el-table-column label="position" align="center" prop="position"/>
<el-table-column label="lastName" align="center" prop="lastName"/>
<el-table-column label="firstName" align="center" prop="fristName"/>
<el-table-column prop="sex" label="Gender" align="center">
<el-table-column align="center" label="Date ofEntrye" prop="entryDate"/>
<el-table-column align="center" label="Date ofDeparture" prop="departureDate"/>
<el-table-column align="center" label="position" prop="position"/>
<el-table-column align="center" label="lastName" prop="lastName"/>
<el-table-column align="center" label="firstName" prop="fristName"/>
<el-table-column align="center" label="Gender" prop="sex">
<template #default="{row}">
{{ row.sex == '0' ? 'M' : 'F' }}
</template>
</el-table-column>
<el-table-column label="nationality" align="center" prop="nationality"/>
<el-table-column label="birthday" align="center" prop="birthday"/>
<el-table-column label="Passport No." align="center" prop="passportNo"/>
<el-table-column label="DATE OF ISSUE" align="center" prop="issueDate"/>
<el-table-column label="DATE OF EXPIRY" align="center" prop="expiryDate"/>
<el-table-column align="center" label="nationality" prop="nationality"/>
<el-table-column align="center" label="birthday" prop="birthday"/>
<el-table-column align="center" label="Passport No." prop="passportNo"/>
<el-table-column align="center" label="DATE OF ISSUE" prop="issueDate"/>
<el-table-column align="center" label="DATE OF EXPIRY" prop="expiryDate"/>
</el-table>
</el-dialog>
......@@ -83,17 +85,17 @@ const visaList = ref([])
const open = (params) => {
show.value = true
form.value = params
listVisaInfo({visaId: params.id})
.then((res) => {
visaList.value = res.rows
})
.then((res) => {
visaList.value = res.rows
})
}
defineExpose({open})
</script>
<style scoped lang="scss">
<style lang="scss" scoped>
</style>
......
......@@ -44,15 +44,17 @@
<el-option :label="language==0?'TE/PU(外办)邀请函':'TE/PU letter'" value="2"/>
</el-select>
</el-form-item>
<el-form-item v-if="form.invitationType==2" label="Proof of Employment" prop="invitationFileArr" required>
<div class="red">Proof of employment is required for TE/PU letter letters.</div>
<div class="red">
This document must be issued by the invitee's association and must bear an official stamp or signature.
</div>
<br/>
<file-upload v-model="form.invitationFileArr" :button-text="language==0?'上传':'Upload'" :is-show-tip="false"
:limit="1"></file-upload>
</el-form-item>
<!-- <el-form-item v-if="form.invitationType==2" label="Proof of Employment" prop="invitationFileArr" required>-->
<!-- <div class="red">Proof of employment is required for TE/PU letter letters.</div>-->
<!-- <div class="red">-->
<!-- This document must be issued by the invitee's association and must bear an official stamp or signature.-->
<!-- </div>-->
<!-- <br/>-->
<!-- <file-upload v-model="form.invitationFileArr" :button-text="language==0?'上传':'Upload'" :is-show-tip="false"-->
<!-- :limit="1"></file-upload>-->
<!-- </el-form-item>-->
<!-- <el-form-item :label="language==0?'是否需要中文邀请函':'Do you need a Chinese invitation?'" prop="chinese"-->
<!-- required>-->
<!-- <el-radio-group v-model="form.chinese">-->
......@@ -151,6 +153,40 @@
preview-teleported style="width: 60px;z-index: 999;"/>
</template>
</el-table-column>
<el-table-column :label="language==0?'入境日期':'Date ofEntrye'" prop="" width="130px">
<template #header>
<div class="esp">
<span class="red">*</span>Date ofEntrye
</div>
</template>
<template #default="scope">
<el-date-picker
v-model="scope.row.entryDate"
format="YYYY-MM-DD"
placeholder="YYYY-MM-DD"
size="small"
style="width: 100%;" type="date"
value-format="YYYY-MM-DD"
/>
</template>
</el-table-column>
<el-table-column :label="language==0?'离境日期':'Date ofDeparture'" prop="" width="130px">
<template #header>
<div class="esp">
<span class="red">*</span>Date ofDeparture
</div>
</template>
<template #default="scope">
<el-date-picker
v-model="scope.row.departureDate"
format="YYYY-MM-DD"
placeholder="YYYY-MM-DD"
size="small"
style="width: 100%;" type="date"
value-format="YYYY-MM-DD"
/>
</template>
</el-table-column>
<el-table-column :label="'position'" min-width="100" prop="position">
<template #header>
<div class="esp">
......@@ -244,10 +280,11 @@
</div>
</template>
<template #default="scope">
<el-date-picker v-model="scope.row.birthday"
format="YYYY-MM-DD"
placeholder="YYYY-MM-DD" size="small"
style="width: 100%;" type="date" value-format="YYYY-MM-DD"
<el-date-picker
v-model="scope.row.birthday"
format="YYYY-MM-DD"
placeholder="YYYY-MM-DD" size="small"
style="width: 100%;" type="date" value-format="YYYY-MM-DD"
/>
</template>
</el-table-column>
......@@ -306,10 +343,15 @@
</el-form-item>
<!-- 补充材料-->
<el-form-item :label="language==0?'补充材料':'Additional Documents'" prop="files">
<file-upload v-model="form.files" :button-text="language==0?'上传':'Upload'" :is-show-tip="false"
:limit="1"/>
<file-upload v-model="form.files" :button-text="language==0?'上传':'Upload'" :is-show-tip="false" :limit="1"/>
</el-form-item>
<el-form-item>
<el-checkbox v-model="form.check" style="pointer-events: none"/>
<el-link style="margin-left: 5px" type="primary" @click="showCheck=!showCheck">{{
language == 0 ? '我确认所提供的资料是正确的' : 'I confirm that the information provided is correct'
}}
</el-link>
</el-form-item>
<div class="text-center">
<el-button :disabled="!cptId" class="btn-lineG" round size="large" type="primary" @click="submit">
......@@ -318,6 +360,25 @@
</div>
</el-form>
</div>
<el-dialog
v-model="showCheck"
append-to-body center
class="pcloginpop"
destroy-on-close
style="min-width: 300px;max-width: 600px"
>
<p style="font-size: 16px">
Passport information has been auto-recognized.Please double-check carefully, as errors may occur.Edit if
necessary
before submission.
</p>
<br>
<p style="text-align: center">
<el-button type="primary" @click="handelSubmit">Confrm</el-button>
</p>
<br>
</el-dialog>
</el-dialog>
</template>
......@@ -357,6 +418,7 @@ const title = ref('')
const countrys = ref([])
const mnaList = ref([])
const cptId = ref('')
const showCheck = ref(false)
const rules = ref(
{
nationality: [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},],
......@@ -367,6 +429,7 @@ const rules = ref(
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'},],
check: [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},],
})
const open = (params) => {
show.value = true
......@@ -442,8 +505,13 @@ function getMNAList() {
})
}
const submit = () => {
console.log(form.value)
function handelSubmit() {
showCheck.value = false
form.value.check = true
}
const submit = async () => {
console.log(form.value.check)
if (form.value.email?.indexOf('@') == -1) {
ElMessage.warning(language.value == 0 ? '请填写正确的邮箱' : 'Invalid Emaill Address!')
return
......@@ -465,6 +533,14 @@ const submit = () => {
ElMessage.warning(`Please specify ${row.fristName}'s position`)
return;
}
if (!row.entryDate) {
ElMessage.warning(`Please specify Date ofEntrye position`)
return;
}
if (!row.departureDate) {
ElMessage.warning(`Please specify Date ofDeparture position`)
return;
}
}
if (form.value.files && Array.isArray(form.value.files)) {
......@@ -473,27 +549,33 @@ const submit = () => {
if (form.value.invitationFileArr) {
form.value.invitationFile = JSON.stringify(form.value.invitationFileArr)
}
await proxy.$refs.iformRef.validate()
if (!form.value.check) {
showCheck.value = true
return
}
await 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
addInvitation(form.value).then((res) => {
if (res.data == -200) {
ElMessage.error(language.value == 0 ? '邮箱验证码不正确' : 'Invalid email verification code')
} else {
ElMessage.success(language.value == 0 ? '提交成功' : 'Successfully!')
showR.value = true
emit('refresh')
}
})
})
proxy.$refs.iformRef.validate(valid => {
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
addInvitation(form.value).then((res) => {
if (res.data == -200) {
ElMessage.error(language.value == 0 ? '邮箱验证码不正确' : 'Invalid email verification code')
} else {
ElMessage.success(language.value == 0 ? '提交成功' : 'Successfully!')
showR.value = true
emit('refresh')
}
})
})
}
})
}
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!