diff options
Diffstat (limited to 'client/src/views')
-rw-r--r-- | client/src/views/Orders.vue | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/client/src/views/Orders.vue b/client/src/views/Orders.vue new file mode 100644 index 0000000..9eb121e --- /dev/null +++ b/client/src/views/Orders.vue @@ -0,0 +1,49 @@ +<template> + <div class="row mt-5 d-flex justify-content-center"> + <div class="col-md-6"> + <div v-if="orders"> + <div v-for="order in orders" :key="order._id" class="card bg-dark text-white mb-3"> + <div class="card-header">Order made: {{ getDate(order) }}</div> + <div class="card-body"> + <ul class="list-group"> + <li v-for="item in order.items" :key="item.productId" + class="list-group-item d-flex justify-content-between align-items-start"> + <div class="me-auto" v-text="item.name"></div> + <span class="badge bg-dark rounded-circle" v-text="item.quantity"></span> + </li> + </ul> + </div> + <div class="card-footer"> + Delivering to: {{ getShipping(order) }} + </div> + </div> + </div> + <div v-else class="card text-center fw-bold"> + You currently have no orders. + </div> + </div> + </div> +</template> + +<script> +export default { + name: 'Orders', + mounted() { + this.$store.dispatch('pullUserOrders'); + }, + computed: { + orders() { + return this.$store.getters.getUserOrders; + } + }, + methods: { + getDate(order) { + let dt = new Date(order.updatedAt); + return `${dt.getUTCDay()}.${dt.getUTCMonth()}.${dt.getUTCFullYear()}. ${dt.getUTCHours()}:${dt.getUTCMinutes()} UTC`; + }, + getShipping(order) { + return Object.values(order.shipping.address).join(", "); + } + } +} +</script> |