product.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <template>
  2. <main>
  3. <div class="container-fluid">
  4. <div class="col-sm3"></div>
  5. <div class="col-sm6">
  6. <div class="a-spacing-top-medium"></div>
  7. <h2 style="text-align: center">Add a new Product</h2>
  8. <form action="">
  9. <!-- Category DropDown -->
  10. <div class="a-spacing-top-medium">
  11. <label for="">Category</label>
  12. <select class="a-select-option">
  13. <option v-for="category in categories" :key="category._id" :value="category._id">{{ category.type }}</option>
  14. </select>
  15. </div>
  16. <!-- Owner DropDown -->
  17. <div class="a-spacing-top-medium">
  18. <label for="">Owner</label>
  19. <select class="a-select-option">
  20. <option v-for="owner in owners" :key="owner._id" :value="owner._id">{{ owner.name }}</option>
  21. </select>
  22. </div>
  23. <!-- Title input-->
  24. <div class="a-spacing-top-medium">
  25. <label for="" style="margin-bottom: 0px;">Title</label>
  26. <input type="text" class="a-input-text" style="width: 100%"/>
  27. </div>
  28. <!-- Price input-->
  29. <div class="a-spacing-top-medium">
  30. <label for="" style="margin-bottom: 0px;">Price</label>
  31. <input type="number" class="a-input-text" style="width: 100%"/>
  32. </div>
  33. <!-- Description input-->
  34. <div class="a-spacing-top-medium">
  35. <label for="" style="margin-bottom: 0px;">Description</label>
  36. <textarea placeholder="Provide details product description" style="width: 100%"></textarea>
  37. </div>
  38. <!-- Photo input-->
  39. <div class="a-spacing-top-medium">
  40. <label for="" style="margin-bottom: 0px;">Photo</label>
  41. <div class="a-row a-spacing-top-medium">
  42. <label class="choosefile-button">
  43. <i class="fa fa-plus"></i>
  44. <input type="file" />
  45. <p style="margin-top: -70px">name of the</p>
  46. </label>
  47. </div>
  48. </div>
  49. <hr/>
  50. <!--Button-->
  51. <div class="a-spacing-top-large">
  52. <span class="a-button-register">
  53. <span class="a-button-text">Add Product</span>
  54. </span>
  55. </div>
  56. </form>
  57. </div>
  58. <div class="col-sm3"></div>
  59. </div>
  60. </main>
  61. </template>
  62. <script>
  63. export default {
  64. async asyncData( { $axios }) {
  65. try {
  66. let categories = $axios.$get('http://localhost:3000/api/categories')
  67. let owners = $axios.$get('http://localhost:3000/api/owners')
  68. const [catResponse, ownerResponse] = await Promise.all([categories, owners])
  69. console.log(catResponse)
  70. return {
  71. categories: catResponse.categories,
  72. owners: ownerResponse.owners
  73. }
  74. } catch (err) {
  75. console.log(err)
  76. }
  77. }
  78. }
  79. </script>