liyongli 1 mesiac pred
rodič
commit
8e2dc18b08

+ 394 - 374
src/view/fenghui/form.vue

@@ -1,379 +1,399 @@
 <!-- 外国嘉宾 -->
 <template>
-    <van-nav-bar fixed :border="false">
-        <template #left>
-            <van-icon name="arrow-left" color="#3D3D3D" @click="onClickLeft" />
-        </template>
-        <template #title>
-            <p style="padding-left: 3em;font-size: 1.2rem;" v-text="lang[langType].signUp"></p>
-        </template>
-    </van-nav-bar>
-    <div class="form">
-        <van-form ref="form" @submit="onSubmit" label-width="8em">
-            <!-- 国家/地区 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].countryRegionContent }]" required
-                v-model="formData.countryRegion" :placeholder="lang[langType].countryRegionContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].countryRegion"></span>
-                </template>
-            </van-field>
-
-            <!-- 姓 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].lastNameContent }]" required
-                v-model="formData.lastName" :placeholder="lang[langType].lastNameContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].lastName"></span>
-                </template>
-            </van-field>
-
-            <!-- 名 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].firstNameContent }]" required
-                v-model="formData.firstName" :placeholder="lang[langType].firstNameContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].firstName"></span>
-                </template>
-            </van-field>
-
-            <!-- 性别 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].genderContent }]"
-                v-model="formData.gender" required :placeholder="lang[langType].genderContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].gender"></span>
-                </template>
-            </van-field>
-
-            <!-- 生日 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].birthdayContent }]" clickable
-                right-icon="calendar-o" readonly @click="showBirthday = true" v-model="formData.birthday" required
-                :placeholder="lang[langType].birthdayContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? '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-button-text="lang[langType].confirm"
-                :cancel-button-text="lang[langType].cancel" @confirm="packerConfirm"
-                    :title="lang[langType].birthday" @cancel="showBirthday = false" :min-date="new Date(1970, 0, 1)"
-                    :max-date="new Date()" />
-            </van-popup>
-
-            <!-- 照片 -->
-            <van-field size=“large” input-align="right" :placeholder="lang[langType].photoContent" required
-                :rules="[{ required: true, trigger: 'onChange', message: lang[langType].photoContent }]"
-                v-model="formData.photoUrl">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].photo"></span>
-                </template>
-                <template #input>
-                    <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 class="upFileSubtitle" v-text="lang[langType].photoSubContent"> </p>
-                </template>
-            </van-field>
-
-            <!-- 手机号 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].contactContent }]"
-                v-model="formData.contact" type="number" required :placeholder="lang[langType].contactContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].contact"></span>
-                </template>
-            </van-field>
-
-            <!-- 邮箱 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emailContent }]" required
-                v-model="formData.email" :placeholder="lang[langType].emailContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].email"></span>
-                </template>
-            </van-field>
-
-            <!-- 紧急联系人 -->
-            <van-field size=“large” input-align="right" v-model="formData.emergencyContact"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactContent }]"
-                required :placeholder="lang[langType].emergencyContactContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].emergencyContact"></span>
-                </template>
-            </van-field>
-
-            <!-- 紧急联系人电话 -->
-            <van-field size=“large” input-align="right" v-model="formData.emergencyContactPhone" required type="number"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactPhoneContent }]"
-                :placeholder="lang[langType].emergencyContactPhoneContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''"
-                        v-html="lang[langType].emergencyContactPhone"></span>
-                </template>
-            </van-field>
-
-            <!-- 证件类型 -->
-            <van-field size=“large” label-align="top" v-model="formData.cardType" clickable
-                :rules="[{ required: true, trigger: 'onChange', message: lang[langType].conferenceTypeContent }]"
-                :placeholder="lang[langType].conferenceTypeContent" required>
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].conferenceType"></span>
-                </template>
-                <template #input>
-                    <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.cardType"
-                        direction="horizontal">
-                        <van-radio v-for="item in cardTypeList" :key="item.value" style="width: 50%;margin: 10px 0 0 0;"
-                            :name="item.value">{{ item.text }}</van-radio>
-                    </van-radio-group>
-                </template>
-            </van-field>
-
-            <!-- 证件 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].passportContent }]"
-                v-model="formData.passport" required :placeholder="lang[langType].passportContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].passport"></span>
-                </template>
-            </van-field>
-
-            <!-- 宗教 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].beliefContent }]"
-                v-model="formData.belief" required :placeholder="lang[langType].beliefContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].belief"></span>
-                </template>
-            </van-field>
-
-            <!-- 饮食要求 -->
-            <van-field size=“large” input-align="right" v-model="formData.catering" rows="1" autosize
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].cateringContent }]"
-                type="textarea" required :placeholder="lang[langType].cateringContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].catering"></span>
-                </template>
-            </van-field>
-
-            <div style="background-color: #F7F7F7;height: 10px;"></div>
-
-            <!-- 工作单位 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].workUnit }]" required
-                v-model="formData.workUnit" :placeholder="lang[langType].companyContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].company"></span>
-                </template>
-            </van-field>
-
-            <!-- 单位类型 -->
-            <van-field size=“large” input-align="right" v-model="formData.unitTypeName" clickable
-                :rules="[{ required: true, trigger: 'onChange', message: lang[langType].unitTypeContent }]"
-                right-icon="calendar-o" readonly :placeholder="lang[langType].unitTypeContent"
-                @click="showUnitType = true" required>
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].unitType"></span>
-                </template>
-            </van-field>
-            <van-popup v-model:show="showUnitType" destroy-on-close round position="bottom">
-                <van-picker :confirm-button-text="lang[langType].confirm" :cancel-button-text="lang[langType].cancel"
-                    :columns="unitTypeList" @cancel="showUnitType = false" @confirm="onUnitTypeConfirm" />
-            </van-popup>
-
-            <!-- 职务 -->
-            <van-field size=“large” input-align="right" v-model="formData.career"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].careerContent }]" required
-                :placeholder="lang[langType].careerContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].career"></span>
-                </template>
-            </van-field>
-
-            <!-- 传真 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].faxContent }]"
-                v-model="formData.fax" required :placeholder="lang[langType].faxContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].fax"></span>
-                </template>
-            </van-field>
-
-            <!-- 办公地址 -->
-            <van-field size=“large” input-align="right" v-model="formData.officeAddress" rows="1" autosize required
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].officeAddressContent }]"
-                type="textarea" :placeholder="lang[langType].officeAddressContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].officeAddress"></span>
-                </template>
-            </van-field>
-
-            <div style="background-color: #F7F7F7;height: 10px;"></div>
-
-            <!-- 接受采访意向  -->
-            <van-field size=“large” label-align="top" v-model="formData.interview" required
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].interviewContent }]"
-                :placeholder="lang[langType].interviewContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].interview"></span>
-                </template>
-                <template #input>
-                    <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.interview"
-                        direction="horizontal">
-                        <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm }}</van-radio>
-                        <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel }}</van-radio>
-                    </van-radio-group>
-                </template>
-            </van-field>
-
-            <div style="background-color: #F7F7F7;height: 10px;"></div>
-            <!-- 共享数字经济发展机遇  -->
-            <van-field size=“large” label-align="top" v-model="formData.active1" required
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active1Content }]"
-                :placeholder="lang[langType].active1Content">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active1"></span>
-                </template>
-                <template #input>
-                    <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active1"
-                        direction="horizontal">
-                        <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm }}</van-radio>
-                        <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel }}</van-radio>
-                    </van-radio-group>
-                </template>
-            </van-field>
-
-            <!-- 共筑网络安全防线  -->
-            <van-field size=“large” label-align="top" v-model="formData.active2" required
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active2Content }]"
-                :placeholder="lang[langType].active2Content">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active2"></span>
-                </template>
-                <template #input>
-                    <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active2"
-                        direction="horizontal">
-                        <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm }}</van-radio>
-                        <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel }}</van-radio>
-                    </van-radio-group>
-                </template>
-            </van-field>
-
-            <!-- 共商人工智能发展治理  -->
-            <van-field size=“large” label-align="top" v-model="formData.active3" required
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active3Content }]"
-                :placeholder="lang[langType].active3Content">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active3"></span>
-                </template>
-                <template #input>
-                    <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active3"
-                        direction="horizontal">
-                        <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm }}</van-radio>
-                        <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel }}</van-radio>
-                    </van-radio-group>
-                </template>
-            </van-field>
-
-            <!-- 拟参加的活动  -->
-            <van-field size=“large” label-align="top" :placeholder="lang[langType].activitiesAttendedContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].activitiesAttended"></span>
-                </template>
-                <template #input>
-                    <van-checkbox-group checked-color="#3F5AC8" v-model="activitiesAttended">
-                        <van-cell clickable :title="lang[langType].active4" @click="checkboxRefs[0].toggle()">
-                            <template #icon>
-                                <van-checkbox :ref="el => checkboxRefs[0] = el" style="margin-right: 5px;" name="active4" @click.stop shape="square" />
-                            </template>
-                        </van-cell>
-                        <van-cell clickable :title="lang[langType].active5" @click="checkboxRefs[1].toggle()">
-                            <template #icon>
-                                <van-checkbox :ref="el => checkboxRefs[1] = el" style="margin-right: 5px;" name="active5" @click.stop shape="square" />
-                            </template>
-                        </van-cell>
-                        <van-cell clickable :title="lang[langType].active6" @click="checkboxRefs[2].toggle()">
-                            <template #icon>
-                                <van-checkbox :ref="el => checkboxRefs[2] = el" style="margin-right: 5px;" name="active6" @click.stop shape="square" />
-                            </template>
-                        </van-cell>
-                    </van-checkbox-group>
-                </template>
-            </van-field>
-
-            <div style="background-color: #F7F7F7;height: 10px;"></div>
-
-            <!--  抵达西安交通车次 -->
-            <van-field size=“large” input-align="right" v-model="formData.reachTrainNumber"
-                :placeholder="lang[langType].reachTrainNumberContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].reachTrainNumber"></span>
-                </template>
-            </van-field>
-
-            <!--  抵达西安时间 -->
-            <van-field size=“large” input-align="right" v-model="formData.reachTime" clickable right-icon="calendar-o"
-                readonly @click="showReachTime = true" :placeholder="lang[langType].reachTimeContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].reachTime"></span>
-                </template>
-            </van-field>
-            <van-popup v-model:show="showReachTime" destroy-on-close round position="bottom">
-                <van-picker :confirm-button-text="lang[langType].confirm" :cancel-button-text="lang[langType].cancel"
-                    :title="lang[langType].reachTime" :columns="dateTimeColumns" @confirm="reachTimeConfirm"
-                    @cancel="showReachTime = false" />
-            </van-popup>
-
-            <!--  离开车次 -->
-            <van-field size=“large” input-align="right" v-model="formData.leavingTrainNumber"
-                :placeholder="lang[langType].leavingTrainNumberContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].leavingTrainNumber"></span>
-                </template>
-            </van-field>
-
-            <!--  离开时间 -->
-            <van-field size=“large” input-align="right" v-model="formData.leavingTime" clickable right-icon="calendar-o"
-                readonly @click="showLeavingTime = true" :placeholder="lang[langType].leavingTimeContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].leavingTime"></span>
-                </template>
-            </van-field>
-            <van-popup v-model:show="showLeavingTime" destroy-on-close round position="bottom">
-                <van-picker :confirm-button-text="lang[langType].confirm" :cancel-button-text="lang[langType].cancel"
-                    :title="lang[langType].leavingTime" :columns="dateTimeColumns" @confirm="leavingTimeConfirm"
-                    @cancel="showLeavingTime = false" />
-            </van-popup>
-
-            <!--  离店时间 -->
-            <van-field size=“large” input-align="right" v-model="formData.checkOutTime" clickable
-                right-icon="calendar-o" readonly @click="showCheckOutTime = true"
-                :placeholder="lang[langType].checkOutTimeContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].checkOutTime"></span>
-                </template>
-            </van-field>
-            <van-popup v-model:show="showCheckOutTime" destroy-on-close round position="bottom">
-                <van-picker :confirm-button-text="lang[langType].confirm" :cancel-button-text="lang[langType].cancel"
-                    :title="lang[langType].checkOutTime" :columns="dateTimeColumns" @confirm="checkOutTimeConfirm"
-                    @cancel="showCheckOutTime = false" />
-            </van-popup>
-
-            <van-field size=“large” input-align="right" v-model="formData.message" rows="3" autosize type="textarea"
-                :placeholder="lang[langType].ortherNotesContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].ortherNotes"></span>
-                </template>
-            </van-field>
-            <br />
-            <van-button
-                style="background: linear-gradient(270deg, #1D19BC 0%, #1C4CD5 100%);margin: 0 auto;width: calc(100% - 40px);"
-                block type="primary" native-type="submit">
-                {{ lang[langType].submit }}
-            </van-button>
-        </van-form>
+    <div>
+
+        <van-nav-bar fixed :border="false">
+            <template #left>
+                <van-icon name="arrow-left" color="#3D3D3D" @click="onClickLeft" />
+            </template>
+            <template #title>
+                <p style="padding-left: 3em;font-size: 1.2rem;" v-text="lang[langType].signUp"></p>
+            </template>
+        </van-nav-bar>
+        <div class="form">
+            <van-form ref="form" @submit="onSubmit" label-width="8em">
+                <!-- 国家/地区 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].countryRegionContent }]"
+                    required v-model="formData.countryRegion" :placeholder="lang[langType].countryRegionContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].countryRegion"></span>
+                    </template>
+                </van-field>
+
+                <!-- 姓 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].lastNameContent }]" required
+                    v-model="formData.lastName" :placeholder="lang[langType].lastNameContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].lastName"></span>
+                    </template>
+                </van-field>
+
+                <!-- 名 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].firstNameContent }]" required
+                    v-model="formData.firstName" :placeholder="lang[langType].firstNameContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].firstName"></span>
+                    </template>
+                </van-field>
+
+                <!-- 性别 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].genderContent }]"
+                    v-model="formData.gender" required :placeholder="lang[langType].genderContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].gender"></span>
+                    </template>
+                </van-field>
+
+                <!-- 生日 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].birthdayContent }]" clickable
+                    right-icon="calendar-o" readonly @click="showBirthday = true" v-model="formData.birthday" required
+                    :placeholder="lang[langType].birthdayContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? '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-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" @confirm="packerConfirm"
+                        :title="lang[langType].birthday" @cancel="showBirthday = false" :min-date="new Date(1970, 0, 1)"
+                        :max-date="new Date()" />
+                </van-popup>
+
+                <!-- 照片 -->
+                <van-field size=“large” input-align="right" :placeholder="lang[langType].photoContent" required
+                    :rules="[{ required: true, trigger: 'onChange', message: lang[langType].photoContent }]"
+                    v-model="formData.photoUrl">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].photo"></span>
+                    </template>
+                    <template #input>
+                        <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 class="upFileSubtitle" v-text="lang[langType].photoSubContent"> </p>
+                    </template>
+                </van-field>
+
+                <!-- 手机号 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].contactContent }]"
+                    v-model="formData.contact" type="number" required :placeholder="lang[langType].contactContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].contact"></span>
+                    </template>
+                </van-field>
+
+                <!-- 邮箱 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emailContent }]" required
+                    v-model="formData.email" :placeholder="lang[langType].emailContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].email"></span>
+                    </template>
+                </van-field>
+
+                <!-- 紧急联系人 -->
+                <van-field size=“large” input-align="right" v-model="formData.emergencyContact"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactContent }]"
+                    required :placeholder="lang[langType].emergencyContactContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].emergencyContact"></span>
+                    </template>
+                </van-field>
+
+                <!-- 紧急联系人电话 -->
+                <van-field size=“large” input-align="right" v-model="formData.emergencyContactPhone" required
+                    type="number"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactPhoneContent }]"
+                    :placeholder="lang[langType].emergencyContactPhoneContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''"
+                            v-html="lang[langType].emergencyContactPhone"></span>
+                    </template>
+                </van-field>
+
+                <!-- 证件类型 -->
+                <van-field size=“large” label-align="top" v-model="formData.cardType" clickable
+                    :rules="[{ required: true, trigger: 'onChange', message: lang[langType].conferenceTypeContent }]"
+                    :placeholder="lang[langType].conferenceTypeContent" required>
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].conferenceType"></span>
+                    </template>
+                    <template #input>
+                        <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.cardType"
+                            direction="horizontal">
+                            <van-radio v-for="item in cardTypeList" :key="item.value"
+                                style="width: 50%;margin: 10px 0 0 0;" :name="item.value">{{ item.text }}</van-radio>
+                        </van-radio-group>
+                    </template>
+                </van-field>
+
+                <!-- 证件 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].passportContent }]"
+                    v-model="formData.passport" required :placeholder="lang[langType].passportContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].passport"></span>
+                    </template>
+                </van-field>
+
+                <!-- 宗教 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].beliefContent }]"
+                    v-model="formData.belief" required :placeholder="lang[langType].beliefContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].belief"></span>
+                    </template>
+                </van-field>
+
+                <!-- 饮食要求 -->
+                <van-field size=“large” input-align="right" v-model="formData.catering" rows="1" autosize
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].cateringContent }]"
+                    type="textarea" required :placeholder="lang[langType].cateringContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].catering"></span>
+                    </template>
+                </van-field>
+
+                <div style="background-color: #F7F7F7;height: 10px;"></div>
+
+                <!-- 工作单位 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].workUnit }]" required
+                    v-model="formData.workUnit" :placeholder="lang[langType].companyContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].company"></span>
+                    </template>
+                </van-field>
+
+                <!-- 单位类型 -->
+                <van-field size=“large” input-align="right" v-model="formData.unitTypeName" clickable
+                    :rules="[{ required: true, trigger: 'onChange', message: lang[langType].unitTypeContent }]"
+                    right-icon="calendar-o" readonly :placeholder="lang[langType].unitTypeContent"
+                    @click="showUnitType = true" required>
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].unitType"></span>
+                    </template>
+                </van-field>
+                <van-popup v-model:show="showUnitType" destroy-on-close round position="bottom">
+                    <van-picker :confirm-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" :columns="unitTypeList"
+                        @cancel="showUnitType = false" @confirm="onUnitTypeConfirm" />
+                </van-popup>
+
+                <!-- 职务 -->
+                <van-field size=“large” input-align="right" v-model="formData.career"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].careerContent }]" required
+                    :placeholder="lang[langType].careerContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].career"></span>
+                    </template>
+                </van-field>
+
+                <!-- 传真 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].faxContent }]"
+                    v-model="formData.fax" required :placeholder="lang[langType].faxContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].fax"></span>
+                    </template>
+                </van-field>
+
+                <!-- 办公地址 -->
+                <van-field size=“large” input-align="right" v-model="formData.officeAddress" rows="1" autosize required
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].officeAddressContent }]"
+                    type="textarea" :placeholder="lang[langType].officeAddressContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].officeAddress"></span>
+                    </template>
+                </van-field>
+
+                <div style="background-color: #F7F7F7;height: 10px;"></div>
+
+                <!-- 接受采访意向  -->
+                <van-field size=“large” label-align="top" v-model="formData.interview" required
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].interviewContent }]"
+                    :placeholder="lang[langType].interviewContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].interview"></span>
+                    </template>
+                    <template #input>
+                        <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.interview"
+                            direction="horizontal">
+                            <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm
+                                }}</van-radio>
+                            <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel
+                                }}</van-radio>
+                        </van-radio-group>
+                    </template>
+                </van-field>
+
+                <div style="background-color: #F7F7F7;height: 10px;"></div>
+                <!-- 共享数字经济发展机遇  -->
+                <van-field size=“large” label-align="top" v-model="formData.active1" required
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active1Content }]"
+                    :placeholder="lang[langType].active1Content">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active1"></span>
+                    </template>
+                    <template #input>
+                        <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active1"
+                            direction="horizontal">
+                            <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm
+                                }}</van-radio>
+                            <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel
+                                }}</van-radio>
+                        </van-radio-group>
+                    </template>
+                </van-field>
+
+                <!-- 共筑网络安全防线  -->
+                <van-field size=“large” label-align="top" v-model="formData.active2" required
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active2Content }]"
+                    :placeholder="lang[langType].active2Content">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active2"></span>
+                    </template>
+                    <template #input>
+                        <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active2"
+                            direction="horizontal">
+                            <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm
+                                }}</van-radio>
+                            <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel
+                                }}</van-radio>
+                        </van-radio-group>
+                    </template>
+                </van-field>
+
+                <!-- 共商人工智能发展治理  -->
+                <van-field size=“large” label-align="top" v-model="formData.active3" required
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active3Content }]"
+                    :placeholder="lang[langType].active3Content">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active3"></span>
+                    </template>
+                    <template #input>
+                        <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active3"
+                            direction="horizontal">
+                            <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm
+                                }}</van-radio>
+                            <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel
+                                }}</van-radio>
+                        </van-radio-group>
+                    </template>
+                </van-field>
+
+                <!-- 拟参加的活动  -->
+                <van-field size=“large” label-align="top" :placeholder="lang[langType].activitiesAttendedContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''"
+                            v-html="lang[langType].activitiesAttended"></span>
+                    </template>
+                    <template #input>
+                        <van-checkbox-group checked-color="#3F5AC8" v-model="activitiesAttended">
+                            <van-cell clickable :title="lang[langType].active4" @click="checkboxRefs[0].toggle()">
+                                <template #icon>
+                                    <van-checkbox :ref="el => checkboxRefs[0] = el" style="margin-right: 5px;"
+                                        name="active4" @click.stop shape="square" />
+                                </template>
+                            </van-cell>
+                            <van-cell clickable :title="lang[langType].active5" @click="checkboxRefs[1].toggle()">
+                                <template #icon>
+                                    <van-checkbox :ref="el => checkboxRefs[1] = el" style="margin-right: 5px;"
+                                        name="active5" @click.stop shape="square" />
+                                </template>
+                            </van-cell>
+                            <van-cell clickable :title="lang[langType].active6" @click="checkboxRefs[2].toggle()">
+                                <template #icon>
+                                    <van-checkbox :ref="el => checkboxRefs[2] = el" style="margin-right: 5px;"
+                                        name="active6" @click.stop shape="square" />
+                                </template>
+                            </van-cell>
+                        </van-checkbox-group>
+                    </template>
+                </van-field>
+
+                <div style="background-color: #F7F7F7;height: 10px;"></div>
+
+                <!--  抵达西安交通车次 -->
+                <van-field size=“large” input-align="right" v-model="formData.reachTrainNumber"
+                    :placeholder="lang[langType].reachTrainNumberContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].reachTrainNumber"></span>
+                    </template>
+                </van-field>
+
+                <!--  抵达西安时间 -->
+                <van-field size=“large” input-align="right" v-model="formData.reachTime" clickable
+                    right-icon="calendar-o" readonly @click="showReachTime = true"
+                    :placeholder="lang[langType].reachTimeContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].reachTime"></span>
+                    </template>
+                </van-field>
+                <van-popup v-model:show="showReachTime" destroy-on-close round position="bottom">
+                    <van-picker :confirm-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" :title="lang[langType].reachTime"
+                        :columns="dateTimeColumns" @confirm="reachTimeConfirm" @cancel="showReachTime = false" />
+                </van-popup>
+
+                <!--  离开车次 -->
+                <van-field size=“large” input-align="right" v-model="formData.leavingTrainNumber"
+                    :placeholder="lang[langType].leavingTrainNumberContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''"
+                            v-html="lang[langType].leavingTrainNumber"></span>
+                    </template>
+                </van-field>
+
+                <!--  离开时间 -->
+                <van-field size=“large” input-align="right" v-model="formData.leavingTime" clickable
+                    right-icon="calendar-o" readonly @click="showLeavingTime = true"
+                    :placeholder="lang[langType].leavingTimeContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].leavingTime"></span>
+                    </template>
+                </van-field>
+                <van-popup v-model:show="showLeavingTime" destroy-on-close round position="bottom">
+                    <van-picker :confirm-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" :title="lang[langType].leavingTime"
+                        :columns="dateTimeColumns" @confirm="leavingTimeConfirm" @cancel="showLeavingTime = false" />
+                </van-popup>
+
+                <!--  离店时间 -->
+                <van-field size=“large” input-align="right" v-model="formData.checkOutTime" clickable
+                    right-icon="calendar-o" readonly @click="showCheckOutTime = true"
+                    :placeholder="lang[langType].checkOutTimeContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].checkOutTime"></span>
+                    </template>
+                </van-field>
+                <van-popup v-model:show="showCheckOutTime" destroy-on-close round position="bottom">
+                    <van-picker :confirm-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" :title="lang[langType].checkOutTime"
+                        :columns="dateTimeColumns" @confirm="checkOutTimeConfirm" @cancel="showCheckOutTime = false" />
+                </van-popup>
+
+                <van-field size=“large” input-align="right" v-model="formData.message" rows="3" autosize type="textarea"
+                    :placeholder="lang[langType].ortherNotesContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].ortherNotes"></span>
+                    </template>
+                </van-field>
+                <br />
+                <van-button
+                    style="background: linear-gradient(270deg, #1D19BC 0%, #1C4CD5 100%);margin: 0 auto;width: calc(100% - 40px);"
+                    block type="primary" native-type="submit">
+                    {{ lang[langType].submit }}
+                </van-button>
+            </van-form>
+        </div>
     </div>
 </template>
 <script setup>

