|
|
|
@ -1,126 +1,23 @@ |
|
|
|
<template> |
|
|
|
<view> |
|
|
|
<view class="lf-row-center lf-flex-column box"> |
|
|
|
<!-- <image class="img" :src="userInfo.avatar" v-if="userInfo.avatar"></image> --> |
|
|
|
<!-- <image class="img" src="../../static/logo.png" v-else></image> --> |
|
|
|
<image class="img" src="../../static/logo.png" ></image> |
|
|
|
<view class="lf-m-t-30 lf-font-32" v-if="type == 'phone'">{{ userInfo.nickname || '游客用户' }}</view> |
|
|
|
<block v-if="type == 'userinfo'"> |
|
|
|
<button class="btn" @click="getUserProfile"> |
|
|
|
<text class="lf-iconfont lf-icon-weixin lf-font-60 lf-text-vertical"></text> |
|
|
|
<text class="lf-m-l-20">微信快捷登录</text> |
|
|
|
</button> |
|
|
|
<!-- <view class="lf-m-t-40 lf-font-28" @click="$toBack()">暂不绑定继续操作</view> --> |
|
|
|
<view class="mask" v-if="!checked" @click="$msg('您未同意协议条款')"></view> |
|
|
|
</block> |
|
|
|
<block v-else-if="type == 'phone'"> |
|
|
|
<button class="btn" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber"> |
|
|
|
<text class="lf-iconfont lf-icon-weixin lf-font-60 lf-text-vertical"></text> |
|
|
|
<text class="lf-m-l-20">绑定手机号</text> |
|
|
|
</button> |
|
|
|
<!-- <view class="lf-m-t-40 lf-font-28" @click="$url('/pages/login/accountLogin')">使用手机号登录</view> --> |
|
|
|
<view class="mask" v-if="!checked" @click="$msg('您未同意协议条款')"></view> |
|
|
|
</block> |
|
|
|
</view> |
|
|
|
<!-- 服务条款 --> |
|
|
|
<view class="fixed-bottom lf-flex" v-show="agreement.title"> |
|
|
|
<checkbox-group @change="checkboxChange" style="display: inline-block;"> |
|
|
|
<checkbox class="lf-text-vertical" :checked="checked"></checkbox> |
|
|
|
</checkbox-group> |
|
|
|
<view class="lf-m-l-10 lf-font-24 lf-color-gray" style="display: inline-block;"> |
|
|
|
<text>请认真阅读并同意</text> |
|
|
|
<text @click="enterAgree" class="text-orange">《{{ agreement.title }}》</text> |
|
|
|
<text>,在小程序下单购买即表示您已默认同意</text> |
|
|
|
<text @click="enterAgree" class="text-orange">《{{ agreement.title }}》</text> |
|
|
|
<text>的所有条款。</text> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view></view> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script> |
|
|
|
export default { |
|
|
|
data(){ |
|
|
|
return { |
|
|
|
checked: false, // 是否勾选协议 |
|
|
|
isLogin: false, // 是否已登录 |
|
|
|
userInfo: {}, |
|
|
|
type: 'userinfo', // 页面授权类型 phone获取手机号 | userinfo获取用户信息 |
|
|
|
agreement: {} // 协议 |
|
|
|
|
|
|
|
} |
|
|
|
}, |
|
|
|
onLoad(options){ |
|
|
|
this.type = options.type || this.type; |
|
|
|
this.getAgree(); |
|
|
|
getApp().globalData.wxlogin().then(res => { |
|
|
|
this.userInfo = res; |
|
|
|
}); |
|
|
|
const callbackURL = encodeURIComponent('http://192.168.3.183:8080/#/pages/index/index'); |
|
|
|
const appId = 'wx98e64ab875b2553e'; |
|
|
|
const dataStr = '1'; |
|
|
|
const redirectURI = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appId}&redirect_uri=${callbackURL}&response_type=code&scope=snsapi_userinfo&state=${dataStr}#wechat_redirect`; |
|
|
|
location.replace(redirectURI); |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
// 获取协议 |
|
|
|
getAgree(){ |
|
|
|
this.$http(this.API.API_WXLOGIN_VIEW).then(res => { |
|
|
|
this.agreement = res.data?.agreement; |
|
|
|
}) |
|
|
|
}, |
|
|
|
// 进入查看协议 |
|
|
|
enterAgree(){ |
|
|
|
this.$url('/pages/agreement/agreement?id='+ this.agreement.article_id); |
|
|
|
}, |
|
|
|
// 勾选协议发生变化 |
|
|
|
checkboxChange(event){ |
|
|
|
this.checked = event.detail.value.length > 0; |
|
|
|
}, |
|
|
|
// 微信快捷登录获取手机号 |
|
|
|
getPhoneNumber(event){ |
|
|
|
console.log(event); |
|
|
|
if(event.detail.errMsg == 'getPhoneNumber:ok'){ |
|
|
|
let encryptedData = event.detail.encryptedData; |
|
|
|
let iv = event.detail.iv; |
|
|
|
// let userInfo = uni.getStorageSync('userinfo') || {}; |
|
|
|
this.$http(this.API.API_WECHAT_SETPHONE, { |
|
|
|
encryptedData, |
|
|
|
iv, |
|
|
|
// token: userInfo.token // 已在公共参数传 |
|
|
|
}).then(res => { |
|
|
|
console.log("更新手机号", res); |
|
|
|
this.$msg('更新成功', {icon: 'success'}); |
|
|
|
uni.setStorageSync('userinfo', res.data); |
|
|
|
setTimeout(() => { |
|
|
|
this.$toBack(); |
|
|
|
}, 1000); |
|
|
|
}) |
|
|
|
} |
|
|
|
}, |
|
|
|
// 获取用户信息 |
|
|
|
getUserProfile(){ |
|
|
|
uni.getUserProfile({ |
|
|
|
desc: '您的信息将用于时空网显示', |
|
|
|
lang: 'zh_CN', |
|
|
|
complete: result => { |
|
|
|
console.log(result) |
|
|
|
if(result.errMsg == 'getUserProfile:ok'){ |
|
|
|
let encryptedData = result.encryptedData; |
|
|
|
let iv = result.iv; |
|
|
|
let signature = result.signature; |
|
|
|
// let userInfo = uni.getStorageSync('userinfo') || {}; |
|
|
|
|
|
|
|
this.$http(this.API.API_WECHAT_SETPROFILE, { |
|
|
|
encryptedData, |
|
|
|
iv, |
|
|
|
// token: userInfo.token // 已在公共参数传 |
|
|
|
}).then(res => { |
|
|
|
console.log("更新用户信息", res); |
|
|
|
this.$msg('更新成功', {icon: 'success'}); |
|
|
|
uni.setStorageSync('userinfo', res.data); |
|
|
|
setTimeout(() => { |
|
|
|
this.$toBack(); |
|
|
|
}, 1000); |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
</script> |
|
|
|
|