Former-commit-id: 1f42a274955daf53cf70bd00781efa8c9a30aecd [formerly 1f42a274955daf53cf70bd00781efa8c9a30aecd [formerly 1f42a274955daf53cf70bd00781efa8c9a30aecd [formerly 1f42a274955daf53cf70bd00781efa8c9a30aecd [formerly 91e8a0baee40147d462bc980d9bebf36d6bceb44 [formerly af707f999d1a6d9844532a7e39998fd582ef66a1]]]]] Former-commit-id: 8b155f33da09f8a27b1b1e2fa7cbf05e63464ce9 Former-commit-id: 8407ff43bd64f93bdb42d23bdaa3a1ce5463b28a Former-commit-id: 37877392735a64d5923e5b792086bff14ff8073e [formerly 57fa25c15aa9de84e0f8d8ae3b70aae6fc3f1789] Former-commit-id: 620a5ea3e8fa2745b505b844dbacf9674f01e4dc Former-commit-id: ea6030ce9cba3cc0ab705466f3f0fd5c20d6e02e Former-commit-id: 82a7fbcc85c93771fd881d19ea333ce1c39a5238 Former-commit-id: 4f84af65b78b05ca8a6129947daee72f75721f0c Former-commit-id: d0cb9cc7318f6fb69595e188825e26bc8eb2d3bc
148 lines
4.1 KiB
Vue
148 lines
4.1 KiB
Vue
<template>
|
||
<div class="login-page">
|
||
<div class="layer bg" id="login"></div>
|
||
<div class="layer flex-center">
|
||
<!-- logo部分 -->
|
||
<div class="logo-group">
|
||
<img src="./image/logo.png" alt="logo">
|
||
</div>
|
||
<!-- 表单部分 -->
|
||
<div class="form-group">
|
||
<el-card>
|
||
<el-form ref="loginForm" label-position="top" :rules="rules" :model="formLogin">
|
||
<el-form-item prop="username">
|
||
<el-input type="text" v-model="formLogin.username" placeholder="用户名">
|
||
<i slot="prepend" class="fa fa-user-circle-o"></i>
|
||
</el-input>
|
||
</el-form-item>
|
||
<el-form-item prop="password">
|
||
<el-input type="password" v-model="formLogin.password" placeholder="密码">
|
||
<i slot="prepend" class="fa fa-keyboard-o"></i>
|
||
</el-input>
|
||
</el-form-item>
|
||
<el-form-item prop="code">
|
||
<el-input type="text" v-model="formLogin.code" placeholder="- - - -">
|
||
<template slot="prepend">验证码</template>
|
||
<template slot="append">
|
||
<img class="login-code" src="./image/login-code.png">
|
||
</template>
|
||
</el-input>
|
||
</el-form-item>
|
||
<el-button @click="submit" type="primary" class="button-login">登录</el-button>
|
||
</el-form>
|
||
</el-card>
|
||
</div>
|
||
<!-- 快速登陆按钮 -->
|
||
<el-button type="info" class="button-help" @click="dialogVisible = true">
|
||
快速选择用户(测试功能)
|
||
</el-button>
|
||
</div>
|
||
<el-dialog
|
||
title="快速选择用户"
|
||
:visible.sync="dialogVisible"
|
||
width="400px">
|
||
<el-row :gutter="10" style="margin: -20px 0px -10px 0px;">
|
||
<el-col v-for="(user, index) in users" :key="index" :span="8">
|
||
<div class="user-btn" @click="handleUserBtnClick(user)">
|
||
<d2-icon name="user-circle-o"/>
|
||
<span>{{user.name}}</span>
|
||
</div>
|
||
</el-col>
|
||
</el-row>
|
||
</el-dialog>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
/* eslint-disable */
|
||
require('particles.js')
|
||
import config from './config/default'
|
||
import { mapActions } from 'vuex'
|
||
export default {
|
||
data () {
|
||
return {
|
||
// 快速选择用户
|
||
dialogVisible: false,
|
||
users: [
|
||
{
|
||
name: '管理员',
|
||
username: 'admin',
|
||
password: 'admin'
|
||
},
|
||
{
|
||
name: '编辑',
|
||
username: 'editor',
|
||
password: 'editor'
|
||
},
|
||
{
|
||
name: '用户1',
|
||
username: 'user1',
|
||
password: 'user1'
|
||
}
|
||
],
|
||
// 表单
|
||
formLogin: {
|
||
username: 'admin',
|
||
password: 'admin',
|
||
code: 'v9am'
|
||
},
|
||
// 校验
|
||
rules: {
|
||
username: [
|
||
{ required: true, message: '请输入用户名', trigger: 'blur' }
|
||
],
|
||
password: [
|
||
{ required: true, message: '请输入密码', trigger: 'blur' }
|
||
],
|
||
code: [
|
||
{ required: true, message: '请输入验证码', trigger: 'blur' }
|
||
]
|
||
}
|
||
}
|
||
},
|
||
mounted () {
|
||
// 初始化例子插件
|
||
particlesJS('login', config)
|
||
},
|
||
methods: {
|
||
...mapActions('d2admin/account', [
|
||
'login'
|
||
]),
|
||
/**
|
||
* @description 接收选择一个用户快速登陆的事件
|
||
* @param {Object} user 用户信息
|
||
*/
|
||
handleUserBtnClick (user) {
|
||
this.formLogin.username = user.username
|
||
this.formLogin.password = user.password
|
||
this.submit()
|
||
},
|
||
/**
|
||
* @description 提交表单
|
||
*/
|
||
// 提交登陆信息
|
||
submit () {
|
||
this.$refs.loginForm.validate((valid) => {
|
||
if (valid) {
|
||
// 登陆
|
||
// 注意 这里的演示没有传验证码
|
||
// 具体需要传递的数据请自行修改代码
|
||
this.login({
|
||
vm: this,
|
||
username: this.formLogin.username,
|
||
password: this.formLogin.password
|
||
})
|
||
} else {
|
||
// 登陆表单校验失败
|
||
this.$message.error('表单校验失败')
|
||
}
|
||
})
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
@import './style.scss';
|
||
</style>
|