Login.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. <template>
  2. <el-container>
  3. <el-main>
  4. <login-bar />
  5. <router-view />
  6. <el-row class="movie-list">
  7. <el-col :md="8" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px" />
  8. <el-col :md="8" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px" />
  9. <el-col :md="8" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px">
  10. <el-row style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px; text-align: center">
  11. <el-card class="box-card">
  12. <el-tabs v-model="activeName" @tab-click="tabClick">
  13. <el-tab-pane name="login1">
  14. <span slot="label">密码登录</span>
  15. <div class="text item">
  16. <el-form ref="form" :model="userLogin" label-width="80px">
  17. <el-form-item label="帐号">
  18. <el-input
  19. v-model="userLogin.principal"
  20. placeholder="请输入手机号或邮箱"
  21. style="padding-right: 1px"
  22. clearable
  23. />
  24. </el-form-item>
  25. <el-form-item label="密码">
  26. <el-input
  27. v-model="userLogin.credential"
  28. type="password"
  29. placeholder="请输入密码"
  30. style="padding-right: 1px"
  31. clearable
  32. />
  33. </el-form-item>
  34. <el-form-item label="图形验证码" label-width="90px">
  35. <el-image :src="captchaCode" @click="getCaptcha" />
  36. <el-input
  37. v-model="userLogin.captchaCode"
  38. placeholder="请输入图形验证码"
  39. style="width: 50%; padding-right: 1px"
  40. clearable
  41. @keyup.enter.native="loginBtn"
  42. />
  43. </el-form-item>
  44. <el-form-item>
  45. <el-button type="primary" size="mini" :loading="isLoading" @click.native="loginBtn">登 入</el-button>
  46. <el-button type="plain" size="mini" @click="register">注册帐号</el-button>
  47. <el-button type="plain" size="mini" @click="forgot">忘记密码</el-button>
  48. </el-form-item>
  49. </el-form>
  50. </div>
  51. </el-tab-pane>
  52. <el-tab-pane name="login2">
  53. <span slot="label">验证码登录</span>
  54. <div class="text item">
  55. <el-form ref="form" :model="userLogin" label-width="80px">
  56. <el-input v-model="userLogin.loginType" type="hidden" value="1" />
  57. <el-form-item label="帐号">
  58. <el-input
  59. v-model="userLogin.principal"
  60. placeholder="请输入手机号或邮箱"
  61. style="padding-right: 1px"
  62. clearable
  63. />
  64. <el-button :disabled="isBtn" @click="loginVerifyCode">{{ code }}</el-button>
  65. </el-form-item>
  66. <el-form-item label="验证码">
  67. <el-input
  68. v-model="userLogin.credential"
  69. placeholder="请输入验证码"
  70. style="padding-right: 1px"
  71. clearable
  72. />
  73. </el-form-item>
  74. <el-form-item label="图形验证码" label-width="90px">
  75. <el-image :src="captchaCode" @click="getCaptcha" />
  76. <el-input
  77. v-model="userLogin.captchaCode"
  78. placeholder="请输入图形验证码"
  79. style="width: 50%; padding-right: 1px"
  80. clearable
  81. @keyup.enter.native="loginBtn"
  82. />
  83. </el-form-item>
  84. <el-form-item>
  85. <el-button type="primary" size="mini" :loading="isLoading" @click.native="loginByVerifyCode">登 入</el-button>
  86. <el-button type="plain" size="mini" @click="register">注册帐号</el-button>
  87. <el-button type="plain" size="mini" @click="forgot">忘记密码</el-button>
  88. </el-form-item>
  89. </el-form>
  90. </div>
  91. </el-tab-pane>
  92. </el-tabs>
  93. </el-card>
  94. </el-row>
  95. </el-col>
  96. </el-row>
  97. </el-main>
  98. </el-container>
  99. </template>
  100. <script>
  101. import { userMixin } from 'assets/js/mixin'
  102. import LoginBar from 'components/layout/LoginBar'
  103. export default {
  104. name: 'Login',
  105. components: {
  106. LoginBar
  107. },
  108. mixins: [userMixin],
  109. data() {
  110. return {
  111. activeName: 'login1'
  112. }
  113. },
  114. watch: {
  115. $route() {
  116. this.$router.go()
  117. }
  118. },
  119. created() {
  120. document.title = '用户登录'
  121. this.fetchPubkey(1)
  122. },
  123. methods: {
  124. tabClick(tab) {
  125. this.activeName = tab.name
  126. },
  127. register() {
  128. this.$router.push('/register')
  129. },
  130. forgot() {
  131. this.$router.push('/forgot')
  132. }
  133. }
  134. }
  135. </script>
  136. <style>
  137. /*处于手机屏幕时*/
  138. @media screen and (max-width: 768px){
  139. .movie-list {
  140. padding-top: 8px;
  141. padding-left: 0.5%;
  142. padding-right: 0.5%;
  143. }
  144. }
  145. .movie-list {
  146. padding-top: 15px;
  147. padding-left: 6%;
  148. padding-right: 6%;
  149. }
  150. </style>