退伍复学-表单数据显示、学务调整专业、页面填写数据调整、

This commit is contained in:
2026-03-02 17:19:29 +08:00
parent f0301cd55b
commit 27aa6a1bd5
6 changed files with 883 additions and 194 deletions

View File

@@ -567,7 +567,41 @@
<el-descriptions-item span="4">
<template slot="label"> 学务意见 </template>
<div style="padding-top: 10px; line-height: 1.8;">
{{ form.xwIdea || '暂无意见' }}
<!-- 不同意或者未审核 -->
<div v-if="form.xwStatus == '0' || form.xwStatus == null || form.xwStatus == '2'" >{{ form.xwIdea }}拟编入____</div>
<!-- 同意 -->
<div v-if="form.xwStatus == '1'">{{ form.xwIdea || '暂无意见,' }},拟编入__{{finalGradeName}}_{{finalClassName}}__</div>
<!-- <div >{{ form.xwIdea }}拟编入__{{finalGradeName}}_{{finalClassName}}_</div> -->
<div id="xwinformation" v-if="category === '退伍复学' && taskName === '学务审核'">
<span style="color: red;"> 专业调整</span>
<!-- 年级 -->
<el-select
v-model="form.maList[0].finalmajor"
filterable
clearable
placeholder="请选择年级"
style="width: 100px; margin: 0 5px;"
@change="handleGradeChange"
>
<el-option
v-for="item in grade_list"
:key="item.gradeId"
:label="item.gradeName"
:value="item.gradeId"
/>
</el-select>-
<!-- 班级 -->
<el-cascader v-model="classVlue1" placeholder="请选择班级" :show-all-levels="false" :options="ClassNameList"
clearable filterable style="width: 300px; margin: 0 5px;" @change="handleChange1">
<template slot-scope="{ node, data }">
<span>{{ data.label }}</span>
<span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
</template>
</el-cascader>
</div>
<div class="signature-area right-align" style="padding: 10px 0 0 0;">
<span>审批结果</span>
<el-select v-model="form.xwStatus" placeholder="待审核" class="short-select" disabled
@@ -890,6 +924,8 @@
<el-button type="primary" @click="taskReject"> </el-button>
</span>
</el-dialog>
</el-card>
</div>
</template>
@@ -935,6 +971,7 @@ export default {
props: {},
data() {
return {
classVlue1: [],
// 模型xml数据
xmlData: '',
flowData: {},
@@ -961,6 +998,11 @@ export default {
saveClassName: null,
// 年级名称
saveGradeName: null,
// 最终班级名称
finalClassName: null,
// 最终年级名称
finalGradeName:null,
rules: {
penaltyNumber: [{ required: true, message: '请输入处分文号', trigger: 'blur' }],
letterServiceContent: [{ required: true, message: '请输入送达书', trigger: 'blur' }],
@@ -1127,6 +1169,102 @@ export default {
}
},
methods: {
// 班级选择事件仅更新ID不处理名称
// handleChange1(value) {
// if (value && value.length === 3) {
// const [gradeId, majorId, classId] = value;
// // 仅更新子表的ID字段名称仅前端展示不提交给后端
// this.$set(this.form.maList[0], 'finaldata1', gradeId); // 年级ID
// this.$set(this.form.maList[0], 'finaldata2', majorId); // 专业ID
// this.$set(this.form.maList[0], 'newmajor', classId); // 班级ID
// // finalClassName 仅用于前端展示,不提交
// const gradeItem = this.ClassNameList.find(item => item.value === gradeId);
// if (gradeItem) {
// const majorItem = gradeItem.children.find(item => item.value === majorId);
// if (majorItem) {
// const classItem = majorItem.children.find(item => item.value === classId);
// if (classItem) {
// this.finalClassName = classItem.label; // 仅前端展示
// }
// }
// }
// }
// },
handleChange1(value) {
if (value && value.length === 3) {
const [gradeId, majorId, classId] = value;
this.$set(this.form.maList[0], 'finaldata1', gradeId);
this.$set(this.form.maList[0], 'finaldata2', majorId);
this.$set(this.form.maList[0], 'newmajor', classId);
// 确保finalmajor与newmajor同步存储班级ID
this.$set(this.form.maList[0], 'finalmajor', classId);
const gradeItem = this.ClassNameList.find(item => item.value === gradeId);
if (gradeItem) {
const majorItem = gradeItem.children.find(item => item.value === majorId);
if (majorItem) {
const classItem = majorItem.children.find(item => item.value === classId);
if (classItem) {
this.finalClassName = classItem.label;
}
}
}
}
},
// 年级选择事件仅更新ID不处理名称
// handleGradeChange(value) {
// const selectedGrade = this.grade_list.find(item => item.gradeId === value);
// if (selectedGrade) {
// // 仅更新子表的ID字段名称仅前端展示
// this.$set(this.form.maList[0], 'finallabel', value); // 年级ID存储用
// this.$set(this.form.maList[0], 'finalmajor', value); // 年级ID选择框绑定
// this.finalGradeName = selectedGrade.gradeName; // 仅前端展示
// }
// },
handleGradeChange(value) {
const selectedGrade = this.grade_list.find(item => item.gradeId === value);
if (selectedGrade) {
// 仅更新年级ID和名称不修改finalmajor
this.$set(this.form.maList[0], 'finallabel', value);
this.finalGradeName = selectedGrade.gradeName;
}
},
// handleChange1(value) {
// if (value && value.length === 3) {
// const [gradeId, majorId, classId] = value;
// // 从ClassNameList中找到对应班级名称
// const gradeItem = this.ClassNameList.find(item => item.value === gradeId);
// if (gradeItem) {
// const majorItem = gradeItem.children.find(item => item.value === majorId);
// if (majorItem) {
// const classItem = majorItem.children.find(item => item.value === classId);
// if (classItem) {
// this.finalClassName = classItem.label;
// // 【关键修改】实时更新form.maList[0]的字段,确保提交时能拿到最新值
// this.$set(this.form.maList[0], 'finaldata1', gradeId); // 年级ID
// this.$set(this.form.maList[0], 'finaldata2', majorId); // 专业ID
// this.$set(this.form.maList[0], 'newmajor', classId); // 班级ID
// this.$set(this.form.maList[0], 'finalClassName', classItem.label); // 班级名称
// }
// }
// }
// }
// },
// handleGradeChange(value) {
// // 3. 选择框值变更时,同步更新显示名称和存储字段
// const selectedGrade = this.grade_list.find(item => item.gradeId === value);
// if (selectedGrade) {
// this.finalGradeName = selectedGrade.gradeName; // 更新显示名称
// // 【关键修改】实时更新form.maList[0]的字段
// this.$set(this.form.maList[0], 'finallabel', value); // 年级ID存储用
// this.$set(this.form.maList[0], 'finalmajor', value); // 年级ID选择框绑定
// this.$set(this.form.maList[0], 'finalGradeName', selectedGrade.gradeName); // 年级名称
// }
// },
penaltyTypeMethodFormat(row, column) {
return this.selectDictLabel(this.dict.type.rt_penalty_type, row.penaltyType)
},
@@ -1207,8 +1345,19 @@ export default {
getStname(newName).then((res) => {
// console.log("后端返回原始数据:",res.data);
this.form = res.data
// 1. 初始化选择框绑定的核心字段finalmajor
if (this.form.maList && this.form.maList.length > 0) {
// 从maList中读取已保存的年级ID赋值给finalmajor选择框绑定字段
this.$set(this.form.maList[0], 'finalmajor', this.form.maList[0].finallabel || '');
} else {
// 若无数据初始化空值避免undefined
this.form.maList = [{ finalmajor: '', finallabel: '' }];
}
this.getClassNameList()
this.listGrade()
this.getXWClassNameList()
});
},
/** 获取班级名称列表 */
@@ -1223,8 +1372,35 @@ export default {
element.children.forEach(elementTwo => {
if (elementTwo.value == this.form.maList[0].data2) {
// console.log(elementTwo.label)
this.saveClassName =elementTwo.label
// elementTwo.children.forEach(elementFree => {
// this.finalClassName = elementFree.label
// // console.log(elementFree.label)
// });
}
});
}
});
}
})
},
// 获取学务班级名称列表
getXWClassNameList() {
getClassName().then(res => {
this.ClassNameList = res.data
// console.log(this.ClassNameList)
if (this.ClassNameList != null) {
this.ClassNameList.forEach(element => {
if (element.value == this.form.maList[0].finaldata1) {
// console.log(element.label)
element.children.forEach(elementTwo => {
if (elementTwo.value == this.form.maList[0].finaldata2) {
// console.log(elementTwo.label)
// this.saveClassName =elementTwo.label
elementTwo.children.forEach(elementFree => {
this.saveClassName = elementFree.label
this.finalClassName = elementFree.label
this.classVlue1 = [element.value, elementTwo.value, elementFree.value];
// console.log(elementFree.label)
});
}
@@ -1234,6 +1410,7 @@ export default {
}
})
},
/** 获取年级列表 */
async listGrade() {
try {
@@ -1242,11 +1419,17 @@ export default {
this.grade_list = [...res.rows]
console.log(this.grade_list)
this.grade_list.forEach(element => {
// console.log("newgrade",this.form.maList[0].newgrade)
if (element.gradeId == this.form.maList[0].newgrade) {
this.saveGradeName = element.gradeName
}
if (element.gradeId == this.form.maList[0].finallabel) {
this.finalGradeName = element.gradeName
// this.$set(this.form.maList[0], 'finalmajor', element.gradeId);
}
});
}
} catch (error) {
console.error('获取年级列表失败:', error)
}
@@ -1484,16 +1667,65 @@ export default {
else if (this.taskName == "学务审核") {
const currentFlowItem = this.flowRecordList.find(item => item.taskName === this.taskName);
const assigneeName = currentFlowItem ? currentFlowItem.assigneeName : "";
updateBasic({
// updateBasic({
// id: stNameData.id,
// xwStatus: "1",
// xwIdea: this.taskForm.comment,
// xwTime: new Date(),
// xwQm: assigneeName
// }).then(response => {
// this.$modal.msgSuccess(response.msg)
// })
// // 构建要提交的参数
// const updateParams = {
// id: stNameData.id,
// xwStatus: "1",
// xwIdea: this.taskForm.comment,
// xwTime: new Date(),
// xwQm: assigneeName,
// finalGradeId: this.form.maList[0].finalmajor,
// // 其他你需要更新的字段...
// 'maList[0].finallabel': this.form.maList[0].finalmajor,
// 'maList[0].finaldata1': this.form.maList[0].finaldata1,
// 'maList[0].finaldata2': this.form.maList[0].finaldata2,
// 'maList[0].newmajor': this.form.maList[0].newmajor,
// 'maList[0].finalGradeName': this.finalGradeName,
// 'maList[0].finalClassName': this.finalClassName
// };
// // 【关键】打印要提交的参数
// console.log("updateBasic 提交的参数:", updateParams);
// // 调用更新接口
// updateBasic(updateParams).then(response => {
// this.$modal.msgSuccess(response.msg);
// });
// 1. 从 maList[0] 中提取需要更新的子表数据
const maList0 = this.form.maList[0] || {};
// 2. 构建主表更新参数
const updateParams = {
id: stNameData.id,
xwStatus: "1",
xwIdea: this.taskForm.comment,
xwTime: new Date(),
xwQm: assigneeName
}).then(response => {
this.$modal.msgSuccess(response.msg)
})
xwQm: assigneeName,
finalGradeId: maList0.finalmajor,
// 3. 关键:将子表数据包装到 maList 数组中
maList: [
{
...maList0, // 包含 finaldata1, finaldata2, finallabel, newmajor 等
basicId: stNameData.id // 确保子表记录关联到正确的主表ID
}
]
};
console.log("提交给后端的参数:", updateParams);
// 调用更新接口
updateBasic(updateParams).then(response => {
this.$modal.msgSuccess(response.msg);
});
}
// 二级学院审核
@@ -1539,18 +1771,36 @@ export default {
jwTime: new Date(),
jwQm: assigneeName
}).then(response => {
console.log("===== updateBasic 响应结果 =====", response);
this.$modal.msgSuccess(response.msg)
// 2. 打印updateStudent的前置条件
console.log("===== updateStudent 执行前置检查 =====");
console.log("是否转专业(conversion):", stNameData.conversion);
console.log("学生ID(studentId):", stNameData.studentId);
console.log("finaldata1(院部ID):", stNameData.maList ? stNameData.maList[0].finaldata1 : "无");
console.log("finaldata2(专业ID):", stNameData.maList ? stNameData.maList[0].finaldata2 : "无");
console.log("finalmajor(班级ID):", stNameData.maList ? stNameData.maList[0].finalmajor : "无");
})
if (stNameData.conversion == "Y") {
updateStudent({
stuId: stNameData.studentId,
deptId: parseInt(stNameData.maList[0].data1),
majorId: parseInt(stNameData.maList[0].data2),
classId: parseInt(stNameData.maList[0].newmajor),
status: '08',
}).then(response => { })
const maList0 = this.form.maList ? this.form.maList[0] : {};
updateStudent({
stuId: stNameData.studentId,
deptId: parseInt(maList0.finaldata1),
majorId: parseInt(maList0.finaldata2),
classId: parseInt(maList0.finalmajor),
status: '31',
// updateStudent({
// stuId: stNameData.studentId,
// deptId: parseInt(stNameData.maList[0].finaldata1),
// majorId: parseInt(stNameData.maList[0].finaldata2),
// classId: parseInt(stNameData.maList[0].finalmajor),
// status: '31',
}).then(response => {
console.log("updateStudent",response)
})
} else {
updateStudent({ stuId: stNameData.studentId, status: '08', }).then(response => { })
updateStudent({ stuId: stNameData.studentId, status: '31', }).then(response => { })
}
}