zhgdyun/src/assets/js/http.js

353 lines
13 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import Vue from 'vue'
import axios from 'axios'
// import QS from 'qs'
import store from '@/store'
// import router from '../../router'
import { Loading, Message } from 'element-ui'
Vue.prototype.$http = axios
// Vue.prototype.qs = QS;
// Vue.use(ElementUI)
var loading
let needLoadingRequestCount = 0
let showLoadingConfig = ''
var COMPANY=''
function getLang() {
let currentLanguage = store.state.currentLanguage
let langParam = ''
switch (currentLanguage) {
case 'zh':
langParam = 'zh_CN'
break
case 'en':
langParam = 'en_US'
break
}
return langParam
}
// 环境的切换
if (process.env.NODE_ENV == 'development') {
// axios.defaults.baseURL = 'http://8.142.139.165:7080' // 湖里区
// axios.defaults.baseURL = 'http://124.71.87.250/'
// axios.defaults.baseURL = 'http://139.9.66.234:30/'
// axios.defaults.baseURL = 'http://14.29.220.211:6023/'
// axios.defaults.baseURL = 'https://zhgd.loganwy.com/' //龙光
// axios.defaults.baseURL = 'https://zhgd-uat.logan.com.cn/'
// axios.defaults.baseURL = 'http://36.137.53.203:9090/' // 南昌地铁 17512009894 123456789 gdjt 87654321
// axios.defaults.baseURL = 'http://192.168.34.125:6023/'
// axios.defaults.baseURL = 'http://124.71.178.44:100/' // 河南
// tag: 本地
// axios.defaults.baseURL = 'http://192.168.34.174:6023/' // 老大本地
// axios.defaults.baseURL = 'http://192.168.34.117:6023/' // 杨杰本地
// axios.defaults.baseURL = 'http://139.9.66.234:6324/' // 河南春笋
// axios.defaults.baseURL ='http://124.71.67.160:8088/' //中建四局线上(旧)地址
// axios.defaults.baseURL = 'http://192.168.34.125:6023/' //杨意本地 http/1.1
// axios.defaults.baseURL ='http://47.97.202.104:6023/' //金林湾线上旧
// axios.defaults.baseURL = 'http://192.168.34.231:6023/'; //杨思瑞本地
// axios.defaults.baseURL = 'http://47.97.202.104:6023/';
// axios.defaults.baseURL = 'http://139.9.66.234:8/';
// axios.defaults.baseURL = 'http://120.196.217.6:7000/'; // 鹤洲
// axios.defaults.baseURL = 'http://182.90.224.237:7000/'; // 广西
// axios.defaults.baseURL = 'http://120.196.217.6:7000/' //鹤洲
// axios.defaults.baseURL = 'http://117.156.17.59:9090/'; //
// axios.defaults.baseURL = 'http://120.236.247.200:9000/'; //横琴线上
// axios.defaults.baseURL = 'http://223.82.100.80:9000/'; //南昌地铁
// axios.defaults.baseURL = 'http://139.9.66.234:40001/'; //南昌地铁二期
// axios.defaults.baseURL = 'http://124.71.178.44:30/';
// axios.defaults.baseURL = 'http://192.168.34.125:9090/';
// axios.defaults.baseURL = 'http://192.168.88.220:6023/';
// axios.defaults.baseURL = 'https://192.168.34.125:6688/'; //本地 http/2
// axios.defaults.baseURL = 'http://124.71.178.44:8/'; //本地 http/3
// axios.defaults.baseURL = 'http://124.71.178.44:9000/'; //中建 cscec101 123456
// axios.defaults.baseURL = 'https://jk.cscec1b1.com:5138/';//沃尔
// axios.defaults.baseURL = 'http://61.190.32.219:9050/'
// axios.defaults.baseURL = 'http://183.95.84.54:5800/'//合展-宿迁 zxsd 123456
// axios.defaults.baseURL = 'http://183.95.84.54:9500/'//贵州-敏尚 17512075572 123456
// axios.defaults.baseURL = 'http://183.95.84.34:7185/' //测试服
// axios.defaults.baseURL = 'http://183.60.227.61:30246/'
// axios.defaults.baseURL = 'http://183.60.227.61:30249/' //测试服2
// axios.defaults.baseURL = 'http://183.60.227.61:20561/' //龙光地产 龙光地产 123456
// axios.defaults.baseURL = 'http://218.92.215.138:9090/' //盐城 新佳城小区 123456
// axios.defaults.baseURL = 'http://36.137.53.203:9090/' //盐城 gdjt 123456789
// axios.defaults.baseURL = 'http://183.234.150.152:9090/' //华发 huaxin 123456789
// axios.defaults.baseURL = 'http://182.90.224.147:18170' //瑞士恒通线上
// axios.defaults.baseURL = 'http://58.250.210.9:9090' //深汕线上
// axios.defaults.baseURL = 'http://192.168.34.221:8088' //郭圣雄本地
// axios.defaults.baseURL = 'http://192.168.34.221:8188' //郭圣雄本地
// axios.defaults.baseURL = 'http://192.168.34.221:8210' //郭圣雄本地
// axios.defaults.baseURL = 'http://192.168.34.221:12346' //郭圣雄本地
// axios.defaults.baseURL = 'http://192.168.34.221:12350' //金林湾本地
// axios.defaults.baseURL = 'http://192.168.34.122:8070' //彭洁本地
// axios.defaults.baseURL = 'http://192.168.34.221:11120' //演示平台郭圣雄本地
// axios.defaults.baseURL = 'http://192.168.34.221:30000' //中建五局郭圣雄本地
// axios.defaults.baseURL = 'http://101.43.164.214:11111' //百色线上
// axios.defaults.baseURL = 'http://101.43.164.214:12345/'//内蒙古线上
// axios.defaults.baseURL = 'http://121.196.214.246/api/'//金林湾线上新
// axios.defaults.baseURL = 'http://42.194.144.62:8088/'//中建四局线上(新)地址
// axios.defaults.baseURL = 'http://101.43.164.214:12350'//中建五局线上
// axios.defaults.baseURL = 'http://182.90.224.147:15551/'//港投(成润)项目线上(1)
axios.defaults.baseURL = 'http://118.121.198.147:23232/'//港投(成润)正式
// axios.defaults.baseURL ='http://182.90.224.147:100/' //演示平台/
// axios.defaults.baseURL ='http://192.168.34.221:8070' //郭圣雄本地
// axios.defaults.baseURL ='http://192.168.34.221:30016' //郭圣雄本地
// axios.defaults.baseURL ='http://192.168.34.221:12350/' //金林湾本地
// axios.defaults.baseURL ='http://61.145.163.135:12345' //坪山沙湖
} else if (process.env.NODE_ENV == 'debug') {
axios.defaults.baseURL = 'https://www.ceshi.com'
} else if (process.env.NODE_ENV == 'production') {
let host = window.location.host
// axios.defaults.baseURL = window.location.protocol + '//' + host + '/api/'//金林湾地址
axios.defaults.baseURL = window.location.protocol + '//' + host + '/'
// axios.defaults.baseURL ='http://192.168.34.216:6023/'
// axios.defaults.baseURL = window.location.protocol + "//" + host.split(":")[0] + ":6023" + "/"
// axios.defaults.baseURL = 'http://zhgd.loganwy.com/`'
}
// tag: 河南
if (COMPANY == 'henan') {
// axios.defaults.baseURL = 'http://124.71.178.44:100/' // 备注 2022 10 12 后端说作废
axios.defaults.baseURL = 'http://139.9.66.234:6324/' // 2022 10 12 邱平毅 创建的服务器地址
}
// axios.defaults.baseURL = store.getters.BASEURL //'http://124.71.178.44:100/'axios.defaults.timeout = 600000;
// console.log('store.state.userInfo',store)
if (store.state.userInfo) {
axios.defaults.headers.common['Authorization'] = 'Bearer' + ' ' + store.state.userInfo.token
axios.defaults.headers.common['operateId'] = store.state.userInfo.userId
}
// http请求拦截器
axios.interceptors.request.use(
config => {
if(config.url.includes('downloadTemplate')) {
config.headers.common['responseType'] = 'blob'
}
if (config.url.includes('live?port')) return config
// 分屏插件兼容配置
const screensBaseURL = sessionStorage.getItem('screens-baseURL')
if (config.url.indexOf(screensBaseURL) !== -1) {
delete config.headers.common['operateId']
if (config.url === screensBaseURL + '/login') {
const Authorization = sessionStorage.getItem('screens-Authorization')
config.headers.common['Authorization'] = Authorization
} else {
delete config.headers.common['Authorization']
const token = sessionStorage.getItem('screens-token')
config.headers.common['token'] = token
}
return config
}
if (showLoadingConfig == '' || showLoadingConfig == undefined) {
showFullScreenLoading()
}
return config
},
error => {
tryHideFullScreenLoading()
// Message.error('加载超时');
return Promise.reject(error)
}
)
// 响应拦截器
axios.interceptors.response.use(
response => {
tryHideFullScreenLoading()
if (response.status === 200) {
return Promise.resolve(response)
} else {
return Promise.reject(response)
}
},
// 服务器状态码不是2开头的的情况
// 这里可以跟你们的后台开发人员协商好统一的错误状态码
// 然后根据返回的状态码进行一些操作,例如登录过期提示,错误提示等等
// 下面列举几个常见的操作,其他需求可自行扩展
error => {
tryHideFullScreenLoading()
if (error.response.status) {
console.log('----------', error.response)
let errorUrl = error.response.config.baseURL
console.log('-----------------', errorUrl)
let screensUrl = sessionStorage.getItem('screens-baseURL')
const url = error.response.url
if (errorUrl == screensUrl || url === '26938512:7zS9LX2X8u4tW4Ps0ZjN/login') {
return
} else {
switch (error.response.status) {
// 401: 未登录
// 未登录则跳转登录页面,并携带当前页面的路径
// 在登录成功后返回当前页面,这一步需要在登录页操作。
case 401:
// Message.error('会话已失效,请重新登录')
// logout()
break
// 403 token过期
// 登录过期对用户进行提示
// 清除本地token和清空vuex中token对象
// 跳转登录页面
case 403:
Message.error('登录过期,请重新登录')
logout()
break
// 404请求不存在
case 404:
Message.error('网络请求不存在')
break
case 500:
Message.error('服务器错误')
break
}
return Promise.reject(error.response)
}
}
}
)
/**
* get方法对应get请求
* @param {String} url [请求的url地址]
* @param {Object} params [请求时携带的参数]
*/
function logout() {
store.commit('setUserInfo', null)
store.commit('setMapBackArr', [])
store.commit('setMoudle', null)
store.commit('setProDetail', null)
sessionStorage.clear()
let json = {
name: '工作站',
id: 1,
url: '/projectV2/taskList',
menuList: [
{
id: 100000,
menuName: '任务清单',
path: '/projectV2/taskList'
},
{
id: 100001,
menuName: '通知公告',
path: '/projectV2/noticeList'
},
{
id: 100002,
menuName: '工作日程',
path: '/projectV2/workerSchedule'
}
]
}
this.$store.commit('setCurModule', json)
setTimeout(() => {
window.location.href = '/index.html#/login'
}, 1000)
}
export function get(url, params, config) {
showLoadingConfig = config
url = url + '?lang=' + getLang()
return new Promise((resolve, reject) => {
axios
.get(url, {
params: params
})
.then(res => {
if (res.config.url == "/xmgl/progressTask/downloadTemplate?lang=zh_CN") {
resolve(res.data)
return;
}
if (res.data.code == 200) {
resolve(res.data)
} else {
Message.error(res.data.message)
}
})
.catch(err => {
reject(err.data)
})
})
}
/**
* post方法对应post请求
* @param {String} url [请求的url地址]
* @param {Object} params [请求时携带的参数]
*/
export function post(url, params, config) {
showLoadingConfig = config
url = url + '?lang=' + getLang()
return new Promise((resolve, reject) => {
axios
.post(url, params)
.then(res => {
if (res.data.code == 200) {
resolve(res.data)
} else {
if (res.data.status !== 'SUCCESS') {
Message.error(res.data.message)
} else {
resolve(res.data)
}
}
})
.catch(err => {
reject(err.data)
})
})
}
/**
* put方法对应put请求
* @param {String} url [请求的url地址]
* @param {Object} params [请求时携带的参数]
*/
export function put(url, params, config) {
showLoadingConfig = config
url = url + '?lang=' + getLang()
return new Promise((resolve, reject) => {
axios
.put(url, params)
.then(res => {
if (res.data.code == 200) {
resolve(res.data)
} else {
Message.error(res.data.message)
}
})
.catch(err => {
reject(err.data)
})
})
}
export function showFullScreenLoading() {
if (needLoadingRequestCount === 0) {
startLoading()
}
needLoadingRequestCount++
}
export function tryHideFullScreenLoading() {
if (needLoadingRequestCount <= 0) return
needLoadingRequestCount--
if (needLoadingRequestCount === 0) {
endLoading()
}
}
function startLoading() {
loading = Loading.service({
lock: true,
text: '加载中...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.5)'
})
}
function endLoading() {
loading.close()
}