x_ying
2 years ago
4 changed files with 204 additions and 5 deletions
-
16src/api/system/logs.js
-
3src/layout/components/Navbar.vue
-
15src/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