zhgdyun/src/assets/js/http.js

342 lines
12 KiB
JavaScript
Raw Normal View History

2022-06-08 14:51:11 +08:00
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'
2022-06-08 14:51:11 +08:00
Vue.prototype.$http = axios
// Vue.prototype.qs = QS;
// Vue.use(ElementUI)
var loading
let needLoadingRequestCount = 0
let showLoadingConfig = ''
2022-06-08 14:51:11 +08:00
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
2022-06-08 14:51:11 +08:00
}
// 环境的切换
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/' // 老大本地
2023-03-07 18:30:20 +08:00
// 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://182.90.224.147:100/' //演示平台/
2022-08-30 14:02:54 +08:00
// axios.defaults.baseURL = 'http://192.168.34.125:6023/' //杨意本地 http/1.1
2023-03-30 10:06:13 +08:00
// 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/'; // 鹤洲
2022-10-24 10:19:15 +08:00
// 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
2023-03-13 17:56:46 +08:00
// 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' //郭圣雄本地
2023-03-24 17:33:02 +08:00
// axios.defaults.baseURL = 'http://192.168.34.221:8188' //郭圣雄本地
// axios.defaults.baseURL = 'http://192.168.34.221:8210' //郭圣雄本地
2023-03-24 17:33:02 +08:00
// axios.defaults.baseURL = 'http://192.168.34.221:12346' //郭圣雄本地
2023-04-01 14:26:45 +08:00
// axios.defaults.baseURL = 'http://192.168.34.221:12350' //金林湾本地
2023-03-30 10:06:13 +08:00
// axios.defaults.baseURL = 'http://192.168.34.122:8070' //彭洁本地
// axios.defaults.baseURL = 'http://192.168.34.221:8070' //郭圣雄本地
// axios.defaults.baseURL = 'http://101.43.164.214:11111' //百色线上
axios.defaults.baseURL = 'http://101.43.164.214:12345/'//内蒙古线上
2023-04-02 14:49:21 +08:00
// axios.defaults.baseURL = 'http://121.196.214.246/api/'//金林湾线上新
} else if (process.env.NODE_ENV == 'debug') {
axios.defaults.baseURL = 'https://www.ceshi.com'
2022-06-08 14:51:11 +08:00
} else if (process.env.NODE_ENV == 'production') {
let host = window.location.host
2023-04-02 14:49:21 +08:00
// 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/'
2022-06-08 14:51:11 +08:00
}
// 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 邱平毅 创建的服务器地址
2022-06-08 14:51:11 +08:00
}
// 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
2022-06-08 14:51:11 +08:00
}
// 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
}
2022-06-08 14:51:11 +08:00
if (showLoadingConfig == '' || showLoadingConfig == undefined) {
showFullScreenLoading()
2022-06-08 14:51:11 +08:00
}
return config
},
error => {
2022-06-08 14:51:11 +08:00
tryHideFullScreenLoading()
// Message.error('加载超时');
return Promise.reject(error)
}
)
2022-06-08 14:51:11 +08:00
// 响应拦截器
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:
2022-08-17 10:02:30 +08:00
// 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
2022-06-08 14:51:11 +08:00
}
return Promise.reject(error.response)
}
2022-06-08 14:51:11 +08:00
}
}
)
2022-06-08 14:51:11 +08:00
/**
* 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'
}
]
2022-06-08 14:51:11 +08:00
}
this.$store.commit('setCurModule', json)
setTimeout(() => {
window.location.href = '/index.html#/login'
}, 1000)
2022-06-08 14:51:11 +08:00
}
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)
})
})
2022-06-08 14:51:11 +08:00
}
/**
* 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)
})
})
2022-06-08 14:51:11 +08:00
}
/**
* 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)
})
})
2022-06-08 14:51:11 +08:00
}
export function showFullScreenLoading() {
if (needLoadingRequestCount === 0) {
startLoading()
}
needLoadingRequestCount++
2022-06-08 14:51:11 +08:00
}
export function tryHideFullScreenLoading() {
if (needLoadingRequestCount <= 0) return
needLoadingRequestCount--
if (needLoadingRequestCount === 0) {
endLoading()
}
2022-06-08 14:51:11 +08:00
}
function startLoading() {
loading = Loading.service({
lock: true,
text: '加载中...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.5)'
})
2022-06-08 14:51:11 +08:00
}
function endLoading() {
loading.close()
2022-06-08 14:51:11 +08:00
}