Commit 76b137af authored by GuanHua's avatar GuanHua

feat:渠道商品下单

parent f1839341
...@@ -81,6 +81,15 @@ const shopRoute = { ...@@ -81,6 +81,15 @@ const shopRoute = {
component: '@/pages/lxMall/purchaseOrder', component: '@/pages/lxMall/purchaseOrder',
}, },
{ {
// 渠道订单
path: `/channelmall/order`,
name: 'order',
key: 'order',
hide: true,
hideHeader: true,
component: '@/pages/lxMall/order',
},
{
path: '/noAuth', path: '/noAuth',
component: '@/pages/403', component: '@/pages/403',
}, },
......
...@@ -55,7 +55,7 @@ interface imgItemType { ...@@ -55,7 +55,7 @@ interface imgItemType {
const CommodityDetail = (props) => { const CommodityDetail = (props) => {
const { query: { id } } = props.location const { query: { id } } = props.location
const { shopInfo = {}, layoutType, memberId } = props const { shopInfo = {}, layoutType, memberId, shopUrlParam } = props
const OrderStore = useLocalStore(() => store.OrderStore) const OrderStore = useLocalStore(() => store.OrderStore)
const { updateOrderInfo } = OrderStore const { updateOrderInfo } = OrderStore
const [addSuccessVisible, setAddSuccessVisible] = useState<boolean>(false) const [addSuccessVisible, setAddSuccessVisible] = useState<boolean>(false)
...@@ -299,7 +299,7 @@ const CommodityDetail = (props) => { ...@@ -299,7 +299,7 @@ const CommodityDetail = (props) => {
}] }]
} }
updateOrderInfo(buyOrderInfo, sessionKey).then(() => { updateOrderInfo(buyOrderInfo, sessionKey).then(() => {
history.push(`/order?spam_id=${sessionKey}&scence=prompt`) history.push(`${layoutType === LAYOUT_TYPE.channel ? '/channelmall' : ''}/order?spam_id=${sessionKey}&scence=prompt${layoutType === LAYOUT_TYPE.channel ? '&channelId=' + shopUrlParam : ''}`)
}) })
clickFlag = true clickFlag = true
} else { } else {
...@@ -514,7 +514,7 @@ const CommodityDetail = (props) => { ...@@ -514,7 +514,7 @@ const CommodityDetail = (props) => {
let result = true let result = true
let newSelectAttrVal = JSON.parse(JSON.stringify(selectAttrVal)) let newSelectAttrVal = JSON.parse(JSON.stringify(selectAttrVal))
if (selectAttrVal.length > 0) { if (selectAttrVal.length > 0) {
newSelectAttrVal.pop() // newSelectAttrVal.pop()
if (commodityDetail?.unitPriceAndPicList) { if (commodityDetail?.unitPriceAndPicList) {
let tempList = [] let tempList = []
for (let item of commodityDetail?.unitPriceAndPicList) { for (let item of commodityDetail?.unitPriceAndPicList) {
...@@ -726,7 +726,7 @@ const CommodityDetail = (props) => { ...@@ -726,7 +726,7 @@ const CommodityDetail = (props) => {
<span>种商品</span> <span>种商品</span>
</div> </div>
</div> </div>
<div className={cx(styles.add_success_btn, styles.primary)} onClick={() => history.push('/purchaseOrder')}>去结算</div> <div className={cx(styles.add_success_btn, styles.primary)} onClick={() => history.push(`${layoutType === LAYOUT_TYPE.channel ? '/channelmall' : ''}/purchaseOrder${layoutType === LAYOUT_TYPE.channel ? '?channelId=' + shopUrlParam : ''}`)}>去结算</div>
<div className={styles.add_success_btn} onClick={() => setAddSuccessVisible(false)}>继续购物</div> <div className={styles.add_success_btn} onClick={() => setAddSuccessVisible(false)}>继续购物</div>
</div> </div>
<InterestedCommodity /> <InterestedCommodity />
......
...@@ -5,7 +5,7 @@ import { LAYOUT_TYPE } from '@/constants' ...@@ -5,7 +5,7 @@ import { LAYOUT_TYPE } from '@/constants'
interface ShopHeaderPropsType { interface ShopHeaderPropsType {
title?: string; title?: string;
type: LAYOUT_TYPE; type?: LAYOUT_TYPE;
logoUrl?: string; logoUrl?: string;
shopUrlParam?: string; shopUrlParam?: string;
} }
...@@ -18,7 +18,7 @@ const CommonHeader: React.FC<ShopHeaderPropsType> = (props) => { ...@@ -18,7 +18,7 @@ const CommonHeader: React.FC<ShopHeaderPropsType> = (props) => {
let link = '/' let link = '/'
switch (type) { switch (type) {
case LAYOUT_TYPE.channel: case LAYOUT_TYPE.channel:
link = `/channelmall?id=${shopUrlParam}` link = `/channelmall?channelId=${shopUrlParam}`
break break
case LAYOUT_TYPE.mall: case LAYOUT_TYPE.mall:
case LAYOUT_TYPE.shop: case LAYOUT_TYPE.shop:
...@@ -33,9 +33,9 @@ const CommonHeader: React.FC<ShopHeaderPropsType> = (props) => { ...@@ -33,9 +33,9 @@ const CommonHeader: React.FC<ShopHeaderPropsType> = (props) => {
<div className={styles.common_header}> <div className={styles.common_header}>
<div className={styles.common_header_container}> <div className={styles.common_header_container}>
<div className={styles.logo}> <div className={styles.logo}>
<Link to={getHomeLink()}> {/* <Link to={getHomeLink()}> */}
<img src={logoUrl} /> <img src={logoUrl} />
</Link> {/* </Link> */}
</div> </div>
<div className={styles.common_header_split}></div> <div className={styles.common_header_split}></div>
<div className={styles.common_header_title}>{title}</div> <div className={styles.common_header_title}>{title}</div>
......
...@@ -26,7 +26,7 @@ const SideNav: React.FC<SideNavPropsType> = (props) => { ...@@ -26,7 +26,7 @@ const SideNav: React.FC<SideNavPropsType> = (props) => {
let link = '/purchaseOrder' let link = '/purchaseOrder'
switch (type) { switch (type) {
case LAYOUT_TYPE.channel: case LAYOUT_TYPE.channel:
link = `/channelmall/purchaseOrder?id=${shopUrlParam}` link = `/channelmall/purchaseOrder?channelId=${shopUrlParam}`
break break
default: default:
link = '/purchaseOrder' link = '/purchaseOrder'
......
...@@ -15,12 +15,18 @@ import styles from './index.less' ...@@ -15,12 +15,18 @@ import styles from './index.less'
import { PublicApi } from '@/services/api' import { PublicApi } from '@/services/api'
import { GetLogisticsReceiverAddressGetResponse } from '@/services/LogisticsApi' import { GetLogisticsReceiverAddressGetResponse } from '@/services/LogisticsApi'
import { isEmpty } from 'lodash' import { isEmpty } from 'lodash'
import { LAYOUT_TYPE } from '@/constants'
interface OrderPropsType { interface OrderPropsType {
location: any location: any;
shopInfo: any;
mallInfo: any;
layoutType: LAYOUT_TYPE;
} }
const Order: React.FC<OrderPropsType> = (props) => { const Order: React.FC<OrderPropsType> = (props) => {
const { shopInfo, mallInfo, layoutType } = props
console.log(shopInfo, "shopInfo")
const { spam_id } = props.location.query const { spam_id } = props.location.query
const OrderStore = useLocalStore(() => store.OrderStore) const OrderStore = useLocalStore(() => store.OrderStore)
const { clearOrderInfo, getOrderInfo } = OrderStore const { clearOrderInfo, getOrderInfo } = OrderStore
...@@ -53,7 +59,11 @@ const Order: React.FC<OrderPropsType> = (props) => { ...@@ -53,7 +59,11 @@ const Order: React.FC<OrderPropsType> = (props) => {
for (let orderItem of item.orderList) { for (let orderItem of item.orderList) {
let resData: any = {} let resData: any = {}
if (orderItem.logistics?.sendAddress) { if (orderItem.logistics?.sendAddress) {
try {
resData = await PublicApi.getLogisticsShipperAddressGet({ id: orderItem.logistics.sendAddress }) resData = await PublicApi.getLogisticsShipperAddressGet({ id: orderItem.logistics.sendAddress })
} catch (error) {
console.log(error)
}
} }
message.destroy() message.destroy()
orderItem.logisticsInfo = resData.data || {} orderItem.logisticsInfo = resData.data || {}
...@@ -62,7 +72,7 @@ const Order: React.FC<OrderPropsType> = (props) => { ...@@ -62,7 +72,7 @@ const Order: React.FC<OrderPropsType> = (props) => {
item.orderList = tempOrderList item.orderList = tempOrderList
result.push(item) result.push(item)
} }
console.log(result, "result")
setOrderList(result) setOrderList(result)
setOrderInfo(sessionOrderInfo) setOrderInfo(sessionOrderInfo)
setSpinningState(false) setSpinningState(false)
...@@ -131,7 +141,7 @@ const Order: React.FC<OrderPropsType> = (props) => { ...@@ -131,7 +141,7 @@ const Order: React.FC<OrderPropsType> = (props) => {
return return
} }
let params: any = { let params: any = {
orderModel: 5, // 下单模式 orderModel: layoutType === LAYOUT_TYPE.channel ? 12 : 5, // 下单模式
deliveryAddresId: selectAddressInfo.id, deliveryAddresId: selectAddressInfo.id,
addresName: selectAddressInfo.receiverName, addresName: selectAddressInfo.receiverName,
isDefault: selectAddressInfo.isDefault, isDefault: selectAddressInfo.isDefault,
...@@ -184,7 +194,10 @@ const Order: React.FC<OrderPropsType> = (props) => { ...@@ -184,7 +194,10 @@ const Order: React.FC<OrderPropsType> = (props) => {
return orderInfo && ( return orderInfo && (
<Spin spinning={spinningState}> <Spin spinning={spinningState}>
<div className={styles.order}> <div className={styles.order}>
<CommonHeader title="订单结算" /> <CommonHeader
logoUrl={layoutType === LAYOUT_TYPE.channel ? shopInfo?.logo : mallInfo.logoUrl}
title="订单结算"
/>
<div className={styles.order_container}> <div className={styles.order_container}>
{ {
orderInfo.logistics.deliveryType === 1 && ( orderInfo.logistics.deliveryType === 1 && (
......
...@@ -19,11 +19,12 @@ import { isEmpty } from 'lodash' ...@@ -19,11 +19,12 @@ import { isEmpty } from 'lodash'
interface PurchaseOrderPropsType { interface PurchaseOrderPropsType {
layoutType: LAYOUT_TYPE, layoutType: LAYOUT_TYPE,
shopInfo: GetTemplateChannelFindChannelResponse, shopInfo: GetTemplateChannelFindChannelResponse,
shopUrlParam: string shopUrlParam: string,
mallInfo: any
} }
const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => { const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
const { layoutType, shopInfo, shopUrlParam } = props const { layoutType, shopInfo, shopUrlParam, mallInfo } = props
const OrderStore = useLocalStore(() => store.OrderStore) const OrderStore = useLocalStore(() => store.OrderStore)
const { updateOrderInfo } = OrderStore const { updateOrderInfo } = OrderStore
const [indeterminate, setIndeterminate] = useState<boolean>(false) const [indeterminate, setIndeterminate] = useState<boolean>(false)
...@@ -511,7 +512,7 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => { ...@@ -511,7 +512,7 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
<CommonHeader <CommonHeader
title="我的进货单" title="我的进货单"
type={layoutType} type={layoutType}
logoUrl={layoutType === LAYOUT_TYPE.channel ? shopInfo?.logo : GlobalConfig.global.logo} logoUrl={layoutType === LAYOUT_TYPE.channel ? shopInfo?.logo : mallInfo.logoUrl}
shopUrlParam={shopUrlParam} shopUrlParam={shopUrlParam}
/> />
<div className={styles.purchase_order_title}> <div className={styles.purchase_order_title}>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment