smartmeter-app/pages/login/login.vue

180 lines
4.3 KiB
Vue
Raw Normal View History

2024-03-13 10:54:22 +08:00
<template>
<view class="page">
<u-navbar :is-back="false" :title="tittxt" :border-bottom="false" :background="bgc" title-color='#fff' title-size='36' height='36' >
</u-navbar>
<view class="imgbox">
<image src="@/static/login.png" mode=""></image>
</view>
<view class="tip">
欢迎来到e租居
</view>
<view class="inputbox">
<!-- 在这里放置你的输入框 -->
<view class="box1" v-if="chooseType">
<view class="input_txt">
首次使用请选择您的身份
</view>
<div class="button" style="margin-top: 162rpx;" @click="userType(1)">
我是房东
</div>
<div class="button" @click="userType(2)">
我是租户
</div>
</view>
<view class="box1" v-if="login">
<view class="input_txt" style="width: 536rpx;font-size: 24rpx;line-height: 32rpx;">
您暂未授权e租居小程序获取你的信息将无法正常使用小程序的功能如需要正常使用请点击授权按钮打开头像昵称等信息的授权
</view>
<button class="button" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber" style="margin-top: 330rpx;margin-left: -10rpx;" >
授权登录
</button>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
bgc: {
backgroundColor: "#7D86EF",
},
tittxt:"授权登录",
chooseType:true,
usertype:'',
login:false
}
},
methods: {
userType(num){
this.chooseType=false
this.login=true
if(num==1){
this.usertype='01'
2024-03-25 19:46:07 +08:00
}else{
this.usertype='00'
2024-03-13 10:54:22 +08:00
}
},
getPhoneNumber(e) {
let that = this;
console.log("eeeeeeee", e);
const wxLoginAsync = () => {
return new Promise((resolve, reject) => {
wx.login({
success(res) {
if (res.code) {
console.log('登录!', res);
let data = {
wxOpenId: res.code,
userType: that.usertype,
mobileCode: e.detail.code,
};
resolve(data);
} else {
reject(res.errMsg);
}
},
fail(err) {
reject(err);
}
});
});
};
wxLoginAsync()
.then(async (data) => {
this.$u.post("/app/auth/wxLogin",data).then((res) => {
// this.$forceUpdate()
if (res.code == 200) {
console.log(res,'resres');
wx.setStorageSync('token', res.token);
that.ceshi()
}
});
})
.catch((err) => {
console.error(err);
});
},
async ceshi() {
this.$u.get("/app/user/userInfo").then((res) => {
console.log('进入跳转');
2024-03-25 19:46:07 +08:00
uni.switchTab({
url: '/pages/index/index'
})
2024-03-13 10:54:22 +08:00
});
},
}
}
</script>
<style lang="scss" >
page{
background: #FFFFFF;
}
.page {
position: relative; /* 添加相对定位 */
}
.imgbox {
width: 750rpx;
height: 576rpx;
z-index: 0;
image {
width: 750rpx;
height: 576rpx;
}
}
.tip {
width: 204rpx;
position: absolute;
top: 400rpx;
left: 30rpx;
font-weight: 500;
font-size: 48rpx;
color: #FFFFFF;
line-height: 66rpx;
}
.inputbox {
position: absolute; /* 或者 fixed根据你的需求 */
top: 700rpx; /* 调整这里来控制距离顶部的距离 */
width: 750rpx; /* 调整输入框的宽度 */
padding: 100rpx 0;
background: #fff; /* 设置背景颜色,这里是红色的半透明 */
border-radius: 50rpx; /* 设置圆角 */
z-index: 999; /* 设置 z-index确保在其他内容上方显示 */
padding-left: 104rpx;
.input_txt{
font-weight: 400;
font-size: 32rpx;
color: #3D3D3D;
line-height: 44rpx;
}
.button{
margin-top: 64rpx;
display: flex;
justify-content: center;
align-items: center;
width: 562rpx;
height: 96rpx;
background: #8883F0;
border-radius: 52rpx 52rpx 52rpx 52rpx;
font-weight: 500;
font-size: 36rpx;
color: #FFFFFF;
}
}
</style>