base.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. import axios from 'axios'
  2. export default {
  3. websocket: (url, callback,) => {
  4. let websocket = null
  5. // console.log(this_)
  6. if ("WebSocket" in window) {
  7. websocket = new WebSocket(url);
  8. } else if ("MozWebSocket" in window) {
  9. websocket = new WebSocket(url);
  10. } else {
  11. // console.error("'不支持 WebSocKet");
  12. }
  13. //连接发生错误的回调方法
  14. websocket.onerror = event => {
  15. console.log(event)
  16. websocket = null
  17. if ("WebSocket" in window) {
  18. websocket = new WebSocket(url);
  19. } else if ("MozWebSocket" in window) {
  20. websocket = new WebSocket(url);
  21. }
  22. if(websocket){
  23. websocketOnopen(websocket)
  24. }
  25. console.log("error");
  26. }
  27. //接收到消息的回调方法
  28. websocketOnopen(websocket)
  29. function websocketOnopen(websocket) {
  30. websocket.onopen = () => {
  31. // console.log(event,error)
  32. callback(websocket)
  33. //接收到消息的回调方法
  34. // websocket.onmessage = event => {
  35. // if (callback) {
  36. // if (event.data) {
  37. // try {
  38. // let data = JSON.parse(event.data)
  39. // if (data.code == '0000') {
  40. // callback(data,websocket);
  41. // } else {
  42. // if (error) {
  43. // error(data)
  44. // }
  45. // this_.$alert(data.msg, this_.$t('App.message.text1'), {
  46. // confirmButtonText: this_.$t('App.message.text2'),
  47. // });
  48. // }
  49. // if (data.data.status == 2) {
  50. // websocket.close();
  51. // }
  52. // } catch (e) {
  53. // console.log()
  54. // }
  55. // } else {
  56. // callback()
  57. // }
  58. // }
  59. // };
  60. //连接关闭的回调方法
  61. // websocket.onclose = () => console.log("close");
  62. //监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
  63. window.onbeforeunload = () => websocket.close();
  64. //return websocket;
  65. };
  66. }
  67. return websocket;
  68. },
  69. ajax_get: (url, param, callback, this_) => {
  70. axios.get(url, { params: param }).then(res => {
  71. let data = res.data
  72. if (data.result) {
  73. if (callback) {
  74. if (data.model && JSON.stringify(data.model).length > 2) {
  75. try {
  76. callback(data.model)
  77. } catch (e) {
  78. // console.log('异常了')
  79. // console.log(e)
  80. }
  81. } else {
  82. callback(data.model)
  83. }
  84. }
  85. } else {
  86. this_.$alert(data.message, this_.$t('App.message.text26'));
  87. }
  88. })
  89. },
  90. ajax_post: (url, data, param, callback, this_, error, error_t) => {
  91. let qs = require('qs')
  92. data.version = this_.version;
  93. data.os = '0';
  94. axios.post(url, qs.stringify(data), { params: param }).then(res => {
  95. let data = res.data
  96. if (data.code == '0000') {
  97. if (callback) {
  98. callback(data, this_)
  99. }
  100. } else if (data.code == '0001' || data.code == '0002' || data.code == '0003' || data.code == '0004' || data.code == '0102') {
  101. if (error) {
  102. error(data, this_)
  103. }
  104. this_.$alert(data.msg, this_.$t('App.message.text1'), {
  105. confirmButtonText: this_.$t('App.message.text2'),
  106. });
  107. this_.$store.commit('ROUTERSTRFUN',{
  108. routerStr:'/login',
  109. })
  110. var oDate = new Date();
  111. oDate.setTime(oDate.getTime() + ('' * 24 * 60 * 60 * 1000));
  112. oDate = oDate.toUTCString()
  113. document.cookie = 'userData' + '=' + '' + ';expires=' + oDate;
  114. this_.$router.push({path:'/login'})
  115. // if(this_.websocket){
  116. // this_.websocket.close();
  117. // }
  118. } else {
  119. if (error) {
  120. error(data, this_)
  121. }
  122. if (!error_t) {
  123. this_.$alert(data.msg, this_.$t('App.message.text1'), {
  124. confirmButtonText: this_.$t('App.message.text2'),
  125. });
  126. }
  127. }
  128. })
  129. },
  130. ajax_postWs: (url, data, this_,) => {
  131. let qs = require('qs')
  132. data.version = this_.version;
  133. data.os = '0';
  134. axios.post(url, qs.stringify(data)).then(() => {})
  135. },
  136. setCookie: (key, value, iDay) => {
  137. var oDate = new Date();
  138. oDate.setTime(oDate.getTime() + (iDay * 24 * 60 * 60 * 1000));
  139. oDate = oDate.toUTCString();
  140. // document.cookie = key + '=' + value;
  141. // console.log(key + '=' + value + ';expires=' + oDate)
  142. document.cookie = key + '=' + value + ';expires=' + oDate;
  143. },
  144. // removeCookie: (key) => {
  145. // setCookie(key, '', -1); //这里只需要把Cookie保质期退回一天便可以删除
  146. // },
  147. getCookie: (key) => {
  148. var cookieArr = document.cookie.split('; ');
  149. for (var i = 0; i < cookieArr.length; i++) {
  150. var arr = cookieArr[i].split('=');
  151. if (arr[0] === key) {
  152. return arr[1];
  153. }
  154. }
  155. return false;
  156. }
  157. }