+ 377 - 360
src/view/fenghui/form1.vue

@@ -1,365 +1,382 @@
 <!-- 中国嘉宾 -->
 <template>
-    <van-nav-bar fixed :border="false">
-        <template #left>
-            <van-icon name="arrow-left" color="#3D3D3D" @click="onClickLeft" />
-        </template>
-        <template #title>
-            <p style="padding-left: 3em;font-size: 1.2rem;" v-text="lang[langType].signUpZH"></p>
-        </template>
-    </van-nav-bar>
-    <div class="form">
-        <van-form ref="form" @submit="onSubmit" label-width="8em">
-            <!-- 姓名 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: formData, trigger: 'onBlur', message: lang[langType].nameContent }]" required
-                v-model="formData.name" :placeholder="lang[langType].nameContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].name"></span>
-                </template>
-            </van-field>
-
-            <!-- 省市 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].provinceCityContent }]"
-                v-model="formData.provinceCity" required :placeholder="lang[langType].provinceCityContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].provinceCity"></span>
-                </template>
-            </van-field>
-
-            <!-- 性别 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].genderContent }]"
-                v-model="formData.gender" required :placeholder="lang[langType].genderContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].gender"></span>
-                </template>
-            </van-field>
-
-            <!-- 生日 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].birthdayContent }]" clickable
-                right-icon="calendar-o" readonly @click="showBirthday = true" v-model="formData.birthday" required
-                :placeholder="lang[langType].birthdayContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? '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-button-text="lang[langType].confirm"
-                    :cancel-button-text="lang[langType].cancel" @confirm="packerConfirm"
-                    :title="lang[langType].birthday" @cancel="showBirthday = false" :min-date="new Date(1970, 0, 1)"
-                    :max-date="new Date()" />
-            </van-popup>
-
-            <!-- 照片 -->
-            <van-field size=“large” input-align="right" :placeholder="lang[langType].photoContent" required
-                :rules="[{ required: true, trigger: 'onChange', message: lang[langType].photoContent }]"
-                v-model="formData.photoUrl">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].photo"></span>
-                </template>
-                <template #input>
-                    <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 class="upFileSubtitle" v-text="lang[langType].photoSubContent"> </p>
-                </template>
-            </van-field>
-
-            <!-- 手机号 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].contactContent }]"
-                v-model="formData.contact" type="number" required :placeholder="lang[langType].contactContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].contact"></span>
-                </template>
-            </van-field>
-
-            <!-- 邮箱 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emailContent }]" required
-                v-model="formData.email" :placeholder="lang[langType].emailContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].email"></span>
-                </template>
-            </van-field>
-
-            <!-- 紧急联系人 -->
-            <van-field size=“large” input-align="right" v-model="formData.emergencyContact"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactContent }]"
-                required :placeholder="lang[langType].emergencyContactContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].emergencyContact"></span>
-                </template>
-            </van-field>
-
-            <!-- 紧急联系人电话 -->
-            <van-field size=“large” input-align="right" v-model="formData.emergencyContactPhone" required type="number"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactPhoneContent }]"
-                :placeholder="lang[langType].emergencyContactPhoneContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''"
-                        v-html="lang[langType].emergencyContactPhone"></span>
-                </template>
-            </van-field>
-
-            <!-- 证件类型 -->
-            <van-field size=“large” label-align="top" v-model="formData.cardType" clickable
-                :rules="[{ required: true, trigger: 'onChange', message: lang[langType].conferenceTypeContent }]"
-                :placeholder="lang[langType].conferenceTypeContent" required>
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].conferenceType"></span>
-                </template>
-                <template #input>
-                    <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.cardType"
-                        direction="horizontal">
-                        <van-radio v-for="item in cardTypeList" :key="item.value" style="width: 50%;margin: 10px 0 0 0;"
-                            :name="item.value">{{ item.text }}</van-radio>
-                    </van-radio-group>
-                </template>
-            </van-field>
-
-            <!-- 证件 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].passportContent }]"
-                v-model="formData.passport" required :placeholder="lang[langType].passportContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].passport"></span>
-                </template>
-            </van-field>
-
-            <!-- 饮食要求 -->
-            <van-field size=“large” input-align="right" v-model="formData.catering" rows="1" autosize
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].cateringContent }]"
-                type="textarea" required :placeholder="lang[langType].cateringContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].catering"></span>
-                </template>
-            </van-field>
-
-            <div style="background-color: #F7F7F7;height: 10px;"></div>
-
-            <!-- 工作单位 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].workUnit }]" required
-                v-model="formData.workUnit" :placeholder="lang[langType].companyContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].company"></span>
-                </template>
-            </van-field>
-
-            <!-- 单位类型 -->
-            <van-field size=“large” input-align="right" v-model="formData.unitTypeName" clickable
-                :rules="[{ required: true, trigger: 'onChange', message: lang[langType].unitTypeContent }]"
-                right-icon="calendar-o" readonly :placeholder="lang[langType].unitTypeContent"
-                @click="showUnitType = true" required>
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].unitType"></span>
-                </template>
-            </van-field>
-            <van-popup v-model:show="showUnitType" destroy-on-close round position="bottom">
-                <van-picker :confirm-button-text="lang[langType].confirm" :cancel-button-text="lang[langType].cancel"
-                    :columns="unitTypeList" @cancel="showUnitType = false" @confirm="onUnitTypeConfirm" />
-            </van-popup>
-
-            <!-- 职务 -->
-            <van-field size=“large” input-align="right" v-model="formData.career"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].careerContent }]" required
-                :placeholder="lang[langType].careerContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].career"></span>
-                </template>
-            </van-field>
-
-            <!-- 传真 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].faxContent }]"
-                v-model="formData.fax" required :placeholder="lang[langType].faxContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].fax"></span>
-                </template>
-            </van-field>
-
-            <!-- 办公地址 -->
-            <van-field size=“large” input-align="right" v-model="formData.officeAddress" rows="1" autosize required
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].officeAddressContent }]"
-                type="textarea" :placeholder="lang[langType].officeAddressContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].officeAddress"></span>
-                </template>
-            </van-field>
-
-            <div style="background-color: #F7F7F7;height: 10px;"></div>
-            <!-- 接受采访意向  -->
-            <van-field size=“large” v-model="formData.interview" required label-align="top"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].interviewContent }]"
-                :placeholder="lang[langType].interviewContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].interview"></span>
-                </template>
-                <template #input>
-                    <van-radio-group checked-color="#3F5AC8" style="justify-content: flex-end;width: 100%;"
-                        v-model="formData.interview" direction="horizontal">
-                        <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm }}</van-radio>
-                        <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel }}</van-radio>
-                    </van-radio-group>
-                </template>
-            </van-field>
-            <div style="background-color: #F7F7F7;height: 10px;"></div>
-
-            <!-- 共享数字经济发展机遇  -->
-            <van-field size=“large” label-align="top" v-model="formData.active1" required
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active1Content }]"
-                :placeholder="lang[langType].active1Content">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active1"></span>
-                </template>
-                <template #input>
-                    <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active1"
-                        direction="horizontal">
-                        <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm }}</van-radio>
-                        <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel }}</van-radio>
-                    </van-radio-group>
-                </template>
-            </van-field>
-
-            <!-- 共筑网络安全防线  -->
-            <van-field size=“large” label-align="top" v-model="formData.active2" required
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active2Content }]"
-                :placeholder="lang[langType].active2Content">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active2"></span>
-                </template>
-                <template #input>
-                    <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active2"
-                        direction="horizontal">
-                        <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm }}</van-radio>
-                        <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel }}</van-radio>
-                    </van-radio-group>
-                </template>
-            </van-field>
-
-            <!-- 共商人工智能发展治理  -->
-            <van-field size=“large” label-align="top" v-model="formData.active3" required
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active3Content }]"
-                :placeholder="lang[langType].active3Content">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active3"></span>
-                </template>
-                <template #input>
-                    <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active3"
-                        direction="horizontal">
-                        <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm }}</van-radio>
-                        <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel }}</van-radio>
-                    </van-radio-group>
-                </template>
-            </van-field>
-
-            <!-- 拟参加的活动  -->
-            <van-field size=“large” label-align="top" :placeholder="lang[langType].activitiesAttendedContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].activitiesAttended"></span>
-                </template>
-                <template #input>
-                    <van-checkbox-group checked-color="#3F5AC8" v-model="activitiesAttended">
-                        <van-cell clickable :title="lang[langType].active4" @click="checkboxRefs[0].toggle()">
-                            <template #icon>
-                                <van-checkbox :ref="el => checkboxRefs[0] = el" style="margin-right: 5px;"
-                                    name="active4" @click.stop shape="square" />
-                            </template>
-                        </van-cell>
-                        <van-cell clickable :title="lang[langType].active5" @click="checkboxRefs[1].toggle()">
-                            <template #icon>
-                                <van-checkbox :ref="el => checkboxRefs[1] = el" style="margin-right: 5px;"
-                                    name="active5" @click.stop shape="square" />
-                            </template>
-                        </van-cell>
-                        <van-cell clickable :title="lang[langType].active6" @click="checkboxRefs[2].toggle()">
-                            <template #icon>
-                                <van-checkbox :ref="el => checkboxRefs[2] = el" style="margin-right: 5px;"
-                                    name="active6" @click.stop shape="square" />
-                            </template>
-                        </van-cell>
-                    </van-checkbox-group>
-                </template>
-            </van-field>
-
-
-            <div style="background-color: #F7F7F7;height: 10px;"></div>
-
-            <!--  抵达西安交通车次 -->
-            <van-field size=“large” input-align="right" v-model="formData.reachTrainNumber"
-                :placeholder="lang[langType].reachTrainNumberContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].reachTrainNumber"></span>
-                </template>
-            </van-field>
-
-            <!--  抵达西安时间 -->
-            <van-field size=“large” input-align="right" v-model="formData.reachTime" clickable right-icon="calendar-o"
-                readonly @click="showReachTime = true" :placeholder="lang[langType].reachTimeContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].reachTime"></span>
-                </template>
-            </van-field>
-            <van-popup v-model:show="showReachTime" destroy-on-close round position="bottom">
-                <van-picker :confirm-button-text="lang[langType].confirm" :cancel-button-text="lang[langType].cancel"
-                    :title="lang[langType].reachTime" :columns="dateTimeColumns" @confirm="reachTimeConfirm"
-                    @cancel="showReachTime = false" />
-            </van-popup>
-
-            <!--  离开车次 -->
-            <van-field size=“large” input-align="right" v-model="formData.leavingTrainNumber"
-                :placeholder="lang[langType].leavingTrainNumberContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].leavingTrainNumber"></span>
-                </template>
-            </van-field>
-
-            <!--  离开时间 -->
-            <van-field size=“large” input-align="right" v-model="formData.leavingTime" clickable right-icon="calendar-o"
-                readonly @click="showLeavingTime = true" :placeholder="lang[langType].leavingTimeContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].leavingTime"></span>
-                </template>
-            </van-field>
-            <van-popup v-model:show="showLeavingTime" destroy-on-close round position="bottom">
-                <van-picker :confirm-button-text="lang[langType].confirm" :cancel-button-text="lang[langType].cancel"
-                    :title="lang[langType].leavingTime" :columns="dateTimeColumns" @confirm="leavingTimeConfirm"
-                    @cancel="showLeavingTime = false" />
-            </van-popup>
-
-            <!--  离店时间 -->
-            <van-field size=“large” input-align="right" v-model="formData.checkOutTime" clickable
-                right-icon="calendar-o" readonly @click="showCheckOutTime = true"
-                :placeholder="lang[langType].checkOutTimeContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].checkOutTime"></span>
-                </template>
-            </van-field>
-            <van-popup v-model:show="showCheckOutTime" destroy-on-close round position="bottom">
-                <van-picker :confirm-button-text="lang[langType].confirm" :cancel-button-text="lang[langType].cancel"
-                    :title="lang[langType].checkOutTime" :columns="dateTimeColumns" @confirm="checkOutTimeConfirm"
-                    @cancel="showCheckOutTime = false" />
-            </van-popup>
-
-            <van-field size=“large” input-align="right" v-model="formData.message" rows="3" autosize type="textarea"
-                :placeholder="lang[langType].ortherNotesContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].ortherNotes"></span>
-                </template>
-            </van-field>
-            <br />
-            <van-button
-                style="background: linear-gradient(270deg, #1D19BC 0%, #1C4CD5 100%);margin: 0 auto;width: calc(100% - 40px);"
-                block type="primary" native-type="submit">
-                {{ lang[langType].submit }}
-            </van-button>
-        </van-form>
+    <div>
+        <van-nav-bar fixed :border="false">
+            <template #left>
+                <van-icon name="arrow-left" color="#3D3D3D" @click="onClickLeft" />
+            </template>
+            <template #title>
+                <p style="padding-left: 3em;font-size: 1.2rem;" v-text="lang[langType].signUpZH"></p>
+            </template>
+        </van-nav-bar>
+        <div class="form">
+            <van-form ref="form" @submit="onSubmit" label-width="8em">
+                <!-- 姓名 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: formData, trigger: 'onBlur', message: lang[langType].nameContent }]" required
+                    v-model="formData.name" :placeholder="lang[langType].nameContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].name"></span>
+                    </template>
+                </van-field>
+
+                <!-- 省市 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].provinceCityContent }]"
+                    v-model="formData.provinceCity" required :placeholder="lang[langType].provinceCityContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].provinceCity"></span>
+                    </template>
+                </van-field>
+
+                <!-- 性别 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].genderContent }]"
+                    v-model="formData.gender" required :placeholder="lang[langType].genderContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].gender"></span>
+                    </template>
+                </van-field>
+
+                <!-- 生日 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].birthdayContent }]" clickable
+                    right-icon="calendar-o" readonly @click="showBirthday = true" v-model="formData.birthday" required
+                    :placeholder="lang[langType].birthdayContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? '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-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" @confirm="packerConfirm"
+                        :title="lang[langType].birthday" @cancel="showBirthday = false" :min-date="new Date(1970, 0, 1)"
+                        :max-date="new Date()" />
+                </van-popup>
+
+                <!-- 照片 -->
+                <van-field size=“large” input-align="right" :placeholder="lang[langType].photoContent" required
+                    :rules="[{ required: true, trigger: 'onChange', message: lang[langType].photoContent }]"
+                    v-model="formData.photoUrl">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].photo"></span>
+                    </template>
+                    <template #input>
+                        <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 class="upFileSubtitle" v-text="lang[langType].photoSubContent"> </p>
+                    </template>
+                </van-field>
+
+                <!-- 手机号 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].contactContent }]"
+                    v-model="formData.contact" type="number" required :placeholder="lang[langType].contactContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].contact"></span>
+                    </template>
+                </van-field>
+
+                <!-- 邮箱 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emailContent }]" required
+                    v-model="formData.email" :placeholder="lang[langType].emailContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].email"></span>
+                    </template>
+                </van-field>
+
+                <!-- 紧急联系人 -->
+                <van-field size=“large” input-align="right" v-model="formData.emergencyContact"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactContent }]"
+                    required :placeholder="lang[langType].emergencyContactContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].emergencyContact"></span>
+                    </template>
+                </van-field>
+
+                <!-- 紧急联系人电话 -->
+                <van-field size=“large” input-align="right" v-model="formData.emergencyContactPhone" required
+                    type="number"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactPhoneContent }]"
+                    :placeholder="lang[langType].emergencyContactPhoneContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''"
+                            v-html="lang[langType].emergencyContactPhone"></span>
+                    </template>
+                </van-field>
+
+                <!-- 证件类型 -->
+                <van-field size=“large” label-align="top" v-model="formData.cardType" clickable
+                    :rules="[{ required: true, trigger: 'onChange', message: lang[langType].conferenceTypeContent }]"
+                    :placeholder="lang[langType].conferenceTypeContent" required>
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].conferenceType"></span>
+                    </template>
+                    <template #input>
+                        <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.cardType"
+                            direction="horizontal">
+                            <van-radio v-for="item in cardTypeList" :key="item.value"
+                                style="width: 50%;margin: 10px 0 0 0;" :name="item.value">{{ item.text }}</van-radio>
+                        </van-radio-group>
+                    </template>
+                </van-field>
+
+                <!-- 证件 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].passportContent }]"
+                    v-model="formData.passport" required :placeholder="lang[langType].passportContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].passport"></span>
+                    </template>
+                </van-field>
+
+                <!-- 饮食要求 -->
+                <van-field size=“large” input-align="right" v-model="formData.catering" rows="1" autosize
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].cateringContent }]"
+                    type="textarea" required :placeholder="lang[langType].cateringContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].catering"></span>
+                    </template>
+                </van-field>
+
+                <div style="background-color: #F7F7F7;height: 10px;"></div>
+
+                <!-- 工作单位 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].workUnit }]" required
+                    v-model="formData.workUnit" :placeholder="lang[langType].companyContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].company"></span>
+                    </template>
+                </van-field>
+
+                <!-- 单位类型 -->
+                <van-field size=“large” input-align="right" v-model="formData.unitTypeName" clickable
+                    :rules="[{ required: true, trigger: 'onChange', message: lang[langType].unitTypeContent }]"
+                    right-icon="calendar-o" readonly :placeholder="lang[langType].unitTypeContent"
+                    @click="showUnitType = true" required>
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].unitType"></span>
+                    </template>
+                </van-field>
+                <van-popup v-model:show="showUnitType" destroy-on-close round position="bottom">
+                    <van-picker :confirm-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" :columns="unitTypeList"
+                        @cancel="showUnitType = false" @confirm="onUnitTypeConfirm" />
+                </van-popup>
+
+                <!-- 职务 -->
+                <van-field size=“large” input-align="right" v-model="formData.career"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].careerContent }]" required
+                    :placeholder="lang[langType].careerContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].career"></span>
+                    </template>
+                </van-field>
+
+                <!-- 传真 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].faxContent }]"
+                    v-model="formData.fax" required :placeholder="lang[langType].faxContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].fax"></span>
+                    </template>
+                </van-field>
+
+                <!-- 办公地址 -->
+                <van-field size=“large” input-align="right" v-model="formData.officeAddress" rows="1" autosize required
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].officeAddressContent }]"
+                    type="textarea" :placeholder="lang[langType].officeAddressContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].officeAddress"></span>
+                    </template>
+                </van-field>
+
+                <div style="background-color: #F7F7F7;height: 10px;"></div>
+                <!-- 接受采访意向  -->
+                <van-field size=“large” v-model="formData.interview" required label-align="top"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].interviewContent }]"
+                    :placeholder="lang[langType].interviewContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].interview"></span>
+                    </template>
+                    <template #input>
+                        <van-radio-group checked-color="#3F5AC8" style="justify-content: flex-end;width: 100%;"
+                            v-model="formData.interview" direction="horizontal">
+                            <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm
+                                }}</van-radio>
+                            <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel
+                                }}</van-radio>
+                        </van-radio-group>
+                    </template>
+                </van-field>
+                <div style="background-color: #F7F7F7;height: 10px;"></div>
+
+                <!-- 共享数字经济发展机遇  -->
+                <van-field size=“large” label-align="top" v-model="formData.active1" required
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active1Content }]"
+                    :placeholder="lang[langType].active1Content">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active1"></span>
+                    </template>
+                    <template #input>
+                        <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active1"
+                            direction="horizontal">
+                            <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm
+                                }}</van-radio>
+                            <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel
+                                }}</van-radio>
+                        </van-radio-group>
+                    </template>
+                </van-field>
+
+                <!-- 共筑网络安全防线  -->
+                <van-field size=“large” label-align="top" v-model="formData.active2" required
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active2Content }]"
+                    :placeholder="lang[langType].active2Content">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active2"></span>
+                    </template>
+                    <template #input>
+                        <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active2"
+                            direction="horizontal">
+                            <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm
+                                }}</van-radio>
+                            <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel
+                                }}</van-radio>
+                        </van-radio-group>
+                    </template>
+                </van-field>
+
+                <!-- 共商人工智能发展治理  -->
+                <van-field size=“large” label-align="top" v-model="formData.active3" required
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active3Content }]"
+                    :placeholder="lang[langType].active3Content">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active3"></span>
+                    </template>
+                    <template #input>
+                        <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active3"
+                            direction="horizontal">
+                            <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm
+                                }}</van-radio>
+                            <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel
+                                }}</van-radio>
+                        </van-radio-group>
+                    </template>
+                </van-field>
+
+                <!-- 拟参加的活动  -->
+                <van-field size=“large” label-align="top" :placeholder="lang[langType].activitiesAttendedContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''"
+                            v-html="lang[langType].activitiesAttended"></span>
+                    </template>
+                    <template #input>
+                        <van-checkbox-group checked-color="#3F5AC8" v-model="activitiesAttended">
+                            <van-cell clickable :title="lang[langType].active4" @click="checkboxRefs[0].toggle()">
+                                <template #icon>
+                                    <van-checkbox :ref="el => checkboxRefs[0] = el" style="margin-right: 5px;"
+                                        name="active4" @click.stop shape="square" />
+                                </template>
+                            </van-cell>
+                            <van-cell clickable :title="lang[langType].active5" @click="checkboxRefs[1].toggle()">
+                                <template #icon>
+                                    <van-checkbox :ref="el => checkboxRefs[1] = el" style="margin-right: 5px;"
+                                        name="active5" @click.stop shape="square" />
+                                </template>
+                            </van-cell>
+                            <van-cell clickable :title="lang[langType].active6" @click="checkboxRefs[2].toggle()">
+                                <template #icon>
+                                    <van-checkbox :ref="el => checkboxRefs[2] = el" style="margin-right: 5px;"
+                                        name="active6" @click.stop shape="square" />
+                                </template>
+                            </van-cell>
+                        </van-checkbox-group>
+                    </template>
+                </van-field>
+
+
+                <div style="background-color: #F7F7F7;height: 10px;"></div>
+
+                <!--  抵达西安交通车次 -->
+                <van-field size=“large” input-align="right" v-model="formData.reachTrainNumber"
+                    :placeholder="lang[langType].reachTrainNumberContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].reachTrainNumber"></span>
+                    </template>
+                </van-field>
+
+                <!--  抵达西安时间 -->
+                <van-field size=“large” input-align="right" v-model="formData.reachTime" clickable
+                    right-icon="calendar-o" readonly @click="showReachTime = true"
+                    :placeholder="lang[langType].reachTimeContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].reachTime"></span>
+                    </template>
+                </van-field>
+                <van-popup v-model:show="showReachTime" destroy-on-close round position="bottom">
+                    <van-picker :confirm-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" :title="lang[langType].reachTime"
+                        :columns="dateTimeColumns" @confirm="reachTimeConfirm" @cancel="showReachTime = false" />
+                </van-popup>
+
+                <!--  离开车次 -->
+                <van-field size=“large” input-align="right" v-model="formData.leavingTrainNumber"
+                    :placeholder="lang[langType].leavingTrainNumberContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''"
+                            v-html="lang[langType].leavingTrainNumber"></span>
+                    </template>
+                </van-field>
+
+                <!--  离开时间 -->
+                <van-field size=“large” input-align="right" v-model="formData.leavingTime" clickable
+                    right-icon="calendar-o" readonly @click="showLeavingTime = true"
+                    :placeholder="lang[langType].leavingTimeContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].leavingTime"></span>
+                    </template>
+                </van-field>
+                <van-popup v-model:show="showLeavingTime" destroy-on-close round position="bottom">
+                    <van-picker :confirm-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" :title="lang[langType].leavingTime"
+                        :columns="dateTimeColumns" @confirm="leavingTimeConfirm" @cancel="showLeavingTime = false" />
+                </van-popup>
+
+                <!--  离店时间 -->
+                <van-field size=“large” input-align="right" v-model="formData.checkOutTime" clickable
+                    right-icon="calendar-o" readonly @click="showCheckOutTime = true"
+                    :placeholder="lang[langType].checkOutTimeContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].checkOutTime"></span>
+                    </template>
+                </van-field>
+                <van-popup v-model:show="showCheckOutTime" destroy-on-close round position="bottom">
+                    <van-picker :confirm-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" :title="lang[langType].checkOutTime"
+                        :columns="dateTimeColumns" @confirm="checkOutTimeConfirm" @cancel="showCheckOutTime = false" />
+                </van-popup>
+
+                <van-field size=“large” input-align="right" v-model="formData.message" rows="3" autosize type="textarea"
+                    :placeholder="lang[langType].ortherNotesContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].ortherNotes"></span>
+                    </template>
+                </van-field>
+                <br />
+                <van-button
+                    style="background: linear-gradient(270deg, #1D19BC 0%, #1C4CD5 100%);margin: 0 auto;width: calc(100% - 40px);"
+                    block type="primary" native-type="submit">
+                    {{ lang[langType].submit }}
+                </van-button>
+            </van-form>
+        </div>
     </div>
