<template> <a-card :bordered="false"> <!-- 查询区域 --> <div class="table-page-search-wrapper"> <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> <a-col :span="6"> <a-form-item label="标题"> <a-input placeholder="请输入标题" v-model="queryParam.titile"></a-input> </a-form-item> </a-col> <a-col :span="6"> <a-form-item label="发布人"> <a-input placeholder="请输入发布人" v-model="queryParam.sender"></a-input> </a-form-item> </a-col> <a-col :span="8"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> </span> </a-col> </a-row> </a-form> </div> <div class="table-operator"> <a-button type="primary" @click="readAll" icon="book">全部标注已读</a-button> </div> <a-table ref="table" size="default" bordered rowKey="id" :columns="columns" :dataSource="dataSource" :pagination="ipagination" :loading="loading" @change="handleTableChange"> <span slot="action" slot-scope="text, record"> <a @click="showAnnouncement(record)">查看</a> </span> </a-table> <show-announcement ref="ShowAnnouncement"></show-announcement> <dynamic-notice ref="showDynamNotice" :path="openPath" :formData="formData"/> </a-card> </template> <script> import {filterObj} from '@/utils/util' import {getAction, putAction} from '@/api/manage' import ShowAnnouncement from '@/components/tools/ShowAnnouncement' import {JeecgListMixin} from '@/mixins/JeecgListMixin' import DynamicNotice from '../../components/tools/DynamicNotice' export default { name: "UserAnnouncementList", mixins: [JeecgListMixin], components: { DynamicNotice, ShowAnnouncement }, data() { return { description: '系统通告表管理页面', queryParam: {}, columns: [{ title: '标题', align: "center", dataIndex: 'titile' }, { title: '消息类型', align: "center", dataIndex: 'msgCategory', customRender: function (text) { if (text == '1') { return "通知公告"; } else if (text == "2") { return "系统消息"; } else { return text; } } }, { title: '发布人', align: "center", dataIndex: 'sender' }, { title: '发布时间', align: "center", dataIndex: 'sendTime' }, { title: '优先级', align: "center", dataIndex: 'priority', customRender: function (text) { if (text == 'L') { return "低"; } else if (text == "M") { return "中"; } else if (text == "H") { return "高"; } else { return text; } } }, { title: '阅读状态', align: "center", dataIndex: 'readFlag', customRender: function (text) { if (text == '0') { return "未读"; } else if (text == "1") { return "已读"; } else { return text; } } }, { title: '操作', dataIndex: 'action', align: "center", scopedSlots: {customRender: 'action'}, }], url: { list: "/sys/sysAnnouncementSend/getMyAnnouncementSend", editCementSend: "sys/sysAnnouncementSend/editByAnntIdAndUserId", readAllMsg: "sys/sysAnnouncementSend/readAll", }, loading: false, openPath: '', formData: '' } }, methods: { handleDetail: function (record) { this.$refs.sysAnnouncementModal.detail(record); this.$refs.sysAnnouncementModal.title = "查看"; }, showAnnouncement(record) { putAction(this.url.editCementSend, {anntId: record.anntId}).then((res) => { if (res.success) { this.loadData(); this.syncHeadNotic(record.anntId) } }); if (record.openType === 'component') { this.openPath = record.openPage; this.formData = {id: record.busId}; this.$refs.showDynamNotice.detail(); } else { this.$refs.ShowAnnouncement.detail(record); } }, syncHeadNotic(anntId) { getAction("sys/annountCement/syncNotic", {anntId: anntId}) }, readAll() { var that = this; that.$confirm({ title: "确认操作", content: "是否全部标注已读?", onOk: function () { putAction(that.url.readAllMsg).then((res) => { if (res.success) { that.$message.success(res.message); that.loadData(); that.syncHeadNotic(); } }); } }); }, } } </script> <style scoped> .ant-card-body .table-operator { margin-bottom: 18px; } .anty-row-operator button { margin: 0 5px } .ant-btn-danger { background-color: #ffffff } z .ant-modal-cust-warp { height: 100% } .ant-modal-cust-warp .ant-modal-body { height: calc(100% - 110px) !important; overflow-y: auto } .ant-modal-cust-warp .ant-modal-content { height: 90% !important; overflow-y: hidden } </style>