|
@@ -3,7 +3,7 @@
|
|
|
width="350"
|
|
|
trigger="click">
|
|
|
|
|
|
- <el-tabs v-model="activeName">
|
|
|
+ <el-tabs v-model="activeName" style="align-items: center">
|
|
|
<el-tab-pane label="消息"
|
|
|
name="first">
|
|
|
</el-tab-pane>
|
|
@@ -11,17 +11,20 @@
|
|
|
<el-scrollbar style="height:300px">
|
|
|
<avue-notice :data="data"
|
|
|
:option="option"
|
|
|
- @page-change="pageChange"></avue-notice>
|
|
|
+ @click="goUrl"
|
|
|
+ @page-change="pageChange">
|
|
|
+ </avue-notice>
|
|
|
</el-scrollbar>
|
|
|
<div slot="reference">
|
|
|
<el-badge :value="badge">
|
|
|
- <i class="el-icon-bell"></i>
|
|
|
+ <i class="el-icon-bell" @click="init"></i>
|
|
|
</el-badge>
|
|
|
</div>
|
|
|
</el-popover>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+ import { getMsgLogs , getMsgDetail,getMessage } from "@/api/logs";
|
|
|
export default {
|
|
|
name: "top-notice",
|
|
|
data () {
|
|
@@ -30,14 +33,14 @@ export default {
|
|
|
option: {
|
|
|
props: {
|
|
|
img: 'img',
|
|
|
- title: 'title',
|
|
|
- subtitle: 'subtitle',
|
|
|
+ title: 'messageBody',
|
|
|
+ subtitle: 'createTime',
|
|
|
tag: 'tag',
|
|
|
- status: 'status'
|
|
|
+ status: 'messageType'
|
|
|
},
|
|
|
},
|
|
|
data: [],
|
|
|
- path:"ws://192.168.1.151:8104/websocket?user=1",
|
|
|
+ path:"",
|
|
|
socket:"",
|
|
|
badge:''
|
|
|
}
|
|
@@ -46,11 +49,21 @@ export default {
|
|
|
// this.webSocket();
|
|
|
},
|
|
|
mounted() {
|
|
|
+ //60秒轮训消息
|
|
|
+ window.setInterval(() => {
|
|
|
+ setTimeout(() => {
|
|
|
+ this.assistMessage()
|
|
|
+ },0)
|
|
|
+ },60000)
|
|
|
+ this.path = "wss://trade.tubaosoft.com/api/blade-client/websocket?user=" + this.$store.getters.userInfo.user_id
|
|
|
this.init();
|
|
|
},
|
|
|
methods: {
|
|
|
//初始化
|
|
|
init(){
|
|
|
+ getMsgLogs().then(res=>{
|
|
|
+ this.afterData(res.data.data.records)
|
|
|
+ })
|
|
|
if(typeof(WebSocket) === "undefined"){
|
|
|
alert("您的浏览器不支持socket")
|
|
|
}else{
|
|
@@ -62,25 +75,23 @@ export default {
|
|
|
this.socket.onerror = this.error
|
|
|
// 监听socket消息
|
|
|
this.socket.onmessage = this.getMessage
|
|
|
+ this.assistMessage()
|
|
|
}
|
|
|
},
|
|
|
open() {
|
|
|
console.log("socket连接成功")
|
|
|
- console.log()
|
|
|
},
|
|
|
error() {
|
|
|
console.log("连接错误")
|
|
|
},
|
|
|
getMessage(msg){
|
|
|
- console.log(msg.data)
|
|
|
-
|
|
|
- // let msgData = JSON.stringify(msg.data);
|
|
|
- // console.log(msgData)
|
|
|
- // if(msg.data.unRead){
|
|
|
- // this.badge = msg.data.unReadNum
|
|
|
- // }else{
|
|
|
- // this.badge = ''
|
|
|
- // }
|
|
|
+ let msgData = JSON.parse(msg);
|
|
|
+ console.log(msgData.data.unRead)
|
|
|
+ if(msgData.data.unRead){
|
|
|
+ this.badge = msgData.data.unReadNum
|
|
|
+ }else{
|
|
|
+ this.badge = ''
|
|
|
+ }
|
|
|
},
|
|
|
send() {
|
|
|
// this.socket.send(params)
|
|
@@ -88,13 +99,38 @@ export default {
|
|
|
close() {
|
|
|
console.log("socket已经关闭")
|
|
|
},
|
|
|
-
|
|
|
+ assistMessage(){
|
|
|
+ //辅助消息接口
|
|
|
+ getMessage().then(res=>{
|
|
|
+ this.getMessage(JSON.stringify(res))
|
|
|
+ })
|
|
|
+ },
|
|
|
+ goUrl(row){
|
|
|
+ if(row.url){
|
|
|
+ this.$router.push({
|
|
|
+ path: row.url,
|
|
|
+ query: {params:row.parameter},
|
|
|
+ });
|
|
|
+ }
|
|
|
+ getMsgDetail(row.id).then(res=>{
|
|
|
+ this.$set(row,"isRead",res.data.data.isRead)
|
|
|
+ this.afterData(this.data)
|
|
|
+ this.assistMessage()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ afterData(data){
|
|
|
+ this.data = data.map(item =>{
|
|
|
+ if(item.isRead == 0){
|
|
|
+ item.tag = "未读"
|
|
|
+ item.messageType = 1//状态 0 灰色 1 蓝色 2 橙色 3 红色 4 绿色
|
|
|
+ }else{
|
|
|
+ item.tag = "已读"
|
|
|
+ item.messageType = 0
|
|
|
+ }
|
|
|
+ return item
|
|
|
+ })
|
|
|
+ },
|
|
|
pageChange (page, done) {
|
|
|
- setTimeout(() => {
|
|
|
- this.$message.success('页码' + page)
|
|
|
- this.data = this.data.concat(list);
|
|
|
- done();
|
|
|
- }, 1000)
|
|
|
|
|
|
},
|
|
|
}
|
|
@@ -102,4 +138,7 @@ export default {
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
+ ::v-deep .avue-notice__more {
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
</style>
|