Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <template>
  2. <main id="main">
  3. <section id="intro">
  4. <div class="container">
  5. <div class="row justify-content-center">
  6. <div class="col-md-8">
  7. <div class="intro-content">
  8. <div class="col-10 mx-auto">
  9. <div class="card card-signin my-5">
  10. <div class="card-body">
  11. <h3 class="card-title text-center">Login</h3>
  12. <div v-if="error">
  13. <alert
  14. :text="'User doesn\'t exist or Username and Password is incorrect'"
  15. :type="'ERROR'"
  16. />
  17. </div>
  18. <div v-if="page">
  19. <alert :text="page.text" :type="'INFO'" />
  20. </div>
  21. <div class="form-label-group">
  22. <input
  23. type="text"
  24. id="inputEmail"
  25. v-model="username"
  26. class="form-control"
  27. placeholder="Username"
  28. required
  29. autofocus
  30. />
  31. </div>
  32. <div class="form-label-group">
  33. <input
  34. type="password"
  35. placeholder="Password"
  36. v-model="password"
  37. id="inputPassword"
  38. class="form-control"
  39. required
  40. />
  41. </div>
  42. <div class="custom-control custom-checkbox mb-3">
  43. <input type="checkbox" class="custom-control-input" id="customCheck1" />
  44. <label class="custom-control-label" for="customCheck1"
  45. >Remember password?</label
  46. >
  47. </div>
  48. <button v-on:click="Login()" class="btn-solid-blue" type="submit">
  49. LOGIN
  50. </button>
  51. <router-link style="float:right" to="/user/forgotPassword"
  52. >Forgot Password?</router-link
  53. >
  54. </div>
  55. </div>
  56. </div>
  57. </div>
  58. </div>
  59. </div>
  60. </div>
  61. <carousel
  62. :nav="false"
  63. :dots="false"
  64. :items="1"
  65. :autoplay="true"
  66. :loop="true"
  67. id="intro-carousel"
  68. style="margin-top:-50px"
  69. :responsive="{ 0: { items: 1, nav: false }, 600: { items: 1, nav: false } }"
  70. >
  71. <img class="item" src="/img/intro-carousel/home-1.jpg" alt="" />
  72. <img class="item" src="/img/intro-carousel/home-2.jpg" alt="" />
  73. <img class="item" src="/img/intro-carousel/home-3.jpg" alt="" />
  74. <img class="item" src="/img/intro-carousel/home-4.jpg" alt="" />
  75. <img class="item" src="/img/intro-carousel/home-5.jpg" alt="" />
  76. <img class="item" src="/img/intro-carousel/home-6.jpg" alt="" />
  77. </carousel>
  78. </section>
  79. </main>
  80. </template>
  81. <script>
  82. /* eslint-disable */
  83. import { mapActions, mapState } from "vuex";
  84. import alert from "../shared/alert.vue";
  85. import Log from "../../assets/Log";
  86. import carousel from "vue-owl-carousel";
  87. export default {
  88. name: "Login",
  89. components: {
  90. carousel,
  91. alert
  92. },
  93. props: {
  94. page: {}
  95. },
  96. data() {
  97. return {
  98. username: "",
  99. password: "",
  100. isPasswordShown: "password",
  101. selectItems: [{ text: "password", value: 0 }],
  102. selectErrors: "Some error with the field",
  103. select: null,
  104. textErrors: "Some error with the field",
  105. text: "",
  106. showPassword: false,
  107. email: "",
  108. troubleToggle: false,
  109. error: false
  110. };
  111. },
  112. computed: {
  113. ...mapState("authentication", ["token", "status"])
  114. },
  115. mounted() {
  116. this.checkUserStatus();
  117. },
  118. methods: {
  119. ...mapActions("authentication", ["login", "init", "logout"]),
  120. ToggleTrouble() {
  121. if (this.troubleToggle) {
  122. this.troubleToggle = false;
  123. } else this.troubleToggle = true;
  124. },
  125. Login() {
  126. this.login({ username: this.username, password: this.password })
  127. .then(() => {
  128. // console.log(Log.getUser());
  129. if (!this.page) {
  130. if (!Log.getUser().loginPasswordChange) {
  131. this.$router.push("/");
  132. } else {
  133. this.$router.push("/user/changePasswordOnLogin");
  134. }
  135. } else {
  136. this.$router.push(this.page.pageRedirect);
  137. }
  138. })
  139. .catch(err => {
  140. this.error = true;
  141. });
  142. },
  143. checkUserStatus() {
  144. if (Log.isLoggedIn()) {
  145. this.logout();
  146. this.$router.go();
  147. }
  148. },
  149. togglePassword() {
  150. this.showPassword = true;
  151. this.isPasswordShown = "text";
  152. },
  153. passwordToggled() {
  154. this.showPassword = false;
  155. this.isPasswordShown = "password";
  156. },
  157. SendMail() {},
  158. routerGoTo(goTo) {
  159. this.$router.push(goTo);
  160. }
  161. }
  162. };
  163. </script>
  164. <style lang="scss" scoped></style>