Files
hht-nl-four-uni/pages/login/login.vue
2023-10-12 09:47:20 +08:00

168 lines
3.8 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="zd_content bg">
<view class="p1">欢迎来到</view>
<view class="p2">诺力四期系统</view>
<view class="input-box">
<input class="large-input" type="text" placeholder="请输入服务器地址" v-model="addrip">
</view>
<view class="radio-box">
<text class="setup-text" @tap="isUpdate">升级版本</text>
</view>
<button class="login-btn" @tap="toLogin">确认</button>
<view v-if="version !== ''" class="version-name">v{{version}}</view>
<Up-grade v-if="grade === true" @closeUpdate="closeUpdate" :androidUrl="androidUrl"></up-grade>
</view>
</template>
<script>
import { RSAencrypt } from '@/utils/jsencrypt.js'
import {handLogin, pdaUpdate} from '@/utils/getData2.js'
import UpGrade from './upgrade.vue'
export default {
components: {
UpGrade
},
data() {
return {
user: this.$store.getters.loginName ? this.$store.getters.loginName : '',
password: '',
showPassword: false,
saveUser: this.$store.getters.loginName ? true : false,
disabled: false,
version: '',
versionCode: '',
grade: false,
androidUrl: ''
}
},
created () {
//#ifdef APP-PLUS
// 获取本地应用资源版本号
plus.runtime.getProperty(plus.runtime.appid, (info) => {
console.log(JSON.stringify(info));
this.version = info.version;
this.versionCode = info.versionCode ;
})
//#endif
},
methods: {
isUpdate () {
this._pdaUpdate()
},
toSaveUser() {
this.saveUser = !this.saveUser
},
changePassword() {
this.showPassword = !this.showPassword
},
setup () {
uni.redirectTo({
url: '/pages/login/setup'
})
},
async toLogin() {
// uni.redirectTo({
// url: '/pages/home/home'
// })
this.disabled = true
if (this.user === '') {
uni.showToast({
title: '用户名不能为空',
icon: 'none'
})
this.disabled = false
return
}
if (this.password === '') {
uni.showToast({
title: '密码不能为空',
icon: 'none'
})
this.disabled = false
return
}
try {
let res = await handLogin(this.user, RSAencrypt(this.password))
if (this.saveUser) {
this.$store.dispatch('saveLoginName', this.user)
} else {
this.$store.dispatch('delLoginName', '')
}
this.$store.dispatch('saveUserInfo', JSON.stringify(res.result))
// this.$store.dispatch('saveToken', res.token)
uni.redirectTo({
url: '/pages/home/home'
})
this.disabled = false
} catch (e) {
this.disabled = false
}
},
async _pdaUpdate () {
let res = await pdaUpdate()
if (res.versionName === this.version) {
uni.showToast({
title: '当前为最新版本',
icon: 'none'
})
} else {
this.grade = true
this.androidUrl = res.url
}
},
closeUpdate () {
this.grade = false
}
}
}
</script>
<style lang="stylus" scoped>
@import '../../common/style/mixin.styl';
.p1
_font(60rpx,75rpx,#444)
padding-top: 90rpx
.p2
_font(50rpx,1,#444)
padding: 40rpx 0 25rpx
.input-box
_fj()
margin-top 68rpx
height 75rpx
border-bottom 1rpx solid #e2e2e2
.large-input
_wh(calc(100% - 40rpx), 74rpx)
_font(32rpx,74rpx,#999)
padding-left 10rpx
.radio-box
_fj(flex-end)
margin: 25rpx 0 70rpx 0
height: 34rpx
.radio-wrap
_fj(flex-start)
height: 34rpx
flex: 2
.radio-label
_font(28rpx, 28rpx,#333)
padding-left: 10rpx
.setup-text
_font(28rpx, 28rpx,$red,,right)
padding-left 25rpx
.bg
background-color: #fff;
_bis('../../static/image/login_bg.png', 100%,,bottom)
.login-btn
width 100%
border-radius 46rpx
_font(36rpx,92rpx,#fff,,center)
background-color $red
.zd_content
position: relative
height: 100%
.version-name
width 100%
position: absolute
bottom: 30rpx
_font(30rpx, 60rpx, #999,,center)
</style>