diff --git a/src/api/routine/basic.js b/src/api/routine/basic.js index 2f05490..fd606d8 100644 --- a/src/api/routine/basic.js +++ b/src/api/routine/basic.js @@ -58,3 +58,11 @@ export function delBasic(id) { method: 'post' }) } + +export function getOwnInfo(){ + return request({ + url:'/comprehensive/stuInfoView/getOwnInfo', + method:'GET' + }) +} + diff --git a/src/api/stuCQS/synchronous-data/sync-stu.js b/src/api/stuCQS/synchronous-data/sync-stu.js index 01f01c7..e830358 100644 --- a/src/api/stuCQS/synchronous-data/sync-stu.js +++ b/src/api/stuCQS/synchronous-data/sync-stu.js @@ -25,9 +25,10 @@ export function listStudent(query) { }) } // 新同步学生信息 -export function syncStudentInfo() { +export function synchronousStudent(query) { return request({ url: '/syncdata/synchronousStudent', - method: 'post' + method: 'post', + params:query }) } diff --git a/src/views/flowable/task/finished/detail/index.vue b/src/views/flowable/task/finished/detail/index.vue index 0cfbfa5..9940187 100644 --- a/src/views/flowable/task/finished/detail/index.vue +++ b/src/views/flowable/task/finished/detail/index.vue @@ -516,7 +516,7 @@
- {{ form.fdIdea || '暂无意见' }} + {{ form.fdIdea || '暂无意见' }}
审批结果:
- {{ form.xwIdea || '暂无意见' }} +
{{ form.xwIdea }}拟编入____
+ +
{{ form.xwIdea || '暂无意见' }},拟编入__{{finalGradeName}}_{{finalClassName}}__
审批结果: { + 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() { getClassName().then(res => { this.ClassNameList = res.data - // console.log(this.ClassNameList) + console.log(this.ClassNameList) if (this.ClassNameList != null) { this.ClassNameList.forEach(element => { if (element.value == this.form.maList[0].data1) { @@ -874,10 +913,13 @@ export default { element.children.forEach(elementTwo => { if (elementTwo.value == this.form.maList[0].data2) { // console.log(elementTwo.label) - elementTwo.children.forEach(elementFree => { - this.saveClassName = elementFree.label - // console.log(elementFree.label) - }); + this.saveClassName =elementTwo.label + // console.log("退伍复学",this.saveClassName) + // 班级 + // elementTwo.children.forEach(elementFree => { + // this.saveClassName = elementFree.label + // // console.log(elementFree.label) + // }); } }); } @@ -896,6 +938,9 @@ export default { 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) { diff --git a/src/views/flowable/task/todo/detail/index.vue b/src/views/flowable/task/todo/detail/index.vue index 7c48673..0aca641 100644 --- a/src/views/flowable/task/todo/detail/index.vue +++ b/src/views/flowable/task/todo/detail/index.vue @@ -567,7 +567,42 @@
- {{ form.xwIdea || '暂无意见' }} + +
{{ form.xwIdea }}拟编入____
+ +
{{ form.xwIdea || '暂无意见,' }},拟编入__{{finalGradeName}}_{{finalClassName}}__
+ +
+ + ( 专业调整:) + + + + + + + + + + + +
审批结果: 确 定 + +
@@ -935,6 +972,10 @@ export default { props: {}, data() { return { + // 年级列表 + grade_list: [], + classVlue1: [], + ClassNameList:[], // 模型xml数据 xmlData: '', flowData: {}, @@ -961,6 +1002,11 @@ export default { saveClassName: null, // 年级名称 saveGradeName: null, + // 最终班级名称 + finalClassName: null, + // 最终年级名称 + finalGradeName:null, + rules: { penaltyNumber: [{ required: true, message: '请输入处分文号', trigger: 'blur' }], letterServiceContent: [{ required: true, message: '请输入送达书', trigger: 'blur' }], @@ -1116,6 +1162,8 @@ export default { } else if (this.category == '退伍复学') { this.basicForm = true this.getBasicApplication(this.startUser) + this.listGrade(); + this.getXWClassNameList(); } // 流程任务获取变量信息 if (this.taskForm.taskId) { @@ -1127,6 +1175,53 @@ export default { } }, methods: { + + handleChange1(value) { + if (value && value.length === 3) { + const [gradeId, majorId, classId] = value; + // 1. 更新存储用的ID字段 + this.$set(this.form.maList[0], 'finaldata1', gradeId); + this.$set(this.form.maList[0], 'finaldata2', majorId); + this.$set(this.form.maList[0], 'newmajor', classId); + this.$set(this.form.maList[0], 'finalmajor', classId); + + // 2. 查找班级名称 + 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; + } + } + } + + // 关键修复:从年级列表中查找年级名称,而不是直接使用 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 + } + } + }, + + handleGradeChange(value) { + const selectedGrade = this.grade_list.find(item => item.gradeId === value); + if (selectedGrade) { + // 1. 更新存储用的年级ID + this.$set(this.form.maList[0], 'finallabel', value); + // 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', ''); + } + }, penaltyTypeMethodFormat(row, column) { return this.selectDictLabel(this.dict.type.rt_penalty_type, row.penaltyType) }, @@ -1202,13 +1297,37 @@ export default { // 退伍复学申请表单数据 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 - this.getClassNameList() - this.listGrade() + 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("获取学生信息失败,请刷新页面重试"); }); }, /** 获取班级名称列表 */ @@ -1223,9 +1342,40 @@ 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; + 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 => { - this.saveClassName = elementFree.label - // console.log(elementFree.label) + 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 + } + } }); } }); @@ -1234,21 +1384,27 @@ export default { } }) }, - /** 获取年级列表 */ + + 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); + console.log("this.form.maList[0]",this.form.maList[0]) this.grade_list.forEach(element => { 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; } }); } } catch (error) { - console.error('获取年级列表失败:', error) + console.error('获取年级列表失败:', error); } }, @@ -1428,8 +1584,8 @@ export default { this.form.remark = this.taskForm.remark this.updateRtStuQuitSchool() } else if (this.category == 'enlistmentReserve') { // 是应征入伍保留学籍申请,才执行 - if (this.taskName == '教务处主管领导审批') { // (最后一个领导审核完成之后,修改学生学籍状态, status:07是入伍保留学籍) - updateStudent({ stuId: this.form.studentId, status: '07' }).then(response => { }) + if (this.taskName == '教务处主管领导审批') { // (最后一个领导审核完成之后,修改学生学籍状态, status:30是入伍保留学籍) + updateStudent({ stuId: this.form.studentId, status: '30' }).then(response => { }) } this.$modal.msgSuccess(response.msg) } else if (this.category == "退伍复学") { @@ -1484,16 +1640,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: this.form.maList[0].finallabel, + // 3. 关键:将子表数据包装到 maList 数组中 + maList: [ + { + ...maList0, // 包含 finaldata1, finaldata2, finallabel, newmajor 等 + basicId: stNameData.id // 确保子表记录关联到正确的主表ID + } + ] + }; + console.log("提交给后端的参数:", updateParams); + + // 调用更新接口 + updateBasic(updateParams).then(response => { + this.$modal.msgSuccess(response.msg); + }); } // 二级学院审核 @@ -1532,26 +1737,125 @@ 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, + // 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 => { - this.$modal.msgSuccess(response.msg) - }) - 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 => { }) - } else { - updateStudent({ stuId: stNameData.studentId, status: '08', }).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); + + // 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" && 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/basic/index.vue b/src/views/routine/dis/basic/index.vue index 12525f4..67ebdc8 100644 --- a/src/views/routine/dis/basic/index.vue +++ b/src/views/routine/dis/basic/index.vue @@ -5,9 +5,10 @@ - + + - @@ -60,21 +61,18 @@ placeholder="请选择填报时间" /> - - + + - - + - - - --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
@@ -101,11 +162,13 @@