| | |
| | | <view class="flex" style="justify-content: center; margin-top: 150px;">
|
| | | <u--image :showLoading="true" v-if="false"
|
| | | src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/6e/6e74997e6d4c4a29be3903b35bc1f38fwechat.png"
|
| | | width="40rpx" height="40rpx" @click="handleWechatClick">
|
| | | width="40rpx" height="40rpx">
|
| | | </u--image>
|
| | | <u-grid :border="false" :col="1">
|
| | | <u-grid-item @click="handleWechatClick">
|
| | | <u-grid-item v-if="wxUser.user" @click="handleWechatClick">
|
| | | <u--image :showLoading="true"
|
| | | src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/6e/6e74997e6d4c4a29be3903b35bc1f38fwechat.png"
|
| | | width="40rpx" height="40rpx" @click="handleWechatClick">
|
| | | width="60rpx" height="60rpx" >
|
| | | </u--image>
|
| | | <text class="third-login-text" @click="handleWechatClick">微信登录</text>
|
| | | |
| | | |
| | | </u-grid-item>
|
| | | |
| | | <u-grid-item v-else>
|
| | | |
| | | <button class="component-button-contact" style="font-size: 18rpx; margin: auto;" open-type="getPhoneNumber" @getphonenumber="handleGetPhoneNumber" >
|
| | | <view style="display: flex; align-items: center;">
|
| | | <u--image :showLoading="true"
|
| | | src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/6e/6e74997e6d4c4a29be3903b35bc1f38fwechat.png"
|
| | | width="60rpx" height="60rpx" >
|
| | | </u--image>
|
| | | |
| | | </view>
|
| | | </button>
|
| | | |
| | | </u-grid-item>
|
| | | |
| | | </u-grid>
|
| | | </view>
|
| | | <!-- #endif -->
|
| | |
| | | <script>
|
| | | export default {
|
| | | async onLoad(options) {
|
| | |
|
| | | // this.getOpenId();
|
| | |
|
| | |
|
| | | this.source = options.source || ''
|
| | | this.sharePartnerUserId = options.sharePartnerUserId || ''
|
| | | // #ifdef PUB_CUSTOMER
|
| | |
| | | // #endif
|
| | |
|
| | | },
|
| | |
|
| | | onShow() {
|
| | | this.getOpenId();
|
| | | },
|
| | | onShareAppMessage() {
|
| | | let that = this;
|
| | | var name = that.currentInfo.customerDTO && that.currentInfo.customerDTO.name || that.currentInfo.supplierDTO &&
|
| | |
| | | apitype: 'loginCustomer',
|
| | | // #endif
|
| | | // return 'loginPartner'
|
| | | |
| | |
|
| | | wxUser:{
|
| | | openId:'',
|
| | | sessionKey:'',
|
| | | unionId:'',
|
| | | user:{},
|
| | | phoneNumber:'',
|
| | | purePhoneNumber:'',
|
| | | },
|
| | |
|
| | | };
|
| | | },
|
| | | methods: {
|
| | |
|
| | | getOpenId(){
|
| | | let that=this
|
| | | uni.login({
|
| | | "provider": "weixin",
|
| | | "onlyAuthorize": true, // 微信登录仅请求授权认证
|
| | | success: async function (event) {
|
| | | console.log("aaaa")
|
| | | console.log(event)
|
| | | const { code } = event
|
| | | await that.getExistUserByOpenId(code);
|
| | | that.wxLoginCode=code
|
| | | console.log("wxUser")
|
| | | console.log(that.wxUser)
|
| | |
|
| | | },
|
| | | fail: function (err) {
|
| | | // 登录授权失败
|
| | | // err.code是错误码
|
| | | }
|
| | | })
|
| | | },
|
| | |
|
| | |
|
| | |
|
| | | async handleGetPhoneNumber(e){
|
| | | let that = this
|
| | | console.log(e)
|
| | | console.log(e.detail.code) // 动态令牌
|
| | | console.log(e.detail.errMsg) // 回调信息(成功失败都会返回)
|
| | | console.log(e.detail.errno) // 错误码(失败时返回)
|
| | | if (e.detail.errMsg == 'getPhoneNumber:ok') {
|
| | | console.log('获取成功')
|
| | | const {
|
| | | code,data
|
| | | } = await that.$http.request('post', '/api/wx/getuserphonenumber', {
|
| | | data: {
|
| | | code: e.detail.code,
|
| | | userType: that.apitype.replace("login", "").toLowerCase()
|
| | | }
|
| | | })
|
| | | if (code == 0) {
|
| | | // 获取手机号码后,实现微信登录
|
| | | console.log(data)
|
| | | const phoneNumber=data.phone_info.phoneNumber;
|
| | | const purePhoneNumber=data.phone_info.purePhoneNumber;
|
| | | that.wxUser.phoneNumber=phoneNumber
|
| | | that.wxUser.purePhoneNumber=purePhoneNumber
|
| | | that.handleWechatClick()
|
| | | } else {
|
| | | |
| | | }
|
| | | }else{
|
| | | this.$message.showToast('获取授权失败,无法登录!')
|
| | | }
|
| | | },
|
| | |
|
| | | async getExistUserByOpenId(accessCode){
|
| | | let that=this;
|
| | | const {
|
| | | code,data
|
| | | } = await that.$http.request('post', '/api/wx/getExistUserByOpenId', {
|
| | | data: {
|
| | | code: accessCode,
|
| | | userType: that.apitype.replace("login", "").toLowerCase()
|
| | | }
|
| | | })
|
| | | if (code == 0) {
|
| | | console.log("查看当前用户是否已经绑定过")
|
| | | console.log(data)
|
| | | that.wxUser=data
|
| | | if(that.wxUser&&that.wxUser.user){
|
| | | return true
|
| | | }
|
| | | return false
|
| | | } else {
|
| | | this.$message.showToast('系统异常,无法获取当前微信是否已经绑定过账号')
|
| | | }
|
| | | },
|
| | |
|
| | | handleWechatClick22() {
|
| | | uni.login({
|
| | | provider: 'univerify',
|
| | | univerifyStyle: {
|
| | | fullScreen: true
|
| | | }
|
| | | })
|
| | | },
|
| | |
|
| | | handleWechatClick_new() {
|
| | | let that = this
|
| | | // 微信登录
|
| | | uni.login({
|
| | | "provider": "weixin",
|
| | | "onlyAuthorize": true, // 微信登录仅请求授权认证
|
| | | success: async function (event) {
|
| | | const { code } = event
|
| | | that.$message.showLoading();
|
| | | // 1.解析当前code,查看当前的openid是否已经绑定过用户,
|
| | | // 2.如果没有的话,则获取当前手机号,并注册信息用户绑定再登录
|
| | | // 3.如果已经绑定过用户,则直接登录
|
| | | console.log("查看当前用户是否已经绑定过")
|
| | | const resp = await that.getExistUserByOpenId(code)
|
| | | if(resp){
|
| | | // 已经绑定过用户,则直接登录
|
| | | const resp = await that.$store.dispatch('loginwx', { code })
|
| | | if (resp && resp.data) {
|
| | | that.$forceUpdate()
|
| | | uni.reLaunch({
|
| | | url: '/pages/home/home'
|
| | | })
|
| | | }
|
| | | }else{
|
| | | // 没有绑定过用户,则获取当前手机号,并注册信息用户绑定再登录
|
| | | // let el = uni.createSelectorQuery().in(this).select('#phoneButton');
|
| | | // console.log(el)
|
| | | // 使用 uni.createSelectorQuery 获取按钮元素
|
| | | uni.createSelectorQuery().select('#phoneButton').boundingClientRect((rect) => {
|
| | | if (rect) {
|
| | | // 获取到按钮后,模拟点击
|
| | | uni.createSelectorQuery().select('#phoneButton').node((res) => {
|
| | | if (res.node) {
|
| | | res.node.click(); // 模拟点击
|
| | | }
|
| | | }).exec();
|
| | | }
|
| | | }).exec();
|
| | | }
|
| | | |
| | |
|
| | | // const resp = await that.$store.dispatch('loginwx', { code })
|
| | | // if (resp && resp.data) {
|
| | | // that.$forceUpdate()
|
| | | // uni.reLaunch({
|
| | | // url: '/pages/home/home'
|
| | | // })
|
| | | // }
|
| | | that.$message.hideLoading();
|
| | | },
|
| | | fail: function (err) {
|
| | | // 登录授权失败
|
| | | // err.code是错误码
|
| | | }
|
| | | })
|
| | |
|
| | | },
|
| | |
|
| | | |
| | | handleWechatClick() {
|
| | | let that = this
|
| | | // 微信登录
|
| | |
| | | "provider": "weixin",
|
| | | "onlyAuthorize": true, // 微信登录仅请求授权认证
|
| | | success: async function (event) {
|
| | | console.log("客户端成功获取授权临时票据(code),向业务服务器发起登录请求。")
|
| | | console.log(event)
|
| | | const { code } = event
|
| | | console.log('code', code)
|
| | | that.$message.showLoading();
|
| | | const resp = await that.$store.dispatch('loginwx', { code })
|
| | | const resp = await that.$store.dispatch('loginwx', { code,phoneNumber:that.wxUser.phoneNumber,purePhoneNumber:that.wxUser.purePhoneNumber })
|
| | | if (resp && resp.data) {
|
| | | that.$forceUpdate()
|
| | | uni.reLaunch({
|
| | | url: '/pages/home/home'
|
| | | })
|
| | | }
|
| | | // const resp = await that.$http.request('get', '/api/wx/jscode2session', {
|
| | | // params: {
|
| | | // jsCode: code,
|
| | | // userType: that.apitype.replace("login", "").toLowerCase()
|
| | | // }
|
| | | // });
|
| | | that.$message.hideLoading();
|
| | | // console.log('resp', resp)
|
| | | // if (resp && resp.data) {
|
| | | // var cts = resp.data;
|
| | | // var openid = cts.openid; //openid 用户唯一标识
|
| | | // if (cts && cts.openid) {
|
| | | // that.$storage.setItem('openid', cts.openid);
|
| | | // }
|
| | |
|
| | | // var session_key = cts.session_key; //session_key 会话密钥
|
| | |
|
| | | // if (true) {
|
| | | // if (!!cts.errmsg) {
|
| | | // that.$message.showToast('获取失败' + cts.errmsg);
|
| | | // } else {
|
| | | // //成功了,再调用
|
| | | // uni.getUserInfo({
|
| | | // provider: 'weixin',
|
| | | // success: function (infoRes) {
|
| | | // console.log("uni.getUserInfo")
|
| | | // console.log(infoRes)
|
| | | // console.log('用户信息:', infoRes.userInfo);
|
| | | // },
|
| | | // fail: function (err) {
|
| | | // console.error('获取用户信息失败:', err);
|
| | | // },
|
| | | // });
|
| | |
|
| | | // }
|
| | | // }
|
| | | // }
|
| | | },
|
| | | fail: function (err) {
|
| | | // 登录授权失败
|
| | |
| | | font-size: 18rpx;
|
| | | margin-top:5rpx;
|
| | | }
|
| | |
|
| | | </style> |