学工发布通知前端页面的修改,用于管理通知,对整个年级发送的通知修改和删除;给学生证提交流程添加完成制作功能的前端的修改
This commit is contained in:
@@ -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 || "操作失败");
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user