提交 ebbbaac5 作者: ZhangLingKun

功能:租赁商品下单显示价格

上级 c99c8736
......@@ -26,10 +26,14 @@ const UserProvider = ({ children }: Props) => {
const [needLogin, setNeedLogin] = useState<Boolean>(false); // 用于通知登录modal需要打开
useEffect(() => {
setUserInfo(JSON.parse(window.localStorage.getItem('userInfo') || '') || undefined);
window.setUserInfo = setUserInfo;
window.setNeedLogin = setNeedLogin;
window.logout = logout;
try {
setUserInfo(JSON.parse(window.localStorage.getItem('userInfo') || '') || undefined);
window.setUserInfo = setUserInfo;
window.setNeedLogin = setNeedLogin;
window.logout = logout;
} catch (e) {
/* empty */
}
}, []);
useEffect(() => {
......
......@@ -73,7 +73,7 @@ export default function EquipmentLeasingDetail() {
const [isModalOpen, setIsModalOpen] = useState(false);
const [isModalDateOpen, setIsModalDateOpen] = useState(false);
const [loading, setLoading] = useState(false);
const [isorderForGoods, setIsorderForGoods] = useState(false);
const [isOrderForGoods, setIsOrderForGoods] = useState(false);
const [form] = Form.useForm();
const [formDate] = Form.useForm();
const tagsData = [
......@@ -176,7 +176,7 @@ export default function EquipmentLeasingDetail() {
setLoading(false);
setIsModalOpen(false);
setIsModalDateOpen(false);
setIsorderForGoods(true);
setIsOrderForGoods(true);
setShopDetail({ ...result[0], ...result[1] });
}
} catch (error) {
......@@ -254,7 +254,7 @@ export default function EquipmentLeasingDetail() {
return (
<Layout>
{!isorderForGoods ? (
{!isOrderForGoods ? (
<Box>
<div className='item'>
<ImagePreview imgList={detail?.images!} />
......@@ -474,7 +474,7 @@ export default function EquipmentLeasingDetail() {
</Box>
) : (
<OrderForGoods
setIsorderForGoods={setIsorderForGoods}
setIsOrderForGoods={setIsOrderForGoods}
shopDetail={shopDetail}
days={days}
detailData={detail}
......
......@@ -14,7 +14,7 @@ import { GetWebDeviceDetailResult, GetWebDeviceWareSkuById, GetLeaseGoodsResult
const { TextArea } = Input;
interface PropsBox {
setIsorderForGoods: (boolean: boolean) => void;
setIsOrderForGoods: (boolean: boolean) => void;
detailData?: GetWebDeviceDetailResult | null;
days?: number;
shopDetail?: ShopDetail;
......@@ -23,14 +23,14 @@ interface PropsBox {
}
export default function OrderForGoods(props: PropsBox) {
const { setIsorderForGoods, shopDetail, days, detailData, wareSkuList, discount } = props;
const { setIsOrderForGoods, shopDetail, days, detailData, wareSkuList, discount } = props;
const [value, setValue] = useState(-1);
const [areaValue, setAreaValue] = useState<string>();
const [list, setList] = useState<Array<UserAddress> | null>();
const [detail, setDetail] = useState<ShopDetail>();
const onChange = (e: RadioChangeEvent) => {
console.log('radio checked', e.target.value);
// console.log('radio checked', e.target.value);
setValue(e.target.value);
};
const onChangeValue = (index: number) => {
......@@ -42,7 +42,7 @@ export default function OrderForGoods(props: PropsBox) {
if (value === -1) return message.warning('请选择地址');
if (detailData && shopDetail && list?.length && wareSkuList) {
const pushList = {
actualPay: discount?.specPrice[0]?.price! * shopDetail?.num! * days! || 0,
actualPay: getSpecPrice() * shopDetail?.num! * days! || 0,
deposit: 0,
endDate: moment(new Date(shopDetail.dateDetail[1])).format('YYYY-MM-DD'),
orderReceipt: {
......@@ -73,7 +73,7 @@ export default function OrderForGoods(props: PropsBox) {
message.success('提交成功');
setPaymentDetail(res.result);
// setIsPaymentOpen(true)
setIsorderForGoods(false);
setIsOrderForGoods(false);
} else {
message.error(res.message);
}
......@@ -85,13 +85,13 @@ export default function OrderForGoods(props: PropsBox) {
api
.listUserAddress({})
.then((res) => {
console.log(res);
// console.log(res);
setList(res.result);
const index: number = res.result?.findIndex((item) => item.type === 0) as number;
setValue(index);
})
.catch((err) => {
console.log(err);
// console.log(err);
});
if (shopDetail) {
setDetail(shopDetail);
......@@ -116,7 +116,7 @@ export default function OrderForGoods(props: PropsBox) {
if (res.code === '200') {
message.success('付款成功');
setLoading(false);
setIsorderForGoods(false);
setIsOrderForGoods(false);
handleCancel();
} else {
message.error(res.message);
......@@ -133,6 +133,19 @@ export default function OrderForGoods(props: PropsBox) {
const [isAddAddressOpen, setIsAddAddressOpen] = useState(false);
const [addressVisible, setAddressVisible] = useState(false);
// 生成价格
const getSpecPrice = () => {
const tagList = userInfo?.cooperationTagVOS?.map((i: { id: number }) => i.id) || [0];
// console.log('tagList --->', discount?.specPrice);
return (
tagList
.map((i: number) => discount?.specPrice.find((k) => k.cooperationTag === i))
// @ts-ignore
?.sort((a, b) => a.price - b.price)
?.at(0)?.price || 0
);
};
return (
<OrderForGoodsBox>
<div className='address'>
......@@ -260,7 +273,7 @@ export default function OrderForGoods(props: PropsBox) {
{moment(new Date(shopDetail?.dateDetail[1]!)).format('YYYY/MM/DD')}
</div>
<div className='body-item total-price' style={{ width: 135 }}>
{discount?.specPrice[0]?.price! * shopDetail?.num! * days! || 0}
{getSpecPrice() * shopDetail?.num! * days! || 0}
</div>
</div>
</div>
......@@ -298,9 +311,7 @@ export default function OrderForGoods(props: PropsBox) {
<div className='detail'>
<div className='top'>
<div className='label'>实付款</div>
<div className='price'>
¥{discount?.specPrice[0]?.price! * shopDetail?.num! * days! || 0}
</div>
<div className='price'>¥{getSpecPrice() * shopDetail?.num! * days! || 0}</div>
</div>
<div className='bottom'>
<div className='value'>寄送至</div>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论