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.
307 lines
9.3 KiB
307 lines
9.3 KiB
<template> |
|
<view id="page"> |
|
<view class="Width100 Box" :style="bgUrl1"> |
|
<view class="Content MarginAuto"> |
|
<image :src="$.imgSrc + '/scimg/logo1.png'" mode="aspectFit" class="Block Logo"></image> |
|
<view class="NavBox Width100 MarginT_60rpx"> |
|
<view class="Unit FloatL PositionR" v-for="(item,index) in navList" @click="chooseNav(item.type)"> |
|
<text class="Block" :class="currNav == item.type ? 'FontS_46rpx Color_1A1F39 FontBold':'FontS_42rpx Color_B4BAC9'"> |
|
{{ item.label }}</text> |
|
<view class="Line BG_0064FF PositionA" v-show="currNav == item.type"></view> |
|
</view> |
|
<view class="ClearB"></view> |
|
</view> |
|
<!-- <view class="TypeBox MarginT_60rpx" v-if="currNav == 1"> |
|
<view class="Unit FloatL" v-for="(item,index) in typeList" @click="chooseType(item.type)"> |
|
<view class="Point FloatL" v-show="currType == item.type"> |
|
<image :src="$.imgSrc + '/scimg/choose_y1.png'" mode="aspectFit" class="Block Width100 Height100"></image> |
|
</view> |
|
<view class="Point Border FloatL BorderR_50 InsideB" v-show="currType != item.type"></view> |
|
<text class="Block MarginL_20rpx FontS_32rpx FloatL">{{item.label}}</text> |
|
<view class="ClearB"></view> |
|
</view> |
|
<view class="ClearB"></view> |
|
</view> --> |
|
<view class="InputBox" :class="currNav == 1 ? 'MarginT_40rpx' : 'MarginT_80rpx'"> |
|
<view class="Input MarginT_40rpx BG_F6F7FB"> |
|
<!-- <view class="Num FloatL TextLeft MarginL_60rpx">--> |
|
<!-- <text class="InlineBlock FontS_34rpx Color_1A1F39 FontBold">+86</text>--> |
|
<!-- </view>--> |
|
<input type="text" placeholder="请输入用户名" v-model="logInData.phone" class="Height100 Input1 FloatL MarginL_60rpx FontS_32rpx"> |
|
<view class="ClearB"></view> |
|
</view> |
|
<view class="Input MarginT_40rpx BG_F6F7FB" v-if="currNav == 1"> |
|
<input type="text" v-model="logInData.validateCode" placeholder="请输入验证码" class="Height100 Input1 FloatL MarginL_60rpx FontS_32rpx"> |
|
<view class="CodeBox FloatR MarginR_60rpx" @click="getCode"> |
|
<text class="Block FontS_28rpx" :class="isCodeDisabled ? 'Color_B4BAC9':'Color_0064FF'">{{ btnText }}</text> |
|
</view> |
|
<view class="ClearB"></view> |
|
</view> |
|
<view class="Input MarginT_40rpx BG_F6F7FB"> |
|
<input type="password" v-model="logInData.password" placeholder="请输入您的密码" class="Height100 Input2 FloatL MarginL_60rpx FontS_32rpx"> |
|
<view class="ClearB"></view> |
|
</view> |
|
</view> |
|
<!-- <view class="Agree Width100 MarginT_60rpx" @click="chooseAgree"> |
|
<view class="Point FloatL" v-if="isAgree"> |
|
<image :src="$.imgSrc + '/scimg/choose_y1.png'" mode="aspectFit" class="Block Width100 Height100"></image> |
|
</view> |
|
<view class="Point Border FloatL BorderR_50 InsideB" v-else></view> |
|
<text class="Block FloatL MarginL_20rpx Color_605F72 FontS_26rpx">本人已同意</text> |
|
<text class="Block FloatL Color_0064FF FontS_26rpx" @click.stop="checkAgree(2)">《用户协议》</text> |
|
<text class="Block FloatL Color_605F72 FontS_26rpx">与</text> |
|
<text class="Block FloatL Color_0064FF FontS_26rpx" @click.stop="checkAgree(3)">《隐私协议》</text> |
|
<view class="ClearB"></view> |
|
</view> --> |
|
<button type="button" :disabled="isDisabled" class="Btn Block Width100 Color_FFFFFF FontS_36rpx FontBold" @click="confirmSub">{{ currNav == 1 ? '注册':'登录' }}</button> |
|
<text @click="findPsw" class="Block MarginT_40rpx TextCenter FontS_26rpx Color_0064FF" v-if="currNav == 2">找回密码?</text> |
|
</view> |
|
</view> |
|
</view> |
|
</template> |
|
|
|
<script> |
|
export default { |
|
// 组件 |
|
components: {}, |
|
data() { |
|
return { |
|
// 公用的js |
|
$: this.$, |
|
bgUrl1:'', // 登录信息背景图 |
|
isAgree:false, |
|
navList:[ |
|
// {type:1,label:'注册'}, |
|
{type:2,label:'登录'}, |
|
], |
|
currNav:2, |
|
currType:1, |
|
isDisabled:false, |
|
logInData:{ |
|
phone:'', // |
|
validateCode:'', // |
|
password:'', // |
|
}, // |
|
btnText:'获取验证码', |
|
times:null, |
|
seconds:60, |
|
isCodeDisabled:false, |
|
} |
|
}, |
|
// 页面加载 |
|
onLoad(e) { |
|
if(typeof(e.type) != 'undefined'){ |
|
this.currNav = e.type |
|
} |
|
}, |
|
// 页面显示 |
|
onShow() { |
|
// 顶部背景图 |
|
this.bgUrl1 = "background-image:url('" + this.$.imgSrc + "/scimg/bg1.png');background-repeat: no-repeat;background-position: center top;background-size:100% 472rpx;" |
|
}, |
|
// 计算属性 |
|
computed: {}, |
|
// 方法 |
|
methods: { |
|
checkAgree(type){ |
|
let urlKey = 'portalTextType' |
|
this.$.open('/pages/logIn/agree?type=' + type) |
|
}, |
|
getCode(){ |
|
if(!this.$.isEmpty(this.logInData.phone)){ |
|
this.$.toast('请输入手机号') |
|
return |
|
} |
|
let datas = { |
|
phone:this.logInData.phone, |
|
type:2 |
|
} |
|
this.isCodeDisabled = true |
|
this.$request.globalRequest('/hyjg-admin/mapi/account/sendSmsCode', datas, 'POST').then(res => { |
|
if(res.code == 0){ |
|
this.timeDown() |
|
}else{ |
|
this.$.toast(res.msg) |
|
this.isCodeDisabled = false |
|
} |
|
}) |
|
}, |
|
timeDown(){ |
|
this.times = setInterval(() => { |
|
if(this.seconds > 0){ |
|
this.seconds -- |
|
this.btnText = this.seconds + 'S' |
|
}else { |
|
this.seconds = 60 |
|
this.isCodeDisabled = false |
|
this.btnText = '获取验证码' |
|
clearInterval(this.times) |
|
} |
|
},1000) |
|
}, |
|
// 提交 |
|
confirmSub(){ |
|
// this.$.setData('token','1') |
|
// this.$.openTab('/pages/index/index') |
|
// return |
|
// this.$.open('/pages/logIn/userInfo') |
|
let url = '/hyjg-admin/mapi/account/register' |
|
if(!this.$.isEmpty(this.logInData.phone)){ |
|
this.$.toast('请填写用户名') |
|
return |
|
} |
|
if(!this.$.isEmpty(this.logInData.password)){ |
|
this.$.toast('请填写密码') |
|
return |
|
} |
|
// if(!this.isAgree){ |
|
// this.$.toast('请勾选用户协议和隐私协议') |
|
// return |
|
// } |
|
let datas = { |
|
nuserid: this.logInData.phone, |
|
cuserpwd: this.logInData.password, |
|
} |
|
url = '/hiddenDanger/auth/login' |
|
this.$.showLoading('登录中...') |
|
this.isDisabled = true |
|
this.$request.globalRequest(url, datas, 'POST').then(res => { |
|
if(res.code === 200){ |
|
this.$.toast('登录成功') |
|
this.$.setData('token',res.result.nuserid) |
|
this.$.setData('userInfo', { username: res.result.nuserid,role:res.result.role }) |
|
setTimeout(() => { |
|
this.$.hideLoading('登录中...') |
|
this.isDisabled = false |
|
this.$.openTab('/pages/index/index') |
|
},1500) |
|
}else{ |
|
this.$.toast(res.message) |
|
this.isDisabled = false |
|
} |
|
}) |
|
}, |
|
// 找回密码 |
|
findPsw(){ |
|
this.$.open('/pages/logIn/findPsw') |
|
}, |
|
chooseAgree(){ |
|
this.isAgree = !this.isAgree |
|
}, |
|
chooseNav(type){ |
|
this.currNav = type |
|
}, |
|
chooseType(type){ |
|
this.currType = type |
|
}, |
|
// 跳转页面 |
|
skipPage(even){ |
|
this.$.open(even) |
|
}, |
|
}, |
|
onReady() { |
|
}, |
|
// 页面卸载 |
|
onUnload() { |
|
|
|
}, |
|
// 触发下拉刷新 |
|
onPullDownRefresh() { |
|
// 延迟关闭刷新动画 |
|
setTimeout(() => { |
|
uni.stopPullDownRefresh(); |
|
}, 1500); |
|
}, |
|
// 页面上拉触底事件的处理函数 |
|
onReachBottom() { |
|
}, |
|
} |
|
</script> |
|
|
|
<style> |
|
page { |
|
background:#FFFFFF; |
|
} |
|
</style> |
|
<style lang="scss" scoped> |
|
|
|
.Box{ |
|
padding-top:var(--status-bar-height); |
|
.Content{ |
|
width: calc(100% - 176rpx); |
|
padding: 132rpx 0rpx 180rpx 0rpx; |
|
.Logo{ |
|
width: 150rpx; |
|
height: 150rpx; |
|
} |
|
.NavBox{ |
|
.Unit{ |
|
margin-right: 110rpx; |
|
.Line{ |
|
left: 50%; |
|
transform: translateX(-50%); |
|
bottom: -26rpx; |
|
width: 74rpx; |
|
height: 10rpx; |
|
border-radius: 6rpx; |
|
} |
|
} |
|
} |
|
.TypeBox{ |
|
.Unit{ |
|
margin-right: 108rpx; |
|
.Point{ |
|
width: 46rpx; |
|
height: 46rpx; |
|
} |
|
.Border{ |
|
width: 46rpx; |
|
height: 46rpx; |
|
border: 4rpx solid #B3BACB; |
|
} |
|
} |
|
} |
|
.InputBox{ |
|
.Input{ |
|
height: 110rpx; |
|
border-radius: 56rpx; |
|
.CodeBox{ |
|
text{ |
|
line-height: 110rpx; |
|
} |
|
} |
|
.Num{ |
|
width: 110rpx; |
|
border-right: 4rpx solid #DADADA; |
|
margin-top: 34rpx; |
|
} |
|
.Input1{ |
|
width: calc(100% - 260rpx); |
|
} |
|
.Input2{ |
|
width: calc(100% - 120rpx); |
|
} |
|
} |
|
} |
|
.Agree{ |
|
.Point{ |
|
width: 34rpx; |
|
height: 34rpx; |
|
} |
|
.Border{ |
|
width: 34rpx; |
|
height: 34rpx; |
|
border: 2rpx solid #B3BACB; |
|
} |
|
} |
|
.Btn{ |
|
margin-top: 196rpx; |
|
height: 108rpx; |
|
background: linear-gradient(90deg, #0064FF 0%, #2D99FD 100%); |
|
box-shadow: 0rpx 6rpx 10rpx 0rpx rgba(194,218,255,1); |
|
border-radius: 54rpx; |
|
line-height: 108rpx; |
|
} |
|
} |
|
} |
|
</style>
|
|
|