diff --git a/src/api/routine/enlistmentReserve/enlistmentReserveApproval.js b/src/api/routine/enlistmentReserve/enlistmentReserveApproval.js index 0c48682..100117c 100644 --- a/src/api/routine/enlistmentReserve/enlistmentReserveApproval.js +++ b/src/api/routine/enlistmentReserve/enlistmentReserveApproval.js @@ -42,3 +42,13 @@ export function delEnlistmentReserveApproval(id) { method: 'post' }) } + + +// 新增保留学籍审批记录 +export function insertOrUpdateByStuAndApprover(data) { + return request({ + url: '/routine/enlistmentReserveApproval/insertOrUpdateByStuAndApprover', + method: 'post', + data: data + }) +} \ No newline at end of file diff --git a/src/api/routine/enlistmentReserve/enlistmentReserveAttach.js b/src/api/routine/enlistmentReserve/enlistmentReserveAttach.js index c85cfbb..38db181 100644 --- a/src/api/routine/enlistmentReserve/enlistmentReserveAttach.js +++ b/src/api/routine/enlistmentReserve/enlistmentReserveAttach.js @@ -51,3 +51,12 @@ export function delEnlistmentReserveAttach(id) { method: 'post' }) } + +// 删除保留学籍申请附件(入伍通知书等) +export function deleteRtEnlistmentReserveAttachByFileNameAndStuName(query) { + return request({ + url: '/routine/enlistmentReserveAttach/deleteRtEnlistmentReserve', + method: 'post', + params: query + }) +} diff --git a/src/api/stuCQS/basedata/year.js b/src/api/stuCQS/basedata/year.js index 205df99..07fddfe 100644 --- a/src/api/stuCQS/basedata/year.js +++ b/src/api/stuCQS/basedata/year.js @@ -75,3 +75,12 @@ export function delYear(id) { method: 'post' }) } + +//为学年分配标签 +export function assignTag(yearId,tag){ + return request({ + url:`/system/year/${yearId}/assign-tag`, + method: 'post', + params:{ tag: tag } + }) +} diff --git a/src/components/affix/index.vue b/src/components/affix/index.vue index 266316b..3d95f0d 100644 --- a/src/components/affix/index.vue +++ b/src/components/affix/index.vue @@ -251,6 +251,10 @@ export default { if(this.fileList.length == 0){ this.affixId = '' } + + // 关键:触发自定义事件,传递被删除的文件名 + // 事件名建议:delete-file,参数:file.name(文件名) + this.$emit('delete-file', file.name); } else { this.$message.error(res.message) } diff --git a/src/views/flowable/task/todo/detail/index.vue b/src/views/flowable/task/todo/detail/index.vue index cfdc057..15b2f11 100644 --- a/src/views/flowable/task/todo/detail/index.vue +++ b/src/views/flowable/task/todo/detail/index.vue @@ -439,7 +439,7 @@ - +
@@ -660,7 +660,10 @@ import { checkRole } from '@/utils/permission' // 权限判断函数 import flow from '@/views/flowable/task/todo/detail/flow' import '@riophae/vue-treeselect/dist/vue-treeselect.css' import pdf from 'vue-pdf' -import { getEnlistmentReserveByProcessInstanceId} from "@/api/routine/enlistmentReserve/enlistmentReserve"; +import { getEnlistmentReserveByProcessInstanceId, updateEnlistmentReserve } from "@/api/routine/enlistmentReserve/enlistmentReserve"; +import { insertOrUpdateByStuAndApprover } from "@/api/routine/enlistmentReserve/enlistmentReserveApproval"; +import { getUserProfile } from '@/api/system/user' // 获取当前登录用户 +import { updateStudent } from '@/api/stuCQS/basedata/student' export default { name: 'Record', @@ -728,7 +731,8 @@ export default { variables: { variables: {}, approvalOpinion: '', // 必须初始化,避免 null 报错 - approvalResult: '' + approvalResult: '', + targetNodeName: '' }, penaltyNumber: '', letterServiceContent: '', @@ -983,9 +987,11 @@ export default { flowRecord(params) .then((res) => { that.flowRecordList = res.data.flowList + this.loading = false }) .catch((res) => { this.goBack() + this.loading = false }) }, fillFormData(form, data) { @@ -1014,26 +1020,9 @@ export default { this.taskForm.variables = res.data.formData - // 初始化或完善 variables 对象,确保 approvalOpinion(入伍保留学籍申请审核意见) 存在 - if (this.taskForm.variables == null) { - // 情况1:variables 为 null → 初始化完整结构(包含原有 variables 嵌套和 approvalOpinion) - this.taskForm.variables = { - variables: {}, // 保留原有的嵌套 variables 结构(后端可能依赖) - approvalOpinion: '', // 初始化审批意见为空白 - approvalResult: '' - } - } else { - // 情况2:variables 已存在 → 保留原有字段,补充 approvalOpinion(无则添加,有则保留原值) - this.taskForm.variables = { - ...this.taskForm.variables, // 展开原有所有字段(如 variables、其他自定义字段) - approvalOpinion: this.taskForm.variables.approvalOpinion || '', // 兜底:若原有未定义则设为空白 - approvalResult: this.taskForm.variables.approvalOpinion || '' - } - } - - - - + // 初始化或完善 variables 对象,确保 approvalOpinion(入伍保留学籍申请审核意见) 存在 + this.initApproval() + this.formKeyExist = res.data.formKeyExist }) } @@ -1058,7 +1047,7 @@ export default { if (valid) { this.$modal.loading('正在努力加载中,请稍等...') - this.taskForm.comment = '同意' + this.taskForm.comment = this.taskForm.variables.approvalOpinion != '' ? this.taskForm.variables.approvalOpinion : '同意' this.taskForm.variables.approvalResult = 1 if (this.taskForm && this.formKeyExist) { // 表单是否禁用 @@ -1070,7 +1059,6 @@ export default { complete(this.taskForm).then((response) => { this.$modal.closeLoading() - this.goBack() }) } else { @@ -1102,6 +1090,10 @@ export default { this.form.quitNumber = this.taskForm.quitNumber 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 => {}) + } } else { this.$modal.msgSuccess(response.msg) } @@ -1153,13 +1145,18 @@ export default { /** 驳回任务 */ taskReject() { this.$refs['taskForm'].validate((valid) => { + this.$modal.loading('正在努力加载中,请稍等...') if (valid) { - // 入伍保留学籍审核状态和意见 - this.taskForm.variables.approvalResult = 0 - this.taskForm.variables.approvalOpinion = this.taskForm.comment rejectTask(this.taskForm).then((res) => { + + // 是应征入伍保留学籍申请,才执行 + if (this.category == 'enlistmentReserve') { + this.taskReturnApproval("驳回") + } + this.$modal.msgSuccess(res.msg) + this.$modal.closeLoading() this.goBack() }) } @@ -1172,18 +1169,46 @@ export default { returnList(this.taskForm).then((res) => { this.returnTaskList = res.data this.taskForm.variables = null + + // 是应征入伍保留学籍申请,才执行 + if (this.category == 'enlistmentReserve') { + // 取原审批列表的副本(避免直接修改原表单数据导致重复push) + const approvalList = [...this.form.enlistmentReserveApprovalList] + + // 判断approvalList中是否已存在"学生申请"项,仅不存在时才push + const hasStudentApply = approvalList.some(record => record.nodeName === "学生申请") + if (!hasStudentApply) { + approvalList.push({ nodeName: "学生申请" }) + } + + // 过滤returnTaskList,使用处理后的临时approvalList(不污染原数据) + this.returnTaskList = this.returnTaskList.filter(returnTask => { + return approvalList.some(record => record.nodeName === returnTask.documentation) + }) + } + + this.initApproval() }) }, /** 提交退回任务 */ - taskReturn() { + taskReturn() { this.$refs['taskForm'].validate((valid) => { if (valid) { + this.$modal.loading('正在努力加载中,请稍等...') returnTask(this.taskForm).then((res) => { + + // 是应征入伍保留学籍申请,才执行 + if (this.category == 'enlistmentReserve') { + this.taskReturnApproval("退回") + } + this.$modal.msgSuccess(res.msg) + this.$modal.closeLoading() this.goBack() }) } }) + }, /** 取消回退任务按钮 */ cancelTask() { @@ -1240,6 +1265,70 @@ export default { fileUpload() { download.resource(this.pdfURL) }, + // 初始化入伍保留学籍申请审核意见参数 + initApproval() { + // 初始化或完善 variables 对象,确保 approvalOpinion(入伍保留学籍申请审核意见) 存在 + if (this.taskForm.variables == null) { + // 情况1:variables 为 null → 初始化完整结构(包含原有 variables 嵌套和 approvalOpinion) + this.taskForm.variables = { + variables: {}, // 保留原有的嵌套 variables 结构(后端可能依赖) + approvalOpinion: '', // 初始化审批意见为空白 + approvalResult: '', // 审批状态 + targetNodeName: '' // 审批节点 + } + } else { + // 情况2:variables 已存在 → 保留原有字段,补充 approvalOpinion(无则添加,有则保留原值) + this.taskForm.variables = { + ...this.taskForm.variables, // 展开原有所有字段(如 variables、其他自定义字段) + approvalOpinion: this.taskForm.variables.approvalOpinion || '', // 兜底:若原有未定义则设为空白 + approvalResult: this.taskForm.variables.approvalResult || '', + targetNodeName: this.taskForm.variables.targetNodeName || '' + } + } + }, + // 退回或驳回的时候生成入伍保留学籍申请审核 + taskReturnApproval(text) { + getUserProfile().then(res => { + let data = { + applyId: this.form.id, + processInstanceId: this.form.processInstanceId, + taskId: this.taskForm.taskId, + nodeName: this.taskName, + approverId: res.data.userId, + approverName: res.data.nickName, + approvalOpinion: this.taskForm.comment, + approvalResult: 2, + studentName: this.form.studentName, + studentNo: this.form.studentNo + } + // 生成审核记录 + insertOrUpdateByStuAndApprover(data).then(ress => { + // 审核记录生成之后,判断退回或驳回是不是到学生申请,如果是则更新申请表状态 + if (text == '退回') { + let nodeName = '' + this.returnTaskList.forEach(element => { + if (element.id == this.taskForm.targetKey) { // 如果选中的节点id等于列表里面的id,就将节点名称获取到nodeName + nodeName = element.documentation + } + }); + if (nodeName == '学生申请') { // 如果退回选择的是学生节点更新申请表状态 + this.form.applyStatus = 0 + updateEnlistmentReserve(this.form).then(result => { + this.$modal.closeLoading() + }) + } + } else { + // 驳回 + if (this.taskName == '辅导员审批') { // 当前节点如果是辅导员审批,证明驳回就到了学生,所以更新申请表状态 + this.form.applyStatus = 0 + updateEnlistmentReserve(this.form).then(result => { + this.$modal.closeLoading() + }) + } + } + }) + }) + } }, } diff --git a/src/views/routine/dis/formData.vue b/src/views/routine/dis/formData.vue index ea09f2c..bf87384 100644 --- a/src/views/routine/dis/formData.vue +++ b/src/views/routine/dis/formData.vue @@ -92,7 +92,32 @@ __ {{ form.maList.length > 0 ? form.maList[0].newmajor : '暂无数据' }}__

