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 @@
+
+
+
+
+
+ {{ orderInfo.storeName }}
+
+
+
+
+ {{ orderInfo.orderStatus | getOrderStatusName }}
+
+
+ 주문번호: {{ orderInfo.id }}
+
+
+ 주문일시: {{ orderInfo.orderTime }}
+
+
+
+
+
+
+
+
+
+ {{order.name}} {{order.count}}개
+
+
+ ㄴ {{order.options}}
+
+
+
+
+ {{order.totalPrice | currency}}원
+
+
+
+
+
+
+
+
+
+
+ | 합계 |
+ {{orderInfo.orderPrice | currency}} |
+
+
+ | 포인트사용 |
+ 0 |
+
+
+ | 쿠폰 할인 |
+ 0 |
+
+
+ | 결제금액 |
+ {{orderInfo.orderPrice | currency}} |
+
+
+
+
+
+
+
+
+
+
+
\ 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;