From 4fb75be4b09d861ce1122553d61bf932f3ab4079 Mon Sep 17 00:00:00 2001
From: Gao xiaosong <704041637@qq.com>
Date: Tue, 6 Apr 2021 00:11:59 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=BE=AE=E4=BF=A1=E6=8E=88?=
=?UTF-8?q?=E6=9D=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pages/authorization/index.vue | 328 +++---
pages/user/User/index.vue | 541 +++++-----
utils/index.js | 1854 +++++++++++++++++----------------
3 files changed, 1374 insertions(+), 1349 deletions(-)
diff --git a/pages/authorization/index.vue b/pages/authorization/index.vue
index f866c35..01d856a 100644
--- a/pages/authorization/index.vue
+++ b/pages/authorization/index.vue
@@ -7,7 +7,8 @@
为了提供更优质的服务,需要获取您的头像昵称
-
+
+
@@ -25,169 +26,204 @@
diff --git a/pages/user/User/index.vue b/pages/user/User/index.vue
index 15e7128..a600d61 100644
--- a/pages/user/User/index.vue
+++ b/pages/user/User/index.vue
@@ -1,6 +1,6 @@
-
+
diff --git a/utils/index.js b/utils/index.js
index 7d511bc..12df372 100644
--- a/utils/index.js
+++ b/utils/index.js
@@ -2,537 +2,560 @@ import Vue from 'vue'
// import MpvueRouterPatch from 'mpvue-router-patch'
// Vue.use(MpvueRouterPatch)
-import {
- wxappAuth,
- getUserInfo
-} from "@/api/user";
-import store from "@/store";
-import dayjs from "dayjs";
-import cookie from "@/utils/store/cookie";
-import stringify from "@/utils/querystring";
-import { VUE_APP_API_URL } from "@/config";
+import { wxappAuth, getUserInfo } from '@/api/user'
+import store from '@/store'
+import dayjs from 'dayjs'
+import cookie from '@/utils/store/cookie'
+import stringify from '@/utils/querystring'
+import { VUE_APP_API_URL } from '@/config'
import { wechat, auth, oAuth, toAuth } from '@/libs/wechat'
-
export function dataFormat(time, option) {
- time = +time * 1000;
- const d = new Date(time);
- const now = new Date().getTime();
-
- const diff = (now - d) / 1000;
- if (diff < 30) {
- return "刚刚";
- } else if (diff < 3600) {
- // less 1 hour
- return Math.ceil(diff / 60) + "分钟前";
- } else if (diff < 3600 * 24) {
- return Math.ceil(diff / 3600) + "小时前";
- } else if (diff < 3600 * 24 * 2) {
- return "1天前";
- }
- if (option) {
- // return parseTime(time, option);
- } else {
- let timeStr = d.getFullYear() + "年" + (d.getMonth() + 1) + "月" + d.getDate() + "日" + d.getHours() + "时" + d.getMinutes() +
- "分"
- return timeStr
- }
+ time = +time * 1000
+ const d = new Date(time)
+ const now = new Date().getTime()
+
+ const diff = (now - d) / 1000
+ if (diff < 30) {
+ return '刚刚'
+ } else if (diff < 3600) {
+ // less 1 hour
+ return Math.ceil(diff / 60) + '分钟前'
+ } else if (diff < 3600 * 24) {
+ return Math.ceil(diff / 3600) + '小时前'
+ } else if (diff < 3600 * 24 * 2) {
+ return '1天前'
+ }
+ if (option) {
+ // return parseTime(time, option);
+ } else {
+ let timeStr = d.getFullYear() + '年' + (d.getMonth() + 1) + '月' + d.getDate() + '日' + d.getHours() + '时' + d.getMinutes() + '分'
+ return timeStr
+ }
}
// 年月日,时分秒
// "YYYY-mm-dd HH:MM"
export function dateFormatL(fmt, date) {
- let ret;
- const opt = {
- "Y+": date.getFullYear().toString(), // 年
- "m+": (date.getMonth() + 1).toString(), // 月
- "d+": date.getDate().toString(), // 日
- "H+": date.getHours().toString(), // 时
- "M+": date.getMinutes().toString(), // 分
- "S+": date.getSeconds().toString() // 秒
- // 有其他格式化字符需求可以继续添加,必须转化成字符串
- };
- for (let k in opt) {
- ret = new RegExp("(" + k + ")").exec(fmt);
- if (ret) {
- fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
- };
- };
- return fmt;
+ let ret
+ const opt = {
+ 'Y+': date.getFullYear().toString(), // 年
+ 'm+': (date.getMonth() + 1).toString(), // 月
+ 'd+': date.getDate().toString(), // 日
+ 'H+': date.getHours().toString(), // 时
+ 'M+': date.getMinutes().toString(), // 分
+ 'S+': date.getSeconds().toString(), // 秒
+ // 有其他格式化字符需求可以继续添加,必须转化成字符串
+ }
+ for (let k in opt) {
+ ret = new RegExp('(' + k + ')').exec(fmt)
+ if (ret) {
+ fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0'))
+ }
+ }
+ return fmt
}
export function dateFormatT(time) {
- time = +time * 1000;
- const d = new Date(time);
-
- return (
- d.getFullYear() +
- "/" +
- (d.getMonth() + parseInt(1)) +
- "/" +
- d.getDate()
- );
+ time = +time * 1000
+ const d = new Date(time)
+ return d.getFullYear() + '/' + (d.getMonth() + parseInt(1)) + '/' + d.getDate()
}
export function trim(str) {
- return String.prototype.trim.call(str);
+ return String.prototype.trim.call(str)
}
export function isType(arg, type) {
- return Object.prototype.toString.call(arg) === "[object " + type + "]";
+ return Object.prototype.toString.call(arg) === '[object ' + type + ']'
}
export function isWeixin() {
- if (navigator && navigator.userAgent && navigator.userAgent.toLowerCase().indexOf("micromessenger") !== -1) {
- return true
- }
- return false
+ if (navigator && navigator.userAgent && navigator.userAgent.toLowerCase().indexOf('micromessenger') !== -1) {
+ return true
+ }
+ return false
}
export function parseQuery() {
- let res = {};
-
- // #ifdef H5
- const query = (location.href.split("?")[1] || "")
- .trim()
- .replace(/^(\?|#|&)/, "");
-
- if (!query) {
- return res;
- }
-
- query.split("&").forEach(param => {
- const parts = param.replace(/\+/g, " ").split("=");
- const key = decodeURIComponent(parts.shift());
- const val = parts.length > 0 ? decodeURIComponent(parts.join("=")) : null;
-
- if (res[key] === undefined) {
- res[key] = val;
- } else if (Array.isArray(res[key])) {
- res[key].push(val);
- } else {
- res[key] = [res[key], val];
- }
- });
- // #endif
- // #ifndef H5
- var pages = getCurrentPages() //获取加载的页面
- var currentPage = pages[pages.length - 1] //获取当前页面的对象
- var url = currentPage.route //当前页面url
- res = currentPage.options //如果要获取url中所带的参数可以查看options
- // #endif
-
- return res
+ let res = {}
+
+ // #ifdef H5
+ const query = (location.href.split('?')[1] || '').trim().replace(/^(\?|#|&)/, '')
+
+ if (!query) {
+ return res
+ }
+
+ query.split('&').forEach(param => {
+ const parts = param.replace(/\+/g, ' ').split('=')
+ const key = decodeURIComponent(parts.shift())
+ const val = parts.length > 0 ? decodeURIComponent(parts.join('=')) : null
+
+ if (res[key] === undefined) {
+ res[key] = val
+ } else if (Array.isArray(res[key])) {
+ res[key].push(val)
+ } else {
+ res[key] = [res[key], val]
+ }
+ })
+ // #endif
+ // #ifndef H5
+ var pages = getCurrentPages() //获取加载的页面
+ var currentPage = pages[pages.length - 1] //获取当前页面的对象
+ var url = currentPage.route //当前页面url
+ res = currentPage.options //如果要获取url中所带的参数可以查看options
+ // #endif
+
+ return res
}
/*获取当前页url*/
export function getCurrentPageUrl() {
- var pages = getCurrentPages() //获取加载的页面
- var currentPage = pages[pages.length - 1] //获取当前页面的对象
- var url = currentPage.route //当前页面url
- return url
+ var pages = getCurrentPages() //获取加载的页面
+ var currentPage = pages[pages.length - 1] //获取当前页面的对象
+ var url = currentPage.route //当前页面url
+ return url
}
/*获取当前页带参数的url*/
export function getCurrentPageUrlWithArgs() {
- var pages = getCurrentPages() //获取加载的页面
- var currentPage = pages[pages.length - 1] //获取当前页面的对象
- var url = currentPage.route //当前页面url
- var options = currentPage.options //如果要获取url中所带的参数可以查看options
- //拼接url的参数
- var urlWithArgs = url + '?'
- for (var key in options) {
- var value = options[key]
- urlWithArgs += key + '=' + value + '&'
- }
- urlWithArgs = urlWithArgs.substring(0, urlWithArgs.length - 1)
- return urlWithArgs
+ var pages = getCurrentPages() //获取加载的页面
+ var currentPage = pages[pages.length - 1] //获取当前页面的对象
+ var url = currentPage.route //当前页面url
+ var options = currentPage.options //如果要获取url中所带的参数可以查看options
+ //拼接url的参数
+ var urlWithArgs = url + '?'
+ for (var key in options) {
+ var value = options[key]
+ urlWithArgs += key + '=' + value + '&'
+ }
+ urlWithArgs = urlWithArgs.substring(0, urlWithArgs.length - 1)
+ return urlWithArgs
}
// 复制到剪切板
-export const copyClipboard = (data) => {
- uni.setClipboardData({
- data: data,
- success: (res) => {
- uni.showToast({
- title: '复制成功',
- icon: 'success',
- duration: 2000
- })
- }
- })
+export const copyClipboard = data => {
+ uni.setClipboardData({
+ data: data,
+ success: res => {
+ uni.showToast({
+ title: '复制成功',
+ icon: 'success',
+ duration: 2000,
+ })
+ },
+ })
}
-export const getProvider = (service) => {
- return new Promise((resolve, reject) => {
- // 获取当前环境的服务商
- uni.getProvider({
- service: service || 'oauth',
- success: function (res) {
- // 此处可以排除h5
- if (res.provider) {
- resolve(res.provider[0])
- }
- },
- fail() {
- reject('获取环境服务商失败')
- }
- })
- }).catch(error => {
- console.log(error)
- })
-
+export const getProvider = service => {
+ return new Promise((resolve, reject) => {
+ // 获取当前环境的服务商
+ uni.getProvider({
+ service: service || 'oauth',
+ success: function(res) {
+ // 此处可以排除h5
+ if (res.provider) {
+ resolve(res.provider[0])
+ }
+ },
+ fail() {
+ reject('获取环境服务商失败')
+ },
+ })
+ }).catch(error => {
+ console.log(error)
+ })
}
-export const authorize = (authorizeStr) => {
- return new Promise((resolve, reject) => {
- console.log('检验授权', `scope.${authorizeStr}`)
- uni.getSetting({
- success(res) {
- console.log(res.authSetting)
- if (res.authSetting[`scope.${authorizeStr}`]) {
- resolve('获取授权成功')
- } else {
- reject('获取授权失败')
- }
- },
- fail() {
- reject('获取设置失败')
- }
- })
-
- })
+export const authorize = authorizeStr => {
+ return new Promise((resolve, reject) => {
+ console.log('检验授权', `scope.${authorizeStr}`)
+ uni.getSetting({
+ success(res) {
+ console.log(res.authSetting)
+ if (res.authSetting[`scope.${authorizeStr}`]) {
+ resolve(true)
+ } else {
+ resolve(false)
+ }
+ },
+ fail() {
+ resolve(false)
+ },
+ })
+ })
}
-export const login = () => {
- return new Promise((resolve, reject) => {
- if (Vue.prototype.$deviceType == 'weixin') {
- // 微信授权登录
- const { code } = parseQuery()
- if (code) {
- auth(code)
- .then(() => {
- let redirect = cookie.get('redirect').replace(/\ /g, '')
- console.log(redirect)
- if (redirect) {
- redirect = redirect.split('/pages')[1]
- if(!redirect){
- redirect="/Loading/index";
- }
- reLaunch({
- path: '/pages' + redirect,
- });
- cookie.remove('redirect');
- } else {
- reLaunch({
- path: '/pages/home/index',
- });
- }
- })
- .catch(() => {
- reject('当前运行环境为微信浏览器')
- reLaunch({
- path: '/pages/home/index',
- });
- });
- } else {
- }
- return
- }
- if (Vue.prototype.$deviceType == 'weixinh5') {
- console.log('当前运行环境为H5')
- reject('当前运行环境为H5')
- return
- }
- if (Vue.prototype.$deviceType == 'app') {
- console.log('当前运行环境为app')
- reject('当前运行环境为app')
- return
- }
- console.log('————————————————————')
- console.log('开始登录')
- console.log('————————————————————')
- console.log('获取环境商')
- getProvider().then(provider => {
- console.log('当前的环境商')
- console.log(provider)
- if (!provider) {
- reject()
- }
- // 调用登录接口
- console.log('调用登录接口')
- uni.login({
- provider: provider,
- success: function (loginRes) {
- // 微信登录
- console.log('登录接口调用成功')
- console.log('开始检查用户信息授权')
- let code = loginRes.code;
- cookie.set('wxLoginCode', loginRes.code)
- // 检查授权, 检查用户信息授权
- authorize('userInfo').then(() => {
- console.log('授权通过')
- console.log('开始获取用户信息')
- uni.getUserInfo({
- provider: provider,
- success: function (user) {
- console.log('获取用户信息成功')
- console.log('开始调用登录接口')
- wxappAuth({
- encryptedData: user.encryptedData,
- iv: user.iv,
- code: code,
- spread: cookie.get("spread")
- }).then(({ data }) => {
- console.log('登录接口调用成功')
- console.log('开始处理登录信息保存,并获取用户详情')
- uni.hideLoading();
- store.commit("login", data.token, dayjs(data.expires_time));
- store.dispatch('userInfo', true)
- getUserInfo().then(user => {
- console.log('获取用户信息成功')
- uni.setStorageSync('uid', user.data.uid);
- store.dispatch('setUserInfo', user.data)
- resolve(user)
- }).catch(error => {
- console.log('获取用户信息失败')
- reject('获取用户信息失败')
- });
- }).catch(error => {
- console.log(error)
- console.log('登录接口调用失败')
- reject('登录接口调用失败')
- });
- },
- fail() {
- console.log('获取用户信息失败')
- reject('获取用户信息失败')
- }
- });
- }).catch(error => {
- console.log('用户未授权')
- reject('用户未授权')
- })
- },
- fail() {
- console.log('调用登录接口失败')
- reject('调用登录接口失败')
- }
- });
- }).catch(error => {
- reject('获取环境服务商失败')
- })
- })
+export const login = loginInfo => {
+ return new Promise((resolve, reject) => {
+ if (Vue.prototype.$deviceType == 'weixin') {
+ // 微信授权登录
+ const { code } = parseQuery()
+ if (code) {
+ auth(code)
+ .then(() => {
+ let redirect = cookie.get('redirect').replace(/\ /g, '')
+ console.log(redirect)
+ if (redirect) {
+ redirect = redirect.split('/pages')[1]
+ if (!redirect) {
+ redirect = '/Loading/index'
+ }
+ reLaunch({
+ path: '/pages' + redirect,
+ })
+ cookie.remove('redirect')
+ } else {
+ reLaunch({
+ path: '/pages/home/index',
+ })
+ }
+ })
+ .catch(() => {
+ reject('当前运行环境为微信浏览器')
+ reLaunch({
+ path: '/pages/home/index',
+ })
+ })
+ } else {
+ }
+ return
+ }
+ if (Vue.prototype.$deviceType == 'weixinh5') {
+ console.log('当前运行环境为H5')
+ reject('当前运行环境为H5')
+ return
+ }
+ if (Vue.prototype.$deviceType == 'app') {
+ console.log('当前运行环境为app')
+ reject('当前运行环境为app')
+ return
+ }
+ console.log('————————————————————')
+ console.log('开始登录')
+ console.log('————————————————————')
+ console.log('获取环境商')
+ getProvider()
+ .then(provider => {
+ console.log('当前的环境商')
+ console.log(provider)
+ if (!provider) {
+ reject()
+ }
+ // 调用登录接口
+ console.log('调用登录接口')
+ uni.login({
+ provider: provider,
+ success: async function(loginRes) {
+ console.log(loginRes)
+ // 微信登录
+ console.log('登录接口调用成功')
+ console.log('开始检查用户信息授权')
+ let code = loginRes.code
+ cookie.set('wxLoginCode', loginRes.code)
+
+ let authorizeRes = await authorize('userInfo')
+ if (!wx.getUserProfile && !authorizeRes) {
+ reject('用户未授权')
+ return
+ }
+ if (wx.getUserProfile) {
+ if (loginInfo) {
+ wxappAuth({
+ encryptedData: loginInfo.encryptedData,
+ iv: loginInfo.iv,
+ code: code,
+ spread: cookie.get('spread'),
+ })
+ .then(({ data }) => {
+ console.log('登录接口调用成功')
+ console.log('开始处理登录信息保存,并获取用户详情')
+ uni.hideLoading()
+ store.commit('login', data.token, dayjs(data.expires_time))
+ store.dispatch('userInfo', true)
+ getUserInfo()
+ .then(user => {
+ console.log('获取用户信息成功')
+ uni.setStorageSync('uid', user.data.uid)
+ store.dispatch('setUserInfo', user.data)
+ resolve(user)
+ })
+ .catch(error => {
+ console.log('获取用户信息失败')
+ reject('获取用户信息失败')
+ })
+ })
+ .catch(error => {
+ console.log(error)
+ console.log('登录接口调用失败')
+ reject('登录接口调用失败')
+ })
+ } else {
+ reject('用户未授权')
+ return
+ }
+ } else {
+ uni.getUserInfo({
+ provider: provider,
+ success: function(user) {
+ console.log(user)
+ console.log('获取用户信息成功')
+ console.log('开始调用登录接口')
+ wxappAuth({
+ encryptedData: user.encryptedData,
+ iv: user.iv,
+ code: code,
+ spread: cookie.get('spread'),
+ })
+ .then(({ data }) => {
+ console.log('登录接口调用成功')
+ console.log('开始处理登录信息保存,并获取用户详情')
+ uni.hideLoading()
+ store.commit('login', data.token, dayjs(data.expires_time))
+ store.dispatch('userInfo', true)
+ getUserInfo()
+ .then(user => {
+ console.log('获取用户信息成功')
+ uni.setStorageSync('uid', user.data.uid)
+ store.dispatch('setUserInfo', user.data)
+ resolve(user)
+ })
+ .catch(error => {
+ console.log('获取用户信息失败')
+ reject('获取用户信息失败')
+ })
+ })
+ .catch(error => {
+ console.log(error)
+ console.log('登录接口调用失败')
+ reject('登录接口调用失败')
+ })
+ },
+ fail() {
+ console.log('获取用户信息失败')
+ reject('获取用户信息失败')
+ },
+ })
+ }
+ },
+ fail() {
+ console.log('调用登录接口失败')
+ reject('调用登录接口失败')
+ },
+ })
+ })
+ .catch(error => {
+ reject('获取环境服务商失败')
+ })
+ })
}
export const handleGetUserInfo = () => {
- getUserInfo().then(res => {
- console.log('获取用户信息')
- store.dispatch('setUserInfo', res.data)
- console.log('获取用户信息后跳转回显的页面')
-
- let redirect = cookie.get('redirect').replace(/\ /g, '')
- if (redirect) {
- reLaunch({
- path: redirect,
- // query
- });
- return
- }
-
- reLaunch({
- path: '/pages/home/index',
- // query
- });
-
- // var pages = getCurrentPages() //获取加载的页面
- // var currentPage = pages[pages.length - 1] //获取当前页面的对象
- // let url = "/pages/home/index"
- // let query = {}
- // if (currentPage) {
- // const {
- // redirect,
- // ...querys
- // } = currentPage.options
- // // 获取到最后一个页面
- // if (
- // currentPage.route != 'pages/Loading/index' &&
- // currentPage.route != 'pages/user/Login/index'
- // ) {
- // url = currentPage.route
- // query = {
- // ...querys
- // }
- // }
- // if (currentPage.route == 'pages/authorization/index') {
-
- // url = redirect
- // query = {
- // ...querys
- // }
- // }
-
- // }
- // console.log(url)
- // if (url == '/pages/home/index' || url == '/pages/shop/GoodsClass/index' || url == '/pages/shop/ShoppingCart/index' || url == '/pages/user/User/index') {
- // switchTab({
- // path: `${url}`,
- // query
- // });
- // } else {
- // let redirect = cookie.get('redirect')
- // if (redirect) {
-
- // reLaunch({
- // path: redirect,
- // // query
- // });
- // return
- // }
- // console.log('获取用户信息后跳转回显的页面')
- // // 为了防止返回上一页是授权页面,先重定向到首页,再跳转
- // console.log({
- // path: `/${url}`,
- // query
- // })
- // reLaunch({
- // path: '/pages/home/index',
- // // query
- // });
-
- // setTimeout(() => {
- // if (url.indexOf('/') == 0) {
- // url = url.slice(1)
- // }
- // push({
- // path: `/${url}`,
- // query
- // })
- // })
-
- // // push({
- // // path: `${url}`,
- // // query
- // // })
- // }
- })
+ getUserInfo().then(res => {
+ console.log('获取用户信息')
+ store.dispatch('setUserInfo', res.data)
+ console.log('获取用户信息后跳转回显的页面')
+
+ let redirect = cookie.get('redirect').replace(/\ /g, '')
+ if (redirect) {
+ reLaunch({
+ path: redirect,
+ // query
+ })
+ return
+ }
+
+ reLaunch({
+ path: '/pages/home/index',
+ // query
+ })
+
+ // var pages = getCurrentPages() //获取加载的页面
+ // var currentPage = pages[pages.length - 1] //获取当前页面的对象
+ // let url = "/pages/home/index"
+ // let query = {}
+ // if (currentPage) {
+ // const {
+ // redirect,
+ // ...querys
+ // } = currentPage.options
+ // // 获取到最后一个页面
+ // if (
+ // currentPage.route != 'pages/Loading/index' &&
+ // currentPage.route != 'pages/user/Login/index'
+ // ) {
+ // url = currentPage.route
+ // query = {
+ // ...querys
+ // }
+ // }
+ // if (currentPage.route == 'pages/authorization/index') {
+
+ // url = redirect
+ // query = {
+ // ...querys
+ // }
+ // }
+
+ // }
+ // console.log(url)
+ // if (url == '/pages/home/index' || url == '/pages/shop/GoodsClass/index' || url == '/pages/shop/ShoppingCart/index' || url == '/pages/user/User/index') {
+ // switchTab({
+ // path: `${url}`,
+ // query
+ // });
+ // } else {
+ // let redirect = cookie.get('redirect')
+ // if (redirect) {
+
+ // reLaunch({
+ // path: redirect,
+ // // query
+ // });
+ // return
+ // }
+ // console.log('获取用户信息后跳转回显的页面')
+ // // 为了防止返回上一页是授权页面,先重定向到首页,再跳转
+ // console.log({
+ // path: `/${url}`,
+ // query
+ // })
+ // reLaunch({
+ // path: '/pages/home/index',
+ // // query
+ // });
+
+ // setTimeout(() => {
+ // if (url.indexOf('/') == 0) {
+ // url = url.slice(1)
+ // }
+ // push({
+ // path: `/${url}`,
+ // query
+ // })
+ // })
+
+ // // push({
+ // // path: `${url}`,
+ // // query
+ // // })
+ // }
+ })
}
export function parseUrl(location) {
- if (typeof location === 'string') return location
- const {
- path,
- query
- } = location
+ if (typeof location === 'string') return location
+ const { path, query } = location
- const queryStr = stringify(query)
+ const queryStr = stringify(query)
- if (!queryStr) {
- return path
- }
+ if (!queryStr) {
+ return path
+ }
- return `${path}?${queryStr}`
+ return `${path}?${queryStr}`
}
export function parseRoute($mp) {
- const _$mp = $mp || {}
- const path = _$mp.page && _$mp.page.route
- return {
- path: `/${path}`,
- params: {},
- query: _$mp.query || _$mp.page.options,
- hash: '',
- fullPath: parseUrl({
- path: `/${path}`,
- query: _$mp.query || _$mp.page.options
- }),
- name: path && path.replace(/\/(\w)/g, ($0, $1) => $1.toUpperCase())
- }
+ const _$mp = $mp || {}
+ const path = _$mp.page && _$mp.page.route
+ return {
+ path: `/${path}`,
+ params: {},
+ query: _$mp.query || _$mp.page.options,
+ hash: '',
+ fullPath: parseUrl({
+ path: `/${path}`,
+ query: _$mp.query || _$mp.page.options,
+ }),
+ name: path && path.replace(/\/(\w)/g, ($0, $1) => $1.toUpperCase()),
+ }
}
export function handleAuth() {
- /**
- * 如何判断权限?
- * 用户如果登录了系统,会留下两个东西,一个是token,一个是userInfo
- * token存在会过期的问题,如果长时间没有打开小程序,会导致登录失效,出现打开一个页面瞬间跳转到授权页面的问题
- * 解决办法,保存token的时候加上过期时间,每次请求都取一下缓存里的token
- * userInfo只是用来限时用户信息,作用并不是很大
- * ps:只需要判断 token 是否存在即可
- */
- if (cookie.get('login_status')) {
- return true
- }
- return false
+ /**
+ * 如何判断权限?
+ * 用户如果登录了系统,会留下两个东西,一个是token,一个是userInfo
+ * token存在会过期的问题,如果长时间没有打开小程序,会导致登录失效,出现打开一个页面瞬间跳转到授权页面的问题
+ * 解决办法,保存token的时候加上过期时间,每次请求都取一下缓存里的token
+ * userInfo只是用来限时用户信息,作用并不是很大
+ * ps:只需要判断 token 是否存在即可
+ */
+ if (cookie.get('login_status')) {
+ return true
+ }
+ return false
}
-
export const handleLoginStatus = (location, complete, fail, success) => {
- // 不登录可访问的页面
- let page = [{
- path: '/pages/Loading/index',
- name: 'loading页面'
- },
- {
- path: '/pages/home/index',
- name: '首页'
- },
- {
- path: '/pages/user/Login/index',
- name: '登录页面'
- },
- {
- path: '/pages/authorization/index',
- name: '授权页面'
- },
- ]
-
- // 是否可以访问
- let isAuth = false
- console.log('即将跳转', location, parseUrl(location))
-
- // 从 location 中获取当前url,location typeof string || object
- let path = ''
- if (typeof location === 'string') {
- path = location
- } else {
- path = location.path
- }
-
- // 判断用户是否有token
- if (!handleAuth()) {
- page.map((item) => {
- if (item.path == path) {
- isAuth = true
- }
- })
- } else {
- isAuth = true
- }
-
- return new Promise((resolve, reject) => {
-
- if (isAuth) {
- // 有token
- if (path == '/pages/home/index' || path == '/pages/shop/GoodsClass/index' || path == '/pages/shop/ShoppingCart/index' || path == '/pages/user/User/index') {
- // switchTab({
- // path: parseUrl(location),
- // })
- // return
- }
-
- resolve({
- url: parseUrl(location),
- complete,
- fail,
- success
- })
- } else {
- // 没有token,先校验用户是否授权,如果授权了,进行自动登录
- routerPermissions(parseUrl(location))
- reject()
- }
- }).catch(error => {
- console.log(error)
- })
+ // 不登录可访问的页面
+ let page = [
+ {
+ path: '/pages/Loading/index',
+ name: 'loading页面',
+ },
+ {
+ path: '/pages/home/index',
+ name: '首页',
+ },
+ {
+ path: '/pages/user/Login/index',
+ name: '登录页面',
+ },
+ {
+ path: '/pages/authorization/index',
+ name: '授权页面',
+ },
+ ]
+
+ // 是否可以访问
+ let isAuth = false
+ console.log('即将跳转', location, parseUrl(location))
+
+ // 从 location 中获取当前url,location typeof string || object
+ let path = ''
+ if (typeof location === 'string') {
+ path = location
+ } else {
+ path = location.path
+ }
+
+ // 判断用户是否有token
+ if (!handleAuth()) {
+ page.map(item => {
+ if (item.path == path) {
+ isAuth = true
+ }
+ })
+ } else {
+ isAuth = true
+ }
+
+ return new Promise((resolve, reject) => {
+ if (isAuth) {
+ // 有token
+ if (path == '/pages/home/index' || path == '/pages/shop/GoodsClass/index' || path == '/pages/shop/ShoppingCart/index' || path == '/pages/user/User/index') {
+ // switchTab({
+ // path: parseUrl(location),
+ // })
+ // return
+ }
+
+ resolve({
+ url: parseUrl(location),
+ complete,
+ fail,
+ success,
+ })
+ } else {
+ // 没有token,先校验用户是否授权,如果授权了,进行自动登录
+ routerPermissions(parseUrl(location))
+ reject()
+ }
+ }).catch(error => {
+ console.log(error)
+ })
}
// export function checkPermissions(){
@@ -540,227 +563,232 @@ export const handleLoginStatus = (location, complete, fail, success) => {
// }
export function routerPermissions(url, type) {
- console.log('routerPermissions', url)
- console.log('————————')
- console.log(url, type, 'routerPermissions')
- console.log('————————')
- let path = url
- if (!path) {
- path = '/' + getCurrentPageUrlWithArgs()
- }
- console.log(Vue.prototype.$deviceType)
- if (Vue.prototype.$deviceType == 'routine') {
- console.log('————————')
- console.log('当前是微信小程序,开始处理小程序登录方法')
- console.log('————————')
- // 如果是微信小程序,跳转到授权页
- // 先校验用户是否授权,如果授权了,进行自动登录
- console.log('————————')
- console.log('开始校验权限')
- console.log('————————')
- authorize('userInfo').then(() => {
- // 自动登录
- console.log('————————')
- console.log('自动登录')
- console.log('————————')
- login().then(res => {
- // 登录成功,跳转到需要跳转的页面
- console.log('————————')
- console.log('登录成功,跳转页面')
- console.log('————————')
- store.commit("updateAuthorizationPage", false);
- if (path == '/pages/shop/ShoppingCart/index' || path == '/pages/user/User/index') {
- console.log('————————')
- console.log('当前是购物车,或者个人中心')
- console.log('————————')
- return
- }
- if (type == 'reLaunch') {
- reLaunch({
- path,
-
- })
- return
- }
- if (type == 'replace') {
- replace({
- path,
- })
- return
- }
- push({
- path,
- })
- }).catch(error => {
- console.log('————————')
- console.log('自动登录失败,跳转到授权页面')
- console.log('————————')
- uni.showToast({
- title: error,
- icon: "none",
- duration: 2000
- });
- reLaunch({
- path: '/pages/authorization/index',
- })
- cookie.set('redirect', path)
- })
- }).catch(error => {
- // 跳转到登录页面或者授权页面
- if (path == '/pages/shop/ShoppingCart/index' || path == '/pages/user/User/index') {
- switchTab({
- path,
- })
- store.commit("updateAuthorizationPage", false);
- return
- }
- reLaunch({
- path: '/pages/authorization/index',
- })
- cookie.set('redirect', path)
- })
- } else if (Vue.prototype.$deviceType == 'weixin') {
- wechat().then(() => oAuth());
- if (!type) {
- push({
- path: url,
- })
- }
- } else {
- console.log(path)
- // 如果不是小程序跳转到登录页
- cookie.set('redirect', path)
- push({
- path: '/pages/user/Login/index',
- })
- }
-
+ console.log('routerPermissions', url)
+ console.log('————————')
+ console.log(url, type, 'routerPermissions')
+ console.log('————————')
+ let path = url
+ if (!path) {
+ path = '/' + getCurrentPageUrlWithArgs()
+ }
+ console.log(Vue.prototype.$deviceType)
+ if (Vue.prototype.$deviceType == 'routine') {
+ console.log('————————')
+ console.log('当前是微信小程序,开始处理小程序登录方法')
+ console.log('————————')
+ // 如果是微信小程序,跳转到授权页
+ // 先校验用户是否授权,如果授权了,进行自动登录
+ console.log('————————')
+ console.log('开始校验权限')
+ console.log('————————')
+ authorize('userInfo')
+ .then(() => {
+ // 自动登录
+ console.log('————————')
+ console.log('自动登录')
+ console.log('————————')
+ login()
+ .then(res => {
+ // 登录成功,跳转到需要跳转的页面
+ console.log('————————')
+ console.log('登录成功,跳转页面')
+ console.log('————————')
+ store.commit('updateAuthorizationPage', false)
+ if (path == '/pages/shop/ShoppingCart/index' || path == '/pages/user/User/index') {
+ console.log('————————')
+ console.log('当前是购物车,或者个人中心')
+ console.log('————————')
+ return
+ }
+ if (type == 'reLaunch') {
+ reLaunch({
+ path,
+ })
+ return
+ }
+ if (type == 'replace') {
+ replace({
+ path,
+ })
+ return
+ }
+ push({
+ path,
+ })
+ })
+ .catch(error => {
+ console.log('————————')
+ console.log('自动登录失败,跳转到授权页面')
+ console.log('————————')
+ uni.showToast({
+ title: error,
+ icon: 'none',
+ duration: 2000,
+ })
+ reLaunch({
+ path: '/pages/authorization/index',
+ })
+ cookie.set('redirect', path)
+ })
+ })
+ .catch(error => {
+ // 跳转到登录页面或者授权页面
+ if (path == '/pages/shop/ShoppingCart/index' || path == '/pages/user/User/index') {
+ switchTab({
+ path,
+ })
+ store.commit('updateAuthorizationPage', false)
+ return
+ }
+ reLaunch({
+ path: '/pages/authorization/index',
+ })
+ cookie.set('redirect', path)
+ })
+ } else if (Vue.prototype.$deviceType == 'weixin') {
+ wechat().then(() => oAuth())
+ if (!type) {
+ push({
+ path: url,
+ })
+ }
+ } else {
+ console.log(path)
+ // 如果不是小程序跳转到登录页
+ cookie.set('redirect', path)
+ push({
+ path: '/pages/user/Login/index',
+ })
+ }
}
export function push(location, complete, fail, success) {
- handleLoginStatus(location, complete, fail, success).then(params => {
- uni.navigateTo(params)
- }).catch(error => {
- // 没有权限
-
- })
+ handleLoginStatus(location, complete, fail, success)
+ .then(params => {
+ uni.navigateTo(params)
+ })
+ .catch(error => {
+ // 没有权限
+ })
}
export function replace(location, complete, fail, success) {
- handleLoginStatus(location, complete, fail, success).then(params => {
- console.log(params)
- uni.redirectTo(params)
- }).catch(error => {
- // 没有权限
-
- })
+ handleLoginStatus(location, complete, fail, success)
+ .then(params => {
+ console.log(params)
+ uni.redirectTo(params)
+ })
+ .catch(error => {
+ // 没有权限
+ })
}
export function reLaunch(location, complete, fail, success) {
- handleLoginStatus(location, complete, fail, success).then(params => {
- console.log(params)
- uni.reLaunch(params)
- }).catch(error => {
- // 没有权限
- console.log(error)
- })
+ handleLoginStatus(location, complete, fail, success)
+ .then(params => {
+ console.log(params)
+ uni.reLaunch(params)
+ })
+ .catch(error => {
+ // 没有权限
+ console.log(error)
+ })
}
export function go(delta) {
- uni.navigateBack({
- delta
- })
+ uni.navigateBack({
+ delta,
+ })
}
export function back() {
- uni.navigateBack({
- delta: 1,
- success: function (e) { },
- fail: function (e) { }
- })
+ uni.navigateBack({
+ delta: 1,
+ success: function(e) {},
+ fail: function(e) {},
+ })
}
export function switchTab(location, complete, fail, success) {
- handleLoginStatus(location, complete, fail, success).then(params => {
- uni.switchTab(params)
- }).catch(error => {
- // 没有权限
- })
+ handleLoginStatus(location, complete, fail, success)
+ .then(params => {
+ uni.switchTab(params)
+ })
+ .catch(error => {
+ // 没有权限
+ })
}
-
export const _router = {
- mode: 'history',
- switchTab,
- push,
- replace,
- go,
- back,
- reLaunch
+ mode: 'history',
+ switchTab,
+ push,
+ replace,
+ go,
+ back,
+ reLaunch,
}
-
export function handleQrCode() {
- var urlSpread = parseQuery()["q"];
- if (urlSpread) {
- if (urlSpread.indexOf('%3F') != -1) {
- // 通过海报二维码进来
- urlSpread = urlSpread
- .split("%3F")[1]
- .replace(/%3D/g, ":")
- .replace(/%26/g, ",")
- .split(",")
- .map((item, index) => {
- item = item.split(":");
- return `"${item[0]}":"${item[1]}"`;
- })
- .join(",");
- urlSpread = JSON.parse("{" + urlSpread + "}");
- return urlSpread
- } else {
- return handleUrlParam(urlSpread)
- }
- }
- return null
+ var urlSpread = parseQuery()['q']
+ if (urlSpread) {
+ if (urlSpread.indexOf('%3F') != -1) {
+ // 通过海报二维码进来
+ urlSpread = urlSpread
+ .split('%3F')[1]
+ .replace(/%3D/g, ':')
+ .replace(/%26/g, ',')
+ .split(',')
+ .map((item, index) => {
+ item = item.split(':')
+ return `"${item[0]}":"${item[1]}"`
+ })
+ .join(',')
+ urlSpread = JSON.parse('{' + urlSpread + '}')
+ return urlSpread
+ } else {
+ return handleUrlParam(urlSpread)
+ }
+ }
+ return null
}
export function handleUrlParam(path) {
- var url = path.split("?")[1]; //获取url中"?"符后的字串
- var theRequest = new Object();
- if (path.includes("?")) {
- var url = path.split("?")[1]; //获取url中"?"符后的字串
- let strs = url.split("&");
- for (var i = 0; i < strs.length; i++) {
- theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
- }
- }
- return theRequest;
+ var url = path.split('?')[1] //获取url中"?"符后的字串
+ var theRequest = new Object()
+ if (path.includes('?')) {
+ var url = path.split('?')[1] //获取url中"?"符后的字串
+ let strs = url.split('&')
+ for (var i = 0; i < strs.length; i++) {
+ theRequest[strs[i].split('=')[0]] = unescape(strs[i].split('=')[1])
+ }
+ }
+ return theRequest
}
-const getImageInfo = (images) => {
- return new Promise((resolve, reject) => {
- let imageAry = {}
- images.map((item, index) => {
- uni.getImageInfo({
- src: item,
- fail: function (res) {
- imageAry[index] = null
- if (imageAry.length == images.length) {
- resolve(imageAry)
- }
- },
- success: function (res) {
- imageAry[index] = res
- if (Object.keys(imageAry).length == images.length) {
- resolve(imageAry)
- }
- }
- })
- })
- })
+const getImageInfo = images => {
+ return new Promise((resolve, reject) => {
+ let imageAry = {}
+ images.map((item, index) => {
+ uni.getImageInfo({
+ src: item,
+ fail: function(res) {
+ imageAry[index] = null
+ if (imageAry.length == images.length) {
+ resolve(imageAry)
+ }
+ },
+ success: function(res) {
+ imageAry[index] = res
+ if (Object.keys(imageAry).length == images.length) {
+ resolve(imageAry)
+ }
+ },
+ })
+ })
+ })
}
-
/**
* 获取分享海报
* @param array store 海报素材
@@ -771,272 +799,258 @@ const getImageInfo = (images) => {
*
*/
export const PosterCanvas = (store, successCallBack) => {
- uni.showLoading({
- title: '海报生成中',
- mask: true
- });
- getImageInfo([store.image, store.code]).then(res => {
- let contentHh = 48 * 1.3
- const ctx = uni.createCanvasContext('myCanvas')
- ctx.clearRect(0, 0, 0, 0);
- const WIDTH = 747
- const HEIGHT = 1326;
- ctx.fillStyle = "#FFFFFF";
- ctx.fillRect(0, 0, WIDTH, HEIGHT);
- ctx.drawImage(res[0].path, 0, 0, WIDTH, WIDTH);
- ctx.drawImage(res[1].path, 40, 1064, 200, 200);
- ctx.save();
- let r = 90;
- let d = r * 2;
- let cx = 40;
- let cy = 990;
- ctx.arc(cx + r, cy + r, r, 0, 2 * Math.PI);
- ctx.clip();
- ctx.restore();
- ctx.setTextAlign('center');
- ctx.setFontSize(48);
- ctx.setFillStyle('#000');
- ctx.fillText(store.title, WIDTH / 2, 810 + contentHh);
- ctx.setTextAlign('center')
- ctx.setFontSize(32);
- ctx.setFillStyle('red');
- ctx.fillText('¥' + store.price, WIDTH / 2, 985);
- ctx.setTextAlign('center')
- ctx.setFontSize(22);
- ctx.setFillStyle('#333333');
- ctx.fillText('长按识别二维码立即购买', WIDTH / 2, 1167);
- ctx.save();
- ctx.draw(true, () => {
- uni.canvasToTempFilePath({
- canvasId: 'myCanvas',
- fileType: 'png',
- destWidth: WIDTH,
- destHeight: HEIGHT,
- success: function (res) {
- uni.hideLoading();
- successCallBack && successCallBack(res.tempFilePath);
- },
- fail: function (error) {
- console.log(error)
- },
-
- })
- });
-
- })
-
- // uni.getImageInfo({
- // src: store.image,
- // fail: function (res) {
- // uni.showToast({
- // title: '海报生成失败',
- // icon: "none",
- // duration: 2000
- // });
- // },
- // success: function (res) {
-
- // }
- // })
+ uni.showLoading({
+ title: '海报生成中',
+ mask: true,
+ })
+ getImageInfo([store.image, store.code]).then(res => {
+ let contentHh = 48 * 1.3
+ const ctx = uni.createCanvasContext('myCanvas')
+ ctx.clearRect(0, 0, 0, 0)
+ const WIDTH = 747
+ const HEIGHT = 1326
+ ctx.fillStyle = '#FFFFFF'
+ ctx.fillRect(0, 0, WIDTH, HEIGHT)
+ ctx.drawImage(res[0].path, 0, 0, WIDTH, WIDTH)
+ ctx.drawImage(res[1].path, 40, 1064, 200, 200)
+ ctx.save()
+ let r = 90
+ let d = r * 2
+ let cx = 40
+ let cy = 990
+ ctx.arc(cx + r, cy + r, r, 0, 2 * Math.PI)
+ ctx.clip()
+ ctx.restore()
+ ctx.setTextAlign('center')
+ ctx.setFontSize(48)
+ ctx.setFillStyle('#000')
+ ctx.fillText(store.title, WIDTH / 2, 810 + contentHh)
+ ctx.setTextAlign('center')
+ ctx.setFontSize(32)
+ ctx.setFillStyle('red')
+ ctx.fillText('¥' + store.price, WIDTH / 2, 985)
+ ctx.setTextAlign('center')
+ ctx.setFontSize(22)
+ ctx.setFillStyle('#333333')
+ ctx.fillText('长按识别二维码立即购买', WIDTH / 2, 1167)
+ ctx.save()
+ ctx.draw(true, () => {
+ uni.canvasToTempFilePath({
+ canvasId: 'myCanvas',
+ fileType: 'png',
+ destWidth: WIDTH,
+ destHeight: HEIGHT,
+ success: function(res) {
+ uni.hideLoading()
+ successCallBack && successCallBack(res.tempFilePath)
+ },
+ fail: function(error) {
+ console.log(error)
+ },
+ })
+ })
+ })
+
+ // uni.getImageInfo({
+ // src: store.image,
+ // fail: function (res) {
+ // uni.showToast({
+ // title: '海报生成失败',
+ // icon: "none",
+ // duration: 2000
+ // });
+ // },
+ // success: function (res) {
+
+ // }
+ // })
}
-
-
export const handleLoginFailure = () => {
- console.log('————————')
- console.log('退出登录,标记当前页面为授权页面,防止多次跳转')
- console.log('————————')
-
- store.commit("logout");
- // 改为授权取消
- store.commit("updateAuthorization", false);
-
-
- let currentPageUrl = getCurrentPageUrl()
- if (store.state.$deviceType == 'weixin') {
- // 如果不是授权页面,
- if (!store.getters.isAuthorizationPage) {
- // 标识当前为授权页面
- store.commit("updateAuthorizationPage", true);
- toAuth()
- }
- return
- } else {
- // token 失效
- // 判断当前是不是已经在登录页面或者授权页,防止二次跳转
- if (store.getters.isAuthorizationPage || currentPageUrl == '/pages/user/Login/index') {
- console.log(store.getters.isAuthorizationPage, currentPageUrl, '已经是登录页面或者授权页面,跳出方法')
- return
- }
- }
-
-
- console.log('————————')
- console.log('当前是授权页面')
- console.log(store.getters)
- console.log('————————')
- store.commit("updateAuthorizationPage", true);
-
- let path = '/' + getCurrentPageUrlWithArgs()
-
- let qrCode = handleQrCode()
-
- if (qrCode) {
- // 当前是通过海报扫描进入的
-
- // 判断是不是拼团进来的
- if (currentPageUrl == 'pages/activity/GroupRule/index') {
- console.log('————————')
- console.log('是拼团进来的')
- console.log('————————')
- if (qrCode.pinkId) {
- path = parseUrl({
- path: `/ ${currentPageUrl} `,
- query: {
- id: qrCode.pinkId,
- }
- })
- if (qrCode.spread) {
- cookie.set("spread", qrCode.spread || 0);
- }
- } else {
- console.log('————————')
- console.log('是拼团进来的,但是没有获取到参数')
- console.log('————————')
- handleNoParameters()
- }
- }
-
- // 判断是不是扫描的砍价海报进来的
- if (currentPageUrl == 'pages/activity/DargainDetails/index') {
- console.log('————————')
- console.log('是扫描的砍价海报进来的')
- console.log('————————')
-
- if (qrCode.bargainId) {
- path = parseUrl({
- path: `/ ${currentPageUrl} `,
- query: {
- id: qrCode.bargainId,
- partake: qrCode.uid
- }
- })
- if (qrCode.spread) {
- cookie.set("spread", qrCode.spread || 0);
- }
- } else {
- handleNoParameters()
- console.log('————————')
- console.log('是扫描的砍价海报进来的,但是没有获取到参数')
- console.log('————————')
- }
- }
-
- if (currentPageUrl == 'pages/shop/GoodsCon/index') {
- console.log('————————')
- console.log('是扫描的商品详情')
- console.log('————————')
-
- if (qrCode.productId) {
- path = parseUrl({
- path: `/ ${currentPageUrl} `,
- query: {
- id: qrCode.productId,
- }
- })
- if (qrCode.spread) {
- cookie.set("spread", qrCode.spread || 0);
- }
- } else {
- handleNoParameters()
- console.log('————————')
- console.log('是扫描的商品详情进来的,但是没有获取到参数')
- console.log('————————')
- }
- }
- }
-
-
-
- console.log('————————')
- console.log(path, '重定向页面地址')
- console.log('————————')
- routerPermissions(path, 'reLaunch')
+ console.log('————————')
+ console.log('退出登录,标记当前页面为授权页面,防止多次跳转')
+ console.log('————————')
+
+ store.commit('logout')
+ // 改为授权取消
+ store.commit('updateAuthorization', false)
+
+ let currentPageUrl = getCurrentPageUrl()
+ if (store.state.$deviceType == 'weixin') {
+ // 如果不是授权页面,
+ if (!store.getters.isAuthorizationPage) {
+ // 标识当前为授权页面
+ store.commit('updateAuthorizationPage', true)
+ toAuth()
+ }
+ return
+ } else {
+ // token 失效
+ // 判断当前是不是已经在登录页面或者授权页,防止二次跳转
+ if (store.getters.isAuthorizationPage || currentPageUrl == '/pages/user/Login/index') {
+ console.log(store.getters.isAuthorizationPage, currentPageUrl, '已经是登录页面或者授权页面,跳出方法')
+ return
+ }
+ }
+
+ console.log('————————')
+ console.log('当前是授权页面')
+ console.log(store.getters)
+ console.log('————————')
+ store.commit('updateAuthorizationPage', true)
+
+ let path = '/' + getCurrentPageUrlWithArgs()
+
+ let qrCode = handleQrCode()
+
+ if (qrCode) {
+ // 当前是通过海报扫描进入的
+
+ // 判断是不是拼团进来的
+ if (currentPageUrl == 'pages/activity/GroupRule/index') {
+ console.log('————————')
+ console.log('是拼团进来的')
+ console.log('————————')
+ if (qrCode.pinkId) {
+ path = parseUrl({
+ path: `/ ${currentPageUrl} `,
+ query: {
+ id: qrCode.pinkId,
+ },
+ })
+ if (qrCode.spread) {
+ cookie.set('spread', qrCode.spread || 0)
+ }
+ } else {
+ console.log('————————')
+ console.log('是拼团进来的,但是没有获取到参数')
+ console.log('————————')
+ handleNoParameters()
+ }
+ }
+
+ // 判断是不是扫描的砍价海报进来的
+ if (currentPageUrl == 'pages/activity/DargainDetails/index') {
+ console.log('————————')
+ console.log('是扫描的砍价海报进来的')
+ console.log('————————')
+
+ if (qrCode.bargainId) {
+ path = parseUrl({
+ path: `/ ${currentPageUrl} `,
+ query: {
+ id: qrCode.bargainId,
+ partake: qrCode.uid,
+ },
+ })
+ if (qrCode.spread) {
+ cookie.set('spread', qrCode.spread || 0)
+ }
+ } else {
+ handleNoParameters()
+ console.log('————————')
+ console.log('是扫描的砍价海报进来的,但是没有获取到参数')
+ console.log('————————')
+ }
+ }
+
+ if (currentPageUrl == 'pages/shop/GoodsCon/index') {
+ console.log('————————')
+ console.log('是扫描的商品详情')
+ console.log('————————')
+
+ if (qrCode.productId) {
+ path = parseUrl({
+ path: `/ ${currentPageUrl} `,
+ query: {
+ id: qrCode.productId,
+ },
+ })
+ if (qrCode.spread) {
+ cookie.set('spread', qrCode.spread || 0)
+ }
+ } else {
+ handleNoParameters()
+ console.log('————————')
+ console.log('是扫描的商品详情进来的,但是没有获取到参数')
+ console.log('————————')
+ }
+ }
+ }
+
+ console.log('————————')
+ console.log(path, '重定向页面地址')
+ console.log('————————')
+ routerPermissions(path, 'reLaunch')
}
const handleNoParameters = () => {
- uni.showToast({
- title: '未获取到必要参数,即将跳转首页',
- icon: 'success',
- duration: 2000
- })
- setTimeout(() => {
- clearTimeout()
- switchTab({
- path: '/pages/home/index',
- });
- }, 1500)
+ uni.showToast({
+ title: '未获取到必要参数,即将跳转首页',
+ icon: 'success',
+ duration: 2000,
+ })
+ setTimeout(() => {
+ clearTimeout()
+ switchTab({
+ path: '/pages/home/index',
+ })
+ }, 1500)
}
-
export function chooseImage(callback) {
- uni.chooseImage({
- count: 1,
- sourceType: ["album"],
- success: res => {
- uni.getImageInfo({
- src: res.tempFilePaths[0],
- success: image => {
- console.log(image);
- uni.showLoading({ title: "图片上传中", mask: true });
- uni.uploadFile({
- url: `${VUE_APP_API_URL}/api/upload`,
- file: image,
- filePath: image.path,
- header: {
- Authorization: "Bearer " + store.getters.token
- },
- name: "file",
- success: res => {
- if (callback) {
- callback(JSON.parse(res.data).link)
- }
- },
- fail: err => {
- uni.showToast({
- title: "上传图片失败",
- icon: "none",
- duration: 2000
- });
- },
- complete: res => {
- uni.hideLoading()
- }
- });
- },
- fail: err => {
- uni.showToast({
- title: "获取图片信息失败",
- icon: "none",
- duration: 2000
- });
- }
- });
- }
- });
+ uni.chooseImage({
+ count: 1,
+ sourceType: ['album'],
+ success: res => {
+ uni.getImageInfo({
+ src: res.tempFilePaths[0],
+ success: image => {
+ console.log(image)
+ uni.showLoading({ title: '图片上传中', mask: true })
+ uni.uploadFile({
+ url: `${VUE_APP_API_URL}/api/upload`,
+ file: image,
+ filePath: image.path,
+ header: {
+ Authorization: 'Bearer ' + store.getters.token,
+ },
+ name: 'file',
+ success: res => {
+ if (callback) {
+ callback(JSON.parse(res.data).link)
+ }
+ },
+ fail: err => {
+ uni.showToast({
+ title: '上传图片失败',
+ icon: 'none',
+ duration: 2000,
+ })
+ },
+ complete: res => {
+ uni.hideLoading()
+ },
+ })
+ },
+ fail: err => {
+ uni.showToast({
+ title: '获取图片信息失败',
+ icon: 'none',
+ duration: 2000,
+ })
+ },
+ })
+ },
+ })
}
-
export function handleErrorMessage(err) {
- console.log(err)
- uni.hideLoading();
- uni.showToast({
- title:
- err.msg ||
- err.response.data.msg ||
- err.response.data.message ||
- "创建订单失败",
- icon: "none",
- duration: 2000,
- });
+ console.log(err)
+ uni.hideLoading()
+ uni.showToast({
+ title: err.msg || err.response.data.msg || err.response.data.message || '创建订单失败',
+ icon: 'none',
+ duration: 2000,
+ })
}