request.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. //如果部署在同域名的话可以直接取cookie,后端需 HttpOnly 设置成否
  2. // var cookie_name = 'wolfking.jeesharp.session.id'
  3. // getCookie(cookie_name)
  4. // 是否本地环境
  5. function isLocalEnv () {
  6. let domain = window.location.origin
  7. if (['http://127.0.0.1:5500', 'file://'].includes(domain)) {
  8. return true
  9. } else {
  10. return false
  11. }
  12. }
  13. // api 前缀
  14. function getApiUrl () {
  15. // 为线上时
  16. if (!isLocalEnv()) {
  17. return window.location.origin
  18. } else {
  19. // 本地时
  20. // return 'http://sxtc.com:10002' // 内网环境
  21. // return 'http://10.8.8.100:10002' // 内网环境
  22. // return 'http://1.71.170.214:18080' // 线上环境
  23. // return 'http://szxm.sxcig.com:8012' // 线上环境
  24. // return 'http://10.0.0.27:8080' // 超哥环境
  25. // return 'http://10.0.0.22:8080' // 闫敏的环境
  26. // return 'http://10.0.0.8:8080' // 祥慧的环境
  27. // return 'http://10.0.0.115:8080' // 王蒙的环境
  28. return 'http://10.0.0.74:8080'
  29. }
  30. }
  31. // websocket 前缀
  32. function getWsUrl () {
  33. let prefix = location.protocol === 'https:' ? 'wss://' : 'ws://'
  34. // 为线上时
  35. if (!isLocalEnv()) {
  36. return prefix + window.location.host
  37. } else {
  38. return prefix + 'sxtc.com:10002'
  39. // return prefix + '10.0.0.115:8080'
  40. }
  41. }
  42. // minio 前缀
  43. function getMinioUrl () {
  44. let isProduction = location.origin.indexOf('1.71.170.214') != -1
  45. if (isProduction) {
  46. return 'http://1.71.170.214:19000/constr-documents/'
  47. } else {
  48. return 'http://10.8.8.191:9000/constr-documents-test/'
  49. }
  50. }
  51. /** axios封装
  52. * 请求拦截、相应拦截、错误统一处理
  53. */
  54. const httpRequest = axios.create({
  55. // baseURL: 'http://192.168.1.2:8080', // 测试环境
  56. // baseURL: 'http://172.21.9.23:8081', // SIT环境
  57. baseURL: 'http://172.21.9.23:30001/api/', // SIT环境解决跨域
  58. // baseURL: 'http://172.27.1.243:8081', // UAT环境
  59. // baseURL: 'http://172.27.1.243:30001/api/', // UAT环境解决跨域
  60. timeout: 3 * 60 * 1000, // 3分钟等待
  61. withCredentials: true // 携带cookie
  62. })
  63. // 请求拦截器
  64. httpRequest.interceptors.request.use(
  65. function (config) {
  66. if(config.data.access_token){
  67. config.headers['accessToken'] = config.data.access_token
  68. }
  69. // if (!isLocalEnv()) {
  70. // if (getQueryVariable('token')) {
  71. // config.headers['access_token'] = getQueryVariable('token')
  72. // }
  73. // } else {
  74. // config.headers['access_token'] = localStorage.getItem('token')
  75. // // config.headers['access_token'] = '4b3ed521-f509-48d9-b907-ab127479df41'
  76. // }
  77. // // 上传文件
  78. // if (config.url == '/apiSys/oss/upload') {
  79. // config.headers['Content-Type'] = 'multipart/form-data'
  80. // } else {
  81. // config.headers['Content-Type'] = 'application/json'
  82. // }
  83. return config
  84. },
  85. function (error) {
  86. return Promise.reject(error)
  87. }
  88. )
  89. //响应拦截
  90. httpRequest.interceptors.response.use(
  91. function (response) {
  92. const res = response.data
  93. // if (res.code == 201) {
  94. // this.ELEMENT.Message.error(res.msg)
  95. // if (!isLocalEnv()) {
  96. // // 跳登录页
  97. // window.location = window.location.origin
  98. // } else {
  99. // localEnvLogin()
  100. // }
  101. // }
  102. return response
  103. },
  104. function (error) {
  105. this.ELEMENT.Message.error(error.message)
  106. return Promise.reject(error)
  107. }
  108. )
  109. function get (url, params) {
  110. return new Promise((resolve, reject) => {
  111. httpRequest
  112. .get(url, { params: params })
  113. .then(res => {
  114. resolve(res.data)
  115. })
  116. .catch(err => {
  117. reject(err.data)
  118. })
  119. })
  120. }
  121. // qs.stringify(data)
  122. function post (url, data, config) {
  123. return new Promise((resolve, reject) => {
  124. httpRequest
  125. .post(url, data, config)
  126. .then(res => {
  127. resolve(res.data)
  128. })
  129. .catch(err => {
  130. reject(err)
  131. })
  132. })
  133. }
  134. function postFile (url, blob) {
  135. return new Promise((resolve, reject) => {
  136. let formdata = new FormData()
  137. formdata.append('multipartFile', blob)
  138. httpRequest
  139. .post(url, formdata)
  140. .then(res => {
  141. resolve(res.data)
  142. })
  143. .catch(err => {
  144. reject(err)
  145. })
  146. })
  147. }
  148. function localEnvLogin () {
  149. post(
  150. '/apiSys/login',
  151. {
  152. username: 'admin',
  153. password: '1q2w3e4r5t'
  154. },
  155. {
  156. transformRequest: [
  157. function (data, headers) {
  158. // 将请求数据转换成功 formdata 接收格式
  159. headers['Content-Type'] = 'application/x-www-form-urlencoded'
  160. return stringify(data)
  161. }
  162. ]
  163. }
  164. ).then(res => {
  165. localStorage.setItem('token', res.data.token || getQueryVariable('token'))
  166. })
  167. }
  168. // 将参数转换成功 formdata 接收格式
  169. function stringify (data) {
  170. let ret = ''
  171. for (const it in data) {
  172. ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
  173. }
  174. ret = ret.substring(0, ret.lastIndexOf('&'))
  175. return ret
  176. }
  177. // 格式化日期
  178. function formatDate (time) {
  179. let date = time ? new Date(Number(time)) : new Date();
  180. let Y = date.getFullYear() + '-';
  181. let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
  182. let D = date.getDate() < 10 ? '0' + date.getDate() + ' ' : date.getDate() + ' ';
  183. let h = date.getHours() < 10 ? '0' + date.getHours() + ':' : date.getHours() + ':';
  184. let m = date.getMinutes() < 10 ? '0' + date.getMinutes() + ':' : date.getMinutes() + ':';
  185. let s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
  186. return Y + M + D + h + m + s;
  187. }