|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- import axios from 'axios';
- import Vue from 'vue';
- import router from '../router';
- import { notify } from '@/utils/tool';
-
- axios.defaults.withCredentials = true
-
- /**
- * 请求拦截器:添加token
- */
- axios.interceptors.request.use(function (config) {
- // 在发送请求之前做些什么
- if (config.url.indexOf('api/') === 0) {
- config.url = `${process.env.API_HOST}${config.url.slice(4)}`;
- }
- //若token存在,则在每次请求头中加入token
- // if (sessionStorage.token) {
- // // config.headers.common['x-access-token'] = sessionStorage.token;
- // config.headers.common['Authorization'] = 'Bearer ' + sessionStorage.token;
- // }
- return config;
- }, function (error) {
- // 对请求错误做些什么
- return Promise.reject(error);
- });
- //拦截器,访问网络异常时的提示
- axios.interceptors.response.use(
- response => {
- return response;
- },
- error => {
- if (error.response) {
- switch (error.response.status) {
- case 401:
- if (router.currentRoute.fullPath != '/') {
- notify.error('登录超时,请重新登录');
- sessionStorage.clear();
- router.push({ path: "/" });
- }
- break;
- }
- }
- return Promise.reject(error); // 返回接口返回的错误信息
- }
- );
-
-
-
- export async function fetchApi(path, params, config) {
- const [method, fullpath] = mapApiPathToFullPath(path);
- try {
- const res = await (method === 'GET'
- ? axios.get(fullpath, { params }, config)
- : axios.post(fullpath, params, config)
- );
- return res.data;
- } catch (e) {
- if (e.response && e.response.status) {
- switch (e.response.status) {
- case 404:
- return {
- Code: 404,
- Msg: '找不到指定的服务。',
- };
- default:
- return {
- Code: 503,
- Msg: '服务异常,请稍后再试。',
- };
- }
- }
- console.error(e);
- return {
- Code: 503,
- Msg: '服务异常,请稍后再试。',
- };
- }
- }
-
- export function wrapErrorHint(response) {
- if (response.Code !== 0) {
- // notify.error(response.Msg);
- var title = response.Code ? (response.Code).toString() : '';
- var type ="error";
- if(response.Code === 404){
- type = "warning";
- }
- Vue.prototype.$notify({
- message:response.Msg,
- title:title + '错误',
- type: type
- })
-
-
- }
- return response;
- }
-
- export default axios;
-
- function mapApiPathToFullPath(path) {
- const [service] = path.split('/');
- const prefix = ['template', 'project', 'folder', 'file'].indexOf(service) !== -1 ? 'pms' : 'cms';
- const fullpath = `api/${prefix}/${service === 'authentication' ? '' : 'v1/'}${path}`;
- let method = 'GET';
-
- switch (path) {
- case 'authentication/login':
- case 'company/addCompany':
- case 'company/queryGeneralOverview':
- case 'company/queryProviceTree':
- case 'company/updateCompanyById':
- case 'dept/addDept':
- case 'dept/updateDept':
- case 'user/addUser':
- case 'user/resetPassWord':
- case 'user/updateUser':
- case 'template/createTemplate':
- case 'template/fileExchange':
- case 'template/updateTemplate':
- case 'template/uploadingXmind':
- case 'template/addTemplateNodeModelFile':
- case 'template/createNestedRelevance':
- case 'template/connectNestTemplateFolder':
- case "folder/createSubfolder":
- case "project/createProject":
- case "project/editProject":
- case "project/assignedWork":
- case "file/addArchMilesStone":
- case "file/addFile":
- case "file/updateFile":
- case "file/fileCoordinationChange":
- case "operation/record":
- // case 'template/deleteTemplateNodeModelFile':
- method = 'POST';
- break;
- // case 'authentication/loginOut':
- // case 'company/deleteCompanyById':
- // case 'company/disablEenableCompanyByCompanyId':
- // case 'company/queryCompanyById':
- // case 'company/queryCompanyByProviceIdAndIndustryId':
- // case 'dept/deleteDeptByDeptId':
- // case 'dept/queryDeptByDeptId':
- // case 'dept/queryDeptsByDeptId':
- // case 'user/deleteUser':
- // case 'user/queryUserByUserId':
- // case 'user/queryUsersByDeptId':
- default:
- method = 'GET';
- break;
- }
- return [method, fullpath];
- }
|