4 changed files with 324 additions and 153 deletions
@ -1,68 +1,19 @@ |
|||
import Layout from '@/layout' |
|||
|
|||
const codemenu = [{ |
|||
path: '/xxzxqbxx', |
|||
component: Layout, |
|||
redirect: '/qbxx/index', |
|||
meta: { |
|||
title: '全部消息' |
|||
}, |
|||
children: [{ |
|||
path: '/qbxx/index', |
|||
component: () => import('@/views/message/qbxx.vue'), |
|||
name: 'XxzxQbxx', |
|||
const codemenu = [ |
|||
{ |
|||
path: '/message', |
|||
component: Layout, |
|||
redirect: '/message', |
|||
meta: { |
|||
title: '全部消息', |
|||
noCache: true |
|||
} |
|||
}] |
|||
}, { |
|||
path: '/xxzxwdxx', |
|||
component: Layout, |
|||
redirect: '/wdxx/index', |
|||
meta: { |
|||
title: '未读消息' |
|||
}, |
|||
children: [{ |
|||
path: '/wdxx/index', |
|||
component: () => import('@/views/message/unreadmessage.vue'), |
|||
name: 'XxzxWdxx', |
|||
meta: { |
|||
title: '未读消息', |
|||
noCache: true |
|||
} |
|||
}] |
|||
}, { |
|||
path: '/xxzxydxx', |
|||
component: Layout, |
|||
redirect: '/ydxx/index', |
|||
meta: { |
|||
title: '已读消息' |
|||
}, |
|||
children: [{ |
|||
path: '/ydxx/index', |
|||
component: () => import('@/views/message/ydxx.vue'), |
|||
name: 'XxzxYdxx', |
|||
meta: { |
|||
title: '已读消息', |
|||
noCache: true |
|||
} |
|||
}] |
|||
}, { |
|||
path: '/xxzxydxx', |
|||
component: Layout, |
|||
redirect: '/mbxx/index', |
|||
meta: { |
|||
title: '模板消息' |
|||
}, |
|||
children: [{ |
|||
path: '/mbxx/index', |
|||
component: () => import('@/views/message/mbxx.vue'), |
|||
name: 'XxzxYdxx', |
|||
meta: { |
|||
title: '模板消息', |
|||
noCache: true |
|||
} |
|||
}] |
|||
}] |
|||
title: '消息管理' |
|||
}, |
|||
children: [{ |
|||
path: '/message/unreadmessage', |
|||
component: () => import('@/views/message/unreadmessage.vue'), |
|||
name: 'UnreadMessage', |
|||
meta: { title: '消息管理', noCache: true } |
|||
}] |
|||
} |
|||
] |
|||
export default codemenu |
|||
|
@ -0,0 +1,204 @@ |
|||
<template> |
|||
<div class="app-container"> |
|||
<!-- Start 列表页面 --> |
|||
<div v-show="viewState == 1"> |
|||
<button-bar view-title="消息管理" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/> |
|||
<div class="main-content"> |
|||
<div class="switch_btn"> |
|||
<el-button class="" @click="handleClick">未读消息</el-button> |
|||
<el-button class="" @click="handleRead">已读消息</el-button> |
|||
<el-button :class="{btn_style:viewState === 1}">全部消息</el-button> |
|||
</div> |
|||
<div class="searchcon"> |
|||
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button> |
|||
<div v-show="isSearchShow" class="search"> |
|||
<el-form ref="listQueryform" :inline="true" :model="listQuery" class="tab-header"> |
|||
<el-form-item label="消息类型"> |
|||
<el-input v-model="listQuery.params.type" clearable placeholder="" class="addinputw"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="消息来源"> |
|||
<el-input v-model="listQuery.params.msgSource" clearable placeholder="" class="addinputw"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="消息标题"> |
|||
<el-input v-model="listQuery.params.title" clearable placeholder="" class="addinputw"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="发送人"> |
|||
<el-input v-model="listQuery.params.senderName" clearable placeholder="" class="addinputw"></el-input> |
|||
</el-form-item> |
|||
<el-form-item class="formItem" label="接收日期"> |
|||
<el-date-picker value-format="yyyy-MM-dd" v-model="listQuery.params.createTimeStart" clearable type="date" placeholder="开始日期" /> |
|||
<span style="padding: 0 8px">至</span> |
|||
<el-date-picker value-format="yyyy-MM-dd" v-model="listQuery.params.createTimeEnd" clearable type="date" placeholder="结束日期" /> |
|||
</el-form-item> |
|||
</el-form> |
|||
<div class="btn" style="text-align: center;"> |
|||
<el-button type="primary" icon="el-icon-search" @click="handleFilter" size="small">查询</el-button> |
|||
<el-button type="primary" icon="el-icon-refresh" @click="handleReset" size="small">重置</el-button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="listtop"> |
|||
<div class="tit">已读消息列表</div> |
|||
<pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/> |
|||
</div> |
|||
<div class=""> |
|||
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;"> |
|||
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center"/> |
|||
<el-table-column prop="senderName" width="100" label="发送人" align="center" /> |
|||
<el-table-column prop="title" label="标题" align="left" header-align="center" /> |
|||
<el-table-column prop="createTime" width="150" label="日期" align="center" /> |
|||
<el-table-column prop="type" width="100" label="消息类别" align="center" /> |
|||
<el-table-column prop="msgSource" width="100" label="消息来源" align="center" /> |
|||
</el-table> |
|||
</div> |
|||
<div class="pages"> |
|||
<!-- 翻页 --> |
|||
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!-- End 列表页面 --> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import req from '@/api/message/message' |
|||
import Pagination from '@/components/pagination' |
|||
import pageye from '@/components/pagination/pageye' |
|||
import ButtonBar from '@/components/ButtonBar' |
|||
|
|||
export default { |
|||
name: 'ReadMessage', |
|||
components: { |
|||
Pagination, |
|||
pageye, |
|||
ButtonBar |
|||
}, |
|||
data() { |
|||
return { |
|||
viewState: 1, |
|||
btndisabled: false, |
|||
btnList: [ |
|||
{ |
|||
type: 'info', |
|||
size: 'small', |
|||
icon: 'cross', |
|||
btnKey: 'doClose', |
|||
btnLabel: '关闭' |
|||
} |
|||
], |
|||
isSearchShow: false, |
|||
searchxianshitit: '显示查询条件', |
|||
// 查询条件 ----------- |
|||
tableKey: 0, |
|||
list: [], |
|||
listLoading: false, |
|||
listQuery: { |
|||
params: { |
|||
userSid: '', |
|||
state: '', |
|||
createTimeStart: '', |
|||
createTimeEnd: '', |
|||
type: '', |
|||
msgSource: '', |
|||
title: '', |
|||
senderName: '' |
|||
}, |
|||
current: 1, |
|||
size: 10, |
|||
total: 0 |
|||
}, |
|||
rules: {} |
|||
} |
|||
}, |
|||
mounted() { |
|||
this.$refs['btnbar'].setButtonList(this.btnList) |
|||
}, |
|||
methods: { |
|||
// 搜索条件效果 |
|||
clicksearchShow() { |
|||
this.isSearchShow = !this.isSearchShow |
|||
if (this.isSearchShow) { |
|||
this.searchxianshitit = '隐藏查询条件' |
|||
} else { |
|||
this.searchxianshitit = '显示查询条件' |
|||
} |
|||
}, |
|||
btnHandle(btnKey) { |
|||
console.log('XXXXXXXXXXXXXXX ' + btnKey) |
|||
switch (btnKey) { |
|||
case 'doClose': |
|||
this.doClose() |
|||
break |
|||
default: |
|||
break |
|||
} |
|||
}, |
|||
// 序号 |
|||
indexMethod(index) { |
|||
var pagestart = (this.listQuery.current - 1) * this.listQuery.size |
|||
var pageindex = index + 1 + pagestart |
|||
return pageindex |
|||
}, |
|||
// 查询列表信息 |
|||
getList() { |
|||
this.listLoading = true |
|||
this.listQuery.params.userSid = '5d4b06cd-9d5e-11ed-87ce-525401028fe6' |
|||
req.listPage(this.listQuery).then((response) => { |
|||
console.log('列表查询结果:', response) |
|||
this.listLoading = false |
|||
if (response.success) { |
|||
this.list = response.data.records |
|||
this.listQuery.total = response.data.total |
|||
} else { |
|||
this.list = [] |
|||
this.listQuery.total = 0 |
|||
} |
|||
}) |
|||
}, |
|||
handleClick() { |
|||
this.$parent.resetState() |
|||
}, |
|||
handleRead() { |
|||
this.$parent.handleRead() |
|||
}, |
|||
// 查询按钮 |
|||
handleFilter() { |
|||
this.listQuery.current = 1 |
|||
this.getList() |
|||
}, |
|||
resetState() { |
|||
this.viewState = 1 |
|||
}, |
|||
handleReset() { |
|||
this.listQuery = { |
|||
params: { |
|||
userSid: '', |
|||
state: '', |
|||
createTimeStart: '', |
|||
createTimeEnd: '', |
|||
type: '', |
|||
msgSource: '', |
|||
title: '', |
|||
senderName: '' |
|||
}, |
|||
current: 1, |
|||
size: 10, |
|||
total: 0 |
|||
} |
|||
this.getList() |
|||
}, |
|||
doClose() { |
|||
this.$store.dispatch('tagsView/delView', this.$route) |
|||
this.$router.go(-1) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style scoped> |
|||
.btn_style { |
|||
background-color: #018ad2; |
|||
color: white; |
|||
font-weight: 600; |
|||
} |
|||
</style> |
Loading…
Reference in new issue