+
 </template>
 <script setup>
 import { defineProps, defineEmits, defineExpose, reactive, ref, computed } from 'vue';
@@ -384,7 +401,7 @@ const photo = ref([]);
 const checkboxRefs = ref([]);
 
 const reset = () => {
-    form.value.resetFields();
+    form.value.resetValidation();
 }
 
 const onClickLeft = () => {

+ 376 - 365
src/view/fenghui/form1Recurrence.vue

@@ -1,369 +1,380 @@
 <!-- 中国嘉宾 -->
 <template>
-    <van-nav-bar fixed :border="false">
-        <template #left>
-            <van-icon name="arrow-left" color="#3D3D3D" @click="onClickLeft" />
-        </template>
-        <template #title>
-            <p style="padding-left: 3em;font-size: 1.2rem;" v-text="lang[langType].signUpZH"></p>
-        </template>
-    </van-nav-bar>
-    <div class="form">
-        <van-form ref="form" @submit="onSubmit" label-width="8em">
-            <!-- 姓名 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: formData, trigger: 'onBlur', message: lang[langType].nameContent }]" required
-                v-model="formData.name" :placeholder="lang[langType].nameContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].name"></span>
-                </template>
-            </van-field>
-
-            <!-- 省市 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].provinceCityContent }]"
-                v-model="formData.provinceCity" required :placeholder="lang[langType].provinceCityContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].provinceCity"></span>
-                </template>
-            </van-field>
-
-            <!-- 性别 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].genderContent }]"
-                v-model="formData.gender" required :placeholder="lang[langType].genderContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].gender"></span>
-                </template>
-            </van-field>
-
-            <!-- 生日 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].birthdayContent }]" clickable
-                right-icon="calendar-o" readonly @click="showBirthday = true" v-model="formData.birthday" required
-                :placeholder="lang[langType].birthdayContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? '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-button-text="lang[langType].confirm"
-                    :cancel-button-text="lang[langType].cancel" @confirm="packerConfirm"
-                    :title="lang[langType].birthday" @cancel="showBirthday = false" :min-date="new Date(1970, 0, 1)"
-                    :max-date="new Date()" />
-            </van-popup>
-
-            <!-- 照片 -->
-            <van-field size=“large” input-align="right" :placeholder="lang[langType].photoContent" required
-                :rules="[{ required: true, trigger: 'onChange', message: lang[langType].photoContent }]"
-                v-model="formData.photoUrl">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].photo"></span>
-                </template>
-                <template #input>
-                    <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 class="upFileSubtitle" v-text="lang[langType].photoSubContent"> </p>
-                </template>
-            </van-field>
-
-            <!-- 手机号 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].contactContent }]"
-                v-model="formData.contact" type="number" required :placeholder="lang[langType].contactContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].contact"></span>
-                </template>
-            </van-field>
-
-            <!-- 邮箱 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emailContent }]" required
-                v-model="formData.email" :placeholder="lang[langType].emailContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].email"></span>
-                </template>
-            </van-field>
-
-            <!-- 紧急联系人 -->
-            <van-field size=“large” input-align="right" v-model="formData.emergencyContact"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactContent }]"
-                required :placeholder="lang[langType].emergencyContactContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].emergencyContact"></span>
-                </template>
-            </van-field>
-
-            <!-- 紧急联系人电话 -->
-            <van-field size=“large” input-align="right" v-model="formData.emergencyContactPhone" required type="number"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactPhoneContent }]"
-                :placeholder="lang[langType].emergencyContactPhoneContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''"
-                        v-html="lang[langType].emergencyContactPhone"></span>
-                </template>
-            </van-field>
-
-            <!-- 证件类型 -->
-            <van-field size=“large” label-align="top" v-model="formData.cardType" clickable
-                :rules="[{ required: true, trigger: 'onChange', message: lang[langType].conferenceTypeContent }]"
-                :placeholder="lang[langType].conferenceTypeContent" required>
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].conferenceType"></span>
-                </template>
-                <template #input>
-                    <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.cardType"
-                        direction="horizontal">
-                        <van-radio v-for="item in cardTypeList" :key="item.value" style="width: 50%;margin: 10px 0 0 0;"
-                            :name="item.value">{{ item.text
-                            }}</van-radio>
-                    </van-radio-group>
-                </template>
-            </van-field>
-
-            <!-- 证件 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].passportContent }]"
-                v-model="formData.passport" required :placeholder="lang[langType].passportContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].passport"></span>
-                </template>
-            </van-field>
-
-            <!-- 饮食要求 -->
-            <van-field size=“large” input-align="right" v-model="formData.catering" rows="1" autosize
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].cateringContent }]"
-                type="textarea" required :placeholder="lang[langType].cateringContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].catering"></span>
-                </template>
-            </van-field>
-
-            <div style="background-color: #F7F7F7;height: 10px;"></div>
-
-            <!-- 工作单位 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].workUnit }]" required
-                v-model="formData.workUnit" :placeholder="lang[langType].companyContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].company"></span>
-                </template>
-            </van-field>
-
-            <!-- 单位类型 -->
-            <van-field size=“large” input-align="right" v-model="formData.unitTypeName" clickable
-                :rules="[{ required: true, trigger: 'onChange', message: lang[langType].unitTypeContent }]"
-                right-icon="calendar-o" readonly :placeholder="lang[langType].unitTypeContent"
-                @click="showUnitType = true" required>
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].unitType"></span>
-                </template>
-            </van-field>
-            <van-popup v-model:show="showUnitType" destroy-on-close round position="bottom">
-                <van-picker :confirm-button-text="lang[langType].confirm" :cancel-button-text="lang[langType].cancel"
-                    :columns="unitTypeList" @cancel="showUnitType = false" @confirm="onUnitTypeConfirm" />
-            </van-popup>
-
-            <!-- 职务 -->
-            <van-field size=“large” input-align="right" v-model="formData.career"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].careerContent }]" required
-                :placeholder="lang[langType].careerContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].career"></span>
-                </template>
-            </van-field>
-
-            <!-- 传真 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].faxContent }]"
-                v-model="formData.fax" required :placeholder="lang[langType].faxContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].fax"></span>
-                </template>
-            </van-field>
-
-            <!-- 办公地址 -->
-            <van-field size=“large” input-align="right" v-model="formData.officeAddress" rows="1" autosize required
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].officeAddressContent }]"
-                type="textarea" :placeholder="lang[langType].officeAddressContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].officeAddress"></span>
-                </template>
-            </van-field>
-
-            <div style="background-color: #F7F7F7;height: 10px;"></div>
-            <!-- 接受采访意向  -->
-            <van-field size=“large” v-model="formData.interview" required label-align="top"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].interviewContent }]"
-                :placeholder="lang[langType].interviewContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].interview"></span>
-                </template>
-                <template #input>
-                    <van-radio-group checked-color="#3F5AC8" style="justify-content: flex-end;width: 100%;"
-                        v-model="formData.interview" direction="horizontal">
-                        <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm
-                            }}</van-radio>
-                        <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel
-                            }}</van-radio>
-                    </van-radio-group>
-                </template>
-            </van-field>
-            <div style="background-color: #F7F7F7;height: 10px;"></div>
-
-            <!-- 共享数字经济发展机遇  -->
-            <van-field size=“large” label-align="top" v-model="formData.active1" required
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active1Content }]"
-                :placeholder="lang[langType].active1Content">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active1"></span>
-                </template>
-                <template #input>
-                    <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active1"
-                        direction="horizontal">
-                        <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm
-                            }}</van-radio>
-                        <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel
-                            }}</van-radio>
-                    </van-radio-group>
-                </template>
-            </van-field>
-
-            <!-- 共筑网络安全防线  -->
-            <van-field size=“large” label-align="top" v-model="formData.active2" required
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active2Content }]"
-                :placeholder="lang[langType].active2Content">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active2"></span>
-                </template>
-                <template #input>
-                    <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active2"
-                        direction="horizontal">
-                        <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm
-                            }}</van-radio>
-                        <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel
-                            }}</van-radio>
-                    </van-radio-group>
-                </template>
-            </van-field>
-
-            <!-- 共商人工智能发展治理  -->
-            <van-field size=“large” label-align="top" v-model="formData.active3" required
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active3Content }]"
-                :placeholder="lang[langType].active3Content">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active3"></span>
-                </template>
-                <template #input>
-                    <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active3"
-                        direction="horizontal">
-                        <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm
-                            }}</van-radio>
-                        <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel
-                            }}</van-radio>
-                    </van-radio-group>
-                </template>
-            </van-field>
-
-            <!-- 拟参加的活动  -->
-            <van-field size=“large” label-align="top" :placeholder="lang[langType].activitiesAttendedContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].activitiesAttended"></span>
-                </template>
-                <template #input>
-                    <van-checkbox-group checked-color="#3F5AC8" v-model="activitiesAttended">
-                        <van-cell clickable :title="lang[langType].active4" @click="checkboxRefs[0].toggle()">
-                            <template #icon>
-                                <van-checkbox :ref="el => checkboxRefs[0] = el" style="margin-right: 5px;" name="active4" @click.stop shape="square" />
-                            </template>
-                        </van-cell>
-                        <van-cell clickable :title="lang[langType].active5" @click="checkboxRefs[1].toggle()">
-                            <template #icon>
-                                <van-checkbox :ref="el => checkboxRefs[1] = el" style="margin-right: 5px;" name="active5" @click.stop shape="square" />
-                            </template>
-                        </van-cell>
-                        <van-cell clickable :title="lang[langType].active6" @click="checkboxRefs[2].toggle()">
-                            <template #icon>
-                                <van-checkbox :ref="el => checkboxRefs[2] = el" style="margin-right: 5px;" name="active6" @click.stop shape="square" />
-                            </template>
-                        </van-cell>
-                    </van-checkbox-group>
-                </template>
-            </van-field>
-
-            <div style="background-color: #F7F7F7;height: 10px;"></div>
-
-            <!--  抵达西安交通车次 -->
-            <van-field size=“large” input-align="right" v-model="formData.reachTrainNumber"
-                :placeholder="lang[langType].reachTrainNumberContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].reachTrainNumber"></span>
-                </template>
-            </van-field>
-
-            <!--  抵达西安时间 -->
-            <van-field size=“large” input-align="right" v-model="formData.reachTime" clickable right-icon="calendar-o"
-                readonly @click="showReachTime = true" :placeholder="lang[langType].reachTimeContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].reachTime"></span>
-                </template>
-            </van-field>
-            <van-popup v-model:show="showReachTime" destroy-on-close round position="bottom">
-                <van-picker :confirm-button-text="lang[langType].confirm" :cancel-button-text="lang[langType].cancel"
-                    :title="lang[langType].reachTime" :columns="dateTimeColumns" @confirm="reachTimeConfirm"
-                    @cancel="showReachTime = false" />
-            </van-popup>
-
-            <!--  离开车次 -->
-            <van-field size=“large” input-align="right" v-model="formData.leavingTrainNumber"
-                :placeholder="lang[langType].leavingTrainNumberContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].leavingTrainNumber"></span>
-                </template>
-            </van-field>
-
-            <!--  离开时间 -->
-            <van-field size=“large” input-align="right" v-model="formData.leavingTime" clickable right-icon="calendar-o"
-                readonly @click="showLeavingTime = true" :placeholder="lang[langType].leavingTimeContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].leavingTime"></span>
-                </template>
-            </van-field>
-            <van-popup v-model:show="showLeavingTime" destroy-on-close round position="bottom">
-                <van-picker :confirm-button-text="lang[langType].confirm" :cancel-button-text="lang[langType].cancel"
-                    :title="lang[langType].leavingTime" :columns="dateTimeColumns" @confirm="leavingTimeConfirm"
-                    @cancel="showLeavingTime = false" />
-            </van-popup>
-
-            <!--  离店时间 -->
-            <van-field size=“large” input-align="right" v-model="formData.checkOutTime" clickable
-                right-icon="calendar-o" readonly @click="showCheckOutTime = true"
-                :placeholder="lang[langType].checkOutTimeContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].checkOutTime"></span>
-                </template>
-            </van-field>
-            <van-popup v-model:show="showCheckOutTime" destroy-on-close round position="bottom">
-                <van-picker :confirm-button-text="lang[langType].confirm" :cancel-button-text="lang[langType].cancel"
-                    :title="lang[langType].checkOutTime" :columns="dateTimeColumns" @confirm="checkOutTimeConfirm"
-                    @cancel="showCheckOutTime = false" />
-            </van-popup>
-
-            <van-field size=“large” input-align="right" v-model="formData.message" rows="3" autosize type="textarea"
-                :placeholder="lang[langType].ortherNotesContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].ortherNotes"></span>
-                </template>
-            </van-field>
-            <br />
-            <van-button
-                style="background: linear-gradient(270deg, #1D19BC 0%, #1C4CD5 100%);margin: 0 auto;width: calc(100% - 40px);"
-                block type="primary" native-type="submit">
-                {{ lang[langType].submit }}
-            </van-button>
-        </van-form>
+    <div>
+        <van-nav-bar fixed :border="false">
+            <template #left>
+                <van-icon name="arrow-left" color="#3D3D3D" @click="onClickLeft" />
+            </template>
+            <template #title>
+                <p style="padding-left: 3em;font-size: 1.2rem;" v-text="lang[langType].signUpZH"></p>
+            </template>
+        </van-nav-bar>
+        <div class="form">
+            <van-form ref="form" @submit="onSubmit" label-width="8em">
+                <!-- 姓名 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: formData, trigger: 'onBlur', message: lang[langType].nameContent }]" required
+                    v-model="formData.name" :placeholder="lang[langType].nameContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].name"></span>
+                    </template>
+                </van-field>
+
+                <!-- 省市 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].provinceCityContent }]"
+                    v-model="formData.provinceCity" required :placeholder="lang[langType].provinceCityContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].provinceCity"></span>
+                    </template>
+                </van-field>
+
+                <!-- 性别 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].genderContent }]"
+                    v-model="formData.gender" required :placeholder="lang[langType].genderContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].gender"></span>
+                    </template>
+                </van-field>
+
+                <!-- 生日 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].birthdayContent }]" clickable
+                    right-icon="calendar-o" readonly @click="showBirthday = true" v-model="formData.birthday" required
+                    :placeholder="lang[langType].birthdayContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? '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-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" @confirm="packerConfirm"
+                        :title="lang[langType].birthday" @cancel="showBirthday = false" :min-date="new Date(1970, 0, 1)"
+                        :max-date="new Date()" />
+                </van-popup>
+
+                <!-- 照片 -->
+                <van-field size=“large” input-align="right" :placeholder="lang[langType].photoContent" required
+                    :rules="[{ required: true, trigger: 'onChange', message: lang[langType].photoContent }]"
+                    v-model="formData.photoUrl">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].photo"></span>
+                    </template>
+                    <template #input>
+                        <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 class="upFileSubtitle" v-text="lang[langType].photoSubContent"> </p>
+                    </template>
+                </van-field>
+
+                <!-- 手机号 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].contactContent }]"
+                    v-model="formData.contact" type="number" required :placeholder="lang[langType].contactContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].contact"></span>
+                    </template>
+                </van-field>
+
+                <!-- 邮箱 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emailContent }]" required
+                    v-model="formData.email" :placeholder="lang[langType].emailContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].email"></span>
+                    </template>
+                </van-field>
+
+                <!-- 紧急联系人 -->
+                <van-field size=“large” input-align="right" v-model="formData.emergencyContact"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactContent }]"
+                    required :placeholder="lang[langType].emergencyContactContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].emergencyContact"></span>
+                    </template>
+                </van-field>
+
+                <!-- 紧急联系人电话 -->
+                <van-field size=“large” input-align="right" v-model="formData.emergencyContactPhone" required
+                    type="number"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactPhoneContent }]"
+                    :placeholder="lang[langType].emergencyContactPhoneContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''"
+                            v-html="lang[langType].emergencyContactPhone"></span>
+                    </template>
+                </van-field>
+
+                <!-- 证件类型 -->
+                <van-field size=“large” label-align="top" v-model="formData.cardType" clickable
+                    :rules="[{ required: true, trigger: 'onChange', message: lang[langType].conferenceTypeContent }]"
+                    :placeholder="lang[langType].conferenceTypeContent" required>
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].conferenceType"></span>
+                    </template>
+                    <template #input>
+                        <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.cardType"
+                            direction="horizontal">
+                            <van-radio v-for="item in cardTypeList" :key="item.value"
+                                style="width: 50%;margin: 10px 0 0 0;" :name="item.value">{{ item.text
+                                }}</van-radio>
+                        </van-radio-group>
+                    </template>
+                </van-field>
+
+                <!-- 证件 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].passportContent }]"
+                    v-model="formData.passport" required :placeholder="lang[langType].passportContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].passport"></span>
+                    </template>
+                </van-field>
+
+                <!-- 饮食要求 -->
+                <van-field size=“large” input-align="right" v-model="formData.catering" rows="1" autosize
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].cateringContent }]"
+                    type="textarea" required :placeholder="lang[langType].cateringContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].catering"></span>
+                    </template>
+                </van-field>
+
+                <div style="background-color: #F7F7F7;height: 10px;"></div>
+
+                <!-- 工作单位 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].workUnit }]" required
+                    v-model="formData.workUnit" :placeholder="lang[langType].companyContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].company"></span>
+                    </template>
+                </van-field>
+
+                <!-- 单位类型 -->
+                <van-field size=“large” input-align="right" v-model="formData.unitTypeName" clickable
+                    :rules="[{ required: true, trigger: 'onChange', message: lang[langType].unitTypeContent }]"
+                    right-icon="calendar-o" readonly :placeholder="lang[langType].unitTypeContent"
+                    @click="showUnitType = true" required>
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].unitType"></span>
+                    </template>
+                </van-field>
+                <van-popup v-model:show="showUnitType" destroy-on-close round position="bottom">
+                    <van-picker :confirm-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" :columns="unitTypeList"
+                        @cancel="showUnitType = false" @confirm="onUnitTypeConfirm" />
+                </van-popup>
+
+                <!-- 职务 -->
+                <van-field size=“large” input-align="right" v-model="formData.career"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].careerContent }]" required
+                    :placeholder="lang[langType].careerContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].career"></span>
+                    </template>
+                </van-field>
+
+                <!-- 传真 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].faxContent }]"
+                    v-model="formData.fax" required :placeholder="lang[langType].faxContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].fax"></span>
+                    </template>
+                </van-field>
+
+                <!-- 办公地址 -->
+                <van-field size=“large” input-align="right" v-model="formData.officeAddress" rows="1" autosize required
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].officeAddressContent }]"
+                    type="textarea" :placeholder="lang[langType].officeAddressContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].officeAddress"></span>
+                    </template>
+                </van-field>
+
+                <div style="background-color: #F7F7F7;height: 10px;"></div>
+                <!-- 接受采访意向  -->
+                <van-field size=“large” v-model="formData.interview" required label-align="top"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].interviewContent }]"
+                    :placeholder="lang[langType].interviewContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].interview"></span>
+                    </template>
+                    <template #input>
+                        <van-radio-group checked-color="#3F5AC8" style="justify-content: flex-end;width: 100%;"
+                            v-model="formData.interview" direction="horizontal">
+                            <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm
+                                }}</van-radio>
+                            <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel
+                                }}</van-radio>
+                        </van-radio-group>
+                    </template>
+                </van-field>
+                <div style="background-color: #F7F7F7;height: 10px;"></div>
+
+                <!-- 共享数字经济发展机遇  -->
+                <van-field size=“large” label-align="top" v-model="formData.active1" required
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active1Content }]"
+                    :placeholder="lang[langType].active1Content">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active1"></span>
+                    </template>
+                    <template #input>
+                        <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active1"
+                            direction="horizontal">
+                            <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm
+                                }}</van-radio>
+                            <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel
+                                }}</van-radio>
+                        </van-radio-group>
+                    </template>
+                </van-field>
+
+                <!-- 共筑网络安全防线  -->
+                <van-field size=“large” label-align="top" v-model="formData.active2" required
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active2Content }]"
+                    :placeholder="lang[langType].active2Content">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active2"></span>
+                    </template>
+                    <template #input>
+                        <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active2"
+                            direction="horizontal">
+                            <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm
+                                }}</van-radio>
+                            <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel
+                                }}</van-radio>
+                        </van-radio-group>
+                    </template>
+                </van-field>
+
+                <!-- 共商人工智能发展治理  -->
+                <van-field size=“large” label-align="top" v-model="formData.active3" required
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active3Content }]"
+                    :placeholder="lang[langType].active3Content">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active3"></span>
+                    </template>
+                    <template #input>
+                        <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active3"
+                            direction="horizontal">
+                            <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm
+                                }}</van-radio>
+                            <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel
+                                }}</van-radio>
+                        </van-radio-group>
+                    </template>
+                </van-field>
+
+                <!-- 拟参加的活动  -->
+                <van-field size=“large” label-align="top" :placeholder="lang[langType].activitiesAttendedContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''"
+                            v-html="lang[langType].activitiesAttended"></span>
+                    </template>
+                    <template #input>
+                        <van-checkbox-group checked-color="#3F5AC8" v-model="activitiesAttended">
+                            <van-cell clickable :title="lang[langType].active4" @click="checkboxRefs[0].toggle()">
+                                <template #icon>
+                                    <van-checkbox :ref="el => checkboxRefs[0] = el" style="margin-right: 5px;"
+                                        name="active4" @click.stop shape="square" />
+                                </template>
+                            </van-cell>
+                            <van-cell clickable :title="lang[langType].active5" @click="checkboxRefs[1].toggle()">
+                                <template #icon>
+                                    <van-checkbox :ref="el => checkboxRefs[1] = el" style="margin-right: 5px;"
+                                        name="active5" @click.stop shape="square" />
+                                </template>
+                            </van-cell>
+                            <van-cell clickable :title="lang[langType].active6" @click="checkboxRefs[2].toggle()">
+                                <template #icon>
+                                    <van-checkbox :ref="el => checkboxRefs[2] = el" style="margin-right: 5px;"
+                                        name="active6" @click.stop shape="square" />
+                                </template>
+                            </van-cell>
+                        </van-checkbox-group>
+                    </template>
+                </van-field>
+
+                <div style="background-color: #F7F7F7;height: 10px;"></div>
+
+                <!--  抵达西安交通车次 -->
+                <van-field size=“large” input-align="right" v-model="formData.reachTrainNumber"
+                    :placeholder="lang[langType].reachTrainNumberContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].reachTrainNumber"></span>
+                    </template>
+                </van-field>
+
+                <!--  抵达西安时间 -->
+                <van-field size=“large” input-align="right" v-model="formData.reachTime" clickable
+                    right-icon="calendar-o" readonly @click="showReachTime = true"
+                    :placeholder="lang[langType].reachTimeContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].reachTime"></span>
+                    </template>
+                </van-field>
+                <van-popup v-model:show="showReachTime" destroy-on-close round position="bottom">
+                    <van-picker :confirm-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" :title="lang[langType].reachTime"
+                        :columns="dateTimeColumns" @confirm="reachTimeConfirm" @cancel="showReachTime = false" />
+                </van-popup>
+
+                <!--  离开车次 -->
+                <van-field size=“large” input-align="right" v-model="formData.leavingTrainNumber"
+                    :placeholder="lang[langType].leavingTrainNumberContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''"
+                            v-html="lang[langType].leavingTrainNumber"></span>
+                    </template>
+                </van-field>
+
+                <!--  离开时间 -->
+                <van-field size=“large” input-align="right" v-model="formData.leavingTime" clickable
+                    right-icon="calendar-o" readonly @click="showLeavingTime = true"
+                    :placeholder="lang[langType].leavingTimeContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].leavingTime"></span>
+                    </template>
+                </van-field>
+                <van-popup v-model:show="showLeavingTime" destroy-on-close round position="bottom">
+                    <van-picker :confirm-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" :title="lang[langType].leavingTime"
+                        :columns="dateTimeColumns" @confirm="leavingTimeConfirm" @cancel="showLeavingTime = false" />
+                </van-popup>
+
+                <!--  离店时间 -->
+                <van-field size=“large” input-align="right" v-model="formData.checkOutTime" clickable
+                    right-icon="calendar-o" readonly @click="showCheckOutTime = true"
+                    :placeholder="lang[langType].checkOutTimeContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].checkOutTime"></span>
+                    </template>
+                </van-field>
+                <van-popup v-model:show="showCheckOutTime" destroy-on-close round position="bottom">
+                    <van-picker :confirm-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" :title="lang[langType].checkOutTime"
+                        :columns="dateTimeColumns" @confirm="checkOutTimeConfirm" @cancel="showCheckOutTime = false" />
+                </van-popup>
+
+                <van-field size=“large” input-align="right" v-model="formData.message" rows="3" autosize type="textarea"
+                    :placeholder="lang[langType].ortherNotesContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].ortherNotes"></span>
+                    </template>
+                </van-field>
+                <br />
+                <van-button
+                    style="background: linear-gradient(270deg, #1D19BC 0%, #1C4CD5 100%);margin: 0 auto;width: calc(100% - 40px);"
+                    block type="primary" native-type="submit">
+                    {{ lang[langType].submit }}
+                </van-button>
+            </van-form>
+        </div>
     </div>
 </template>
 <script setup>
