Browse Source

未读消息同步/消息删除二次确认

master
x_ying 2 years ago
parent
commit
dabfdcc2b2
  1. 23
      src/App.vue
  2. 5
      src/layout/components/Navbar.vue
  3. 11
      src/views/system/notifyManage/index.vue
  4. 35
      src/views/system/user/messageCenter/index.vue

23
src/App.vue

@ -1,11 +1,30 @@
<template> <template>
<div id="app"> <div id="app">
<router-view />
<router-view v-if="isRouterAlive" />
</div> </div>
</template> </template>
<script> <script>
export default { export default {
name: 'App'
name: 'App',
//
provide() {
return {
reload: this.reload
}
},
data() {
return {
isRouterAlive: true
}
},
methods: {
reload() {
this.isRouterAlive = false
this.$nextTick(() => {
this.isRouterAlive = true
})
}
}
} }
</script> </script>

5
src/layout/components/Navbar.vue

@ -110,6 +110,7 @@ import Avatar from '@/assets/images/avatar.png'
import { getUserNotice, isread } from '@/api/system/logs' import { getUserNotice, isread } from '@/api/system/logs'
export default { export default {
inject: ['reload'],
components: { components: {
// Breadcrumb, // Breadcrumb,
// Hamburger, // Hamburger,
@ -167,13 +168,11 @@ export default {
} }
const list = [] const list = []
const allList = await this.getAllNoRead(params, list) const allList = await this.getAllNoRead(params, list)
console.log(allList, 'allList')
allList.forEach(item => { allList.forEach(item => {
item.pushUserName = item.noticeUsers[0].pushUserName item.pushUserName = item.noticeUsers[0].pushUserName
item.isRead = item.noticeUsers[0].isRead item.isRead = item.noticeUsers[0].isRead
}) })
const arr = allList.filter(item => { return !item.isRead }) const arr = allList.filter(item => { return !item.isRead })
console.log(arr, 'msg')
if (arr.length > 20) { if (arr.length > 20) {
this.msgList = arr.slice(0, 20) this.msgList = arr.slice(0, 20)
} else { } else {
@ -199,6 +198,8 @@ export default {
isread(ids).then(res => { isread(ids).then(res => {
if (res) { if (res) {
this.msgList = [] this.msgList = []
// this.$router.go(0)
this.reload()
} }
}) })
}, },

11
src/views/system/notifyManage/index.vue

@ -107,6 +107,7 @@
import { noticeCreate, getAllDev, getAllUser, getNoticeList, noticeDel } from '@/api/system/logs' import { noticeCreate, getAllDev, getAllUser, getNoticeList, noticeDel } from '@/api/system/logs'
export default { export default {
name: 'NotifyManage', name: 'NotifyManage',
inject: ['reload'],
data() { data() {
return { return {
tableData: [], tableData: [],
@ -337,13 +338,14 @@ export default {
console.log(params, '参数') console.log(params, '参数')
return params return params
}, },
//
//
noticeSend(params) { noticeSend(params) {
noticeCreate(params).then(res => { noticeCreate(params).then(res => {
if (res === 'SUCCESS') { if (res === 'SUCCESS') {
this.btnloading = false this.btnloading = false
this.sendVisible = false this.sendVisible = false
this.getTableData()
// this.getTableData()
this.reload()
this.$message({ this.$message({
message: '发布成功', message: '发布成功',
type: 'success' type: 'success'
@ -372,7 +374,9 @@ export default {
const params = this.selections.map(item => { return item.id }) const params = this.selections.map(item => { return item.id })
noticeDel(params).then(res => { noticeDel(params).then(res => {
if (res === 'SUCCESS') { if (res === 'SUCCESS') {
this.getTableData()
// this.getTableData()
this.delVisible = false
this.reload()
this.$message({ this.$message({
message: '删除成功', message: '删除成功',
type: 'success' type: 'success'
@ -381,7 +385,6 @@ export default {
this.$message.error('删除失败') this.$message.error('删除失败')
} }
}) })
this.delVisible = false
}, },
// //
handelChange(val) { handelChange(val) {

35
src/views/system/user/messageCenter/index.vue

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<div class="head-container"> <div class="head-container">
<el-button icon="el-icon-delete" :disabled="!(selections.length)" size="mini" @click="handleDel">删除</el-button>
<el-button icon="el-icon-delete" :disabled="!(selections.length)" size="mini" @click="delVisible=true">删除</el-button>
<el-button class="iconfont icon-biaojiyidu-fanbai" :disabled="!(selections.length)" size="mini" @click="handleRead">标记已读</el-button> <el-button class="iconfont icon-biaojiyidu-fanbai" :disabled="!(selections.length)" size="mini" @click="handleRead">标记已读</el-button>
<el-button class="iconfont icon-biaojiyidu-fanbai" size="mini" @click="handleAllRead">全部标记已读</el-button> <el-button class="iconfont icon-biaojiyidu-fanbai" size="mini" @click="handleAllRead">全部标记已读</el-button>
<date-range-picker v-model="query.createTime" class="date-item" /> <date-range-picker v-model="query.createTime" class="date-item" />
@ -41,6 +41,17 @@
@size-change="sizeChangeHandler($event)" @size-change="sizeChangeHandler($event)"
@current-change="pageChangeHandler" @current-change="pageChangeHandler"
/> />
<!-- 删除 -->
<el-dialog :visible.sync="delVisible" title="提示">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<p class="delMsg">确定删除所选消息吗</p>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleDelConfirm">确定</el-button>
</div>
</div>
</el-dialog>
</div> </div>
</template> </template>
@ -51,6 +62,7 @@ import CRUD, { presenter, header, crud } from '@crud/crud'
export default { export default {
name: 'MessageCenter', name: 'MessageCenter',
inject: ['reload'],
components: { DateRangePicker }, components: { DateRangePicker },
mixins: [presenter(), crud(), header()], mixins: [presenter(), crud(), header()],
cruds() { cruds() {
@ -72,7 +84,8 @@ export default {
size: 10, size: 10,
page: 1 page: 1
}, },
isLoading: false
isLoading: false,
delVisible: false
} }
}, },
created() { created() {
@ -82,7 +95,6 @@ export default {
getTableData() { getTableData() {
this.isLoading = true this.isLoading = true
getUserNotice(this.getParams()).then(res => { getUserNotice(this.getParams()).then(res => {
console.log(res, 'list')
this.page.total = res.totalElements this.page.total = res.totalElements
const table = res.content const table = res.content
table.forEach(item => { table.forEach(item => {
@ -115,7 +127,8 @@ export default {
handleRead() { handleRead() {
isread(this.getUserMsgId(this.selections)).then(res => { isread(this.getUserMsgId(this.selections)).then(res => {
if (res) { if (res) {
this.getTableData()
// this.getTableData()
this.reload()
} }
}) })
}, },
@ -131,7 +144,8 @@ export default {
const allList = await this.getAllNoRead(params, list) const allList = await this.getAllNoRead(params, list)
isread(this.getUserMsgId(allList)).then(res => { isread(this.getUserMsgId(allList)).then(res => {
if (res) { if (res) {
this.getTableData()
this.reload()
// this.getTableData()
} }
}) })
}, },
@ -149,11 +163,12 @@ export default {
return allList return allList
}, },
// //
handleDel() {
handleDelConfirm() {
userMsgDel(this.getUserMsgId(this.selections)).then(res => { userMsgDel(this.getUserMsgId(this.selections)).then(res => {
console.log(res, '删除')
if (res) { if (res) {
this.getTableData()
// this.getTableData()
this.delVisible = false
this.reload()
this.$message({ this.$message({
message: '删除成功', message: '删除成功',
type: 'success' type: 'success'
@ -211,4 +226,8 @@ export default {
::v-deep .read-color td{ ::v-deep .read-color td{
color: #999 !important; color: #999 !important;
} }
.delMsg{
color: #fff;
font-size: 16px;
}
</style> </style>
Loading…
Cancel
Save