提交 ebbbaac5 作者: ZhangLingKun

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

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