This commit is contained in:
@jyuhsin
2025-12-10 14:08:18 +08:00
parent 3008813cd1
commit 58882c6fe6
6 changed files with 341 additions and 7 deletions
@@ -6,10 +6,13 @@ layout("/layouts/platform.html"){
.el-select {
width: 100%;
}
.pro_table {
padding-left: 65px;
}
.tooltip-alert,.el-alert{
padding: 0;
margin-top: 6px;
}
</style>
<div id="app" v-cloak>
@@ -20,6 +23,10 @@ layout("/layouts/platform.html"){
<el-card shadow="never" class="mt10">
<table-tool label="分管领导审批办理" :app="this">
<template #func>
<el-button v-if="$auth.hasRole('sysadmin')" type="primary"
@click="openSendMsg(null, 'oneKey')" size="small">
一键提醒
</el-button>
</template>
</table-tool>
<el-table :data="tableData" align="center" header-align="center" row-key="replyId"
@@ -63,6 +70,10 @@ layout("/layouts/platform.html"){
v-if="!row.isAudit"
@click="openAudit(row)" type="primary" size="mini">审核
</el-button>
<el-button
v-if="!row.isAudit && $auth.hasRoleOr('sysadmin, A06, tamange, jdh10')"
@click="openSendMsg(row, 'normal')" type="warning" size="mini">催办
</el-button>
</template>
</el-table-column>
</el-table>
@@ -136,12 +147,55 @@ layout("/layouts/platform.html"){
</template>
</guava>
<el-dialog
:close-on-click-modal="false"
:visible.sync="sendMsgDialogVisible"
title="请在下方填写需要发送的内容"
width="50%"
>
<el-form :model="sendFormData" label-width="80px" ref="sendForm">
<el-form-item label="提案名称" prop="userInfo" v-if="sendFormData.proposalName">
<el-input placeholder="请选择提案名称" readonly v-model="sendFormData.proposalName"></el-input>
</el-form-item>
<el-form-item
:rules="[{required: true, message: '请输入发送标题', trigger: ['blur', 'change']}]"
label="发送标题"
prop="title">
<el-input
placeholder="请输入发送标题"
v-model="sendFormData.title">
</el-input>
</el-form-item>
<el-form-item
:rules="[{required: true, message: '请选择发送内容', trigger: ['blur', 'change']}]"
label="发送内容"
prop="content">
<el-input
:rows="6"
placeholder="请输入内容"
type="textarea"
v-model="sendFormData.content">
</el-input>
<el-alert
v-if="sendFormData.content.includes('****')"
class="tooltip-alert"
title="****会自动替换为每条提案的承办单位名称,请勿修改和删除!!!"
type="warning">
</el-alert>
</el-form-item>
</el-form>
<span class="dialog-footer" slot="footer">
<el-button @click="sendMsgDialogVisible = false">取 消</el-button>
<el-button @click="sendMsg" type="primary">确 定</el-button>
</span>
</el-dialog>
</div>
<script>
<!--#include("/platform/proposal/include/proposal_include.js"){}#-->
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
@@ -191,10 +245,64 @@ layout("/layouts/platform.html"){
},
isNode: false,
oneKeyRemindDialogVisible: false,
oneKeyTableData: []
oneKeyTableData: [],
/**
* 发送通知相关
*/
sendMsgDialogVisible: false,
sendFormData: {
sessionId: "",
proposalId: "",
proposalName: "",
title: "提案审批通知",
content: "尊敬的校领导,****有一个承办提案需要分管校领导审核同意,请点击审核。"
},
}
},
methods: {
openSendMsg(row, type) {
this.sendFormData.proposalId = row ? row.id : null
this.sendFormData.proposalName = row ? row.proposalName : null
if(type === 'normal') {
this.sendFormData.content = this.sendFormData.content.replace('****', row ? row.underTakeNames : '')
} else {
this.sendFormData.content = "尊敬的校领导,****有一个承办提案需要分管校领导审核同意,请点击审核。"
}
this.sendMsgDialogVisible = true
},
async sendMsg() {
const valid = await this.$refs["sendForm"].validate()
if (!valid) return
const confirm = await this.$confirm("您确定要发送信息吗?", "提示", {
confirmButtonText: "确定",
cancelButtonTest: "取消",
type: "warning"
})
if (confirm === "confirm") {
const loading = this.$loading({
lock: true,
text: "加载中,请稍后...",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)"
})
const resp = await $.post("/platform/proposal/transact/branchLeaderSuffixAudit/sendNotify", {
sessionId: this.pageForm.meetingId,
proposalId: this.sendFormData.proposalId,
title: this.sendFormData.title,
content: this.sendFormData.content
})
loading.close()
if (resp.code === 0) {
this.sendMsgDialogVisible = false
this.$message.success(resp.msg)
} else {
this.$message.warning(resp.msg)
}
}
},
async rollback(row) {
const confirm = await this.$confirm('您确定要撤回吗?', '提示', {
confirmButtonText: '确定',
@@ -11,11 +11,15 @@ layout("/layouts/platform.html"){
<div id="app" v-cloak>
<guava ref="guava">
<template>
<proposal-search :page="pageForm" @search="doSearch" title="反馈"></proposal-search>
<proposal-search :page="pageForm" @search="doSearch" title="反馈" ref="searchRef"></proposal-search>
<el-card shadow="never" class="mt10">
<table-tool label="反馈评价" :app="this">
<template #func>
<el-button v-if="$auth.hasRole('sysadmin')" type="primary"
@click="openSendMsg" size="small">
一键提醒
</el-button>
<!-- <el-button @click="oneKeyRemind" size="small" type="primary"-->
<!-- v-if="(${@shiro.hasRole('T01') || @shiro.hasRole('sysadmin')} && pageForm.isAudit==false)"-->
<!-- >一键提醒-->
@@ -58,6 +62,9 @@ layout("/layouts/platform.html"){
<el-button v-if="[proposal.FEEDBACKSCORE].includes(row.stateCode)"
@click="openFeedback(row)" size="mini" type="primary">反馈
</el-button>
<el-button v-if="[proposal.FEEDBACKSCORE].includes(row.stateCode) && $auth.hasRoleOr('sysadmin, A06, tamange, jdh10')"
type="warning" @click="openSendMsg(row)" size="mini">催办
</el-button>
<!-- <el-button v-if="row.canRollBack" @click="doWithdraw(row)" size="mini"-->
<!-- type="danger">撤回-->
<!-- </el-button>-->
@@ -147,6 +154,45 @@ layout("/layouts/platform.html"){
<el-button @click="confirmOneKeyRemind" type="primary">确定</el-button>
</el-row>
</el-dialog>
<el-dialog
:close-on-click-modal="false"
:visible.sync="sendMsgDialogVisible"
title="请在下方填写需要发送的内容"
width="50%"
>
<el-form :model="sendFormData" label-width="80px" ref="sendForm">
<el-form-item label="提案名称" prop="userInfo" v-if="sendFormData.proposalName">
<el-input placeholder="请选择提案名称" readonly v-model="sendFormData.proposalName"></el-input>
</el-form-item>
<el-form-item
:rules="[{required: true, message: '请输入发送标题', trigger: ['blur', 'change']}]"
label="发送标题"
prop="title">
<el-input
placeholder="请输入发送标题"
v-model="sendFormData.title">
</el-input>
</el-form-item>
<el-form-item
:rules="[{required: true, message: '请选择发送内容', trigger: ['blur', 'change']}]"
label="发送内容"
prop="content">
<el-input
:rows="6"
placeholder="请输入内容"
type="textarea"
v-model="sendFormData.content">
</el-input>
</el-form-item>
</el-form>
<span class="dialog-footer" slot="footer">
<el-button @click="sendMsgDialogVisible = false">取 消</el-button>
<el-button @click="sendMsg" type="primary">确 定</el-button>
</span>
</el-dialog>
</div>
<script>
@@ -214,10 +260,69 @@ layout("/layouts/platform.html"){
sign: [{required: true, message: '请使用【手机钉钉】扫描二维码进行签字', trigger: ['blur', 'change']}]
},
oneKeyRemindDialogVisible: false,
oneKeyTableData: []
oneKeyTableData: [],
/**
* 发送通知相关
*/
sendMsgDialogVisible: false,
sendFormData: {
sessionId: "",
proposalId: "",
proposalName: "",
title: "提案反馈通知",
content: "尊敬的教代会代表,您在第jdhjs届教代会第jdhcs次会议上提交的提案,相关部门已作出办理回复,请点击评价反馈。"
},
}
},
methods: {
async openSendMsg(row) {
if(!this.$refs.searchRef.allJdhOptions) {
this.$message.warning('教代会信息为空')
return
}
const jdh = this.$refs.searchRef.allJdhOptions.find(o => o.id === this.pageForm.meetingId)
if(!jdh) {
this.$message.warning('教代会信息为空')
return
}
this.sendFormData.content = this.sendFormData.content.replace('jdhjs', jdh.jdhjs).replace('jdhcs', jdh.jdhcs)
this.sendFormData.proposalId = row ? row.id : null
this.sendFormData.proposalName = row ? row.proposalName : null
this.sendMsgDialogVisible = true
},
async sendMsg() {
const valid = await this.$refs["sendForm"].validate()
if (!valid) return
const confirm = await this.$confirm("您确定要发送信息吗?", "提示", {
confirmButtonText: "确定",
cancelButtonTest: "取消",
type: "warning"
})
if (confirm === "confirm") {
const loading = this.$loading({
lock: true,
text: "加载中,请稍后...",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)"
})
const resp = await $.post("/platform/proposal/transact/feedback/sendNotify", {
sessionId: this.pageForm.meetingId,
proposalId: this.sendFormData.proposalId,
title: this.sendFormData.title,
content: this.sendFormData.content
})
loading.close()
if (resp.code === 0) {
this.sendMsgDialogVisible = false
this.$message.success(resp.msg)
} else {
this.$message.warning(resp.msg)
}
}
},
async oneKeyRemind() {
const {meetingId} = this.pageForm
if (!meetingId) {
@@ -414,7 +414,7 @@ layout("/layouts/platform.html"){
async sendMsg() {
const valid = await this.$refs["sendForm"].validate()
if (!valid) return
const confirm = await this.$confirm("您确定要发送信息吗?", "提示", {
const confirm = await this.$confirm("您确定要发送信息吗?", "提示", {
confirmButtonText: "确定",
cancelButtonTest: "取消",
type: "warning"