39 changed files with 157 additions and 517 deletions
@ -1,410 +0,0 @@ |
|||||
<template> |
|
||||
<view class="content"> |
|
||||
<!-- <image mode="widthFix" class="loginimg" src="../../static/login.png"></image> --> |
|
||||
<image mode="widthFix" class="loginimg" src="../../static/icons_ui/login_bg.png"></image> |
|
||||
<view class="login_title"> |
|
||||
<text>您好,欢迎使用</text><br> |
|
||||
WMS仓库管理系统 |
|
||||
</view> |
|
||||
<view class="bgf login_wrap"> |
|
||||
<view class="loginbox"> |
|
||||
<form > |
|
||||
<view class="mytab"> |
|
||||
<!-- <view class="mytabline" :class="tapstyle == 1?'active':''" @click="tapchenge(1)">扫码登录</view> --> |
|
||||
<view class="mytabline" :class="tapstyle == 2?'active_in':''" @click="tapchenge(2)">密码登录</view> |
|
||||
</view> |
|
||||
|
|
||||
<!-- <view class="mybox" v-if="tapstyle == 1"> |
|
||||
<view class="conone"> |
|
||||
<uni-easyinput prefixIcon="scan" class="uni-input" type="password" v-model="smloginmsg" |
|
||||
name="nickname" placeholder="扫码登录"></uni-easyinput> |
|
||||
</view> |
|
||||
</view> --> |
|
||||
<view class="mybox" v-if="tapstyle == 2"> |
|
||||
<view class="conone"> |
|
||||
<view class="title uni-flex"> |
|
||||
<image class="icon_normal" src="../../static/icons_ui/icon_login_user.svg"></image> |
|
||||
用户名 |
|
||||
</view> |
|
||||
<view> |
|
||||
<input class="uni-input" placeholder="请输入用户名" v-model="username" /> |
|
||||
</view> |
|
||||
</view> |
|
||||
<view class="conone"> |
|
||||
<view class="title uni-flex"> |
|
||||
<image class="icon_normal" src="../../static/icons_ui/icon_login_password.svg"></image> |
|
||||
密码 |
|
||||
</view> |
|
||||
<view class="uni-input-wrapper"> |
|
||||
<input class="uni-input" placeholder="请输入密码" :password="showPassword" |
|
||||
v-model="password" /> |
|
||||
<text class="uni-icon" :class="[!showPassword ? 'uni-eye-active' : '']" |
|
||||
@click="changePassword"></text> |
|
||||
</view> |
|
||||
<!-- <view class="uni-input-wrapper"> |
|
||||
<input class="uni-input" type="password" name="password" |
|
||||
:password="showPassword" |
|
||||
placeholder="请输入密码" v-model="password"></input> |
|
||||
<text class="uni-icon" :class="[!showPassword ? 'uni-eye-active' : '']" @click="changePassword"></text> |
|
||||
</view> --> |
|
||||
|
|
||||
</view> |
|
||||
|
|
||||
</view> |
|
||||
<view class="loginbtnbox"> |
|
||||
<button @click="handelerlogin()" class="loginbtn">登录</button> |
|
||||
</view> |
|
||||
</form> |
|
||||
</view> |
|
||||
</view> |
|
||||
</view> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
import { |
|
||||
getlogin |
|
||||
} from '@/api/index.js'; |
|
||||
import jwtDecode from 'jwt-decode' |
|
||||
// import qs from 'qs' |
|
||||
import { |
|
||||
mapState, |
|
||||
mapMutations |
|
||||
} from 'vuex' |
|
||||
// import VUE from 'vue' |
|
||||
// import Base64 from 'base-64'; |
|
||||
// import vue from vue |
|
||||
export default { |
|
||||
data() { |
|
||||
return { |
|
||||
smloginmsg: "", |
|
||||
username: "", |
|
||||
password: "", |
|
||||
tapstyle: 2, |
|
||||
loading: false, |
|
||||
showPassword: true |
|
||||
} |
|
||||
}, |
|
||||
computed: mapState(['forcedLogin', 'hasLogin']), |
|
||||
mounted() { |
|
||||
uni.clearStorage(); //清除缓存 |
|
||||
if (process.env.NODE_ENV === 'development') { |
|
||||
this.username = "admin" |
|
||||
this.password = "1234qwer!@#$QWER"; |
|
||||
} |
|
||||
uni.setNavigationBarColor({ |
|
||||
frontColor: '#ffffff', |
|
||||
backgroundColor: "#476DF5 !important" |
|
||||
}) |
|
||||
}, |
|
||||
onLoad() {}, |
|
||||
methods: { |
|
||||
...mapMutations(['login']), |
|
||||
handelerlogin() { |
|
||||
if (this.username === '') { |
|
||||
uni.showToast({ |
|
||||
title: '用户名不能为空', |
|
||||
icon: 'none', |
|
||||
mask: true |
|
||||
}) |
|
||||
} else if (this.password === '') { |
|
||||
uni.showToast({ |
|
||||
title: '密码不能为空', |
|
||||
icon: 'none', |
|
||||
mask: true |
|
||||
}) |
|
||||
} else { |
|
||||
// console.log("用户名:", this.username, "密码:", this.password, this.tapstyle, this.smloginmsg) |
|
||||
let logininfo = { |
|
||||
grant_type: 'password', |
|
||||
client_id: 'Auth_App', |
|
||||
client_secret: '1q2w3E*', |
|
||||
username: "", |
|
||||
password: "" |
|
||||
} |
|
||||
if (this.tapstyle == 2) //密码登录 |
|
||||
{ |
|
||||
logininfo.username = this.username; |
|
||||
logininfo.password = this.password |
|
||||
} else if (this.tapstyle == 1) { |
|
||||
// let arr = Base64.decode(this.smloginmsg).split(':') |
|
||||
// logininfo.username = arr[0]; |
|
||||
// logininfo.password = arr[1] |
|
||||
} |
|
||||
let params = JSON.stringify(logininfo); |
|
||||
console.log('params', params); |
|
||||
// let params = qs.stringify(logininfo) |
|
||||
this.toLogin(params); |
|
||||
} |
|
||||
}, |
|
||||
toLogin(params) { |
|
||||
uni.showLoading({ |
|
||||
title: '登录中...' |
|
||||
}) |
|
||||
localStorage.setItem("token_type", 'application/json') |
|
||||
getlogin(params).then((res) => { |
|
||||
console.log("res", res) |
|
||||
this.setStorage(res); |
|
||||
if (res) { |
|
||||
this.toMain(res); |
|
||||
} else { |
|
||||
uni.showToast({ |
|
||||
title: '请求失败', |
|
||||
icon: 'none', |
|
||||
mask: true |
|
||||
}) |
|
||||
} |
|
||||
uni.hideLoading(); |
|
||||
}).catch((err) => { |
|
||||
this.loading = false; |
|
||||
if (err.message.includes('token返回的res为空')) { |
|
||||
uni.showToast({ |
|
||||
title: '无法连接到认证服务器!', |
|
||||
icon: 'none', |
|
||||
duration: 2000 |
|
||||
}); |
|
||||
} else { |
|
||||
uni.showToast({ |
|
||||
title: err.message, |
|
||||
icon: 'none', |
|
||||
duration: 2000 |
|
||||
}); |
|
||||
} |
|
||||
|
|
||||
uni.hideLoading(); |
|
||||
}) |
|
||||
// this.loading = false; |
|
||||
// uni.showToast({ |
|
||||
// title: eror.message, |
|
||||
// icon: 'none', |
|
||||
// duration: 2000 |
|
||||
// }); |
|
||||
// if (eror=='token返回的res为空') { |
|
||||
// uni.showToast({ |
|
||||
// title: '无法连接到认证服务器!', |
|
||||
// icon: 'none', |
|
||||
// duration: 2000 |
|
||||
// }); |
|
||||
// } else { |
|
||||
// uni.showToast({ |
|
||||
// title: err.message, |
|
||||
// icon: 'none', |
|
||||
// duration: 2000 |
|
||||
// }); |
|
||||
// } |
|
||||
// getlogin(params).then(res => { |
|
||||
// console.log("请求getlogin", res) |
|
||||
// console.log("res", res) |
|
||||
// this.setStorage(res); |
|
||||
// if (res) { |
|
||||
// this.toMain(res); |
|
||||
// } else { |
|
||||
// uni.showToast({ |
|
||||
// title: '请求失败', |
|
||||
// icon: 'none', |
|
||||
// mask: true |
|
||||
// }) |
|
||||
// } |
|
||||
// uni.hideLoading(); |
|
||||
// }).catch((err) => { |
|
||||
// this.loading = false; |
|
||||
// // if (err.message.includes('token返回的res为空')) { |
|
||||
// // uni.showToast({ |
|
||||
// // title: '无法连接到认证服务器!', |
|
||||
// // icon: 'none', |
|
||||
// // duration: 2000 |
|
||||
// // }); |
|
||||
// // } else { |
|
||||
// // uni.showToast({ |
|
||||
// // title: err.message, |
|
||||
// // icon: 'none', |
|
||||
// // duration: 2000 |
|
||||
// // }); |
|
||||
// // } |
|
||||
|
|
||||
// uni.hideLoading(); |
|
||||
// }) |
|
||||
}, |
|
||||
|
|
||||
setStorage(res) { |
|
||||
sessionStorage.setItem('isLogin', 1); //登录判断 |
|
||||
sessionStorage.setItem('hasLogin', true); |
|
||||
localStorage.setItem("token_type", res.token_type + ' ' + res.access_token) |
|
||||
localStorage.setItem('userName', this.username); |
|
||||
localStorage.setItem('company', this.$companyCode); |
|
||||
localStorage.setItem('warehouseCode', this.$warehouseCode); |
|
||||
var decode = jwtDecode(localStorage.getItem('token_type')) |
|
||||
localStorage.setItem('userId', decode.sub); |
|
||||
}, |
|
||||
clearStorage(res) { |
|
||||
sessionStorage.setItem('isLogin', 0); //登录判断 |
|
||||
sessionStorage.setItem('hasLogin', false); |
|
||||
localStorage.setItem("token_type", "") |
|
||||
}, |
|
||||
|
|
||||
toMain(user) { |
|
||||
console.log("user", user) |
|
||||
this.login(user); |
|
||||
uni.switchTab({ |
|
||||
url: '/pages/index/index' |
|
||||
}); |
|
||||
|
|
||||
/** |
|
||||
* 强制登录时使用reLaunch方式跳 |
|
||||
* 返回首页也是使用reLaunch方式 |
|
||||
*/ |
|
||||
// if (this.forcedLogin) //强制登录 |
|
||||
// { |
|
||||
// uni.reLaunch({ |
|
||||
// url: '../index/index' |
|
||||
// }) |
|
||||
// } else { |
|
||||
// uni.navigateBack() |
|
||||
// } |
|
||||
}, |
|
||||
tapchenge(e) { |
|
||||
this.tapstyle = e |
|
||||
}, |
|
||||
onchange(e) { |
|
||||
const value = e.detail.value |
|
||||
}, |
|
||||
onCompanyChange(company) { |
|
||||
if (company === 'IACHZ') {} else { |
|
||||
|
|
||||
} |
|
||||
}, |
|
||||
// onBackPress(e) { |
|
||||
// console.log("监听返回按钮事件", e); |
|
||||
// // 此处一定要return为true,否则页面不会返回到指定路径 |
|
||||
// return true; |
|
||||
// } |
|
||||
changePassword: function() { |
|
||||
this.showPassword = !this.showPassword; |
|
||||
}, |
|
||||
} |
|
||||
} |
|
||||
</script> |
|
||||
|
|
||||
<style> |
|
||||
page { |
|
||||
background-color: #fff; |
|
||||
} |
|
||||
|
|
||||
.content { |
|
||||
width: 100%; |
|
||||
display: flex; |
|
||||
flex-direction: column; |
|
||||
align-items: center; |
|
||||
justify-content: center; |
|
||||
background-color: #FFFFFF; |
|
||||
} |
|
||||
|
|
||||
.cs { |
|
||||
margin-bottom: 20upx; |
|
||||
} |
|
||||
|
|
||||
.mytab { |
|
||||
display: flex; |
|
||||
} |
|
||||
|
|
||||
.mytabline { |
|
||||
flex: 1; |
|
||||
text-align: center; |
|
||||
padding: 20rpx 0; |
|
||||
color: #666; |
|
||||
position: relative; |
|
||||
font-size: 0.875rem; |
|
||||
} |
|
||||
|
|
||||
.active_in { |
|
||||
color: #101010; |
|
||||
font-weight: bold; |
|
||||
} |
|
||||
|
|
||||
.active_in::after { |
|
||||
content: ""; |
|
||||
position: absolute; |
|
||||
bottom: 0; |
|
||||
left: 50%; |
|
||||
transform: translateX(-50%); |
|
||||
height: 8rpx; |
|
||||
background-color: #007AFF; |
|
||||
width: 40rpx; |
|
||||
border-radius: 8rpx; |
|
||||
} |
|
||||
|
|
||||
.loginbox { |
|
||||
box-sizing: border-box; |
|
||||
padding: 30rpx; |
|
||||
|
|
||||
} |
|
||||
|
|
||||
.loginimg { |
|
||||
width: 100%; |
|
||||
} |
|
||||
|
|
||||
.logo { |
|
||||
height: 200rpx; |
|
||||
width: 200rpx; |
|
||||
margin-left: auto; |
|
||||
margin-right: auto; |
|
||||
margin-bottom: 50rpx; |
|
||||
} |
|
||||
|
|
||||
.conone { |
|
||||
margin: 30rpx 0; |
|
||||
align-items: center; |
|
||||
} |
|
||||
|
|
||||
.conone .uni-input-wrapper { |
|
||||
position: relative; |
|
||||
} |
|
||||
|
|
||||
.conone .uni-input { |
|
||||
background-color: #F7F9FF; |
|
||||
height: 90rpx; |
|
||||
line-height: 90rpx; |
|
||||
padding: 0 0 0 20rpx; |
|
||||
} |
|
||||
|
|
||||
.conone .title { |
|
||||
font-size: .875rem; |
|
||||
align-items: center; |
|
||||
margin-bottom: 20rpx; |
|
||||
letter-spacing: 1rpx; |
|
||||
} |
|
||||
|
|
||||
.conone .title image { |
|
||||
margin-right: 6rpx; |
|
||||
} |
|
||||
|
|
||||
.uni-easyinput .is-input-border { |
|
||||
border-color: transparent !important; |
|
||||
} |
|
||||
|
|
||||
.loginbtnbox { |
|
||||
margin-top: 40rpx; |
|
||||
} |
|
||||
|
|
||||
.loginbtn { |
|
||||
color: #fff; |
|
||||
font-size: 0.875rem; |
|
||||
height: 100rpx; |
|
||||
line-height: 100rpx; |
|
||||
background: #5d66de; |
|
||||
border-radius: 8rpx; |
|
||||
border: none; |
|
||||
outline: none; |
|
||||
} |
|
||||
|
|
||||
.conone .uni-icon { |
|
||||
float: right; |
|
||||
position: absolute; |
|
||||
right: 20rpx; |
|
||||
color: #ccc; |
|
||||
font-size: 1.25rem; |
|
||||
} |
|
||||
|
|
||||
.conone .uni-eye-active { |
|
||||
color: #5a7cf3; |
|
||||
} |
|
||||
</style> |
|
Loading…
Reference in new issue