zlwu 1 سال پیش
والد
کامیت
4de2f07351
1فایلهای تغییر یافته به همراه1634 افزوده شده و 1563 حذف شده
  1. 1634 1563
      mobile/src/pages/enrollment/index.vue

+ 1634 - 1563
mobile/src/pages/enrollment/index.vue

@@ -1,1694 +1,1765 @@
 <template>
-  <view class="enrollment-container">
-    <!-- 自定义导航栏 -->
-    <u-navbar 
+    <view class="enrollment-container">
+        <!-- 自定义导航栏 -->
+        <!-- <u-navbar 
       title="新生报名登记" 
       :border-bottom="false" 
       bg-color="#3c9cff" 
       title-color="#fff"
       :is-back="false"
-    ></u-navbar>
+    ></u-navbar> -->
 
-    <!-- 页面头部 -->
-    <view class="page-header">
-      <view class="header-title">招生在线报名</view>
-      <view class="header-desc">请认真填写以下信息,带 <text class="required">*</text> 的为必填项</view>
-    </view>
-
-    <!-- 表单内容 -->
-    <view class="form-container">
-      <u-form ref="enrollmentForm" :model="formData" :rules="rules" label-width="120">
-        
-        <!-- 基本信息 -->
-        <view class="form-section">
-          <view class="section-title">
-            <u-icon name="account" color="#3c9cff" size="20"></u-icon>
-            <text class="title-text">基本信息</text>
-          </view>
-          
-          <u-form-item label="姓名" prop="name" required>
-            <u-input v-model="formData.name" placeholder="请输入真实姓名" />
-          </u-form-item>
-          
-          <u-form-item label="身份证号" prop="idCard" required>
-            <u-input v-model="formData.idCard" placeholder="请输入身份证号" @change="onIdCardChange" />
-          </u-form-item>
-          
-          <u-form-item label="性别" prop="gender" required>
-            <u-input 
-              v-model="genderText" 
-              placeholder="请选择性别" 
-              readonly
-              suffix-icon="arrow-down"
-              @click="showGenderPicker"
-            />
-            <u-picker 
-              :show="genderPickerShow" 
-              :columns="genderPickerColumns"
-              @confirm="onGenderConfirm"
-              @cancel="genderPickerShow = false"
-            ></u-picker>
-          </u-form-item>
-          
-          <u-form-item label="出生日期" prop="birthDate">
-            <u-input 
-              v-model="formData.birthDate" 
-              placeholder="选择出生日期" 
-              readonly
-              suffix-icon="calendar"
-              @click="showBirthDatePicker"
-            />
-          </u-form-item>
-          
-          <u-form-item label="联系电话" prop="phone1" required>
-            <u-input v-model="formData.phone1" placeholder="请输入联系电话" />
-          </u-form-item>
-          
-          <u-form-item label="备用电话" prop="phone2">
-            <u-input v-model="formData.phone2" placeholder="请输入备用电话" />
-          </u-form-item>
-          
-          <u-form-item label="民族" prop="nation">
-            <u-input v-model="formData.nation" placeholder="请输入民族" />
-          </u-form-item>
-          
-          <u-form-item label="是否住宿" prop="isBoarding">
-            <view @click="showBoardingPicker" @tap="showBoardingPicker" style="width: 100%;">
-              <u-input 
-                v-model="boardingText" 
-                placeholder="请选择是否住宿" 
-                readonly
-                suffix-icon="arrow-down"
-                @click.stop="showBoardingPicker"
-                @tap.stop="showBoardingPicker"
-              />
+        <!-- 页面头部 -->
+        <view class="page-header">
+            <view class="header-title">招生在线报名</view>
+            <view class="header-desc">
+                请认真填写以下信息,带
+                <text class="required">*</text>
+                的为必填项
             </view>
-            <u-picker 
-              :show="boardingPickerShow" 
-              :columns="boardingPickerColumns"
-              @confirm="onBoardingConfirm"
-              @cancel="boardingPickerShow = false"
-            ></u-picker>
-          </u-form-item>
-          
-          <u-form-item label="健康状况" prop="healthStatus">
-            <u-input v-model="formData.healthStatus" placeholder="请输入健康状况" />
-          </u-form-item>
-          
-          <u-form-item label="家庭住址" prop="homeAddress">
-            <u-input 
-              v-model="formData.homeAddress" 
-              type="textarea" 
-              placeholder="请输入详细的家庭住址" 
-              :maxlength="200"
-            />
-          </u-form-item>
         </view>
 
-        <!-- 学业信息 -->
-        <view class="form-section">
-          <view class="section-title">
-            <u-icon name="school" color="#3c9cff" size="20"></u-icon>
-            <text class="title-text">学业信息</text>
-          </view>
-          
-          <u-form-item label="毕业中学" prop="middleSchool">
-            <u-input v-model="formData.middleSchool" placeholder="请输入毕业中学全称" />
-          </u-form-item>
-          
-          <u-form-item label="准考证号" prop="examNumber">
-            <u-input v-model="formData.examNumber" placeholder="请输入准考证号" />
-          </u-form-item>
-          
-          <u-form-item label="中考地区" prop="examRegion">
-            <u-input v-model="formData.examRegion" placeholder="请输入中考地区" />
-          </u-form-item>
-          
-          <u-form-item label="中考满分" prop="totalScoreFull">
-            <u-number-box 
-              v-model="formData.totalScoreFull" 
-              :min="0" 
-              :step="1"
-              placeholder="请输入中考满分"
-            ></u-number-box>
-          </u-form-item>
-          
-          <u-form-item label="中考成绩" prop="totalScore">
-            <u-number-box 
-              v-model="formData.totalScore" 
-              :min="0" 
-              :step="1"
-              placeholder="请输入中考成绩"
-            ></u-number-box>
-          </u-form-item>
-          
-          <u-form-item label="语文成绩" prop="chineseScore">
-            <u-number-box 
-              v-model="formData.chineseScore" 
-              :min="0" 
-              :step="1"
-              placeholder="请输入语文成绩"
-            ></u-number-box>
-          </u-form-item>
-          
-          <u-form-item label="数学成绩" prop="mathScore">
-            <u-number-box 
-              v-model="formData.mathScore" 
-              :min="0" 
-              :step="1"
-              placeholder="请输入数学成绩"
-            ></u-number-box>
-          </u-form-item>
-          
-          <u-form-item label="英语成绩" prop="englishScore">
-            <u-number-box 
-              v-model="formData.englishScore" 
-              :min="0" 
-              :step="1"
-              placeholder="请输入英语成绩"
-            ></u-number-box>
-          </u-form-item>
-          
-          <u-form-item label="科学成绩" prop="scienceScore">
-            <u-number-box 
-              v-model="formData.scienceScore" 
-              :min="0" 
-              :step="1"
-              placeholder="请输入科学成绩"
-            ></u-number-box>
-          </u-form-item>
-          
-          <u-form-item label="社会成绩" prop="socialScore">
-            <u-number-box 
-              v-model="formData.socialScore" 
-              :min="0" 
-              :step="1"
-              placeholder="请输入社会成绩"
-            ></u-number-box>
-          </u-form-item>
-          
-          <u-form-item label="体育成绩" prop="peScore">
-            <u-number-box 
-              v-model="formData.peScore" 
-              :min="0" 
-              :step="1"
-              placeholder="请输入体育成绩"
-            ></u-number-box>
-          </u-form-item>
+        <!-- 表单内容 -->
+        <view class="form-container">
+            <u-form ref="enrollmentForm" :model="formData" :rules="rules" label-width="120">
+                <!-- 基本信息 -->
+                <view class="form-section">
+                    <view class="section-title">
+                        <u-icon name="account" color="#3c9cff" size="20"></u-icon>
+                        <text class="title-text">基本信息</text>
+                    </view>
+
+                    <u-form-item label="姓名" prop="name" required>
+                        <u-input v-model="formData.name" placeholder="请输入真实姓名" />
+                    </u-form-item>
+
+                    <u-form-item label="身份证号" prop="idCard" required>
+                        <u-input
+                            v-model="formData.idCard"
+                            placeholder="请输入身份证号"
+                            @change="onIdCardChange"
+                        />
+                    </u-form-item>
+
+                    <u-form-item label="性别" prop="gender" required>
+                        <u-input
+                            v-model="genderText"
+                            placeholder="请选择性别"
+                            readonly
+                            suffix-icon="arrow-down"
+                            @click="showGenderPicker"
+                        />
+                        <u-picker
+                            :show="genderPickerShow"
+                            :columns="genderPickerColumns"
+                            @confirm="onGenderConfirm"
+                            @cancel="genderPickerShow = false"
+                        ></u-picker>
+                    </u-form-item>
+
+                    <u-form-item label="出生日期" prop="birthDate">
+                        <u-input
+                            v-model="formData.birthDate"
+                            placeholder="选择出生日期"
+                            readonly
+                            suffix-icon="calendar"
+                            @click="showBirthDatePicker"
+                        />
+                    </u-form-item>
+
+                    <u-form-item label="联系电话" prop="phone1" required>
+                        <u-input v-model="formData.phone1" placeholder="请输入联系电话" />
+                    </u-form-item>
+
+                    <u-form-item label="备用电话" prop="phone2">
+                        <u-input v-model="formData.phone2" placeholder="请输入备用电话" />
+                    </u-form-item>
+
+                    <u-form-item label="民族" prop="nation">
+                        <u-input v-model="formData.nation" placeholder="请输入民族" />
+                    </u-form-item>
+
+                    <u-form-item label="是否住宿" prop="isBoarding">
+                        <view
+                            @click="showBoardingPicker"
+                            @tap="showBoardingPicker"
+                            style="width: 100%"
+                        >
+                            <u-input
+                                v-model="boardingText"
+                                placeholder="请选择是否住宿"
+                                readonly
+                                suffix-icon="arrow-down"
+                                @click.stop="showBoardingPicker"
+                                @tap.stop="showBoardingPicker"
+                            />
+                        </view>
+                        <u-picker
+                            :show="boardingPickerShow"
+                            :columns="boardingPickerColumns"
+                            @confirm="onBoardingConfirm"
+                            @cancel="boardingPickerShow = false"
+                        ></u-picker>
+                    </u-form-item>
+
+                    <u-form-item label="健康状况" prop="healthStatus">
+                        <u-input v-model="formData.healthStatus" placeholder="请输入健康状况" />
+                    </u-form-item>
+
+                    <u-form-item label="家庭住址" prop="homeAddress">
+                        <u-input
+                            v-model="formData.homeAddress"
+                            type="textarea"
+                            placeholder="请输入详细的家庭住址"
+                            :maxlength="200"
+                        />
+                    </u-form-item>
+                </view>
+
+                <!-- 学业信息 -->
+                <view class="form-section">
+                    <view class="section-title">
+                        <u-icon name="school" color="#3c9cff" size="20"></u-icon>
+                        <text class="title-text">学业信息</text>
+                    </view>
+
+                    <u-form-item label="毕业中学" prop="middleSchool">
+                        <u-input v-model="formData.middleSchool" placeholder="请输入毕业中学全称" />
+                    </u-form-item>
+
+                    <u-form-item label="准考证号" prop="examNumber">
+                        <u-input v-model="formData.examNumber" placeholder="请输入准考证号" />
+                    </u-form-item>
+
+                    <u-form-item label="中考地区" prop="examRegion">
+                        <u-input v-model="formData.examRegion" placeholder="请输入中考地区" />
+                    </u-form-item>
+
+                    <u-form-item label="中考满分" prop="totalScoreFull">
+                        <u-number-box
+                            v-model="formData.totalScoreFull"
+                            :min="0"
+                            :step="1"
+                            placeholder="请输入中考满分"
+                        ></u-number-box>
+                    </u-form-item>
+
+                    <u-form-item label="中考成绩" prop="totalScore">
+                        <u-number-box
+                            v-model="formData.totalScore"
+                            :min="0"
+                            :step="1"
+                            placeholder="请输入中考成绩"
+                        ></u-number-box>
+                    </u-form-item>
+
+                    <u-form-item label="语文成绩" prop="chineseScore">
+                        <u-number-box
+                            v-model="formData.chineseScore"
+                            :min="0"
+                            :step="1"
+                            placeholder="请输入语文成绩"
+                        ></u-number-box>
+                    </u-form-item>
+
+                    <u-form-item label="数学成绩" prop="mathScore">
+                        <u-number-box
+                            v-model="formData.mathScore"
+                            :min="0"
+                            :step="1"
+                            placeholder="请输入数学成绩"
+                        ></u-number-box>
+                    </u-form-item>
+
+                    <u-form-item label="英语成绩" prop="englishScore">
+                        <u-number-box
+                            v-model="formData.englishScore"
+                            :min="0"
+                            :step="1"
+                            placeholder="请输入英语成绩"
+                        ></u-number-box>
+                    </u-form-item>
+
+                    <u-form-item label="科学成绩" prop="scienceScore">
+                        <u-number-box
+                            v-model="formData.scienceScore"
+                            :min="0"
+                            :step="1"
+                            placeholder="请输入科学成绩"
+                        ></u-number-box>
+                    </u-form-item>
+
+                    <u-form-item label="社会成绩" prop="socialScore">
+                        <u-number-box
+                            v-model="formData.socialScore"
+                            :min="0"
+                            :step="1"
+                            placeholder="请输入社会成绩"
+                        ></u-number-box>
+                    </u-form-item>
+
+                    <u-form-item label="体育成绩" prop="peScore">
+                        <u-number-box
+                            v-model="formData.peScore"
+                            :min="0"
+                            :step="1"
+                            placeholder="请输入体育成绩"
+                        ></u-number-box>
+                    </u-form-item>
+                </view>
+
+                <!-- 报考信息 -->
+                <view class="form-section">
+                    <view class="section-title">
+                        <u-icon name="star" color="#3c9cff" size="20"></u-icon>
+                        <text class="title-text">报考信息</text>
+                    </view>
+
+                    <u-form-item label="所属学院" prop="collegeName" required>
+                        <view
+                            @click="showCollegePicker"
+                            @tap="showCollegePicker"
+                            style="width: 100%"
+                        >
+                            <u-input
+                                v-model="collegeText"
+                                placeholder="请选择所属学院"
+                                readonly
+                                suffix-icon="arrow-down"
+                                @click.stop="showCollegePicker"
+                                @tap.stop="showCollegePicker"
+                            />
+                        </view>
+                        <u-picker
+                            :show="collegePickerShow"
+                            :columns="collegePickerColumns"
+                            @confirm="onCollegeConfirm"
+                            @cancel="collegePickerShow = false"
+                        ></u-picker>
+                    </u-form-item>
+
+                    <u-form-item label="学院代码" prop="collegeId">
+                        <u-input
+                            v-model="formData.collegeId"
+                            placeholder="学院代码将自动填入"
+                            disabled
+                        />
+                    </u-form-item>
+
+                    <u-form-item label="报考专业" prop="appliedMajor" required>
+                        <view @click="showMajorPicker" @tap="showMajorPicker" style="width: 100%">
+                            <u-input
+                                v-model="majorText"
+                                placeholder="请选择报考专业"
+                                readonly
+                                suffix-icon="arrow-down"
+                                @click.stop="showMajorPicker"
+                                @tap.stop="showMajorPicker"
+                            />
+                        </view>
+                        <u-picker
+                            :show="majorPickerShow"
+                            :columns="majorPickerColumns"
+                            @confirm="onMajorConfirm"
+                            @cancel="majorPickerShow = false"
+                        ></u-picker>
+                    </u-form-item>
+
+                    <u-form-item label="专业代码" prop="majorCode">
+                        <u-input
+                            v-model="formData.majorCode"
+                            placeholder="专业代码将自动填入"
+                            disabled
+                        />
+                    </u-form-item>
+
+                    <u-form-item label="校服尺码" prop="uniformSize">
+                        <view
+                            @click="showUniformSizePicker"
+                            @tap="showUniformSizePicker"
+                            style="width: 100%"
+                        >
+                            <u-input
+                                v-model="uniformSizeText"
+                                placeholder="请选择校服尺码"
+                                readonly
+                                suffix-icon="arrow-down"
+                                @click.stop="showUniformSizePicker"
+                                @tap.stop="showUniformSizePicker"
+                            />
+                        </view>
+                        <u-picker
+                            :show="uniformSizePickerShow"
+                            :columns="uniformSizePickerColumns"
+                            @confirm="onUniformSizeConfirm"
+                            @cancel="uniformSizePickerShow = false"
+                        ></u-picker>
+                    </u-form-item>
+                </view>
+
+                <!-- 其他信息 -->
+                <view class="form-section">
+                    <view class="section-title">
+                        <u-icon name="file-text" color="#3c9cff" size="20"></u-icon>
+                        <text class="title-text">其他信息</text>
+                    </view>
+
+                    <u-form-item label="特长爱好" prop="specialties">
+                        <u-input
+                            v-model="formData.specialties"
+                            type="textarea"
+                            placeholder="请简要描述您的特长爱好"
+                            :maxlength="300"
+                        />
+                    </u-form-item>
+
+                    <u-form-item label="获奖情况" prop="awards">
+                        <u-input
+                            v-model="formData.awards"
+                            type="textarea"
+                            placeholder="请简要描述您的获奖情况"
+                            :maxlength="300"
+                        />
+                    </u-form-item>
+                </view>
+            </u-form>
         </view>
 
