import axios from 'axios' export default { websocket: (url, callback,) => { let websocket = null // console.log(this_) if ("WebSocket" in window) { websocket = new WebSocket(url); } else if ("MozWebSocket" in window) { websocket = new WebSocket(url); } else { // console.error("'不支持 WebSocKet"); } //连接发生错误的回调方法 websocket.onerror = event => { console.log(event) websocket = null if ("WebSocket" in window) { websocket = new WebSocket(url); } else if ("MozWebSocket" in window) { websocket = new WebSocket(url); } if(websocket){ websocketOnopen(websocket) } console.log("error"); } //接收到消息的回调方法 websocketOnopen(websocket) function websocketOnopen(websocket) { websocket.onopen = () => { // console.log(event,error) callback(websocket) //接收到消息的回调方法 // websocket.onmessage = event => { // if (callback) { // if (event.data) { // try { // let data = JSON.parse(event.data) // if (data.code == '0000') { // callback(data,websocket); // } else { // if (error) { // error(data) // } // this_.$alert(data.msg, this_.$t('App.message.text1'), { // confirmButtonText: this_.$t('App.message.text2'), // }); // } // if (data.data.status == 2) { // websocket.close(); // } // } catch (e) { // console.log() // } // } else { // callback() // } // } // }; //连接关闭的回调方法 // websocket.onclose = () => console.log("close"); //监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。 window.onbeforeunload = () => websocket.close(); //return websocket; }; } return websocket; }, ajax_get: (url, param, callback, this_) => { axios.get(url, { params: param }).then(res => { let data = res.data if (data.result) { if (callback) { if (data.model && JSON.stringify(data.model).length > 2) { try { callback(data.model) } catch (e) { // console.log('异常了') // console.log(e) } } else { callback(data.model) } } } else { this_.$alert(data.message, this_.$t('App.message.text26')); } }) }, ajax_post: (url, data, param, callback, this_, error, error_t) => { let qs = require('qs') data.version = this_.version; data.os = '0'; axios.post(url, qs.stringify(data), { params: param }).then(res => { let data = res.data if (data.code == '0000') { if (callback) { callback(data, this_) } } else if (data.code == '0001' || data.code == '0002' || data.code == '0003' || data.code == '0004' || data.code == '0102') { if (error) { error(data, this_) } this_.$alert(data.msg, this_.$t('App.message.text1'), { confirmButtonText: this_.$t('App.message.text2'), }); this_.$store.commit('ROUTERSTRFUN',{ routerStr:'/login', }) var oDate = new Date(); oDate.setTime(oDate.getTime() + ('' * 24 * 60 * 60 * 1000)); oDate = oDate.toUTCString() document.cookie = 'userData' + '=' + '' + ';expires=' + oDate; this_.$router.push({path:'/login'}) // if(this_.websocket){ // this_.websocket.close(); // } } else { if (error) { error(data, this_) } if (!error_t) { this_.$alert(data.msg, this_.$t('App.message.text1'), { confirmButtonText: this_.$t('App.message.text2'), }); } } }) }, ajax_postWs: (url, data, this_,) => { let qs = require('qs') data.version = this_.version; data.os = '0'; axios.post(url, qs.stringify(data)).then(() => {}) }, setCookie: (key, value, iDay) => { var oDate = new Date(); oDate.setTime(oDate.getTime() + (iDay * 24 * 60 * 60 * 1000)); oDate = oDate.toUTCString(); // document.cookie = key + '=' + value; // console.log(key + '=' + value + ';expires=' + oDate) document.cookie = key + '=' + value + ';expires=' + oDate; }, // removeCookie: (key) => { // setCookie(key, '', -1); //这里只需要把Cookie保质期退回一天便可以删除 // }, getCookie: (key) => { var cookieArr = document.cookie.split('; '); for (var i = 0; i < cookieArr.length; i++) { var arr = cookieArr[i].split('='); if (arr[0] === key) { return arr[1]; } } return false; } }