UNPKG

ty-mobile-uni

Version:

uView UI,是uni-app生态优秀的UI框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水

92 lines (77 loc) 2.24 kB
import uni_request from './uni_request.js'; import { getToken} from "./auth.js"; import { showFullScreenLoading, tryHideFullScreenLoading } from "./loading"; const request = uni_request({ timeout: 10000, // 超时时间 header: { 'x-custom-header': 'x-custom-header' }, // 设置请求头,建议放在请求拦截器中 statusCode: [200, 401] // 服务器相应状态码为 200/401 时,网络请求不会 reject }) // 请求失败统一处理方法 request.onerror = async (...args) => { //console.log('网络请求失败了', `url为${args[1]}`) tryHideFullScreenLoading(); } //请求拦截器 request.interceptors.request.use((config, ...args) => { var token = getToken(); if (token) { config.header.Authorization= token; } var obj = { 'contractRoot': { 'svcCont': { 'requestObject': config.body }, 'tcpCont': { 'appKey': 'string', 'dstSysId': 'string', 'reqTime': 0, 'rspTime': 0, 'sign': 'string', 'svcCode': 'string', 'transactionId': 'string', 'version': 'string' } } }; if (config.body&&args[0]!="get") { config.body = obj; } if (!config.hideLoading) { //全局加载 showFullScreenLoading(); } return config }, (error) => { tryHideFullScreenLoading(); return Promise.reject(error); }) //响应拦截器 request.interceptors.response.use((response, ...args) => { // 响应拦截器(可以设置多个, 同时可以也可以使用异步方法) //关闭loading tryHideFullScreenLoading(); var resData= (typeof response.data=== 'string') ? JSON.parse(response.data):response.data; var info= resData.contractRoot.svcCont; if (info.resultCode == '0000') { return info.responseObject; } else if (info.resultCode == '10015') { uni.showToast({ icon: 'none', title: 'token无效,请重新登录!', duration: 2000 }); } else { uni.showToast({ icon: 'none', title: info.resultMsg || '请求异常!', duration: 2000 }); } return Promise.reject(info); }, (error) => { tryHideFullScreenLoading(); return Promise.reject(error); }) export default request;