Login.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <!--登录界面-->
  2. <template>
  3. <div class="login">
  4. <header class="login-header" :style="{background:loginJson[0].BrackgroupStr}">
  5. <h1>分布式视频处理系统</h1>
  6. </header>
  7. <section class="login-content">
  8. <h2>用户登录</h2>
  9. <el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="55px" class="login-form">
  10. <el-form-item label="用户名" prop="username">
  11. <el-input v-model="ruleForm.username" prefix-icon="el-icon-user"></el-input>
  12. </el-form-item>
  13. <el-form-item label="密码" prop="password">
  14. <el-input type="password" v-model="ruleForm.password" autocomplete="off" prefix-icon="el-icon-lock"></el-input>
  15. </el-form-item>
  16. <el-form-item>
  17. <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button>
  18. <el-button @click="resetForm('ruleForm')">重置</el-button>
  19. </el-form-item>
  20. </el-form>
  21. </section>
  22. </div>
  23. </template>
  24. <script>
  25. import '../assets/less/login.less'
  26. import loginJson from '../../../static/EnityLogin'
  27. export default {
  28. data() {
  29. const checkUsername = (rule, value, callback) => {
  30. if (!value) {
  31. return callback(new Error('用户名不能为空'))
  32. }
  33. }
  34. const validatePasswrod = (rule, value, callback) => {
  35. if (value === '') {
  36. callback(new Error('请输入密码'))
  37. }
  38. }
  39. return {
  40. ruleForm: {
  41. username: '',
  42. password: '',
  43. },
  44. rules: {
  45. username: [
  46. { validator: checkUsername, trigger: 'blur' }
  47. ],
  48. password: [
  49. { validator: validatePasswrod, trigger: 'blur' }
  50. ]
  51. },
  52. loginJson
  53. }
  54. },
  55. methods: {
  56. submitForm() {
  57. const {username,password} = this.ruleForm
  58. if(username === '' || password === ''){
  59. this.$message.warning('请输入用户名和密码!')
  60. return
  61. }
  62. if(username === 'admin' && password === '123'){
  63. const user = {username,password}
  64. // 将user保存到vuex的state
  65. this.$store.dispatch('saveUser', user)
  66. // 去管理界面
  67. this.$router.replace('/admin')
  68. }else {
  69. this.$message.error('用户名或密码错误!')
  70. }
  71. },
  72. resetForm(formName) {
  73. this.$refs[formName].resetFields()
  74. }
  75. }
  76. }
  77. </script>
  78. <style lang="less">
  79. /*.login {
  80. width: 100%;
  81. height: 980px;
  82. background-image: url('../assets/images/bg.jpg');
  83. background-size: 100% 100%;
  84. .login-header {
  85. display: flex;
  86. align-items: center;
  87. height: 80px;
  88. background-color: rgba(21, 20, 13, 0.5);
  89. img {
  90. width: 40px;
  91. height: 40px;
  92. margin: 0 15px 0 50px;
  93. }
  94. h1 {
  95. font-size: 30px;
  96. color: white;
  97. margin-left:20px;
  98. }
  99. }
  100. .login-content {
  101. width: 400px;
  102. height: 300px;
  103. background-color: #fff;
  104. margin: 50px auto;
  105. padding: 20px 40px;
  106. border-radius: 2px;
  107. h2 {
  108. text-align: center;
  109. font-size: 30px;
  110. font-weight:bold;
  111. margin-bottom: 20px;
  112. }
  113. .login-form {
  114. .login-form-button {
  115. width: 100%;
  116. }
  117. }
  118. }
  119. }*/
  120. </style>