|
|
|
<template>
|
|
|
|
<view class="page-content my-bg">
|
|
|
|
<cu-custom :isBack="true" class="main-topbar bg-main-oil" bgColor="bg-main-oil">
|
|
|
|
<block slot="content">绑定星油云站</block>
|
|
|
|
<block slot="backText">返回</block>
|
|
|
|
</cu-custom>
|
|
|
|
<view class="pannel">
|
|
|
|
<view class="bg-img margin radius flex align-center" :style="'background-image: url('+mainURL+'login-bg.png)'">
|
|
|
|
<view class="padding-xl text-white">
|
|
|
|
<view class="padding-xs text-lg text-bold">
|
|
|
|
{{oilSite.oilSiteName}}
|
|
|
|
</view>
|
|
|
|
<view class="padding-xs text-lg">
|
|
|
|
星油云站欢迎您的加入
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="bg-gradual-orange margin padding radius shadow-warp">
|
|
|
|
<view class="text-bold text-lg padding-bottom text-center">
|
|
|
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<view class="radius">
|
|
|
|
|
|
|
|
<view class="cu-form-group">
|
|
|
|
<view class="title text-black mini-label">姓名</view>
|
|
|
|
<input v-model="auth.userName" placeholder="请输入姓名" name="input"></input>
|
|
|
|
</view>
|
|
|
|
<!-- <view class="cu-form-group">
|
|
|
|
<view class="title text-black">工号</view>
|
|
|
|
<input v-model="oilSiteNo" placeholder="请输入云站编号" name="input"></input>
|
|
|
|
</view> -->
|
|
|
|
|
|
|
|
<view class="cu-form-group">
|
|
|
|
<view class="title text-black mini-label">手机号</view>
|
|
|
|
<input type="number" v-model="auth.phone" placeholder="请输入手机号" name="input"></input>
|
|
|
|
<text :class="frozen?'text-gray':'oil-main-color'" @tap="sendMsg">{{tips}}</text>
|
|
|
|
</view>
|
|
|
|
<view class="cu-form-group">
|
|
|
|
<view class="title text-black mini-label">验证码</view>
|
|
|
|
<input type="number" :maxlength="6" v-model="auth.captcha" placeholder="请输入六位数字验证码" name="input"></input>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="margin-left">
|
|
|
|
<text class="cuIcon-infofill padding-right-xs text-sm oil-main-color"></text>
|
|
|
|
<text class="text-sm">请确认您的手机号已添加为星油云站管理员账号</text>
|
|
|
|
</view>
|
|
|
|
<view class="margin margin-top-xl">
|
|
|
|
<!-- <button class="bg-main-oil" @tap="beforeLogin" open-type="getUserInfo" @getuserinfo="getUserInfo">
|
|
|
|
确认
|
|
|
|
</button> -->
|
|
|
|
<button class="bg-main-oil" @tap="beforeLogin">
|
|
|
|
注册
|
|
|
|
</button>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="bottom-part">
|
|
|
|
<service-hotline />
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
import loginApi from '@/api/login.js'
|
|
|
|
export default {
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
baseURL: this.global.baseURL,
|
|
|
|
forcedLogin: true,
|
|
|
|
mainURL: this.global.mainURL,
|
|
|
|
oilSiteNo: '',
|
|
|
|
oilSite: {},
|
|
|
|
tips: '发送验证码',
|
|
|
|
frozen: false, // 二维码冷却时间
|
|
|
|
auth: {
|
|
|
|
|
|
|
|
}
|
|
|
|
};
|
|
|
|
},
|
|
|
|
created() {
|
|
|
|
uni.showShareMenu()
|
|
|
|
// this.loginWeixin()
|
|
|
|
uni.getStorage({
|
|
|
|
key: 'oilSiteCode',
|
|
|
|
success: (res) => {
|
|
|
|
this.oilSiteNo = res.data
|
|
|
|
console.log(this.oilSiteNo)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
this.oilSite = uni.getStorageSync('oilSite')
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
sendMsg() {
|
|
|
|
if (!this.frozen) {
|
|
|
|
if (this.auth.phone) {
|
|
|
|
uni.login({
|
|
|
|
provider: 'weixin',
|
|
|
|
success: loginRes => {
|
|
|
|
const code = loginRes.code
|
|
|
|
console.log(code)
|
|
|
|
const data2 = {
|
|
|
|
code: code,
|
|
|
|
name: this.auth.userName,
|
|
|
|
phone: this.auth.phone,
|
|
|
|
oilSiteCode: this.oilSiteNo
|
|
|
|
}
|
|
|
|
loginApi.registerWeixinSMS(data2).then(res => {
|
|
|
|
console.log('res', res)
|
|
|
|
uni.showToast({
|
|
|
|
title: res.msg,
|
|
|
|
icon: 'none'
|
|
|
|
})
|
|
|
|
if (res.code === 20000) {
|
|
|
|
this.frozen = true
|
|
|
|
setTimeout(() => {
|
|
|
|
this.frozen = false
|
|
|
|
clearInterval(timer)
|
|
|
|
this.tips = `发送验证码`
|
|
|
|
}, 1000 * 60);
|
|
|
|
let second = 60
|
|
|
|
const timer = setInterval(() => {
|
|
|
|
second--
|
|
|
|
if (second) {
|
|
|
|
this.tips = `${second}秒后重发`
|
|
|
|
} else {
|
|
|
|
this.tips = `发送验证码`
|
|
|
|
}
|
|
|
|
}, 1000)
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
},
|
|
|
|
fail: err => {
|
|
|
|
console.log(err)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
register() {
|
|
|
|
uni.login({
|
|
|
|
provider: 'weixin',
|
|
|
|
success: loginRes => {
|
|
|
|
const code = loginRes.code
|
|
|
|
console.log(code)
|
|
|
|
const data1 = {
|
|
|
|
code: code,
|
|
|
|
name: this.auth.userName,
|
|
|
|
idCard: this.auth.idNumber,
|
|
|
|
phone: this.auth.phone,
|
|
|
|
authCode: this.auth.captcha,
|
|
|
|
oilSiteCode: this.oilSiteNo
|
|
|
|
}
|
|
|
|
loginApi.registerWeixin(data1).then(res => {
|
|
|
|
console.log('res', res)
|
|
|
|
uni.showToast({
|
|
|
|
title: res.msg,
|
|
|
|
icon: 'none'
|
|
|
|
})
|
|
|
|
if (res.code === 20000) {
|
|
|
|
this.loginWeixin()
|
|
|
|
uni.setStorage({
|
|
|
|
key: 'Authorization',
|
|
|
|
data: res.data.accessToken,
|
|
|
|
success: () => {
|
|
|
|
console.log('Authorization成功', res.data.accessToken)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
uni.setStorage({
|
|
|
|
key: 'device',
|
|
|
|
data: res.data.openid,
|
|
|
|
success: () => {
|
|
|
|
console.log('deviceopenid', res.data.openid)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
uni.setStorageSync('userMenu', res.data.loginUser.procedureAuthList)
|
|
|
|
uni.setStorageSync('loginUser', {
|
|
|
|
id: res.data.loginUser.id,
|
|
|
|
name: res.data.loginUser.name,
|
|
|
|
userPhone: res.data.loginUser.userPhone
|
|
|
|
})
|
|
|
|
uni.reLaunch({
|
|
|
|
url: '/pages/index/index',
|
|
|
|
success: (res) => {
|
|
|
|
console.log(res)
|
|
|
|
},
|
|
|
|
fail: (err) => {
|
|
|
|
console.log(err)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
fail: err => {
|
|
|
|
console.log(err)
|
|
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
|
|
loginWeixin() {
|
|
|
|
uni.login({
|
|
|
|
provider: 'weixin',
|
|
|
|
success: loginRes => {
|
|
|
|
const code = loginRes.code
|
|
|
|
console.log(code)
|
|
|
|
loginApi.loginWeixin(code).then(res => {
|
|
|
|
if (res.code === 20000) {
|
|
|
|
uni.reLaunch({
|
|
|
|
url: '/pages/index/index',
|
|
|
|
fail: (err) => {
|
|
|
|
console.log(err)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
uni.showToast({
|
|
|
|
title: res.msg,
|
|
|
|
icon: 'success',
|
|
|
|
duration: 3000
|
|
|
|
})
|
|
|
|
uni.setStorage({
|
|
|
|
key: 'Authorization',
|
|
|
|
data: res.data.accessToken,
|
|
|
|
success: () => {
|
|
|
|
console.log('Authorization成功', res.data.accessToken)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
uni.setStorage({
|
|
|
|
key: 'device',
|
|
|
|
data: res.data.openid,
|
|
|
|
success: () => {
|
|
|
|
console.log('deviceopenid', res.data.openid)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
uni.setStorageSync('userMenu', res.data.loginUser.procedureAuthList)
|
|
|
|
uni.setStorageSync('loginUser', {
|
|
|
|
id: res.data.loginUser.id,
|
|
|
|
name: res.data.loginUser.name,
|
|
|
|
userPhone: res.data.loginUser.userPhone
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
console.log('res', res.code)
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
},
|
|
|
|
fail: err => {
|
|
|
|
console.log(err)
|
|
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
|
|
beforeLogin() {
|
|
|
|
if (!this.auth.userName) {
|
|
|
|
uni.showToast({
|
|
|
|
title: '请输入姓名',
|
|
|
|
icon: 'none',
|
|
|
|
duration: 3000
|
|
|
|
})
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
if (!this.auth.phone) {
|
|
|
|
uni.showToast({
|
|
|
|
title: '请输入手机号',
|
|
|
|
icon: 'none',
|
|
|
|
duration: 3000
|
|
|
|
})
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!this.auth.captcha) {
|
|
|
|
uni.showToast({
|
|
|
|
title: '请输入短信验证码',
|
|
|
|
icon: 'none',
|
|
|
|
duration: 3000
|
|
|
|
})
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
this.register()
|
|
|
|
|
|
|
|
},
|
|
|
|
nextStep() {
|
|
|
|
if (this.oilSiteNo) {
|
|
|
|
uni.navigateTo({
|
|
|
|
url: ''
|
|
|
|
})
|
|
|
|
} 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)
|
|
|
|
console.log(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>
|
|
|
|
.page-content {
|
|
|
|
min-height: 100%;
|
|
|
|
}
|
|
|
|
|
|
|
|
.logo {
|
|
|
|
min-width: 100%;
|
|
|
|
text-align: center;
|
|
|
|
}
|
|
|
|
|
|
|
|
.logo img {
|
|
|
|
width: 200upx;
|
|
|
|
height: 200rpx;
|
|
|
|
background-size: contain;
|
|
|
|
margin: auto;
|
|
|
|
}
|
|
|
|
</style>
|