<template>
|
<view>
|
<view class="login-title">
|
<view class="login-title-1">手机号登录</view>
|
<view class="login-title-2">未注册的手机号将自动注册</view>
|
</view>
|
<view class="login-type">
|
<view class="login-type-v">
|
<view :class="formData.loginType == 1 ? 'active' : ''" @tap="loginTypeClick(1)">账号密码登录</view>
|
<view :class="formData.loginType == 2 ? 'active' : ''" @tap="loginTypeClick(2)">短信登录</view>
|
</view>
|
</view>
|
<view class="login-list">
|
<view class="login-item">
|
<input type="tel" v-model="formData.phone" maxlength="11" placeholder="请输入手机号" />
|
</view>
|
<view class="login-item" v-if="formData.loginType == 1">
|
<input type="password" v-model="formData.pass" placeholder="请输入密码" />
|
</view>
|
<view class="login-item" v-if="formData.loginType == 2">
|
<input type="tel" v-model="formData.code" maxlength="4" placeholder="请输入验证码" />
|
<text class="code2" v-if="leftTime < 60">{{leftTime}}S后获取</text>
|
<text class="code" @click="sendCode" v-else>获取验证码</text>
|
</view>
|
</view>
|
<view class="loginBtn">
|
<view class="loginBtn-desc">
|
<image @click="agreeClick" class="loginBtn-icon" :src="!loginAct ? '/static/imgs/check.png' : '/static/imgs/checked.png'" mode=""></image>
|
<text>我已阅读并同意</text>
|
<text class="blue" @tap="agreeDialog1">《注册协议》</text>
|
<text class="blue" @tap="agreeDialog2">《隐私政策》</text>
|
</view>
|
<view :class="loginAct ? 'login-btn active' : 'login-btn'" @click="loginUser">登录</view>
|
<view class="loginDesc">
|
<view class="fl" @tap="$util.goPages('/pages/regist/regist')">注册账号</view>
|
<view class="fr" @tap="$util.goPages('/pages/findpass/findpass')">忘记密码</view>
|
</view>
|
</view>
|
<agreePup ref="agreePup1" :gp="1" title="注册协议"></agreePup>
|
<agreePup ref="agreePup2" :gp="2" title="隐私政策"></agreePup>
|
</view>
|
</template>
|
|
<script>
|
import agreePup from "@/components/agreePup/agreePup";
|
export default {
|
components: {
|
agreePup,
|
},
|
data() {
|
return {
|
loginAct: false,
|
formData: {
|
phone: '',
|
code: '',
|
pass: '',
|
loginType: 1,
|
},
|
phoneReg: /^\d{11}$/,
|
backUrl: '',
|
leftTime: 60,
|
}
|
},
|
onLoad(op) {
|
this.backUrl = op.backUrl ? op.backUrl : ''
|
},
|
methods: {
|
agreeDialog1 (e) {
|
this.$refs.agreePup1.dialog = !this.$refs.agreePup1.dialog
|
},
|
agreeDialog2 (e) {
|
this.$refs.agreePup2.dialog = !this.$refs.agreePup2.dialog
|
},
|
loginTypeClick (e) {
|
this.formData.loginType = e
|
},
|
agreeClick () {
|
this.loginAct = !this.loginAct
|
},
|
// loginUser () {
|
// let t = this
|
// if(!t.loginAct) {
|
// return uni.showToast({
|
// title: '请阅读并同意协议政策',
|
// icon: 'error'
|
// })
|
// }
|
// if(t.formData.phone == '' || !t.phoneReg.test(t.formData.phone)){
|
// return uni.showToast({
|
// title: '手机号错误!',
|
// icon: 'error',
|
// })
|
// }
|
// if(t.formData.pass == '' && t.formData.loginType == 1){
|
// return uni.showToast({
|
// title: '请输入密码!',
|
// icon: 'error',
|
// })
|
// }
|
// if(t.formData.code == '' && t.formData.loginType == 2){
|
// return uni.showToast({
|
// title: '请输入验证码!',
|
// icon: 'error',
|
// })
|
// }
|
// t.$util.post('User/Login', this.formData).then(res => {
|
// if(res.code == 1) {
|
// uni.setStorageSync('pig-token', res.data.userToken)
|
// uni.setStorageSync('user-info', JSON.stringify(res.data))
|
// let isSwitch = 0
|
// let goUrl = ''
|
// if(this.backUrl == ''){
|
// isSwitch = 1
|
// goUrl = '/pages/index/index'
|
// } else {
|
// goUrl = this.backUrl
|
// }
|
// uni.showToast({
|
// title: res.msg || '登录成功'
|
// })
|
// setTimeout(() => {
|
// if(isSwitch == 1) {
|
// t.$util.goSwitch(goUrl)
|
// } else {
|
// t.$util.goPages(goUrl)
|
// }
|
// }, 1500)
|
// } else {
|
// uni.showToast({
|
// title: res.msg || '登录失败',
|
// icon: 'error'
|
// })
|
// }
|
// })
|
// },
|
async loginUser() {
|
let t = this
|
|
if (!t.loginAct) {
|
return uni.showToast({
|
title: '请阅读并同意协议政策',
|
icon: 'error'
|
})
|
}
|
|
if (t.formData.phone == '' || !t.phoneReg.test(t.formData.phone)) {
|
return uni.showToast({
|
title: '手机号错误!',
|
icon: 'error'
|
})
|
}
|
|
if (t.formData.pass == '' && t.formData.loginType == 1) {
|
return uni.showToast({
|
title: '请输入密码!',
|
icon: 'error'
|
})
|
}
|
|
if (t.formData.code == '' && t.formData.loginType == 2) {
|
return uni.showToast({
|
title: '请输入验证码!',
|
icon: 'error'
|
})
|
}
|
|
try {
|
|
// 登录接口
|
const res = await t.$util.post('User/Login', this.formData)
|
|
if (res.code == 1) {
|
|
uni.setStorageSync('pig-token', res.data.userToken)
|
uni.setStorageSync('user-info', JSON.stringify(res.data))
|
|
let isSwitch = 0
|
let goUrl = ''
|
|
// qxgLogin接口
|
const ygxRes = await new Promise((resolve, reject) => {
|
uni.request({
|
url: t.$webHost + '/api/v2/auth/iosShopUnionLogin?phone=' + t.$util.getUserInfo().phone+'&configureToDomain=10',
|
success: resolve,
|
fail: reject
|
})
|
})
|
console.log(ygxRes);
|
if(!ygxRes.data.data.boughtEquity){
|
goUrl = '/pages/quanyi/index'
|
// t.$util.goPages(goUrl)
|
uni.navigateTo({
|
url: '/pages/quanyi/index'
|
})
|
return
|
}
|
|
t.ygxLogin = ygxRes.data.data
|
uni.setStorageSync('ygxLogin', t.ygxLogin)
|
|
if (this.backUrl == '') {
|
isSwitch = 1
|
goUrl = '/pages/index/index'
|
} else {
|
goUrl = this.backUrl
|
}
|
|
uni.showToast({
|
title: res.msg || '登录成功'
|
})
|
|
setTimeout(() => {
|
if (isSwitch == 1) {
|
t.$util.goSwitch(goUrl)
|
} else {
|
t.$util.goPages(goUrl)
|
}
|
}, 1500)
|
|
} else {
|
uni.showToast({
|
title: res.msg || '登录失败',
|
icon: 'error'
|
})
|
}
|
|
} catch (err) {
|
console.error(err)
|
|
uni.showToast({
|
title: '请求失败',
|
icon: 'error'
|
})
|
}
|
},
|
sendCode () {
|
let t = this
|
if(this.formData.phone == '' || !this.phoneReg.test(t.formData.phone)){
|
return uni.showToast({
|
title: '手机号错误!',
|
icon: 'error',
|
})
|
}
|
if (this.leftTime < 60) {
|
return false
|
}
|
this.$util.post('Sms/sendVerificationCode', {phone: this.formData.phone}).then(res => {
|
console.log(res)
|
if(res.code == 1){
|
t.countDown()
|
uni.showToast({
|
title:'发送成功',
|
icon:'none'
|
})
|
} else {
|
uni.showToast({
|
title: res.msg,
|
icon: 'none',
|
})
|
}
|
})
|
},
|
countDown() {
|
this.leftTime--
|
if (this.leftTime > 0) {
|
setTimeout(this.countDown, 1000)
|
} else {
|
this.leftTime = 60
|
}
|
},
|
}
|
}
|
</script>
|
|
<style>
|
@import url(/static/css/login.css);
|
</style>
|