|
|
|
<template>
|
|
|
|
<view class="page">
|
|
|
|
<view class="top">
|
|
|
|
<img src="@/static/login/banner.jpg" alt="">
|
|
|
|
<view class="tops">
|
|
|
|
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<view class="items">
|
|
|
|
<view class="title">
|
|
|
|
<img mode="widthFix" src="@/static/login/title.png" alt="">
|
|
|
|
<view class="text">
|
|
|
|
欢迎登录防消一体化综合治理平台
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="item">
|
|
|
|
<view class="label">
|
|
|
|
账号
|
|
|
|
</view>
|
|
|
|
<view class="input">
|
|
|
|
<input v-model="form.name" type="text" placeholder="请输入账号">
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="item">
|
|
|
|
<view class="label">
|
|
|
|
密码
|
|
|
|
</view>
|
|
|
|
<view class="input">
|
|
|
|
<input v-model="form.password" type="password" placeholder="请输入密码">
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="item">
|
|
|
|
<!-- <label>
|
|
|
|
<checkbox :value="form.auto" /><text>自动登录</text>
|
|
|
|
</label> -->
|
|
|
|
</view>
|
|
|
|
<view class="button">
|
|
|
|
<button @tap="getUserInfo()">登录</button>
|
|
|
|
<!-- <button @tap="getToken()">登录</button> -->
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
|
|
|
|
</view>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
import store from '@/store.js'
|
|
|
|
export default {
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
title: 'Hello',
|
|
|
|
|
|
|
|
form: {
|
|
|
|
name: "",
|
|
|
|
password: "",
|
|
|
|
auto: false,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
onLoad() {
|
|
|
|
if (store.state.token) {
|
|
|
|
console.log(store.state.token);
|
|
|
|
uni.reLaunch({
|
|
|
|
url: "/pages/index/index",
|
|
|
|
success: res => {},
|
|
|
|
fail: () => {},
|
|
|
|
complete: () => {},
|
|
|
|
})
|
|
|
|
}
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
getUserInfo() {
|
|
|
|
let body = {}
|
|
|
|
if (!this.form.name) {
|
|
|
|
return this.$alert.showError("请输入用户账号")
|
|
|
|
}
|
|
|
|
if (!this.form.password) {
|
|
|
|
return this.$alert.showError("请输入密码")
|
|
|
|
}
|
|
|
|
uni.showLoading({
|
|
|
|
title: '登录中',
|
|
|
|
});
|
|
|
|
const that = this
|
|
|
|
this.$request.post("/api/Accounts/SignIn", {
|
|
|
|
username: this.form.name,
|
|
|
|
password: this.form.password
|
|
|
|
}, (data, res) => {
|
|
|
|
uni.hideLoading();
|
|
|
|
if (res.status == "401") {
|
|
|
|
return this.$alert.showError("用户名或密码错误")
|
|
|
|
}
|
|
|
|
uni.setStorageSync("token", res)
|
|
|
|
this.$store.commit('saveToken', res)
|
|
|
|
console.log(store.state.token);
|
|
|
|
that.$request.get("/api/Accounts/Profile", {}, (data, res) => {
|
|
|
|
console.log(res);
|
|
|
|
uni.setStorageSync("user", res)
|
|
|
|
uni.reLaunch({
|
|
|
|
url: "/pages/index/index",
|
|
|
|
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
// return
|
|
|
|
|
|
|
|
})
|
|
|
|
},
|
|
|
|
getToken() {
|
|
|
|
let user = store.state.token
|
|
|
|
this.$request.post("/api/Accounts/RefreshToken",{token:user.token,refreshToken:user.refreshToken},(data,res)=>{
|
|
|
|
console.log(res);
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="scss">
|
|
|
|
.page {
|
|
|
|
background-color: #FAFBFF;
|
|
|
|
color: #808080;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
.top {
|
|
|
|
width: 100%;
|
|
|
|
height: 200rpx;
|
|
|
|
position: absolute;
|
|
|
|
|
|
|
|
img {
|
|
|
|
width: 100%;
|
|
|
|
height: 200rpx;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.tops {
|
|
|
|
height: 40rpx;
|
|
|
|
border-radius: 20rpx 20rpx 0 0;
|
|
|
|
position: relative;
|
|
|
|
z-index: 10;
|
|
|
|
background-color: #FAFBFF;
|
|
|
|
bottom: 30rpx;
|
|
|
|
left: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.items {
|
|
|
|
// width: 100%;
|
|
|
|
margin: 0 60rpx;
|
|
|
|
|
|
|
|
.title {
|
|
|
|
/* width: 748rpx; */
|
|
|
|
// height: 68rpx;
|
|
|
|
// line-height: 68rpx;
|
|
|
|
// font-size: 50rpx;
|
|
|
|
// font-weight: 500;
|
|
|
|
// color: #317AFF;
|
|
|
|
margin: 240rpx 0 60rpx 0;
|
|
|
|
|
|
|
|
.text {
|
|
|
|
margin-top: 20rpx;
|
|
|
|
font-size: 30rpx;
|
|
|
|
text-align: center;
|
|
|
|
color: #939393;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
button {
|
|
|
|
width: 100%;
|
|
|
|
// height: 140rpx;
|
|
|
|
// background: linear-gradient(180deg, #317AFF 0%, #0052E6 100%);
|
|
|
|
color: #fff;
|
|
|
|
border-radius: 120rpx;
|
|
|
|
background: #4963F4;
|
|
|
|
box-shadow: 2px 6px 8px 1px rgba(73, 99, 244, 0.8);
|
|
|
|
}
|
|
|
|
|
|
|
|
.item {
|
|
|
|
margin: 60rpx 0;
|
|
|
|
|
|
|
|
.label {
|
|
|
|
font-size: 32rpx;
|
|
|
|
// color: rgba(16, 15, 25, 0.48);
|
|
|
|
margin-bottom: 30rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
label {
|
|
|
|
color: #4963F4;
|
|
|
|
|
|
|
|
checkbox {
|
|
|
|
border: #4963F4;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.input {
|
|
|
|
// border-bottom: 2rpx solid rgba(16, 15, 25, 0.16);
|
|
|
|
height: 80rpx;
|
|
|
|
background: #ECF2FF;
|
|
|
|
|
|
|
|
input {
|
|
|
|
height: 100%;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</style>
|