|
|
@@ -0,0 +1,182 @@
|
|
|
+<template>
|
|
|
+<div class="message">
|
|
|
+ <NavBar />
|
|
|
+ <div v-if="!show" class="page-container">
|
|
|
+ <van-tabs v-model="query.type" @change="changeList">
|
|
|
+ <van-tab title="公告/通知" name="1"></van-tab>
|
|
|
+ <van-tab title="业务提醒" name="2"></van-tab>
|
|
|
+ <van-tab title="消息" name="3"></van-tab>
|
|
|
+ </van-tabs>
|
|
|
+ <div class="card-list">
|
|
|
+ <van-empty description="暂无数据" v-if="!dataList || dataList.length === 0" />
|
|
|
+ <Scroll
|
|
|
+ v-else
|
|
|
+ @pulldown="refreshData"
|
|
|
+ @pullup="getDataList"
|
|
|
+ :data='dataList'
|
|
|
+ :pullup="pullup"
|
|
|
+ class="wrapper"
|
|
|
+ ref="wrapper">
|
|
|
+ <van-cell-group v-for="(v,i) in dataList">
|
|
|
+ <van-cell class="list-item" :title="v.title" :label="v.content" @click="clickItem(v)">
|
|
|
+ <template #right-icon>
|
|
|
+ <i class="point-icon" :class="{'active':v.isRead}" />
|
|
|
+ </template>
|
|
|
+ <template #label>
|
|
|
+ <div class="cell-label">
|
|
|
+ <p >{{v.content}}</p>
|
|
|
+ </div>
|
|
|
+ <p class="cell-time">{{v.publishTime}}</p>
|
|
|
+ </template>
|
|
|
+ </van-cell>
|
|
|
+ </van-cell-group>
|
|
|
+ </Scroll>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div v-else class="message-detail">
|
|
|
+ <van-panel v-if="selected" :title="selected.title" :desc="selected.orgName">
|
|
|
+ <div class="message-content">
|
|
|
+ <p>{{selected.content}}</p>
|
|
|
+ <p class="cell-time">{{selected.publishTime}}</p>
|
|
|
+ </div>
|
|
|
+ </van-panel>
|
|
|
+ </div>
|
|
|
+
|
|
|
+</div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import NavBar from '@/components/NavBar'
|
|
|
+import Scroll from '@/components/scroll/scroll'
|
|
|
+import {msgList,dataList} from './api'
|
|
|
+import {mapGetters} from "vuex";
|
|
|
+export default {
|
|
|
+ components: {
|
|
|
+ NavBar,
|
|
|
+ Scroll
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ show:false,
|
|
|
+ selected:null,
|
|
|
+ dataList: [],
|
|
|
+ query:{
|
|
|
+ type:1,
|
|
|
+ pageNum:1,
|
|
|
+ pageSize:10,
|
|
|
+ },
|
|
|
+ pullup:false,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ computed:{
|
|
|
+ ...mapGetters(['orgId','id','roleList'])
|
|
|
+ },
|
|
|
+ mounted(){
|
|
|
+ this.getDataList();
|
|
|
+ },
|
|
|
+ methods:{
|
|
|
+ clickItem(v){
|
|
|
+ this.selected = v;
|
|
|
+ this.show = true;
|
|
|
+ },
|
|
|
+ refreshData(){
|
|
|
+ this.getDataList();
|
|
|
+ },
|
|
|
+ changeList(v,type){
|
|
|
+ console.log(v,type,'type')
|
|
|
+ this.query.pageNum = 1;
|
|
|
+ this.getDataList();
|
|
|
+ },
|
|
|
+ getDataList(){
|
|
|
+ let data = {};
|
|
|
+ if(this.query.type == 1){
|
|
|
+ console.log(this.orgId,'tttttttttttt')
|
|
|
+ data = {
|
|
|
+ ...this.query,
|
|
|
+ userId:this.id,
|
|
|
+ orgId:this.orgId,
|
|
|
+ tagRoleIds:this.roleList.map(v=>{return v.roleId}),
|
|
|
+ }
|
|
|
+ msgList(data).then(res=>{
|
|
|
+ this.dataList = res.rows;
|
|
|
+ })
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ data = {
|
|
|
+ ...this.query,
|
|
|
+ userId:this.id,
|
|
|
+ }
|
|
|
+ dataList(data).then(res=>{
|
|
|
+ this.dataList = res.rows;
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+<style lang="scss">
|
|
|
+.message{
|
|
|
+ //.van-empty{
|
|
|
+ // background-color: #fff;
|
|
|
+ //}
|
|
|
+ .van-cell-group{
|
|
|
+ background-color: #fff;
|
|
|
+ }
|
|
|
+ .van-tabs__line{
|
|
|
+ background-color: #008cd6;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|
|
|
+<style lang="scss" scoped>
|
|
|
+.message{
|
|
|
+
|
|
|
+}
|
|
|
+.card-list{
|
|
|
+ padding: 20px;
|
|
|
+ height: calc(100vh - 290px);
|
|
|
+ overflow: auto;
|
|
|
+}
|
|
|
+.list-item{
|
|
|
+ margin-bottom: 20px;
|
|
|
+}
|
|
|
+.cell-label{
|
|
|
+ width: 100%;
|
|
|
+ padding: 10px;
|
|
|
+ min-height: 50px;
|
|
|
+ line-height: 36px;
|
|
|
+ max-height: 250px;
|
|
|
+ overflow: hidden;
|
|
|
+ >p{
|
|
|
+ display: -webkit-box;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ -webkit-line-clamp: 3;
|
|
|
+ -webkit-box-orient: vertical;
|
|
|
+ line-height: 40px;
|
|
|
+ }
|
|
|
+}
|
|
|
+.cell-time{
|
|
|
+ text-align: right;
|
|
|
+ height: 60px;
|
|
|
+ padding-top: 20px;
|
|
|
+}
|
|
|
+.point-icon{
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ background-color:#ccc;
|
|
|
+ border-radius: 50%;
|
|
|
+ margin-top: 10px;
|
|
|
+ display: none;
|
|
|
+ &.active{
|
|
|
+ display: block;
|
|
|
+ background-color: #03a5ff;
|
|
|
+ }
|
|
|
+}
|
|
|
+.message-detail{
|
|
|
+ height: calc(100vh - 192px);
|
|
|
+ background-color: #fff;
|
|
|
+}
|
|
|
+.message-content{
|
|
|
+ padding:20px 30px;
|
|
|
+ overflow: auto;
|
|
|
+}
|
|
|
+</style>
|