|
@@ -12,44 +12,104 @@
|
|
|
</div> -->
|
|
|
<van-image style="width: 100%;" :src="soundbyteJpg" />
|
|
|
<br />
|
|
|
- <van-form @submit="onSubmit">
|
|
|
+ <van-form label-width="8em" @submit="onSubmit">
|
|
|
<div class="submit">
|
|
|
<div class="introduce">
|
|
|
- <h4 class="text" v-text="lang[langType].forumTopic"> </h4>
|
|
|
- <p class="text" v-text="lang[langType].forumTopicContent"></p>
|
|
|
<h4 class="text" v-text="lang[langType].wrestleMania"></h4>
|
|
|
- <p class="text" v-text="lang[langType].wrestleManiaContent"></p>
|
|
|
+ <p class="text" v-html="lang[langType].wrestleManiaContent"></p>
|
|
|
<h4 class="text" v-text="lang[langType].venue"></h4>
|
|
|
- <p class="text" v-text="lang[langType].venueContent"></p>
|
|
|
+ <p class="text" v-html="lang[langType].venueContent"></p>
|
|
|
<h4 class="text" v-text="lang[langType].organization"></h4>
|
|
|
- <div class="text" v-text="lang[langType].organizationSub1"></div>
|
|
|
- <div class="text" v-text="lang[langType].organizationSub2"></div>
|
|
|
+ <van-row>
|
|
|
+ <van-col span="6">
|
|
|
+ <div class="text" v-text="lang[langType].organizationSub1"></div>
|
|
|
+ </van-col>
|
|
|
+ <van-col span="18">
|
|
|
+ <div class="text" v-html="lang[langType].organizationSub2"></div>
|
|
|
+ </van-col>
|
|
|
+ </van-row>
|
|
|
+ <van-row>
|
|
|
+ <van-col span="6">
|
|
|
+ <div class="text" v-text="lang[langType].organizationSub3"></div>
|
|
|
+ </van-col>
|
|
|
+ <van-col span="18">
|
|
|
+ <div class="text" v-html="lang[langType].organizationSub4"></div>
|
|
|
+ </van-col>
|
|
|
+ </van-row>
|
|
|
<h4 class="text" v-text="lang[langType].scale"></h4>
|
|
|
<div class="text" style="text-indent: 2em;" v-text="lang[langType].scaleContent"></div>
|
|
|
</div>
|
|
|
<van-cell-group inset v-if="showForm">
|
|
|
<!-- <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
|
|
|
+ :placeholder="lang[langType].countryOrRegionContent" @click="showCountryOrRegion = true"
|
|
|
+ required>
|
|
|
+ <template #label>
|
|
|
+ <span class="label" v-html="lang[langType].countryOrRegion"></span>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
+ <van-popup v-model:show="showCountryOrRegion" destroy-on-close round position="bottom">
|
|
|
+ <van-picker :columns="countryOrRegionList" @cancel="showCountryOrRegion = false"
|
|
|
+ @confirm="onCountryOrRegionConfirm" />
|
|
|
+ </van-popup>
|
|
|
+
|
|
|
<!-- 姓名 -->
|
|
|
- <van-field label-width="9em" size="large"
|
|
|
- :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].nameContent }]" required
|
|
|
- v-model="from.name" :placeholder="lang[langType].nameContent">
|
|
|
+ <van-field label-align="center" 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">
|
|
|
<template #label>
|
|
|
<span class="label" v-html="lang[langType].name"></span>
|
|
|
</template>
|
|
|
</van-field>
|
|
|
|
|
|
- <!-- 拼音 -->
|
|
|
- <van-field label-width="9em" size="large"
|
|
|
- :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].pinyinContent }]"
|
|
|
- v-model="from.pinyin" required :placeholder="lang[langType].pinyinContent">
|
|
|
+
|
|
|
+ <!-- 省市 -->
|
|
|
+ <van-field 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">
|
|
|
+ <template #label>
|
|
|
+ <span class="label" v-html="lang[langType].provinceCity"></span>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
+
|
|
|
+ <!-- 姓 -->
|
|
|
+ <van-field 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">
|
|
|
+ <template #label>
|
|
|
+ <span class="label" v-html="lang[langType].lastName"></span>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
+
|
|
|
+ <!-- 名 -->
|
|
|
+ <van-field 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">
|
|
|
<template #label>
|
|
|
- <span class="label" v-html="lang[langType].pinyin"></span>
|
|
|
+ <span class="label" v-html="lang[langType].firstName"></span>
|
|
|
</template>
|
|
|
</van-field>
|
|
|
|
|
|
+ <!-- 国家/地区 -->
|
|
|
+ <van-field 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">
|
|
|
+ <template #label>
|
|
|
+ <span class="label" v-html="lang[langType].countryRegion"></span>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
+
|
|
|
+ <div style="background-color: #F7F7F7;height: 10px;"></div>
|
|
|
+
|
|
|
<!-- 性别 -->
|
|
|
- <van-field label-width="9em" size="large"
|
|
|
+ <van-field size="large"
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].genderContent }]"
|
|
|
v-model="from.gender" required :placeholder="lang[langType].genderContent">
|
|
|
<template #label>
|
|
@@ -57,10 +117,24 @@
|
|
|
</template>
|
|
|
</van-field>
|
|
|
|
|
|
+ <!-- 生日 -->
|
|
|
+ <van-field 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">
|
|
|
+ <template #label>
|
|
|
+ <span class="label" v-html="lang[langType].birthday"></span>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
+ <van-popup v-model:show="showBirthday" destroy-on-close round position="bottom">
|
|
|
+ <van-date-picker @confirm="packerConfirm" :title="lang[langType].birthday"
|
|
|
+ @cancal="showBirthday = false" :min-date="new Date(1970, 0, 1)" :max-date="new Date()" />
|
|
|
+ </van-popup>
|
|
|
+
|
|
|
<!-- 照片 -->
|
|
|
- <van-field label-width="9em" size="large" :placeholder="lang[langType].photoContent" required
|
|
|
+ <van-field size="large" :placeholder="lang[langType].photoContent" required
|
|
|
:rules="[{ required: true, trigger: 'onChange', message: lang[langType].photoContent }]"
|
|
|
- v-model="from.fileUrl">
|
|
|
+ v-model="from.photoUrl">
|
|
|
<template #label>
|
|
|
<span class="label" v-html="lang[langType].photo"></span>
|
|
|
</template>
|
|
@@ -73,13 +147,16 @@
|
|
|
</van-field>
|
|
|
|
|
|
<!-- 手机号 -->
|
|
|
- <van-field label-width="9em" size="large"
|
|
|
+ <van-field size="large"
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].genderContent }]"
|
|
|
- v-model="from.contact" :label="lang[langType].contact" type="number" required
|
|
|
- :placeholder="lang[langType].contactContent" />
|
|
|
+ v-model="from.contact" type="number" required :placeholder="lang[langType].contactContent">
|
|
|
+ <template #label>
|
|
|
+ <span class="label" v-html="lang[langType].contact"></span>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
|
|
|
<!-- 邮箱 -->
|
|
|
- <van-field label-width="9em" size="large"
|
|
|
+ <van-field size="large"
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emailContent }]" required
|
|
|
v-model="from.email" :placeholder="lang[langType].emailContent">
|
|
|
<template #label>
|
|
@@ -87,131 +164,94 @@
|
|
|
</template>
|
|
|
</van-field>
|
|
|
|
|
|
- <!-- 生日 -->
|
|
|
- <van-field label-width="9em" 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">
|
|
|
+ <!-- 紧急联系人 -->
|
|
|
+ <van-field size="large" v-model="from.emergencyContact"
|
|
|
+ :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactContent }]"
|
|
|
+ required :placeholder="lang[langType].emergencyContactContent">
|
|
|
<template #label>
|
|
|
- <span class="label" v-html="lang[langType].birthday"></span>
|
|
|
+ <span class="label" v-html="lang[langType].emergencyContact"></span>
|
|
|
</template>
|
|
|
</van-field>
|
|
|
- <van-popup v-model:show="showBirthday" destroy-on-close round position="bottom">
|
|
|
- <van-date-picker @confirm="packerConfirm" :title="lang[langType].birthday"
|
|
|
- @cancal="showBirthday = false" :min-date="new Date(1970, 0, 1)" :max-date="new Date()" />
|
|
|
- </van-popup>
|
|
|
-
|
|
|
- <!-- 工作单位 -->
|
|
|
- <van-field label-width="9em" size="large"
|
|
|
- :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].workUnit }]" required
|
|
|
- v-model="from.workUnit" :label="lang[langType].company"
|
|
|
- :placeholder="lang[langType].companyContent" />
|
|
|
-
|
|
|
|
|
|
- <!-- 国家/地区 -->
|
|
|
- <van-field label-width="9em" size="large"
|
|
|
- :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].CountryOrRegionContent }]"
|
|
|
- v-model="from.CountryOrRegion" :label="lang[langType].CountryOrRegion" required
|
|
|
- :placeholder="lang[langType].CountryOrRegionContent" />
|
|
|
-
|
|
|
- <!-- 省市 -->
|
|
|
- <van-field label-width="9em" size="large"
|
|
|
- :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].provinceCityContent }]"
|
|
|
- v-model="from.provinceCity" required :placeholder="lang[langType].provinceCityContent">
|
|
|
+ <!-- 紧急联系人电话 -->
|
|
|
+ <van-field size="large" v-model="from.emergencyContactPhone" required
|
|
|
+ :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactPhoneContent }]"
|
|
|
+ :placeholder="lang[langType].emergencyContactPhoneContent">
|
|
|
<template #label>
|
|
|
- <span class="label" v-html="lang[langType].provinceCity"></span>
|
|
|
+ <span class="label" v-html="lang[langType].emergencyContactPhone"></span>
|
|
|
</template>
|
|
|
</van-field>
|
|
|
|
|
|
- <!-- 单位类型 -->
|
|
|
- <van-field label-width="9em" size="large"
|
|
|
- :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].unitTypeContent }]"
|
|
|
- v-model="from.unitType" :label="lang[langType].unitType" required
|
|
|
- :placeholder="lang[langType].unitTypeContent" />
|
|
|
-
|
|
|
- <!-- jobLevel 职务级别 -->
|
|
|
- <van-field label-width="9em" size="large"
|
|
|
- :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].jobLevelContent }]"
|
|
|
- v-model="from.jobLevel" :label="lang[langType].jobLevel" required
|
|
|
- :placeholder="lang[langType].jobLevelContent" />
|
|
|
-
|
|
|
- <!-- title 称谓 -->
|
|
|
- <van-field label-width="9em" size="large" required
|
|
|
- :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].titleContent }]"
|
|
|
- v-model="from.title" :placeholder="lang[langType].titleContent">
|
|
|
+ <!-- 证件类型 -->
|
|
|
+ <van-field 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].title"></span>
|
|
|
+ <span class="label" v-html="lang[langType].conferenceType"></span>
|
|
|
</template>
|
|
|
</van-field>
|
|
|
-
|
|
|
- <!-- otherTitle 其他称谓 -->
|
|
|
- <van-field label-width="9em" size="large" required
|
|
|
- :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].otherTitleContent }]"
|
|
|
- v-model="from.otherTitle" :label="lang[langType].otherTitle"
|
|
|
- :placeholder="lang[langType].otherTitleContent" />
|
|
|
-
|
|
|
- <!-- chineseName 中文名 -->
|
|
|
- <van-field label-width="9em" size="large"
|
|
|
- :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].chineseNameContent }]"
|
|
|
- v-model="from.chineseName" :label="lang[langType].chineseName" required
|
|
|
- :placeholder="lang[langType].chineseNameContent" />
|
|
|
-
|
|
|
- <!-- 身份证 -->
|
|
|
- <!-- <van-field label-width="9em" size="large"
|
|
|
- :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].idCardContent }]"
|
|
|
- v-model="from.idCard" :label="lang[langType].idCard" required
|
|
|
- :placeholder="lang[langType].idCardContent" /> -->
|
|
|
-
|
|
|
- <!-- 证件类型 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.cardTypeName" is-link readonly
|
|
|
- :label="lang[langType].conferenceType" :placeholder="lang[langType].conferenceTypeContent"
|
|
|
- @click="showCardType = true" required />
|
|
|
<van-popup v-model:show="showCardType" destroy-on-close round position="bottom">
|
|
|
<van-picker :model-value="from.cardType" :columns="cardTypeList" @cancel="showCardType = false"
|
|
|
@confirm="onConfirm" />
|
|
|
</van-popup>
|
|
|
|
|
|
<!-- 证件 -->
|
|
|
- <van-field label-width="9em" size="large"
|
|
|
+ <van-field size="large"
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].passportContent }]"
|
|
|
- v-model="from.passport" :label="lang[langType].passport" required
|
|
|
- :placeholder="lang[langType].passportContent" />
|
|
|
+ v-model="from.passport" required :placeholder="lang[langType].passportContent">
|
|
|
+ <template #label>
|
|
|
+ <span class="label" v-html="lang[langType].passport"></span>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
|
|
|
<!-- 宗教 -->
|
|
|
- <van-field label-width="9em" size="large"
|
|
|
+ <van-field size="large"
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].beliefContent }]"
|
|
|
- v-model="from.belief" :label="lang[langType].belief" required
|
|
|
- :placeholder="lang[langType].beliefContent" />
|
|
|
+ v-model="from.belief" required :placeholder="lang[langType].beliefContent">
|
|
|
+ <template #label>
|
|
|
+ <span class="label" v-html="lang[langType].belief"></span>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
|
|
|
- <!-- 外交职衔 -->
|
|
|
- <van-field label-width="9em" size="large"
|
|
|
- :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].diplomaticRankContent }]"
|
|
|
- v-model="from.diplomaticRank" :label="lang[langType].diplomaticRank" required
|
|
|
- :placeholder="lang[langType].diplomaticRankContent" />
|
|
|
+ <!-- 饮食要求 -->
|
|
|
+ <van-field 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>
|
|
|
+ <span class="label" v-html="lang[langType].catering"></span>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
+
|
|
|
+ <div style="background-color: #F7F7F7;height: 10px;"></div>
|
|
|
+
|
|
|
+ <!-- 工作单位 -->
|
|
|
+ <van-field size="large"
|
|
|
+ :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].workUnit }]" required
|
|
|
+ v-model="from.workUnit" :placeholder="lang[langType].companyContent">
|
|
|
+ <template #label>
|
|
|
+ <span class="label" v-html="lang[langType].company"></span>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
|
|
|
- <!-- 主要成就 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.mainAchievements"
|
|
|
- :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].mainAchievementsContent }]"
|
|
|
- :label="lang[langType].mainAchievements" required
|
|
|
- :placeholder="lang[langType].mainAchievementsContent" />
|
|
|
+ <!-- 单位类型 -->
|
|
|
+ <van-field size="large"
|
|
|
+ :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].unitTypeContent }]"
|
|
|
+ v-model="from.unitType" required :placeholder="lang[langType].unitTypeContent">
|
|
|
+ <template #label>
|
|
|
+ <span class="label" v-html="lang[langType].unitType"></span>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
|
|
|
<!-- 职务 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.career"
|
|
|
+ <van-field size="large" v-model="from.career"
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].careerContent }]" required
|
|
|
:placeholder="lang[langType].careerContent">
|
|
|
<template #label>
|
|
|
<span class="label" v-html="lang[langType].career"></span>
|
|
|
</template>
|
|
|
</van-field>
|
|
|
- <div style="background-color: #F7F7F7;height: 10px;"></div>
|
|
|
- <!-- 固话 -->
|
|
|
- <van-field label-width="9em" size="large"
|
|
|
- :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].fixedLineContent }]"
|
|
|
- v-model="from.fixedLine" :label="lang[langType].fixedLine" type="number" required
|
|
|
- :placeholder="lang[langType].fixedLineContent" />
|
|
|
|
|
|
<!-- 传真 -->
|
|
|
- <van-field label-width="9em" size="large"
|
|
|
+ <van-field size="large"
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].faxContent }]"
|
|
|
v-model="from.fax" type="number" required :placeholder="lang[langType].faxContent">
|
|
|
<template #label>
|
|
@@ -220,156 +260,89 @@
|
|
|
</van-field>
|
|
|
|
|
|
<!-- 办公地址 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.officeAddress" rows="3" autosize required
|
|
|
+ <van-field size="large" v-model="from.officeAddress" rows="3" autosize required
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].officeAddressContent }]"
|
|
|
- :label="lang[langType].officeAddress" type="textarea"
|
|
|
- :placeholder="lang[langType].officeAddressContent" />
|
|
|
-
|
|
|
- <!-- 饮食要求 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.catering" rows="3" autosize
|
|
|
- :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].cateringContent }]"
|
|
|
- :label="lang[langType].catering" type="textarea" required
|
|
|
- :placeholder="lang[langType].cateringContent" />
|
|
|
-
|
|
|
- <!-- 过敏源 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.allergen" rows="3" autosize
|
|
|
- :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].allergenContent }]"
|
|
|
- :label="lang[langType].allergen" type="textarea" required
|
|
|
- :placeholder="lang[langType].allergenContent" />
|
|
|
-
|
|
|
- <!-- 紧急联系人 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.emergencyContact"
|
|
|
- :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactContent }]"
|
|
|
- :label="lang[langType].emergencyContact" required
|
|
|
- :placeholder="lang[langType].emergencyContactContent" />
|
|
|
+ type="textarea" :placeholder="lang[langType].officeAddressContent">
|
|
|
+ <template #label>
|
|
|
+ <span class="label" v-html="lang[langType].officeAddress"></span>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
|
|
|
- <!-- 紧急联系人电话 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.emergencyContactPhone" required
|
|
|
- :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactPhoneContent }]"
|
|
|
- :label="lang[langType].emergencyContactPhone"
|
|
|
- :placeholder="lang[langType].emergencyContactPhoneContent" />
|
|
|
+ <div style="background-color: #F7F7F7;height: 10px;"></div>
|
|
|
|
|
|
<!-- 接受采访意向 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.interview" :label="lang[langType].interview"
|
|
|
- required
|
|
|
+ <van-field size="large" v-model="from.interview" required
|
|
|
:rules="[{ required: true, trigger: 'onBlur', message: lang[langType].interviewContent }]"
|
|
|
:placeholder="lang[langType].interviewContent">
|
|
|
+ <template #label>
|
|
|
+ <span class="label" v-html="lang[langType].interview"></span>
|
|
|
+ </template>
|
|
|
<template #input>
|
|
|
- <van-radio-group v-model="from.interview" direction="horizontal">
|
|
|
+ <van-radio-group style="justify-content: flex-end;width: 100%;" v-model="from.interview"
|
|
|
+ direction="horizontal">
|
|
|
<van-radio name="同意">同意</van-radio>
|
|
|
<van-radio name="拒绝">拒绝</van-radio>
|
|
|
</van-radio-group>
|
|
|
</template>
|
|
|
</van-field>
|
|
|
|
|
|
- <!-- 媒体类别 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.media" :label="lang[langType].media"
|
|
|
- :placeholder="lang[langType].mediaContent" />
|
|
|
- <div style="background-color: #F7F7F7;height: 10px;"></div>
|
|
|
-
|
|
|
- <!-- 抵达中国航班 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.flight" :label="lang[langType].flight"
|
|
|
- :placeholder="lang[langType].flightContent" />
|
|
|
-
|
|
|
- <!-- 抵达中国地点 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.arrivalLocation"
|
|
|
- :label="lang[langType].arrivalLocation" :placeholder="lang[langType].arrivalLocationContent" />
|
|
|
-
|
|
|
- <!-- 抵达中国时间 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.arrivalTime" is-link readonly
|
|
|
- @click="showArrivalTime = true" :label="lang[langType].arrivalTime"
|
|
|
- :placeholder="lang[langType].arrivalTimeContent" />
|
|
|
- <van-popup v-model:show="showArrivalTime" destroy-on-close round position="bottom">
|
|
|
- <van-picker :title="lang[langType].arrivalTime" :columns="dateTimeColumns"
|
|
|
- @confirm="handleConfirm" @calcan="showArrivalTime = false" />
|
|
|
- </van-popup>
|
|
|
-
|
|
|
- <!-- 中转交通方式 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.transfer" :label="lang[langType].transfer"
|
|
|
- :placeholder="lang[langType].transferContent" />
|
|
|
-
|
|
|
- <!-- 中转时间 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.transferTime"
|
|
|
- @click="showTransferTime = true" is-link readonly :label="lang[langType].transferTime"
|
|
|
- :placeholder="lang[langType].transferTimeContent" />
|
|
|
- <van-popup v-model:show="showTransferTime" destroy-on-close round position="bottom">
|
|
|
- <van-picker :title="lang[langType].arrivalTime" :columns="dateTimeColumns"
|
|
|
- @confirm="transferTimeConfirm" @calcan="showTransferTime = false" />
|
|
|
- </van-popup>
|
|
|
-
|
|
|
-
|
|
|
- <!-- 抵达西安交通方式 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.reach" :label="lang[langType].reach"
|
|
|
- :placeholder="lang[langType].reachContent" />
|
|
|
-
|
|
|
<!-- 抵达西安交通车次 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.reachTrainNumber"
|
|
|
- :label="lang[langType].reachTrainNumber"
|
|
|
- :placeholder="lang[langType].reachTrainNumberContent" />
|
|
|
-
|
|
|
- <!-- 抵达西安地点 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.reachLocation"
|
|
|
- :label="lang[langType].reachLocation" :placeholder="lang[langType].reachLocationContent" />
|
|
|
+ <van-field size="large" v-model="from.reachTrainNumber"
|
|
|
+ :placeholder="lang[langType].reachTrainNumberContent">
|
|
|
+ <template #label>
|
|
|
+ <span class="label" v-html="lang[langType].reachTrainNumber"></span>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
|
|
|
<!-- 抵达西安时间 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.reachTime" is-link readonly
|
|
|
- @click="showReachTime = true" :label="lang[langType].reachTime"
|
|
|
- :placeholder="lang[langType].reachTimeContent" />
|
|
|
+ <van-field 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>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
<van-popup v-model:show="showReachTime" destroy-on-close round position="bottom">
|
|
|
<van-picker :title="lang[langType].reachTime" :columns="dateTimeColumns"
|
|
|
@confirm="reachTimeConfirm" @calcan="showReachTime = false" />
|
|
|
</van-popup>
|
|
|
|
|
|
- <!-- 接站地点 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.pickUpLocation"
|
|
|
- :label="lang[langType].pickUpLocation" :placeholder="lang[langType].pickUpLocationContent" />
|
|
|
-
|
|
|
- <!-- 离开交通方式 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.leavingTransportationMode"
|
|
|
- :label="lang[langType].leavingTransportationMode"
|
|
|
- :placeholder="lang[langType].leavingTransportationModeContent" />
|
|
|
-
|
|
|
<!-- 离开车次 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.leavingTrainNumber"
|
|
|
- :label="lang[langType].leavingTrainNumber"
|
|
|
- :placeholder="lang[langType].leavingTrainNumberContent" />
|
|
|
-
|
|
|
- <!-- 离开地点 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.leavingLocation"
|
|
|
- :label="lang[langType].leavingLocation" :placeholder="lang[langType].leavingLocationContent" />
|
|
|
+ <van-field size="large" v-model="from.leavingTrainNumber"
|
|
|
+ :placeholder="lang[langType].leavingTrainNumberContent">
|
|
|
+ <template #label>
|
|
|
+ <span class="label" v-html="lang[langType].leavingTrainNumber"></span>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
|
|
|
<!-- 离开时间 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.leavingTime" is-link readonly
|
|
|
- @click="showLeavingTime = true" :label="lang[langType].leavingTime"
|
|
|
- :placeholder="lang[langType].leavingTimeContent" />
|
|
|
+ <van-field 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>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
<van-popup v-model:show="showLeavingTime" destroy-on-close round position="bottom">
|
|
|
<van-picker :title="lang[langType].leavingTime" :columns="dateTimeColumns"
|
|
|
@confirm="leavingTimeConfirm" @calcan="showLeavingTime = false" />
|
|
|
</van-popup>
|
|
|
|
|
|
- <!-- 入住时间 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.checkInTime" is-link readonly
|
|
|
- @click="showCheckInTime = true" :label="lang[langType].checkInTime"
|
|
|
- :placeholder="lang[langType].checkInTimeContent" />
|
|
|
- <van-popup v-model:show="showCheckInTime" destroy-on-close round position="bottom">
|
|
|
- <van-picker :title="lang[langType].checkInTime" :columns="dateTimeColumns"
|
|
|
- @confirm="checkInTimeConfirm" @calcan="showCheckInTime = false" />
|
|
|
- </van-popup>
|
|
|
-
|
|
|
<!-- 离店时间 -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.checkOutTime" is-link readonly
|
|
|
- @click="showCheckOutTime = true" :label="lang[langType].checkOutTime"
|
|
|
- :placeholder="lang[langType].checkOutTimeContent" />
|
|
|
+ <van-field 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>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
<van-popup v-model:show="showCheckOutTime" destroy-on-close round position="bottom">
|
|
|
<van-picker :title="lang[langType].checkOutTime" :columns="dateTimeColumns"
|
|
|
@confirm="checkOutTimeConfirm" @calcan="showCheckOutTime = false" />
|
|
|
</van-popup>
|
|
|
+
|
|
|
<!-- <br /> -->
|
|
|
<!-- <h4 class="title" v-text="lang[langType].conference"></h4> -->
|
|
|
<!-- <br /> -->
|
|
|
<!-- <h4 class="title" v-text="lang[langType].orther"></h4> -->
|
|
|
- <van-field label-width="9em" size="large" v-model="from.message" rows="3" autosize
|
|
|
- type="textarea"
|
|
|
+ <van-field 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>
|
|
@@ -387,8 +360,7 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
<script setup>
|
|
|
-// import { onMounted, reactive } from "vue";
|
|
|
-import { ref, reactive, onBeforeUpdate, computed } from 'vue';
|
|
|
+import { ref, reactive, computed } from 'vue';
|
|
|
import { showToast } from 'vant';
|
|
|
import axios from 'axios';
|
|
|
import config from '@/config/index.js';
|
|
@@ -466,23 +438,17 @@ const lang = ref(langpkg);
|
|
|
const langType = ref(localStorage.getItem('langType') || 'zh');
|
|
|
// const showLange = ref(false);
|
|
|
const showCardType = ref(false);
|
|
|
-const showArrivalTime = ref(false);
|
|
|
-const showTransferTime = ref(false);
|
|
|
const showReachTime = ref(false);
|
|
|
const showLeavingTime = ref(false);
|
|
|
const showBirthday = ref(false);
|
|
|
-const showCheckInTime = ref(false);
|
|
|
const showCheckOutTime = ref(false);
|
|
|
+const showCountryOrRegion = ref(false);
|
|
|
|
|
|
// 展示表单
|
|
|
const showForm = ref(false);
|
|
|
|
|
|
-const cardTypeList = ref([
|
|
|
- { text: '身份证', value: '身份证' },
|
|
|
- { text: '护照', value: '护照' },
|
|
|
- { text: '港澳居民通行证', value: '港澳居民通行证' },
|
|
|
- { text: '台湾居民通行证', value: '台湾居民通行证' },
|
|
|
-])
|
|
|
+const cardTypeList = ref(lang.value[langType.value].cardTypeList)
|
|
|
+const countryOrRegionList = ref(lang.value[langType.value].countryOrRegionList)
|
|
|
const photo = ref([])
|
|
|
const isFile = () => {
|
|
|
return photo.value && photo.value.length;
|
|
@@ -490,6 +456,8 @@ const isFile = () => {
|
|
|
// const langChange = ({ selectedValues }) => {
|
|
|
// langType.value = selectedValues[0];
|
|
|
// localStorage.setItem('langType', selectedValues[0]);
|
|
|
+// const cardTypeList = ref(lang.value[langType.value].cardTypeList)
|
|
|
+// const countryOrRegionList = ref(lang.value[langType.value].countryOrRegionList)
|
|
|
// showLange.value = false;
|
|
|
// };
|
|
|
|
|
@@ -506,48 +474,29 @@ const from = reactive({
|
|
|
arrivalTime: ''
|
|
|
});
|
|
|
|
|
|
-onBeforeUpdate(() => { });
|
|
|
-
|
|
|
-// getJoinType().then((res) => {
|
|
|
-// cardTypeList.value = res.map((item) => {
|
|
|
-// return {
|
|
|
-// text: item.dictLabel,
|
|
|
-// value: item.dictValue,
|
|
|
-// }
|
|
|
-// })
|
|
|
-// })
|
|
|
-
|
|
|
const filesize = () => showToast(lang.value[langType.value].fileSize);
|
|
|
-
|
|
|
+const createTextDate = values => values.slice(0, 3).join('-') + '' + values.slice(3).join(':');
|
|
|
const packerConfirm = (values) => {
|
|
|
showBirthday.value = false;
|
|
|
- from.birthday = values.selectedValues.join('-');
|
|
|
-}
|
|
|
-const handleConfirm = ({ selectedValues }) => {
|
|
|
- showArrivalTime.value = false;
|
|
|
- arrivalTime = selectedValues;
|
|
|
- from.arrivalTime = selectedValues.slice(0, 3).join('-') + ' ' + selectedValues.slice(3).join(':');
|
|
|
-}
|
|
|
-const transferTimeConfirm = ({ selectedValues }) => {
|
|
|
- showTransferTime.value = false;
|
|
|
- from.transferTime = selectedValues.slice(0, 3).join('-') + ' ' + selectedValues.slice(3).join(':');
|
|
|
+ from.birthday = createTextDate(values.selectedValues);
|
|
|
}
|
|
|
const reachTimeConfirm = ({ selectedValues }) => {
|
|
|
showReachTime.value = false;
|
|
|
- from.reachTime = selectedValues.slice(0, 3).join('-') + ' ' + selectedValues.slice(3).join(':');
|
|
|
+ from.reachTime = createTextDate(selectedValues);
|
|
|
}
|
|
|
const leavingTimeConfirm = ({ selectedValues }) => {
|
|
|
showLeavingTime.value = false;
|
|
|
- from.leavingTime = selectedValues.slice(0, 3).join('-') + ' ' + selectedValues.slice(3).join(':');
|
|
|
-}
|
|
|
-const checkInTimeConfirm = ({ selectedValues }) => {
|
|
|
- showCheckInTime.value = false;
|
|
|
- from.checkInTime = selectedValues.slice(0, 3).join('-') + ' ' + selectedValues.slice(3).join(':');
|
|
|
+ from.leavingTime = createTextDate(selectedValues);
|
|
|
}
|
|
|
const checkOutTimeConfirm = ({ selectedValues }) => {
|
|
|
showCheckOutTime.value = false;
|
|
|
- from.checkOutTime = selectedValues.slice(0, 3).join('-') + ' ' + selectedValues.slice(3).join(':');
|
|
|
+ from.checkOutTime = createTextDate(selectedValues);
|
|
|
}
|
|
|
+const onCountryOrRegionConfirm = ({ selectedValues }) => {
|
|
|
+ showCountryOrRegion.value = false;
|
|
|
+ from.countryOrRegion = selectedValues[0];
|
|
|
+}
|
|
|
+
|
|
|
// 选择证件类型
|
|
|
const onConfirm = ({ selectedValues }) => {
|
|
|
showCardType.value = false;
|
|
@@ -593,59 +542,41 @@ const onSubmit = () => {
|
|
|
}
|
|
|
if (!isFile()) showToast(lang.value[langType.value].selectFile);
|
|
|
saveData({
|
|
|
- name: from.name,
|
|
|
- photo: from.photoUrl[0].url,
|
|
|
- namePinyin: from.pinyin,
|
|
|
- gender: from.gender,
|
|
|
- phone: from.contact,
|
|
|
- email: from.email,
|
|
|
- birthDate: from.birthday,
|
|
|
- workUnit: from.workUnit,
|
|
|
- countryRegion: from.CountryOrRegion,
|
|
|
- provinceCity: from.provinceCity,
|
|
|
- unitType: from.unitType,
|
|
|
- jobLevel: from.jobLevel,
|
|
|
- title: from.title,
|
|
|
- otherTitle: from.otherTitle,
|
|
|
- chineseName: from.chineseName,
|
|
|
- idCard: from.passport,
|
|
|
- religion: from.belief,
|
|
|
- diplomaticRank: from.diplomaticRank,
|
|
|
- majorAchievements: from.mainAchievements,
|
|
|
- position: from.career,
|
|
|
- telephone: from.fixedLine,
|
|
|
- fax: from.fax,
|
|
|
- officeAddress: from.officeAddress,
|
|
|
- dietaryRequirements: from.catering,
|
|
|
- allergen: from.allergen,
|
|
|
- emergencyContact: from.emergencyContact,
|
|
|
- emergencyContactPhone: from.emergencyContactPhone,
|
|
|
- interviewIntention: from.interview,
|
|
|
- mediaCategory: from.media,
|
|
|
- arrivalFlightChina: from.flight,
|
|
|
- arrivalLocationChina: from.arrivalLocation,
|
|
|
- arrivalTimeChina: from.arrivalTime,
|
|
|
- transferMode: from.transfer,
|
|
|
- transferTime: from.transferTime,
|
|
|
- arrivalModeXian: from.reach,
|
|
|
- arrivalNumberXian: from.reachTrainNumber,
|
|
|
- arrivalLocationXian: from.reachLocation,
|
|
|
- arrivalTimeXian: from.reachTime,
|
|
|
- pickupLocation: from.pickUpLocation,
|
|
|
- departureMode: from.leavingTransportationMode,
|
|
|
- departureNumber: from.leavingTrainNumber,
|
|
|
- departureLocation: from.leavingLocation,
|
|
|
- departureTime: from.leavingTime,
|
|
|
- checkInTime: from.checkInTime,
|
|
|
- checkOutTime: from.checkOutTime,
|
|
|
- remarks: from.message,
|
|
|
- cardType: from.cardTypeName,
|
|
|
+ countryOrRegion: from.countryOrRegion, // 国家/地区
|
|
|
+ name: from.name, // 姓名
|
|
|
+ lastName: from.lastName, // 姓
|
|
|
+ firstName: from.firstName, // 名
|
|
|
+ photo: from.photoUrl[0].url, // 照片
|
|
|
+ gender: from.gender, // 性别
|
|
|
+ phone: from.contact, // 手机号
|
|
|
+ email: from.email, // 邮箱
|
|
|
+ birthDate: from.birthday, // 出生日期
|
|
|
+ workUnit: from.workUnit, // 工作单位
|
|
|
+ countryRegion: from.countryRegion, // 国家/地区
|
|
|
+ provinceCity: from.provinceCity, // 省市区
|
|
|
+ cardTypeName: from.cardTypeName, // 证件类型
|
|
|
+ unitType: from.unitType, // 单位类型
|
|
|
+ idCard: from.passport, // 证件号
|
|
|
+ religion: from.belief, // 宗教
|
|
|
+ position: from.career, // 职务
|
|
|
+ fax: from.fax, // fax
|
|
|
+ officeAddress: from.officeAddress, // 办公地址
|
|
|
+ dietaryRequirements: from.catering, // 饮食要求
|
|
|
+ emergencyContact: from.emergencyContact, // 紧急联系人
|
|
|
+ emergencyContactPhone: from.emergencyContactPhone, // 紧急联系人电话
|
|
|
+ interviewIntention: from.interview, // 接受采访意向
|
|
|
+ arrivalNumberXian: from.reachTrainNumber, // 抵达西安交通车次
|
|
|
+ arrivalTimeXian: from.reachTime, // 抵达西安时间
|
|
|
+ departureNumber: from.leavingTrainNumber, // 离开车次
|
|
|
+ departureTime: from.leavingTime, // 离开时间
|
|
|
+ checkOutTime: from.checkOutTime, // 离店时间
|
|
|
+ remarks: from.message, // 备注
|
|
|
}).then(() => {
|
|
|
showToast(lang.value[langType.value].registration);
|
|
|
// 清空表单内容 from
|
|
|
- Object.keys(from).forEach((key) => {
|
|
|
- from[key] = '';
|
|
|
- });
|
|
|
+ // Object.keys(from).forEach((key) => {
|
|
|
+ // from[key] = '';
|
|
|
+ // });
|
|
|
}).catch(() => {
|
|
|
showToast(lang.value[langType.value].registrationError);
|
|
|
});
|
|
@@ -658,7 +589,6 @@ const onSubmit = () => {
|
|
|
max-width: 750px;
|
|
|
margin: 0 auto;
|
|
|
min-height: 100vh;
|
|
|
- // background: linear-gradient(270deg, #1C4DD6 0%, #1D18BC 100%);
|
|
|
font-weight: 400;
|
|
|
position: relative;
|
|
|
font-family: Source Han Sans CN !important;
|
|
@@ -675,22 +605,14 @@ const onSubmit = () => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- input {
|
|
|
- text-align: right;
|
|
|
- }
|
|
|
-
|
|
|
.text {
|
|
|
padding: 8px 8px 0 8px;
|
|
|
text-align: justify;
|
|
|
- line-height: 1.8em;
|
|
|
+ line-height: 1.75em;
|
|
|
font-size: 16px;
|
|
|
color: #3D3D3D;
|
|
|
}
|
|
|
|
|
|
- .label {
|
|
|
- width: 5em;
|
|
|
- }
|
|
|
-
|
|
|
h4 {
|
|
|
color: #031280 !important;
|
|
|
}
|
|
@@ -702,6 +624,13 @@ const onSubmit = () => {
|
|
|
font-family: Source Han Serif CN !important;
|
|
|
}
|
|
|
|
|
|
+ .label {
|
|
|
+ min-width: 4em;
|
|
|
+ display: inline-block;
|
|
|
+ text-align: justify;
|
|
|
+ text-align-last: justify;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
.van-hairline--bottom:after {
|
|
|
border-bottom-width: 0px;
|