增加测试平台功能,系统设置,支持多个角色,分配菜单
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
<span class="ct-img-yhm"> </span>
|
||||
<input
|
||||
id="username"
|
||||
v-model="username"
|
||||
v-model.trim="username"
|
||||
name="username"
|
||||
class="input_text"
|
||||
tabindex="1"
|
||||
@@ -20,7 +20,8 @@
|
||||
type="text"
|
||||
size="25"
|
||||
autocomplete="off"
|
||||
placeholder="学号">
|
||||
placeholder="用户名"
|
||||
@keyup.enter="handleLogin">
|
||||
</div>
|
||||
<div class="ct_input" style="height:60px;width: 254px">
|
||||
<span class="ct_img_mm"> </span>
|
||||
@@ -34,14 +35,13 @@
|
||||
type="password"
|
||||
size="25"
|
||||
autocomplete="off"
|
||||
placeholder="密码">
|
||||
placeholder="密码"
|
||||
@keyup.enter="handleLogin">
|
||||
</div>
|
||||
<input class="btn_login" value="登录" @click="handleLogin">
|
||||
</div>
|
||||
<div class="account-oprate clearfix">
|
||||
<router-link :to="{ name: 'register' }">
|
||||
<a class="regist-btn">注册</a>
|
||||
</router-link>
|
||||
<router-link :to="{ name: 'register' }" class="regist-btn">注册</router-link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -49,31 +49,70 @@
|
||||
|
||||
<script>
|
||||
import { Login } from '@/api/Userapi'
|
||||
import { getRoleList } from '@/api/rbacApi'
|
||||
|
||||
export default {
|
||||
name: 'Login',
|
||||
data() {
|
||||
return {
|
||||
msg: ' ',
|
||||
username: null,
|
||||
password: null
|
||||
msg: '',
|
||||
username: '',
|
||||
password: ''
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handleLogin() {
|
||||
if (!this.username || !this.password) {
|
||||
this.msg = 'username、password 为必传参数'
|
||||
return
|
||||
}
|
||||
Login({
|
||||
studentId: this.username,
|
||||
username: this.username,
|
||||
password: this.password
|
||||
}).then(data => {
|
||||
if (data.code === 200 && data.success === 'true') {
|
||||
localStorage.setItem('userinfo', JSON.stringify(data.data.userinfo))
|
||||
localStorage.setItem('Token', data.data.token)
|
||||
this.$store.commit('SetRole', data.data.userinfo.userStatus)
|
||||
}).then(res => {
|
||||
if (res && res.code === 20000) {
|
||||
const data = res.data || {}
|
||||
const user = {
|
||||
id: data.id,
|
||||
username: data.username,
|
||||
realName: data.real_name,
|
||||
mobile: data.mobile,
|
||||
email: data.email,
|
||||
avatar: data.avatar,
|
||||
status: data.status,
|
||||
lastLoginTime: data.last_login_time,
|
||||
createdBy: data.created_by,
|
||||
createdTime: data.created_time,
|
||||
updatedTime: data.updated_time,
|
||||
roleIds: data.role_ids || []
|
||||
}
|
||||
localStorage.setItem('authUser', JSON.stringify(user))
|
||||
if (data.token) {
|
||||
localStorage.setItem('accessToken', data.token)
|
||||
} else {
|
||||
localStorage.removeItem('accessToken')
|
||||
}
|
||||
this.$store.commit('SetCurrentUser', user)
|
||||
this.$store.commit('SetRole', user.roleIds)
|
||||
this.$store.commit('SetUserMenus', [])
|
||||
this.loadUserMenus(user)
|
||||
this.msg = ''
|
||||
this.$message.success('登录成功')
|
||||
this.$router.push({ path: '/effekt' })
|
||||
} else {
|
||||
this.msg = data.message
|
||||
this.msg = (res && res.message) || '用户名或密码错误!'
|
||||
}
|
||||
})
|
||||
},
|
||||
loadUserMenus(user) {
|
||||
const roleId = user && user.roleIds && user.roleIds.length ? user.roleIds[0] : undefined
|
||||
if (!roleId) {
|
||||
return
|
||||
}
|
||||
getRoleList({ roleId }).then(res => {
|
||||
const menus = res && Array.isArray(res.data) ? res.data : []
|
||||
this.$store.commit('SetUserMenus', menus)
|
||||
}).catch(() => {})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user