123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- import { objToUrl } from '@/libs/tools.js';
- const baseUrl = getApp().globalData.baseUrl
- //带Token请求
- const request = (opts, hasToken) => {
- const authorization = getApp().globalData.token
- const curVer = getApp().globalData.version
- // console.log(authorization, 'authorization')
- // hasToken是否传入token,为true则不传token
- const header = {
- // 'USER-TERM-TYPE': 'ipad', // 支付时需要用到 与pad一致
- // 'App-Type': 2,
- 'Version': curVer.version?curVer.version.replace(/\./g,''):''
- }
- if(!hasToken){
- // header.authorization = authorization
- header['access-token'] = authorization
- }
- //此token是登录成功后后台返回保存在storage中的
- let DefaultOpts = {
- url: baseUrl+opts.url,
- data: opts.data,
- method: opts.method,
- header: opts.header ? opts.header : header
- }
- console.log(DefaultOpts)
- let promise = new Promise(function(resolve, reject) {
- uni.request(DefaultOpts).then(
- (res) => {
- // 是否超时已跳转
- let loginTimeOut = uni.getStorageSync('loginTimeOut');
- if(res[0]&&res[0].errMsg.indexOf('request:fail')>=0){
- resolve({
- status: 6000,
- message: "网络请求失败"
- })
- }
- let ret = res[1]
- if(!ret.status){
- ret.status = ret.statusCode
- }
- if(res[1].data.status){
- ret = res[1].data
- }else if(res[1].status){
- ret = res[1]
- }
- console.log(ret)
- if(ret.status == '200'){
- resolve(ret)
- }else{
- if(ret.status == '401'){ // 未登录或登录过期
- // 除过查询未完成订单的请求
- if(opts.url.indexOf("order/unFinishedOrderRunStatus")<0){
- uni.showToast({
- icon:'none',
- title: '未登录或登录已过期,请重新登录',
- duration: 5000
- })
- setTimeout(function() {
- const currentRoute = getRoutePath();
- const url = `/pages/login/pwLogin?lanuch=${currentRoute.lanuch}&path=` + encodeURIComponent(currentRoute.url);
- uni.redirectTo({ url });
- }, 1000);
- }
- }
- else{
- if(ret.status == 500){
- if(opts.url.indexOf("store/validateStoreAndDevice")<0&&opts.url.indexOf("couponReceives/findUsableCoupon")<0){
- uni.showToast({
- icon:'none',
- title: ret.message,
- mask: true,
- duration: 3000
- })
- }
- }
- }
- resolve(ret)
- }
- // ret.status = ret.statusCode // mock数据结构改造
- resolve(ret)
- }
- ).catch(
- (response) => {
- reject(response)
- }
- )
- })
- return promise
- }
- function getRoutePath() {
- // eslint-disable-next-line no-undef
- const pages = getCurrentPages(); // 获取加载的页面
- const currentPage = pages[pages.length - 1]; // 获取当前页面的对象
- let url = currentPage.route; // 当前页面url
- const options = objToUrl(currentPage.options); // 如果要获取url中所带的参数可以查看options
- const lanuch = [
- 'pages/index/index'
- ].includes(url);
- url = '/' + url;
- if (options.length) {
- url += '?' + options;
- }
- return {
- url,
- lanuch
- };
- }
- export default {
- baseUrl,
- request
- }
|