{"remainingRequest":"C:\\Users\\100zone\\Desktop\\baizong\\community\\SmartCommunity\\videoSurveillance\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\100zone\\Desktop\\baizong\\community\\SmartCommunity\\videoSurveillance\\node_modules\\style-vw-loader\\index.js??ref--0-2!C:\\Users\\100zone\\Desktop\\baizong\\community\\SmartCommunity\\videoSurveillance\\src\\components\\common\\Header.vue?vue&type=script&lang=js&","dependencies":[{"path":"C:\\Users\\100zone\\Desktop\\baizong\\community\\SmartCommunity\\videoSurveillance\\src\\components\\common\\Header.vue","mtime":1663828782921},{"path":"C:\\Users\\100zone\\Desktop\\baizong\\community\\SmartCommunity\\videoSurveillance\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\100zone\\Desktop\\baizong\\community\\SmartCommunity\\videoSurveillance\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"C:\\Users\\100zone\\Desktop\\baizong\\community\\SmartCommunity\\videoSurveillance\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\100zone\\Desktop\\baizong\\community\\SmartCommunity\\videoSurveillance\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000},{"path":"C:\\Users\\100zone\\Desktop\\baizong\\community\\SmartCommunity\\videoSurveillance\\node_modules\\style-vw-loader\\index.js","mtime":1540864632000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport { mapState, mapGetters, mapMutations, mapActions } from 'vuex';\r\nimport envConfig from '@/config';\r\nimport vTags from './Tags.vue';\r\nexport default {\r\n data() {\r\n return {\r\n name: '',\r\n envConfig: envConfig,\r\n imgList: {\r\n 1: require('@/assets/img/icon_msg1.png'),\r\n 2: require('@/assets/img/icon_msg7.png'),\r\n 10: require('@/assets/img/icon_msg9.png'),\r\n 11: require('@/assets/img/icon_msg9.png'),\r\n 13: require('@/assets/img/icon_msg9.png')\r\n }\r\n };\r\n },\r\n components: {\r\n vTags\r\n },\r\n computed: {\r\n cruUserInfo() {\r\n return this.$store.getters['getCruUserInfo'];\r\n },\r\n collapse() {\r\n return this.$store.getters['getCollapse'];\r\n },\r\n ...mapState(['messageNumber']),\r\n ...mapState(['messageList'])\r\n },\r\n methods: {\r\n toUrl(type) {\r\n this.$router.push({\r\n path: '/msg'\r\n });\r\n },\r\n // 退出登录\r\n logOut() {\r\n var access_token = localStorage.getItem('SC_token');\r\n this.$http.postForm('/sc-user-auth/user/logout', { access_token: access_token }).then(({ status, data, msg }) => {\r\n if (0 === status) {\r\n this.$message({\r\n type: 'success',\r\n message: '您已退出登录'\r\n });\r\n localStorage.removeItem('SC_token');\r\n sessionStorage.removeItem('SC_listMuen');\r\n this.$store.commit('setloginInfo', '');\r\n this.$store.dispatch('tags', []);\r\n\r\n sessionStorage.removeItem('tabs');\r\n window.location.href = this.envConfig.loginUrl;\r\n } else {\r\n this.$message.error(msg);\r\n }\r\n });\r\n },\r\n getUserInfo(resolve) {\r\n this.$http.postForm('/sc-user-center/user/findLoginUserById').then(({ status, data, msg }) => {\r\n if (status === 0) {\r\n this.$store.commit('setcCruUserInfo', data);\r\n } else {\r\n this.$message.error('获取用户信息失败');\r\n }\r\n resolve && resolve(true);\r\n });\r\n },\r\n editUserInfo() {\r\n new Promise((resolve) => {\r\n this.$store.dispatch('addPopup', {\r\n url: '/system/edituser.vue',\r\n width: '500px',\r\n height: '500px',\r\n props: {\r\n data: JSON.parse(JSON.stringify(this.cruUserInfo)),\r\n callback: resolve\r\n },\r\n title: '编辑用户信息'\r\n });\r\n }).then(() => {\r\n this.getUserInfo();\r\n });\r\n },\r\n goMessage(msg) {\r\n let messageStatus = 2; //全部\r\n if (msg == 'unread') {\r\n messageStatus = 0; //未读\r\n }\r\n this.$store.commit('setmessageStatus', messageStatus);\r\n this.$router.push({\r\n path: '/msg'\r\n });\r\n },\r\n //获取最新消息列表\r\n getMessageList() {\r\n this.$http.postForm('/sc-message/message/queryLastMessage', { num: '5' }).then(({ status, data, msg }) => {\r\n if (status === 0) {\r\n this.$store.commit('setmessageList', data);\r\n }\r\n });\r\n },\r\n //查询未读消息数量\r\n getUnreadNumber() {\r\n this.$http.postForm('/sc-message/message/queryUnreadMessageStatic').then(({ status, data, msg }) => {\r\n if (status === 0) {\r\n data.map((item, index) => {\r\n if (item.cn) {\r\n this.$store.commit('setmessageNumber', true);\r\n }\r\n });\r\n }\r\n });\r\n },\r\n //初始化websoket\r\n initWebSocket(id) {\r\n if ('WebSocket' in window) {\r\n var serviceIp = this.envConfig.websoketUrl;\r\n this.websocket = new WebSocket('ws://' + serviceIp + '/sc-message/webSocket/' + id);\r\n } else {\r\n console.log('当前浏览器 Not support websocket');\r\n }\r\n let that = this;\r\n this.interval = window.setInterval(function () {\r\n //每隔30秒钟发送一次心跳,避免websocket连接因超时而自动断开\r\n if (that.websocket != null) {\r\n // that.websocket.send('HeartBeat');\r\n // console.log('发送心跳包:HeartBeat');\r\n }\r\n }, 30000);\r\n //连接发生错误的回调方法\r\n this.websocket.onerror = function (ev) {\r\n console.log('WebSocket连接发生错误');\r\n };\r\n\r\n //连接成功建立的回调方法\r\n this.websocket.onopen = function (ev) {\r\n console.log('WebSocket连接成功');\r\n // this.send('addsocket');\r\n };\r\n\r\n //接收到消息的回调方法\r\n this.websocket.onmessage = function (event) {\r\n try {\r\n let msg = JSON.parse(event.data);\r\n // let i = msg.typeId - 1;\r\n let i = msg.typeId;\r\n if (msg.userId) {\r\n that.$notify({\r\n dangerouslyUseHTMLString: true,\r\n showClose: true,\r\n customClass: 'notice_icon',\r\n offset: 50,\r\n duration: 3000,\r\n message:\r\n \"
新消息通知\" +\r\n '【' +\r\n msg.type +\r\n '】' +\r\n msg.content +\r\n '
'\r\n });\r\n that.getMessageList();\r\n that.getUnreadNumber();\r\n }\r\n } catch (e) {}\r\n };\r\n\r\n //连接关闭的回调方法\r\n this.websocket.onclose = function (ev) {\r\n console.log('WebSocket连接关闭');\r\n this.websocket = null;\r\n };\r\n },\r\n send(message) {\r\n if (this.websocket && this.websocket != null) {\r\n // this.websocket.send(message);\r\n console.log('发送的消息:' + message);\r\n }\r\n },\r\n //关闭WebSocket连接\r\n closeWebSocket() {\r\n if (this.websocket != null) {\r\n this.websocket.close();\r\n }\r\n if (this.interval) {\r\n window.clearInterval(this.interval);\r\n }\r\n }\r\n },\r\n mounted() {\r\n let vm = this;\r\n window.onbeforeunload = function () {\r\n vm.closeWebSocket();\r\n };\r\n },\r\n destoryed() {\r\n this.closeWebSocket();\r\n },\r\n created() {\r\n new Promise((resolve) => {\r\n this.getUserInfo(resolve);\r\n }).then((_) => {\r\n let id = this.$store.state.cruUserInfo.id;\r\n this.initWebSocket(id);\r\n this.getMessageList();\r\n this.getUnreadNumber();\r\n });\r\n }\r\n};\r\n",{"version":3,"sources":["Header.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"Header.vue","sourceRoot":"src/components/common","sourcesContent":["\r\n\r\n\r\n"]}]}