Commit 1f63d6c4 authored by XieZhiXiong's avatar XieZhiXiong

fix: 新增换货发货的非空判断

parent 75a9a23e
/*
* @Author: XieZhiXiong
* @Date: 2020-11-04 17:22:07
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-12-14 19:55:14
* @Description:
*/
import React, { useState } from 'react';
import { Button, message } from 'antd';
import { history } from 'umi';
import { PublicApi } from '@/services/api';
import { FormOutlined } from '@ant-design/icons';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
import VerifyModal from '../../components/VerifyModal';
interface ReturnAddress {
/**
* 收货地址id
*/
receiveId: number;
/**
* 收货地址
*/
receiveAddress: string;
/**
* 收货者名称
*/
receiveUserName: string;
/**
* 收货者电话
*/
receiveUserTel: string;
};
interface ExchangeAddress {
/**
* 配送方式
*/
deliveryType: number;
/**
* 发货地址id
*/
sendId: number;
/**
* 发货地址
*/
sendAddress: string;
/**
* 发货者名称
*/
sendUserName: string;
/**
* 发货者电话
*/
sendUserTel: string;
};
const ExchangePrSubmitVerify: React.FC = () => {
const { id } = usePageStatus();
const [visible, setVisible] = useState(false);
const [confirmLoading, setConfirmLoading] = useState(false);
const [exchangeAddress, setExchangeAddress] = useState<ExchangeAddress>(null);
const [returnAddress, setReturnAddress] = useState<ReturnAddress>(null);
const handleSubmitVerify = (info, returnAddress, exchangeAddress) => {
// 退货方式为 物流,并且退货收货地址为空时
if (
info.returnGoodsAddress.deliveryType === 1 &&
!returnAddress
) {
message.error('请选择退货收货地址');
return;
}
if (
exchangeAddress &&
exchangeAddress.deliveryType === 1 &&
!exchangeAddress.id
) {
message.error('请选择换货发货地址');
return;
}
if (
exchangeAddress &&
exchangeAddress.deliveryType === 2 &&
!exchangeAddress.id
) {
message.error('请选择换货自提地址');
return;
}
if (returnAddress) {
setReturnAddress({
receiveId: returnAddress.id,
receiveAddress: returnAddress.receiveAddress,
receiveUserName: returnAddress.receiveUserName,
receiveUserTel: returnAddress.receiveUserTel,
});
}
if (exchangeAddress) {
setExchangeAddress({
deliveryType: exchangeAddress.deliveryType,
sendId: exchangeAddress.id,
sendAddress: exchangeAddress.sendAddress,
sendUserName: exchangeAddress.sendUserName,
sendUserTel: exchangeAddress.sendUserTel,
});
}
setVisible(true);
};
const handleSubmit = values => {
if (!id) {
return;
}
setConfirmLoading(true);
PublicApi.postAsReplaceGoodsSubmitVerify({
applyId: id,
...values,
...(exchangeAddress || {}),
...(returnAddress || {}),
}).then(res => {
if (res.code === 1000) {
history.goBack();
}
}).finally(() => {
setConfirmLoading(false);
});
};
return (
<>
<DetailInfo
id={id}
target="/memberCenter/payandSettle/creditApplication/quotaFormQuery/detail"
headExtra={(info, returnAddress, exchangeAddress) => (
<Button
type="primary"
icon={<FormOutlined />}
onClick={() => handleSubmitVerify(info, returnAddress, exchangeAddress)}
>
提交审核
</Button>
)}
isEdit
/>
<VerifyModal
visible={visible}
confirmLoading={confirmLoading}
onSubmit={handleSubmit}
onVisible={() => setVisible(false)}
/>
</>
);
};
/*
* @Author: XieZhiXiong
* @Date: 2020-11-04 17:22:07
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-12-28 09:50:08
* @Description:
*/
import React, { useState } from 'react';
import { Button, message } from 'antd';
import { history } from 'umi';
import { PublicApi } from '@/services/api';
import { FormOutlined } from '@ant-design/icons';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
import VerifyModal from '../../components/VerifyModal';
interface ReturnAddress {
/**
* 收货地址id
*/
receiveId: number;
/**
* 收货地址
*/
receiveAddress: string;
/**
* 收货者名称
*/
receiveUserName: string;
/**
* 收货者电话
*/
receiveUserTel: string;
};
interface ExchangeAddress {
/**
* 配送方式
*/
deliveryType: number;
/**
* 发货地址id
*/
sendId: number;
/**
* 发货地址
*/
sendAddress: string;
/**
* 发货者名称
*/
sendUserName: string;
/**
* 发货者电话
*/
sendUserTel: string;
};
const ExchangePrSubmitVerify: React.FC = () => {
const { id } = usePageStatus();
const [visible, setVisible] = useState(false);
const [confirmLoading, setConfirmLoading] = useState(false);
const [exchangeAddress, setExchangeAddress] = useState<ExchangeAddress>(null);
const [returnAddress, setReturnAddress] = useState<ReturnAddress>(null);
const handleSubmitVerify = (info, returnAddress, exchangeAddress) => {
// 退货方式为 物流,并且退货收货地址为空时
if (
info.returnGoodsAddress.deliveryType === 1 &&
!returnAddress
) {
message.error('请选择退货收货地址');
return;
}
if (!exchangeAddress) {
message.error('请选择换货收货地址相关');
return;
}
if (
exchangeAddress &&
!exchangeAddress.deliveryType
) {
message.error('请选择换货配送方式');
return;
}
if (
exchangeAddress &&
exchangeAddress.deliveryType === 1 &&
!exchangeAddress.id
) {
message.error('请选择换货发货地址');
return;
}
if (
exchangeAddress &&
exchangeAddress.deliveryType === 2 &&
!exchangeAddress.id
) {
message.error('请选择换货自提地址');
return;
}
if (returnAddress) {
setReturnAddress({
receiveId: returnAddress.id,
receiveAddress: returnAddress.receiveAddress,
receiveUserName: returnAddress.receiveUserName,
receiveUserTel: returnAddress.receiveUserTel,
});
}
if (exchangeAddress) {
setExchangeAddress({
deliveryType: exchangeAddress.deliveryType,
sendId: exchangeAddress.id,
sendAddress: exchangeAddress.sendAddress,
sendUserName: exchangeAddress.sendUserName,
sendUserTel: exchangeAddress.sendUserTel,
});
}
setVisible(true);
};
const handleSubmit = values => {
if (!id) {
return;
}
setConfirmLoading(true);
PublicApi.postAsReplaceGoodsSubmitVerify({
applyId: id,
...values,
...(exchangeAddress || {}),
...(returnAddress || {}),
}).then(res => {
if (res.code === 1000) {
history.goBack();
}
}).finally(() => {
setConfirmLoading(false);
});
};
return (
<>
<DetailInfo
id={id}
target="/memberCenter/payandSettle/creditApplication/quotaFormQuery/detail"
headExtra={(info, returnAddress, exchangeAddress) => (
<Button
type="primary"
icon={<FormOutlined />}
onClick={() => handleSubmitVerify(info, returnAddress, exchangeAddress)}
>
提交审核
</Button>
)}
isEdit
/>
<VerifyModal
visible={visible}
confirmLoading={confirmLoading}
onSubmit={handleSubmit}
onVisible={() => setVisible(false)}
/>
</>
);
};
export default ExchangePrSubmitVerify;
\ No newline at end of file
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