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"; import '@/assets/style/main.less' Vue.prototype.$http = axios; // Vue.prototype.qs = QS; // Vue.use(ElementUI) var loading; let needLoadingRequestCount = 0; var COMPANY = ""; export function showFullScreenLoading() { if (needLoadingRequestCount === 0) { startLoading(); } needLoadingRequestCount++; } export function tryHideFullScreenLoading() { if (needLoadingRequestCount <= 0) return; needLoadingRequestCount--; if (needLoadingRequestCount === 0) { endLoading(); } } export function get(url, params, 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) { 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); reject(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) { 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); }); }); } 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: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:8111/' //郭圣雄本地 // 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://125.88.207.86: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:28889/' //郭圣雄本地 // axios.defaults.baseURL = 'http://192.168.34.221:28890/' //郭圣雄本地 // axios.defaults.baseURL = "http://192.168.34.221:9111/"; //郭圣雄本地 // axios.defaults.baseURL = "http://192.168.34.221:19112/"; //郭圣雄本地 // axios.defaults.baseURL = 'http://192.168.34.155:19111/' //彭洁本地 // axios.defaults.baseURL = 'http://182.90.224.237:51234/' //郭圣雄远程 // axios.defaults.baseURL = 'http://jxj.zhgdyun.com:61212/' //彭洁远程 // 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/'//中建四局线上(最新)地址 // axios.defaults.baseURL = 'http://125.88.207.86:8099/'//中建四局(沙湖)线上(最新)地址 // axios.defaults.baseURL = 'http://jxj.zhgdyun.com:15551/'//测试地址 // axios.defaults.baseURL = 'http://47.93.215.234:9809/'//鞍钢正式地址(弃用) // axios.defaults.baseURL = 'http://42.180.188.17:9809/' //鞍钢正式地址 // axios.defaults.baseURL = 'http://47.93.215.234:11211/'//鞍钢测试地址(弃用) // axios.defaults.baseURL = 'http://42.180.188.17:11211/' //鞍钢测试地址 // axios.defaults.baseURL = 'http://8.136.222.164:8808/' //中科安信正式地址 // axios.defaults.baseURL = 'http://1.13.185.209:9820/' //中科佳成正式地址 // axios.defaults.baseURL = 'http://192.168.9.249:9820/' //四川网城正式地址 // axios.defaults.baseURL = 'http://jxj.zhgdyun.com:34568/' //四川网城外网映射地址 // axios.defaults.baseURL = 'http://192.168.110.220:9809/' //同济正式地址 // axios.defaults.baseURL = 'http://192.168.100.4:9809/' //乌丹(合肥启程)新正式地址 // axios.defaults.baseURL = "http://jxj.zhgdyun.com:18000"; //包头化工 // axios.defaults.baseURL = "http://222.80.185.228:6090"; //木垒 // axios.defaults.baseURL = "https://zm.zhgdyun.com:11111"; // // axios.defaults.baseURL = "http://121.37.106.37:9809"; // axios.defaults.baseURL = "http://139.9.66.234:20628"; // axios.defaults.baseURL = "http://jxj.zhgdyun.com:9500"; // axios.defaults.baseURL = "http://jxj.zhgdyun.com:21000"; } 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.221:8111/' // 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; } 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); store.commit("setGroupTreeList", []); store.commit("setSelectedGroupSn", 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); } function startLoading() { loading = Loading.service({ lock: true, text: "加载中...", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.5)", }); } function endLoading() { loading.close(); }