@@ -448,7 +459,7 @@ const initFormData = () => {
 }
 initFormData()
 const reset = () => {
-    form.value.resetFields();
+    form.value.resetValidation();
 }
 
 const onClickLeft = () => {

+ 81 - 78
src/view/fenghui/form2.vue

@@ -1,87 +1,90 @@
 <!-- 工作人员 -->
 <template>
-    <van-nav-bar fixed :border="false">
-        <template #left>
-            <van-icon name="arrow-left" color="#3D3D3D" @click="onClickLeft" />
-        </template>
-        <template #title>
-            <p style="padding-left: 3em;font-size: 1.2rem;" v-text="lang[langType].signUpWK"></p>
-        </template>
-    </van-nav-bar>
-    <div class="form">
-        <van-form ref="form" @submit="onSubmit" label-width="8em">
-            <!-- 姓名 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].nameContent }]" required
-                v-model="formData.name" :placeholder="lang[langType].nameContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].name"></span>
-                </template>
-            </van-field>
+    <div>
+        <van-nav-bar fixed :border="false">
+            <template #left>
+                <van-icon name="arrow-left" color="#3D3D3D" @click="onClickLeft" />
+            </template>
+            <template #title>
+                <p style="padding-left: 3em;font-size: 1.2rem;" v-text="lang[langType].signUpWK"></p>
+            </template>
+        </van-nav-bar>
+        <div class="form">
+            <van-form ref="form" @submit="onSubmit" label-width="8em">
+                <!-- 姓名 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].nameContent }]" required
+                    v-model="formData.name" :placeholder="lang[langType].nameContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].name"></span>
+                    </template>
+                </van-field>
 
