profile.vue 2.0 KB

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