-        <!-- 报考信息 -->
-        <view class="form-section">
-          <view class="section-title">
-            <u-icon name="star" color="#3c9cff" size="20"></u-icon>
-            <text class="title-text">报考信息</text>
-          </view>
-          
-          <u-form-item label="所属学院" prop="collegeName" required>
-            <view @click="showCollegePicker" @tap="showCollegePicker" style="width: 100%;">
-              <u-input 
-                v-model="collegeText" 
-                placeholder="请选择所属学院" 
-                readonly
-                suffix-icon="arrow-down"
-                @click.stop="showCollegePicker"
-                @tap.stop="showCollegePicker"
-              />
-            </view>
-            <u-picker 
-              :show="collegePickerShow" 
-              :columns="collegePickerColumns"
-              @confirm="onCollegeConfirm"
-              @cancel="collegePickerShow = false"
-            ></u-picker>
-          </u-form-item>
-          
-          <u-form-item label="学院代码" prop="collegeId">
-            <u-input v-model="formData.collegeId" placeholder="学院代码将自动填入" disabled />
-          </u-form-item>
-          
-          <u-form-item label="报考专业" prop="appliedMajor" required>
-            <view @click="showMajorPicker" @tap="showMajorPicker" style="width: 100%;">
-              <u-input 
-                v-model="majorText" 
-                placeholder="请选择报考专业"  
-                readonly
-                suffix-icon="arrow-down"
-                @click.stop="showMajorPicker"
-                @tap.stop="showMajorPicker"
-              />
+        <!-- 操作按钮 -->
+        <view class="action-buttons">
+            <u-button
+                type="primary"
+                :loading="submitLoading"
+                @click="submitApplication"
+                :custom-style="{ marginBottom: '16rpx' }"
+            >
+                <u-icon name="checkmark" size="18" color="#fff"></u-icon>
+                提交报名申请
+            </u-button>
+
+            <u-button type="default" @click="resetForm">
+                <u-icon name="reload" size="18" color="#909399"></u-icon>
+                重置表单
+            </u-button>
+        </view>
+
+        <!-- 查询报名状态卡片 -->
+        <view class="query-card">
+            <view class="query-header">
+                <text class="query-title">查询报名状态</text>
             </view>
-            <u-picker 
-              :show="majorPickerShow" 
-              :columns="majorPickerColumns"
-              @confirm="onMajorConfirm"
-              @cancel="majorPickerShow = false"
-            ></u-picker>
-          </u-form-item>
-          
-          <u-form-item label="专业代码" prop="majorCode">
-            <u-input v-model="formData.majorCode" placeholder="专业代码将自动填入" disabled />
-          </u-form-item>
-          
-          <u-form-item label="校服尺码" prop="uniformSize">
-            <view @click="showUniformSizePicker" @tap="showUniformSizePicker" style="width: 100%;">
-              <u-input 
-                v-model="uniformSizeText" 
-                placeholder="请选择校服尺码" 
-                readonly
-                suffix-icon="arrow-down"
-                @click.stop="showUniformSizePicker"
-                @tap.stop="showUniformSizePicker"
-              />
+
+            <view class="query-form">
+                <u-form ref="queryForm" :model="queryData" label-width="120">
+                    <u-form-item label="身份证号">
+                        <u-input
+                            v-model="queryData.idCard"
+                            placeholder="请输入身份证号"
+                            clearable
+                        />
+                    </u-form-item>
+
+                    <u-form-item label="准考证号">
+                        <u-input
+                            v-model="queryData.examNumber"
+                            placeholder="请输入准考证号"
+                            clearable
+                        />
+                    </u-form-item>
+                </u-form>
+
+                <u-button type="primary" size="small" :loading="queryLoading" @click="queryStatus">
+                    查询状态
+                </u-button>
             </view>
-            <u-picker 
-              :show="uniformSizePickerShow" 
-              :columns="uniformSizePickerColumns"
-              @confirm="onUniformSizeConfirm"
-              @cancel="uniformSizePickerShow = false"
-            ></u-picker>
-          </u-form-item>
         </view>
 
-        <!-- 其他信息 -->
-        <view class="form-section">
-          <view class="section-title">
-            <u-icon name="file-text" color="#3c9cff" size="20"></u-icon>
-            <text class="title-text">其他信息</text>
-          </view>
-          
-          <u-form-item label="特长爱好" prop="specialties">
-            <u-input 
-              v-model="formData.specialties" 
-              type="textarea" 
-              placeholder="请简要描述您的特长爱好" 
-              :maxlength="300"
-            />
-          </u-form-item>
-          
-          <u-form-item label="获奖情况" prop="awards">
-            <u-input 
-              v-model="formData.awards" 
-              type="textarea" 
-              placeholder="请简要描述您的获奖情况" 
-              :maxlength="300"
-            />
-          </u-form-item>
-        </view>
-      </u-form>
-    </view>
+        <!-- 状态查询结果弹窗 -->
+        <u-popup v-model="statusPopup.show" mode="center" width="600rpx" border-radius="16">
+            <view class="status-popup">
+                <view class="popup-header">
+                    <text class="popup-title">报名状态查询结果</text>
+                    <u-icon name="close" @click="statusPopup.show = false" size="20"></u-icon>
+                </view>
 
-    <!-- 操作按钮 -->
-    <view class="action-buttons">
-      <u-button 
-        type="primary" 
-        :loading="submitLoading" 
-        @click="submitApplication"
-        :custom-style="{ marginBottom: '16rpx' }"
-      >
-        <u-icon name="checkmark" size="18" color="#fff"></u-icon>
-        提交报名申请
-      </u-button>
-      
-      <u-button 
-        type="default" 
-        @click="resetForm"
-      >
-        <u-icon name="reload" size="18" color="#909399"></u-icon>
-        重置表单
-      </u-button>
-    </view>
+                <view v-if="statusInfo" class="status-content">
+                    <view class="status-item">
+                        <text class="status-label">姓名:</text>
+                        <text class="status-value">{{ statusInfo.name || '-' }}</text>
+                    </view>
+                    <view class="status-item">
+                        <text class="status-label">身份证号:</text>
+                        <text class="status-value">{{ statusInfo.idCard || '-' }}</text>
+                    </view>
+                    <view class="status-item">
+                        <text class="status-label">准考证号:</text>
+                        <text class="status-value">{{ statusInfo.examNumber || '-' }}</text>
+                    </view>
+                    <view class="status-item">
+                        <text class="status-label">报考专业:</text>
+                        <text class="status-value">{{ statusInfo.appliedMajor || '-' }}</text>
+                    </view>
+                    <view class="status-item">
+                        <text class="status-label">联系电话:</text>
+                        <text class="status-value">{{ statusInfo.phone1 || '-' }}</text>
+                    </view>
+                    <view class="status-item">
+                        <text class="status-label">报名时间:</text>
+                        <text class="status-value">
+                            {{ formatTime(statusInfo.applicationTime) }}
+                        </text>
+                    </view>
 
-    <!-- 查询报名状态卡片 -->
-    <view class="query-card">
-      <view class="query-header">
-        <text class="query-title">查询报名状态</text>
-      </view>
-      
-      <view class="query-form">
-        <u-form ref="queryForm" :model="queryData" label-width="120">
-          <u-form-item label="身份证号">
-            <u-input 
-              v-model="queryData.idCard" 
-              placeholder="请输入身份证号" 
-              clearable 
-            />
-          </u-form-item>
-          
-          <u-form-item label="准考证号">
-            <u-input 
-              v-model="queryData.examNumber" 
-              placeholder="请输入准考证号" 
-              clearable 
-            />
-          </u-form-item>
-        </u-form>
-        
-        <u-button 
-          type="primary" 
-          size="small" 
-          :loading="queryLoading" 
-          @click="queryStatus"
-        >
-          查询状态
-        </u-button>
-      </view>
-    </view>
+                    <view class="status-tips">
+                        <u-notice-bar
+                            text="您的报名信息已成功提交,请耐心等待审核结果。如有疑问,请联系招生办公室。"
+                            type="info"
+                            :show-icon="true"
+                        ></u-notice-bar>
+                    </view>
+                </view>
 
-    <!-- 状态查询结果弹窗 -->
-    <u-popup v-model="statusPopup.show" mode="center" width="600rpx" border-radius="16">
-      <view class="status-popup">
-        <view class="popup-header">
-          <text class="popup-title">报名状态查询结果</text>
-          <u-icon name="close" @click="statusPopup.show = false" size="20"></u-icon>
-        </view>
-        
-        <view v-if="statusInfo" class="status-content">
-          <view class="status-item">
-            <text class="status-label">姓名:</text>
-            <text class="status-value">{{ statusInfo.name || '-' }}</text>
-          </view>
-          <view class="status-item">
-            <text class="status-label">身份证号:</text>
-            <text class="status-value">{{ statusInfo.idCard || '-' }}</text>
-          </view>
-          <view class="status-item">
-            <text class="status-label">准考证号:</text>
-            <text class="status-value">{{ statusInfo.examNumber || '-' }}</text>
-          </view>
-          <view class="status-item">
-            <text class="status-label">报考专业:</text>
-            <text class="status-value">{{ statusInfo.appliedMajor || '-' }}</text>
-          </view>
-          <view class="status-item">
-            <text class="status-label">联系电话:</text>
-            <text class="status-value">{{ statusInfo.phone1 || '-' }}</text>
-          </view>
-          <view class="status-item">
-            <text class="status-label">报名时间:</text>
-            <text class="status-value">{{ formatTime(statusInfo.applicationTime) }}</text>
-          </view>
-          
-          <view class="status-tips">
-            <u-notice-bar 
-              text="您的报名信息已成功提交,请耐心等待审核结果。如有疑问,请联系招生办公室。"
-              type="info"
-              :show-icon="true"
-            ></u-notice-bar>
-          </view>
-        </view>
-        
-        <view class="popup-footer">
-          <u-button type="primary" size="small" @click="statusPopup.show = false">关闭</u-button>
-        </view>
-      </view>
-    </u-popup>
-
-    <!-- 日期选择器 -->
-    <u-datetime-picker 
-      ref="datetimePicker"
-      v-model="birthDateValue"
-      mode="date"
-      :show="birthDatePickerShow"
-      @confirm="onBirthDateConfirm"
-      @cancel="birthDatePickerShow = false"
-    ></u-datetime-picker>
-  </view>
+                <view class="popup-footer">
+                    <u-button type="primary" size="small" @click="statusPopup.show = false">
+                        关闭
+                    </u-button>
+                </view>
+            </view>
+        </u-popup>
+
+        <!-- 日期选择器 -->
+        <u-datetime-picker
+            ref="datetimePicker"
+            v-model="birthDateValue"
+            mode="date"
+            :show="birthDatePickerShow"
+            @confirm="onBirthDateConfirm"
+            @cancel="birthDatePickerShow = false"
+        ></u-datetime-picker>
+    </view>
 </template>
 
 <script>
