diff --git a/src/pages/shopping/components/colorKindItem/index.tsx b/src/pages/shopping/components/colorKindItem/index.tsx index e8effa2..ba68529 100644 --- a/src/pages/shopping/components/colorKindItem/index.tsx +++ b/src/pages/shopping/components/colorKindItem/index.tsx @@ -48,7 +48,14 @@ let ColorKindItem: FC = props => { type: ShoppingDispatchType.UPDATE_CHANGED_CHECKBOX, data: { purchaserId: purchaserId, - multipleSelection: { ...state?.multipleSelection, [itemData.id]: itemData }, + multipleSelection: { ...state?.multipleSelection, [itemData.id]: { + id: itemData?.id, + estimate_amount: itemData.estimate_amount, + product_code: itemData.product_code, + product_color_code: itemData.product_color_code, + sale_mode: itemData.sale_mode, + count: itemData.sale_mode === EnumSaleMode.Bulk ? itemData.roll : Number(formatMeterDiv(itemData.length)), + } }, }, }) } @@ -69,7 +76,6 @@ let ColorKindItem: FC = props => { const getInputValue = debounce(async (num, itemData) => { console.log('num===>', num) const targetColor: Record = { - product_color_id: itemData.product_color_id, roll: 0, length: 0, } @@ -81,10 +87,6 @@ let ColorKindItem: FC = props => { targetColor.length = formatMeterMul(num) } const res = await fetchData({ - // color_list: [targetColor], - // purchaser_id: purchaserId, - // sale_mode: itemData.sale_mode, - // sale_offset: itemData.sale_offset, id: itemData.id, roll: targetColor.roll, length: targetColor.length, @@ -93,9 +95,11 @@ let ColorKindItem: FC = props => { state?.Observer?.notify(purchaserId) } }, 460) + const labAndImgObj = useCallback(item => { return { lab: item.lab, rgb: item.rgb, texture_url: item.product_color_texture_url } }, []) + return ( = props => { // 统计已选条数 / 米数 const lengthOrRollChecked = useMemo(() => { + console.log('lengthOrRollChecked item',multipleSelection); if (!multipleSelection || isEmptyObject(multipleSelection)) return 0 return ( Object.values(multipleSelection).reduce((prev, item: Goods) => { - if (item.sale_mode === selected) { + if (selected === EnumSaleMode.Bulk) { return prev + item.count } return prev }, 0) || 0 ) - }, [multipleSelection, currentCheckedPurchaserId, selected, itemData]) + }, [multipleSelection, currentCheckedPurchaserId, selected]) const [isPending, startTransition] = useTransition() const { fetchData } = ShoppingCartListApi() @@ -148,6 +149,7 @@ let ShoppingCartItem: FC = props => { // 发布订阅 useEffect(() => { + console.log('update multipleSelection',multipleSelection); const unsubscribe = state?.Observer?.subscribe(async id => { if (itemData?.purchaser_id !== id) return console.log('request new data start run') @@ -189,13 +191,15 @@ let ShoppingCartItem: FC = props => { product_code: newGoodsKind[id].product_code, product_color_code: newGoodsKind[id].product_color_code, sale_mode: newGoodsKind[id].sale_mode, - count: selected === EnumSaleMode.Bulk ? newGoodsKind[id].roll : Number(formatMeterDiv(newGoodsKind[id].length)), + count: newGoodsKind[id].count, }, ]), ), }, }) setItemData(() => res.data[0]) + }else{ + alert.error('请求失败') } }) // 取消订阅 @@ -218,7 +222,7 @@ let ShoppingCartItem: FC = props => { 已选 {materialChecked} 种面料,{colorChecked} 个颜色,共{' '} - {selected === EnumSaleMode.Bulk ? `${lengthOrRollChecked} 条` : `${lengthOrRollChecked} 米`} + {selected === EnumSaleMode.Bulk ? `${lengthOrRollChecked} 条` : `${formatMeterDiv(lengthOrRollChecked).toLocaleString()} 米`} diff --git a/src/pages/shopping/context/index.ts b/src/pages/shopping/context/index.ts index 592136f..43379e9 100644 --- a/src/pages/shopping/context/index.ts +++ b/src/pages/shopping/context/index.ts @@ -40,6 +40,8 @@ export type Goods = { estimate_amount: number // 预估金额 count: number // 已选的条数或米数 sale_mode: EnumSaleMode + roll?: number + length?: number } // 分组 export interface GoodsMeta { diff --git a/src/pages/shopping/index.tsx b/src/pages/shopping/index.tsx index 0bc1bac..b501dac 100644 --- a/src/pages/shopping/index.tsx +++ b/src/pages/shopping/index.tsx @@ -259,30 +259,5 @@ const ShoppingCartContainer: FC = () => { ) } -// interface ScrollListPropType { -// height: string -// } -// const ScrollList = memo((props) => { -// const { height } = props -// const [shoppingCartData, setShoppingCartData] = useState<{ list: ShoppingCartData[]; total: number }>({ list: [], total: 0 }) - -// //数据加载状态 -// const statusMore = useMemo(() => { -// return dataLoadingStatus({ list: shoppingCartData.list, total: shoppingCartData.total, status: state.loading }) -// }, [shoppingCartData, state]) - -// return ( -// -// -// -// {!!shoppingCartData?.list?.length && -// shoppingCartData?.list?.map((item, index) => { -// return -// })} -// -// -// -// ) -// }) export default Shopping