service.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. /*
  2. * @Description: service类,其他业务层继承此类
  3. * @Author: sql
  4. * @Date: 2018-11-22 16:57:16
  5. * @LastEditTime: 2018-11-30 10:39:09
  6. */
  7. import Vue from "vue"
  8. import axios from 'axios'
  9. import Config from '../config'
  10. import store from '../store'
  11. import session from "./session";
  12. Vue.prototype.$store = store;
  13. // axios.defaults.baseURL = Config.Host
  14. if (sessionStorage.getItem("access_token")) {
  15. axios.defaults.headers.common['Access-Token'] = sessionStorage.getItem("access_token")
  16. }
  17. if (sessionStorage.getItem("lang")) {
  18. axios.defaults.headers.common['Language'] = sessionStorage.getItem("lang")
  19. }
  20. if (sessionStorage.getItem("CLIENT")) {
  21. axios.defaults.headers.common['CLIENT'] = sessionStorage.getItem("CLIENT")
  22. }
  23. axios.defaults.headers.common['X-System'] = 'A'
  24. const SystemError = {
  25. "cn":"网络状态不佳,请稍后重试。",
  26. "en":"The network is not in good condition. Please try again later.",
  27. "vn":"Mạng không được tốt lắm. Vui lòng thử lại sau.",
  28. }
  29. class Service {
  30. constructor() {
  31. this.axio = axios;
  32. this.vue = new Vue({store})
  33. }
  34. // session过期
  35. SessionExpire() {
  36. this.vue.$store.commit("InfoExpire", true)
  37. }
  38. // // 统一登陆
  39. // Login(params) {
  40. // //console.log(params)
  41. // }
  42. // 统一登出
  43. Logout() {
  44. let _vue = new Vue()
  45. _vue.$routes.push({
  46. name: 'login'
  47. })
  48. _vue = null
  49. }
  50. //多端口-多token
  51. getAll(type,url,params){
  52. switch (type) {
  53. case 'Host80':
  54. this.axio.defaults.baseURL = Config.Host80;
  55. this.axio.defaults.headers.common['Access-Token'] = sessionStorage.getItem("access_token");
  56. break;
  57. case 'Host04':
  58. this.axio.defaults.baseURL = Config.Host04;
  59. this.axio.defaults.headers.common['Access-Token'] = sessionStorage.getItem("access_token");
  60. break;
  61. case 'Host90':
  62. this.axio.defaults.baseURL = Config.Host90;
  63. this.axio.defaults.headers.common['Access-Token'] = sessionStorage.getItem("access_token");
  64. break;
  65. case 'HostShop':
  66. this.axio.defaults.baseURL = Config.HostShop;
  67. this.axio.defaults.headers.common['Access-Token'] = sessionStorage.getItem("shop_token");
  68. break;
  69. case 'Host87':
  70. this.axio.defaults.baseURL = Config.Host87;
  71. this.axio.defaults.headers.common['Access-Token'] = sessionStorage.getItem("access_token");
  72. break;
  73. }
  74. return this.get(url,params);
  75. }
  76. postAll(type,url,params,config = {}){
  77. switch (type) {
  78. case 'Host80':
  79. this.axio.defaults.baseURL = Config.Host80;
  80. this.axio.defaults.headers.common['Access-Token'] = sessionStorage.getItem("access_token");
  81. break;
  82. case 'Host04':
  83. this.axio.defaults.baseURL = Config.Host04;
  84. this.axio.defaults.headers.common['Access-Token'] = sessionStorage.getItem("access_token");
  85. break;
  86. case 'Host05':
  87. this.axio.defaults.baseURL = Config.Host05;
  88. this.axio.defaults.headers.common['Access-Token'] = sessionStorage.getItem("access_token");
  89. break;
  90. case 'Host90':
  91. this.axio.defaults.baseURL = Config.Host90;
  92. this.axio.defaults.headers.common['Access-Token'] = sessionStorage.getItem("access_token");
  93. break;
  94. case 'HostShop':
  95. this.axio.defaults.baseURL = Config.HostShop;
  96. this.axio.defaults.headers.common['Access-Token'] = sessionStorage.getItem("shop_token");
  97. break;
  98. case 'Host87':
  99. this.axio.defaults.baseURL = Config.Host87;
  100. this.axio.defaults.headers.common['Access-Token'] = sessionStorage.getItem("access_token");
  101. break;
  102. }
  103. return this.post(url,params,config);
  104. }
  105. // method GET
  106. get(url,params) {
  107. return this.axio.get(url,params).then((response) => {
  108. if (response.data.code == Config.Code.StatusSessionExpire) {
  109. this.SessionExpire()
  110. } else if (response.data.code == 500) {
  111. return {
  112. code: 500,
  113. msg: SystemError[session.Get('lang')] || SystemError['en']
  114. }
  115. } else {
  116. return response.data
  117. }
  118. }).catch(() => {
  119. this.SessionExpire()
  120. return {
  121. code: Config.Code.StatusFail,
  122. msg: SystemError[session.Get('lang')] || SystemError['en']
  123. }
  124. })
  125. }
  126. // method POST
  127. post(url, params, config = {}) {
  128. return this.axio.post(url, params, config).then((response) => {
  129. if (response.data.code == Config.Code.StatusSessionExpire) {
  130. this.SessionExpire()
  131. } else if (response.data.code == Config.Code.StatusSNotFound) {
  132. return {
  133. code: Config.Code.StatusFail,
  134. msg: SystemError[session.Get('lang')] || SystemError['en']
  135. }
  136. } else if (response.data.code == 500) {
  137. return {
  138. code: 500,
  139. msg: SystemError[session.Get('lang')] || SystemError['en']
  140. }
  141. } else {
  142. return response.data
  143. }
  144. }).catch(() => {
  145. return {
  146. code: Config.Code.StatusFail,
  147. msg: SystemError[session.Get('lang')] || SystemError['en']
  148. }
  149. })
  150. }
  151. }
  152. export default Service