deming/pageA/login/login.vue

509 lines
10 KiB
Vue
Raw Normal View History

2020-06-01 11:41:09 +08:00
<template>
2020-06-02 08:49:13 +08:00
<!-- login页面 -->
<view>
2020-06-02 11:40:14 +08:00
<view class="login">
<image class="images" src="../../static/pageA/loginbackground.png"></image>
<view class="backes"></view>
<view class="content">
<view class="title">手机登录</view>
<view class="labales">
2020-06-11 08:43:51 +08:00
<!-- <text></text> -->
2020-06-17 12:09:28 +08:00
<input type="tel" placeholder="请输入您的手机号" v-model="member_mobile" />
2020-06-02 11:40:14 +08:00
</view>
<view class="labales">
2020-06-11 08:43:51 +08:00
<!-- <text></text> -->
2020-06-17 12:09:28 +08:00
<input type="tel" placeholder="请输入验证码" v-model="sms_code" />
2020-06-15 15:31:31 +08:00
<!-- <text class="identifying" @click="getCode">{{text}}</text> -->
2020-06-19 19:20:33 +08:00
<identifying @tochange="tochange" :smslog_type="smslog_type" :member_mobile="member_mobile"></identifying>
2020-06-02 11:40:14 +08:00
</view>
2020-06-19 19:20:33 +08:00
2020-06-02 11:40:14 +08:00
<!-- 服务协议 -->
<view class="pact">
2020-06-19 19:20:33 +08:00
<view>
<view></view>
<text>我已详细阅读并同意</text>
<text class="pact_text" v-for="(item,index) in pact_text" :key="index" @click="pact_click(index)"> {{item.text}} </text>
</view>
2020-06-08 11:32:07 +08:00
<u-checkbox-group @change="checkboxGroupChange" size="27">
<u-checkbox @change="checkboxChange" v-model="item.checked" v-for="(item, index) in list" :key="index" :name="item.name"
shape="circle" size="14" active-color="#19BE6B"></u-checkbox>
2020-06-02 15:35:03 +08:00
</u-checkbox-group>
2020-06-02 11:40:14 +08:00
</view>
2020-06-02 09:27:35 +08:00
</view>
2020-06-02 11:40:14 +08:00
<!-- 注册 -->
<view class="more_Login">
2020-06-17 12:09:28 +08:00
<text @click="registerUrl()">{{register}}</text>
2020-06-08 11:32:07 +08:00
<text class="other" @click="mask_u">其他方式登录</text>
2020-06-02 09:27:35 +08:00
</view>
2020-06-08 11:32:07 +08:00
<!-- denglu QQ weixin -->
2020-06-15 15:31:31 +08:00
<view class="buttones">
2020-07-02 08:39:38 +08:00
<view @click="loginOn">{{login}}</view>
2020-06-15 15:31:31 +08:00
</view>
2020-06-08 11:32:07 +08:00
<u-mask :show="show" @click="show = false">
<view class="warp">
<view class="rect" @tap.stop>
2020-06-17 12:09:28 +08:00
<view class="rect_view" @click="rect_qq()">
2020-06-08 11:32:07 +08:00
<image src="../../static/pageA/qq.png" class="image"></image>
<view>QQ登录</view>
</view>
<view class="rect_view">
2020-06-15 15:31:31 +08:00
<image src="../../static/pageA/weixin.png" class="image"></image>
2020-06-08 11:32:07 +08:00
<view>微信登录</view>
</view>
2020-07-03 10:50:02 +08:00
<view class="rect_butoon" @click="show = false">取消</view>
2020-06-08 11:32:07 +08:00
</view>
</view>
</u-mask>
2020-06-02 09:27:35 +08:00
</view>
2020-06-17 12:09:28 +08:00
<u-toast ref="uToast" />
2020-06-02 08:49:13 +08:00
</view>
2020-06-01 11:41:09 +08:00
</template>
<script>
2020-06-17 12:09:28 +08:00
import identifying from '@/components/logininput/identifying'
2020-06-02 12:01:13 +08:00
export default {
data() {
return {
list: [{
2020-06-17 12:09:28 +08:00
checked: true,
2020-06-02 15:35:03 +08:00
disabled: false
}],
2020-06-02 12:01:13 +08:00
value: '',
2020-06-19 19:20:33 +08:00
phones: '',
2020-06-15 15:31:31 +08:00
text: '获取验证码',
2020-06-08 11:32:07 +08:00
login: '登录',
2020-06-19 19:20:33 +08:00
register: '新用户点击注册',
2020-06-15 15:31:31 +08:00
show: false,
tips: '',
// refCode: null,
seconds: 60,
2020-06-17 12:09:28 +08:00
member_mobile: '', //手机号
2020-06-19 19:20:33 +08:00
smslog_type: '2', //状态
sms_code: '', //验证码
// 协议渲染
pact_text: [{
"id": '1',
"text": "《用户协议》"
}, {
"id": '2',
"text": "《隐私协议》"
}, {
"id": '3',
"text": "《使用协议》"
},
]
2020-06-02 12:01:13 +08:00
};
},
2020-06-17 12:09:28 +08:00
onLoad() {
// 数据的请求
2020-06-22 17:45:39 +08:00
this.apiwelcome()
2020-06-17 12:09:28 +08:00
},
2020-06-02 12:01:13 +08:00
methods: {
2020-06-19 19:20:33 +08:00
apiwelcome() {
2020-06-17 12:09:28 +08:00
this.$u.api.sendSmsCode({
2020-06-19 19:20:33 +08:00
}).then((res) => {
2020-06-17 12:09:28 +08:00
console.log(res)
})
},
2020-06-19 19:20:33 +08:00
// 协议跳转
pact_click(index){
console.log(index)
uni.navigateTo({
url: '/pageA/pactList/pactList?index=' + index
});
},
2020-06-17 12:09:28 +08:00
// 用户登录
2020-06-19 19:20:33 +08:00
loginOn() {
2020-07-03 09:09:21 +08:00
// uni.navigateTo({
// url: '/pageE/zhibo/index'
// });
2020-06-19 19:20:33 +08:00
console.log("登录")
2020-06-17 12:09:28 +08:00
// console.log(this.member_mobile)
// console.log(this.sms_code)
2020-06-19 19:20:33 +08:00
// 判断手机号是否为空
// 校验手机号
let type_phone = this.$u.test.mobile( this.member_mobile)
if( this.member_mobile == ''){
this.$refs.uToast.show({
title: '手机号不能为空',
type: 'error'
})
return false;
}
if (type_phone == false) {
this.$refs.uToast.show({
title: '手机号格式不正确',
type: 'error'
});
return false;
}
if( this.sms_code == ''){
this.$refs.uToast.show({
title: '验证码不能为空',
type: 'error'
})
return false;
}
2020-06-17 12:09:28 +08:00
this.$u.api.phoneLogin({
member_mobile: this.member_mobile,
sms_code: this.sms_code
}).then((res) => {
2020-06-19 19:20:33 +08:00
console.log(res)
2020-06-17 12:09:28 +08:00
// console.log(res)
2020-06-19 19:20:33 +08:00
if (res.errCode == 0) {
2020-07-03 10:50:02 +08:00
if(res.data == ''){
this.$refs.uToast.show({
title: res.message,
type: 'error'
})
return false
}else{
// 缓存用户的信息
uni.setStorage({
key: 'user_info',
data: res.data,
success: function() {
console.log('success');
// 跳转首页
uni.navigateTo({
url : '/pageA/topick/topick'
})
}
});
}
2020-06-22 17:45:39 +08:00
2020-06-18 14:57:26 +08:00
// 存储接口请求所需token
uni.setStorage({
key: 'token',
2020-06-22 17:45:17 +08:00
data: res.data.token,
2020-06-18 14:57:26 +08:00
});
2020-06-17 12:09:28 +08:00
// 注册返回参数
this.$refs.uToast.show({
title: res.message,
type: 'success',
url: '/pageA/topick/topick'
})
}
2020-06-19 19:20:33 +08:00
if (res.errCode == 1) {
2020-06-17 12:09:28 +08:00
this.$refs.uToast.show({
title: res.message,
type: 'error'
})
}
})
},
// qq授权登录
2020-06-19 19:20:33 +08:00
rect_qq() {
2020-06-17 12:09:28 +08:00
console.log("授权Q")
var vm = this;
uni.getProvider({
service: 'oauth',
2020-06-19 19:20:33 +08:00
success: function(res) {
console.log('qq', res) //weixin
2020-06-17 12:09:28 +08:00
if (~res.provider.indexOf('qq')) {
uni.login({
2020-06-19 19:20:33 +08:00
provider: 'qq',
success: function(loginRes) {
2020-06-17 12:09:28 +08:00
console.log(loginRes)
this.getApplogin(loginRes)
vm.$HTTP({
2020-06-19 19:20:33 +08:00
method: 'GET',
baseURL: 'https://graph.qq.com/user/get_user_info',
url: '',
data: {
openid: loginRes.authResult.openid,
access_token: loginRes.authResult.access_token,
appid: '101884160'
},
load: true
}).then((data) => {
console.log(data)
2020-06-17 12:09:28 +08:00
}, (err) => {
2020-06-19 19:20:33 +08:00
console.log(err)
2020-06-17 12:09:28 +08:00
});
}
});
2020-06-19 19:20:33 +08:00
} else {
2020-06-17 12:09:28 +08:00
console.log("错误")
}
}
});
},
// 跳转注册页面
2020-06-19 19:20:33 +08:00
registerUrl() {
2020-06-17 12:09:28 +08:00
uni.navigateTo({
url: '/pageA/register/register'
});
},
// 授权登录
2020-06-19 19:20:33 +08:00
getApplogin() {
2020-06-17 12:09:28 +08:00
console.log("11")
},
2020-06-02 15:35:03 +08:00
// 选中某个复选框时由checkbox时触发
2020-06-08 11:32:07 +08:00
checkboxChange(e) {
//console.log(e);
},
// 选中任一checkbox时由checkbox-group触发
checkboxGroupChange(e) {
// console.log(e);
},
2020-06-15 15:31:31 +08:00
mask_u() {
2020-06-08 11:32:07 +08:00
this.show = !this.show
},
2020-06-19 19:20:33 +08:00
tochange() {
2020-06-11 08:43:51 +08:00
}
2020-06-17 12:09:28 +08:00
},
2020-06-19 19:20:33 +08:00
components: {
2020-06-17 12:09:28 +08:00
identifying
2020-06-02 12:01:13 +08:00
}
};
2020-06-01 11:41:09 +08:00
</script>
2020-06-02 12:01:13 +08:00
<style lang="scss" scoped>
.login {
2020-06-02 11:40:14 +08:00
// background: url(../../static/pageA/loginbackground.png) no-repeat!important;
2020-06-02 12:01:13 +08:00
.images {
2020-06-02 11:40:14 +08:00
position: fixed;
width: 100%;
height: 100%;
top: 0;
left: 0;
z-index: -1;
}
2020-06-02 12:01:13 +08:00
.backes {
background: rgba(0, 0, 0, 0.4);
2020-06-02 11:40:14 +08:00
position: fixed;
width: 100%;
height: 100%;
2020-06-02 12:01:13 +08:00
z-index: -1;
2020-06-02 11:40:14 +08:00
}
2020-06-02 12:01:13 +08:00
text {
2020-06-02 11:40:14 +08:00
z-index: 9;
color: #fff;
}
2020-06-02 12:01:13 +08:00
.more_Login {
2020-06-02 11:40:14 +08:00
overflow: hidden;
zoom: 1;
width: 630rpx;
margin: 0 auto;
}
2020-06-02 12:01:13 +08:00
.more_Login text {
2020-06-02 11:40:14 +08:00
display: inline-block;
width: 50%;
float: left;
2020-06-02 12:01:13 +08:00
font-size: 30rpx;
color: rgba(255, 255, 255, 1);
line-height: 36px;
2020-06-02 11:40:14 +08:00
margin: 97rpx 0;
}
2020-06-02 12:01:13 +08:00
.more_Login .other {
2020-06-02 11:40:14 +08:00
text-align: right;
}
}
2020-06-02 12:01:13 +08:00
.title {
font-size: 36rpx;
font-weight: bold;
2020-06-02 11:40:14 +08:00
margin-bottom: 150rpx;
color: #fff;
}
2020-06-02 12:01:13 +08:00
.content {
2020-06-02 11:40:14 +08:00
width: 630rpx;
z-index: 99999;
margin: 0 auto;
padding-top: 130rpx;
2020-06-02 12:01:13 +08:00
.labales text {
2020-06-02 11:40:14 +08:00
font-size: 30rpx;
}
2020-06-02 12:01:13 +08:00
.labales {
2020-06-18 14:57:26 +08:00
color: #FFF;
2020-06-02 11:40:14 +08:00
border-bottom: 1px #fff solid;
margin-bottom: 90rpx;
2020-06-11 08:43:51 +08:00
height: 70rpx;
line-height: 70rpx;
2020-06-02 11:40:14 +08:00
}
2020-06-15 15:31:31 +08:00
2020-06-11 08:43:51 +08:00
.labales:nth-child(3) {
2020-06-02 11:40:14 +08:00
position: relative;
2020-06-11 08:43:51 +08:00
margin-bottom: 10px;
2020-06-02 11:40:14 +08:00
}
2020-06-02 12:01:13 +08:00
2020-06-19 19:20:33 +08:00
.identifying {}
2020-06-02 11:40:14 +08:00
}
2020-06-15 15:31:31 +08:00
.uni-input-input,
.uni-input-placeholder {
color: #fff !important;
letter-spacing: 2rpx;
}
2020-06-02 12:01:13 +08:00
.pact text {
font-size: 22rpx;
font-weight: 400;
color: rgba(255, 255, 255, 1);
2020-06-19 19:20:33 +08:00
// line-height: 36px;
}
.pact>view:first-child {
float: left;
2020-06-02 11:40:14 +08:00
}
2020-06-02 12:01:13 +08:00
.pact_text {
font-size: 22px;
font-weight: 400;
color: rgba(129, 188, 253, 1) !important;
2020-06-19 19:20:33 +08:00
// line-height: 36px;
2020-06-02 09:27:35 +08:00
}
2020-06-08 11:32:07 +08:00
2020-06-02 15:35:03 +08:00
//单选框的样式
2020-06-08 11:32:07 +08:00
.pact {
2020-06-02 15:35:03 +08:00
position: relative;
padding-left: 40rpx;
2020-06-19 19:20:33 +08:00
overflow: hidden;
// overflow: hidden; //超出的文本隐藏
// text-overflow: ellipsis; //溢出用省略号显示
// white-space: nowrap; //溢出不换行
2020-06-02 15:35:03 +08:00
}
2020-06-08 11:32:07 +08:00
.u-checkbox-group {
2020-06-02 15:35:03 +08:00
position: absolute;
left: 0;
top: 0;
bottom: 0;
margin: auto;
}
2020-06-08 11:32:07 +08:00
.u-checkbox__icon--square {
border-radius: 50rpx !important;
2020-06-02 15:35:03 +08:00
width: 22rpx;
height: 22rpx;
}
2020-06-08 11:32:07 +08:00
2020-07-02 08:39:38 +08:00
.buttones > view {
2020-06-08 11:32:07 +08:00
width: 628rpx;
height: 98rpx;
background: rgba(255, 120, 15, 1) !important;
border-radius: 49rpx;
2020-06-02 15:35:03 +08:00
margin: 0 auto;
2020-06-08 11:32:07 +08:00
font-size: 36rpx;
color: rgba(255, 255, 255, 1) !important;
2020-07-02 08:39:38 +08:00
line-height: 98rpx;
2020-06-02 15:35:03 +08:00
border: 1px #ff780f solid;
outline: none;
2020-06-08 11:32:07 +08:00
border-color: rgba(255, 120, 15, 1) !important;
2020-07-02 08:39:38 +08:00
text-align: center;
2020-06-08 11:32:07 +08:00
}
.warp {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
}
.rect {
width: 558rpx;
height: 300rpx;
background-color: #fff;
border-radius: 20rpx;
overflow: hidden;
zoom: 1;
position: relative;
display: flex;
2020-06-15 15:31:31 +08:00
flex-wrap: wrap;
display: -webkit-flex;
/* Safari */
.rect_view {
2020-06-08 11:32:07 +08:00
width: 100rpx;
height: 100rpx;
2020-06-15 15:31:31 +08:00
.image {
width: 45rpx;
height: 53rpx;
display: inline-block;
2020-06-08 11:32:07 +08:00
}
2020-06-15 15:31:31 +08:00
2020-06-08 11:32:07 +08:00
flex:1;
margin-top: 77rpx;
}
2020-06-15 15:31:31 +08:00
.rect_view:nth-child(2) image {
2020-06-08 11:32:07 +08:00
width: 57rpx;
height: 45rpx;
}
2020-06-15 15:31:31 +08:00
.rect_butoon {
2020-06-08 11:32:07 +08:00
width: 100%;
position: absolute;
bottom: 0;
height: 85rpx;
text-align: center;
line-height: 85rpx;
border-top: 1px #999999 solid;
}
2020-06-15 15:31:31 +08:00
view {
2020-06-08 11:32:07 +08:00
color: #666;
2020-06-15 15:31:31 +08:00
font-size: 24rpx;
2020-06-08 11:32:07 +08:00
margin-top: 30rpx;
2020-06-15 15:31:31 +08:00
2020-06-08 11:32:07 +08:00
}
}
2020-06-15 15:31:31 +08:00
.rect_view:nth-child(1) image,
.rect_view:nth-child(1) view {
2020-06-08 11:32:07 +08:00
float: right;
}
2020-06-15 15:31:31 +08:00
.rect_view:nth-child(1) image {
2020-06-08 11:32:07 +08:00
margin-right: 20rpx;
}
2020-06-15 15:31:31 +08:00
.rect_view:nth-child(1) {
2020-06-08 11:32:07 +08:00
position: relative;
margin-right: 79rpx;
}
2020-06-15 15:31:31 +08:00
.rect_view:nth-child(1) view {
2020-06-08 11:32:07 +08:00
position: absolute;
bottom: 0;
right: 0;
}
2020-06-15 15:31:31 +08:00
.rect_view:nth-child(2) image,
.rect_view:nth-child(2) view {
2020-06-08 11:32:07 +08:00
float: left;
}
2020-06-15 15:31:31 +08:00
.rect_view:nth-child(2) image {
2020-06-08 11:32:07 +08:00
margin-left: 20rpx;
}
2020-06-15 15:31:31 +08:00
.rect_view:nth-child(2) {
2020-06-08 11:32:07 +08:00
position: relative;
}
2020-06-15 15:31:31 +08:00
.rect_view:nth-child(2) view {
2020-06-08 11:32:07 +08:00
position: absolute;
bottom: 0;
left: 0;
}
2020-06-01 11:41:09 +08:00
</style>