-            <!-- 手机号 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].contactContent }]"
-                v-model="formData.contact" type="number" required :placeholder="lang[langType].contactContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].contact"></span>
-                </template>
-            </van-field>
+                <!-- 手机号 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].contactContent }]"
+                    v-model="formData.contact" type="number" required :placeholder="lang[langType].contactContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].contact"></span>
+                    </template>
+                </van-field>
 
-            <!-- 照片 -->
-            <van-field size=“large” input-align="right" :placeholder="lang[langType].photoContent" required
-                :rules="[{ required: true, trigger: 'onChange', message: lang[langType].photoContent }]"
-                v-model="formData.photoUrl">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].photo"></span>
-                </template>
-                <template #input>
-                    <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 class="upFileSubtitle" v-text="lang[langType].photoSubContent"> </p>
-                </template>
-            </van-field>
+                <!-- 照片 -->
+                <van-field size=“large” input-align="right" :placeholder="lang[langType].photoContent" required
+                    :rules="[{ required: true, trigger: 'onChange', message: lang[langType].photoContent }]"
+                    v-model="formData.photoUrl">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].photo"></span>
+                    </template>
+                    <template #input>
+                        <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 class="upFileSubtitle" v-text="lang[langType].photoSubContent"> </p>
+                    </template>
+                </van-field>
 
