|
@ -1,23 +1,15 @@ |
|
|
<template> |
|
|
<template> |
|
|
<div> |
|
|
<div> |
|
|
<div class="head-container"> |
|
|
<div class="head-container"> |
|
|
<el-button icon="el-icon-delete" :disabled="!(selections.length)" size="mini">删除</el-button> |
|
|
|
|
|
<el-button class="iconfont icon-biaojiyidu-fanbai" :disabled="!(selections.length)" size="mini">标记已读</el-button> |
|
|
|
|
|
<el-button class="iconfont icon-biaojiyidu-fanbai" size="mini">全部标记已读</el-button> |
|
|
|
|
|
|
|
|
<el-button icon="el-icon-delete" :disabled="!(selections.length)" size="mini" @click="handleDel">删除</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> |
|
|
<date-range-picker v-model="query.createTime" class="date-item" /> |
|
|
<date-range-picker v-model="query.createTime" class="date-item" /> |
|
|
<!-- <date-range-picker v-model="createTime" class="date-item" /> --> |
|
|
|
|
|
<!-- <rrOperation /> --> |
|
|
|
|
|
<button @click="getTableData">搜索</button> |
|
|
|
|
|
|
|
|
<el-button icon="el-icon-search" size="mini" style="background:#3A99FD;margin-left: -10px;" @click="getTableData">搜索</el-button> |
|
|
</div> |
|
|
</div> |
|
|
<!-- <div class="app-container container-wrap"> |
|
|
|
|
|
<span class="right-top-line" /> |
|
|
|
|
|
<span class="left-bottom-line" /> --> |
|
|
|
|
|
<!--表格渲染--> |
|
|
|
|
|
<!-- :cell-class-name="cell" |
|
|
|
|
|
@selection-change="selectionChangeHandler" |
|
|
|
|
|
--> |
|
|
|
|
|
<el-table |
|
|
<el-table |
|
|
ref="table" |
|
|
ref="table" |
|
|
|
|
|
v-loading="isLoading" |
|
|
:data="tableData" |
|
|
:data="tableData" |
|
|
style="width: 100%;" |
|
|
style="width: 100%;" |
|
|
:row-class-name="cell" |
|
|
:row-class-name="cell" |
|
@ -40,7 +32,6 @@ |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
</el-table> |
|
|
</el-table> |
|
|
<!-- <pagination /> --> |
|
|
|
|
|
<el-pagination |
|
|
<el-pagination |
|
|
:page-size.sync="page.size" |
|
|
:page-size.sync="page.size" |
|
|
:total="page.total" |
|
|
:total="page.total" |
|
@ -50,34 +41,23 @@ |
|
|
@size-change="sizeChangeHandler($event)" |
|
|
@size-change="sizeChangeHandler($event)" |
|
|
@current-change="pageChangeHandler" |
|
|
@current-change="pageChangeHandler" |
|
|
/> |
|
|
/> |
|
|
<!-- </div> --> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<script> |
|
|
<script> |
|
|
import DateRangePicker from '@/components/DateRangePicker' |
|
|
import DateRangePicker from '@/components/DateRangePicker' |
|
|
// import data1 from './data1.json' |
|
|
|
|
|
import { getUserNotice } from '@/api/system/logs' |
|
|
|
|
|
|
|
|
import { getUserNotice, isread, userMsgDel } from '@/api/system/logs' |
|
|
import CRUD, { presenter, header, crud } from '@crud/crud' |
|
|
import CRUD, { presenter, header, crud } from '@crud/crud' |
|
|
// import pagination from '@crud/Pagination' |
|
|
|
|
|
// import rrOperation from '@crud/RR.operation' |
|
|
|
|
|
|
|
|
|
|
|
export default { |
|
|
export default { |
|
|
name: 'MessageCenter', |
|
|
name: 'MessageCenter', |
|
|
components: { DateRangePicker |
|
|
|
|
|
// pagination, rrOperation |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
components: { DateRangePicker }, |
|
|
mixins: [presenter(), crud(), header()], |
|
|
mixins: [presenter(), crud(), header()], |
|
|
cruds() { |
|
|
cruds() { |
|
|
return CRUD({ |
|
|
return CRUD({ |
|
|
url: 'api/users/notice', |
|
|
url: 'api/users/notice', |
|
|
sort: ['createTime,desc'], |
|
|
sort: ['createTime,desc'], |
|
|
optShow: { |
|
|
|
|
|
// add: false, |
|
|
|
|
|
// edit: false, |
|
|
|
|
|
// del: false, |
|
|
|
|
|
// download: false |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
optShow: {} |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
data() { |
|
|
data() { |
|
@ -91,7 +71,8 @@ export default { |
|
|
total: 0, |
|
|
total: 0, |
|
|
size: 10, |
|
|
size: 10, |
|
|
page: 1 |
|
|
page: 1 |
|
|
} |
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
isLoading: false |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
created() { |
|
|
created() { |
|
@ -99,7 +80,7 @@ export default { |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
getTableData() { |
|
|
getTableData() { |
|
|
// this.tableData = data1.rows |
|
|
|
|
|
|
|
|
this.isLoading = true |
|
|
getUserNotice(this.getParams()).then(res => { |
|
|
getUserNotice(this.getParams()).then(res => { |
|
|
console.log(res, 'list') |
|
|
console.log(res, 'list') |
|
|
this.page.total = res.totalElements |
|
|
this.page.total = res.totalElements |
|
@ -109,8 +90,8 @@ export default { |
|
|
item.isRead = item.noticeUsers[0].isRead |
|
|
item.isRead = item.noticeUsers[0].isRead |
|
|
}) |
|
|
}) |
|
|
this.tableData = table |
|
|
this.tableData = table |
|
|
|
|
|
this.isLoading = false |
|
|
}) |
|
|
}) |
|
|
// console.log(this.crud, 'crud') |
|
|
|
|
|
}, |
|
|
}, |
|
|
getParams() { |
|
|
getParams() { |
|
|
const params = { |
|
|
const params = { |
|
@ -119,9 +100,69 @@ export default { |
|
|
createTime: this.query.createTime, |
|
|
createTime: this.query.createTime, |
|
|
sort: 'createTime,desc' |
|
|
sort: 'createTime,desc' |
|
|
} |
|
|
} |
|
|
console.log(params, '--params') |
|
|
|
|
|
return params |
|
|
return params |
|
|
}, |
|
|
}, |
|
|
|
|
|
getUserMsgId(list) { |
|
|
|
|
|
const ids = [] |
|
|
|
|
|
list.forEach(item => { |
|
|
|
|
|
item.noticeUsers.forEach(i => { |
|
|
|
|
|
ids.push(i.id) |
|
|
|
|
|
}) |
|
|
|
|
|
}) |
|
|
|
|
|
return ids |
|
|
|
|
|
}, |
|
|
|
|
|
// 标记已读 |
|
|
|
|
|
handleRead() { |
|
|
|
|
|
isread(this.getUserMsgId(this.selections)).then(res => { |
|
|
|
|
|
if (res) { |
|
|
|
|
|
this.getTableData() |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
// 全部标记已读 |
|
|
|
|
|
async handleAllRead() { |
|
|
|
|
|
const params = { |
|
|
|
|
|
page: 0, |
|
|
|
|
|
size: 10, |
|
|
|
|
|
// createTime: [], |
|
|
|
|
|
sort: 'createTime,desc' |
|
|
|
|
|
} |
|
|
|
|
|
const list = [] |
|
|
|
|
|
const allList = await this.getAllNoRead(params, list) |
|
|
|
|
|
isread(this.getUserMsgId(allList)).then(res => { |
|
|
|
|
|
if (res) { |
|
|
|
|
|
this.getTableData() |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
// 递归获取所有列表 |
|
|
|
|
|
async getAllNoRead(params, list) { |
|
|
|
|
|
const allList = await getUserNotice(params).then(res => { |
|
|
|
|
|
list = list.concat(res.content) |
|
|
|
|
|
if ((list.length) < res.totalElements) { |
|
|
|
|
|
params.page++ |
|
|
|
|
|
return this.getAllNoRead(params, list) |
|
|
|
|
|
} else { |
|
|
|
|
|
return list |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
return allList |
|
|
|
|
|
}, |
|
|
|
|
|
// 删除 |
|
|
|
|
|
handleDel() { |
|
|
|
|
|
userMsgDel(this.getUserMsgId(this.selections)).then(res => { |
|
|
|
|
|
console.log(res, '删除') |
|
|
|
|
|
if (res) { |
|
|
|
|
|
this.getTableData() |
|
|
|
|
|
this.$message({ |
|
|
|
|
|
message: '删除成功', |
|
|
|
|
|
type: 'success' |
|
|
|
|
|
}) |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$message.error('删除失败') |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
clickRowHandler(row) { |
|
|
clickRowHandler(row) { |
|
|
// this.$refs.table.clearSelection() |
|
|
// this.$refs.table.clearSelection() |
|
|
this.$refs.table.toggleRowSelection(row) // 单选选中 |
|
|
this.$refs.table.toggleRowSelection(row) // 单选选中 |
|
|