liyongli 1 Minggu lalu
induk
melakukan
08f1de11ef
2 mengubah file dengan 50 tambahan dan 42 penghapusan
  1. 48 41
      src/view/fenghui/index.vue
  2. 2 1
      src/view/fenghui/lang.js

+ 48 - 41
src/view/fenghui/index.vue

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

+ 2 - 1
src/view/fenghui/lang.js

@@ -98,7 +98,8 @@ export default {
         "countryOrRegionList": [
             { text: '中国', value: '中国' },
             { text: '其他国家', value: '其他国家' },
-        ]
+        ],
+        "dateList": ['年', '月', '日', '时', '分'],
     },
     "en": {
     }