[마이오더스] 목데이터 추가 / 기능 구현중
This commit is contained in:
92
com.twin.app.shoptime/assets/mock/temp.json
Normal file
92
com.twin.app.shoptime/assets/mock/temp.json
Normal file
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"retCode": 0,
|
||||
"retMsg": "Success",
|
||||
"data": {
|
||||
"orderInfo": [
|
||||
{
|
||||
"mbrNo": "US2201180082892",
|
||||
"ordNo": "t8202307200126612",
|
||||
"storReqNo": null,
|
||||
"cntryCd": "US",
|
||||
"dlvrEmalAddr": "US2306190103418@email.co.kr",
|
||||
"dlvrCtpt": "00001111114",
|
||||
"dlvrOdrLnm": "ddd",
|
||||
"dlvrOdrFnm": "ffff",
|
||||
"dlvrZpcd": "12345",
|
||||
"dlvrStatNm": "fdfd",
|
||||
"dlvrCityNm": "San Francisco",
|
||||
"dlvrDtlAddr": "Lyon St, San Francisco",
|
||||
"bilEmalAddr": "billemail@email.co.kr",
|
||||
"bilCtpt": "12345",
|
||||
"bilOdrLnm": "LNM",
|
||||
"bilOdrFnm": "FNM",
|
||||
"bilZpcd": "12345",
|
||||
"bilStatNm": "STATS",
|
||||
"bilCityNm": "San Francisco",
|
||||
"bilDtlAddr": "Lyon St, San Francisco",
|
||||
"cardNo": "1234123412341234",
|
||||
"cardKnd": "[연동x]MasterCard",
|
||||
"cardVldTerm": "0912",
|
||||
"cardSecCd": "123",
|
||||
"ordPmtReqAmt": "64.15",
|
||||
"totProdPrc": "65.0",
|
||||
"totProdQty": "1",
|
||||
"totDlvrAmt": "3.5",
|
||||
"ordTotTaxAmt": "0.15",
|
||||
"totDcAmt": "1.0",
|
||||
"orderProductInfo": [
|
||||
{
|
||||
"mbrNo": "US2201180082892",
|
||||
"ordNo": "t8202307200126612",
|
||||
"cntryCd": "US",
|
||||
"patnrId": "1",
|
||||
"prdtId": "A523924",
|
||||
"prodSno": 34,
|
||||
"prodPrc": "65.0",
|
||||
"prodQty": "1",
|
||||
"taxAmt": "0.2",
|
||||
"dlvrAmt": "3.5",
|
||||
"shptmDlvrStCd": "ORD00201",
|
||||
"shptmOrdStCd": "ORD00601",
|
||||
"ordReqDtt": "2023-07-25 06:49:16",
|
||||
"cnclReqDtt": null,
|
||||
"rtunReqDtt": null,
|
||||
"intchReqDtt": null,
|
||||
"shptmChngRsnCd": null,
|
||||
"chngRsnCtnt": null,
|
||||
"prdtOpt": [
|
||||
{
|
||||
"mbrNo": "US2201180082892",
|
||||
"ordNo": "t8202307200126612",
|
||||
"cntryCd": "US",
|
||||
"patnrId": "1",
|
||||
"prdtId": "A523924",
|
||||
"prodSno": 34,
|
||||
"prodOptSno": "3",
|
||||
"prodOptCdCval": "111",
|
||||
"prodOptTpCdCval": "",
|
||||
"optNm": "Color",
|
||||
"prodOptCval": "red"
|
||||
}
|
||||
],
|
||||
"orderProductCouponInfo": [
|
||||
{
|
||||
"mbrNo": "US2201180082892",
|
||||
"ordNo": "t8202307200126612",
|
||||
"cntryCd": "US",
|
||||
"patnrId": "1",
|
||||
"prdtId": "A523924",
|
||||
"prodSno": 34,
|
||||
"cpnSno": "49",
|
||||
"cpnCdCval": "c02",
|
||||
"cpnCdSeq": "1",
|
||||
"dcAmt": "1.0"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"orderProductCoupontUse": null
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,12 @@
|
||||
import axios from "axios";
|
||||
|
||||
import tempData from "../../assets/mock/temp.json";
|
||||
import { URLS } from "../api/apiConfig";
|
||||
import { TAxios } from "../api/TAxios";
|
||||
import { types } from "./actionTypes";
|
||||
import { getTermsAgreeYn } from "./commonActions";
|
||||
|
||||
// 회원 주문 정보 조회 (IF-LGSP-340)
|
||||
// 회원 주문 정보 조회 (IF-LGSP-340) --> MOCK 데이터 사용 API 완성후 변경 2024.05.07
|
||||
export const getMyinfoOrderSearch = (params) => (dispatch, getState) => {
|
||||
const {
|
||||
mbrNo,
|
||||
@@ -21,7 +24,7 @@ export const getMyinfoOrderSearch = (params) => (dispatch, getState) => {
|
||||
|
||||
dispatch({
|
||||
type: types.GET_MY_INFO_ORDER_SEARCH,
|
||||
payload: response.data.data,
|
||||
payload: tempData,
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
@@ -8,6 +8,15 @@ import SpotlightContainerDecorator from "@enact/spotlight/SpotlightContainerDeco
|
||||
import Spottable from "@enact/spotlight/Spottable";
|
||||
|
||||
import noOrderImg from "../../../../../assets/images/img-my-info-billing@3x.png";
|
||||
// getMyinfoOrderSearch : 회원 주문 정보 조회
|
||||
// getMyinfoOrderDetailSearch : 회원 주문 상세 정보 조회
|
||||
// getMyinfoOrderShippingSearch : 회원 주문 배송 상세 정보 조회
|
||||
import {
|
||||
getMyinfoOrderDetailSearch,
|
||||
getMyinfoOrderSearch,
|
||||
getMyinfoOrderShippingSearch,
|
||||
tempGetInfo,
|
||||
} from "../../../../actions/orderActions";
|
||||
import TBody from "../../../../components/TBody/TBody";
|
||||
import TButtonTab, {
|
||||
LIST_TYPE,
|
||||
@@ -26,6 +35,8 @@ const TabContainer = SpotlightContainerDecorator(
|
||||
);
|
||||
|
||||
export default function MyOrders({ title, cbScrollTo }) {
|
||||
const { appStatus } = useSelector((state) => state.common);
|
||||
|
||||
const [selectedTab, setSelectedTab] = useState(0);
|
||||
|
||||
const [dropDownTab, setDropDownTab] = useState(0);
|
||||
@@ -39,6 +50,17 @@ export default function MyOrders({ title, cbScrollTo }) {
|
||||
const { userInfo } = useSelector(
|
||||
(state) => state.common.appStatus.loginUserData
|
||||
);
|
||||
|
||||
const orderInfoData = useSelector((state) => state.order.orderInfoData.data);
|
||||
const orderInfo = orderInfoData?.orderInfo;
|
||||
const orderProductInfo = orderInfo?.orderProductInfo;
|
||||
const orderProductCouponInfo = orderProductInfo?.orderProductCouponInfo;
|
||||
|
||||
// console.log(orderInfoData, "orderInfoData");
|
||||
// console.log(orderInfo, "orderInfo");
|
||||
// console.log(orderProductInfo, "orderProductInfo");
|
||||
// console.log(orderProductCouponInfo, "orderProductCouponInfo");
|
||||
|
||||
const handleItemClick = useCallback(
|
||||
({ index, ...rest }) => {
|
||||
console.log("#TButtonTab onItemClick", index, rest);
|
||||
@@ -50,7 +72,9 @@ export default function MyOrders({ title, cbScrollTo }) {
|
||||
const [orderPopOpen, setOrderPopOpen] = useState(false);
|
||||
const [orderTrackOpen, setOrderTrackOpen] = useState(false);
|
||||
const [orderCancelOpen, setOrderCancelOpen] = useState(false);
|
||||
|
||||
let timerRef = useRef();
|
||||
|
||||
const onClose = useCallback(() => {
|
||||
setPopOpen(true);
|
||||
}, []);
|
||||
@@ -78,6 +102,28 @@ export default function MyOrders({ title, cbScrollTo }) {
|
||||
clearTimeout(timerRef.current);
|
||||
};
|
||||
}, []);
|
||||
|
||||
// 현재 MOCK 데이터 사용
|
||||
useEffect(() => {
|
||||
if (
|
||||
appStatus &&
|
||||
appStatus.loginUserData &&
|
||||
appStatus.loginUserData.userInfo
|
||||
) {
|
||||
dispatch(
|
||||
getMyinfoOrderSearch({
|
||||
mbrNo: appStatus.loginUserData.userInfo,
|
||||
srchMonth: dropDownTab === 0 ? 3 : 6,
|
||||
})
|
||||
);
|
||||
}
|
||||
// dispatch(getMyinfoOrderShippingSearch());
|
||||
}, [dispatch, dropDownTab]);
|
||||
|
||||
const handleSelectFilter = useCallback(({ selected }) => {
|
||||
setDropDownTab(selected);
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<>
|
||||
<THeader title={title} />
|
||||
@@ -95,6 +141,7 @@ export default function MyOrders({ title, cbScrollTo }) {
|
||||
className={css.dropdown}
|
||||
selectedIndex={dropDownTab && dropDownTab}
|
||||
width="small"
|
||||
onSelect={handleSelectFilter}
|
||||
>
|
||||
{filterMethods}
|
||||
</TDropDown>
|
||||
@@ -114,8 +161,8 @@ export default function MyOrders({ title, cbScrollTo }) {
|
||||
</div> */}
|
||||
|
||||
<div className={css.orderlist}>
|
||||
{selectedTab === 0 && <OrderList />}
|
||||
{selectedTab === 1 && <CancelOrderList />}
|
||||
{selectedTab === 0 && <OrderList orderInfo={orderInfo} />}
|
||||
{selectedTab === 1 && <CancelOrderList orderInfo={orderInfo} />}
|
||||
</div>
|
||||
</div>
|
||||
</TBody>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React from "react";
|
||||
import React, { useCallback, useEffect, useState } from "react";
|
||||
|
||||
import Spottable from "@enact/spotlight/Spottable";
|
||||
|
||||
@@ -7,15 +7,38 @@ import { $L } from "../../../../../utils/helperMethods";
|
||||
import css from "./OrderList.module.less";
|
||||
|
||||
const SpottableComponent = Spottable("div");
|
||||
export default function OrderList() {
|
||||
export default function OrderList({ orderInfo }) {
|
||||
// console.log(orderInfo, "아더인포!!!");
|
||||
|
||||
const [orderInfoCount, setOrederInfoCount] = useState();
|
||||
|
||||
// 주문 취소
|
||||
const onCancel = useCallback(() => {}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (orderInfo) {
|
||||
setOrederInfoCount(orderInfo.length);
|
||||
}
|
||||
}, [orderInfo]);
|
||||
|
||||
console.log(orderInfo, "orderInfo");
|
||||
|
||||
return (
|
||||
<>
|
||||
{orderInfo &&
|
||||
orderInfo.map((order, index) => {
|
||||
return (
|
||||
<div className={css.orderBorder}>
|
||||
<div className={css.orderNmInfo}>
|
||||
<p className={css.orderTitle}>
|
||||
ORDER NUMBER : <span className={css.orderNm}>AA12349575h6</span>
|
||||
ORDER NUMBER :{" "}
|
||||
<span className={css.orderNm}>{order.ordNo}</span>
|
||||
</p>
|
||||
<TButton size="small" className={css.orderCancelBtn}>
|
||||
<TButton
|
||||
size="small"
|
||||
className={css.orderCancelBtn}
|
||||
onClick={onCancel}
|
||||
>
|
||||
{$L("Cancel order")}
|
||||
</TButton>
|
||||
</div>
|
||||
@@ -25,7 +48,9 @@ export default function OrderList() {
|
||||
<div className={css.leftBox}>
|
||||
<div className={css.topBox}>
|
||||
<h4>payment method</h4>
|
||||
<span>Mastercard / ****-1199</span>
|
||||
<span>
|
||||
{order.cardKnd} / {order.cardNo}
|
||||
</span>
|
||||
</div>
|
||||
<div className={css.underBox}>
|
||||
<h4>order date</h4>
|
||||
@@ -36,27 +61,27 @@ export default function OrderList() {
|
||||
<ul>
|
||||
<li>
|
||||
<div>item</div>
|
||||
<div>4</div>
|
||||
<div>${order?.totProdQty}</div>
|
||||
</li>
|
||||
<li>
|
||||
<div>item total</div>
|
||||
<div>$90.40</div>
|
||||
<div>{order?.totProdPrc}</div>
|
||||
</li>
|
||||
<li>
|
||||
<div>option</div>
|
||||
<div>$4.40</div>
|
||||
<div>${order?.totOptPrc}</div>
|
||||
</li>
|
||||
<li>
|
||||
<div>s&h</div>
|
||||
<div>$11.00</div>
|
||||
<div>${order?.totDlvrAmt}</div>
|
||||
</li>
|
||||
<li>
|
||||
<div>tax</div>
|
||||
<div>$5.00</div>
|
||||
<div>${order?.ordTotTaxAmt}</div>
|
||||
</li>
|
||||
<li>
|
||||
<div>coupon</div>
|
||||
<div>-$10.00</div>
|
||||
<div>-${order?.totDcAmt}</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -79,7 +104,8 @@ export default function OrderList() {
|
||||
<span className={css.orderRed}>Canceled</span>
|
||||
<span className={css.orderBlack}>Completed</span>
|
||||
*/}
|
||||
Arriving January 10~ January 15 {/* 문구 다틀릴예정 */}
|
||||
Arriving January 10~ January 15{" "}
|
||||
{/* 문구 다틀릴예정 */}
|
||||
</div>
|
||||
|
||||
<TButton size="small" className={css.orderDetailBtn}>
|
||||
@@ -91,7 +117,8 @@ export default function OrderList() {
|
||||
<div className={css.productBox}>
|
||||
<div className={css.logo}>
|
||||
<span className={css.logoImg}></span>
|
||||
IHWIP XL Everyday Essentials Crossbody with 2 Straps
|
||||
IHWIP XL Everyday Essentials Crossbody with 2
|
||||
Straps
|
||||
</div>
|
||||
<div className={css.orderPdInfo}>
|
||||
<div className={css.productImg}></div>
|
||||
@@ -144,7 +171,8 @@ export default function OrderList() {
|
||||
<span className={css.orderRed}>Canceled</span>
|
||||
<span className={css.orderBlack}>Completed</span>
|
||||
*/}
|
||||
Arriving January 10~ January 15 {/* 문구 다틀릴예정 */}
|
||||
Arriving January 10~ January 15{" "}
|
||||
{/* 문구 다틀릴예정 */}
|
||||
</div>
|
||||
|
||||
<TButton size="small" className={css.orderDetailBtn}>
|
||||
@@ -156,199 +184,8 @@ export default function OrderList() {
|
||||
<div className={css.productBox}>
|
||||
<div className={css.logo}>
|
||||
<span className={css.logoImg}></span>
|
||||
IHWIP XL Everyday Essentials Crossbody with 2 Straps
|
||||
</div>
|
||||
<div className={css.orderPdInfo}>
|
||||
<div className={css.productImg}></div>
|
||||
<div className={css.pdInfo}>
|
||||
<ul>
|
||||
<li>ID: A565145</li>
|
||||
<li>Qty: 1</li>
|
||||
<li>Silver Metallic / XL</li>
|
||||
</ul>
|
||||
<div className={css.orderAcc}>
|
||||
$38.09
|
||||
<span>|</span>
|
||||
<span>OPTION: $5.50</span>
|
||||
<span>|</span>
|
||||
<span>S&H: $5.50</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className={css.rightBox}>
|
||||
<ul>
|
||||
<li>
|
||||
<SpottableComponent className={css.divBtn}>
|
||||
VIEW CANCELLATION DETAILS
|
||||
</SpottableComponent>
|
||||
<SpottableComponent className={css.divBtn}>
|
||||
BUY IT AGAIN
|
||||
</SpottableComponent>
|
||||
<SpottableComponent className={css.divBtn}>
|
||||
VIEW CANCELLATION DETAILS
|
||||
</SpottableComponent>
|
||||
<SpottableComponent className={css.divBtn}>
|
||||
BUY IT AGAIN
|
||||
</SpottableComponent>
|
||||
{/* 버튼은 4개까지만 복사해서 쓰면댐 */}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className={css.orderBorder}>
|
||||
<div className={css.orderNmInfo}>
|
||||
<p className={css.orderTitle}>
|
||||
ORDER NUMBER : <span className={css.orderNm}>AA12349575h6</span>
|
||||
</p>
|
||||
<TButton size="small" className={css.orderCancelBtn}>
|
||||
{$L("Cancel order")}
|
||||
</TButton>
|
||||
</div>
|
||||
|
||||
<div className={css.orderInfo}>
|
||||
<div className={css.infoBox}>
|
||||
<div className={css.leftBox}>
|
||||
<div className={css.topBox}>
|
||||
<h4>payment method</h4>
|
||||
<span>Mastercard / ****-1199</span>
|
||||
</div>
|
||||
<div className={css.underBox}>
|
||||
<h4>order date</h4>
|
||||
<span>January 5, 2023</span>
|
||||
</div>
|
||||
</div>
|
||||
<div className={css.rightBox}>
|
||||
<ul>
|
||||
<li>
|
||||
<div>item</div>
|
||||
<div>4</div>
|
||||
</li>
|
||||
<li>
|
||||
<div>item total</div>
|
||||
<div>$90.40</div>
|
||||
</li>
|
||||
<li>
|
||||
<div>option</div>
|
||||
<div>$4.40</div>
|
||||
</li>
|
||||
<li>
|
||||
<div>s&h</div>
|
||||
<div>$11.00</div>
|
||||
</li>
|
||||
<li>
|
||||
<div>tax</div>
|
||||
<div>$5.00</div>
|
||||
</li>
|
||||
<li>
|
||||
<div>coupon</div>
|
||||
<div>-$10.00</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div className={css.totalAccount}>
|
||||
<div className={css.accTitle}>order total</div>
|
||||
<div className={css.accountNum}>$ 95.80</div>
|
||||
</div>
|
||||
<div className={css.orderItemList}>
|
||||
<ul>
|
||||
{/* 여기부터 아이템 리스트들 */}
|
||||
<li>
|
||||
<div className={css.topBox}>
|
||||
<div className={css.leftSmallBox}>
|
||||
<span className={css.orderGreen}>
|
||||
Preparing for shipment
|
||||
</span>
|
||||
{/* 색상별 뿌려주는 틀림.
|
||||
<span className={css.orderBlue}>Shipping</span>
|
||||
<span className={css.orderRed}>Canceled</span>
|
||||
<span className={css.orderBlack}>Completed</span>
|
||||
*/}
|
||||
Arriving January 10~ January 15 {/* 문구 다틀릴예정 */}
|
||||
</div>
|
||||
|
||||
<TButton size="small" className={css.orderDetailBtn}>
|
||||
{$L("view order details")}
|
||||
</TButton>
|
||||
</div>
|
||||
<div className={css.underBox}>
|
||||
<div className={css.leftBox}>
|
||||
<div className={css.productBox}>
|
||||
<div className={css.logo}>
|
||||
<span className={css.logoImg}></span>
|
||||
IHWIP XL Everyday Essentials Crossbody with 2 Straps
|
||||
</div>
|
||||
<div className={css.orderPdInfo}>
|
||||
<div className={css.productImg}></div>
|
||||
<div className={css.pdInfo}>
|
||||
<ul>
|
||||
<li>ID: A565145</li>
|
||||
<li>Qty: 1</li>
|
||||
<li>Silver Metallic / XL</li>
|
||||
</ul>
|
||||
<div className={css.orderAcc}>
|
||||
$38.09
|
||||
<span>|</span>
|
||||
<span>OPTION: $5.50</span>
|
||||
<span>|</span>
|
||||
<span>S&H: $5.50</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className={css.rightBox}>
|
||||
<ul>
|
||||
<li>
|
||||
<SpottableComponent className={css.divBtn}>
|
||||
VIEW CANCELLATION DETAILS
|
||||
</SpottableComponent>
|
||||
<SpottableComponent className={css.divBtn}>
|
||||
BUY IT AGAIN
|
||||
</SpottableComponent>
|
||||
<SpottableComponent className={css.divBtn}>
|
||||
VIEW CANCELLATION DETAILS
|
||||
</SpottableComponent>
|
||||
<SpottableComponent className={css.divBtn}>
|
||||
BUY IT AGAIN
|
||||
</SpottableComponent>
|
||||
{/* 버튼은 4개까지만 복사해서 쓰면댐 */}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div className={css.topBox}>
|
||||
<div className={css.leftSmallBox}>
|
||||
<span className={css.orderGreen}>
|
||||
Preparing for shipment
|
||||
</span>
|
||||
{/* 색상별 뿌려주는 틀림.
|
||||
<span className={css.orderBlue}>Shipping</span>
|
||||
<span className={css.orderRed}>Canceled</span>
|
||||
<span className={css.orderBlack}>Completed</span>
|
||||
*/}
|
||||
Arriving January 10~ January 15 {/* 문구 다틀릴예정 */}
|
||||
</div>
|
||||
|
||||
<TButton size="small" className={css.orderDetailBtn}>
|
||||
{$L("view order details")}
|
||||
</TButton>
|
||||
</div>
|
||||
<div className={css.underBox}>
|
||||
<div className={css.leftBox}>
|
||||
<div className={css.productBox}>
|
||||
<div className={css.logo}>
|
||||
<span className={css.logoImg}></span>
|
||||
IHWIP XL Everyday Essentials Crossbody with 2 Straps
|
||||
IHWIP XL Everyday Essentials Crossbody with 2
|
||||
Straps
|
||||
</div>
|
||||
<div className={css.orderPdInfo}>
|
||||
<div className={css.productImg}></div>
|
||||
@@ -394,6 +231,8 @@ export default function OrderList() {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user