-            <!-- 证件 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].IDcardNumberContent }]"
-                v-model="formData.passport" required :placeholder="lang[langType].IDcardNumberContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].IDcardNumber"></span>
-                </template>
-            </van-field>
+                <!-- 证件 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].IDcardNumberContent }]"
+                    v-model="formData.passport" required :placeholder="lang[langType].IDcardNumberContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].IDcardNumber"></span>
+                    </template>
+                </van-field>
 
-            <!-- 单位类型 -->
-            <van-field size=“large” input-align="right" v-model="formData.unitTypeName" clickable
-                :rules="[{ required: true, trigger: 'onChange', message: lang[langType].workGroupTextContent }]"
-                right-icon="calendar-o" readonly :placeholder="lang[langType].workGroupTextContent"
-                @click="showUnitType = true" required>
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].workGroupText"></span>
-                </template>
-            </van-field>
-            <van-popup v-model:show="showUnitType" destroy-on-close round position="bottom">
-                <van-picker :confirm-button-text="lang[langType].confirm" :cancel-button-text="lang[langType].cancel"
-                    :columns="unitTypeList" @cancel="showUnitType = false" @confirm="onUnitTypeConfirm" />
-            </van-popup>
+                <!-- 单位类型 -->
+                <van-field size=“large” input-align="right" v-model="formData.unitTypeName" clickable
+                    :rules="[{ required: true, trigger: 'onChange', message: lang[langType].workGroupTextContent }]"
+                    right-icon="calendar-o" readonly :placeholder="lang[langType].workGroupTextContent"
+                    @click="showUnitType = true" required>
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].workGroupText"></span>
+                    </template>
+                </van-field>
+                <van-popup v-model:show="showUnitType" destroy-on-close round position="bottom">
+                    <van-picker :confirm-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" :columns="unitTypeList"
+                        @cancel="showUnitType = false" @confirm="onUnitTypeConfirm" />
+                </van-popup>
 
-            <!-- 工作单位 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].companyB }]" required
-                v-model="formData.workUnit" :placeholder="lang[langType].companyBContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].companyB"></span>
-                </template>
-            </van-field>
-            <br />
-            <van-button
-                style="background: linear-gradient(270deg, #1D19BC 0%, #1C4CD5 100%);margin: 0 auto;width: calc(100% - 40px);"
-                block type="primary" native-type="submit">
-                {{ lang[langType].submit }}
-            </van-button>
-        </van-form>
+                <!-- 工作单位 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].companyB }]" required
+                    v-model="formData.workUnit" :placeholder="lang[langType].companyBContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].companyB"></span>
+                    </template>
+                </van-field>
+                <br />
+                <van-button
+                    style="background: linear-gradient(270deg, #1D19BC 0%, #1C4CD5 100%);margin: 0 auto;width: calc(100% - 40px);"
+                    block type="primary" native-type="submit">
+                    {{ lang[langType].submit }}
+                </van-button>
+            </van-form>
+        </div>
     </div>
 </template>
 <script setup>
@@ -100,7 +103,7 @@ const form = ref(null); // 引入子组件的实例,用于调用子组件的
 const photo = ref([]);
 
 const reset = () => {
-    form.value.resetFields();
+    form.value.resetValidation();
 }
 
 const onClickLeft = () => {

+ 81 - 78
src/view/fenghui/form2Recurrence.vue

@@ -1,87 +1,90 @@
 <!-- 工作人员 -->
 <template>
-    <van-nav-bar fixed :border="false">
-        <template #left>
-            <van-icon name="arrow-left" color="#3D3D3D" @click="onClickLeft" />
-        </template>
-        <template #title>
-            <p style="padding-left: 3em;font-size: 1.2rem;" v-text="lang[langType].signUpWK"></p>
-        </template>
-    </van-nav-bar>
-    <div class="form">
-        <van-form ref="form" @submit="onSubmit" label-width="8em">
-            <!-- 姓名 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].nameContent }]" required
-                v-model="formData.name" :placeholder="lang[langType].nameContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].name"></span>
-                </template>
-            </van-field>
+    <div>
+        <van-nav-bar fixed :border="false">
+            <template #left>
+                <van-icon name="arrow-left" color="#3D3D3D" @click="onClickLeft" />
+            </template>
+            <template #title>
+                <p style="padding-left: 3em;font-size: 1.2rem;" v-text="lang[langType].signUpWK"></p>
+            </template>
+        </van-nav-bar>
+        <div class="form">
+            <van-form ref="form" @submit="onSubmit" label-width="8em">
+                <!-- 姓名 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].nameContent }]" required
+                    v-model="formData.name" :placeholder="lang[langType].nameContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].name"></span>
+                    </template>
+                </van-field>
 
-            <!-- 手机号 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].contactContent }]"
-                v-model="formData.contact" type="number" required :placeholder="lang[langType].contactContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].contact"></span>
-                </template>
-            </van-field>
+                <!-- 手机号 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].contactContent }]"
+                    v-model="formData.contact" type="number" required :placeholder="lang[langType].contactContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].contact"></span>
+                    </template>
+                </van-field>
 
-            <!-- 照片 -->
-            <van-field size=“large” input-align="right" :placeholder="lang[langType].photoContent" required
-                :rules="[{ required: true, trigger: 'onChange', message: lang[langType].photoContent }]"
-                v-model="formData.photoUrl">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].photo"></span>
-                </template>
-                <template #input>
-                    <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 class="upFileSubtitle" v-text="lang[langType].photoSubContent"> </p>
-                </template>
-            </van-field>
+                <!-- 照片 -->
+                <van-field size=“large” input-align="right" :placeholder="lang[langType].photoContent" required
+                    :rules="[{ required: true, trigger: 'onChange', message: lang[langType].photoContent }]"
+                    v-model="formData.photoUrl">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].photo"></span>
+                    </template>
+                    <template #input>
+                        <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 class="upFileSubtitle" v-text="lang[langType].photoSubContent"> </p>
+                    </template>
+                </van-field>
 
-            <!-- 证件 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].IDcardNumberContent }]"
-                v-model="formData.passport" required :placeholder="lang[langType].IDcardNumberContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].IDcardNumber"></span>
-                </template>
-            </van-field>
+                <!-- 证件 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].IDcardNumberContent }]"
+                    v-model="formData.passport" required :placeholder="lang[langType].IDcardNumberContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].IDcardNumber"></span>
+                    </template>
+                </van-field>
 
-            <!-- 单位类型 -->
-            <van-field size=“large” input-align="right" v-model="formData.unitTypeName" clickable
-                :rules="[{ required: true, trigger: 'onChange', message: lang[langType].workGroupTextContent }]"
-                right-icon="calendar-o" readonly :placeholder="lang[langType].workGroupTextContent"
-                @click="showUnitType = true" required>
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].workGroupText"></span>
-                </template>
-            </van-field>
-            <van-popup v-model:show="showUnitType" destroy-on-close round position="bottom">
-                <van-picker :confirm-button-text="lang[langType].confirm" :cancel-button-text="lang[langType].cancel"
-                    :columns="unitTypeList" @cancel="showUnitType = false" @confirm="onUnitTypeConfirm" />
-            </van-popup>
+                <!-- 单位类型 -->
+                <van-field size=“large” input-align="right" v-model="formData.unitTypeName" clickable
+                    :rules="[{ required: true, trigger: 'onChange', message: lang[langType].workGroupTextContent }]"
+                    right-icon="calendar-o" readonly :placeholder="lang[langType].workGroupTextContent"
+                    @click="showUnitType = true" required>
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].workGroupText"></span>
+                    </template>
+                </van-field>
+                <van-popup v-model:show="showUnitType" destroy-on-close round position="bottom">
+                    <van-picker :confirm-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" :columns="unitTypeList"
+                        @cancel="showUnitType = false" @confirm="onUnitTypeConfirm" />
+                </van-popup>
 
-            <!-- 工作单位 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].companyB }]" required
-                v-model="formData.workUnit" :placeholder="lang[langType].companyBContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].companyB"></span>
-                </template>
-            </van-field>
-            <br />
-            <van-button
-                style="background: linear-gradient(270deg, #1D19BC 0%, #1C4CD5 100%);margin: 0 auto;width: calc(100% - 40px);"
-                block type="primary" native-type="submit">
-                {{ lang[langType].submit }}
-            </van-button>
-        </van-form>
+                <!-- 工作单位 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].companyB }]" required
+                    v-model="formData.workUnit" :placeholder="lang[langType].companyBContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].companyB"></span>
+                    </template>
+                </van-field>
+                <br />
+                <van-button
+                    style="background: linear-gradient(270deg, #1D19BC 0%, #1C4CD5 100%);margin: 0 auto;width: calc(100% - 40px);"
+                    block type="primary" native-type="submit">
+                    {{ lang[langType].submit }}
+                </van-button>
+            </van-form>
+        </div>
     </div>
 </template>
 <script setup>
