From d38ab21933f28fc646e128bcbf637c3f311eb5f2 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Fri, 02 Feb 2024 11:13:49 +0800
Subject: [PATCH] 消息管理,系统消息,我的消息
---
src/page/index/top/top-notice.vue | 184 ++++++++++++++++++++++++++++++---------------
1 files changed, 122 insertions(+), 62 deletions(-)
diff --git a/src/page/index/top/top-notice.vue b/src/page/index/top/top-notice.vue
index b1c7c13..d487a3a 100644
--- a/src/page/index/top/top-notice.vue
+++ b/src/page/index/top/top-notice.vue
@@ -1,92 +1,138 @@
<template>
- <div class="noticeBtn" @click="noticeBtn">
- <el-badge v-if="!view">
- <img src="img/notice/xiaoxi-png.png" style="width: 26px;height: 26px; display: flex;" />
- </el-badge>
- <el-badge v-if="view">
- <!-- <i class="el-icon-bell"></i> -->
- <img src="img/notice/xiaoxi-gif.gif" style="width: 26px;height: 26px; display: flex;" />
- </el-badge>
- </div>
- <!-- <el-popover placement="bottom"
- width="0"
- trigger="click"> -->
+<!-- <div class="noticeBtn" @click="noticeBtn">-->
+<!-- <el-badge v-if="!view">-->
+<!-- <img src="img/notice/xiaoxi-png.png" style="width: 26px;height: 26px; display: flex;" />-->
+<!-- </el-badge>-->
+<!-- <el-badge v-if="view">-->
+<!-- <!– <i class="el-icon-bell"></i> –>-->
+<!-- <img src="img/notice/xiaoxi-gif.gif" style="width: 26px;height: 26px; display: flex;" />-->
+<!-- </el-badge>-->
+<!-- </div>-->
- <!-- <el-tabs v-model="activeName">
- <el-tab-pane label="邮件(1)"
- name="first"></el-tab-pane>
- <el-tab-pane label="消息(2)"
- name="second"></el-tab-pane>
- <el-tab-pane label="通知"
- name="third"></el-tab-pane>
+
+ <el-popover placement="bottom" width="350" trigger="click">
+ <el-tabs v-model="activeName" @tab-click="handleTabClick">
+ <el-tab-pane label="未读" name="2"></el-tab-pane>
+ <el-tab-pane label="已读" name="1"></el-tab-pane>
</el-tabs>
<el-scrollbar style="height:300px">
- <avue-notice :data="data"
- :option="option"
- @page-change="pageChange"></avue-notice>
- </el-scrollbar> -->
- <!-- <div slot="reference">
+ <avue-notice :data="data" :option="option" :finish="finish" @page-change="pageChange" @click="handleClick"></avue-notice>
+ </el-scrollbar>
+ <div slot="reference">
<el-badge is-dot>
<i class="el-icon-bell"></i>
</el-badge>
- </div> -->
- <!-- </el-popover> -->
+<!-- <el-badge :value="number" :max="99" class="item">-->
+<!-- <i class="el-icon-bell"></i>-->
+<!-- </el-badge>-->
+ </div>
+ <messageContent ref="messageContent" @reflushList="reflushList" />
+ </el-popover>
+
+
+
+
</template>
<script>
import { updateView, getList } from "@/api/task/reportForRepairs"
-let list = [{
- img: '/img/bg/vip1.png',
- title: '史蒂夫·乔布斯 关注了你',
- subtitle: '05-08 15:08',
- tag: '已经开始',
- status: 0
-}, {
- img: '/img/bg/vip2.png',
- title: '斯蒂夫·沃兹尼亚克 关注了你',
- subtitle: '05-08 15:08',
- tag: '未开始',
- status: 1
-}, {
- img: '/img/bg/vip3.png',
- title: '蒂姆·库克 关注了你',
- subtitle: '05-08 15:08',
- status: 3,
- tag: '有错误'
-}, {
- img: '/img/bg/vip4.png',
- title: '比尔·费尔南德斯 关注了你',
- subtitle: '05-08 15:08',
- status: 4,
- tag: '已完成'
-}]
+import {getMyMessage} from "@/api/messageRecord/messageUser";
+import {mapGetters} from "vuex";
+import MessageContent from "@/page/index/top/components/messageContent.vue";
export default {
name: "top-notice",
+ components: {MessageContent},
data () {
return {
+ finish: false,
baseUrl: "https://sk.hubeishuiyi.cn",
total: 0,
view: false,
- activeName: 'first',
+ activeName: '2',
+ page:{
+ current:1,
+ pageSize:5
+ },
option: {
props: {
img: 'img',
title: 'title',
- subtitle: 'subtitle',
- tag: 'tag',
- status: 'status'
+ subtitle: 'time',
+ tag: "tag",
+ status: "s",
},
},
- data: list,
+ data: [],
+
+ number:"",
}
},
+ computed: {
+ ...mapGetters(["userInfo", "permission"]),
+ },
created () {
- this.getNoticeNumber()
+ // this.getNoticeNumber()
+
+ this.getMessage(this.page)
+
+
},
mounted () {
this.createEventSource()
},
methods: {
+ // 刷新
+ reflushList () {
+ // this.getNotReadNumber();
+ this.getMessage(this.page)
+ },
+ // tab 点击事件
+ handleTabClick (tab, event) {
+ this.page = 1
+ this.activeName = tab.name
+ this.getMessage(this.page)
+ },
+ // 行点击
+ handleClick (row) {
+ // 弹窗
+ this.$nextTick(() => {
+ this.$refs.messageContent.init(row)
+ })
+ },
+
+ getMessage(page,params={}){
+ params.messageType = 'receive'
+ params.isRead = this.activeName
+ params.userId = this.userInfo.user_id
+
+ getMyMessage(page.current,page.size,params).then(res=>{
+ const data = res.data.data
+ const record = data.records
+ record.forEach((item) => {
+ item["tag"] = "查看"
+ item["s"] = "查看"
+ })
+
+ this.data = record
+
+ if (params.isRead == 2){
+ this.number = data.total
+
+ if (data.total == 0){
+ this.number = ""
+ }
+
+ }
+
+ if (data.total < 6) {
+ this.finish = true
+ } else {
+ this.finish = false
+ }
+ })
+
+ },
+
getNoticeNumber () {
var values = {
viewType: 2
@@ -151,11 +197,25 @@
}
},
pageChange (page, done) {
- setTimeout(() => {
- this.$message.success('页码' + page)
- this.data = this.data.concat(list)
- done()
- }, 1000)
+ let params = {}
+
+ params.messageType = 'receive'
+ params.isRead = this.activeName
+ params.userId = this.userInfo.user_id
+
+ getMyMessage(page,page.size,params).then(res=>{
+ const data = res.data.data
+ const record = data.records
+ record.forEach((item) => {
+ item["tag"] = "查看"
+ item["s"] = "查看"
+ })
+ this.data = this.data.concat(record)
+ if (this.data.length == data.total) {
+ this.finish = true
+ }
+ done()
+ })
},
}
--
Gitblit v1.9.3