vue项目service.js在写接口的时候--引入另外一个路径的解决方案--多个路劲方案--回到报错点-路由

104 篇文章 0 订阅

1

2个不同的 路径
VUE_APP_BASE_API='https://api.123.com/api/app/tcloud-crm'
VUE_APP_MARKETING_API='https://api.123.com/api/app/tcloud-marketing'
  • servies.js
/* eslint-disable prefer-promise-reject-errors */
import axios from 'axios'
import { getToken, removeToken, setToken } from './cookie'
import { Message } from 'element-ui'
const consoleURL = process.env.VUE_APP_7_OPEN
const baseURL = process.env.VUE_APP_BASE_API
// var baseURL = '/index.php'
const service = axios.create({
  baseURL,
  timeout: 100000 * 50, // 请求超时时间
  withCredentials: true
})

// request拦截,在请求发起前
service.interceptors.request.use((config) => {
  if (process.env.NODE_ENV === 'development') {
    setToken('jVUeTO6wwT9ijw9XgY1XwGEMDrWkD0Ln')
  }
  if (getToken()) {
    config.headers['X-Token'] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
  }
  return config
})

// respone拦截,获取请求数据后,搞事情
service.interceptors.response.use(
  // 正常获取数据
  response => {
    const list = ['x-pkcs7-certificates', 'vnd.ms-excel', 'pem', 'zip', 'application/pdf']
    const flag = list.some(x => response.headers['content-type'] && response.headers['content-type'].indexOf(x) > -1)
    const bullet = ['10001', '10002', '20001', '20002', '10000', '10006']
    if ((response.headers['content-type'] != null && flag) || response.data instanceof Blob) {
      return response
    }

    // eslint-disable-next-line eqeqeq
    if (response.data && (response.data.code == 0 || response.data.code === 200 || response.data.code === '30001' || response.data.code === '30002')) {
      return response.data
    } else if (bullet.indexOf(response.data.code + '') >= 0) {
      // 提示弹框   - 10001 客户已存在 - 10002 客户已锁客  -20001 当前客户存在并已锁客  -20002 联系人已存在
      //           - 10006 公司电话重复
      return response.data
    } else if (response.data.code === '8' || response.data.code === '9') {
      // 抱歉,你无权访问该页面

      // window.location.href = consoleURL + '/403'
    } else if (response.data.code === 401) {
      // 用户信息已过期
      removeToken()
      setTimeout(() => {
        window.location.href = consoleURL + '/login/login?backUrl=' + escape(window.location.href)
      }, 1000)
    } else if (response.data.code > 200 && response.data.code < 300) {
      // 不显示报错弹框
    } else if (response.data.code === '32' || response.data.code === '28') {
      // 关联信息 :32(商品)、28(商机)
      return response.data
    } else {
      Message({
        type: 'error',
        message: response.data.message || response.data.msg || response.msg
      })
    }
    return Promise.reject(response)
  },
  // 请求失败
  error => {
    console.log('请求错误', error)
    return Promise.reject('error', error)
  }
)

export default service

  • 写接口
import request from '@/base/service'

const baseURL2 = process.env.VUE_APP_MARKETING_API

const requestB = (data) => {
  return request({
    ...data,
    ...{
      baseURL:baseURL2 
    }
  })
}

export function livingStart (data) {
  // 创建立即直播
  return requestB({
    url: '/living/start',
    method: 'POST',
    data: data
  })
}

// 获取微信公众号设置的行业
export function getIndustryInfo (data) {
  return request({
    url: '/template/getIndustryInfo',
    method: 'get',
    data
  })
}
  • 补充一个下写法带headers的
export function wechatAgentInfo (params) {
  return request({
    url: '/customerSopApi/agentInfo',
    method: 'post',
    params,
    headers: { 'content-type': 'application/x-www-form-urlencoded' }
  })
}
  • 报错回到第一个错误的地方
  formErrorScroll () { // 报错回到第一个错误的地方
    if (document.querySelector('.el-form-item__error')) {
      document
        .querySelector('.el-form-item__error')
        .parentNode.scrollIntoView({
          block: 'start',
          behavior: 'smooth'
        })
    }
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值