|
@@ -43,7 +43,7 @@
|
|
|
<!-- <h4 class="title" v-text="lang[langType].basicInformation"></h4> -->
|
|
|
<h4 class="text" v-text="lang[langType].signUp"></h4>
|
|
|
<!-- 国家 -->
|
|
|
- <van-field size="large" v-model="from.countryOrRegion" is-link readonly
|
|
|
+ <van-field input-align="right" size="large" v-model="from.countryOrRegion" is-link readonly
|
|
|
:placeholder="lang[langType].countryOrRegionContent" @click="showCountryOrRegion = true"
|
|
|
required>
|
|
|
<template #label>
|
|
@@ -56,7 +56,7 @@
|
|
|
</van-popup>
|
|
|
|
|
|
<!-- 姓名 -->
|
|
|
- <van-field size="large" v-show="from.countryOrRegion === '中国'"
|
|
|
+ <van-field input-align="right" size="large" v-show="from.countryOrRegion === '中国'"
|
|
|
:rules="[{ required: from.countryOrRegion === '中国', trigger: 'onBlur', message: lang[langType].nameContent }]"
|
|
|
:required="from.countryOrRegion === '中国'" v-model="from.name"
|
|
|
:placeholder="lang[langType].nameContent">
|
|
@@ -67,7 +67,7 @@
|
|
|
|
|
|
|
|
|
<!-- 省市 -->
|
|
|
- <van-field size="large" v-show="from.countryOrRegion === '中国'"
|
|
|
+ <van-field input-align="right" size="large" v-show="from.countryOrRegion === '中国'"
|
|
|
:rules="[{ required: from.countryOrRegion === '中国', trigger: 'onBlur', message: lang[langType].provinceCityContent }]"
|
|
|
v-model="from.provinceCity" :required="from.countryOrRegion === '中国'"
|
|
|
:placeholder="lang[langType].provinceCityContent">
|
|
@@ -77,7 +77,7 @@
|
|
|
</van-field>
|
|
|
|
|
|
<!-- 姓 -->
|
|
|
- <van-field size="large" v-show="from.countryOrRegion === '其他国家'"
|
|
|
+ <van-field input-align="right" size="large" v-show="from.countryOrRegion === '其他国家'"
|
|
|
:rules="[{ required: from.countryOrRegion === '其他国家', trigger: 'onBlur', message: lang[langType].nameContent }]"
|
|
|
:required="from.countryOrRegion === '其他国家'" v-model="from.lastName"
|
|
|
:placeholder="lang[langType].lastNameContent">
|
|
@@ -87,7 +87,7 @@
|
|
|
</van-field>
|
|
|
|
|
|
<!-- 名 -->
|
|
|
- <van-field size="large" v-show="from.countryOrRegion === '其他国家'"
|
|
|
+ <van-field input-align="right" size="large" v-show="from.countryOrRegion === '其他国家'"
|
|
|
:rules="[{ required: from.countryOrRegion === '其他国家', trigger: 'onBlur', message: lang[langType].nameContent }]"
|
|
|
:required="from.countryOrRegion === '其他国家'" v-model="from.firstName"
|
|
|
:placeholder="lang[langType].firstNameContent">
|
|
@@ -97,7 +97,7 @@
|
|
|
</van-field>
|
|
|
|
|
|
<!-- 国家/地区 -->
|
|
|
- <van-field size="large" v-show="from.countryOrRegion === '其他国家'"
|
|
|
+ <van-field input-align="right" size="large" v-show="from.countryOrRegion === '其他国家'"
|
|
|
:rules="[{ required: from.countryOrRegion === '其他国家', trigger: 'onBlur', message: lang[langType].countryRegionContent }]"
|
|
|
:required="from.countryOrRegion === '其他国家'" v-model="from.countryRegion"
|
|
|
:placeholder="lang[langType].countryRegionContent">
|
|
@@ -109,7 +109,7 @@
|
|
|
<div style="background-color: #F7F7F7;height: 10px;"></div>
|
|
|
|
|
|
<!-- 性别 -->
|
|
|
- <van-field size="large"
|
|
|
+ <van-field input-align="right" size="large"
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].genderContent }]"
|
|
|
v-model="from.gender" required :placeholder="lang[langType].genderContent">
|
|
|
<template #label>
|
|
@@ -118,7 +118,7 @@
|
|
|
</van-field>
|
|
|
|
|
|
<!-- 生日 -->
|
|
|
- <van-field size="large"
|
|
|
+ <van-field input-align="right" size="large"
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].birthdayContent }]"
|
|
|
is-link readonly @click="showBirthday = true" v-model="from.birthday" required
|
|
|
:placeholder="lang[langType].birthdayContent">
|
|
@@ -132,14 +132,14 @@
|
|
|
</van-popup>
|
|
|
|
|
|
<!-- 照片 -->
|
|
|
- <van-field size="large" :placeholder="lang[langType].photoContent" required
|
|
|
+ <van-field input-align="right" size="large" :placeholder="lang[langType].photoContent" required
|
|
|
:rules="[{ required: true, trigger: 'onChange', message: lang[langType].photoContent }]"
|
|
|
v-model="from.photoUrl">
|
|
|
<template #label>
|
|
|
<span class="label" v-html="lang[langType].photo"></span>
|
|
|
</template>
|
|
|
<template #input>
|
|
|
- <van-uploader :preview-full-image="false" accept="image/*" v-model="photo" :max-count="1"
|
|
|
+ <van-uploader :preview-full-image="false" accept="image/*" v-model="photo" :before-delete="beforeDelete" :max-count="1"
|
|
|
:max-size="524288000" @oversize="filesize" :after-read="beforeRead" result-type="file">
|
|
|
</van-uploader>
|
|
|
<p style="font-size: 12px;" v-text="lang[langType].photoSubContent"> </p>
|
|
@@ -147,7 +147,7 @@
|
|
|
</van-field>
|
|
|
|
|
|
<!-- 手机号 -->
|
|
|
- <van-field size="large"
|
|
|
+ <van-field input-align="right" size="large"
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].genderContent }]"
|
|
|
v-model="from.contact" type="number" required :placeholder="lang[langType].contactContent">
|
|
|
<template #label>
|
|
@@ -156,7 +156,7 @@
|
|
|
</van-field>
|
|
|
|
|
|
<!-- 邮箱 -->
|
|
|
- <van-field size="large"
|
|
|
+ <van-field input-align="right" size="large"
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emailContent }]" required
|
|
|
v-model="from.email" :placeholder="lang[langType].emailContent">
|
|
|
<template #label>
|
|
@@ -165,7 +165,7 @@
|
|
|
</van-field>
|
|
|
|
|
|
<!-- 紧急联系人 -->
|
|
|
- <van-field size="large" v-model="from.emergencyContact"
|
|
|
+ <van-field input-align="right" size="large" v-model="from.emergencyContact"
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactContent }]"
|
|
|
required :placeholder="lang[langType].emergencyContactContent">
|
|
|
<template #label>
|
|
@@ -174,7 +174,7 @@
|
|
|
</van-field>
|
|
|
|
|
|
<!-- 紧急联系人电话 -->
|
|
|
- <van-field size="large" v-model="from.emergencyContactPhone" required
|
|
|
+ <van-field input-align="right" size="large" v-model="from.emergencyContactPhone" required
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactPhoneContent }]"
|
|
|
:placeholder="lang[langType].emergencyContactPhoneContent">
|
|
|
<template #label>
|
|
@@ -183,7 +183,7 @@
|
|
|
</van-field>
|
|
|
|
|
|
<!-- 证件类型 -->
|
|
|
- <van-field size="large" v-model="from.cardTypeName" is-link readonly
|
|
|
+ <van-field input-align="right" size="large" v-model="from.cardTypeName" is-link readonly
|
|
|
:placeholder="lang[langType].conferenceTypeContent" @click="showCardType = true" required>
|
|
|
<template #label>
|
|
|
<span class="label" v-html="lang[langType].conferenceType"></span>
|
|
@@ -195,7 +195,7 @@
|
|
|
</van-popup>
|
|
|
|
|
|
<!-- 证件 -->
|
|
|
- <van-field size="large"
|
|
|
+ <van-field input-align="right" size="large"
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].passportContent }]"
|
|
|
v-model="from.passport" required :placeholder="lang[langType].passportContent">
|
|
|
<template #label>
|
|
@@ -204,7 +204,7 @@
|
|
|
</van-field>
|
|
|
|
|
|
<!-- 宗教 -->
|
|
|
- <van-field size="large"
|
|
|
+ <van-field input-align="right" size="large"
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].beliefContent }]"
|
|
|
v-model="from.belief" required :placeholder="lang[langType].beliefContent">
|
|
|
<template #label>
|
|
@@ -213,7 +213,7 @@
|
|
|
</van-field>
|
|
|
|
|
|
<!-- 饮食要求 -->
|
|
|
- <van-field size="large" v-model="from.catering" rows="3" autosize
|
|
|
+ <van-field input-align="right" size="large" v-model="from.catering" rows="3" autosize
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].cateringContent }]"
|
|
|
type="textarea" required :placeholder="lang[langType].cateringContent">
|
|
|
<template #label>
|
|
@@ -224,7 +224,7 @@
|
|
|
<div style="background-color: #F7F7F7;height: 10px;"></div>
|
|
|
|
|
|
<!-- 工作单位 -->
|
|
|
- <van-field size="large"
|
|
|
+ <van-field input-align="right" size="large"
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].workUnit }]" required
|
|
|
v-model="from.workUnit" :placeholder="lang[langType].companyContent">
|
|
|
<template #label>
|
|
@@ -233,7 +233,7 @@
|
|
|
</van-field>
|
|
|
|
|
|
<!-- 单位类型 -->
|
|
|
- <van-field size="large"
|
|
|
+ <van-field input-align="right" size="large"
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].unitTypeContent }]"
|
|
|
v-model="from.unitType" required :placeholder="lang[langType].unitTypeContent">
|
|
|
<template #label>
|
|
@@ -242,7 +242,7 @@
|
|
|
</van-field>
|
|
|
|
|
|
<!-- 职务 -->
|
|
|
- <van-field size="large" v-model="from.career"
|
|
|
+ <van-field input-align="right" size="large" v-model="from.career"
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].careerContent }]" required
|
|
|
:placeholder="lang[langType].careerContent">
|
|
|
<template #label>
|
|
@@ -251,7 +251,7 @@
|
|
|
</van-field>
|
|
|
|
|
|
<!-- 传真 -->
|
|
|
- <van-field size="large"
|
|
|
+ <van-field input-align="right" size="large"
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].faxContent }]"
|
|
|
v-model="from.fax" type="number" required :placeholder="lang[langType].faxContent">
|
|
|
<template #label>
|
|
@@ -260,7 +260,7 @@
|
|
|
</van-field>
|
|
|
|
|
|
<!-- 办公地址 -->
|
|
|
- <van-field size="large" v-model="from.officeAddress" rows="3" autosize required
|
|
|
+ <van-field input-align="right" size="large" v-model="from.officeAddress" rows="3" autosize required
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].officeAddressContent }]"
|
|
|
type="textarea" :placeholder="lang[langType].officeAddressContent">
|
|
|
<template #label>
|
|
@@ -271,7 +271,7 @@
|
|
|
<div style="background-color: #F7F7F7;height: 10px;"></div>
|
|
|
|
|
|
<!-- 接受采访意向 -->
|
|
|
- <van-field size="large" v-model="from.interview" required
|
|
|
+ <van-field input-align="right" size="large" v-model="from.interview" required
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].interviewContent }]"
|
|
|
:placeholder="lang[langType].interviewContent">
|
|
|
<template #label>
|
|
@@ -287,7 +287,7 @@
|
|
|
</van-field>
|
|
|
|
|
|
<!-- 抵达西安交通车次 -->
|
|
|
- <van-field size="large" v-model="from.reachTrainNumber"
|
|
|
+ <van-field input-align="right" size="large" v-model="from.reachTrainNumber"
|
|
|
:placeholder="lang[langType].reachTrainNumberContent">
|
|
|
<template #label>
|
|
|
<span class="label" v-html="lang[langType].reachTrainNumber"></span>
|
|
@@ -295,7 +295,7 @@
|
|
|
</van-field>
|
|
|
|
|
|
<!-- 抵达西安时间 -->
|
|
|
- <van-field size="large" v-model="from.reachTime" is-link readonly @click="showReachTime = true"
|
|
|
+ <van-field input-align="right" size="large" v-model="from.reachTime" is-link readonly @click="showReachTime = true"
|
|
|
:placeholder="lang[langType].reachTimeContent">
|
|
|
<template #label>
|
|
|
<span class="label" v-html="lang[langType].reachTime"></span>
|
|
@@ -307,7 +307,7 @@
|
|
|
</van-popup>
|
|
|
|
|
|
<!-- 离开车次 -->
|
|
|
- <van-field size="large" v-model="from.leavingTrainNumber"
|
|
|
+ <van-field input-align="right" size="large" v-model="from.leavingTrainNumber"
|
|
|
:placeholder="lang[langType].leavingTrainNumberContent">
|
|
|
<template #label>
|
|
|
<span class="label" v-html="lang[langType].leavingTrainNumber"></span>
|
|
@@ -315,7 +315,7 @@
|
|
|
</van-field>
|
|
|
|
|
|
<!-- 离开时间 -->
|
|
|
- <van-field size="large" v-model="from.leavingTime" is-link readonly @click="showLeavingTime = true"
|
|
|
+ <van-field input-align="right" size="large" v-model="from.leavingTime" is-link readonly @click="showLeavingTime = true"
|
|
|
:placeholder="lang[langType].leavingTimeContent">
|
|
|
<template #label>
|
|
|
<span class="label" v-html="lang[langType].leavingTime"></span>
|
|
@@ -327,7 +327,7 @@
|
|
|
</van-popup>
|
|
|
|
|
|
<!-- 离店时间 -->
|
|
|
- <van-field size="large" v-model="from.checkOutTime" is-link readonly
|
|
|
+ <van-field input-align="right" size="large" v-model="from.checkOutTime" is-link readonly
|
|
|
@click="showCheckOutTime = true" :placeholder="lang[langType].checkOutTimeContent">
|
|
|
<template #label>
|
|
|
<span class="label" v-html="lang[langType].checkOutTime"></span>
|
|
@@ -342,7 +342,7 @@
|
|
|
<!-- <h4 class="title" v-text="lang[langType].conference"></h4> -->
|
|
|
<!-- <br /> -->
|
|
|
<!-- <h4 class="title" v-text="lang[langType].orther"></h4> -->
|
|
|
- <van-field size="large" v-model="from.message" rows="3" autosize type="textarea"
|
|
|
+ <van-field input-align="right" size="large" v-model="from.message" rows="3" autosize type="textarea"
|
|
|
:placeholder="lang[langType].ortherNotesContent">
|
|
|
<template #label>
|
|
|
<span class="label" v-html="lang[langType].ortherNotes"></span>
|
|
@@ -361,7 +361,7 @@
|
|
|
</template>
|
|
|
<script setup>
|
|
|
import { ref, reactive, computed } from 'vue';
|
|
|
-import { showToast } from 'vant';
|
|
|
+import { showToast, Dialog } from 'vant';
|
|
|
import axios from 'axios';
|
|
|
import config from '@/config/index.js';
|
|
|
import soundbyteJpg from '../../assets/img/2025lameifenghui.png';
|
|
@@ -373,20 +373,21 @@ import langpkg from './lang.js';
|
|
|
let arrivalTime = []
|
|
|
const dateTimeColumns = computed(() => {
|
|
|
const now = new Date();
|
|
|
+ const dateList = lang.value[langType.value].dateList;
|
|
|
const years = Array.from({ length: Number(now.getFullYear()) + 1 - 1970 }, (_, i) => {
|
|
|
const t = 1970 + i + ''
|
|
|
return {
|
|
|
text: t,
|
|
|
value: t
|
|
|
}
|
|
|
- }).reverse();
|
|
|
+ }).reverse().shift({ text: dateList[0], value: '', disabled: true });
|
|
|
const months = Array.from({ length: 12 }, (_, i) => {
|
|
|
const m = (i + 1).toString().padStart(2, '0')
|
|
|
return {
|
|
|
text: m,
|
|
|
value: m
|
|
|
}
|
|
|
- });
|
|
|
+ }).shift({ text: dateList[1], value: '', disabled: true });
|
|
|
|
|
|
// 动态计算当前选中年月对应的天数
|
|
|
const daysInMonth = new Date(
|
|
@@ -400,7 +401,7 @@ const dateTimeColumns = computed(() => {
|
|
|
text: d,
|
|
|
value: d
|
|
|
}
|
|
|
- });
|
|
|
+ }).shift({ text: dateList[2], value: '', disabled: true });
|
|
|
|
|
|
const hours = Array.from({ length: 24 }, (_, i) => {
|
|
|
const h = i.toString().padStart(2, '0')
|
|
@@ -408,14 +409,14 @@ const dateTimeColumns = computed(() => {
|
|
|
text: h,
|
|
|
value: h
|
|
|
}
|
|
|
- });
|
|
|
+ }).shift({ text: dateList[3], value: '', disabled: true });
|
|
|
const minutes = Array.from({ length: 60 }, (_, i) => {
|
|
|
const m = i.toString().padStart(2, '0')
|
|
|
return {
|
|
|
text: m,
|
|
|
value: m
|
|
|
}
|
|
|
- });
|
|
|
+ }).shift({ text: dateList[4], value: '', disabled: true });
|
|
|
return [years, months, days, hours, minutes];
|
|
|
});
|
|
|
/** const langObj = [
|
|
@@ -466,14 +467,17 @@ const from = reactive({
|
|
|
idCard: '',
|
|
|
career: '',
|
|
|
contact: '',
|
|
|
- photoUrl: [],
|
|
|
+ photoUrl: '',
|
|
|
cardType: [],
|
|
|
- photo: [],
|
|
|
birthday: '',
|
|
|
message: '',
|
|
|
arrivalTime: ''
|
|
|
});
|
|
|
|
|
|
+const beforeDelete = () => {
|
|
|
+ from.photoUrl = '';
|
|
|
+ photo.value = [];
|
|
|
+}
|
|
|
const filesize = () => showToast(lang.value[langType.value].fileSize);
|
|
|
const createTextDate = values => values.slice(0, 3).join('-') + '' + values.slice(3).join(':');
|
|
|
const packerConfirm = (values) => {
|
|
@@ -524,11 +528,11 @@ const beforeRead = () => {
|
|
|
}).then(res => {
|
|
|
if (res.status !== 200 || res.data.code !== 0) {
|
|
|
showToast(lang.value[langType.value].upFileError);
|
|
|
- from.photoUrl = []
|
|
|
+ from.photoUrl = ''
|
|
|
return
|
|
|
}
|
|
|
showToast(lang.value[langType.value].upFileSusscess);
|
|
|
- from.photoUrl = [{ url: res.data.data }]
|
|
|
+ from.photoUrl = res.data.data
|
|
|
photo.value = [
|
|
|
{
|
|
|
url: res.data.data,
|
|
@@ -551,7 +555,7 @@ const onSubmit = () => {
|
|
|
name: from.name, // 姓名
|
|
|
lastName: from.lastName, // 姓
|
|
|
firstName: from.firstName, // 名
|
|
|
- photo: from.photoUrl[0].url, // 照片
|
|
|
+ photo: from.photoUrl, // 照片
|
|
|
gender: from.gender, // 性别
|
|
|
phone: from.contact, // 手机号
|
|
|
email: from.email, // 邮箱
|
|
@@ -582,6 +586,9 @@ const onSubmit = () => {
|
|
|
// Object.keys(from).forEach((key) => {
|
|
|
// from[key] = '';
|
|
|
// });
|
|
|
+ Dialog({
|
|
|
+ message: lang.value[langType.value].registration,
|
|
|
+ })
|
|
|
}).catch(() => {
|
|
|
showToast(lang.value[langType.value].registrationError);
|
|
|
});
|