From 15694002e8f46be2aabf4fd6a842c191bd29717f Mon Sep 17 00:00:00 2001 From: gaoxs Date: Tue, 2 Jun 2020 20:09:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=99=BB=E5=BD=95=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/index.js | 91 ++++++++++++++++++++++++++++++++++++++++++++++++ utils/request.js | 10 +++--- 2 files changed, 96 insertions(+), 5 deletions(-) diff --git a/utils/index.js b/utils/index.js index d44e845..d37b122 100644 --- a/utils/index.js +++ b/utils/index.js @@ -654,3 +654,94 @@ export const PosterCanvas = (store, successCallBack) => { // } // }) } + + + +export const handleLoginFailure = () => { + + // token 失效 + // 判断当前是不是已经在登录页面或者授权页,防止二次跳转 + if (store.getters.isAuthorizationPage || getCurrentPageUrl() == '/pages/user/Login/index') { + console.log('已经是登录页面或者授权页面,跳出方法') + return + } + + store.commit("LOGOUT"); + store.commit("UPDATE_AUTHORIZATION", false); + store.commit("UPDATE_AUTHORIZATIONPAGE", true); + + let path = getCurrentPageUrlWithArgs() + + // 判断是不是拼团进来的 + if (getCurrentPageUrl() == 'pages/activity/GroupRule/index' && handleQrCode()) { + console.log('是拼团进来的') + let url = handleQrCode(); + console.log(url) + if (url) { + path = parseUrl({ + path: `/${getCurrentPageUrl()}`, + query: { + id: url.pinkId, + } + }) + // cookie.set("spread", url.spread || 0); + } else { + console.log('是拼团进来的,但是没有获取到参数') + switchTab({ + path: '/pages/home/index', + }); + } + } + + // 判断是不是扫描的砍价海报进来的 + if (getCurrentPageUrl() == 'pages/activity/DargainDetails/index' && handleQrCode()) { + console.log('是扫描的砍价海报进来的') + let url = handleQrCode(); + console.log(url) + // bargainId: "36" +// bargainUserUid: 1404 + +// bargainId: "36" +// codeType: "routine" +// pageType: "dargain" +// spread: "1404" +// uid: "1404" + if (url) { + path = parseUrl({ + path: `/${getCurrentPageUrl()}`, + query: { + id: url.bargainId, + partake: url.uid + } + }) + // cookie.set("spread", url.spread || 0); + } else { + console.log('是扫描的砍价海报进来的,但是没有获取到参数') + switchTab({ + path: '/pages/home/index', + }); + } + } + + if (getCurrentPageUrl() == 'pages/shop/GoodsCon/index' && handleQrCode()) { + console.log('是扫描的商品详情') + let url = handleQrCode(); + console.log(url) + if (url) { + path = parseUrl({ + path: `/${getCurrentPageUrl()}`, + query: { + id: url.productId, + } + }) + cookie.set("spread", url.spread || 0); + } else { + switchTab({ + path: '/pages/home/index', + }); + console.log('是扫描的商品详情进来的,但是没有获取到参数') + } + } + + routerPermissions(path) +} diff --git a/utils/request.js b/utils/request.js index d55f9bd..8c4e980 100644 --- a/utils/request.js +++ b/utils/request.js @@ -1,6 +1,6 @@ import Fly from "flyio/dist/npm/wx"; import $store from "../store"; -import toLogin from "@/libs/login"; +import { handleLoginFailure } from "@/utils"; import { VUE_APP_API_URL } from "@/config"; import cookie from "@/utils/store/cookie"; @@ -16,11 +16,11 @@ fly.interceptors.response.use( }, error => { if (error.toString() == 'Error: Network Error') { - toLogin(); + handleLoginFailure(); return Promise.reject({ msg: "未登录", toLogin: true }); } if (error.status == 401) { - toLogin(); + handleLoginFailure(); return Promise.reject({ msg: "未登录", toLogin: true }); } return Promise.reject(error); @@ -44,7 +44,7 @@ function baseRequest(options) { // 如果需要登录才可访问的接口没有拿到 token 视为登录失效 if (options.login === true && !token) { // 跳转到登录或授权页面 - toLogin(); + handleLoginFailure(); // 提示错误信息 return Promise.reject({ msg: "未登录", toLogin: true }); } @@ -60,7 +60,7 @@ function baseRequest(options) { return Promise.reject({ msg: "请求失败", res, data }); } if ([410000, 410001, 410002].indexOf(data.status) !== -1) { - toLogin(); + handleLoginFailure(); return Promise.reject({ msg: res.data.msg, res, data, toLogin: true }); } else if (data.status === 200) { return Promise.resolve(data, res);