diff --git a/customer-vue/src/api/order.js b/customer-vue/src/api/order.js index 5ed1612..aae068c 100644 --- a/customer-vue/src/api/order.js +++ b/customer-vue/src/api/order.js @@ -24,5 +24,7 @@ export default { getOrder() { return axios.get(process.env.VUE_APP_ORDER_API_URL + "/order/orders"); }, - + getOrderDetail(orderId) { + return axios.get(process.env.VUE_APP_CUSTOMER_SERVICE_BASEURL + "/order-service/api/order-detail/" + orderId); + } } \ No newline at end of file diff --git a/customer-vue/src/components/OrderHistoryCard.vue b/customer-vue/src/components/OrderHistoryCard.vue index 4ae1f59..3d354ec 100644 --- a/customer-vue/src/components/OrderHistoryCard.vue +++ b/customer-vue/src/components/OrderHistoryCard.vue @@ -12,7 +12,7 @@ - {{ card.orderStatus }} + {{ card.orderStatus | getOrderStatusName }}
{{ card.orderItemNames }} @@ -50,6 +50,7 @@ export default { name: "OrderHistoryCard", props: { card: { + orderId: String, storeId: Number, storeName: String, orderTime: String, @@ -66,7 +67,10 @@ export default { }) }, clickDetail: function() { - alert("준비 중입니다."); + this.$router.push({ + name: "order-detail", + params: {orderId: this.card.orderId} + }); } } } diff --git a/customer-vue/src/main.js b/customer-vue/src/main.js index 9f625bf..3f7aea6 100644 --- a/customer-vue/src/main.js +++ b/customer-vue/src/main.js @@ -19,10 +19,29 @@ axios.interceptors.request.use(function (config) { config.headers.Authorization = "Bearer " + jwt.getToken(); return config; }); + Vue.filter('currency', function (value) { var num = new Number(value); return num.toFixed(0).replace(/(\d)(?=(\d{3})+(?:\.\d+)?$)/g, "$1,") }); +Vue.filter('getOrderStatusName', function (orderStatus) { + switch (orderStatus) { + case "PLACED": + return "주문신청"; + case "ACCEPTED": + return "주문수락"; + case "REJECTED": + return "주문거절"; + case "WAITING": + return "픽업대기"; + case "FINISHED": + return "픽업완료"; + case "FAILED": + return "주문실패"; + default: + break; + } +}); axios.interceptors.response.use( (response) => { @@ -43,6 +62,8 @@ axios.interceptors.response.use( alert("권한이 없습니다. 다시 로그인 해주세요"); return Promise.reject(error2); } + } else { + if (error.response.data.message) alert(error.response.data.message); } return Promise.reject(error); } diff --git a/customer-vue/src/router/router.js b/customer-vue/src/router/router.js index 21be65f..67027e7 100644 --- a/customer-vue/src/router/router.js +++ b/customer-vue/src/router/router.js @@ -82,6 +82,13 @@ const routes = [ name: 'mypage', component: () => import('../views/MyPage') }, + { + path: "/order-detail/:orderId", + beforeEnter: authCheck, + name: 'order-detail', + props: true, + component: () => import('../views/OrderDetail') + }, ] }, { diff --git a/customer-vue/src/views/OrderDetail.vue b/customer-vue/src/views/OrderDetail.vue new file mode 100644 index 0000000..7c1e299 --- /dev/null +++ b/customer-vue/src/views/OrderDetail.vue @@ -0,0 +1,137 @@ + + + + + \ No newline at end of file diff --git a/customer-vue/src/views/OrderHistory.vue b/customer-vue/src/views/OrderHistory.vue index 8b6f055..63831ee 100644 --- a/customer-vue/src/views/OrderHistory.vue +++ b/customer-vue/src/views/OrderHistory.vue @@ -51,14 +51,10 @@ export default { methods: { search: async function() { this.isLoading = true; - try { - this.page = 0; - const response = await orderApi.requestOrderHistory(this.page); - this.cards = []; - this.renderCard(response.data); - } catch (error) { - console.log(error); - } + this.page = 0; + const response = await orderApi.requestOrderHistory(this.page); + this.cards = []; + this.renderCard(response.data); this.isLoading = false; }, more: async function() { @@ -85,19 +81,11 @@ export default { storeId: order.storeId, storeName: order.storeName, orderPrice: order.orderPrice, - orderStatus: this.getOrderStatusName(order.orderStatus), + orderStatus: order.orderStatus, orderItemNames: this.getOrderItemName(order.orderItems) }) }); }, - getOrderStatusName(orderStatus) { - if (orderStatus === "PLACED") return "주문신청"; - if (orderStatus === "REJECTED") return "주문거절"; - if (orderStatus === "ACCEPTED") return "주문수락"; - if (orderStatus === "WAITING") return "픽업대기"; - if (orderStatus === "FINISHED") return "픽업완료"; - return orderStatus; - }, getOrderItemName(orderItems) { const itemSize = orderItems.length; if (itemSize == 1) return orderItems[0].orderItemName;