@@ -134,7 +137,7 @@ const initFormData = () => {
 initFormData()
 
 const reset = () => {
-    form.value.resetFields();
+    form.value.resetValidation();
 }
 
 const onClickLeft = () => {

+ 392 - 373
src/view/fenghui/formRecurrence.vue

@@ -1,378 +1,397 @@
 <!-- 外国嘉宾 -->
 <template>
-    <van-nav-bar fixed :border="false">
-        <template #left>
-            <van-icon name="arrow-left" color="#3D3D3D" @click="onClickLeft" />
-        </template>
-        <template #title>
-            <p style="padding-left: 3em;font-size: 1.2rem;" v-text="lang[langType].signUp"></p>
-        </template>
-    </van-nav-bar>
-    <div class="form">
-        <van-form ref="form" @submit="onSubmit" label-width="8em">
-            <!-- 国家/地区 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].countryRegionContent }]" required
-                v-model="formData.countryRegion" :placeholder="lang[langType].countryRegionContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].countryRegion"></span>
-                </template>
-            </van-field>
-
-            <!-- 姓 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].lastNameContent }]" required
-                v-model="formData.lastName" :placeholder="lang[langType].lastNameContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].lastName"></span>
-                </template>
-            </van-field>
-
-            <!-- 名 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].firstNameContent }]" required
-                v-model="formData.firstName" :placeholder="lang[langType].firstNameContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].firstName"></span>
-                </template>
-            </van-field>
-
-            <!-- 性别 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].genderContent }]"
-                v-model="formData.gender" required :placeholder="lang[langType].genderContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].gender"></span>
-                </template>
-            </van-field>
-
-            <!-- 生日 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].birthdayContent }]" clickable
-                right-icon="calendar-o" readonly @click="showBirthday = true" v-model="formData.birthday" required
-                :placeholder="lang[langType].birthdayContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? '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-button-text="lang[langType].confirm"
-                    :cancel-button-text="lang[langType].cancel" @confirm="packerConfirm"
-                    :title="lang[langType].birthday" @cancel="showBirthday = false" :min-date="new Date(1970, 0, 1)"
-                    :max-date="new Date()" />
-            </van-popup>
-
-            <!-- 照片 -->
-            <van-field size=“large” input-align="right" :placeholder="lang[langType].photoContent" required
-                :rules="[{ required: true, trigger: 'onChange', message: lang[langType].photoContent }]"
-                v-model="formData.photoUrl">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].photo"></span>
-                </template>
-                <template #input>
-                    <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 class="upFileSubtitle" v-text="lang[langType].photoSubContent"> </p>
-                </template>
-            </van-field>
-
-            <!-- 手机号 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].contactContent }]"
-                v-model="formData.contact" type="number" required :placeholder="lang[langType].contactContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].contact"></span>
-                </template>
-            </van-field>
-
-            <!-- 邮箱 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emailContent }]" required
-                v-model="formData.email" :placeholder="lang[langType].emailContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].email"></span>
-                </template>
-            </van-field>
-
-            <!-- 紧急联系人 -->
-            <van-field size=“large” input-align="right" v-model="formData.emergencyContact"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactContent }]"
-                required :placeholder="lang[langType].emergencyContactContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].emergencyContact"></span>
-                </template>
-            </van-field>
-
-            <!-- 紧急联系人电话 -->
-            <van-field size=“large” input-align="right" v-model="formData.emergencyContactPhone" required type="number"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactPhoneContent }]"
-                :placeholder="lang[langType].emergencyContactPhoneContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''"
-                        v-html="lang[langType].emergencyContactPhone"></span>
-                </template>
-            </van-field>
-
-            <!-- 证件类型 -->
-            <van-field size=“large” label-align="top" v-model="formData.cardType" clickable
-                :rules="[{ required: true, trigger: 'onChange', message: lang[langType].conferenceTypeContent }]"
-                :placeholder="lang[langType].conferenceTypeContent" required>
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].conferenceType"></span>
-                </template>
-                <template #input>
-                    <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.cardType"
-                        direction="horizontal">
-                        <van-radio v-for="item in cardTypeList" :key="item.value" style="width: 50%;margin: 10px 0 0 0;"
-                            :name="item.value">{{ item.text }}</van-radio>
-                    </van-radio-group>
-                </template>
-            </van-field>
-
-            <!-- 证件 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].passportContent }]"
-                v-model="formData.passport" required :placeholder="lang[langType].passportContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].passport"></span>
-                </template>
-            </van-field>
-
-            <!-- 宗教 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].beliefContent }]"
-                v-model="formData.belief" required :placeholder="lang[langType].beliefContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].belief"></span>
-                </template>
-            </van-field>
-
-            <!-- 饮食要求 -->
-            <van-field size=“large” input-align="right" v-model="formData.catering" rows="1" autosize
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].cateringContent }]"
-                type="textarea" required :placeholder="lang[langType].cateringContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].catering"></span>
-                </template>
-            </van-field>
-
-            <div style="background-color: #F7F7F7;height: 10px;"></div>
-
-            <!-- 工作单位 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].workUnit }]" required
-                v-model="formData.workUnit" :placeholder="lang[langType].companyContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].company"></span>
-                </template>
-            </van-field>
-
-            <!-- 单位类型 -->
-            <van-field size=“large” input-align="right" v-model="formData.unitTypeName" clickable
-                :rules="[{ required: true, trigger: 'onChange', message: lang[langType].unitTypeContent }]"
-                right-icon="calendar-o" readonly :placeholder="lang[langType].unitTypeContent"
-                @click="showUnitType = true" required>
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].unitType"></span>
-                </template>
-            </van-field>
-            <van-popup v-model:show="showUnitType" destroy-on-close round position="bottom">
-                <van-picker :confirm-button-text="lang[langType].confirm" :cancel-button-text="lang[langType].cancel"
-                    :columns="unitTypeList" @cancel="showUnitType = false" @confirm="onUnitTypeConfirm" />
-            </van-popup>
-
-            <!-- 职务 -->
-            <van-field size=“large” input-align="right" v-model="formData.career"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].careerContent }]" required
-                :placeholder="lang[langType].careerContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].career"></span>
-                </template>
-            </van-field>
-
-            <!-- 传真 -->
-            <van-field size=“large” input-align="right"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].faxContent }]"
-                v-model="formData.fax" required :placeholder="lang[langType].faxContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].fax"></span>
-                </template>
-            </van-field>
-
-            <!-- 办公地址 -->
-            <van-field size=“large” input-align="right" v-model="formData.officeAddress" rows="1" autosize required
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].officeAddressContent }]"
-                type="textarea" :placeholder="lang[langType].officeAddressContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].officeAddress"></span>
-                </template>
-            </van-field>
-
-            <div style="background-color: #F7F7F7;height: 10px;"></div>
-            <!-- 接受采访意向  -->
-            <van-field size=“large” v-model="formData.interview" required label-align="top"
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].interviewContent }]"
-                :placeholder="lang[langType].interviewContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].interview"></span>
-                </template>
-                <template #input>
-                    <van-radio-group checked-color="#3F5AC8" style="justify-content: flex-end;width: 100%;"
-                        v-model="formData.interview" direction="horizontal">
-                        <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm }}</van-radio>
-                        <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel }}</van-radio>
-                    </van-radio-group>
-                </template>
-            </van-field>
-
-            <div style="background-color: #F7F7F7;height: 10px;"></div>
-            <!-- 共享数字经济发展机遇  -->
-            <van-field size=“large” label-align="top" v-model="formData.active1" required
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active1Content }]"
-                :placeholder="lang[langType].active1Content">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active1"></span>
-                </template>
-                <template #input>
-                    <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active1"
-                        direction="horizontal">
-                        <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm }}</van-radio>
-                        <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel }}</van-radio>
-                    </van-radio-group>
-                </template>
-            </van-field>
-
-            <!-- 共筑网络安全防线  -->
-            <van-field size=“large” label-align="top" v-model="formData.active2" required
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active2Content }]"
-                :placeholder="lang[langType].active2Content">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active2"></span>
-                </template>
-                <template #input>
-                    <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active2"
-                        direction="horizontal">
-                        <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm }}</van-radio>
-                        <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel }}</van-radio>
-                    </van-radio-group>
-                </template>
-            </van-field>
-
-            <!-- 共商人工智能发展治理  -->
-            <van-field size=“large” label-align="top" v-model="formData.active3" required
-                :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active3Content }]"
-                :placeholder="lang[langType].active3Content">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active3"></span>
-                </template>
-                <template #input>
-                    <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active3"
-                        direction="horizontal">
-                        <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm }}</van-radio>
-                        <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel }}</van-radio>
-                    </van-radio-group>
-                </template>
-            </van-field>
-
-            <!-- 拟参加的活动  -->
-            <van-field size=“large” label-align="top" :placeholder="lang[langType].activitiesAttendedContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].activitiesAttended"></span>
-                </template>
-                <template #input>
-                    <van-checkbox-group checked-color="#3F5AC8" v-model="activitiesAttended">
-                        <van-cell clickable :title="lang[langType].active4" @click="checkboxRefs[0].toggle()">
-                            <template #icon>
-                                <van-checkbox :ref="el => checkboxRefs[0] = el" style="margin-right: 5px;" name="active4" @click.stop shape="square" />
-                            </template>
-                        </van-cell>
-                        <van-cell clickable :title="lang[langType].active5" @click="checkboxRefs[1].toggle()">
-                            <template #icon>
-                                <van-checkbox :ref="el => checkboxRefs[1] = el" style="margin-right: 5px;" name="active5" @click.stop shape="square" />
-                            </template>
-                        </van-cell>
-                        <van-cell clickable :title="lang[langType].active6" @click="checkboxRefs[2].toggle()">
-                            <template #icon>
-                                <van-checkbox :ref="el => checkboxRefs[2] = el" style="margin-right: 5px;" name="active6" @click.stop shape="square" />
-                            </template>
-                        </van-cell>
-                    </van-checkbox-group>
-                </template>
-            </van-field>
-
-            <div style="background-color: #F7F7F7;height: 10px;"></div>
-
-            <!--  抵达西安交通车次 -->
-            <van-field size=“large” input-align="right" v-model="formData.reachTrainNumber"
-                :placeholder="lang[langType].reachTrainNumberContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].reachTrainNumber"></span>
-                </template>
-            </van-field>
-
-            <!--  抵达西安时间 -->
-            <van-field size=“large” input-align="right" v-model="formData.reachTime" clickable right-icon="calendar-o"
-                readonly @click="showReachTime = true" :placeholder="lang[langType].reachTimeContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].reachTime"></span>
-                </template>
-            </van-field>
-            <van-popup v-model:show="showReachTime" destroy-on-close round position="bottom">
-                <van-picker :confirm-button-text="lang[langType].confirm" :cancel-button-text="lang[langType].cancel"
-                    :title="lang[langType].reachTime" :columns="dateTimeColumns" @confirm="reachTimeConfirm"
-                    @cancel="showReachTime = false" />
-            </van-popup>
-
-            <!--  离开车次 -->
-            <van-field size=“large” input-align="right" v-model="formData.leavingTrainNumber"
-                :placeholder="lang[langType].leavingTrainNumberContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].leavingTrainNumber"></span>
-                </template>
-            </van-field>
-
-            <!--  离开时间 -->
-            <van-field size=“large” input-align="right" v-model="formData.leavingTime" clickable right-icon="calendar-o"
-                readonly @click="showLeavingTime = true" :placeholder="lang[langType].leavingTimeContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].leavingTime"></span>
-                </template>
-            </van-field>
-            <van-popup v-model:show="showLeavingTime" destroy-on-close round position="bottom">
-                <van-picker :confirm-button-text="lang[langType].confirm" :cancel-button-text="lang[langType].cancel"
-                    :title="lang[langType].leavingTime" :columns="dateTimeColumns" @confirm="leavingTimeConfirm"
-                    @cancel="showLeavingTime = false" />
-            </van-popup>
-
-            <!--  离店时间 -->
-            <van-field size=“large” input-align="right" v-model="formData.checkOutTime" clickable
-                right-icon="calendar-o" readonly @click="showCheckOutTime = true"
-                :placeholder="lang[langType].checkOutTimeContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].checkOutTime"></span>
-                </template>
-            </van-field>
-            <van-popup v-model:show="showCheckOutTime" destroy-on-close round position="bottom">
-                <van-picker :confirm-button-text="lang[langType].confirm" :cancel-button-text="lang[langType].cancel"
-                    :title="lang[langType].checkOutTime" :columns="dateTimeColumns" @confirm="checkOutTimeConfirm"
-                    @cancel="showCheckOutTime = false" />
-            </van-popup>
-
-            <van-field size=“large” input-align="right" v-model="formData.message" rows="3" autosize type="textarea"
-                :placeholder="lang[langType].ortherNotesContent">
-                <template #label>
-                    <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].ortherNotes"></span>
-                </template>
-            </van-field>
-            <br />
-            <van-button
-                style="background: linear-gradient(270deg, #1D19BC 0%, #1C4CD5 100%);margin: 0 auto;width: calc(100% - 40px);"
-                block type="primary" native-type="submit">
-                {{ lang[langType].submit }}
-            </van-button>
-        </van-form>
+    <div>
+        <van-nav-bar fixed :border="false">
+            <template #left>
+                <van-icon name="arrow-left" color="#3D3D3D" @click="onClickLeft" />
+            </template>
+            <template #title>
+                <p style="padding-left: 3em;font-size: 1.2rem;" v-text="lang[langType].signUp"></p>
+            </template>
+        </van-nav-bar>
+        <div class="form">
+            <van-form ref="form" @submit="onSubmit" label-width="8em">
+                <!-- 国家/地区 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].countryRegionContent }]"
+                    required v-model="formData.countryRegion" :placeholder="lang[langType].countryRegionContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].countryRegion"></span>
+                    </template>
+                </van-field>
+
+                <!-- 姓 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].lastNameContent }]" required
+                    v-model="formData.lastName" :placeholder="lang[langType].lastNameContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].lastName"></span>
+                    </template>
+                </van-field>
+
+                <!-- 名 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].firstNameContent }]" required
+                    v-model="formData.firstName" :placeholder="lang[langType].firstNameContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].firstName"></span>
+                    </template>
+                </van-field>
+
+                <!-- 性别 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].genderContent }]"
+                    v-model="formData.gender" required :placeholder="lang[langType].genderContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].gender"></span>
+                    </template>
+                </van-field>
+
+                <!-- 生日 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].birthdayContent }]" clickable
+                    right-icon="calendar-o" readonly @click="showBirthday = true" v-model="formData.birthday" required
+                    :placeholder="lang[langType].birthdayContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? '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-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" @confirm="packerConfirm"
+                        :title="lang[langType].birthday" @cancel="showBirthday = false" :min-date="new Date(1970, 0, 1)"
+                        :max-date="new Date()" />
+                </van-popup>
+
+                <!-- 照片 -->
+                <van-field size=“large” input-align="right" :placeholder="lang[langType].photoContent" required
+                    :rules="[{ required: true, trigger: 'onChange', message: lang[langType].photoContent }]"
+                    v-model="formData.photoUrl">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].photo"></span>
+                    </template>
+                    <template #input>
+                        <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 class="upFileSubtitle" v-text="lang[langType].photoSubContent"> </p>
+                    </template>
+                </van-field>
+
+                <!-- 手机号 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].contactContent }]"
+                    v-model="formData.contact" type="number" required :placeholder="lang[langType].contactContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].contact"></span>
+                    </template>
+                </van-field>
+
+                <!-- 邮箱 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emailContent }]" required
+                    v-model="formData.email" :placeholder="lang[langType].emailContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].email"></span>
+                    </template>
+                </van-field>
+
+                <!-- 紧急联系人 -->
+                <van-field size=“large” input-align="right" v-model="formData.emergencyContact"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactContent }]"
+                    required :placeholder="lang[langType].emergencyContactContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].emergencyContact"></span>
+                    </template>
+                </van-field>
+
+                <!-- 紧急联系人电话 -->
+                <van-field size=“large” input-align="right" v-model="formData.emergencyContactPhone" required
+                    type="number"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].emergencyContactPhoneContent }]"
+                    :placeholder="lang[langType].emergencyContactPhoneContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''"
+                            v-html="lang[langType].emergencyContactPhone"></span>
+                    </template>
+                </van-field>
+
+                <!-- 证件类型 -->
+                <van-field size=“large” label-align="top" v-model="formData.cardType" clickable
+                    :rules="[{ required: true, trigger: 'onChange', message: lang[langType].conferenceTypeContent }]"
+                    :placeholder="lang[langType].conferenceTypeContent" required>
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].conferenceType"></span>
+                    </template>
+                    <template #input>
+                        <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.cardType"
+                            direction="horizontal">
+                            <van-radio v-for="item in cardTypeList" :key="item.value"
+                                style="width: 50%;margin: 10px 0 0 0;" :name="item.value">{{ item.text }}</van-radio>
+                        </van-radio-group>
+                    </template>
+                </van-field>
+
+                <!-- 证件 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].passportContent }]"
+                    v-model="formData.passport" required :placeholder="lang[langType].passportContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].passport"></span>
+                    </template>
+                </van-field>
+
+                <!-- 宗教 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].beliefContent }]"
+                    v-model="formData.belief" required :placeholder="lang[langType].beliefContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].belief"></span>
+                    </template>
+                </van-field>
+
+                <!-- 饮食要求 -->
+                <van-field size=“large” input-align="right" v-model="formData.catering" rows="1" autosize
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].cateringContent }]"
+                    type="textarea" required :placeholder="lang[langType].cateringContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].catering"></span>
+                    </template>
+                </van-field>
+
+                <div style="background-color: #F7F7F7;height: 10px;"></div>
+
+                <!-- 工作单位 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].workUnit }]" required
+                    v-model="formData.workUnit" :placeholder="lang[langType].companyContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].company"></span>
+                    </template>
+                </van-field>
+
+                <!-- 单位类型 -->
+                <van-field size=“large” input-align="right" v-model="formData.unitTypeName" clickable
+                    :rules="[{ required: true, trigger: 'onChange', message: lang[langType].unitTypeContent }]"
+                    right-icon="calendar-o" readonly :placeholder="lang[langType].unitTypeContent"
+                    @click="showUnitType = true" required>
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].unitType"></span>
+                    </template>
+                </van-field>
+                <van-popup v-model:show="showUnitType" destroy-on-close round position="bottom">
+                    <van-picker :confirm-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" :columns="unitTypeList"
+                        @cancel="showUnitType = false" @confirm="onUnitTypeConfirm" />
+                </van-popup>
+
+                <!-- 职务 -->
+                <van-field size=“large” input-align="right" v-model="formData.career"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].careerContent }]" required
+                    :placeholder="lang[langType].careerContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].career"></span>
+                    </template>
+                </van-field>
+
+                <!-- 传真 -->
+                <van-field size=“large” input-align="right"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].faxContent }]"
+                    v-model="formData.fax" required :placeholder="lang[langType].faxContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].fax"></span>
+                    </template>
+                </van-field>
+
+                <!-- 办公地址 -->
+                <van-field size=“large” input-align="right" v-model="formData.officeAddress" rows="1" autosize required
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].officeAddressContent }]"
+                    type="textarea" :placeholder="lang[langType].officeAddressContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].officeAddress"></span>
+                    </template>
+                </van-field>
+
+                <div style="background-color: #F7F7F7;height: 10px;"></div>
+                <!-- 接受采访意向  -->
+                <van-field size=“large” v-model="formData.interview" required label-align="top"
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].interviewContent }]"
+                    :placeholder="lang[langType].interviewContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].interview"></span>
+                    </template>
+                    <template #input>
+                        <van-radio-group checked-color="#3F5AC8" style="justify-content: flex-end;width: 100%;"
+                            v-model="formData.interview" direction="horizontal">
+                            <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm
+                                }}</van-radio>
+                            <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel
+                                }}</van-radio>
+                        </van-radio-group>
+                    </template>
+                </van-field>
+
+                <div style="background-color: #F7F7F7;height: 10px;"></div>
+                <!-- 共享数字经济发展机遇  -->
+                <van-field size=“large” label-align="top" v-model="formData.active1" required
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active1Content }]"
+                    :placeholder="lang[langType].active1Content">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active1"></span>
+                    </template>
+                    <template #input>
+                        <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active1"
+                            direction="horizontal">
+                            <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm
+                                }}</van-radio>
+                            <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel
+                                }}</van-radio>
+                        </van-radio-group>
+                    </template>
+                </van-field>
+
+                <!-- 共筑网络安全防线  -->
+                <van-field size=“large” label-align="top" v-model="formData.active2" required
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active2Content }]"
+                    :placeholder="lang[langType].active2Content">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active2"></span>
+                    </template>
+                    <template #input>
+                        <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active2"
+                            direction="horizontal">
+                            <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm
+                                }}</van-radio>
+                            <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel
+                                }}</van-radio>
+                        </van-radio-group>
+                    </template>
+                </van-field>
+
+                <!-- 共商人工智能发展治理  -->
+                <van-field size=“large” label-align="top" v-model="formData.active3" required
+                    :rules="[{ required: true, trigger: 'onBlur', message: lang[langType].active3Content }]"
+                    :placeholder="lang[langType].active3Content">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].active3"></span>
+                    </template>
+                    <template #input>
+                        <van-radio-group checked-color="#3F5AC8" style="width: 100%;" v-model="formData.active3"
+                            direction="horizontal">
+                            <van-radio style="flex: 1;margin-top: 10px " name="是">{{ lang[langType].confirm
+                                }}</van-radio>
+                            <van-radio style="flex: 1;margin-top: 10px " name="否">{{ lang[langType].cancel
+                                }}</van-radio>
+                        </van-radio-group>
+                    </template>
+                </van-field>
+
+                <!-- 拟参加的活动  -->
+                <van-field size=“large” label-align="top" :placeholder="lang[langType].activitiesAttendedContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''"
+                            v-html="lang[langType].activitiesAttended"></span>
+                    </template>
+                    <template #input>
+                        <van-checkbox-group checked-color="#3F5AC8" v-model="activitiesAttended">
+                            <van-cell clickable :title="lang[langType].active4" @click="checkboxRefs[0].toggle()">
+                                <template #icon>
+                                    <van-checkbox :ref="el => checkboxRefs[0] = el" style="margin-right: 5px;"
+                                        name="active4" @click.stop shape="square" />
+                                </template>
+                            </van-cell>
+                            <van-cell clickable :title="lang[langType].active5" @click="checkboxRefs[1].toggle()">
+                                <template #icon>
+                                    <van-checkbox :ref="el => checkboxRefs[1] = el" style="margin-right: 5px;"
+                                        name="active5" @click.stop shape="square" />
+                                </template>
+                            </van-cell>
+                            <van-cell clickable :title="lang[langType].active6" @click="checkboxRefs[2].toggle()">
+                                <template #icon>
+                                    <van-checkbox :ref="el => checkboxRefs[2] = el" style="margin-right: 5px;"
+                                        name="active6" @click.stop shape="square" />
+                                </template>
+                            </van-cell>
+                        </van-checkbox-group>
+                    </template>
+                </van-field>
+
+                <div style="background-color: #F7F7F7;height: 10px;"></div>
+
+                <!--  抵达西安交通车次 -->
+                <van-field size=“large” input-align="right" v-model="formData.reachTrainNumber"
+                    :placeholder="lang[langType].reachTrainNumberContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].reachTrainNumber"></span>
+                    </template>
+                </van-field>
+
+                <!--  抵达西安时间 -->
+                <van-field size=“large” input-align="right" v-model="formData.reachTime" clickable
+                    right-icon="calendar-o" readonly @click="showReachTime = true"
+                    :placeholder="lang[langType].reachTimeContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].reachTime"></span>
+                    </template>
+                </van-field>
+                <van-popup v-model:show="showReachTime" destroy-on-close round position="bottom">
+                    <van-picker :confirm-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" :title="lang[langType].reachTime"
+                        :columns="dateTimeColumns" @confirm="reachTimeConfirm" @cancel="showReachTime = false" />
+                </van-popup>
+
+                <!--  离开车次 -->
+                <van-field size=“large” input-align="right" v-model="formData.leavingTrainNumber"
+                    :placeholder="lang[langType].leavingTrainNumberContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''"
+                            v-html="lang[langType].leavingTrainNumber"></span>
+                    </template>
+                </van-field>
+
+                <!--  离开时间 -->
+                <van-field size=“large” input-align="right" v-model="formData.leavingTime" clickable
+                    right-icon="calendar-o" readonly @click="showLeavingTime = true"
+                    :placeholder="lang[langType].leavingTimeContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].leavingTime"></span>
+                    </template>
+                </van-field>
+                <van-popup v-model:show="showLeavingTime" destroy-on-close round position="bottom">
+                    <van-picker :confirm-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" :title="lang[langType].leavingTime"
+                        :columns="dateTimeColumns" @confirm="leavingTimeConfirm" @cancel="showLeavingTime = false" />
+                </van-popup>
+
+                <!--  离店时间 -->
+                <van-field size=“large” input-align="right" v-model="formData.checkOutTime" clickable
+                    right-icon="calendar-o" readonly @click="showCheckOutTime = true"
+                    :placeholder="lang[langType].checkOutTimeContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].checkOutTime"></span>
+                    </template>
+                </van-field>
+                <van-popup v-model:show="showCheckOutTime" destroy-on-close round position="bottom">
+                    <van-picker :confirm-button-text="lang[langType].confirm"
+                        :cancel-button-text="lang[langType].cancel" :title="lang[langType].checkOutTime"
+                        :columns="dateTimeColumns" @confirm="checkOutTimeConfirm" @cancel="showCheckOutTime = false" />
+                </van-popup>
+
+                <van-field size=“large” input-align="right" v-model="formData.message" rows="3" autosize type="textarea"
+                    :placeholder="lang[langType].ortherNotesContent">
+                    <template #label>
+                        <span :class="langType === 'zh' ? 'label' : ''" v-html="lang[langType].ortherNotes"></span>
+                    </template>
+                </van-field>
+                <br />
+                <van-button
+                    style="background: linear-gradient(270deg, #1D19BC 0%, #1C4CD5 100%);margin: 0 auto;width: calc(100% - 40px);"
+                    block type="primary" native-type="submit">
+                    {{ lang[langType].submit }}
+                </van-button>
+            </van-form>
+        </div>
     </div>
 </template>
 <script setup>