-import { getDict } from '@/common/dict.js'
-import { request } from '@/common/request.js'
-import { getCollegeList, getMajorsByCollegeId } from '@/api/enrollment.js'
+import { getDict } from '@/common/dict.js';
+import { request } from '@/common/request.js';
+import { getCollegeList, getMajorsByCollegeId } from '@/api/enrollment.js';
 
 export default {
-  name: 'EnrollmentIndex',
-  data() {
-    return {
-      // 表单数据
-      formData: {
-        name: '',
-        idCard: '',
-        gender: '',
-        birthDate: '',
-        phone1: '',
-        phone2: '',
-        nation: '',
-        isBoarding: '',
-        healthStatus: '',
-        homeAddress: '',
-        middleSchool: '',
-        examNumber: '',
-        examRegion: '',
-        totalScoreFull: null,
-        totalScore: null,
-        chineseScore: null,
-        mathScore: null,
-        englishScore: null,
-        scienceScore: null,
-        socialScore: null,
-        peScore: null,
-        collegeName: '',
-        collegeId: '',
-        appliedMajor: '',
-        majorCode: '',
-        uniformSize: '',
-        specialties: '',
-        awards: ''
-      },
-      
-      // 查询数据
-      queryData: {
-        idCard: '',
-        examNumber: ''
-      },
-      
-      // 加载状态
-      submitLoading: false,
-      queryLoading: false,
-      
-      // 弹窗状态
-      statusPopup: {
-        show: false
-      },
-      statusInfo: null,
-      
-      // 字典选项
-      genderOptions: [],
-      boardingOptions: [],
-      collegeOptions: [],
-      majorOptions: [],
-      uniformSizeOptions: [],
-      
-      // 选择器索引
-      genderIndex: null,
-      boardingIndex: null,
-      collegeIndex: null,
-      majorIndex: null,
-      uniformSizeIndex: null,
-      
-      // 显示文本
-      genderText: '',
-      boardingText: '',
-      collegeText: '',
-      majorText: '',
-      uniformSizeText: '',
-      
-      // 日期选择器
-      birthDateValue: Number(new Date()),
-      
-      // picker显示控制
-      genderPickerShow: false,
-      birthDatePickerShow: false,
-      boardingPickerShow: false,
-      collegePickerShow: false,
-      majorPickerShow: false,
-      uniformSizePickerShow: false,
-      
-      // picker数据格式(uview-ui 2.x 需要columns格式)
-      genderPickerColumns: [],
-      boardingPickerColumns: [],
-      collegePickerColumns: [],
-      majorPickerColumns: [],
-      uniformSizePickerColumns: [],
-      
-      // 表单验证规则
-      rules: {
-        name: [
-          { required: true, message: '姓名不能为空', trigger: 'blur' }
-        ],
-        idCard: [
-          { required: true, message: '身份证号不能为空', trigger: 'blur' },
-          { 
-            pattern: /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
-            message: '身份证号格式不正确',
-            trigger: 'blur'
-          }
-        ],
-        gender: [
-          { required: true, message: '性别不能为空', trigger: 'change' }
-        ],
-        phone1: [
-          { required: true, message: '联系电话不能为空', trigger: 'blur' },
-          { pattern: /^1[3-9]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }
-        ],
-        phone2: [
-          { pattern: /^1[3-9]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }
-        ],
-        collegeName: [
-          { required: true, message: '所属学院不能为空', trigger: 'change' }
-        ],
-        appliedMajor: [
-          { required: true, message: '报考专业不能为空', trigger: 'change' }
-        ]
-      }
-    }
-  },
-  
-  async onLoad() {
-    try {
-      console.log('🚀 开始页面初始化...')
-      
-      // 先初始化兜底数据,确保页面能正常显示
-      this.initDefaultDictData()
-      this.initDefaultCollegeData()
-      
-      console.log('✅ 兜底数据初始化完成:', {
-        genderOptions: this.genderOptions.length,
-        collegeOptions: this.collegeOptions.length,
-        majorOptions: this.majorOptions.length
-      })
-      
-      // 并行加载数据,即使部分失败也不影响页面显示
-      const results = await Promise.allSettled([
-        this.initDictData(),
-        this.loadCollegeOptions(),
-        this.initMajorOptions()
-      ])
-      
-      console.log('📋 异步数据加载结果:', results)
-      
-      console.log('📋 页面数据初始化完成')
-      console.log('当前数据状态:', {
-        genderOptions: this.genderOptions,
-        collegeOptions: this.collegeOptions,
-        majorOptions: this.majorOptions,
-        boardingOptions: this.boardingOptions,
-        uniformSizeOptions: this.uniformSizeOptions
-      })
-      
-      // 检查picker组件是否能正常显示
-      console.log('Picker组件数据检查:', {
-        '性别数据长度': this.genderOptions.length,
-        '学院数据长度': this.collegeOptions.length,
-        '专业数据长度': this.majorOptions.length
-      })
-      
-      // 强制更新视图确保数据正确显示
-      this.$forceUpdate()
-      
-      console.log('✅ 页面初始化完成,准备就绪')
-    } catch (error) {
-      console.error('❌ 页面初始化失败:', error)
-      // 确保使用兜底数据
-      this.initDefaultDictData()
-      this.initDefaultCollegeData()
-      this.$forceUpdate()
-    }
-  },
-  
-  methods: {
-    // 初始化picker数据格式
-    initPickerColumns() {
-      console.log('🔧 开始初始化picker数据格式...')
-      
-      // 性别picker数据
-      if (this.genderOptions && this.genderOptions.length > 0) {
-        this.genderPickerColumns = [this.genderOptions.map(item => item.label)]
-      }
-      
-      // 住宿picker数据
-      if (this.boardingOptions && this.boardingOptions.length > 0) {
-        this.boardingPickerColumns = [this.boardingOptions.map(item => item.label)]
-        console.log('住宿picker数据初始化:', {
-          boardingOptions: this.boardingOptions,
-          boardingPickerColumns: this.boardingPickerColumns
-        })
-      } else {
-        console.warn('住宿选项为空,无法初始化picker数据')
-      }
-      
-      // 学院picker数据
-      if (this.collegeOptions && this.collegeOptions.length > 0) {
-        this.collegePickerColumns = [this.collegeOptions.map(item => item.deptName)]
-      }
-      
-      // 专业picker数据
-      if (this.majorOptions && this.majorOptions.length > 0) {
-        this.majorPickerColumns = [this.majorOptions.map(item => item.label)]
-      }
-      
-      // 校服尺码picker数据
-      if (this.uniformSizeOptions && this.uniformSizeOptions.length > 0) {
-        this.uniformSizePickerColumns = [this.uniformSizeOptions.map(item => item.label)]
-      }
-      
-      console.log('✅ Picker columns初始化完成:', {
-        genderPickerColumns: this.genderPickerColumns,
-        boardingPickerColumns: this.boardingPickerColumns,
-        collegePickerColumns: this.collegePickerColumns,
-        majorPickerColumns: this.majorPickerColumns,
-        uniformSizePickerColumns: this.uniformSizePickerColumns
-      })
-    },
-    
-    // 初始化字典数据
-    async initDictData() {
-      try {
-        // 获取性别字典
-        const genderDict = await getDict('zsjy_gender')
-        if (genderDict && genderDict.length > 0) {
-          // 确保字典数据格式正确
-          this.genderOptions = genderDict.map(item => ({
-            value: item.dictValue || item.value,
-            label: item.dictLabel || item.label
-          }))
-        } else {
-          this.genderOptions = [
-            { value: 'M', label: '男' },
-            { value: 'F', label: '女' }
-          ]
-        }
-        
-        // 获取是否住宿字典
-        const boardingDict = await getDict('sys_yes_no')
-        if (boardingDict && boardingDict.length > 0) {
-          this.boardingOptions = boardingDict.map(item => ({
-            value: item.dictValue || item.value,
-            label: item.dictLabel || item.label
-          }))
-        } else {
-          this.boardingOptions = [
-            { value: 'Y', label: '是' },
-            { value: 'N', label: '否' }
-          ]
-        }
-        
-        // 获取校服尺码字典
-        const uniformSizeDict = await getDict('zsjy_uniform_size')
-        if (uniformSizeDict && uniformSizeDict.length > 0) {
-          this.uniformSizeOptions = uniformSizeDict.map(item => ({
-            value: item.dictValue || item.value,
-            label: item.dictLabel || item.label
-          }))
-        } else {
-          // 使用与web端一致的标准尺码格式(兜底数据)
-          this.uniformSizeOptions = [
-            { value: '150/84A', label: '150/84A(身高150cm)' },
-            { value: '155/86A', label: '155/86A(身高155cm)' },
-            { value: '160/88A', label: '160/88A(身高160cm)' },
-            { value: '165/90A', label: '165/90A(身高165cm)' },
-            { value: '170/92A', label: '170/92A(身高170cm)' },
-            { value: '175/94A', label: '175/94A(身高175cm)' },
-            { value: '180/96A', label: '180/96A(身高180cm)' },
-            { value: '185/98A', label: '185/98A(身高185cm)' },
-            { value: '190/100A', label: '190/100A(身高190cm)' }
-          ]
-        }
-        
-        console.log('字典数据加载完成:', {
-          gender: this.genderOptions,
-          boarding: this.boardingOptions,
-          uniformSize: this.uniformSizeOptions
-        })
-        
-        // 初始化picker columns数据
-        this.initPickerColumns()
-      } catch (error) {
-        console.error('字典数据加载失败:', error)
-        this.initDefaultDictData()
-        // 即使失败也要初始化picker columns
-        this.initPickerColumns()
-      }
-    },
-    
-    // 初始化默认字典数据(兜底)
-    initDefaultDictData() {
-      this.genderOptions = [
-        { value: 'M', label: '男' },
-        { value: 'F', label: '女' }
-      ]
-      
-      this.boardingOptions = [
-        { value: 'Y', label: '是' },
-        { value: 'N', label: '否' }
-      ]
-      
-      this.uniformSizeOptions = [
-        { value: '150/84A', label: '150/84A(身高150cm)' },
-        { value: '155/86A', label: '155/86A(身高155cm)' },
-        { value: '160/88A', label: '160/88A(身高160cm)' },
-        { value: '165/90A', label: '165/90A(身高165cm)' },
-        { value: '170/92A', label: '170/92A(身高170cm)' },
-        { value: '175/94A', label: '175/94A(身高175cm)' },
-        { value: '180/96A', label: '180/96A(身高180cm)' },
-        { value: '185/98A', label: '185/98A(身高185cm)' },
-        { value: '190/100A', label: '190/100A(身高190cm)' }
-      ]
-      
-      console.log('✅ 已使用默认字典数据(兜底方案)')
-      
-      // 强制更新picker columns
-      this.$nextTick(() => {
-        this.initPickerColumns()
-      })
-    },
+    name: 'EnrollmentIndex',
+    data() {
+        return {
+            // 表单数据
+            formData: {
+                name: '',
+                idCard: '',
+                gender: '',
+                birthDate: '',
+                phone1: '',
+                phone2: '',
+                nation: '',
+                isBoarding: '',
+                healthStatus: '',
+                homeAddress: '',
+                middleSchool: '',
+                examNumber: '',
+                examRegion: '',
+                totalScoreFull: null,
+                totalScore: null,
+                chineseScore: null,
+                mathScore: null,
+                englishScore: null,
+                scienceScore: null,
+                socialScore: null,
+                peScore: null,
+                collegeName: '',
+                collegeId: '',
+                appliedMajor: '',
+                majorCode: '',
+                uniformSize: '',
+                specialties: '',
+                awards: '',
+            },
 
-    // 初始化默认学院数据(兜底)
-    initDefaultCollegeData() {
-      this.collegeOptions = [
-        { deptId: 1, deptName: '机械工程学院', deptCategory: 'JX' },
-        { deptId: 2, deptName: '电气工程学院', deptCategory: 'DQ' },
-        { deptId: 3, deptName: '信息工程学院', deptCategory: 'XX' },
-        { deptId: 4, deptName: '经济管理学院', deptCategory: 'JG' },
-        { deptId: 5, deptName: '建筑工程学院', deptCategory: 'JZ' }
-      ]
-      
-      this.majorOptions = [
-        { value: 'GYJQR', label: '工业机器人应用与维护', majorCode: 'GYJQR' },
-        { value: 'DQZDHSB', label: '电气自动化设备安装与维修', majorCode: 'DQZDHSB' },
-        { value: 'WRJYY', label: '无人机应用技术', majorCode: 'WRJYY' },
-        { value: 'GYHLW', label: '工业互联网与大数据应用', majorCode: 'GYHLW' },
-        { value: 'SZHSJ', label: '数字化设计与制造', majorCode: 'SZHSJ' }
-      ]
-      
-      console.log('✅ 已初始化默认学院和专业数据(兜底方案)')
-    },
-    
-    // 加载学院数据
-    async loadCollegeOptions() {
-      try {
-        const response = await getCollegeList()
-        if (response && response.data) {
-          // 适配后端返回的XgSysDeptVo数据结构
-          this.collegeOptions = response.data.map(item => ({
-            deptId: item.deptId,
-            deptName: item.deptName,
-            deptCategory: item.deptCategory || item.deptId.toString()
-          }))
-          console.log('学院数据加载成功:', this.collegeOptions)
-        } else {
-          throw new Error('API返回数据为空')
-        }
-      } catch (error) {
-        console.error('学院数据加载失败:', error)
-        // 设置兜底学院数据
-        this.collegeOptions = [
-          { deptId: 1, deptName: '机械工程学院', deptCategory: 'JX' },
-          { deptId: 2, deptName: '电气工程学院', deptCategory: 'DQ' },
-          { deptId: 3, deptName: '信息工程学院', deptCategory: 'XX' },
-          { deptId: 4, deptName: '经济管理学院', deptCategory: 'JG' },
-          { deptId: 5, deptName: '建筑工程学院', deptCategory: 'JZ' }
-        ]
-        console.log('✅ 已使用默认学院数据(兜底方案)')
-      }
-      
-      // 更新学院picker的columns数据
-      this.collegePickerColumns = [this.collegeOptions.map(item => item.deptName)]
-      console.log('学院picker columns更新完成:', this.collegePickerColumns)
-    },
+            // 查询数据
+            queryData: {
+                idCard: '',
+                examNumber: '',
+            },
 
-    // 初始化专业选项
-    async initMajorOptions() {
-      try {
-        // 先尝试从字典获取专业数据
-        const majorDict = await getDict('zsjy_major')
-        if (majorDict && majorDict.length > 0) {
-          this.majorOptions = majorDict.map(item => ({
-            value: item.value,
-            label: item.label,
-            majorCode: item.value
-          }))
-        } else {
-          // 使用默认专业选项(兜底)
-          this.majorOptions = [
-            { value: 'DQZDHSB', label: '电气自动化设备安装与维修', majorCode: 'DQZDHSB' },
-            { value: 'GYJQR', label: '工业机器人应用与维护', majorCode: 'GYJQR' },
-            { value: 'WRJYY', label: '无人机应用技术', majorCode: 'WRJYY' },
-            { value: 'GYHLW', label: '工业互联网与大数据应用', majorCode: 'GYHLW' },
-            { value: 'SZHSJ', label: '数字化设计与制造', majorCode: 'SZHSJ' },
-            { value: 'ZNZZ', label: '智能制作技术应用', majorCode: 'ZNZZ' },
-            { value: 'QCWX', label: '汽车维修', majorCode: 'QCWX' },
-            { value: 'CPJC', label: '产品检测与质量控制', majorCode: 'CPJC' },
-            { value: 'ZY', label: '中药', majorCode: 'ZY' },
-            { value: 'YWZJ_YB', label: '药物制剂(预备技师)', majorCode: 'YWZJ_YB' },
-            { value: 'YWZJ_GJ', label: '药物制剂(高级工)', majorCode: 'YWZJ_GJ' },
-            { value: 'YPYX', label: '药品营销', majorCode: 'YPYX' },
-            { value: 'JKFW', label: '健康服务与管理', majorCode: 'JKFW' },
-            { value: 'YLJS_YB', label: '园林技术(预备技师)', majorCode: 'YLJS_YB' },
-            { value: 'YLJS_GJ', label: '园林技术(高级工)', majorCode: 'YLJS_GJ' },
-            { value: 'YLJS_JG', label: '园林技术(园林景观与工程施工)', majorCode: 'YLJS_JG' },
-            { value: 'HJYS', label: '环境艺术设计', majorCode: 'HJYS' },
-            { value: 'JDGL_YB', label: '酒店管理(预备技师)', majorCode: 'JDGL_YB' },
-            { value: 'JDGL_GJ', label: '酒店管理(高级工)', majorCode: 'JDGL_GJ' },
-            { value: 'PR_ZS', label: '烹饪(中式烹调)', majorCode: 'PR_ZS' },
-            { value: 'PR_MD', label: '烹饪(中西式面点)', majorCode: 'PR_MD' },
-            { value: 'DZSW', label: '电子商务', majorCode: 'DZSW' },
-            { value: 'SZMT', label: '数字媒体技术应用', majorCode: 'SZMT' },
-            { value: 'RGZN', label: '人工智能技术应用', majorCode: 'RGZN' },
-            { value: 'WLXX', label: '网络与信息安全', majorCode: 'WLXX' },
-            { value: 'MSSJ', label: '美术设计与制作', majorCode: 'MSSJ' }
-          ]
-        }
-        
-        console.log('专业选项加载完成:', this.majorOptions)
-      } catch (error) {
-        console.error('专业选项加载失败:', error)
-        // 确保有兜底的专业数据
-        if (!this.majorOptions || this.majorOptions.length === 0) {
-          this.majorOptions = [
-            { value: 'DQZDHSB', label: '电气自动化设备安装与维修', majorCode: 'DQZDHSB', collegeId: 2 },
-            { value: 'GYJQR', label: '工业机器人应用与维护', majorCode: 'GYJQR', collegeId: 1 },
-            { value: 'WRJYY', label: '无人机应用技术', majorCode: 'WRJYY', collegeId: 3 },
-            { value: 'GYHLW', label: '工业互联网与大数据应用', majorCode: 'GYHLW', collegeId: 3 },
-            { value: 'SZHSJ', label: '数字化设计与制造', majorCode: 'SZHSJ', collegeId: 1 }
-          ]
-          console.log('✅ 已使用默认专业数据(兜底方案)')
-        }
-      }
+            // 加载状态
+            submitLoading: false,
+            queryLoading: false,
+
+            // 弹窗状态
+            statusPopup: {
+                show: false,
+            },
+            statusInfo: null,
+
+            // 字典选项
+            genderOptions: [],
+            boardingOptions: [],
+            collegeOptions: [],
+            majorOptions: [],
+            uniformSizeOptions: [],
+
+            // 选择器索引
+            genderIndex: null,
+            boardingIndex: null,
+            collegeIndex: null,
+            majorIndex: null,
+            uniformSizeIndex: null,
+
+            // 显示文本
+            genderText: '',
+            boardingText: '',
+            collegeText: '',
+            majorText: '',
+            uniformSizeText: '',
+
+            // 日期选择器
+            birthDateValue: Number(new Date()),
+
+            // picker显示控制
+            genderPickerShow: false,
+            birthDatePickerShow: false,
+            boardingPickerShow: false,
+            collegePickerShow: false,
+            majorPickerShow: false,
+            uniformSizePickerShow: false,
+
+            // picker数据格式(uview-ui 2.x 需要columns格式)
+            genderPickerColumns: [],
+            boardingPickerColumns: [],
+            collegePickerColumns: [],
+            majorPickerColumns: [],
+            uniformSizePickerColumns: [],
+
+            // 表单验证规则
+            rules: {
+                name: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
+                idCard: [
+                    { required: true, message: '身份证号不能为空', trigger: 'blur' },
+                    {
+                        pattern:
+                            /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
+                        message: '身份证号格式不正确',
+                        trigger: 'blur',
+                    },
+                ],
+                gender: [{ required: true, message: '性别不能为空', trigger: 'change' }],
+                phone1: [
+                    { required: true, message: '联系电话不能为空', trigger: 'blur' },
+                    { pattern: /^1[3-9]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' },
+                ],
+                phone2: [
+                    { pattern: /^1[3-9]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' },
+                ],
+                collegeName: [{ required: true, message: '所属学院不能为空', trigger: 'change' }],
+                appliedMajor: [{ required: true, message: '报考专业不能为空', trigger: 'change' }],
+            },
+        };
     },
-    
-    // 身份证号变化处理
-    onIdCardChange() {
-      const idCard = this.formData.idCard
-      console.log('身份证号变化:', idCard)
-      if (idCard && idCard.length === 18) {
+
+    async onLoad() {
         try {
-          // 提取出生日期
-          const year = idCard.substring(6, 10)
-          const month = idCard.substring(10, 12)
-          const day = idCard.substring(12, 14)
-          this.formData.birthDate = `${year}-${month}-${day}`
-          
-          // 更新出生日期显示值
-          this.birthDateValue = new Date(`${year}-${month}-${day}`).getTime()
-          
-          // 提取性别(奇数为男,偶数为女)
-          const genderCode = parseInt(idCard.substring(16, 17))
-          const genderValue = genderCode % 2 === 1 ? 'M' : 'F'
-          
-          // 更新性别选择
-          console.log('查找性别选项:', { 
-            genderValue, 
-            genderOptions: this.genderOptions,
-            genderOptionsLength: this.genderOptions.length 
-          })
-          
-          // 确保性别选项已经初始化
-          if (this.genderOptions.length === 0) {
-            console.warn('性别选项未初始化,使用默认选项')
-            this.genderOptions = [
-              { value: 'M', label: '男' },
-              { value: 'F', label: '女' }
-            ]
-          }
-          
-          const genderIndex = this.genderOptions.findIndex(item => item.value === genderValue)
-          console.log('找到性别索引:', genderIndex)
-          if (genderIndex !== -1) {
-            this.genderIndex = genderIndex
-            this.formData.gender = genderValue
-            this.genderText = this.genderOptions[genderIndex].label
-            console.log('性别更新成功:', { genderIndex, gender: genderValue, genderText: this.genderText })
-            
-            // 强制更新视图
-            this.$nextTick(() => {
-              this.$forceUpdate()
-            })
-          } else {
-            console.warn('未找到匹配的性别选项:', genderValue, '可用选项:', this.genderOptions)
-          }
-          
-          console.log('身份证信息解析成功:', {
-            birthDate: this.formData.birthDate,
-            gender: this.formData.gender,
-            genderText: this.genderText,
-            birthDateValue: this.birthDateValue,
-            genderIndex: this.genderIndex
-          })
-          
-          // 强制更新视图
-          this.$forceUpdate()
-          
+            console.log('🚀 开始页面初始化...');
+
+            // 先初始化兜底数据,确保页面能正常显示
+            this.initDefaultDictData();
+            this.initDefaultCollegeData();
+
+            console.log('✅ 兜底数据初始化完成:', {
+                genderOptions: this.genderOptions.length,
+                collegeOptions: this.collegeOptions.length,
+                majorOptions: this.majorOptions.length,
+            });
+
+            // 并行加载数据,即使部分失败也不影响页面显示
+            const results = await Promise.allSettled([
+                this.initDictData(),
+                this.loadCollegeOptions(),
+                this.initMajorOptions(),
+            ]);
+
+            console.log('📋 异步数据加载结果:', results);
+
+            console.log('📋 页面数据初始化完成');
+            console.log('当前数据状态:', {
+                genderOptions: this.genderOptions,
+                collegeOptions: this.collegeOptions,
+                majorOptions: this.majorOptions,
+                boardingOptions: this.boardingOptions,
+                uniformSizeOptions: this.uniformSizeOptions,
+            });
+
+            // 检查picker组件是否能正常显示
+            console.log('Picker组件数据检查:', {
+                性别数据长度: this.genderOptions.length,
+                学院数据长度: this.collegeOptions.length,
+                专业数据长度: this.majorOptions.length,
+            });
+
+            // 强制更新视图确保数据正确显示
+            this.$forceUpdate();
+
+            console.log('✅ 页面初始化完成,准备就绪');
         } catch (error) {
-          console.error('解析身份证信息时出错:', error)
-        }
-      }
-    },
-    
-    // 显示性别选择器
-    showGenderPicker() {
-      this.genderPickerShow = true
-      console.log('显示性别选择器')
-    },
-    
-    // 显示出生日期选择器
-    showBirthDatePicker() {
-      this.birthDatePickerShow = true
-      console.log('显示出生日期选择器')
-    },
-    
-    // 性别选择确认
-    onGenderConfirm(e) {
-      console.log('性别选择确认:', e)
-      const { indexs, value } = e
-      if (indexs && indexs.length > 0) {
-        const index = indexs[0]
-        if (this.genderOptions[index]) {
-          this.formData.gender = this.genderOptions[index].value
-          this.genderText = this.genderOptions[index].label
-          console.log('性别选择成功:', {
-            gender: this.formData.gender,
-            genderText: this.genderText
-          })
+            console.error('❌ 页面初始化失败:', error);
+            // 确保使用兜底数据
+            this.initDefaultDictData();
+            this.initDefaultCollegeData();
+            this.$forceUpdate();
         }
-      }
-      this.genderPickerShow = false
-    },
-    
-    // 出生日期变化
-    onBirthDateChange(e) {
-      this.birthDateValue = e.value
-      this.formData.birthDate = this.formatDate(new Date(e.value))
-    },
-    
-    // 出生日期确认
-    onBirthDateConfirm(e) {
-      console.log('出生日期选择确认:', e)
-      this.birthDateValue = e.value
-      this.formData.birthDate = this.formatDate(new Date(e.value))
-      this.birthDatePickerShow = false
-      console.log('出生日期选择成功:', {
-        birthDateValue: this.birthDateValue,
-        birthDate: this.formData.birthDate
-      })
-    },
-    
-    // 显示住宿选择器
-    showBoardingPicker() {
-      console.log('🔥 showBoardingPicker 被调用了!')
-      console.log('准备显示住宿选择器', {
-        boardingOptions: this.boardingOptions,
-        boardingPickerColumns: this.boardingPickerColumns,
-        boardingPickerShow: this.boardingPickerShow
-      })
-      
-      // 如果住宿选项为空,先使用默认数据
-      if (!this.boardingOptions || this.boardingOptions.length === 0) {
-        console.log('住宿选项为空,使用默认数据')
-        this.boardingOptions = [
-          { value: 'Y', label: '是' },
-          { value: 'N', label: '否' }
-        ]
-      }
-      
-      // 确保picker数据存在
-      if (!this.boardingPickerColumns || this.boardingPickerColumns.length === 0) {
-        console.log('住宿选择器数据未初始化,正在初始化...')
-        this.initPickerColumns()
-      }
-      
-      // 再次检查数据是否正确
-      console.log('最终的picker数据:', {
-        boardingPickerColumns: this.boardingPickerColumns,
-        columnsLength: this.boardingPickerColumns?.length,
-        firstColumn: this.boardingPickerColumns?.[0]
-      })
-      
-      this.boardingPickerShow = true
-      console.log('✅ 住宿选择器显示状态已设置为 true')
-      
-      // 使用 $nextTick 确保视图更新
-      this.$nextTick(() => {
-        console.log('视图更新后的 boardingPickerShow:', this.boardingPickerShow)
-      })
-    },
-    
-    // 住宿选择确认
-    onBoardingConfirm(e) {
-      console.log('住宿选择确认:', e)
-      const { indexs, value } = e
-      if (indexs && indexs.length > 0) {
-        const index = indexs[0]
-        if (this.boardingOptions[index]) {
-          this.formData.isBoarding = this.boardingOptions[index].value
-          this.boardingText = this.boardingOptions[index].label
-          console.log('住宿选择成功:', {
-            isBoarding: this.formData.isBoarding,
-            boardingText: this.boardingText
-          })
-        }
-      }
-      this.boardingPickerShow = false
-    },
-    
-    // 显示学院选择器
-    showCollegePicker() {
-      console.log('🎓 showCollegePicker 被调用了!')
-      
-      // 如果学院选项为空,先确保数据存在
-      if (!this.collegeOptions || this.collegeOptions.length === 0) {
-        console.log('学院选项为空,尝试重新加载...')
-        this.loadCollegeOptions().then(() => {
-          this.collegePickerShow = true
-        })
-      } else {
-        // 确保picker数据存在并重新初始化
-        if (!this.collegePickerColumns || this.collegePickerColumns.length === 0) {
-          this.initPickerColumns()
-        }
-        
-        this.collegePickerShow = true
-      }
-      
-      console.log('学院选择器状态:', {
-        collegePickerShow: this.collegePickerShow,
-        collegeOptions: this.collegeOptions.length,
-        collegePickerColumns: this.collegePickerColumns
-      })
-    },
-    
-    // 学院选择确认
-    onCollegeConfirm(e) {
-      console.log('学院选择确认:', e)
-      const { indexs, value } = e
-      if (indexs && indexs.length > 0) {
-        const index = indexs[0]
-        if (this.collegeOptions[index]) {
-          const college = this.collegeOptions[index]
-          this.formData.collegeName = college.deptName
-          this.formData.collegeId = college.deptCategory || college.deptId
-          this.collegeText = college.deptName
-          
-          console.log('学院选择成功:', {
-            collegeName: this.formData.collegeName,
-            collegeId: this.formData.collegeId,
-            collegeText: this.collegeText
-          })
-          
-          // 根据学院加载对应的专业
-          this.loadMajorsByCollegeId(college.deptId)
-          
-          // 清空专业选择
-          this.formData.appliedMajor = ''
-          this.formData.majorCode = ''
-          this.majorText = ''
-          this.majorIndex = null
-        }
-      }
-      this.collegePickerShow = false
     },
 
-    // 根据学院ID加载专业
-    async loadMajorsByCollegeId(collegeId) {
-      try {
-        console.log('🔄 开始加载学院专业数据, collegeId:', collegeId)
-        
-        const response = await getMajorsByCollegeId(collegeId)
-        if (response && response.data && response.data.length > 0) {
-          // 适配后端返回的XgSysDeptVo数据结构
-          this.majorOptions = response.data.map(major => ({
-            value: major.deptId,
-            label: major.deptName,
-            majorCode: major.deptCategory || major.deptId.toString(),
-            deptId: major.deptId,
-            deptName: major.deptName,
-            deptCategory: major.deptCategory
-          }))
-          console.log('✅ 专业数据加载成功:', this.majorOptions)
-        } else {
-          console.log('⚠️ 后端未返回专业数据,使用兜底数据')
-          this.majorOptions = []
-        }
-      } catch (error) {
-        console.error('❌ 专业数据加载失败:', error)
-        this.majorOptions = []
-      }
-      
-      // 如果API加载失败或无数据,使用兜底专业数据
-      if (!this.majorOptions || this.majorOptions.length === 0) {
-        const defaultMajors = this.getDefaultMajorsByCollegeId(collegeId)
-        this.majorOptions = defaultMajors
-        console.log('✅ 已使用默认专业数据(兜底方案):', defaultMajors)
-      }
-      
-      // 更新专业picker的columns数据
-      this.majorPickerColumns = [this.majorOptions.map(item => item.label)]
-      console.log('✅ 专业picker columns更新完成:', {
-        majorOptions: this.majorOptions.length,
-        majorPickerColumns: this.majorPickerColumns
-      })
-      
-      // 强制更新视图以确保数据显示
-      this.$forceUpdate()
-    },
+    methods: {
+        // 初始化picker数据格式
+        initPickerColumns() {
+            console.log('🔧 开始初始化picker数据格式...');
 
-    // 根据学院ID获取默认专业数据
-    getDefaultMajorsByCollegeId(collegeId) {
-      const majorsByCollege = {
-        1: [ // 机械工程学院
-          { value: 'GYJQR', label: '工业机器人应用与维护', majorCode: 'GYJQR' },
-          { value: 'SZHSJ', label: '数字化设计与制造', majorCode: 'SZHSJ' },
-          { value: 'QCWX', label: '汽车维修', majorCode: 'QCWX' }
-        ],
-        2: [ // 电气工程学院
-          { value: 'DQZDHSB', label: '电气自动化设备安装与维修', majorCode: 'DQZDHSB' },
-          { value: 'ZNZZ', label: '智能制作技术应用', majorCode: 'ZNZZ' }
-        ],
-        3: [ // 信息工程学院
-          { value: 'WRJYY', label: '无人机应用技术', majorCode: 'WRJYY' },
-          { value: 'GYHLW', label: '工业互联网与大数据应用', majorCode: 'GYHLW' },
-          { value: 'RGZN', label: '人工智能技术应用', majorCode: 'RGZN' }
-        ],
-        4: [ // 经济管理学院
-          { value: 'DZSW', label: '电子商务', majorCode: 'DZSW' },
-          { value: 'JDGL_GJ', label: '酒店管理(高级工)', majorCode: 'JDGL_GJ' }
-        ],
-        5: [ // 建筑工程学院
-          { value: 'YLJS_GJ', label: '园林技术(高级工)', majorCode: 'YLJS_GJ' },
-          { value: 'HJYS', label: '环境艺术设计', majorCode: 'HJYS' }
-        ]
-      }
-      
-      return majorsByCollege[collegeId] || []
-    },
+            // 性别picker数据
+            if (this.genderOptions && this.genderOptions.length > 0) {
+                this.genderPickerColumns = [this.genderOptions.map((item) => item.label)];
+            }
 
-    // 显示专业选择器
-    showMajorPicker() {
-      console.log('🎓 showMajorPicker 被调用了!')
-      
-      // 检查是否已选择学院
-      if (!this.formData.collegeId || !this.formData.collegeName) {
-        uni.showToast({
-          title: '请先选择所属学院',
-          icon: 'none',
-          duration: 2000
-        })
-        console.log('❌ 未选择学院,无法选择专业')
-        return
-      }
-      
-      // 检查专业数据是否存在
-      if (!this.majorOptions || this.majorOptions.length === 0) {
-        console.log('专业选项为空,尝试重新加载...')
-        // 根据当前选择的学院重新加载专业数据
-        const collegeOption = this.collegeOptions.find(c => c.deptName === this.formData.collegeName)
-        if (collegeOption) {
-          this.loadMajorsByCollegeId(collegeOption.deptId).then(() => {
-            if (this.majorOptions.length > 0) {
-              this.majorPickerShow = true
+            // 住宿picker数据
+            if (this.boardingOptions && this.boardingOptions.length > 0) {
+                this.boardingPickerColumns = [this.boardingOptions.map((item) => item.label)];
+                console.log('住宿picker数据初始化:', {
+                    boardingOptions: this.boardingOptions,
+                    boardingPickerColumns: this.boardingPickerColumns,
+                });
             } else {
-              uni.showToast({
-                title: '该学院暂无可选专业',
-                icon: 'none'
-              })
+                console.warn('住宿选项为空,无法初始化picker数据');
             }
-          })
-        } else {
-          uni.showToast({
-            title: '学院信息异常,请重新选择学院',
-            icon: 'none'
-          })
-        }
-        return
-      }
-      
-      // 确保picker数据存在并重新初始化
-      if (!this.majorPickerColumns || this.majorPickerColumns.length === 0) {
-        this.majorPickerColumns = [this.majorOptions.map(item => item.label)]
-      }
-      
-      this.majorPickerShow = true
-      
-      console.log('专业选择器状态:', {
-        majorPickerShow: this.majorPickerShow,
-        majorOptions: this.majorOptions.length,
-        majorPickerColumns: this.majorPickerColumns,
-        currentCollege: this.formData.collegeName
-      })
-    },
-    
-    // 专业选择确认
-    onMajorConfirm(e) {
-      console.log('🎓 专业选择确认:', e)
-      const { indexs, value } = e
-      
-      if (indexs && indexs.length > 0) {
-        const index = indexs[0]
-        
-        if (this.majorOptions && this.majorOptions[index]) {
-          const selectedMajor = this.majorOptions[index]
-          
-          // 更新表单数据
-          this.formData.appliedMajor = selectedMajor.label
-          this.formData.majorCode = selectedMajor.majorCode
-          this.majorText = selectedMajor.label
-          
-          console.log('✅ 专业选择成功:', {
-            index: index,
-            selectedMajor: selectedMajor,
-            appliedMajor: this.formData.appliedMajor,
-            majorCode: this.formData.majorCode,
-            majorText: this.majorText
-          })
-          
-          // 显示选择成功提示
-          uni.showToast({
-            title: `已选择: ${selectedMajor.label}`,
-            icon: 'success',
-            duration: 1500
-          })
-        } else {
-          console.error('❌ 专业选择失败: 找不到对应的专业选项', {
-            index: index,
-            majorOptionsLength: this.majorOptions ? this.majorOptions.length : 0
-          })
-          
-          uni.showToast({
-            title: '专业选择失败,请重试',
-            icon: 'none'
-          })
-        }
-      } else {
-        console.error('❌ 专业选择失败: 未获取到有效的索引', e)
-      }
-      
-      this.majorPickerShow = false
-    },
-    
-    // 显示校服尺码选择器
-    showUniformSizePicker() {
-      console.log('👕 showUniformSizePicker 被调用了!')
-      
-      // 检查校服尺码数据是否存在
-      if (!this.uniformSizeOptions || this.uniformSizeOptions.length === 0) {
-        console.log('⚠️ 校服尺码选项为空,尝试重新初始化...')
-        
-        // 使用与web端一致的标准尺码数据
-        this.uniformSizeOptions = [
-          { value: '150/84A', label: '150/84A(身高150cm)' },
-          { value: '155/86A', label: '155/86A(身高155cm)' },
-          { value: '160/88A', label: '160/88A(身高160cm)' },
-          { value: '165/90A', label: '165/90A(身高165cm)' },
-          { value: '170/92A', label: '170/92A(身高170cm)' },
-          { value: '175/94A', label: '175/94A(身高175cm)' },
-          { value: '180/96A', label: '180/96A(身高180cm)' },
-          { value: '185/98A', label: '185/98A(身高185cm)' },
-          { value: '190/100A', label: '190/100A(身高190cm)' }
-        ]
-        
-        console.log('✅ 已使用默认校服尺码数据:', this.uniformSizeOptions)
-      }
-      
-      // 确保picker数据存在并重新初始化
-      if (!this.uniformSizePickerColumns || this.uniformSizePickerColumns.length === 0) {
-        this.uniformSizePickerColumns = [this.uniformSizeOptions.map(item => item.label)]
-      }
-      
-      this.uniformSizePickerShow = true
-      
-      console.log('校服尺码选择器状态:', {
-        uniformSizePickerShow: this.uniformSizePickerShow,
-        uniformSizeOptions: this.uniformSizeOptions.length,
-        uniformSizePickerColumns: this.uniformSizePickerColumns
-      })
-    },
-    
-    // 校服尺码选择确认
-    onUniformSizeConfirm(e) {
-      console.log('👕 校服尺码选择确认:', e)
-      const { indexs, value } = e
-      
-      if (indexs && indexs.length > 0) {
-        const index = indexs[0]
-        
-        if (this.uniformSizeOptions && this.uniformSizeOptions[index]) {
-          const selectedSize = this.uniformSizeOptions[index]
-          
-          // 更新表单数据
-          this.formData.uniformSize = selectedSize.value
-          this.uniformSizeText = selectedSize.label
-          
-          console.log('✅ 校服尺码选择成功:', {
-            index: index,
-            selectedSize: selectedSize,
-            uniformSize: this.formData.uniformSize,
-            uniformSizeText: this.uniformSizeText
-          })
-          
-          // 显示选择成功提示
-          uni.showToast({
-            title: `已选择尺码: ${selectedSize.label}`,
-            icon: 'success',
-            duration: 1500
-          })
-        } else {
-          console.error('❌ 校服尺码选择失败: 找不到对应的尺码选项', {
-            index: index,
-            uniformSizeOptionsLength: this.uniformSizeOptions ? this.uniformSizeOptions.length : 0
-          })
-          
-          uni.showToast({
-            title: '尺码选择失败,请重试',
-            icon: 'none'
-          })
-        }
-      } else {
-        console.error('❌ 校服尺码选择失败: 未获取到有效的索引', e)
-      }
-      
-      this.uniformSizePickerShow = false
-    },
-    
-    // 提交报名申请
-    async submitApplication() {
-      try {
-        // 表单验证
-        const valid = await this.$refs.enrollmentForm.validate()
-        if (!valid) {
-          return
-        }
-        
-        this.submitLoading = true
-        
-        // 处理是否住宿字段,将"Y"/"N"转换为1/0
-        const submitData = { ...this.formData }
-        if (submitData.isBoarding === 'Y') {
-          submitData.isBoarding = 1
-        } else if (submitData.isBoarding === 'N') {
-          submitData.isBoarding = 0
-        }
-        
-        // 调用提交接口
-        const response = await request({
-          url: '/zsjy/enrollment/info/submit',
-          method: 'POST',
-          data: submitData,
-          header: {
-            isToken: false // 不需要登录token
-          }
-        })
-        
-        uni.showToast({
-          title: '报名申请提交成功!',
-          icon: 'success'
-        })
-        
+
+            // 学院picker数据
+            if (this.collegeOptions && this.collegeOptions.length > 0) {
+                this.collegePickerColumns = [this.collegeOptions.map((item) => item.deptName)];
+            }
+
+            // 专业picker数据
+            if (this.majorOptions && this.majorOptions.length > 0) {
+                this.majorPickerColumns = [this.majorOptions.map((item) => item.label)];
+            }
+
+            // 校服尺码picker数据
+            if (this.uniformSizeOptions && this.uniformSizeOptions.length > 0) {
+                this.uniformSizePickerColumns = [this.uniformSizeOptions.map((item) => item.label)];
+            }
+
+            console.log('✅ Picker columns初始化完成:', {
+                genderPickerColumns: this.genderPickerColumns,
+                boardingPickerColumns: this.boardingPickerColumns,
+                collegePickerColumns: this.collegePickerColumns,
+                majorPickerColumns: this.majorPickerColumns,
+                uniformSizePickerColumns: this.uniformSizePickerColumns,
+            });
+        },
+
+        // 初始化字典数据
+        async initDictData() {
+            try {
+                // 获取性别字典
+                const genderDict = await getDict('zsjy_gender');
+                if (genderDict && genderDict.length > 0) {
+                    // 确保字典数据格式正确
+                    this.genderOptions = genderDict.map((item) => ({
+                        value: item.dictValue || item.value,
+                        label: item.dictLabel || item.label,
+                    }));
+                } else {
+                    this.genderOptions = [
+                        { value: 'M', label: '男' },
+                        { value: 'F', label: '女' },
+                    ];
+                }
+
+                // 获取是否住宿字典
+                const boardingDict = await getDict('sys_yes_no');
+                if (boardingDict && boardingDict.length > 0) {
+                    this.boardingOptions = boardingDict.map((item) => ({
+                        value: item.dictValue || item.value,
+                        label: item.dictLabel || item.label,
+                    }));
+                } else {
+                    this.boardingOptions = [
+                        { value: 'Y', label: '是' },
+                        { value: 'N', label: '否' },
+                    ];
+                }
+
+                // 获取校服尺码字典
+                const uniformSizeDict = await getDict('zsjy_uniform_size');
+                if (uniformSizeDict && uniformSizeDict.length > 0) {
+                    this.uniformSizeOptions = uniformSizeDict.map((item) => ({
+                        value: item.dictValue || item.value,
+                        label: item.dictLabel || item.label,
+                    }));
+                } else {
+                    // 使用与web端一致的标准尺码格式(兜底数据)
+                    this.uniformSizeOptions = [
+                        { value: '150/84A', label: '150/84A(身高150cm)' },
+                        { value: '155/86A', label: '155/86A(身高155cm)' },
+                        { value: '160/88A', label: '160/88A(身高160cm)' },
+                        { value: '165/90A', label: '165/90A(身高165cm)' },
+                        { value: '170/92A', label: '170/92A(身高170cm)' },
+                        { value: '175/94A', label: '175/94A(身高175cm)' },
+                        { value: '180/96A', label: '180/96A(身高180cm)' },
+                        { value: '185/98A', label: '185/98A(身高185cm)' },
+                        { value: '190/100A', label: '190/100A(身高190cm)' },
+                    ];
+                }
+
+                console.log('字典数据加载完成:', {
+                    gender: this.genderOptions,
+                    boarding: this.boardingOptions,
+                    uniformSize: this.uniformSizeOptions,
+                });
+
+                // 初始化picker columns数据
+                this.initPickerColumns();
+            } catch (error) {
+                console.error('字典数据加载失败:', error);
+                this.initDefaultDictData();
+                // 即使失败也要初始化picker columns
+                this.initPickerColumns();
+            }
+        },
+
+        // 初始化默认字典数据(兜底)
+        initDefaultDictData() {
+            this.genderOptions = [
+                { value: 'M', label: '男' },
+                { value: 'F', label: '女' },
+            ];
+
+            this.boardingOptions = [
+                { value: 'Y', label: '是' },
+                { value: 'N', label: '否' },
+            ];
+
+            this.uniformSizeOptions = [
+                { value: '150/84A', label: '150/84A(身高150cm)' },
+                { value: '155/86A', label: '155/86A(身高155cm)' },
+                { value: '160/88A', label: '160/88A(身高160cm)' },
+                { value: '165/90A', label: '165/90A(身高165cm)' },
+                { value: '170/92A', label: '170/92A(身高170cm)' },
+                { value: '175/94A', label: '175/94A(身高175cm)' },
+                { value: '180/96A', label: '180/96A(身高180cm)' },
+                { value: '185/98A', label: '185/98A(身高185cm)' },
+                { value: '190/100A', label: '190/100A(身高190cm)' },
+            ];
+
+            console.log('✅ 已使用默认字典数据(兜底方案)');
+
+            // 强制更新picker columns
+            this.$nextTick(() => {
+                this.initPickerColumns();
+            });
+        },
+
+        // 初始化默认学院数据(兜底)
+        initDefaultCollegeData() {
+            this.collegeOptions = [
+                { deptId: 1, deptName: '机械工程学院', deptCategory: 'JX' },
+                { deptId: 2, deptName: '电气工程学院', deptCategory: 'DQ' },
+                { deptId: 3, deptName: '信息工程学院', deptCategory: 'XX' },
+                { deptId: 4, deptName: '经济管理学院', deptCategory: 'JG' },
+                { deptId: 5, deptName: '建筑工程学院', deptCategory: 'JZ' },
+            ];
+
+            this.majorOptions = [
+                { value: 'GYJQR', label: '工业机器人应用与维护', majorCode: 'GYJQR' },
+                { value: 'DQZDHSB', label: '电气自动化设备安装与维修', majorCode: 'DQZDHSB' },
+                { value: 'WRJYY', label: '无人机应用技术', majorCode: 'WRJYY' },
+                { value: 'GYHLW', label: '工业互联网与大数据应用', majorCode: 'GYHLW' },
+                { value: 'SZHSJ', label: '数字化设计与制造', majorCode: 'SZHSJ' },
+            ];
+
+            console.log('✅ 已初始化默认学院和专业数据(兜底方案)');
+        },
+
+        // 加载学院数据
+        async loadCollegeOptions() {
+            try {
+                const response = await getCollegeList();
+                if (response && response.data) {
+                    // 适配后端返回的XgSysDeptVo数据结构
+                    this.collegeOptions = response.data.map((item) => ({
+                        deptId: item.deptId,
+                        deptName: item.deptName,
+                        deptCategory: item.deptCategory || item.deptId.toString(),
+                    }));
+                    console.log('学院数据加载成功:', this.collegeOptions);
+                } else {
+                    throw new Error('API返回数据为空');
+                }
+            } catch (error) {
+                console.error('学院数据加载失败:', error);
+                // 设置兜底学院数据
+                this.collegeOptions = [
+                    { deptId: 1, deptName: '机械工程学院', deptCategory: 'JX' },
+                    { deptId: 2, deptName: '电气工程学院', deptCategory: 'DQ' },
+                    { deptId: 3, deptName: '信息工程学院', deptCategory: 'XX' },
+                    { deptId: 4, deptName: '经济管理学院', deptCategory: 'JG' },
+                    { deptId: 5, deptName: '建筑工程学院', deptCategory: 'JZ' },
+                ];
+                console.log('✅ 已使用默认学院数据(兜底方案)');
+            }
+
+            // 更新学院picker的columns数据
+            this.collegePickerColumns = [this.collegeOptions.map((item) => item.deptName)];
+            console.log('学院picker columns更新完成:', this.collegePickerColumns);
+        },
+
+        // 初始化专业选项
+        async initMajorOptions() {
+            try {
+                // 先尝试从字典获取专业数据
+                const majorDict = await getDict('zsjy_major');
+                if (majorDict && majorDict.length > 0) {
+                    this.majorOptions = majorDict.map((item) => ({
+                        value: item.value,
+                        label: item.label,
+                        majorCode: item.value,
+                    }));
+                } else {
+                    // 使用默认专业选项(兜底)
+                    this.majorOptions = [
+                        {
+                            value: 'DQZDHSB',
+                            label: '电气自动化设备安装与维修',
+                            majorCode: 'DQZDHSB',
+                        },
+                        { value: 'GYJQR', label: '工业机器人应用与维护', majorCode: 'GYJQR' },
+                        { value: 'WRJYY', label: '无人机应用技术', majorCode: 'WRJYY' },
+                        { value: 'GYHLW', label: '工业互联网与大数据应用', majorCode: 'GYHLW' },
+                        { value: 'SZHSJ', label: '数字化设计与制造', majorCode: 'SZHSJ' },
+                        { value: 'ZNZZ', label: '智能制作技术应用', majorCode: 'ZNZZ' },
+                        { value: 'QCWX', label: '汽车维修', majorCode: 'QCWX' },
+                        { value: 'CPJC', label: '产品检测与质量控制', majorCode: 'CPJC' },
+                        { value: 'ZY', label: '中药', majorCode: 'ZY' },
+                        { value: 'YWZJ_YB', label: '药物制剂(预备技师)', majorCode: 'YWZJ_YB' },
+                        { value: 'YWZJ_GJ', label: '药物制剂(高级工)', majorCode: 'YWZJ_GJ' },
+                        { value: 'YPYX', label: '药品营销', majorCode: 'YPYX' },
+                        { value: 'JKFW', label: '健康服务与管理', majorCode: 'JKFW' },
+                        { value: 'YLJS_YB', label: '园林技术(预备技师)', majorCode: 'YLJS_YB' },
+                        { value: 'YLJS_GJ', label: '园林技术(高级工)', majorCode: 'YLJS_GJ' },
+                        {
+                            value: 'YLJS_JG',
+                            label: '园林技术(园林景观与工程施工)',
+                            majorCode: 'YLJS_JG',
+                        },
+                        { value: 'HJYS', label: '环境艺术设计', majorCode: 'HJYS' },
+                        { value: 'JDGL_YB', label: '酒店管理(预备技师)', majorCode: 'JDGL_YB' },
+                        { value: 'JDGL_GJ', label: '酒店管理(高级工)', majorCode: 'JDGL_GJ' },
+                        { value: 'PR_ZS', label: '烹饪(中式烹调)', majorCode: 'PR_ZS' },
+                        { value: 'PR_MD', label: '烹饪(中西式面点)', majorCode: 'PR_MD' },
+                        { value: 'DZSW', label: '电子商务', majorCode: 'DZSW' },
+                        { value: 'SZMT', label: '数字媒体技术应用', majorCode: 'SZMT' },
+                        { value: 'RGZN', label: '人工智能技术应用', majorCode: 'RGZN' },
+                        { value: 'WLXX', label: '网络与信息安全', majorCode: 'WLXX' },
+                        { value: 'MSSJ', label: '美术设计与制作', majorCode: 'MSSJ' },
+                    ];
+                }
+
+                console.log('专业选项加载完成:', this.majorOptions);
+            } catch (error) {
+                console.error('专业选项加载失败:', error);
+                // 确保有兜底的专业数据
+                if (!this.majorOptions || this.majorOptions.length === 0) {
+                    this.majorOptions = [
+                        {
+                            value: 'DQZDHSB',
+                            label: '电气自动化设备安装与维修',
+                            majorCode: 'DQZDHSB',
+                            collegeId: 2,
+                        },
+                        {
+                            value: 'GYJQR',
+                            label: '工业机器人应用与维护',
+                            majorCode: 'GYJQR',
+                            collegeId: 1,
+                        },
+                        {
+                            value: 'WRJYY',
+                            label: '无人机应用技术',
+                            majorCode: 'WRJYY',
+                            collegeId: 3,
+                        },
+                        {
+                            value: 'GYHLW',
+                            label: '工业互联网与大数据应用',
+                            majorCode: 'GYHLW',
+                            collegeId: 3,
+                        },
+                        {
+                            value: 'SZHSJ',
+                            label: '数字化设计与制造',
+                            majorCode: 'SZHSJ',
+                            collegeId: 1,
+                        },
+                    ];
+                    console.log('✅ 已使用默认专业数据(兜底方案)');
+                }
+            }
+        },
+
+        // 身份证号变化处理
+        onIdCardChange() {
+            const idCard = this.formData.idCard;
+            console.log('身份证号变化:', idCard);
+            if (idCard && idCard.length === 18) {
+                try {
+                    // 提取出生日期
+                    const year = idCard.substring(6, 10);
+                    const month = idCard.substring(10, 12);
+                    const day = idCard.substring(12, 14);
+                    this.formData.birthDate = `${year}-${month}-${day}`;
+
+                    // 更新出生日期显示值
+                    this.birthDateValue = new Date(`${year}-${month}-${day}`).getTime();
+
+                    // 提取性别(奇数为男,偶数为女)
+                    const genderCode = parseInt(idCard.substring(16, 17));
+                    const genderValue = genderCode % 2 === 1 ? 'M' : 'F';
+
+                    // 更新性别选择
+                    console.log('查找性别选项:', {
+                        genderValue,
+                        genderOptions: this.genderOptions,
+                        genderOptionsLength: this.genderOptions.length,
+                    });
+
+                    // 确保性别选项已经初始化
+                    if (this.genderOptions.length === 0) {
+                        console.warn('性别选项未初始化,使用默认选项');
+                        this.genderOptions = [
+                            { value: 'M', label: '男' },
+                            { value: 'F', label: '女' },
+                        ];
+                    }
+
+                    const genderIndex = this.genderOptions.findIndex(
+                        (item) => item.value === genderValue,
+                    );
+                    console.log('找到性别索引:', genderIndex);
+                    if (genderIndex !== -1) {
+                        this.genderIndex = genderIndex;
+                        this.formData.gender = genderValue;
+                        this.genderText = this.genderOptions[genderIndex].label;
+                        console.log('性别更新成功:', {
+                            genderIndex,
+                            gender: genderValue,
+                            genderText: this.genderText,
+                        });
+
+                        // 强制更新视图
+                        this.$nextTick(() => {
+                            this.$forceUpdate();
+                        });
+                    } else {
+                        console.warn(
+                            '未找到匹配的性别选项:',
+                            genderValue,
+                            '可用选项:',
+                            this.genderOptions,
+                        );
+                    }
+
+                    console.log('身份证信息解析成功:', {
+                        birthDate: this.formData.birthDate,
+                        gender: this.formData.gender,
+                        genderText: this.genderText,
+                        birthDateValue: this.birthDateValue,
+                        genderIndex: this.genderIndex,
+                    });
+
+                    // 强制更新视图
+                    this.$forceUpdate();
+                } catch (error) {
+                    console.error('解析身份证信息时出错:', error);
+                }
+            }
+        },
+
+        // 显示性别选择器
+        showGenderPicker() {
+            this.genderPickerShow = true;
+            console.log('显示性别选择器');
+        },
+
+        // 显示出生日期选择器
+        showBirthDatePicker() {
+            this.birthDatePickerShow = true;
+            console.log('显示出生日期选择器');
+        },
+
+        // 性别选择确认
+        onGenderConfirm(e) {
+            console.log('性别选择确认:', e);
+            const { indexs, value } = e;
+            if (indexs && indexs.length > 0) {
+                const index = indexs[0];
+                if (this.genderOptions[index]) {
+                    this.formData.gender = this.genderOptions[index].value;
+                    this.genderText = this.genderOptions[index].label;
+                    console.log('性别选择成功:', {
+                        gender: this.formData.gender,
+                        genderText: this.genderText,
+                    });
+                }
+            }
+            this.genderPickerShow = false;
+        },
+
+        // 出生日期变化
+        onBirthDateChange(e) {
+            this.birthDateValue = e.value;
+            this.formData.birthDate = this.formatDate(new Date(e.value));
+        },
+
+        // 出生日期确认
+        onBirthDateConfirm(e) {
+            console.log('出生日期选择确认:', e);
+            this.birthDateValue = e.value;
+            this.formData.birthDate = this.formatDate(new Date(e.value));
+            this.birthDatePickerShow = false;
+            console.log('出生日期选择成功:', {
+                birthDateValue: this.birthDateValue,
+                birthDate: this.formData.birthDate,
+            });
+        },
+
+        // 显示住宿选择器
+        showBoardingPicker() {
+            console.log('🔥 showBoardingPicker 被调用了!');
+            console.log('准备显示住宿选择器', {
+                boardingOptions: this.boardingOptions,
+                boardingPickerColumns: this.boardingPickerColumns,
+                boardingPickerShow: this.boardingPickerShow,
+            });
+
+            // 如果住宿选项为空,先使用默认数据
+            if (!this.boardingOptions || this.boardingOptions.length === 0) {
+                console.log('住宿选项为空,使用默认数据');
+                this.boardingOptions = [
+                    { value: 'Y', label: '是' },
+                    { value: 'N', label: '否' },
+                ];
+            }
+
+            // 确保picker数据存在
+            if (!this.boardingPickerColumns || this.boardingPickerColumns.length === 0) {
+                console.log('住宿选择器数据未初始化,正在初始化...');
+                this.initPickerColumns();
+            }
+
+            // 再次检查数据是否正确
+            console.log('最终的picker数据:', {
+                boardingPickerColumns: this.boardingPickerColumns,
+                columnsLength: this.boardingPickerColumns?.length,
+                firstColumn: this.boardingPickerColumns?.[0],
+            });
+
+            this.boardingPickerShow = true;
+            console.log('✅ 住宿选择器显示状态已设置为 true');
+
+            // 使用 $nextTick 确保视图更新
+            this.$nextTick(() => {
+                console.log('视图更新后的 boardingPickerShow:', this.boardingPickerShow);
+            });
+        },
+
+        // 住宿选择确认
+        onBoardingConfirm(e) {
+            console.log('住宿选择确认:', e);
+            const { indexs, value } = e;
+            if (indexs && indexs.length > 0) {
+                const index = indexs[0];
+                if (this.boardingOptions[index]) {
+                    this.formData.isBoarding = this.boardingOptions[index].value;
+                    this.boardingText = this.boardingOptions[index].label;
+                    console.log('住宿选择成功:', {
+                        isBoarding: this.formData.isBoarding,
+                        boardingText: this.boardingText,
+                    });
+                }
+            }
+            this.boardingPickerShow = false;
+        },
+
+        // 显示学院选择器
+        showCollegePicker() {
+            console.log('🎓 showCollegePicker 被调用了!');
+
+            // 如果学院选项为空,先确保数据存在
+            if (!this.collegeOptions || this.collegeOptions.length === 0) {
+                console.log('学院选项为空,尝试重新加载...');
+                this.loadCollegeOptions().then(() => {
+                    this.collegePickerShow = true;
+                });
+            } else {
+                // 确保picker数据存在并重新初始化
+                if (!this.collegePickerColumns || this.collegePickerColumns.length === 0) {
+                    this.initPickerColumns();
+                }
+
+                this.collegePickerShow = true;
+            }
+
+            console.log('学院选择器状态:', {
+                collegePickerShow: this.collegePickerShow,
+                collegeOptions: this.collegeOptions.length,
+                collegePickerColumns: this.collegePickerColumns,
+            });
+        },
+
+        // 学院选择确认
+        onCollegeConfirm(e) {
+            console.log('学院选择确认:', e);
+            const { indexs, value } = e;
+            if (indexs && indexs.length > 0) {
+                const index = indexs[0];
+                if (this.collegeOptions[index]) {
+                    const college = this.collegeOptions[index];
+                    this.formData.collegeName = college.deptName;
+                    this.formData.collegeId = college.deptCategory || college.deptId;
+                    this.collegeText = college.deptName;
+
+                    console.log('学院选择成功:', {
+                        collegeName: this.formData.collegeName,
+                        collegeId: this.formData.collegeId,
+                        collegeText: this.collegeText,
+                    });
+
+                    // 根据学院加载对应的专业
+                    this.loadMajorsByCollegeId(college.deptId);
+
+                    // 清空专业选择
+                    this.formData.appliedMajor = '';
+                    this.formData.majorCode = '';
+                    this.majorText = '';
+                    this.majorIndex = null;
+                }
+            }
+            this.collegePickerShow = false;
+        },
+
+        // 根据学院ID加载专业
+        async loadMajorsByCollegeId(collegeId) {
+            try {
+                console.log('🔄 开始加载学院专业数据, collegeId:', collegeId);
+
+                const response = await getMajorsByCollegeId(collegeId);
+                if (response && response.data && response.data.length > 0) {
+                    // 适配后端返回的XgSysDeptVo数据结构
+                    this.majorOptions = response.data.map((major) => ({
+                        value: major.deptId,
+                        label: major.deptName,
+                        majorCode: major.deptCategory || major.deptId.toString(),
+                        deptId: major.deptId,
+                        deptName: major.deptName,
+                        deptCategory: major.deptCategory,
+                    }));
+                    console.log('✅ 专业数据加载成功:', this.majorOptions);
+                } else {
+                    console.log('⚠️ 后端未返回专业数据,使用兜底数据');
+                    this.majorOptions = [];
+                }
+            } catch (error) {
+                console.error('❌ 专业数据加载失败:', error);
+                this.majorOptions = [];
+            }
+
+            // 如果API加载失败或无数据,使用兜底专业数据
+            if (!this.majorOptions || this.majorOptions.length === 0) {
+                const defaultMajors = this.getDefaultMajorsByCollegeId(collegeId);
+                this.majorOptions = defaultMajors;
+                console.log('✅ 已使用默认专业数据(兜底方案):', defaultMajors);
+            }
+
+            // 更新专业picker的columns数据
+            this.majorPickerColumns = [this.majorOptions.map((item) => item.label)];
+            console.log('✅ 专业picker columns更新完成:', {
+                majorOptions: this.majorOptions.length,
+                majorPickerColumns: this.majorPickerColumns,
+            });
+
+            // 强制更新视图以确保数据显示
+            this.$forceUpdate();
+        },
+
+        // 根据学院ID获取默认专业数据
+        getDefaultMajorsByCollegeId(collegeId) {
+            const majorsByCollege = {
+                1: [
+                    // 机械工程学院
+                    { value: 'GYJQR', label: '工业机器人应用与维护', majorCode: 'GYJQR' },
+                    { value: 'SZHSJ', label: '数字化设计与制造', majorCode: 'SZHSJ' },
+                    { value: 'QCWX', label: '汽车维修', majorCode: 'QCWX' },
+                ],
+                2: [
+                    // 电气工程学院
+                    { value: 'DQZDHSB', label: '电气自动化设备安装与维修', majorCode: 'DQZDHSB' },
+                    { value: 'ZNZZ', label: '智能制作技术应用', majorCode: 'ZNZZ' },
+                ],
+                3: [
+                    // 信息工程学院
+                    { value: 'WRJYY', label: '无人机应用技术', majorCode: 'WRJYY' },
+                    { value: 'GYHLW', label: '工业互联网与大数据应用', majorCode: 'GYHLW' },
+                    { value: 'RGZN', label: '人工智能技术应用', majorCode: 'RGZN' },
+                ],
+                4: [
+                    // 经济管理学院
+                    { value: 'DZSW', label: '电子商务', majorCode: 'DZSW' },
+                    { value: 'JDGL_GJ', label: '酒店管理(高级工)', majorCode: 'JDGL_GJ' },
+                ],
+                5: [
+                    // 建筑工程学院
+                    { value: 'YLJS_GJ', label: '园林技术(高级工)', majorCode: 'YLJS_GJ' },
+                    { value: 'HJYS', label: '环境艺术设计', majorCode: 'HJYS' },
+                ],
+            };
+
+            return majorsByCollege[collegeId] || [];
+        },
+
+        // 显示专业选择器
+        showMajorPicker() {
+            console.log('🎓 showMajorPicker 被调用了!');
+
+            // 检查是否已选择学院
+            if (!this.formData.collegeId || !this.formData.collegeName) {
+                uni.showToast({
+                    title: '请先选择所属学院',
+                    icon: 'none',
+                    duration: 2000,
+                });
+                console.log('❌ 未选择学院,无法选择专业');
+                return;
+            }
+
+            // 检查专业数据是否存在
+            if (!this.majorOptions || this.majorOptions.length === 0) {
+                console.log('专业选项为空,尝试重新加载...');
+                // 根据当前选择的学院重新加载专业数据
+                const collegeOption = this.collegeOptions.find(
+                    (c) => c.deptName === this.formData.collegeName,
+                );
+                if (collegeOption) {
+                    this.loadMajorsByCollegeId(collegeOption.deptId).then(() => {
+                        if (this.majorOptions.length > 0) {
+                            this.majorPickerShow = true;
+                        } else {
+                            uni.showToast({
+                                title: '该学院暂无可选专业',
+                                icon: 'none',
+                            });
+                        }
+                    });
+                } else {
+                    uni.showToast({
+                        title: '学院信息异常,请重新选择学院',
+                        icon: 'none',
+                    });
+                }
+                return;
+            }
+
+            // 确保picker数据存在并重新初始化
+            if (!this.majorPickerColumns || this.majorPickerColumns.length === 0) {
+                this.majorPickerColumns = [this.majorOptions.map((item) => item.label)];
+            }
+
+            this.majorPickerShow = true;
+
+            console.log('专业选择器状态:', {
+                majorPickerShow: this.majorPickerShow,
+                majorOptions: this.majorOptions.length,
+                majorPickerColumns: this.majorPickerColumns,
+                currentCollege: this.formData.collegeName,
+            });
+        },
+
+        // 专业选择确认
+        onMajorConfirm(e) {
+            console.log('🎓 专业选择确认:', e);
+            const { indexs, value } = e;
+
+            if (indexs && indexs.length > 0) {
+                const index = indexs[0];
+
+                if (this.majorOptions && this.majorOptions[index]) {
+                    const selectedMajor = this.majorOptions[index];
+
+                    // 更新表单数据
+                    this.formData.appliedMajor = selectedMajor.label;
+                    this.formData.majorCode = selectedMajor.majorCode;
+                    this.majorText = selectedMajor.label;
+
+                    console.log('✅ 专业选择成功:', {
+                        index: index,
+                        selectedMajor: selectedMajor,
+                        appliedMajor: this.formData.appliedMajor,
+                        majorCode: this.formData.majorCode,
+                        majorText: this.majorText,
+                    });
+
+                    // 显示选择成功提示
+                    uni.showToast({
+                        title: `已选择: ${selectedMajor.label}`,
+                        icon: 'success',
+                        duration: 1500,
+                    });
+                } else {
+                    console.error('❌ 专业选择失败: 找不到对应的专业选项', {
+                        index: index,
+                        majorOptionsLength: this.majorOptions ? this.majorOptions.length : 0,
+                    });
+
+                    uni.showToast({
+                        title: '专业选择失败,请重试',
+                        icon: 'none',
+                    });
+                }
+            } else {
+                console.error('❌ 专业选择失败: 未获取到有效的索引', e);
+            }
+
+            this.majorPickerShow = false;
+        },
+
+        // 显示校服尺码选择器
+        showUniformSizePicker() {
+            console.log('👕 showUniformSizePicker 被调用了!');
+
+            // 检查校服尺码数据是否存在
+            if (!this.uniformSizeOptions || this.uniformSizeOptions.length === 0) {
+                console.log('⚠️ 校服尺码选项为空,尝试重新初始化...');
+
+                // 使用与web端一致的标准尺码数据
+                this.uniformSizeOptions = [
+                    { value: '150/84A', label: '150/84A(身高150cm)' },
+                    { value: '155/86A', label: '155/86A(身高155cm)' },
+                    { value: '160/88A', label: '160/88A(身高160cm)' },
+                    { value: '165/90A', label: '165/90A(身高165cm)' },
+                    { value: '170/92A', label: '170/92A(身高170cm)' },
+                    { value: '175/94A', label: '175/94A(身高175cm)' },
+                    { value: '180/96A', label: '180/96A(身高180cm)' },
+                    { value: '185/98A', label: '185/98A(身高185cm)' },
+                    { value: '190/100A', label: '190/100A(身高190cm)' },
+                ];
+
+                console.log('✅ 已使用默认校服尺码数据:', this.uniformSizeOptions);
+            }
+
+            // 确保picker数据存在并重新初始化
+            if (!this.uniformSizePickerColumns || this.uniformSizePickerColumns.length === 0) {
+                this.uniformSizePickerColumns = [this.uniformSizeOptions.map((item) => item.label)];
+            }
+
+            this.uniformSizePickerShow = true;
+
+            console.log('校服尺码选择器状态:', {
+                uniformSizePickerShow: this.uniformSizePickerShow,
+                uniformSizeOptions: this.uniformSizeOptions.length,
+                uniformSizePickerColumns: this.uniformSizePickerColumns,
+            });
+        },
+
+        // 校服尺码选择确认
+        onUniformSizeConfirm(e) {
+            console.log('👕 校服尺码选择确认:', e);
+            const { indexs, value } = e;
+
+            if (indexs && indexs.length > 0) {
+                const index = indexs[0];
+
+                if (this.uniformSizeOptions && this.uniformSizeOptions[index]) {
+                    const selectedSize = this.uniformSizeOptions[index];
+
+                    // 更新表单数据
+                    this.formData.uniformSize = selectedSize.value;
+                    this.uniformSizeText = selectedSize.label;
+
+                    console.log('✅ 校服尺码选择成功:', {
+                        index: index,
+                        selectedSize: selectedSize,
+                        uniformSize: this.formData.uniformSize,
+                        uniformSizeText: this.uniformSizeText,
+                    });
+
+                    // 显示选择成功提示
+                    uni.showToast({
+                        title: `已选择尺码: ${selectedSize.label}`,
+                        icon: 'success',
+                        duration: 1500,
+                    });
+                } else {
+                    console.error('❌ 校服尺码选择失败: 找不到对应的尺码选项', {
+                        index: index,
+                        uniformSizeOptionsLength: this.uniformSizeOptions
+                            ? this.uniformSizeOptions.length
+                            : 0,
+                    });
+
+                    uni.showToast({
+                        title: '尺码选择失败,请重试',
+                        icon: 'none',
+                    });
+                }
+            } else {
+                console.error('❌ 校服尺码选择失败: 未获取到有效的索引', e);
+            }
+
+            this.uniformSizePickerShow = false;
+        },
+
+        // 提交报名申请
+        async submitApplication() {
+            try {
+                // 表单验证
+                const valid = await this.$refs.enrollmentForm.validate();
+                if (!valid) {
+                    return;
+                }
+
+                this.submitLoading = true;
+
+                // 处理是否住宿字段,将"Y"/"N"转换为1/0
+                const submitData = { ...this.formData };
+                if (submitData.isBoarding === 'Y') {
+                    submitData.isBoarding = 1;
+                } else if (submitData.isBoarding === 'N') {
+                    submitData.isBoarding = 0;
+                }
+
+                // 调用提交接口
+                const response = await request({
+                    url: '/zsjy/enrollment/info/submit',
+                    method: 'POST',
+                    data: submitData,
+                    header: {
+                        isToken: false, // 不需要登录token
+                    },
+                });
+
+                uni.showToast({
+                    title: '报名申请提交成功!',
+                    icon: 'success',
+                });
+
+                // 重置表单
+                this.resetForm();
+            } catch (error) {
+                console.error('提交失败:', error);
+                uni.showToast({
+                    title: error.msg || '提交失败,请稍后重试',
+                    icon: 'none',
+                });
+            } finally {
+                this.submitLoading = false;
+            }
+        },
+
         // 重置表单
-        this.resetForm()
-        
-      } catch (error) {
-        console.error('提交失败:', error)
-        uni.showToast({
-          title: error.msg || '提交失败,请稍后重试',
-          icon: 'none'
-        })
-      } finally {
-        this.submitLoading = false
-      }
-    },
-    
-    // 重置表单
-    resetForm() {
-      // 重置表单数据
-      this.formData = {
-        name: '',
-        idCard: '',
-        gender: '',
-        birthDate: '',
-        phone1: '',
-        phone2: '',
-        nation: '',
-        isBoarding: '',
-        healthStatus: '',
-        homeAddress: '',
-        middleSchool: '',
-        examNumber: '',
-        examRegion: '',
-        totalScoreFull: null,
-        totalScore: null,
-        chineseScore: null,
-        mathScore: null,
-        englishScore: null,
-        scienceScore: null,
-        socialScore: null,
-        peScore: null,
-        collegeName: '',
-        collegeId: '',
-        appliedMajor: '',
-        majorCode: '',
-        uniformSize: '',
-        specialties: '',
-        awards: ''
-      }
-      
-      // 重置选择器
-      this.genderIndex = null
-      this.boardingIndex = null
-      this.collegeIndex = null
-      this.majorIndex = null
-      this.uniformSizeIndex = null
-      
-      // 重置显示文本
-      this.genderText = ''
-      this.boardingText = ''
-      this.collegeText = ''
-      this.majorText = ''
-      this.uniformSizeText = ''
-      
-      // 重置表单验证
-      this.$refs.enrollmentForm.resetFields()
-    },
-    
-    // 查询报名状态
-    async queryStatus() {
-      if (!this.queryData.idCard && !this.queryData.examNumber) {
-        uni.showToast({
-          title: '请输入身份证号或准考证号',
-          icon: 'none'
-        })
-        return
-      }
-      
-      try {
-        this.queryLoading = true
-        
-        const response = await request({
-          url: '/zsjy/enrollment/info/myStatus',
-          method: 'GET',
-          params: {
-            idCard: this.queryData.idCard,
-            examNumber: this.queryData.examNumber
-          },
-          header: {
-            isToken: false // 不需要登录token
-          }
-        })
-        
-        if (response.data) {
-          this.statusInfo = response.data
-          this.statusPopup.show = true
-        } else {
-          uni.showToast({
-            title: '未找到相关报名信息',
-            icon: 'none'
-          })
-        }
-        
-      } catch (error) {
-        console.error('查询失败:', error)
-        uni.showToast({
-          title: error.msg || '查询失败,请稍后重试',
-          icon: 'none'
-        })
-      } finally {
-        this.queryLoading = false
-      }
-    },
-    
-    // 格式化日期
-    formatDate(date) {
-      if (!date) return ''
-      const year = date.getFullYear()
-      const month = String(date.getMonth() + 1).padStart(2, '0')
-      const day = String(date.getDate()).padStart(2, '0')
-      return `${year}-${month}-${day}`
+        resetForm() {
+            // 重置表单数据
+            this.formData = {
+                name: '',
+                idCard: '',
+                gender: '',
+                birthDate: '',
+                phone1: '',
+                phone2: '',
+                nation: '',
+                isBoarding: '',
+                healthStatus: '',
+                homeAddress: '',
+                middleSchool: '',
+                examNumber: '',
+                examRegion: '',
+                totalScoreFull: null,
+                totalScore: null,
+                chineseScore: null,
+                mathScore: null,
+                englishScore: null,
+                scienceScore: null,
+                socialScore: null,
+                peScore: null,
+                collegeName: '',
+                collegeId: '',
+                appliedMajor: '',
+                majorCode: '',
+                uniformSize: '',
+                specialties: '',
+                awards: '',
+            };
+
+            // 重置选择器
+            this.genderIndex = null;
+            this.boardingIndex = null;
+            this.collegeIndex = null;
+            this.majorIndex = null;
+            this.uniformSizeIndex = null;
+
+            // 重置显示文本
+            this.genderText = '';
+            this.boardingText = '';
+            this.collegeText = '';
+            this.majorText = '';
+            this.uniformSizeText = '';
+
+            // 重置表单验证
+            this.$refs.enrollmentForm.resetFields();
+        },
+
+        // 查询报名状态
+        async queryStatus() {
+            if (!this.queryData.idCard && !this.queryData.examNumber) {
+                uni.showToast({
+                    title: '请输入身份证号或准考证号',
+                    icon: 'none',
+                });
+                return;
+            }
+
+            try {
+                this.queryLoading = true;
+
+                const response = await request({
+                    url: '/zsjy/enrollment/info/myStatus',
+                    method: 'GET',
+                    params: {
+                        idCard: this.queryData.idCard,
+                        examNumber: this.queryData.examNumber,
+                    },
+                    header: {
+                        isToken: false, // 不需要登录token
+                    },
+                });
+
+                if (response.data) {
+                    this.statusInfo = response.data;
+                    this.statusPopup.show = true;
+                } else {
+                    uni.showToast({
+                        title: '未找到相关报名信息',
+                        icon: 'none',
+                    });
+                }
+            } catch (error) {
+                console.error('查询失败:', error);
+                uni.showToast({
+                    title: error.msg || '查询失败,请稍后重试',
+                    icon: 'none',
+                });
+            } finally {
+                this.queryLoading = false;
+            }
+        },
+
+        // 格式化日期
+        formatDate(date) {
+            if (!date) return '';
+            const year = date.getFullYear();
+            const month = String(date.getMonth() + 1).padStart(2, '0');
+            const day = String(date.getDate()).padStart(2, '0');
+            return `${year}-${month}-${day}`;
+        },
+
+        // 格式化时间
+        formatTime(time) {
+            if (!time) return '-';
+            const date = new Date(time);
+            return (
+                this.formatDate(date) +
+                ' ' +
+                String(date.getHours()).padStart(2, '0') +
+                ':' +
+                String(date.getMinutes()).padStart(2, '0') +
+                ':' +
+                String(date.getSeconds()).padStart(2, '0')
+            );
+        },
     },
-    
-    // 格式化时间
-    formatTime(time) {
-      if (!time) return '-'
-      const date = new Date(time)
-      return this.formatDate(date) + ' ' + 
-             String(date.getHours()).padStart(2, '0') + ':' +
-             String(date.getMinutes()).padStart(2, '0') + ':' +
-             String(date.getSeconds()).padStart(2, '0')
-    }
-  }
-}
+};
 </script>
 
 <style scoped>
 .enrollment-container {
-  background-color: #f8f9fa;
-  min-height: 100vh;
+    background-color: #f8f9fa;
+    min-height: 100vh;
 }
 
 .page-header {
-  background: linear-gradient(135deg, #3c9cff 0%, #5ac725 100%);
-  padding: 40rpx 30rpx;
-  text-align: center;
-  color: white;
+    background: linear-gradient(135deg, #3c9cff 0%, #5ac725 100%);
+    padding: 40rpx 30rpx;
+    text-align: center;
+    color: white;
 }
 
 .header-title {
-  font-size: 48rpx;
-  font-weight: bold;
-  margin-bottom: 20rpx;
+    font-size: 48rpx;
+    font-weight: bold;
+    margin-bottom: 20rpx;
 }
 
 .header-desc {
-  font-size: 28rpx;
-  opacity: 0.9;
+    font-size: 28rpx;
+    opacity: 0.9;
 }
 
 .required {
-  color: #ff6b6b;
-  font-weight: bold;
+    color: #ff6b6b;
+    font-weight: bold;
 }
 
 .form-container {
-  padding: 30rpx;
+    padding: 30rpx;
 }
 
 .form-section {
-  background: white;
-  border-radius: 16rpx;
-  padding: 30rpx;
-  margin-bottom: 30rpx;
-  box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.05);
+    background: white;
+    border-radius: 16rpx;
+    padding: 30rpx;
+    margin-bottom: 30rpx;
+    box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.05);
 }
 
 .section-title {
-  display: flex;
-  align-items: center;
-  margin-bottom: 30rpx;
-  padding-bottom: 20rpx;
-  border-bottom: 2rpx solid #f0f0f0;
+    display: flex;
+    align-items: center;
+    margin-bottom: 30rpx;
+    padding-bottom: 20rpx;
+    border-bottom: 2rpx solid #f0f0f0;
 }
 
 .title-text {
-  margin-left: 16rpx;
-  font-size: 32rpx;
-  font-weight: bold;
-  color: #333;
+    margin-left: 16rpx;
+    font-size: 32rpx;
+    font-weight: bold;
+    color: #333;
 }
 
 .action-buttons {
-  padding: 30rpx;
-  background: white;
-  margin-top: 30rpx;
+    padding: 30rpx;
+    background: white;
+    margin-top: 30rpx;
 }
 
 .query-card {
-  background: white;
-  border-radius: 16rpx;
-  margin: 30rpx;
-  padding: 30rpx;
-  box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.05);
+    background: white;
+    border-radius: 16rpx;
+    margin: 30rpx;
+    padding: 30rpx;
+    box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.05);
 }
 
 .query-header {
-  margin-bottom: 30rpx;
-  padding-bottom: 20rpx;
-  border-bottom: 2rpx solid #f0f0f0;
+    margin-bottom: 30rpx;
+    padding-bottom: 20rpx;
+    border-bottom: 2rpx solid #f0f0f0;
 }
 
 .query-title {
-  font-size: 32rpx;
-  font-weight: bold;
-  color: #333;
+    font-size: 32rpx;
+    font-weight: bold;
+    color: #333;
 }
 
 .query-form {
-  display: flex;
-  flex-direction: column;
+    display: flex;
+    flex-direction: column;
 }
 
 .status-popup {
-  padding: 40rpx;
+    padding: 40rpx;
 }
 
 .popup-header {
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  margin-bottom: 30rpx;
-  padding-bottom: 20rpx;
-  border-bottom: 2rpx solid #f0f0f0;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    margin-bottom: 30rpx;
+    padding-bottom: 20rpx;
+    border-bottom: 2rpx solid #f0f0f0;
 }
 
 .popup-title {
-  font-size: 32rpx;
-  font-weight: bold;
-  color: #333;
+    font-size: 32rpx;
+    font-weight: bold;
+    color: #333;
 }
 
 .status-content {
-  margin-bottom: 30rpx;
+    margin-bottom: 30rpx;
 }
 
 .status-item {
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  padding: 20rpx 0;
-  border-bottom: 1rpx solid #f0f0f0;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    padding: 20rpx 0;
+    border-bottom: 1rpx solid #f0f0f0;
 }
 
 .status-label {
-  font-size: 28rpx;
-  color: #666;
-  flex-shrink: 0;
-  width: 160rpx;
+    font-size: 28rpx;
+    color: #666;
+    flex-shrink: 0;
+    width: 160rpx;
 }
 
 .status-value {
-  font-size: 28rpx;
-  color: #333;
-  flex: 1;
-  text-align: right;
+    font-size: 28rpx;
+    color: #333;
+    flex: 1;
+    text-align: right;
 }
 
 .status-tips {
-  margin-top: 30rpx;
+    margin-top: 30rpx;
 }
 
 .popup-footer {
-  text-align: center;
-  padding-top: 20rpx;
-  border-top: 2rpx solid #f0f0f0;
+    text-align: center;
+    padding-top: 20rpx;
+    border-top: 2rpx solid #f0f0f0;
 }
 
 /* 表单项样式优化 */
 ::v-deep .u-form-item {
-  margin-bottom: 30rpx;
+    margin-bottom: 30rpx;
 }
 
 ::v-deep .u-form-item__label {
-  color: #333 !important;
-  font-weight: 500;
+    color: #333 !important;
+    font-weight: 500;
 }
 
 ::v-deep .u-input__content {
-  background-color: #f8f9fa;
-  border-radius: 12rpx;
+    background-color: #f8f9fa;
+    border-radius: 12rpx;
 }
 
 ::v-deep .u-number-box {
-  background-color: #f8f9fa;
-  border-radius: 12rpx;
+    background-color: #f8f9fa;
+    border-radius: 12rpx;
 }
 
 /* 按钮样式优化 */
 ::v-deep .u-btn {
-  border-radius: 12rpx;
-  font-weight: 500;
+    border-radius: 12rpx;
+    font-weight: 500;
 }
 
 /* 选择器样式优化 */
 ::v-deep .u-picker {
-  background-color: #f8f9fa;
-  border-radius: 12rpx;
+    background-color: #f8f9fa;
+    border-radius: 12rpx;
 }
 </style>