Login.vue 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <template lang="html">
  2. <div id="block-userlogin" class="">
  3. <h2>{{ title }}</h2>
  4. <section>
  5. <input
  6. id="edit-name"
  7. class="form-email"
  8. type="text"
  9. v-bind:placeholder="form.ph_email" name="name"
  10. v-model="mail"
  11. @keyup.enter="login"
  12. />
  13. <input
  14. id="edit-pass"
  15. class="form-text"
  16. type="password"
  17. v-bind:placeholder="form.ph_pass" name="pass"
  18. v-model="password"
  19. @keyup.enter="login"
  20. />
  21. <button
  22. id="edit-submit"
  23. class="button"
  24. @click.stop="login"
  25. >
  26. {{ form.btn_value }}
  27. </button>
  28. <ul>
  29. <li><a
  30. v-bind:href="form.register.href"
  31. >
  32. {{ form.register.title }}
  33. </a></li>
  34. <li><a
  35. v-bind:href="form.reset.href"
  36. >
  37. {{ form.reset.title }}
  38. </a></li>
  39. </ul>
  40. </section>
  41. </div>
  42. </template>
  43. <script>
  44. // https://github.com/alvar0hurtad0/drupal-vuejs-todo
  45. import { mapState, mapActions } from 'vuex'
  46. export default {
  47. data () {
  48. return {
  49. mail: '',
  50. password: ''
  51. }
  52. },
  53. props: ['title', 'form'],
  54. computed: {
  55. ...mapState(['User'])
  56. },
  57. methods: {
  58. ...mapActions({
  59. userLogin: 'User/userLogin'
  60. }),
  61. login () {
  62. this.userLogin({
  63. mail: this.mail,
  64. pass: this.password
  65. })
  66. }
  67. }
  68. }
  69. </script>
  70. <style lang="scss" scoped>
  71. section{
  72. max-width:300px;
  73. }
  74. input{
  75. display:block;
  76. max-width:100%;
  77. margin:0.5em 0 0 0;
  78. }
  79. button{
  80. margin:0.5em 0 0 0;
  81. }
  82. ul{
  83. margin:0; padding:0.5em 0 0 0;
  84. }
  85. li{
  86. list-style:none;
  87. margin:0.5em 0 0 0; padding:0;
  88. font-size:0.882em;
  89. }
  90. a{
  91. }
  92. </style>