+ 25 - 27
src/view/fenghui/index.vue

@@ -13,12 +13,12 @@
         </div>
         <Introduction v-if="!componentId" :langType="langSelect" @saveData="saveData" />
         <!-- 动态组件 -->
-        <Fore25 ref="fore25" v-if="componentId === 'fore25'" :verificationCode="verificationCode" :langType="langSelect"
-            @closeComponent="closeComponent" />
-        <Chin25 ref="chin25" v-if="componentId === 'chin25'" :verificationCode="verificationCode" :langType="langSelect"
-            @closeComponent="closeComponent" />
-        <Work25 ref="work25" v-if="componentId === 'work25'" :verificationCode="verificationCode" :langType="langSelect"
-            @closeComponent="closeComponent" />
+        <Fore25 ref="fore25" v-if="componentId === 'fore25'" :verificationCode="verificationCode"
+            :langType="langSelect" @closeComponent="closeComponent" />
+        <Chin25 ref="chin25" v-if="componentId === 'chin25'" :verificationCode="verificationCode"
+            :langType="langSelect" @closeComponent="closeComponent" />
+        <Work25 ref="work25" v-if="componentId === 'work25'" :verificationCode="verificationCode"
+            :langType="langSelect" @closeComponent="closeComponent" />
 
         <Fore25-recurrence ref="fore25Recurrence" v-if="componentId === 'fore25Recurrence'" :subData="subData"
             :verificationCode="verificationCode" :langType="langSelect" @closeComponent="closeComponent" />
@@ -50,6 +50,9 @@ const fore25Recurrence = ref(null); // 引入子组件的实例,用于调用
 const chin25Recurrence = ref(null); // 引入子组件的实例,用于调用子组件的方法
 const work25Recurrence = ref(null); // 引入子组件的实例,用于调用子组件的方法
 
+let langDefaute = true;
+let langDefauteType = langSelect.value;
+
 const subData = ref({})
 
 const langObj = [
@@ -61,38 +64,33 @@ const langObjT = {
     en: '中文',
 }
 const saveData = (code, verification, data) => {
-    if (code !== undefined) componentId.value = code;
+    if (code !== undefined) {
+        componentId.value = code;
+        if (langDefaute) {
+            // 语言初始状态,需要判定是否是外国人的界面,是的话,需要设置英语 
+            const langList = ['fore25', 'fore25Recurrence']
+            langSelect.value = langList.includes(componentId.value) && langDefauteType !== undefined ? 'en' : langDefauteType
+        }
+    }
     if (verification !== undefined) verificationCode.value = verification;
     if (data !== undefined) subData.value = data;
 }
 
 const closeComponent = () => {
     componentId.value = '';
+    if (langDefaute) langSelect.value = langDefauteType
 }
 
 const langChange = ({ selectedValues }) => {
     langSelect.value = selectedValues[0];
+    langDefaute = false;
     localStorage.setItem('langSelect', selectedValues[0]);
-    switch (componentId.value) {
-        case 'fore25':
-            fore25.value.reset(); // 调用子组件的方法
-            break;
-        case 'chin25':
-            chin25.value.reset(); // 调用子组件的方法
-            break;
-        case 'work25':
-            work25.value.reset(); // 调用子组件的方法
-            break;
-        case 'fore25Recurrence':
-            fore25Recurrence.value.reset(); // 调用子组件的方法
-            break;
-        case 'chin25Recurrence':
-            chin25Recurrence.value.reset(); // 调用子组件的方法
-            break;
-        case 'work25Recurrence':
-            work25Recurrence.value.reset(); // 调用子组件的方法
-            break;
-    }
+    fore25.value.reset(); // 调用子组件的方法
+    chin25.value.reset(); // 调用子组件的方法
+    work25.value.reset(); // 调用子组件的方法
+    fore25Recurrence.value.reset(); // 调用子组件的方法
+    chin25Recurrence.value.reset(); // 调用子组件的方法
+    work25Recurrence.value.reset(); // 调用子组件的方法
     showLange.value = false;
 };
 

+ 4 - 3
src/view/fenghui/introduction.vue

@@ -149,7 +149,7 @@
             </g>
         </svg>
         <h4 class="text" style="font-size: 1.5rem;" v-text="lang[langType].title"></h4>
-        <div style="font-size: 1rem;margin-bottom: 40px;color: rgba(255,255,255,0.9);" class="text" v-html="lang[langType].marstContent"></div>
+        <div style="font-size: 1rem;margin-bottom: 30px;color: rgba(255,255,255,0.9);" class="text" v-html="lang[langType].marstContent"></div>
 
         <h4 class="text" style="font-size: 1.2rem;" v-text="lang[langType].wrestleMania"></h4>
         <p class="text" style="color: rgba(255,255,255,0.9);" v-html="lang[langType].wrestleManiaContent"></p>
@@ -233,6 +233,7 @@ const checkVerificationCode = () => {
         code: verificationCode.value.toLowerCase(),
         userType
     }).then((res) => {
+        console.log(res)
         if (!isNaN(res.code) && res.code !== 0) {
             showToast(res.msg || lang[props.langType].verificationCodeError);
             return;
@@ -301,7 +302,7 @@ const saveLogin = () => {
         width: 16px;
         height: 1px;
         background-color: #FFFFFF00;
-        margin: 17px auto 17px 30px;
+        margin: 5px auto 5px 30px;
     }
 
     .btn_bottom {
@@ -314,7 +315,7 @@ const saveLogin = () => {
     }
 
     .tologo {
-        font-size: 0.875rem;
+        font-size: 1rem;
         text-align: center;
     }
 }