MyOrdersPage.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <template>
  2. <q-page>
  3. <div class="row justify-center">
  4. <div class="col-12 col-sm-7 q-pa-md">
  5. <div class="row col-12" style="border: 1px solid gray">
  6. <div class="col-2">Product Name</div>
  7. <div class="col-2">Package Category</div>
  8. <div class="col-2">Start Date</div>
  9. <div class="col-2">Total Price</div>
  10. <div class="col-2">Payment Status</div>
  11. <div class="col-2"></div>
  12. </div>
  13. <div v-for="(item, index) in orderSummaries" v-bind:key="index">
  14. <div>
  15. <div class="text-body1" style="background-color: #d6d6d6">
  16. Order No. {{ item.orderId }} | Created On: {{ item.createdTime }}
  17. </div>
  18. <div
  19. class="row col-12 text-subtitle1"
  20. style="border: 1px solid gray"
  21. >
  22. <div class="col-2">{{ item.productName }}</div>
  23. <div class="col-2">{{ item.packageCategory }}</div>
  24. <div class="col-2">{{ item.selectedDate }}</div>
  25. <div class="col-2">CNY: {{ item.totalPrice }}</div>
  26. <div class="col-2">{{ item.orderStatus }}</div>
  27. <div class="col-2">
  28. <q-btn
  29. @click="goPage('/order-detail/' + item.orderId)"
  30. color="grey-4"
  31. text-color="primary"
  32. glossy
  33. dense
  34. unelevated
  35. icon="info"
  36. label="Order Details"
  37. />
  38. </div>
  39. </div>
  40. </div>
  41. </div>
  42. </div>
  43. </div>
  44. </q-page>
  45. </template>
  46. <script>
  47. import { ref, onMounted, getCurrentInstance, reactive } from "vue";
  48. import { api } from "boot/axios";
  49. import { useQuasar } from "quasar";
  50. export default {
  51. name: "MyOrdersPage",
  52. setup() {
  53. const instance = getCurrentInstance();
  54. const app = instance.appContext.app;
  55. const gp = app.config.globalProperties;
  56. const $q = useQuasar();
  57. const pageSize = ref(100);
  58. const currentPage = ref(1);
  59. const orderSummaries = ref([]);
  60. const totalCnt = ref(0);
  61. function whoami() {
  62. api
  63. .get("/api/v1/user/whoami")
  64. .then(function (response) {
  65. console.log("current user in user page: " + response.data);
  66. })
  67. .catch(function (error) {
  68. console.log("currently not logged in setup: " + error);
  69. gp.goPage("/");
  70. });
  71. }
  72. function loadMyOrderByPage() {
  73. var params = {};
  74. params.pageSize = pageSize.value;
  75. params.page = currentPage.value;
  76. params.query = "";
  77. api
  78. .get("/api/v1/order/myorders", {
  79. params: params,
  80. })
  81. .then(function (response) {
  82. console.log("Got my orders summary: ");
  83. console.log(response.data.data);
  84. orderSummaries.value = response.data.data.data;
  85. totalCnt.value = response.data.data.total;
  86. pageSize.value = response.data.data.pageSize;
  87. currentPage.value = response.data.data.currentPage;
  88. })
  89. .catch(function (error) {
  90. console.log("currently not logged in my order page: " + error);
  91. gp.$goPage("/auth/login");
  92. });
  93. }
  94. onMounted(() => {
  95. whoami();
  96. loadMyOrderByPage();
  97. });
  98. return {
  99. orderSummaries,
  100. };
  101. },
  102. };
  103. </script>