login.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. <template>
  2. <div class='full-screen flex flex-center '>
  3. <el-card class='login'>
  4. <div class='flex flex-center' style='width: 100%'>
  5. <div class='flex-child-average flex flex-center left'>
  6. <div class='flex flex-justify-start flex-align-start full-height '>
  7. <img src='@/assets/img/logo.png' class='padding-14 logo'/>
  8. <img src='https://hooray.gitee.io/fantastic-admin-example/assets/login-banner.a565fac8.png' class='logo-main' />
  9. </div>
  10. </div>
  11. <div class='flex-child-average right'>
  12. <div class='padding-20'>
  13. <span class='font-24 black bold '>欢迎来到梧桐树云项目管理云平台👏</span>
  14. <el-form class='form' :model="form" :rules="rules" ref='loginForm'>
  15. <el-form-item prop='name'>
  16. <el-input
  17. v-model='form.name'
  18. size='large'
  19. placeholder="用户名"
  20. prefix-icon="Avatar"
  21. />
  22. </el-form-item>
  23. <el-form-item prop='pass'>
  24. <el-input
  25. v-model='form.pass'
  26. size='large'
  27. placeholder="密码"
  28. :type='flag ? "text" : "password"'
  29. prefix-icon="WalletFilled">
  30. <template v-slot:suffix>
  31. <div @click='flag=!flag' class='pointer'>
  32. <el-icon v-if='!flag'><Hide /></el-icon>
  33. <el-icon v-else><View /></el-icon>
  34. </div>
  35. </template>
  36. </el-input>
  37. </el-form-item>
  38. <el-form-item>
  39. <div class='flex flex-align-center flex-justify-between full-width'>
  40. <el-checkbox :checked='true'>记住我</el-checkbox>
  41. <el-button type='text' class='font-12'>忘记密码?</el-button>
  42. </div>
  43. </el-form-item>
  44. </el-form>
  45. <el-button type='primary' class='full-width' size='large' @click='submint'>登录</el-button>
  46. <div class='mt-20 flex flex-center'>
  47. <span>还没账户?</span>
  48. <el-button type='text'>注册账户</el-button>
  49. </div>
  50. <el-divider/>
  51. <div class='flex flex-col'>
  52. <span class='grey-6'>
  53. 由梧桐经济学院提供技术支持
  54. </span>
  55. <div>
  56. <el-button size='small' type='primary' plain class='mt-10' @click='loginAdmin'>admin</el-button>
  57. </div>
  58. </div>
  59. </div>
  60. </div>
  61. </div>
  62. </el-card>
  63. </div>
  64. </template>
  65. <route>
  66. {
  67. meta: {
  68. layout: 'empty',
  69. },
  70. }
  71. </route>
  72. <script>
  73. export default {
  74. name: 'login',
  75. data () {
  76. return {
  77. flag: false,
  78. form: {
  79. name: '',
  80. pass: ''
  81. },
  82. rules: {
  83. name: [
  84. { required: true, message: '请输入用户名', trigger: 'blur' },
  85. { min: 3, max: 12, message: '长度在 3 到 12 个字符', trigger: 'blur' }
  86. ],
  87. pass: [
  88. { required: true, message: '请输入密码', trigger: 'blur' },
  89. { min: 3, max: 12, message: '长度在 3 到 12 个字符', trigger: 'blur' }
  90. ]
  91. }
  92. }
  93. },
  94. methods: {
  95. submint () {
  96. this.$refs.loginForm.validate((res) => {
  97. if (res) {
  98. this.$message.success('登录成功')
  99. this.$router.replace('/')
  100. } else {
  101. this.$message.error('登录失败')
  102. return false
  103. }
  104. })
  105. },
  106. loginAdmin () {
  107. this.form.name = 'admin'
  108. this.form.pass = 'admin'
  109. this.submint()
  110. }
  111. }
  112. }
  113. </script>
  114. <style lang='scss' scoped>
  115. .login{
  116. :deep(.el-card__body){
  117. padding: 0 !important;
  118. };
  119. padding: 0;
  120. display: flex;
  121. top: 50%;
  122. left: 50%;
  123. border-radius: 10px;
  124. background-color: white;
  125. width: 950px;
  126. height: 500px;
  127. .left {
  128. background-color: #F5F7FA;
  129. height: 500px;
  130. .logo {
  131. width: 45px;
  132. height: 45px;
  133. border-radius: 50%;
  134. }
  135. .logo-main {
  136. width: 100%;
  137. margin-top: 70px;
  138. margin-left: -80px;
  139. }
  140. }
  141. .right {
  142. background-color: white;
  143. height: 500px;
  144. .form{
  145. margin-top: 40px;
  146. }
  147. }
  148. }
  149. </style>