zlwu hai 1 ano
pai
achega
a1ae56409a

+ 2 - 1
backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgClassMsgServiceImpl.java

@@ -79,7 +79,8 @@ public class XgClassMsgServiceImpl implements IXgClassMsgService {
     private LambdaQueryWrapper<XgClassMsg> buildQueryWrapper(XgClassMsgBo bo) {
         Map<String, Object> params = bo.getParams();
         LambdaQueryWrapper<XgClassMsg> lqw = Wrappers.lambdaQuery();
-        lqw.orderByAsc(XgClassMsg::getId);
+        // lqw.orderByAsc(XgClassMsg::getId);
+        lqw.orderByDesc(XgClassMsg::getCreateTime);
         lqw.eq(bo.getCollegeId() != null, XgClassMsg::getCollegeId, bo.getCollegeId());
         lqw.eq(bo.getMajorId() != null, XgClassMsg::getMajorId, bo.getMajorId());
         lqw.like(StringUtils.isNotBlank(bo.getClassName()), XgClassMsg::getClassName, bo.getClassName());

+ 67 - 19
web/src/views/xg/xsjcxx/classmsg/classMsg/index.vue

@@ -74,9 +74,10 @@
         <el-table-column label="学院名称" align="center" prop="collegeName" />
         <el-table-column label="专业名称" align="center" prop="majorName" />
         <el-table-column label="班级名称" align="center" prop="className" />
-        <el-table-column label="班级类型" align="center" prop="classType">
+        <el-table-column label="学历层次" align="center" prop="classType">
           <template #default="scope">
-            <el-tag :type="getClassTypeTag(scope.row.classType)">{{ formatClassType(scope.row.classType) }}</el-tag>
+            <!-- <el-tag :type="getClassTypeTag(scope.row.classType)">{{ formatClassType(scope.row.classType) }}</el-tag> -->
+            <dict-tag :options="zsjy_education_level" :value="scope.row.classType" />
           </template>
         </el-table-column>
         <el-table-column label="班主任" align="center" prop="classTeacherName" />
@@ -87,7 +88,8 @@
         <el-table-column label="毕业年份" align="center" prop="graduationYear" />
         <el-table-column label="班级状态" align="center" prop="classStatus">
           <template #default="scope">
-            <el-tag :type="getClassStatusTag(scope.row.classStatus)">{{ formatClassStatus(scope.row.classStatus) }}</el-tag>
+            <!-- <el-tag :type="getClassStatusTag(scope.row.classStatus)">{{ formatClassStatus(scope.row.classStatus) }}</el-tag> -->
+            <dict-tag :options="xg_class_status" :value="scope.row.classStatus" />
           </template>
         </el-table-column>
         <el-table-column label="备注信息" align="center" prop="remark" />
@@ -159,11 +161,12 @@
         </el-form-item>
         <el-form-item label="学历层级" prop="classType">
           <el-select v-model="form.classType" placeholder="请选择学历层级" style="width: 100%">
-            <el-option label="中级工" :value="1" />
+            <el-option v-for="dict in zsjy_education_level" :key="dict.value" :label="dict.label" :value="dict.value" />
+            <!-- <el-option label="中级工" :value="1" />
             <el-option label="高级工" :value="2" />
             <el-option label="预备技师" :value="3" />
             <el-option label="技师" :value="4" />
-            <el-option label="中高职一体" :value="5" />
+            <el-option label="中高职一体" :value="5" /> -->
           </el-select>
         </el-form-item>
         <el-form-item label="年级" prop="grade">
@@ -210,8 +213,9 @@
         </el-form-item>
         <el-form-item label="是否已毕业" prop="isGraduation">
           <el-select v-model="form.isGraduation" placeholder="请选择是否已毕业" style="width: 100%">
-            <el-option label="未毕业" :value="0" />
-            <el-option label="已毕业" :value="1" />
+            <!-- <el-option label="未毕业" :value="0" />
+            <el-option label="已毕业" :value="1" /> -->
+            <el-option v-for="dict in is_graduation" :key="dict.value" :label="dict.label" :value="dict.value" />
           </el-select>
         </el-form-item>
         <el-form-item label="毕业日期" prop="graduationDate" v-if="false">
@@ -284,10 +288,11 @@
         </el-form-item>
         <el-form-item label="班级状态" prop="classStatus" v-if="false">
           <el-select v-model="form.classStatus" placeholder="请选择班级状态" style="width: 100%">
-            <el-option label="正常" :value="1" />
+            <!-- <el-option label="正常" :value="1" />
             <el-option label="暂停" :value="2" />
             <el-option label="毕业" :value="3" />
-            <el-option label="解散" :value="4" />
+            <el-option label="解散" :value="4" /> -->
+            <el-option v-for="dict in xg_class_status" :key="dict.value" :label="dict.label" :value="dict.value" />
           </el-select>
         </el-form-item>
         <el-form-item label="班级描述" prop="classDescription">
@@ -427,7 +432,55 @@ interface PageData<T, Q> {
   rules: Record<string, any[]>;
 }
 
+interface ComponentInternalInstance {
+  proxy?: any;
+}
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
+const {
+  xg_class_status,
+  is_graduation,
+  wenhuachengdu,
+  xg_political_status,
+  sys_user_sex,
+  xg_nation,
+  sys_question_category,
+  sys_item_enable,
+  sys_item_required,
+  sys_item_delete,
+  house_hold_register_type,
+  marital_status,
+  sys_yesno,
+  xg_family_economic,
+  xg_blood_type,
+  disability_type,
+  zsjy_education_level,
+  xg_training_mode,
+  admission_category,
+  student_status
+} = toRefs<any>(
+  proxy?.useDict(
+    'xg_class_status',
+    'is_graduation',
+    'wenhuachengdu',
+    'xg_political_status',
+    'sys_user_sex',
+    'xg_nation',
+    'sys_question_category',
+    'sys_item_enable',
+    'sys_item_required',
+    'sys_item_delete',
+    'house_hold_register_type',
+    'marital_status',
+    'sys_yesno',
+    'xg_family_economic',
+    'xg_blood_type',
+    'disability_type',
+    'zsjy_education_level',
+    'xg_training_mode',
+    'admission_category',
+    'student_status'
+  )
+);
 
 const classMsgList = ref<ClassMsgVO[]>([]);
 const buttonLoading = ref(false);
@@ -458,7 +511,7 @@ const initFormData: ClassMsgForm = {
   majorName: undefined,
   classCode: undefined,
   className: undefined,
-  classType: undefined,
+  classType: '4',
   grade: undefined,
   enrollmentYear: undefined,
   schoolSystem: undefined,
@@ -476,7 +529,7 @@ const initFormData: ClassMsgForm = {
   deputyMonitorId: undefined,
   deputyMonitorName: undefined,
   classStatus: 1,
-  isGraduation: 0,
+  isGraduation: '0',
   graduationDate: undefined,
   plannedCapacity: undefined,
   currentStudentCount: undefined,
@@ -671,17 +724,12 @@ const handleUpdate = async (row?: ClassMsgVO) => {
 
   // 确保classType是数字类型
   if (form.value.classType !== undefined) {
-    form.value.classType = Number(form.value.classType);
-  }
-
-  // 确保classStatus是数字类型
-  if (form.value.classStatus !== undefined) {
-    form.value.classStatus = Number(form.value.classStatus);
+    form.value.classType = String(form.value.classType);
   }
 
-  // 确保isGraduation是数字类型
+  // 确保isGraduation是字符串类型
   if (form.value.isGraduation !== undefined) {
-    form.value.isGraduation = Number(form.value.isGraduation);
+    form.value.isGraduation = String(form.value.isGraduation);
   }
 
   // 获取该学院下的专业列表

+ 116 - 51
web/src/views/xg/xsjcxx/stuMsgAudit/stuMsgDetailDialog.vue

@@ -199,8 +199,9 @@
             <el-col :span="8">
               <el-form-item label="户口类型" prop="householdRegisterType">
                 <el-select v-model="form.householdRegisterType" placeholder="请选择户口类型" disabled>
-                  <el-option label="农业" value="农业" />
-                  <el-option label="非农业" value="非农业" />
+                  <!-- <el-option label="农业" value="农业" />
+                  <el-option label="非农业" value="非农业" /> -->
+                  <el-option v-for="dict in house_hold_register_type" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -251,10 +252,11 @@
             <el-col :span="8">
               <el-form-item label="婚姻状况" prop="maritalStatus">
                 <el-select v-model="form.maritalStatus" placeholder="请选择婚姻状况" disabled>
-                  <el-option label="未婚" value="1" />
+                  <!-- <el-option label="未婚" value="1" />
                   <el-option label="已婚" value="2" />
                   <el-option label="离异" value="3" />
-                  <el-option label="丧偶" value="4" />
+                  <el-option label="丧偶" value="4" /> -->
+                  <el-option v-for="dict in marital_status" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -280,24 +282,27 @@
             <el-col :span="8">
               <el-form-item label="是否贫困生" prop="isPoorStudent">
                 <el-select v-model="form.isPoorStudent" placeholder="请选择" disabled>
-                  <el-option label="否" :value="0" />
-                  <el-option label="是" :value="1" />
+                  <!-- <el-option label="否" :value="0" />
+                  <el-option label="是" :value="1" /> -->
+                  <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="8">
               <el-form-item label="是否少数民族" prop="isMinority">
                 <el-select v-model="form.isMinority" placeholder="请选择" disabled>
-                  <el-option label="否" :value="0" />
-                  <el-option label="是" :value="1" />
+                  <!-- <el-option label="否" :value="0" />
+                  <el-option label="是" :value="1" /> -->
+                  <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="8">
               <el-form-item label="是否孤儿" prop="isOrphan">
                 <el-select v-model="form.isOrphan" placeholder="请选择" disabled>
-                  <el-option label="否" :value="0" />
-                  <el-option label="是" :value="1" />
+                  <!-- <el-option label="否" :value="0" />
+                  <el-option label="是" :value="1" /> -->
+                  <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -306,24 +311,27 @@
             <el-col :span="8">
               <el-form-item label="是否留守儿童" prop="isLeftBehindChild">
                 <el-select v-model="form.isLeftBehindChild" placeholder="请选择" disabled>
-                  <el-option label="否" :value="0" />
-                  <el-option label="是" :value="1" />
+                  <!-- <el-option label="否" :value="0" />
+                  <el-option label="是" :value="1" /> -->
+                  <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="8">
               <el-form-item label="是否独生子女" prop="isSingleChild">
                 <el-select v-model="form.isSingleChild" placeholder="请选择" disabled>
-                  <el-option label="否" :value="0" />
-                  <el-option label="是" :value="1" />
+                  <!-- <el-option label="否" :value="0" />
+                  <el-option label="是" :value="1" /> -->
+                  <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="8">
               <el-form-item label="是否低保" prop="isLowIncome">
                 <el-select v-model="form.isLowIncome" placeholder="请选择" disabled>
-                  <el-option label="否" :value="0" />
-                  <el-option label="是" :value="1" />
+                  <!-- <el-option label="否" :value="0" />
+                  <el-option label="是" :value="1" /> -->
+                  <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -332,8 +340,9 @@
             <el-col :span="8">
               <el-form-item label="是否有助学贷款" prop="hasLoan">
                 <el-select v-model="form.hasLoan" placeholder="请选择" disabled>
-                  <el-option label="否" :value="0" />
-                  <el-option label="是" :value="1" />
+                  <!-- <el-option label="否" :value="0" />
+                  <el-option label="是" :value="1" /> -->
+                  <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -449,10 +458,11 @@
             <el-col :span="8">
               <el-form-item label="家庭经济状况" prop="familyEconomicStatus">
                 <el-select v-model="form.familyEconomicStatus" placeholder="请选择家庭经济状况" disabled>
-                  <el-option label="富裕" value="富裕" />
+                  <!-- <el-option label="富裕" value="富裕" />
                   <el-option label="一般" value="一般" />
                   <el-option label="困难" value="困难" />
-                  <el-option label="特困" value="特困" />
+                  <el-option label="特困" value="特困" /> -->
+                  <el-option v-for="dict in xg_family_economic" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -482,11 +492,12 @@
             <el-col :span="8">
               <el-form-item label="血型" prop="bloodType">
                 <el-select v-model="form.bloodType" placeholder="请选择血型" disabled>
-                  <el-option label="A型" value="A" />
+                  <!-- <el-option label="A型" value="A" />
                   <el-option label="B型" value="B" />
                   <el-option label="AB型" value="AB" />
                   <el-option label="O型" value="O" />
-                  <el-option label="未知" value="未知" />
+                  <el-option label="未知" value="未知" /> -->
+                  <el-option v-for="dict in xg_blood_type" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -500,18 +511,20 @@
             <el-col :span="8">
               <el-form-item label="是否残疾" prop="isDisabled">
                 <el-select v-model="form.isDisabled" placeholder="请选择" disabled>
-                  <el-option label="否" :value="0" />
-                  <el-option label="是" :value="1" />
+                  <!-- <el-option label="否" :value="0" />
+                  <el-option label="是" :value="1" /> -->
+                  <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="8">
               <el-form-item label="残疾类型" prop="disabilityType">
                 <el-select v-model="form.disabilityType" placeholder="请选择残疾类型" disabled>
-                  <el-option label="视力残疾" value="1" />
+                  <!-- <el-option label="视力残疾" value="1" />
                   <el-option label="听力残疾" value="2" />
                   <el-option label="智力残疾" value="3" />
-                  <el-option label="其他残疾" value="9" />
+                  <el-option label="其他残疾" value="9" /> -->
+                  <el-option v-for="dict in disability_type" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -574,11 +587,12 @@
             <el-col :span="8">
               <el-form-item label="学历层次" prop="academicLevel">
                 <el-select v-model="form.academicLevel" placeholder="请选择学历层次" style="width: 100%" disabled>
-                  <el-option label="中级工" value="1" />
+                  <!-- <el-option label="中级工" value="1" />
                   <el-option label="高级工" value="2" />
                   <el-option label="预备技师" value="3" />
                   <el-option label="技师" value="4" />
-                  <el-option label="中高职一体" value="5" />
+                  <el-option label="中高职一体" value="5" /> -->
+                  <el-option v-for="dict in zsjy_education_level" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -609,19 +623,21 @@
             <el-col :span="8">
               <el-form-item label="培养方式" prop="trainingType">
                 <el-select v-model="form.trainingType" placeholder="请选择培养方式" disabled>
-                  <el-option label="全日制" value="全日制" />
+                  <!-- <el-option label="全日制" value="全日制" />
                   <el-option label="在职" value="在职" />
                   <el-option label="函授" value="函授" />
-                  <el-option label="夜大" value="夜大" />
+                  <el-option label="夜大" value="夜大" /> -->
+                  <el-option v-for="dict in xg_training_mode" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="8">
               <el-form-item label="录取类别" prop="admissionCategory">
                 <el-select v-model="form.admissionCategory" placeholder="请选择录取类别" disabled>
-                  <el-option label="统招" value="统招" />
+                  <!-- <el-option label="统招" value="统招" />
                   <el-option label="自主招生" value="自主招生" />
-                  <el-option label="专项计划" value="专项计划" />
+                  <el-option label="专项计划" value="专项计划" /> -->
+                  <el-option v-for="dict in admission_category" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -630,19 +646,21 @@
             <el-col :span="8">
               <el-form-item label="学籍状态" prop="studentStatus">
                 <el-select v-model="form.studentStatus" placeholder="请选择学籍状态" disabled>
-                  <el-option label="在籍" value="1" />
+                  <!-- <el-option label="在籍" value="1" />
                   <el-option label="休学" value="2" />
                   <el-option label="复学" value="3" />
                   <el-option label="退学" value="4" />
-                  <el-option label="毕业" value="5" />
+                  <el-option label="毕业" value="5" /> -->
+                  <el-option v-for="dict in student_status" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="8">
               <el-form-item label="是否住校" prop="isBoarder">
                 <el-select disabled v-model="form.isBoarder" placeholder="请选择">
-                  <el-option label="否" :value="0" />
-                  <el-option label="是" :value="1" />
+                  <!-- <el-option label="否" :value="0" />
+                  <el-option label="是" :value="1" /> -->
+                  <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -726,19 +744,47 @@ import request from '@/utils/request';
 const { proxy } = getCurrentInstance() as any;
 
 // 字典数据
-const { wenhuachengdu, xg_political_status, sys_user_sex, xg_nation, sys_question_category, sys_item_enable, sys_item_required, sys_item_delete } =
-  toRefs<any>(
-    proxy?.useDict(
-      'wenhuachengdu',
-      'xg_political_status',
-      'sys_user_sex',
-      'xg_nation',
-      'sys_question_category',
-      'sys_item_enable',
-      'sys_item_required',
-      'sys_item_delete'
-    )
-  );
+const {
+  house_hold_register_type,
+  marital_status,
+  sys_yesno,
+  xg_family_economic,
+  xg_blood_type,
+  disability_type,
+  zsjy_education_level,
+  xg_training_mode,
+  admission_category,
+  student_status,
+  wenhuachengdu,
+  xg_political_status,
+  sys_user_sex,
+  xg_nation,
+  sys_question_category,
+  sys_item_enable,
+  sys_item_required,
+  sys_item_delete
+} = toRefs<any>(
+  proxy?.useDict(
+    'house_hold_register_type',
+    'marital_status',
+    'sys_yesno',
+    'xg_family_economic',
+    'xg_blood_type',
+    'disability_type',
+    'zsjy_education_level',
+    'xg_training_mode',
+    'admission_category',
+    'student_status',
+    'wenhuachengdu',
+    'xg_political_status',
+    'sys_user_sex',
+    'xg_nation',
+    'sys_question_category',
+    'sys_item_enable',
+    'sys_item_required',
+    'sys_item_delete'
+  )
+);
 // Props 定义
 interface Props {
   visible: boolean;
@@ -909,6 +955,25 @@ const getUserHistoryData = async (batchId: number, userId?: number) => {
       // 将历史数据填充到表单中
       const historyData = res.data;
 
+      // 将是否字段的数值转换为字符串
+      const booleanFields = [
+        'isPoorStudent',
+        'isMinority',
+        'isOrphan',
+        'isLeftBehindChild',
+        'isSingleChild',
+        'isLowIncome',
+        'hasLoan',
+        'isDisabled',
+        'isBoarder'
+      ];
+
+      booleanFields.forEach((field) => {
+        if (historyData[field] !== undefined && historyData[field] !== null) {
+          historyData[field] = String(historyData[field]);
+        }
+      });
+
       // 遍历历史数据,将非空字段赋值给表单
       Object.keys(historyData).forEach((key) => {
         if (historyData[key] !== null && historyData[key] !== undefined && historyData[key] !== '') {
@@ -1542,8 +1607,8 @@ const handleClose = () => {
   border: 1px solid var(--el-border-color);
   border-radius: 6px;
   overflow: hidden;
-  width: 120px;
-  height: 150px;
+  /* width: 120px;
+  height: 150px; */
   display: flex;
   align-items: center;
   justify-content: center;

+ 128 - 55
web/src/views/xg/xsjcxx/stuMsgAudit/stuMsgDialog.vue

@@ -344,8 +344,9 @@
                   </el-tooltip>
                 </template>
                 <el-select v-model="form.householdRegisterType" placeholder="请选择户口类型">
-                  <el-option label="农业" value="农业" />
-                  <el-option label="非农业" value="非农业" />
+                  <!-- <el-option label="农业" value="农业" />
+                  <el-option label="非农业" value="非农业" /> -->
+                  <el-option v-for="dict in house_hold_register_type" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -451,10 +452,11 @@
                   </el-tooltip>
                 </template>
                 <el-select v-model="form.maritalStatus" placeholder="请选择婚姻状况">
-                  <el-option label="未婚" value="1" />
+                  <!-- <el-option label="未婚" value="1" />
                   <el-option label="已婚" value="2" />
                   <el-option label="离异" value="3" />
-                  <el-option label="丧偶" value="4" />
+                  <el-option label="丧偶" value="4" /> -->
+                  <el-option v-for="dict in marital_status" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -524,8 +526,9 @@
                   </el-tooltip>
                 </template>
                 <el-select v-model="form.isPoorStudent" placeholder="请选择">
-                  <el-option label="否" :value="0" />
-                  <el-option label="是" :value="1" />
+                  <!-- <el-option label="否" :value="0" />
+                  <el-option label="是" :value="1" /> -->
+                  <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -540,8 +543,9 @@
                   </el-tooltip>
                 </template>
                 <el-select v-model="form.isMinority" placeholder="请选择">
-                  <el-option label="否" :value="0" />
-                  <el-option label="是" :value="1" />
+                  <!-- <el-option label="否" :value="0" />
+                  <el-option label="是" :value="1" /> -->
+                  <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -556,8 +560,9 @@
                   </el-tooltip>
                 </template>
                 <el-select v-model="form.isOrphan" placeholder="请选择">
-                  <el-option label="否" :value="0" />
-                  <el-option label="是" :value="1" />
+                  <!-- <el-option label="否" :value="0" />
+                  <el-option label="是" :value="1" /> -->
+                  <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -578,8 +583,9 @@
                   </el-tooltip>
                 </template>
                 <el-select v-model="form.isLeftBehindChild" placeholder="请选择">
-                  <el-option label="否" :value="0" />
-                  <el-option label="是" :value="1" />
+                  <!-- <el-option label="否" :value="0" />
+                  <el-option label="是" :value="1" /> -->
+                  <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -594,8 +600,9 @@
                   </el-tooltip>
                 </template>
                 <el-select v-model="form.isSingleChild" placeholder="请选择">
-                  <el-option label="否" :value="0" />
-                  <el-option label="是" :value="1" />
+                  <!-- <el-option label="否" :value="0" />
+                  <el-option label="是" :value="1" /> -->
+                  <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -610,8 +617,9 @@
                   </el-tooltip>
                 </template>
                 <el-select v-model="form.isLowIncome" placeholder="请选择">
-                  <el-option label="否" :value="0" />
-                  <el-option label="是" :value="1" />
+                  <!-- <el-option label="否" :value="0" />
+                  <el-option label="是" :value="1" /> -->
+                  <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -628,8 +636,9 @@
                   </el-tooltip>
                 </template>
                 <el-select v-model="form.hasLoan" placeholder="请选择">
-                  <el-option label="否" :value="0" />
-                  <el-option label="是" :value="1" />
+                  <!-- <el-option label="否" :value="0" />
+                  <el-option label="是" :value="1" /> -->
+                  <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -901,10 +910,11 @@
                   </el-tooltip>
                 </template>
                 <el-select v-model="form.familyEconomicStatus" placeholder="请选择家庭经济状况">
-                  <el-option label="富裕" value="富裕" />
+                  <!-- <el-option label="富裕" value="富裕" />
                   <el-option label="一般" value="一般" />
                   <el-option label="困难" value="困难" />
-                  <el-option label="特困" value="特困" />
+                  <el-option label="特困" value="特困" /> -->
+                  <el-option v-for="dict in xg_family_economic" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -966,11 +976,12 @@
                   </el-tooltip>
                 </template>
                 <el-select v-model="form.bloodType" placeholder="请选择血型">
-                  <el-option label="A型" value="A" />
+                  <!-- <el-option label="A型" value="A" />
                   <el-option label="B型" value="B" />
                   <el-option label="AB型" value="AB" />
                   <el-option label="O型" value="O" />
-                  <el-option label="未知" value="未知" />
+                  <el-option label="未知" value="未知" /> -->
+                  <el-option v-for="dict in xg_blood_type" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -1000,8 +1011,9 @@
                   </el-tooltip>
                 </template>
                 <el-select v-model="form.isDisabled" placeholder="请选择">
-                  <el-option label="否" :value="0" />
-                  <el-option label="是" :value="1" />
+                  <!-- <el-option label="否" :value="0" />
+                  <el-option label="是" :value="1" /> -->
+                  <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -1016,10 +1028,11 @@
                   </el-tooltip>
                 </template>
                 <el-select v-model="form.disabilityType" placeholder="请选择残疾类型">
-                  <el-option label="视力残疾" value="1" />
+                  <!-- <el-option label="视力残疾" value="1" />
                   <el-option label="听力残疾" value="2" />
                   <el-option label="智力残疾" value="3" />
-                  <el-option label="其他残疾" value="9" />
+                  <el-option label="其他残疾" value="9" /> -->
+                  <el-option v-for="dict in disability_type" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -1162,11 +1175,12 @@
                   </el-tooltip>
                 </template>
                 <el-select v-model="form.academicLevel" placeholder="请选择学历层次" style="width: 100%" disabled>
-                  <el-option label="中级工" value="1" />
+                  <!-- <el-option label="中级工" value="1" />
                   <el-option label="高级工" value="2" />
                   <el-option label="预备技师" value="3" />
                   <el-option label="技师" value="4" />
-                  <el-option label="中高职一体" value="5" />
+                  <el-option label="中高职一体" value="5" /> -->
+                  <el-option v-for="dict in zsjy_education_level" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -1237,10 +1251,11 @@
                   </el-tooltip>
                 </template>
                 <el-select v-model="form.trainingType" placeholder="请选择培养方式">
-                  <el-option label="全日制" value="全日制" />
+                  <!-- <el-option label="全日制" value="全日制" />
                   <el-option label="在职" value="在职" />
                   <el-option label="函授" value="函授" />
-                  <el-option label="夜大" value="夜大" />
+                  <el-option label="夜大" value="夜大" /> -->
+                  <el-option v-for="dict in xg_training_mode" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -1259,9 +1274,10 @@
                   </el-tooltip>
                 </template>
                 <el-select v-model="form.admissionCategory" placeholder="请选择录取类别">
-                  <el-option label="统招" value="统招" />
+                  <!-- <el-option label="统招" value="统招" />
                   <el-option label="自主招生" value="自主招生" />
-                  <el-option label="专项计划" value="专项计划" />
+                  <el-option label="专项计划" value="专项计划" /> -->
+                  <el-option v-for="dict in admission_category" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -1278,19 +1294,21 @@
                   </el-tooltip>
                 </template>
                 <el-select v-model="form.studentStatus" placeholder="请选择学籍状态">
-                  <el-option label="在籍" value="1" />
+                  <!-- <el-option label="在籍" value="1" />
                   <el-option label="休学" value="2" />
                   <el-option label="复学" value="3" />
                   <el-option label="退学" value="4" />
-                  <el-option label="毕业" value="5" />
+                  <el-option label="毕业" value="5" /> -->
+                  <el-option v-for="dict in student_status" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="8">
               <el-form-item label="是否住校" prop="isBoarder">
                 <el-select disabled v-model="form.isBoarder" placeholder="请选择">
-                  <el-option label="否" :value="0" />
-                  <el-option label="是" :value="1" />
+                  <!-- <el-option label="否" :value="0" />
+                  <el-option label="是" :value="1" /> -->
+                  <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -1409,19 +1427,47 @@ import request from '@/utils/request';
 const { proxy } = getCurrentInstance() as any;
 
 // 字典数据
-const { wenhuachengdu, xg_political_status, sys_user_sex, xg_nation, sys_question_category, sys_item_enable, sys_item_required, sys_item_delete } =
-  toRefs<any>(
-    proxy?.useDict(
-      'wenhuachengdu',
-      'xg_political_status',
-      'sys_user_sex',
-      'xg_nation',
-      'sys_question_category',
-      'sys_item_enable',
-      'sys_item_required',
-      'sys_item_delete'
-    )
-  );
+const {
+  student_status,
+  admission_category,
+  xg_training_mode,
+  zsjy_education_level,
+  disability_type,
+  xg_blood_type,
+  xg_family_economic,
+  sys_yesno,
+  marital_status,
+  house_hold_register_type,
+  wenhuachengdu,
+  xg_political_status,
+  sys_user_sex,
+  xg_nation,
+  sys_question_category,
+  sys_item_enable,
+  sys_item_required,
+  sys_item_delete
+} = toRefs<any>(
+  proxy?.useDict(
+    'student_status',
+    'admission_category',
+    'xg_training_mode',
+    'zsjy_education_level',
+    'disability_type',
+    'xg_blood_type',
+    'xg_family_economic',
+    'sys_yesno',
+    'marital_status',
+    'house_hold_register_type',
+    'wenhuachengdu',
+    'xg_political_status',
+    'sys_user_sex',
+    'xg_nation',
+    'sys_question_category',
+    'sys_item_enable',
+    'sys_item_required',
+    'sys_item_delete'
+  )
+);
 // Props 定义
 interface Props {
   visible: boolean;
@@ -1589,6 +1635,25 @@ const getUserHistoryData = async (batchId: number, userId: number) => {
 
       // 将历史数据填充到表单中
       const historyData = res.data;
+      // const data = res.data;
+      // 将是否字段的数值转换为字符串
+      const booleanFields = [
+        'isPoorStudent',
+        'isMinority',
+        'isOrphan',
+        'isLeftBehindChild',
+        'isSingleChild',
+        'isLowIncome',
+        'hasLoan',
+        'isDisabled',
+        'isBoarder'
+      ];
+
+      booleanFields.forEach((field) => {
+        if (historyData[field] !== undefined && historyData[field] !== null) {
+          historyData[field] = String(historyData[field]);
+        }
+      });
 
       // 遍历历史数据,将非空字段赋值给表单
       Object.keys(historyData).forEach((key) => {
@@ -1695,6 +1760,7 @@ const getRegionName = (code: string) => {
 
 /** 根据婚姻状况代码获取标签 */
 const getMaritalStatusLabel = (value: string | number) => {
+  console.log('marital_status.value', marital_status.value);
   // 修复:0 也是有效值,需要正确处理
   if (value === null || value === undefined || value === '') return '';
 
@@ -1807,7 +1873,7 @@ const getFieldOriginalValue = (fieldName: string) => {
     case 'sourceRegion':
       return getRegionName(originalValue);
     case 'maritalStatus':
-      return getMaritalStatusLabel(originalValue);
+      return getDictLabel(marital_status.value, originalValue);
     case 'isPoorStudent':
     case 'isMinority':
     case 'isOrphan':
@@ -1817,15 +1883,22 @@ const getFieldOriginalValue = (fieldName: string) => {
     case 'hasLoan':
     case 'isDisabled':
     case 'hasScholarship':
-      return getYesNoLabel(originalValue);
+      return getDictLabel(sys_yesno.value, originalValue);
     case 'bloodType':
-      return getBloodTypeLabel(originalValue);
+      return getDictLabel(xg_blood_type.value, originalValue);
     case 'disabilityType':
-      return getDisabilityTypeLabel(originalValue);
+      return getDictLabel(disability_type.value, originalValue);
     case 'academicLevel':
-      return getAcademicLevelLabel(originalValue);
+      return getDictLabel(zsjy_education_level.value, originalValue);
     case 'studentStatus':
-      return getStudentStatusLabel(originalValue);
+      return getDictLabel(student_status.value, originalValue);
+    case 'birthDate':
+    case 'enrollmentDate':
+      // 只取YYYY-MM-DD,去掉时分秒
+      if (originalValue && typeof originalValue === 'string') {
+        return originalValue.split(' ')[0];
+      }
+      return originalValue;
     default:
       return originalValue;
   }

+ 113 - 49
web/src/views/xg/xsjcxx/stuPersonalMsg/index.vue

@@ -170,8 +170,9 @@
               <el-col :span="8">
                 <el-form-item label="户口类型" prop="householdRegisterType">
                   <el-select v-model="form.householdRegisterType" placeholder="请选择户口类型" disabled>
-                    <el-option label="农业" value="农业" />
-                    <el-option label="非农业" value="非农业" />
+                    <!-- <el-option label="农业" value="农业" />
+                    <el-option label="非农业" value="非农业" /> -->
+                    <el-option v-for="dict in house_hold_register_type" :key="dict.value" :label="dict.label" :value="dict.value" />
                   </el-select>
                 </el-form-item>
               </el-col>
@@ -222,10 +223,11 @@
               <el-col :span="8">
                 <el-form-item label="婚姻状况" prop="maritalStatus">
                   <el-select v-model="form.maritalStatus" placeholder="请选择婚姻状况" disabled>
-                    <el-option label="未婚" value="1" />
+                    <!-- <el-option label="未婚" value="1" />
                     <el-option label="已婚" value="2" />
                     <el-option label="离异" value="3" />
-                    <el-option label="丧偶" value="4" />
+                    <el-option label="丧偶" value="4" /> -->
+                    <el-option v-for="dict in marital_status" :key="dict.value" :label="dict.label" :value="dict.value" />
                   </el-select>
                 </el-form-item>
               </el-col>
@@ -251,24 +253,27 @@
               <el-col :span="8">
                 <el-form-item label="是否贫困生" prop="isPoorStudent">
                   <el-select v-model="form.isPoorStudent" placeholder="请选择" disabled>
-                    <el-option label="否" :value="0" />
-                    <el-option label="是" :value="1" />
+                    <!-- <el-option label="否" :value="0" />
+                    <el-option label="是" :value="1" /> -->
+                    <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
                 <el-form-item label="是否少数民族" prop="isMinority">
                   <el-select v-model="form.isMinority" placeholder="请选择" disabled>
-                    <el-option label="否" :value="0" />
-                    <el-option label="是" :value="1" />
+                    <!-- <el-option label="否" :value="0" />
+                    <el-option label="是" :value="1" /> -->
+                    <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
                 <el-form-item label="是否孤儿" prop="isOrphan">
                   <el-select v-model="form.isOrphan" placeholder="请选择" disabled>
-                    <el-option label="否" :value="0" />
-                    <el-option label="是" :value="1" />
+                    <!-- <el-option label="否" :value="0" />
+                    <el-option label="是" :value="1" /> -->
+                    <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                   </el-select>
                 </el-form-item>
               </el-col>
@@ -277,24 +282,27 @@
               <el-col :span="8">
                 <el-form-item label="是否留守儿童" prop="isLeftBehindChild">
                   <el-select v-model="form.isLeftBehindChild" placeholder="请选择" disabled>
-                    <el-option label="否" :value="0" />
-                    <el-option label="是" :value="1" />
+                    <!-- <el-option label="否" :value="0" />
+                    <el-option label="是" :value="1" /> -->
+                    <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
                 <el-form-item label="是否独生子女" prop="isSingleChild">
                   <el-select v-model="form.isSingleChild" placeholder="请选择" disabled>
-                    <el-option label="否" :value="0" />
-                    <el-option label="是" :value="1" />
+                    <!-- <el-option label="否" :value="0" />
+                    <el-option label="是" :value="1" /> -->
+                    <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
                 <el-form-item label="是否低保" prop="isLowIncome">
                   <el-select v-model="form.isLowIncome" placeholder="请选择" disabled>
-                    <el-option label="否" :value="0" />
-                    <el-option label="是" :value="1" />
+                    <!-- <el-option label="否" :value="0" />
+                    <el-option label="是" :value="1" /> -->
+                    <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                   </el-select>
                 </el-form-item>
               </el-col>
@@ -303,8 +311,9 @@
               <el-col :span="8">
                 <el-form-item label="是否有助学贷款" prop="hasLoan">
                   <el-select v-model="form.hasLoan" placeholder="请选择" disabled>
-                    <el-option label="否" :value="0" />
-                    <el-option label="是" :value="1" />
+                    <!-- <el-option label="否" :value="0" />
+                    <el-option label="是" :value="1" /> -->
+                    <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                   </el-select>
                 </el-form-item>
               </el-col>
@@ -424,10 +433,11 @@
               <el-col :span="8">
                 <el-form-item label="家庭经济状况" prop="familyEconomicStatus">
                   <el-select v-model="form.familyEconomicStatus" placeholder="请选择家庭经济状况" disabled>
-                    <el-option label="富裕" value="富裕" />
+                    <!-- <el-option label="富裕" value="富裕" />
                     <el-option label="一般" value="一般" />
                     <el-option label="困难" value="困难" />
-                    <el-option label="特困" value="特困" />
+                    <el-option label="特困" value="特困" /> -->
+                    <el-option v-for="dict in xg_family_economic" :key="dict.value" :label="dict.label" :value="dict.value" />
                   </el-select>
                 </el-form-item>
               </el-col>
@@ -457,11 +467,12 @@
               <el-col :span="8">
                 <el-form-item label="血型" prop="bloodType">
                   <el-select v-model="form.bloodType" placeholder="请选择血型" disabled>
-                    <el-option label="A型" value="A" />
+                    <!-- <el-option label="A型" value="A" />
                     <el-option label="B型" value="B" />
                     <el-option label="AB型" value="AB" />
                     <el-option label="O型" value="O" />
-                    <el-option label="未知" value="未知" />
+                    <el-option label="未知" value="未知" /> -->
+                    <el-option v-for="dict in xg_blood_type" :key="dict.value" :label="dict.label" :value="dict.value" />
                   </el-select>
                 </el-form-item>
               </el-col>
@@ -475,18 +486,20 @@
               <el-col :span="8">
                 <el-form-item label="是否残疾" prop="isDisabled">
                   <el-select v-model="form.isDisabled" placeholder="请选择" disabled>
-                    <el-option label="否" :value="0" />
-                    <el-option label="是" :value="1" />
+                    <!-- <el-option label="否" :value="0" />
+                    <el-option label="是" :value="1" /> -->
+                    <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
                 <el-form-item label="残疾类型" prop="disabilityType">
                   <el-select v-model="form.disabilityType" placeholder="请选择残疾类型" disabled>
-                    <el-option label="视力残疾" value="1" />
+                    <!-- <el-option label="视力残疾" value="1" />
                     <el-option label="听力残疾" value="2" />
                     <el-option label="智力残疾" value="3" />
-                    <el-option label="其他残疾" value="9" />
+                    <el-option label="其他残疾" value="9" />  -->
+                    <el-option v-for="dict in disability_type" :key="dict.value" :label="dict.label" :value="dict.value" />
                   </el-select>
                 </el-form-item>
               </el-col>
@@ -551,11 +564,12 @@
               <el-col :span="8">
                 <el-form-item label="学历层次" prop="academicLevel">
                   <el-select v-model="form.academicLevel" placeholder="请选择学历层次" style="width: 100%" disabled>
-                    <el-option label="中级工" value="1" />
+                    <!-- <el-option label="中级工" value="1" />
                     <el-option label="高级工" value="2" />
                     <el-option label="预备技师" value="3" />
                     <el-option label="技师" value="4" />
-                    <el-option label="中高职一体" value="5" />
+                    <el-option label="中高职一体" value="5" /> -->
+                    <el-option v-for="dict in zsjy_education_level" :key="dict.value" :label="dict.label" :value="dict.value" />
                   </el-select>
                 </el-form-item>
               </el-col>
@@ -593,19 +607,21 @@
               <el-col :span="8">
                 <el-form-item label="培养方式" prop="trainingType">
                   <el-select v-model="form.trainingType" placeholder="请选择培养方式" disabled>
-                    <el-option label="全日制" value="全日制" />
+                    <!-- <el-option label="全日制" value="全日制" />
                     <el-option label="在职" value="在职" />
                     <el-option label="函授" value="函授" />
-                    <el-option label="夜大" value="夜大" />
+                    <el-option label="夜大" value="夜大" />  -->
+                    <el-option v-for="dict in xg_training_mode" :key="dict.value" :label="dict.label" :value="dict.value" />
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
                 <el-form-item label="录取类别" prop="admissionCategory">
                   <el-select v-model="form.admissionCategory" placeholder="请选择录取类别" disabled>
-                    <el-option label="统招" value="统招" />
+                    <!-- <el-option label="统招" value="统招" />
                     <el-option label="自主招生" value="自主招生" />
-                    <el-option label="专项计划" value="专项计划" />
+                    <el-option label="专项计划" value="专项计划" /> -->
+                    <el-option v-for="dict in admission_category" :key="dict.value" :label="dict.label" :value="dict.value" />
                   </el-select>
                 </el-form-item>
               </el-col>
@@ -614,19 +630,21 @@
               <el-col :span="8">
                 <el-form-item label="学籍状态" prop="studentStatus">
                   <el-select v-model="form.studentStatus" placeholder="请选择学籍状态" disabled>
-                    <el-option label="在籍" value="1" />
+                    <!-- <el-option label="在籍" value="1" />
                     <el-option label="休学" value="2" />
                     <el-option label="复学" value="3" />
                     <el-option label="退学" value="4" />
-                    <el-option label="毕业" value="5" />
+                    <el-option label="毕业" value="5" /> -->
+                    <el-option v-for="dict in student_status" :key="dict.value" :label="dict.label" :value="dict.value" />
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
                 <el-form-item label="是否住校" prop="isBoarder">
                   <el-select disabled v-model="form.isBoarder" placeholder="请选择">
-                    <el-option label="否" :value="0" />
-                    <el-option label="是" :value="1" />
+                    <!-- <el-option label="否" :value="0" />
+                    <el-option label="是" :value="1" /> -->
+                    <el-option v-for="dict in sys_yesno" :key="dict.value" :label="dict.label" :value="dict.value" />
                   </el-select>
                 </el-form-item>
               </el-col>
@@ -705,19 +723,47 @@ import ElMessage from 'element-plus/es/components/message/index';
 const { proxy } = getCurrentInstance() as any;
 
 // 字典数据
-const { wenhuachengdu, xg_political_status, sys_user_sex, xg_nation, sys_question_category, sys_item_enable, sys_item_required, sys_item_delete } =
-  toRefs<any>(
-    proxy?.useDict(
-      'wenhuachengdu',
-      'xg_political_status',
-      'sys_user_sex',
-      'xg_nation',
-      'sys_question_category',
-      'sys_item_enable',
-      'sys_item_required',
-      'sys_item_delete'
-    )
-  );
+const {
+  student_status,
+  admission_category,
+  xg_training_mode,
+  zsjy_education_level,
+  disability_type,
+  xg_blood_type,
+  xg_family_economic,
+  sys_yesno,
+  marital_status,
+  house_hold_register_type,
+  wenhuachengdu,
+  xg_political_status,
+  sys_user_sex,
+  xg_nation,
+  sys_question_category,
+  sys_item_enable,
+  sys_item_required,
+  sys_item_delete
+} = toRefs<any>(
+  proxy?.useDict(
+    'student_status',
+    'admission_category',
+    'xg_training_mode',
+    'zsjy_education_level',
+    'disability_type',
+    'xg_blood_type',
+    'xg_family_economic',
+    'sys_yesno',
+    'marital_status',
+    'house_hold_register_type',
+    'wenhuachengdu',
+    'xg_political_status',
+    'sys_user_sex',
+    'xg_nation',
+    'sys_question_category',
+    'sys_item_enable',
+    'sys_item_required',
+    'sys_item_delete'
+  )
+);
 // 响应式数据
 const activeTab = ref('basic'); // 默认显示基础信息
 const regionOptions = ref([]); // 行政区划选项
@@ -841,6 +887,24 @@ const getPersonalInfoData = async () => {
     });
     if (response.code === 200) {
       const data = response.data;
+      // 将是否字段的数值转换为字符串
+      const booleanFields = [
+        'isPoorStudent',
+        'isMinority',
+        'isOrphan',
+        'isLeftBehindChild',
+        'isSingleChild',
+        'isLowIncome',
+        'hasLoan',
+        'isDisabled',
+        'isBoarder'
+      ];
+
+      booleanFields.forEach((field) => {
+        if (data[field] !== undefined && data[field] !== null) {
+          data[field] = String(data[field]);
+        }
+      });
       // 将API返回的数据映射到表单
       Object.assign(form, data);
     } else {

+ 46 - 8
web/src/views/xg/xsjcxx/studentMsg/studentMsg/index.vue

@@ -2068,11 +2068,30 @@ const handleDetail = async (row: StudentVO) => {
   try {
     const res = await service.get(`/studentMsg/studentMsg/${studentId}`);
     if (res && res.code === 200) {
-      Object.assign(detailForm, res.data);
+      const data = res.data;
+      // 将是否字段的数值转换为字符串
+      const booleanFields = [
+        'isPoorStudent',
+        'isMinority',
+        'isOrphan',
+        'isLeftBehindChild',
+        'isSingleChild',
+        'isLowIncome',
+        'hasLoan',
+        'isDisabled',
+        'isBoarder'
+      ];
+
+      booleanFields.forEach((field) => {
+        if (data[field] !== undefined && data[field] !== null) {
+          data[field] = String(data[field]);
+        }
+      });
+      Object.assign(detailForm, data);
       // 确保学历层次为数字类型,避免类型不匹配导致的显示问题
-      if (detailForm.academicLevel !== undefined && detailForm.academicLevel !== null) {
-        detailForm.academicLevel = Number(detailForm.academicLevel);
-      }
+      // if (detailForm.academicLevel !== undefined && detailForm.academicLevel !== null) {
+      //   detailForm.academicLevel = Number(detailForm.academicLevel);
+      // }
       detailDialog.visible = true;
       activeDetailTab.value = 'basic'; // 重置到第一个tab页
     } else {
@@ -2272,11 +2291,30 @@ const handleUpdate = async (row?: StudentForm) => {
     if (res && res.code === 200) {
       dialog.visible = true;
       dialog.title = '修改学生';
-      Object.assign(form, res.data);
+      const data = res.data;
+      // 将是否字段的数值转换为字符串
+      const booleanFields = [
+        'isPoorStudent',
+        'isMinority',
+        'isOrphan',
+        'isLeftBehindChild',
+        'isSingleChild',
+        'isLowIncome',
+        'hasLoan',
+        'isDisabled',
+        'isBoarder'
+      ];
+
+      booleanFields.forEach((field) => {
+        if (data[field] !== undefined && data[field] !== null) {
+          data[field] = String(data[field]);
+        }
+      });
+      Object.assign(form, data);
       // 确保学历层次为数字类型,避免类型不匹配导致的显示问题
-      if (form.academicLevel !== undefined && form.academicLevel !== null) {
-        form.academicLevel = Number(form.academicLevel);
-      }
+      // if (form.academicLevel !== undefined && form.academicLevel !== null) {
+      //   form.academicLevel = Number(form.academicLevel);
+      // }
       // 注意:如果需要专业和班级选项,可能需要额外的接口调用
       // majorOptions.value = data.data.majors;
       // classOptions.value = data.data.classes;