From de396a4a212b6259ed316283e7cdbe9a2502436a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=9F=A6=E4=B8=9C=E6=81=92?= <1747763533@qq.com>
Date: Tue, 3 Mar 2026 13:22:01 +0800
Subject: [PATCH] =?UTF-8?q?=E9=80=80=E4=BC=8D=E5=A4=8D=E5=AD=A6-=E5=AD=A6?=
=?UTF-8?q?=E5=8A=A1=E8=BD=AC=E4=B8=93=E4=B8=9A=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../flowable/task/finished/detail/index.vue | 53 +--
src/views/flowable/task/todo/detail/index.vue | 372 ++++++++++++++----
src/views/routine/dis/formSt.vue | 43 +-
3 files changed, 349 insertions(+), 119 deletions(-)
diff --git a/src/views/flowable/task/finished/detail/index.vue b/src/views/flowable/task/finished/detail/index.vue
index 80256b8..87cb51b 100644
--- a/src/views/flowable/task/finished/detail/index.vue
+++ b/src/views/flowable/task/finished/detail/index.vue
@@ -871,30 +871,35 @@ export default {
},
// 获取学务班级名称列表
- 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.finalClassName = elementFree.label
- this.classVlue1 = [element.value, elementTwo.value, elementFree.value];
- // console.log(elementFree.label)
- });
- }
- });
- }
- });
- }
- })
- },
+ getXWClassNameList() {
+ getClassName().then(res => {
+ this.ClassNameList = res.data;
+ if (this.ClassNameList != null) {
+ this.ClassNameList.forEach(element => {
+ if (element.value == this.form.maList[0].finaldata1) {
+ element.children.forEach(elementTwo => {
+ if (elementTwo.value == this.form.maList[0].finaldata2) {
+ elementTwo.children.forEach(elementFree => {
+ if (elementFree.value == this.form.maList[0].newmajor) {
+ this.finalClassName = elementFree.label;
+ this.classVlue1 = [element.value, elementTwo.value, elementFree.value];
+
+ // 关键修复:从年级列表中查找年级名称,而不是直接使用 element.label
+ const gradeId = element.value;
+ const gradeItem = this.grade_list.find(item => item.gradeId === gradeId);
+ if (gradeItem) {
+ this.finalGradeName = gradeItem.gradeName; // 正确的年级名称
+ this.$set(this.form.maList[0], 'finallabel', gradeItem.gradeId); // 正确的年级ID
+ }
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+ })
+ },
/** 获取班级名称列表 */
getClassNameList() {
diff --git a/src/views/flowable/task/todo/detail/index.vue b/src/views/flowable/task/todo/detail/index.vue
index 0001588..74107d6 100644
--- a/src/views/flowable/task/todo/detail/index.vue
+++ b/src/views/flowable/task/todo/detail/index.vue
@@ -577,7 +577,7 @@
( 专业调整:)
- -
+
item.value === gradeId);
if (gradeItem) {
const majorItem = gradeItem.children.find(item => item.value === majorId);
@@ -1211,6 +1212,13 @@ handleChange1(value) {
}
}
}
+
+ // 关键修复:从年级列表中查找年级名称,而不是直接使用 gradeItem.label
+ const selectedGrade = this.grade_list.find(item => item.gradeId === gradeId);
+ if (selectedGrade) {
+ this.finalGradeName = selectedGrade.gradeName; // 正确的年级名称
+ this.$set(this.form.maList[0], 'finallabel', selectedGrade.gradeId); // 正确的年级ID
+ }
}
},
// 年级选择事件(仅更新ID,不处理名称)
@@ -1227,9 +1235,17 @@ handleChange1(value) {
handleGradeChange(value) {
const selectedGrade = this.grade_list.find(item => item.gradeId === value);
if (selectedGrade) {
- // 仅更新年级ID和名称,不修改finalmajor
+ // 1. 更新存储用的年级ID
this.$set(this.form.maList[0], 'finallabel', value);
- this.finalGradeName = selectedGrade.gradeName;
+ // 2. 同步更新显示用的年级名称(这里必须是 selectedGrade.gradeName)
+ this.finalGradeName = selectedGrade.gradeName;
+ // 3. 清空班级选择,避免年级和班级不匹配
+ this.classVlue1 = [];
+ this.finalClassName = null;
+ this.$set(this.form.maList[0], 'finaldata1', '');
+ this.$set(this.form.maList[0], 'finaldata2', '');
+ this.$set(this.form.maList[0], 'newmajor', '');
+ this.$set(this.form.maList[0], 'finalmajor', '');
}
},
// handleChange1(value) {
@@ -1341,25 +1357,57 @@ handleGradeChange(value) {
// 退伍复学申请表单数据
getBasicApplication(startUser) {
- // let newName = this.startUser.replace(/-/g, "");
- let newName = this.startUser.split('-')[0].trim();
- getStname(newName).then((res) => {
- // console.log("后端返回原始数据:",res.data);
- this.form = res.data
+ // // let newName = this.startUser.replace(/-/g, "");
+ // let newName = this.startUser.split('-')[0].trim();
+ // 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: '' }];
- }
+ // // 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()
- });
+ // this.getClassNameList()
+ // this.listGrade()
+ // this.getXWClassNameList()
+ // });
+ let newName = this.startUser.split('-')[0].trim();
+ getStname(newName).then((res) => {
+ console.log("后端返回原始数据:", res.data);
+ // 深拷贝确保数据不被污染
+ this.form = JSON.parse(JSON.stringify(res.data));
+
+ // 初始化maList,防止空指针
+ if (!this.form.maList || this.form.maList.length === 0) {
+ this.form.maList = [{
+ finalmajor: '',
+ finallabel: '',
+ finaldata1: '',
+ finaldata2: '',
+ newmajor: '',
+ finalClassName: '',
+ finalGradeName: ''
+ }];
+ }
+
+ // 1. 初始化选择框绑定的核心字段(finalmajor)
+ this.$set(this.form.maList[0], 'finalmajor', this.form.maList[0].finallabel || '');
+
+ // 确保数据加载完成后再渲染下拉列表
+ this.$nextTick(() => {
+ this.getClassNameList();
+ this.listGrade();
+ this.getXWClassNameList();
+ });
+ }).catch(error => {
+ console.error("获取退伍复学数据失败:", error);
+ this.$modal.msgError("获取学生信息失败,请刷新页面重试");
+ });
},
/** 获取班级名称列表 */
getClassNameList() {
@@ -1387,52 +1435,143 @@ handleGradeChange(value) {
},
// 获取学务班级名称列表
+ // 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.finalClassName = elementFree.label
+ // this.classVlue1 = [element.value, elementTwo.value, elementFree.value];
+ // // console.log(elementFree.label)
+ // });
+ // }
+ // });
+ // }
+ // });
+ // }
+ // })
+ // },
+ // getXWClassNameList() {
+ // getClassName().then(res => {
+ // this.ClassNameList = res.data;
+ // if (this.ClassNameList != null) {
+ // this.ClassNameList.forEach(element => {
+ // if (element.value == this.form.maList[0].finaldata1) {
+ // element.children.forEach(elementTwo => {
+ // if (elementTwo.value == this.form.maList[0].finaldata2) {
+ // elementTwo.children.forEach(elementFree => {
+ // if (elementFree.value == this.form.maList[0].newmajor) {
+ // this.finalClassName = elementFree.label;
+ // this.classVlue1 = [element.value, elementTwo.value, elementFree.value];
+ // // 同步更新年级名称
+ // this.finalGradeName = element.label;
+ // this.$set(this.form.maList[0], 'finallabel', element.value);
+ // }
+ // });
+ // }
+ // });
+ // }
+ // });
+ // }
+ // })
+ // },
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.finalClassName = elementFree.label
- this.classVlue1 = [element.value, elementTwo.value, elementFree.value];
- // console.log(elementFree.label)
- });
+ getClassName().then(res => {
+ this.ClassNameList = res.data;
+ if (this.ClassNameList != null) {
+ this.ClassNameList.forEach(element => {
+ if (element.value == this.form.maList[0].finaldata1) {
+ element.children.forEach(elementTwo => {
+ if (elementTwo.value == this.form.maList[0].finaldata2) {
+ elementTwo.children.forEach(elementFree => {
+ if (elementFree.value == this.form.maList[0].newmajor) {
+ this.finalClassName = elementFree.label;
+ this.classVlue1 = [element.value, elementTwo.value, elementFree.value];
+
+ // 关键修复:从年级列表中查找年级名称,而不是直接使用 element.label
+ const gradeId = element.value;
+ const gradeItem = this.grade_list.find(item => item.gradeId === gradeId);
+ if (gradeItem) {
+ this.finalGradeName = gradeItem.gradeName; // 正确的年级名称
+ this.$set(this.form.maList[0], 'finallabel', gradeItem.gradeId); // 正确的年级ID
+ }
}
});
}
});
}
- })
- },
+ });
+ }
+ })
+},
/** 获取年级列表 */
+ // async listGrade() {
+ // try {
+ // let res = await listGrade()
+ // if (res.code == 200) {
+ // 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)
+ // }
+ // },
+ // async listGrade() {
+ // try {
+ // let res = await listGrade();
+ // if (res.code == 200) {
+ // this.grade_list = [...res.rows];
+ // this.grade_list.forEach(element => {
+ // if (element.gradeId == this.form.maList[0].newgrade) {
+ // this.saveGradeName = element.gradeName;
+ // }
+ // if (element.gradeId == this.form.maList[0].finallabel) {
+ // this.finalGradeName = element.gradeName;
+ // }
+ // });
+ // }
+ // } catch (error) {
+ // console.error('获取年级列表失败:', error);
+ // }
+ // },
async listGrade() {
try {
- let res = await listGrade()
+ let res = await listGrade(); // 调用后端接口获取年级列表
if (res.code == 200) {
- this.grade_list = [...res.rows]
- console.log(this.grade_list)
+ 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
+ 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);
+ this.finalGradeName = element.gradeName;
}
});
}
-
} catch (error) {
- console.error('获取年级列表失败:', error)
+ console.error('获取年级列表失败:', error);
}
},
@@ -1711,7 +1850,7 @@ handleGradeChange(value) {
xwIdea: this.taskForm.comment,
xwTime: new Date(),
xwQm: assigneeName,
- finalGradeId: maList0.finalmajor,
+ finalGradeId: this.form.maList[0].finallabel,
// 3. 关键:将子表数据包装到 maList 数组中
maList: [
{
@@ -1765,44 +1904,125 @@ handleGradeChange(value) {
else if (this.taskName == "教务处主管") {
const currentFlowItem = this.flowRecordList.find(item => item.taskName === this.taskName);
const assigneeName = currentFlowItem ? currentFlowItem.assigneeName : "";
- updateBasic({
+ // updateBasic({
+ // id: stNameData.id,
+ // jwStatus: "1",
+ // jwIdea: this.taskForm.comment,
+ // 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") {
+ // 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: '31', }).then(response => { })
+ // }
+
+ // 先更新退伍复学主表
+ const updateBasicParams = {
id: stNameData.id,
jwStatus: "1",
jwIdea: this.taskForm.comment,
jwTime: new Date(),
- jwQm: assigneeName
- }).then(response => {
+ jwQm: assigneeName,
+ stId: stNameData.stId, // 补充stId,解决日志中stId为空的问题
+ processId: this.taskForm.procInsId
+ };
+
+ console.log("更新教务处主管审批参数:", updateBasicParams);
+
+ updateBasic(updateBasicParams).then(response => {
console.log("===== updateBasic 响应结果 =====", response);
- this.$modal.msgSuccess(response.msg)
+ this.$modal.msgSuccess(response.msg);
- // 2. 打印updateStudent的前置条件
+ // 2. 打印updateStudent的前置条件
console.log("===== updateStudent 执行前置检查 =====");
console.log("是否转专业(conversion):", stNameData.conversion);
console.log("学生ID(studentId):", stNameData.studentId);
+ console.log("stId:", stNameData.stId);
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") {
- 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: '31', }).then(response => { })
- }
+
+ // 修复转专业判断和参数类型问题
+ if (stNameData.conversion == "Y" && stNameData.maList && stNameData.maList.length > 0) {
+ const maList0 = stNameData.maList[0];
+ // 确保参数是数字类型,且有值
+ const deptId = maList0.finaldata1 ? parseInt(maList0.finaldata1) : null;
+ const majorId = maList0.finaldata2 ? parseInt(maList0.finaldata2) : null;
+ const classId = maList0.finalmajor ? parseInt(maList0.finalmajor) : null;
+ const stuId = stNameData.studentId || stNameData.stId;
+
+ // 只有所有必要参数都存在时才更新
+ if (stuId && deptId && majorId && classId) {
+ updateStudent({
+ stuId: stuId,
+ deptId: deptId,
+ majorId: majorId,
+ classId: classId,
+ status: '31',
+ }).then(response => {
+ console.log("updateStudent 响应:", response);
+ // 更新成功后重新获取学生信息,确保前端数据最新
+ this.getBasicApplication(this.startUser);
+ }).catch(error => {
+ console.error("updateStudent 失败:", error);
+ this.$modal.msgError("更新学生信息失败:" + error.message);
+ });
+ } else {
+ console.error("转专业参数不完整:", {
+ stuId, deptId, majorId, classId
+ });
+ this.$modal.msgWarning("转专业参数不完整,无法更新学生信息");
+ }
+ } else {
+ // 不转专业,只更新状态
+ const stuId = stNameData.studentId || stNameData.stId;
+ if (stuId) {
+ updateStudent({
+ stuId: stuId,
+ status: '31'
+ }).then(response => {
+ console.log("updateStudent 响应:", response);
+ // 更新成功后重新获取学生信息
+ this.getBasicApplication(this.startUser);
+ }).catch(error => {
+ console.error("updateStudent 失败:", error);
+ });
+ } else {
+ console.error("学生ID为空,无法更新状态");
+ this.$modal.msgError("学生ID为空,无法更新状态");
+ }
+ }
+ }).catch(error => {
+ console.error("updateBasic 失败:", error);
+ this.$modal.msgError("审批更新失败:" + error.message);
+ });
}
diff --git a/src/views/routine/dis/formSt.vue b/src/views/routine/dis/formSt.vue
index 2795d85..2b59068 100644
--- a/src/views/routine/dis/formSt.vue
+++ b/src/views/routine/dis/formSt.vue
@@ -447,30 +447,35 @@ export default {
methods: {
// 获取学务班级名称列表
- 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.finalClassName = elementFree.label
- this.classVlue1 = [element.value, elementTwo.value, elementFree.value];
- // console.log(elementFree.label)
- });
+ getXWClassNameList() {
+ getClassName().then(res => {
+ this.ClassNameList = res.data;
+ if (this.ClassNameList != null) {
+ this.ClassNameList.forEach(element => {
+ if (element.value == this.form.maList[0].finaldata1) {
+ element.children.forEach(elementTwo => {
+ if (elementTwo.value == this.form.maList[0].finaldata2) {
+ elementTwo.children.forEach(elementFree => {
+ if (elementFree.value == this.form.maList[0].newmajor) {
+ this.finalClassName = elementFree.label;
+ this.classVlue1 = [element.value, elementTwo.value, elementFree.value];
+
+ // 关键修复:从年级列表中查找年级名称,而不是直接使用 element.label
+ const gradeId = element.value;
+ const gradeItem = this.grade_list.find(item => item.gradeId === gradeId);
+ if (gradeItem) {
+ this.finalGradeName = gradeItem.gradeName; // 正确的年级名称
+ this.$set(this.form.maList[0], 'finallabel', gradeItem.gradeId); // 正确的年级ID
+ }
}
});
}
});
}
- })
- },
+ });
+ }
+ })
+},
/** 获取班级名称列表 */
getClassNameList() {