378 lines
13 KiB
JavaScript
378 lines
13 KiB
JavaScript
import Vue from 'vue'
|
||
import axios from 'axios'
|
||
// import QS from 'qs'
|
||
import store from '@/store'
|
||
// import router from '../../router'
|
||
import { Loading, Message, MessageBox } 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://139.9.66.234:6324/' // 河南春笋
|
||
// axios.defaults.baseURL ='http://124.71.67.160:8088/' //中建四局线上(旧)地址
|
||
// axios.defaults.baseURL ='http://47.97.202.104: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 = '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://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://jxj.zhgdyun.com:100/' //演示平台/·
|
||
// axios.defaults.baseURL ='http://192.168.34.221:8188/' //郭圣雄本地
|
||
// axios.defaults.baseURL ='http://192.168.34.221:30001/' //郭圣雄本地
|
||
// axios.defaults.baseURL ='http://192.168.34.221:12350/' //金林湾本地
|
||
// axios.defaults.baseURL ='http://42.194.144.62:8099/' //坪山沙湖
|
||
// axios.defaults.baseURL ='http://huli.zjzhiliao.com/jxjgdapi/' //金林湾测试线上
|
||
// axios.defaults.baseURL ='http://101.43.164.214:45001/' //上海张江
|
||
// axios.defaults.baseURL ='http://101.43.164.214:45011/' //上海优益(上海建工)
|
||
// axios.defaults.baseURL = 'http://192.168.34.221:28888/' //郭圣雄本地
|
||
axios.defaults.baseURL ='http://192.168.34.221:30012/' //郭圣雄本地
|
||
// axios.defaults.baseURL ='http://101.43.164.214:45020/' //沈阳和盈
|
||
// axios.defaults.baseURL ='http://183.249.224.118:9000/' //嘉兴王江泾公用码头
|
||
// axios.defaults.baseURL ='http://101.43.164.214:11111/' //广西百色项目
|
||
// axios.defaults.baseURL = 'http://125.88.207.86:8088/'//中建四局线上(最新)地址
|
||
|
||
|
||
} 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 {
|
||
// alert('进入了哪里444')
|
||
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'
|
||
) {
|
||
// alert('进入了哪里3')
|
||
|
||
return
|
||
} else {
|
||
// alert('进入了哪里2')
|
||
switch (error.response.status) {
|
||
// 401: 未登录
|
||
// 未登录则跳转登录页面,并携带当前页面的路径
|
||
// 在登录成功后返回当前页面,这一步需要在登录页操作。
|
||
case 401:
|
||
// Message.error('会话已失效,请重新登录')
|
||
// logout()
|
||
let errorResponse = sessionStorage.getItem('errorResponse')
|
||
console.log('进入401', errorResponse)
|
||
if (errorResponse == null || errorResponse === 'null') {
|
||
sessionStorage.setItem('errorResponse', '1')
|
||
MessageBox.confirm('会话已失效,请重新登录', '提示', {
|
||
confirmButtonText: '确定',
|
||
cancelButtonText: '取消',
|
||
type: 'warning',
|
||
})
|
||
.then(() => {
|
||
logout()
|
||
})
|
||
.catch(() => {
|
||
MessageBox.message({
|
||
type: 'info',
|
||
message: '已取消',
|
||
})
|
||
})
|
||
}
|
||
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()
|
||
sessionStorage.setItem('errorResponse', '1')
|
||
|
||
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()
|
||
}
|