4 changed files with 204 additions and 5 deletions
-
16src/api/system/logs.js
-
3src/layout/components/Navbar.vue
-
17src/views/system/user/center.vue
-
173src/views/system/user/messageCenter/index.vue
@ -0,0 +1,173 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<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> |
||||
|
<date-range-picker v-model="query.createTime" class="date-item" /> |
||||
|
<!-- <date-range-picker v-model="createTime" class="date-item" /> --> |
||||
|
<!-- <rrOperation /> --> |
||||
|
<button @click="getTableData">搜索</button> |
||||
|
</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 |
||||
|
ref="table" |
||||
|
:data="tableData" |
||||
|
style="width: 100%;" |
||||
|
:row-class-name="cell" |
||||
|
height="calc(100vh - 362px)" |
||||
|
@row-click="clickRowHandler" |
||||
|
@selection-change="selectionChangeHandler" |
||||
|
> |
||||
|
<el-table-column type="selection" width="55" align="center" /> |
||||
|
<el-table-column type="index" label="序号" width="100" align="center" /> |
||||
|
<el-table-column prop="noticeContent" :show-overflow-tooltip="true" label="通知内容" min-width="300" align="center" /> |
||||
|
<el-table-column prop="noticeType" label="消息类型" align="center" min-width="150"> |
||||
|
<template slot-scope="scope"> |
||||
|
<span v-if="scope.row.noticeType===1">系统消息</span> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="pushUserName" label="推送人" align="center" min-width="150" /> |
||||
|
<el-table-column prop="create_time" label="推送时间" align="center" min-width="180"> |
||||
|
<template slot-scope="scope"> |
||||
|
<div>{{ scope.row.create_time | parseTime }}</div> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
<!-- <pagination /> --> |
||||
|
<el-pagination |
||||
|
:page-size.sync="page.size" |
||||
|
:total="page.total" |
||||
|
:current-page.sync="page.page" |
||||
|
style="margin-top: 8px;" |
||||
|
layout="total, prev, pager, next, sizes" |
||||
|
@size-change="sizeChangeHandler($event)" |
||||
|
@current-change="pageChangeHandler" |
||||
|
/> |
||||
|
<!-- </div> --> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import DateRangePicker from '@/components/DateRangePicker' |
||||
|
// import data1 from './data1.json' |
||||
|
import { getUserNotice } from '@/api/system/logs' |
||||
|
import CRUD, { presenter, header, crud } from '@crud/crud' |
||||
|
// import pagination from '@crud/Pagination' |
||||
|
// import rrOperation from '@crud/RR.operation' |
||||
|
|
||||
|
export default { |
||||
|
name: 'MessageCenter', |
||||
|
components: { DateRangePicker |
||||
|
// pagination, rrOperation |
||||
|
}, |
||||
|
mixins: [presenter(), crud(), header()], |
||||
|
cruds() { |
||||
|
return CRUD({ |
||||
|
url: 'api/users/notice', |
||||
|
sort: ['createTime,desc'], |
||||
|
optShow: { |
||||
|
// add: false, |
||||
|
// edit: false, |
||||
|
// del: false, |
||||
|
// download: false |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
tableData: [], |
||||
|
selections: [], |
||||
|
query: { |
||||
|
createTime: [] |
||||
|
}, |
||||
|
page: { |
||||
|
total: 0, |
||||
|
size: 10, |
||||
|
page: 1 |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
created() { |
||||
|
this.getTableData() |
||||
|
}, |
||||
|
methods: { |
||||
|
getTableData() { |
||||
|
// this.tableData = data1.rows |
||||
|
getUserNotice(this.getParams()).then(res => { |
||||
|
console.log(res, 'list') |
||||
|
this.page.total = res.totalElements |
||||
|
const table = res.content |
||||
|
table.forEach(item => { |
||||
|
item.pushUserName = item.noticeUsers[0].pushUserName |
||||
|
item.isRead = item.noticeUsers[0].isRead |
||||
|
}) |
||||
|
this.tableData = table |
||||
|
}) |
||||
|
// console.log(this.crud, 'crud') |
||||
|
}, |
||||
|
getParams() { |
||||
|
const params = { |
||||
|
page: this.page.page - 1, |
||||
|
size: this.page.size, |
||||
|
createTime: this.query.createTime, |
||||
|
sort: 'createTime,desc' |
||||
|
} |
||||
|
console.log(params, '--params') |
||||
|
return params |
||||
|
}, |
||||
|
clickRowHandler(row) { |
||||
|
// this.$refs.table.clearSelection() |
||||
|
this.$refs.table.toggleRowSelection(row) // 单选选中 |
||||
|
}, |
||||
|
selectionChangeHandler(val) { |
||||
|
this.selections = val |
||||
|
}, |
||||
|
cell({ row }) { |
||||
|
if (row.isRead) { // 已读 |
||||
|
return 'read-color' |
||||
|
} |
||||
|
}, |
||||
|
// 每页条数改变 |
||||
|
sizeChangeHandler(e) { |
||||
|
this.loading = true |
||||
|
this.page.size = e |
||||
|
this.page.page = 1 |
||||
|
this.getTableData() |
||||
|
this.loading = false |
||||
|
}, |
||||
|
// 当前页改变 |
||||
|
pageChangeHandler(e) { |
||||
|
this.loading = true |
||||
|
this.page.page = e |
||||
|
this.getTableData() |
||||
|
this.loading = false |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
@import '~@/assets/styles/lend-manage.scss'; |
||||
|
.head-container { |
||||
|
padding-top: 0; |
||||
|
.date-item{ |
||||
|
margin: -1px 20px 0 12px; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.container-wrap{ |
||||
|
margin-top: 0; |
||||
|
min-height: 0; |
||||
|
height: calc(100vh - 240px); |
||||
|
} |
||||
|
::v-deep .read-color td{ |
||||
|
color: #999 !important; |
||||
|
} |
||||
|
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue