You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
377 lines
9.8 KiB
377 lines
9.8 KiB
<template> |
|
<view class="page-content my-bg"> |
|
<cu-custom class="main-topbar bg-main-oil" bgColor="bg-main-oil"> |
|
<block slot="content">星油云站</block> |
|
</cu-custom> |
|
<view class="bg-img margin flex padding-lg radius align-center text-center" :style="'background-image: url('+mainURL+'login-bg.png)'"> |
|
<view class="padding-lg margin text-center text-lg text-white w100"> |
|
<text class=""> |
|
油站工作人员绑定油站 |
|
</text> |
|
</view> |
|
|
|
</view> |
|
<view class="pannel"> |
|
<view class="bg-white margin padding radius "> |
|
<view class="cu-form-group radius " @tap="routerTo('/pages/login/posLogin/posLogin')"> |
|
<view class="title mini-label text-black">已有账号登录</view> |
|
<view class="cuIcon-right"> |
|
|
|
</view> |
|
</view> |
|
<!-- <view class="cu-form-group padding-top" @tap="routerTo('/pages/login/login')"> |
|
<view class="title mini-label text-black">首次认证登录</view> |
|
<view class="cuIcon-right"> |
|
</view> |
|
</view> --> |
|
</view> |
|
|
|
</view> |
|
<view class="margin text-center"> |
|
<button class="cu-btn round bg-main-oil lg text-lg" open-type="getPhoneNumber" |
|
@getphonenumber="decryptPhoneNumber"> |
|
<text class="cuIcon-weixin padding-right-xs"> </text> |
|
<text> |
|
微信用户一键登录 |
|
</text> |
|
</button> |
|
<!-- <button class="cu-btn round btnSize" open-type="getPhoneNumber" |
|
@getphonenumber="decryptPhoneNumber"> |
|
<text class="cuIcon-weixin text-green lg"></text> |
|
</button> --> |
|
</view> |
|
|
|
<view class="bottom-part"> |
|
<service-hotline /> |
|
</view> |
|
</view> |
|
</template> |
|
|
|
<script> |
|
import cloudSiteApi from '@/api/cloud-site.js' |
|
import loginApi from '@/api/login.js' |
|
import oilIdentityApi from '@/api/oil-identity.js' |
|
import oliUserApi from '@/api/oli-user.js' |
|
export default { |
|
data() { |
|
return { |
|
count: 0, |
|
baseURL: this.global.baseURL, |
|
mainURL: this.global.mainURL, |
|
forcedLogin: true, |
|
oilSiteNo: '', |
|
sessionKey:'', |
|
outType:'0' |
|
}; |
|
}, |
|
created() { |
|
uni.showShareMenu() |
|
// this.loginWeixin() |
|
}, |
|
onLoad(option) { |
|
if(option.type == '1'){ |
|
this.outType = option.type |
|
uni.clearStorageSync()//清除缓存 |
|
} |
|
// this.refreshLocation() |
|
uni.login({ //微信登陆 |
|
provider: 'weixin', |
|
success: (loginRes) => { |
|
const code = loginRes.code |
|
let _that = this |
|
this.onceCode = code |
|
oilIdentityApi.sendCode(this.onceCode).then(res => { //根据微信登陆返回的code获取unionid openid |
|
if (res.code === 20000) { |
|
this.sessionKey = res.data.sessionKey |
|
uni.setStorageSync('openid', res.data.openId) |
|
uni.setStorageSync('unionid', res.data.unionId) |
|
if(_that.outType !== '1'){ |
|
this.autoLogin() |
|
return |
|
} |
|
} else if (res.code == 1002) { |
|
uni.showModal({ |
|
title: '微信登录失败提醒', |
|
content: `${res.msg}如有疑问,请联系客服处理` |
|
}) |
|
} else { |
|
// console.log('res', res.code) |
|
} |
|
}).catch(err => { |
|
uni.reLaunch({ |
|
url: '/BagAuth/pages/login/boforeLogin/boforeLogin', |
|
fail: (err) => { |
|
// console.log(err) |
|
} |
|
}) |
|
}) |
|
}, |
|
fail: err => {}, |
|
}) |
|
}, |
|
methods: { |
|
decryptPhoneNumber(e) { // 通过用户授权获取到用户的手机号信息 |
|
if (e.detail.errMsg === 'getPhoneNumber:ok') { |
|
const data1 = { |
|
...e.detail, |
|
sessionKey: this.sessionKey, |
|
unionId: uni.getStorageSync('unionid'), |
|
openId: uni.getStorageSync('openid'), |
|
appId: 'wxaf56b8bae925ba19' |
|
} |
|
let url1 = 0 == this.TabCur ? 'bindLoginByPhonePersonal' : 'bindLoginByPhoneCompany' |
|
this.bindLoginByPhone(data1, url1) |
|
} else { |
|
uni.showModal({ |
|
title: '您已拒绝授权手机号' |
|
}) |
|
} |
|
}, |
|
bindLoginByPhone(data, url) { //绑定用户手机号 |
|
if (this.count < 1) { |
|
oilIdentityApi.bindLoginByPhonePersonal(data, url).then(res => { |
|
if (res.code == 20000) { |
|
this.loginSuccess(res) |
|
} |
|
}) |
|
} |
|
}, |
|
loginSuccess(res) {//这里是绑定登录 |
|
if (res.data.authTokenDTO.loginFlag) { |
|
this.setStored(res) |
|
} |
|
}, |
|
refreshLocation() { |
|
uni.getLocation({ |
|
type: 'wgs84', |
|
success: function(res) { |
|
uni.setStorageSync('location', res) |
|
} |
|
}); |
|
}, |
|
routerTo(url) { |
|
uni.navigateTo({ |
|
url: url |
|
}) |
|
}, |
|
autoLogin() { //根据登录时获取到的 unionid openid 自动登录 |
|
let data={ |
|
unionId:uni.getStorageSync('unionid'), |
|
openId:uni.getStorageSync('openid') |
|
} |
|
console.log(data,'这里是自动登录data') |
|
oilIdentityApi.loginPersonal(data).then(res => { //微信自动登录 |
|
console.log(res,'这里是自动登录res') |
|
if (res.data.authTokenDTO.loginFlag == true) { |
|
this.setStored(res) |
|
}else { |
|
uni.showToast({ |
|
icon: 'none', |
|
title: res.data.msg |
|
}) |
|
} |
|
}) |
|
}, |
|
// 存值本地 根据手机号获取其下的油站并且存储本地 |
|
setStored(res){ |
|
let user = res.data.authTokenDTO.loginUser, |
|
unionId = uni.getStorageSync('unionid'), |
|
openId = uni.getStorageSync('openid'), |
|
phone = res.data.sysCustomerInfo.phone //获取该用户手机号 |
|
setTimeout(() => { |
|
uni.showToast({ |
|
title: res.msg, |
|
icon: 'none', |
|
complete: (err) => { |
|
// console.log(err) |
|
} |
|
}) |
|
}, 1000); |
|
uni.setStorageSync('user', user) |
|
uni.setStorage({ |
|
key: 'Authorization', |
|
data: res.data.authTokenDTO.accessToken, |
|
success: () => { |
|
console.log('Authorization成功', res.data.authTokenDTO.accessToken) |
|
} |
|
}) |
|
uni.setStorage({ |
|
key: 'device', |
|
data: openId, |
|
success: () => { |
|
console.log('deviceopenid', openId) |
|
} |
|
}) |
|
uni.setStorage({ |
|
key: 'unionId', |
|
data:unionId, |
|
success: () => { |
|
console.log('deviceunionId', unionId) |
|
} |
|
}) |
|
uni.setStorageSync('userMenu', res.data.authTokenDTO.loginUser.roleMenus) //获取权限菜单列表 |
|
uni.setStorageSync('loginUser', { //存储用户基本信息 id,name,userphone |
|
id: res.data.authTokenDTO.loginUser.id, |
|
name: res.data.authTokenDTO.loginUser.name, |
|
userPhone: res.data.authTokenDTO.loginUser.userPhone |
|
}) |
|
//根据获取手机号 获取其号下的油站信息 |
|
console.log('这里是获取手机号登录') |
|
oliUserApi.getByPhone(phone).then((res)=>{ |
|
console.log('这里是获取手机号登录',res) |
|
if(res.code == 20000){ |
|
uni.setStorageSync('oliList',res.data)//本地存储当前用户其下有多少油站,用于用户登录进入时选择进入油站 |
|
// 获取信息存储本地 |
|
uni.setStorageSync('checkFirst',true) //进入前重置进入状态,判断用户是否是登录进入,用来做区分 |
|
uni.showToast({ |
|
title: res.msg, |
|
icon: 'success', |
|
duration: 3000 |
|
}) |
|
uni.reLaunch({ |
|
url: '/pages/index/index', |
|
fail: (err) => { |
|
console.log(err) |
|
} |
|
}) |
|
} else { |
|
uni.showToast({ |
|
title: '未绑定油站请联系客服', |
|
icon: 'none', |
|
duration: 1500 |
|
}) |
|
} |
|
}) |
|
}, |
|
nextStep() { |
|
if (this.oilSiteNo) { |
|
cloudSiteApi.verifyOilSite({ |
|
oilSiteCode: this.oilSiteNo |
|
}).then(res => { |
|
if (res.code === 20000) { |
|
//历史遗留代码--------------------------------- |
|
// address: "安徽省合肥市庐阳区大杨镇" |
|
// fuelLogo: null |
|
// linkMan: "符红敏" |
|
// oilSiteCode: "1591260293" |
|
// oilSiteName: "杭州首鸿金融信息服务有限公司" |
|
// phone: "15617055136" |
|
//-------------------------------------------- |
|
uni.setStorage({ |
|
key: 'oilSiteCode', |
|
data: this.oilSiteNo, |
|
success: () => { |
|
console.log('缓存成功') |
|
} |
|
}) |
|
uni.setStorage({ |
|
key: 'oilSite', |
|
data: res.data, |
|
success: () => { |
|
console.log('缓存成功') |
|
} |
|
}) |
|
uni.navigateTo({ |
|
url: '/pages/Auth/Auth' |
|
}) |
|
} |
|
}) |
|
//历史遗留代码 不知道干嘛的 保不齐之后要用-------------- |
|
// uni.setStorage({ |
|
// key: 'oilSiteCode', |
|
// data: this.oilSiteNo, |
|
// success: () => { |
|
// console.log('缓存成功') |
|
// } |
|
// }) |
|
// uni.navigateTo({ |
|
// url: '/pages/Auth/Auth' |
|
// }) |
|
//-------------------------------------------------- |
|
} else { |
|
uni.showToast({ |
|
title: '请输入云站号', |
|
duration: 3000, |
|
icon: 'none' |
|
}) |
|
} |
|
}, |
|
getMsg() { |
|
uni.requestSubscribeMessage({ |
|
tmplIds: ['W5XD3NQVa6knC5jXHeWT8GS7q5CHrDUMY_sF79kLkKk'], |
|
success: (res) => { |
|
console.log(res) |
|
} |
|
}) |
|
}, |
|
getUserInfo({ |
|
detail |
|
}) { |
|
console.log('三方登录只演示登录api能力,暂未关联云端数据'); |
|
console.log('detail', detail) |
|
if (detail.userInfo) { |
|
this.loginLocal(detail.userInfo.nickName); |
|
} else { |
|
uni.showToast({ |
|
icon: 'none', |
|
title: '登陆失败' |
|
}); |
|
} |
|
|
|
}, |
|
loginLocal(nickName) { |
|
uni.setStorageSync('login_type', 'local') |
|
uni.setStorageSync('username', nickName) |
|
this.toMain(nickName); |
|
}, |
|
toMain(userName) { |
|
// this.login(userName) |
|
/** |
|
* 强制登录时使用reLaunch方式跳转过来 |
|
* 返回首页也使用reLaunch方式 |
|
*/ |
|
if (this.forcedLogin) { |
|
uni.reLaunch({ |
|
url: '/pages/index/index', |
|
success: () => { |
|
console.log('success') |
|
}, |
|
fail: err => { |
|
console.log(err) |
|
} |
|
}); |
|
} else { |
|
uni.navigateBack(); |
|
} |
|
|
|
} |
|
} |
|
}; |
|
</script> |
|
|
|
<style scoped> |
|
.btnSize{ |
|
font-size:60rpx; |
|
} |
|
.page-content { |
|
position: relative; |
|
} |
|
|
|
.logo { |
|
min-width: 100%; |
|
text-align: center; |
|
} |
|
|
|
.logo img { |
|
width: 200upx; |
|
height: 200rpx; |
|
background-size: contain; |
|
margin: auto; |
|
} |
|
|
|
.bottom-bg { |
|
position: sticky; |
|
|
|
bottom: 50upx; |
|
} |
|
</style>
|
|
|