Files
yshopb2c-uniapp/components/SwitchWindow.vue
2020-06-13 01:38:36 +08:00

158 lines
4.1 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view>
<view class="switchWindow" :class="switchActive === true ? 'on' : ''">
<!-- @/static/images/public.png -->
<view class="pictrue">
<image v-if="login_type === 'h5'" src="@/static/images/h5.png" />
<image src="@/static/images/h5.png" alt v-else />
</view>
<!-- 是否选择切换到小程序账户 -->
<view class="info">
<text>是否选择切换到</text>
<text class="font-color" v-if="login_type === 'h5'">微信账号</text>
<text class="font-color" v-else>手机用户</text>
<text></text>
</view>
<view class="switchBnt" @click="switchH5">
<text>切换</text>
</view>
<view class="switchBnt cancelBnt" @click="switchClose">
<text>取消</text>
</view>
</view>
<view class="mask" @touchmove.prevent v-show="switchActive === true" @click="switchClose"></view>
</view>
</template>
<style lang="less">
.switchWindow {
width: 5.6*100rpx;
border-radius: 0.2*100rpx;
-webkit-border-radius: 0.2*100rpx;
background-color: #fff;
position: fixed;
top: 50%;
left: 50%;
margin-left: -2.8*100rpx;
margin-top: -3*100rpx;
z-index: 99;
padding: 0.5*100rpx 0.3*100rpx 0.4*100rpx 0.3*100rpx;
text-align: center;
box-sizing: border-box;
-webkit-box-sizing: border-box;
transition: all 0.3s ease-in-out 0s;
-webkit-transition: all 0.3s ease-in-out 0s;
-moz-transition: all 0.3s ease-in-out 0s;
-o-transition: all 0.3s ease-in-out 0s;
opacity: 0;
transform: scale(0);
}
.switchWindow.on {
opacity: 1;
transform: scale(1);
-webkit-transform: scale(1);
-ms-transform: scale(1);
-moz-transform: scale(1);
-o-transform: scale(1);
}
.switchWindow .pictrue {
width: 2.36*100rpx;
height: 2.36*100rpx;
margin: 0 auto;
}
.switchWindow .pictrue image {
width: 100%;
height: 100%;
display: block;
}
.switchWindow .info {
font-size: 0.32*100rpx;
color: #282828;
margin-top: 0.44*100rpx;
font-weight: bold;
}
.switchWindow .switchBnt {
font-size: 0.32*100rpx;
color: #fff;
width: 3.6*100rpx;
height: 0.82*100rpx;
border-radius: 0.41*100rpx;
-webkit-border-radius: 0.41*100rpx;
margin: 0.57*100rpx auto 0 auto;
line-height: 0.82*100rpx;
background-image: linear-gradient(to right, #f67a38 0%, #f11b09 100%);
background-image: -webkit-linear-gradient(to right, #f67a38 0%, #f11b09 100%);
background-image: -moz-linear-gradient(to right, #f67a38 0%, #f11b09 100%);
}
.switchWindow .switchBnt.cancelBnt {
background-color: #fff;
color: #999;
background-image: none;
margin-top: 0.1*100rpx;
}
</style>
<script>
import { switchH5Login } from "@/api/user";
import cookie from "@/utils/store/cookie";
import store from "@//store";
import dayjs from "dayjs";
export default {
name: "SwitchWindow",
props: {
switchActive: {
type: Boolean,
default: false
},
login_type: {
type: String,
default: ""
}
},
data: function() {
return {};
},
mounted: function() {},
methods: {
switchClose: function() {
this.$emit("changeswitch", false); //$emit():注册事件;
},
switchH5() {
let that = this;
uni.showLoading({
title: "正在切换中"
});
if (that.login_type === "h5") {
cookie.set("loginType", "wechat", 60);
uni.hideLoading();
this.$store.commit("logout");
this.$emit("changeswitch", false);
location.reload();
} else {
switchH5Login()
.then(({ data }) => {
uni.hideLoading();
const expires_time = dayjs(data.expires_time);
store.commit("login", data.token, expires_time);
this.$emit("changeswitch", false);
location.reload();
})
.catch(err => {
uni.hideLoading();
uni.showToast({
title: err.msg || err.response.data.msg|| err.response.data.message,
icon: "none",
duration: 2000
});
});
}
}
}
};
</script>