profile.vue 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <template>
  2. <main>
  3. <div class="container-fluid c-section">
  4. <div class="row">
  5. <div class="col-sm-3"></div>
  6. <div class="col-sm-6">
  7. <div class="a-spacing-top-medium"></div>
  8. <h2>Profile Page</h2>
  9. <a @click="onLogout" href="#">logout</a>
  10. <form action="">
  11. <!-- Name -->
  12. <div class="a-spacing-top-medium">
  13. <label for="">Name</label>
  14. <input
  15. v-model="name"
  16. :placeholder="$auth.$state.user.name"
  17. type="text" class="a-input-text" />
  18. </div>
  19. <!-- Email -->
  20. <div class="a-spacing-top-medium">
  21. <label for="">Email</label>
  22. <input
  23. v-model="email"
  24. :placeholder="$auth.$state.user.email"
  25. type="text" class="a-input-text" />
  26. </div>
  27. <!-- Password -->
  28. <div class="a-spacing-top-medium">
  29. <label for="">password</label>
  30. <input type="password" class="a-input-text" />
  31. </div>
  32. <hr/>
  33. <!--Button-->
  34. <div class="a-spacing-top-large">
  35. <span class="a-button-register">
  36. <span @click="onUpdateProfile" class="a-button-text">Update Profile</span>
  37. </span>
  38. </div>
  39. </form>
  40. <br/>
  41. </div>
  42. <div class="col-sm-3"></div>
  43. </div>
  44. </div>
  45. </main>
  46. </template>
  47. <script>
  48. export default {
  49. data () {
  50. return {
  51. name: '',
  52. email: ''
  53. }
  54. },
  55. methods: {
  56. async onUpdateProfile () {
  57. try {
  58. let data = {
  59. name: this.name,
  60. password: this.password,
  61. email: this.email
  62. }
  63. let response = await this.$axios.$put('/api/auth/user', data)
  64. if (response.success) {
  65. this.name = ''
  66. this.password = ''
  67. this.email = ''
  68. await this.$auth.fetchUser()
  69. }
  70. } catch (err) {
  71. console.log(err)
  72. }
  73. },
  74. async onLogout() {
  75. this.$auth.logout()
  76. }
  77. }
  78. }
  79. </script>