-

(设上传入伍通知书等佐证材料区域)

+ + + 暂无图片 + + + 暂无图片 + + + 暂无图片 + +

申请人: @@ -109,7 +134,7 @@ - + 招生与
就业处
意见

符合转专业条件,拟同意转入年级和专业: diff --git a/src/views/routine/dis/formSt.vue b/src/views/routine/dis/formSt.vue new file mode 100644 index 0000000..2c367c1 --- /dev/null +++ b/src/views/routine/dis/formSt.vue @@ -0,0 +1,729 @@ + + + + + diff --git a/src/views/routine/dis/mate/index.vue b/src/views/routine/dis/mate/index.vue index 6c7d385..018d0fd 100644 --- a/src/views/routine/dis/mate/index.vue +++ b/src/views/routine/dis/mate/index.vue @@ -175,13 +175,13 @@ - + - + diff --git a/src/views/routine/dis/shenhe.vue b/src/views/routine/dis/shenhe.vue index 87dc5c2..2924454 100644 --- a/src/views/routine/dis/shenhe.vue +++ b/src/views/routine/dis/shenhe.vue @@ -72,20 +72,38 @@ --> - + + + + + + + + + @@ -133,17 +158,54 @@ 取 消

+ + + + + + + + + + {{ dict.label }} + + + + + +