学工发布通知前端页面的修改,用于管理通知,对整个年级发送的通知修改和删除;给学生证提交流程添加完成制作功能的前端的修改

This commit is contained in:
MDSMO
2025-08-12 17:36:08 +08:00
parent 2f6e3503ae
commit ad477813f3
9 changed files with 485 additions and 137 deletions

View File

@@ -69,11 +69,14 @@
<el-tag type="danger" v-if="scope.row.reviewerStatus === 0">未审核</el-tag>
<el-tag type="success" v-else-if="scope.row.reviewerStatus === 1">辅导员通过</el-tag>
<el-tag type="success" v-else-if="scope.row.reviewerStatus === 2">学工处通过</el-tag>
<el-tag type="success" v-else-if="scope.row.reviewerStatus === 3">完成制作</el-tag>
<el-tag type="danger" v-else>辅导员驳回</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="300">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleCompleted(scope.row)"
v-hasPermi="['routine:stuMultiLevelReview:completed']" v-if="scope.row.reviewerStatus === 2">完成制作</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['routine:stuMultiLevelReview:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
@@ -118,11 +121,32 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 完成制作对话框 -->
<el-dialog title="完成制作" :visible.sync="completedOpen" width="500px" append-to-body>
<el-form ref="completedForm" :model="completedForm" :rules="completedRules" label-width="80px">
<el-form-item label="学生姓名" prop="stuName">
<el-input v-model="completedForm.stuName" :disabled="true" />
</el-form-item>
<el-form-item label="学生学号" prop="stuNo">
<el-input v-model="completedForm.stuNo" :disabled="true" />
</el-form-item>
<el-form-item label="通知消息" prop="messageContent">
<el-input v-model="completedForm.messageContent" type="textarea" placeholder="请输入发送给学生的通知消息" :rows="4" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitCompleted"> </el-button>
<el-button @click="cancelCompleted"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listStuMultiLevelReview, getStuMultiLevelReview, delStuMultiLevelReview, addStuMultiLevelReview, updateStuMultiLevelReview } from "@/api/routine/stuMultiLevelReview";
import { listStuMultiLevelReview, getStuMultiLevelReview, delStuMultiLevelReview, addStuMultiLevelReview, updateStuMultiLevelReviewWithStuIdReissue} from "@/api/routine/stuMultiLevelReview";
import { getUserIdByStuNo, addMsg } from "@/api/stuCQS/process-center/msg";
import { getUserProfile } from "@/api/system/user"; // 获取当前用户接口
export default {
name: "StuMultiLevelReview",
@@ -146,6 +170,8 @@ export default {
title: "",
// 是否显示弹出层
open: false,
// 是否显示完成制作弹出层
completedOpen: false,
// 查询参数
queryParams: {
pageNum: 1,
@@ -163,6 +189,13 @@ export default {
},
// 表单参数
form: {},
// 完成制作表单参数
completedForm: {
stuName: null,
stuNo: null,
reason: null,
messageContent: "你申请办理的学生证制作完成长堽校区前往xxx领取里建校区前往xxx领取"
},
// 表单校验
rules: {
stuName: [
@@ -175,6 +208,12 @@ export default {
{ required: true, message: "申请原因不能为空", trigger: "blur" }
],
},
// 完成制作表单校验
completedRules: {
messageContent: [
{ required: true, message: "通知消息不能为空", trigger: "blur" }
]
},
roleGroup: null
};
},
@@ -296,6 +335,74 @@ export default {
this.download('routine/stuMultiLevelReview/export', {
...this.queryParams
}, `stuMultiLevelReview_${new Date().getTime()}.xlsx`)
},
/** 完成制作按钮操作 */
handleCompleted(row) {
this.resetCompleted();
this.completedForm.stuName = row.stuName;
this.completedForm.stuNo = row.stuNo;
this.completedForm.reason = row.reason;
this.completedForm.id = row.id;
this.completedOpen = true;
},
// 完成制作表单重置
resetCompleted() {
this.completedForm = {
stuName: null,
stuNo: null,
reason: null,
messageContent: "你申请办理的学生证制作完成长堽校区前往xxx领取里建校区前往xxx领取",
id: null
};
this.resetForm("completedForm");
},
// 完成制作取消按钮
cancelCompleted() {
this.completedOpen = false;
this.resetCompleted();
},
// 完成制作提交按钮
submitCompleted() {
this.$refs["completedForm"].validate(valid => {
if (valid) {
// 第一步根据学号查询用户ID
getUserIdByStuNo(this.completedForm.stuNo).then(response => {
const receiverId = response.data;
if (!receiverId) {
throw new Error('未找到学生用户ID');
}
// 第二步:获取当前用户信息作为发送者
return getUserProfile().then(userResponse => {
const senderId = userResponse.data.userId;
// 第三步:发送消息通知学生
return addMsg({
sender: senderId,
receiver: receiverId,
content: this.completedForm.messageContent
});
});
}).then(() => {
// 第四步消息发送成功后更新多级审核状态为3完成制作
return getStuMultiLevelReview(this.completedForm.id);
}).then(response => {
const reviewData = response.data;
reviewData.reviewerStatus = 3;
// 将自定义消息内容存储到notes字段中用于企业微信消息发送
reviewData.notes = this.completedForm.messageContent;
return updateStuMultiLevelReviewWithStuIdReissue(reviewData);
}).then(() => {
this.completedOpen = false;
this.getUser();
this.$modal.msgSuccess("完成制作成功并已发送通知消息");
}).catch(error => {
this.$modal.msgError(error.message || "操作失败");
});
}
});
}
}
};