提交代码

This commit is contained in:
zlwu committed 2025-07-30 15:19:07 +08:00
1 parent a205f8049d
commit a1ae56409a
6 files changed
+472 -183

No files matched your search

@@ -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());
@@ -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);
form.value.classType = String(form.value.classType);
}
// 确保classStatus是数字类型
if (form.value.classStatus !== undefined) {
form.value.classStatus = Number(form.value.classStatus);
}
// 确保isGraduation是数字类型
// 确保isGraduation是字符串类型
if (form.value.isGraduation !== undefined) {
form.value.isGraduation = Number(form.value.isGraduation);
form.value.isGraduation = String(form.value.isGraduation);
}
// 获取该学院下的专业列表
@@ -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;
@@ -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
View File
@@ -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 {
@@ -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;