增加测试平台功能,系统设置,支持多个角色,分配菜单
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(() => {})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
<div class="location-title"><h1>注册</h1></div>
|
||||
|
||||
<el-form ref="ruleForm" :model="ruleForm" status-icon :rules="rules" label-width="100px" class="demo-ruleForm">
|
||||
<el-form-item label="学号" prop="studentId">
|
||||
<el-input v-model="ruleForm.studentId" type="text" placeholder="学号" autocomplete="off"></el-input>
|
||||
<el-form-item label="用户名" prop="username">
|
||||
<el-input v-model.trim="ruleForm.username" type="text" placeholder="用户名" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="密码" prop="password">
|
||||
<el-input v-model="ruleForm.password" type="password" placeholder="密码" autocomplete="off"></el-input>
|
||||
@@ -14,22 +14,17 @@
|
||||
<el-form-item label="确认密码" prop="checkPass">
|
||||
<el-input v-model="ruleForm.checkPass" type="password" placeholder="确认密码" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="姓名" prop="name">
|
||||
<el-input v-model="ruleForm.name" placeholder="姓名" autocomplete="off"></el-input>
|
||||
<el-form-item label="手机号" prop="mobile">
|
||||
<el-input v-model.trim="ruleForm.mobile" placeholder="手机号" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="性别" prop="gender">
|
||||
<el-input v-model="ruleForm.gender" placeholder="性别" autocomplete="off"></el-input>
|
||||
<el-form-item label="邮箱" prop="email">
|
||||
<el-input v-model.trim="ruleForm.email" type="text" placeholder="邮箱" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="学院" prop="faculty">
|
||||
<el-input v-model="ruleForm.faculty" type="text" placeholder="学院" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="年级" prop="grade">
|
||||
<el-input v-model="ruleForm.grade" type="text" placeholder="年级" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-form-item class="register-actions">
|
||||
<el-button class="enter-btn" type="primary" :disabled="!select" @click="submitForm('ruleForm')">
|
||||
立即注册
|
||||
</el-button>
|
||||
<el-button class="login-link-btn" type="text" @click="goLogin">去登录</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
@@ -61,9 +56,9 @@ export default {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
const validateStudentId = (rule, value, callback) => {
|
||||
const validateUsername = (rule, value, callback) => {
|
||||
if (value === '') {
|
||||
callback(new Error('请输入学号'))
|
||||
callback(new Error('请输入用户名'))
|
||||
return
|
||||
}
|
||||
callback()
|
||||
@@ -72,22 +67,16 @@ export default {
|
||||
return {
|
||||
select: true,
|
||||
ruleForm: {
|
||||
studentId: '',
|
||||
username: '',
|
||||
password: '',
|
||||
checkPass: '',
|
||||
name: '',
|
||||
gender: '',
|
||||
faculty: '',
|
||||
grade: ''
|
||||
mobile: '',
|
||||
email: ''
|
||||
},
|
||||
rules: {
|
||||
studentId: [{ required: true, validator: validateStudentId, trigger: 'blur' }],
|
||||
username: [{ required: true, validator: validateUsername, trigger: 'blur' }],
|
||||
password: [{ required: true, validator: validatePass, trigger: 'blur' }],
|
||||
checkPass: [{ required: true, validator: validatePass2, trigger: 'blur' }],
|
||||
name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
|
||||
gender: [{ required: true, message: '请输入性别', trigger: 'blur' }],
|
||||
faculty: [{ required: true, message: '请输入学院', trigger: 'blur' }],
|
||||
grade: [{ required: true, message: '请输入年级', trigger: 'blur' }]
|
||||
checkPass: [{ required: true, validator: validatePass2, trigger: 'blur' }]
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -99,18 +88,17 @@ export default {
|
||||
},
|
||||
handleRegister() {
|
||||
Register({
|
||||
studentId: this.ruleForm.studentId,
|
||||
username: this.ruleForm.username,
|
||||
password: this.ruleForm.password,
|
||||
name: this.ruleForm.name,
|
||||
gender: this.ruleForm.gender,
|
||||
faculty: this.ruleForm.faculty,
|
||||
grade: this.ruleForm.grade
|
||||
mobile: this.ruleForm.mobile,
|
||||
email: this.ruleForm.email,
|
||||
createdBy: 1
|
||||
}).then(data => {
|
||||
if (data.code === 200 && data.success === 'true') {
|
||||
if (data && data.id) {
|
||||
this.open('注册成功')
|
||||
this.$router.push({ name: 'login' })
|
||||
} else {
|
||||
this.open(data.message)
|
||||
this.open(data.message || '注册失败')
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -120,6 +108,9 @@ export default {
|
||||
this.handleRegister()
|
||||
}
|
||||
})
|
||||
},
|
||||
goLogin() {
|
||||
this.$router.push({ name: 'login' })
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -140,4 +131,20 @@ export default {
|
||||
float: left;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.register-actions .el-form-item__content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.login-link-wrap {
|
||||
width: 100%;
|
||||
margin-top: 8px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.login-link-btn {
|
||||
padding-right: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user