Browse Source

1.修改小程序段拼团未登录情况下无法进行登录回跳的问题

2.新增订单扫码核销的功能
3.修改cookie方法未取到值返回null导致报错的问题
4.修改loading页面跳转登录的问题
master
Gaoxs 4 years ago
parent
commit
95a8589448
  1. 2
      pages/Loading/index.vue
  2. 74
      pages/activity/GroupRule/index.vue
  3. 5
      pages/authorization/index.vue
  4. 38
      pages/orderAdmin/OrderCancellation/index.vue
  5. BIN
      static/images/scan.gif
  6. 9
      utils/index.js
  7. 2
      utils/store/cookie.js

2
pages/Loading/index.vue

@ -71,7 +71,7 @@
toLaunch() { toLaunch() {
console.log("loading home"); console.log("loading home");
this.changeAuthorization(false); this.changeAuthorization(false);
let redirect = cookie.get('redirect') let redirect = cookie.get('redirect').replace(/\ /g, '')
if (redirect && redirect.indexOf('/pages') != -1) { if (redirect && redirect.indexOf('/pages') != -1) {
this.$yrouter.replace({ this.$yrouter.replace({
path: '/pages' + redirect.split('/pages')[1], path: '/pages' + redirect.split('/pages')[1],

74
pages/activity/GroupRule/index.vue

@ -1,6 +1,6 @@
<template> <template>
<view class="group-con"> <view class="group-con">
<view class="header acea-row row-between-wrapper"> <view class="header acea-row row-between-wrapper" v-if="storeCombination">
<view class="pictrue"> <view class="pictrue">
<image :src="storeCombination.image" /> <image :src="storeCombination.image" />
</view> </view>
@ -15,20 +15,13 @@
<view v-if="pinkBool === -1" class="iconfont icon-pintuanshibai"></view> <view v-if="pinkBool === -1" class="iconfont icon-pintuanshibai"></view>
<view v-else-if="pinkBool === 1" class="iconfont icon-pintuanchenggong font-color-red"></view> <view v-else-if="pinkBool === 1" class="iconfont icon-pintuanchenggong font-color-red"></view>
</view> </view>
<view class="wrapper"> <view class="wrapper" v-if="pinkT">
<view class="title acea-row row-center-wrapper"> <view class="title acea-row row-center-wrapper">
<view class="line"></view> <view class="line"></view>
<view class="name acea-row row-center-wrapper"> <view class="name acea-row row-center-wrapper">
<text>剩余</text> <text>剩余</text>
<count-down <count-down :isDay="true" :tipText="'倒计时 '" :dayText="' 天 '" :hourText="' 时 '" :minuteText="' 分 '"
:isDay="false" :secondText="' 秒'" :datatime="pinkT.stopTime/1000"></count-down>
:tipText="false"
:dayText="false"
:hourText="' : '"
:minuteText="' : '"
:secondText="false"
:datatime="pinkT.stopTime/1000"
></count-down>
<text>结束</text> <text>结束</text>
</view> </view>
<view class="line"></view> <view class="line"></view>
@ -38,11 +31,10 @@
<text class="tips" v-else-if="pinkBool === -1">还差{{ count }}拼团失败</text> <text class="tips" v-else-if="pinkBool === -1">还差{{ count }}拼团失败</text>
<text class="tips font-color-red" v-else-if="pinkBool === 0">拼团中还差{{ count }}人拼团成功</text> <text class="tips font-color-red" v-else-if="pinkBool === 0">拼团中还差{{ count }}人拼团成功</text>
</view> </view>
<view
class="list acea-row row-middle" <view class="list acea-row row-middle"
:class="[pinkBool === 1 || pinkBool === -1 ? 'result' : '',iShidden ? 'on' : '']" :class="[pinkBool === 1 || pinkBool === -1 ? 'result' : '',iShidden ? 'on' : '']">
> <view class="pictrue" v-if="pinkT">
<view class="pictrue">
<image :src="pinkT.avatar" /> <image :src="pinkT.avatar" />
</view> </view>
<view class="acea-row row-middle" v-if="pinkAll.length > 0"> <view class="acea-row row-middle" v-if="pinkAll.length > 0">
@ -54,29 +46,17 @@
<image class="img-none" src="@/static/images/vacancy.png" /> <image class="img-none" src="@/static/images/vacancy.png" />
</view> </view>
</view> </view>
<view <view v-if="(pinkBool === 1 || pinkBool === -1) && count > 9" class="lookAll acea-row row-center-wrapper"
v-if="(pinkBool === 1 || pinkBool === -1) && count > 9" @click="lookAll">
class="lookAll acea-row row-center-wrapper"
@click="lookAll"
>
{{ iShidden ? "收起" : "查看全部" }} {{ iShidden ? "收起" : "查看全部" }}
<text class="iconfont" :class="iShidden ? 'icon-xiangshang' : 'icon-xiangxia'"></text> <text class="iconfont" :class="iShidden ? 'icon-xiangshang' : 'icon-xiangxia'"></text>
</view> </view>
<view <view class="teamBnt bg-color-red" v-if="userBool === 1 && isOk == 0 && pinkBool === 0" @click="goPoster">邀请好友参团
class="teamBnt bg-color-red" </view>
v-if="userBool === 1 && isOk == 0 && pinkBool === 0" <view class="teamBnt bg-color-red" v-else-if="userBool === 0 && pinkBool === 0 && count > 0" @click="pay">我要参团
@click="goPoster" </view>
>邀请好友参团</view> <view class="teamBnt bg-color-red" v-if="pinkBool === 1 || pinkBool === -1"
<view @click="goDetail(storeCombination.id)">再次开团</view>
class="teamBnt bg-color-red"
v-else-if="userBool === 0 && pinkBool === 0 && count > 0"
@click="pay"
>我要参团</view>
<view
class="teamBnt bg-color-red"
v-if="pinkBool === 1 || pinkBool === -1"
@click="goDetail(storeCombination.id)"
>再次开团</view>
<view class="cancel" @click="getCombinationRemove" v-if="pinkBool === 0 && userBool === 1"> <view class="cancel" @click="getCombinationRemove" v-if="pinkBool === 0 && userBool === 1">
<text class="iconfont icon-guanbi3"></text> <text class="iconfont icon-guanbi3"></text>
<text>取消开团</text> <text>取消开团</text>
@ -90,9 +70,18 @@
</template> </template>
<script> <script>
import CountDown from "@/components/CountDown"; import CountDown from "@/components/CountDown";
import { getCombinationPink, getCombinationRemove } from "@/api/activity"; import {
import { postCartAdd } from "@/api/store"; getCombinationPink,
import { isWeixin, parseQuery, handleQrCode } from "@/utils/index"; getCombinationRemove
} from "@/api/activity";
import {
postCartAdd
} from "@/api/store";
import {
isWeixin,
parseQuery,
handleQrCode
} from "@/utils/index";
const NAME = "GroupRule"; const NAME = "GroupRule";
export default { export default {
@ -108,8 +97,8 @@ export default {
pinkBool: 0, //|0=,1= pinkBool: 0, //|0=,1=
userBool: 0, //|0=,1= userBool: 0, //|0=,1=
pinkAll: [], // pinkAll: [], //
pinkT: [], // pinkT: {}, //
storeCombination: [], // storeCombination: {}, //
pinkId: 0, pinkId: 0,
uniqueId: "", uniqueId: "",
count: 0, // count: 0, //
@ -156,8 +145,7 @@ export default {
}) })
.catch(err => { .catch(err => {
uni.showToast({ uni.showToast({
title: title: err.msg || err.response.data.msg || err.response.data.message,
err.msg || err.response.data.msg || err.response.data.message,
icon: "none", icon: "none",
duration: 2000 duration: 2000
}); });

5
pages/authorization/index.vue

@ -90,8 +90,9 @@
}); });
login() login()
.then((res) => { .then((res) => {
this.$yrouter.replace({ console.log('重定向')
path: cookie.get("redirect") this.$yrouter.reLaunch({
path: cookie.get("redirect").replace(/\ /g, '')
}); });
}) })
.catch((error) => { .catch((error) => {

38
pages/orderAdmin/OrderCancellation/index.vue

@ -9,18 +9,24 @@
</view> </view>
<view class="bnt" @click="storeCancellation">立即核销</view> <view class="bnt" @click="storeCancellation">立即核销</view>
</view> </view>
<!-- <view class="scan" v-if="iswechat"> <!-- #ifndef H5 -->
<view class="scan" v-if="iswechat">
<image src="@/static/images/scan.gif" @click="openQRCode" /> <image src="@/static/images/scan.gif" @click="openQRCode" />
</view> --> </view>
<!-- #endif -->
<WriteOff :iShidden="iShidden" :orderInfo="orderInfo" @cancel="cancel" @confirm="confirm"></WriteOff> <WriteOff :iShidden="iShidden" :orderInfo="orderInfo" @cancel="cancel" @confirm="confirm"></WriteOff>
</view> </view>
</template> </template>
<script> <script>
import WriteOff from "@/components/WriteOff"; import WriteOff from "@/components/WriteOff";
import { isWeixin } from "@/utils"; import {
isWeixin
} from "@/utils";
// import { wechatEvevt } from "@/libs/wechat"; // import { wechatEvevt } from "@/libs/wechat";
import { orderVerific } from "@/api/order"; import {
orderVerific
} from "@/api/order";
const NAME = "OrderCancellation"; const NAME = "OrderCancellation";
export default { export default {
@ -32,7 +38,6 @@ export default {
data: function() { data: function() {
return { return {
iShidden: true, iShidden: true,
iswechat: isWeixin(),
orderInfo: {}, orderInfo: {},
verify_code: "" verify_code: ""
}; };
@ -55,8 +60,7 @@ export default {
}) })
.catch(err => { .catch(err => {
uni.showToast({ uni.showToast({
title: title: err.msg || err.response.data.msg || err.response.data.message,
err.msg || err.response.data.msg || err.response.data.message,
icon: "none", icon: "none",
duration: 2000 duration: 2000
}); });
@ -97,8 +101,7 @@ export default {
.catch(error => { .catch(error => {
uni.hideLoading(); uni.hideLoading();
uni.showToast({ uni.showToast({
title: title: error.msg ||
error.msg ||
error.response.data.msg || error.response.data.msg ||
error.response.data.message, error.response.data.message,
icon: "none", icon: "none",
@ -109,6 +112,22 @@ export default {
openQRCode: function() { openQRCode: function() {
let that = this; let that = this;
// //
uni.scanCode({
success: (res) => {
var result = res.result;
if (result) {
that.verify_code = res.result;
that.storeCancellation();
} else {
uni.showToast({
title: '没有扫描到什么!',
icon: "none",
duration: 2000
});
}
}
})
} }
} }
}; };
@ -119,6 +138,7 @@ export default {
width: 100%; width: 100%;
height: 3 * 100rpx; height: 3 * 100rpx;
background-size: 100% 100%; background-size: 100% 100%;
image { image {
width: 100%; width: 100%;
height: 3 * 100rpx; height: 3 * 100rpx;

BIN
static/images/scan.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

9
utils/index.js

@ -211,7 +211,7 @@ export const login = () => {
if (code) { if (code) {
auth(code) auth(code)
.then(() => { .then(() => {
let redirect = cookie.get('redirect') let redirect = cookie.get('redirect').replace(/\ /g, '')
console.log(redirect) console.log(redirect)
if (redirect) { if (redirect) {
redirect = redirect.split('/pages')[1] redirect = redirect.split('/pages')[1]
@ -327,7 +327,7 @@ export const handleGetUserInfo = () => {
store.dispatch('setUserInfo', res.data) store.dispatch('setUserInfo', res.data)
console.log('获取用户信息后跳转回显的页面') console.log('获取用户信息后跳转回显的页面')
let redirect = cookie.get('redirect') let redirect = cookie.get('redirect').replace(/\ /g, '')
if (redirect) { if (redirect) {
reLaunch({ reLaunch({
path: redirect, path: redirect,
@ -585,11 +585,9 @@ export function routerPermissions(url, type) {
}) })
return return
} }
{
push({ push({
path, path,
}) })
}
}).catch(error => { }).catch(error => {
console.log('————————') console.log('————————')
console.log('自动登录失败,跳转到授权页面') console.log('自动登录失败,跳转到授权页面')
@ -661,7 +659,7 @@ export function reLaunch(location, complete, fail, success) {
uni.reLaunch(params) uni.reLaunch(params)
}).catch(error => { }).catch(error => {
// 没有权限 // 没有权限
console.log(error)
}) })
} }
@ -850,6 +848,7 @@ export const handleLoginFailure = () => {
// 改为授权取消 // 改为授权取消
store.commit("updateAuthorization", false); store.commit("updateAuthorization", false);
let currentPageUrl = getCurrentPageUrl() let currentPageUrl = getCurrentPageUrl()
if (store.state.$deviceType == 'weixin') { if (store.state.$deviceType == 'weixin') {
// 如果不是授权页面, // 如果不是授权页面,

2
utils/store/cookie.js

@ -5,7 +5,7 @@ const doc = null;
function get(key) { function get(key) {
if (!key || !_has(key)) { if (!key || !_has(key)) {
return null; return '';
} }
return uni.getStorageSync(key) return uni.getStorageSync(key)
} }

Loading…
Cancel
Save