<!--GY歌谣控制登录页面的功能-->
<template>
<div class="main">
<div>
<h1> <img src="./geyao.png" style="width: 29px;height: 29px;margin-right: 10px;line-height: 29px" alt="">星传经管系统</h1>
</div>
<!-- <h1>欢迎登录</h1>-->
<div class="login-head">
<div class="login-form">
<!--登录的用户名-->
<el-form :model="form" label-width="40px">
<el-form-item label="用户">
<el-input v-model="form.account" />
</el-form-item>
<!--登录的密码-->
<el-form-item label="密码" >
<el-input v-model="form.password" show-password/>
</el-form-item>
<el-form-item>
<!--登录按钮 登录的时候调用方法-->
<el-button
type="primary"
style="display: block; width: 100%"
@click="login"
>
登录
</el-button>
</el-form-item>
</el-form>
</div>
</div>
<mode-selection-dialog ref="mode" @select="modeSelected" />
</div>
</template>
<script>
import Vue from "vue";
/*状态管理*/
import store from "@/store";
/*引入调用的方法*/
import { postAction } from "@/api";
import {ACCESS_MODE, ACCESS_TOKEN} from "@/store/KeyConstants";
import { HOME_PATH } from "@/router/staticRoutes";
import { SET_USER, SET_DEPARTMENT, SET_MODE } from "@/store/mutation-types";
/*引入封装的组件 登录框组件*/
import ModeSelectionDialog from "./ModeSelectionDialog";
export default {
name: "Login",
components: { ModeSelectionDialog },
data() {
return {
/*登录界面存储账号和密码*/
form: {
/*存储账号*/
account: "",
/*存储密码*/
password: ""
},
url: {
login: "/user/login"
}
};
},
created() {
},
methods: {
/*登录的方法*/
login() {
/*第一个参数传入要跳转的链接地址 第一个传入数据参数*/
postAction(this.url.login, this.form).then(res => {
if (res.code === 0) {
/* /!*设置token令牌*!/*/
Vue.ls.set(ACCESS_TOKEN, res.data.access_token);
/*Vue.ls.set(ACCESS_MODE, res.data.mode);*/
/* /!*获取user的数据*!/*/
const user = res.data.user;
const dept = user.department;
const properties = dept.property.split(",");
/* 所有的状态开始存储到vuex*/
store.commit(SET_USER, {
name: user.name,
role: user.role
});
store.commit(SET_DEPARTMENT, {
id: dept.id,
name: dept.name,
property: properties
});
// select mode
if (!properties || properties.length === 0) {
this.$message.error("请设定部门属性!");
} else if (properties.length === 1) {
this.modeSelected(properties[0]);
} else if (properties.length === 2) {
this.$refs["mode"].show();
} else {
this.$message.error("部门属性错误!");
console.error(res);
}
} else {
this.$message.warning("用户名或密码错误!");
}
}).catch(error => {
console.log(error);
}
);
},
modeSelected(mode) {
/* if(mode==0){
store.commit(SET_MODE, mode);
this.$router.push(HOME_PATH);
Vue.ls.set(ACCESS_MODE,mode);
}else{
store.commit(SET_MODE, mode);
this.$router.push(HOME_PATH);
Vue.ls.set(ACCESS_MODE,mode);
}*/
/*只使用一个路由*/
store.commit(SET_MODE, mode);
this.$router.push(HOME_PATH);
Vue.ls.set(ACCESS_MODE,mode);
},
}
};
</script>
<style lang="scss" scoped>
.main {
position: fixed;
left: 0;
top: 0;
right: 0;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
background: url("./login_bg.jpg") no-repeat;
background-size: cover;
.login-form{
background-color: #F5F5F5;
padding: 50px;
min-width: 300px;
}
}
</style>
初始样式

浙公网安备 33010602011771号