|
@@ -7,7 +7,7 @@
|
|
|
<div class="avue-layout">
|
|
|
<div class="avue-left">
|
|
|
<!-- 左侧导航栏 -->
|
|
|
- <sidebar />
|
|
|
+ <sidebar :msgCount="msgCount" />
|
|
|
</div>
|
|
|
<div class="avue-main">
|
|
|
<!-- 顶部标签卡 -->
|
|
@@ -38,6 +38,7 @@
|
|
|
|
|
|
<script>
|
|
|
import { mapGetters } from "vuex";
|
|
|
+
|
|
|
import tags from "./tags";
|
|
|
import search from "./search";
|
|
|
import top from "./top/";
|
|
@@ -46,8 +47,13 @@ import admin from "@/util/admin";
|
|
|
import { validatenull } from "@/util/validate";
|
|
|
import { calcDate } from "@/util/date.js";
|
|
|
import { getStore } from "@/util/store.js";
|
|
|
+import website from '@/config/website';
|
|
|
+
|
|
|
+let socket
|
|
|
+//初始组合式
|
|
|
|
|
|
export default {
|
|
|
+
|
|
|
components: {
|
|
|
top,
|
|
|
tags,
|
|
@@ -60,6 +66,14 @@ export default {
|
|
|
index: this,
|
|
|
};
|
|
|
},
|
|
|
+ watch: {
|
|
|
+ $route(val){
|
|
|
+ //发送消息
|
|
|
+ this.socketSend()
|
|
|
+ },
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
data() {
|
|
|
return {
|
|
|
//搜索控制
|
|
@@ -68,16 +82,27 @@ export default {
|
|
|
refreshLock: false,
|
|
|
//刷新token的时间
|
|
|
refreshTime: "",
|
|
|
+ msgCount:{
|
|
|
+ myMessageCount:2
|
|
|
+ },
|
|
|
+ routeinfo:{}
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
+
|
|
|
//实时检测刷新token
|
|
|
this.refreshToken();
|
|
|
+
|
|
|
},
|
|
|
+
|
|
|
mounted() {
|
|
|
this.init();
|
|
|
+ this.setInitSocket()
|
|
|
+
|
|
|
+
|
|
|
},
|
|
|
- computed: mapGetters(["isMenu", "isLock", "isCollapse", "website", "menu"]),
|
|
|
+ computed: mapGetters(["isMenu", "isLock", "isCollapse", "website", "menu", "userInfo"]),
|
|
|
+
|
|
|
props: [],
|
|
|
methods: {
|
|
|
showCollapse() {
|
|
@@ -97,8 +122,10 @@ export default {
|
|
|
openMenu(item = {}) {
|
|
|
this.$store.dispatch("GetMenu", item.id).then((data) => {
|
|
|
if (data.length !== 0) {
|
|
|
+
|
|
|
this.$router.$avueRouter.formatRoutes(data, true);
|
|
|
}
|
|
|
+
|
|
|
//当点击顶部菜单后默认打开第一个菜单
|
|
|
/*if (!this.validatenull(item)) {
|
|
|
let itemActive = {},
|
|
@@ -121,6 +148,8 @@ export default {
|
|
|
});
|
|
|
}*/
|
|
|
});
|
|
|
+ //发送消息
|
|
|
+
|
|
|
},
|
|
|
// 定时检测token
|
|
|
refreshToken() {
|
|
@@ -145,6 +174,44 @@ export default {
|
|
|
}
|
|
|
}, 10000);
|
|
|
},
|
|
|
+ //推送系统
|
|
|
+
|
|
|
+ setInitSocket () {
|
|
|
+ const user_id = this.userInfo.user_id;
|
|
|
+ socket = new WebSocket(website.socket + user_id);
|
|
|
+ socket.onopen = function (evt) {
|
|
|
+ console.log('websocket链接成功');
|
|
|
+ };
|
|
|
+
|
|
|
+ socket.onclose = function (evt) {
|
|
|
+ console.log('websocket连接已断开')
|
|
|
+ };
|
|
|
+ socket.onmessage = function ({data}) {
|
|
|
+ if (data) {
|
|
|
+ this.msgCount = JSON.parse(data)
|
|
|
+ }
|
|
|
+ console.log(data,'消息信息')
|
|
|
+ };
|
|
|
+ socket.onerror = function ({data}) {
|
|
|
+ console.log('发生错误:', data)
|
|
|
+ };
|
|
|
+ },
|
|
|
+
|
|
|
+ //发送消息
|
|
|
+ socketSend (msg) {
|
|
|
+ const user_id = this.userInfo.user_id;
|
|
|
+ console.log('发送消息:',)
|
|
|
+ if (socket) {
|
|
|
+ console.log(222222222)
|
|
|
+ socket.send(user_id);
|
|
|
+ } else {
|
|
|
+ setTimeout(()=>{
|
|
|
+ socket.send(user_id);
|
|
|
+ }, 1000)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
},
|
|
|
+
|
|
|
};
|
|
|
</script>
|