Commit 42e2522f authored by XieZhiXiong's avatar XieZhiXiong

对接售后换货中

parent 0ca4ecdc
......@@ -2,12 +2,15 @@
* @Author: XieZhiXiong
* @Date: 2020-11-06 09:54:04
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-17 17:49:19
* @Description: 退货地址信息
* @LastEditTime: 2020-11-20 14:43:15
* @Description: 换货收货地址
*/
import React from 'react';
import MellowCard from '@/components/MellowCard';
import { createFormActions, FormEffectHooks, FormPath } from '@formily/antd';
import { PublicApi } from '@/services/api';
import { useAsyncSelect } from '@/formSchema/effects/useAsyncSelect';
import { useLinkageUtils } from '@/utils/formEffectUtils';
import NiceForm from '@/components/NiceForm';
import { schema } from './schema';
import styles from './index.less';
......@@ -18,23 +21,88 @@ const {
onFieldInputChange$,
} = FormEffectHooks;
export interface Values {
deliveryType: number,
id: number,
isDefault: number,
sendAddress: string | undefined,
sendUserName: string | undefined,
sendUserTel: string | undefined,
};
interface ExchangeAddressInfo {
// 是否是编辑的
isEdit?: boolean;
// 换货收货地址
deliveryAddress: {
// id
id?: number;
// 配送方式
deliveryType?: number;
// 收件人姓名
name: string;
// phone
phone: string;
// 完整地址
fullAddress: string;
},
// 换货发货地址
shippingAddress: {
// id
id?: number;
// 配送方式
deliveryType?: number;
// 收件人姓名
name: string;
// phone
phone: string;
// 完整地址
fullAddress: string;
},
// onSubmit
onSubmit: (values: Values) => void;
};
const ExchangeAddressInfo: React.FC<ExchangeAddressInfo> = ({
isEdit = false,
deliveryAddress = {},
shippingAddress = {},
onSubmit,
}) => {
const handleSubmit = values => {
};
const DeliveryAddress = (
// 获取发货地址
const fetchShipperAddress = (): Promise<any[]> => {
return new Promise((resolve, reject) => {
PublicApi.getLogisticsSelectListShipperAddress().then(res => {
if (res.code === 1000) {
const options =
res.data ?
res.data.map(item => ({
label: `${item.fullAddress}/${item.shipperName}/${item.phone}`,
value: item.id,
...item,
})) :
[];
resolve(options);
}
reject();
}).catch(() => {
reject();
});
});
};
const Address = (
<div>
<p>张三 / 185 2929 6475</p>
<p>广东省广州市海珠区新港东路1068号中洲中心北塔6楼</p>
<p>{deliveryAddress.name || ''} / {deliveryAddress.phone || ''}</p>
<p>{deliveryAddress.fullAddress || ''}</p>
</div>
);
......@@ -44,11 +112,62 @@ const ExchangeAddressInfo: React.FC<ExchangeAddressInfo> = ({
fullHeight
>
<NiceForm
initialValues={{
deliveryType: shippingAddress.deliveryType,
shippingAddress: shippingAddress.id,
pickupAddress: shippingAddress.id,
}}
expressionScope={{
DeliveryAddress,
Address,
}}
effects={($, { setFieldState }) => {
effects={($, { setFieldState, getFieldValue }) => {
useAsyncSelect('*(shippingAddress,pickupAddress)', fetchShipperAddress, ['label', 'value']);
const linkage = useLinkageUtils();
// 联动配送方式
onFieldValueChange$('deliveryType').subscribe(fieldState => {
const { name, value } = fieldState;
switch (value) {
// 物流
case 1: {
linkage.show('shippingAddress');
linkage.hide('pickupAddress');
break;
};
// 自提
case 2: {
linkage.hide('shippingAddress');
linkage.show('pickupAddress');
break;
};
// 无需物流
case 3: {
linkage.hide('*(shippingAddress,pickupAddress)');
break;
};
default:
break
};
});
onFieldInputChange$('*(shippingAddress,pickupAddress)').subscribe(fieldState => {
const { name, value, originAsyncData } = fieldState;
const deliveryTypeValue = getFieldValue('deliveryType');
const fullData = originAsyncData.find(item => item.id === value);
if (onSubmit) {
onSubmit({
deliveryType: deliveryTypeValue,
id: fullData ? fullData.id : undefined,
isDefault: fullData ? fullData.isDefault : undefined,
sendAddress: fullData ? fullData.fullAddress : undefined,
sendUserName: fullData ? fullData.shipperName : undefined,
sendUserTel: fullData ? fullData.phone : undefined,
});
}
});
}}
editable={isEdit}
actions={modalFormActions}
......
......@@ -2,10 +2,11 @@
* @Author: XieZhiXiong
* @Date: 2020-11-09 15:56:35
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-17 17:46:41
* @LastEditTime: 2020-11-20 14:54:37
* @Description:
*/
import { ISchema } from '@formily/antd';
import { UPLOAD_TYPE, DELIVERY_TYPE_ENUM } from '@/constants';
export const schema: ISchema = {
type: 'object',
......@@ -14,34 +15,63 @@ export const schema: ISchema = {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
labelCol: 6,
full: true,
labelCol: 8,
wrapperCol: 16,
labelAlign: 'left',
},
properties: {
mode: {
type: 'string',
deliveryType: {
title: '配送方式',
default: '物流',
'x-component': 'Text',
'x-component-props': {},
type: 'string',
default: 1,
enum: DELIVERY_TYPE_ENUM,
'x-component-props': {
style: {
width: '80%',
},
shippingAddress: {
},
},
deliveryAddress: {
type: 'string',
title: '换货收货地址',
'x-component': 'Children',
'x-component-props': {
children: '{{Address}}',
},
},
shippingAddress: {
type: 'string',
title: '换货发货地址',
enum: [],
required: true,
'x-component-props': {
placeholder: '请选择',
style: {
width: '80%',
},
},
deliveryAddress: {
'x-rules': [
{
required: true,
message: '请选择换货发货地址',
},
],
},
pickupAddress: {
type: 'string',
title: '换货发货地址',
'x-component': 'Children',
title: '换货自提地址',
enum: [],
'x-component-props': {
children: '{{DeliveryAddress}}',
placeholder: '请选择',
style: {
width: '80%',
},
},
'x-rules': [
{
required: true,
message: '请选择换货自提地址',
},
],
},
},
},
......
......@@ -2,12 +2,15 @@
* @Author: XieZhiXiong
* @Date: 2020-11-06 09:54:04
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-12 13:48:08
* @LastEditTime: 2020-11-20 15:40:21
* @Description: 退货地址信息
*/
import React from 'react';
import MellowCard from '@/components/MellowCard';
import { createFormActions, FormEffectHooks, FormPath } from '@formily/antd';
import { PublicApi } from '@/services/api';
import { useAsyncSelect } from '@/formSchema/effects/useAsyncSelect';
import { useLinkageUtils } from '@/utils/formEffectUtils';
import NiceForm from '@/components/NiceForm';
import { schema } from './schema';
import styles from './index.less';
......@@ -18,23 +21,88 @@ const {
onFieldInputChange$,
} = FormEffectHooks;
export interface Values {
deliveryType: number,
id: number,
isDefault: number,
receiveAddress: string | undefined,
receiveUserName: string | undefined,
receiveUserTel: string | undefined,
};
interface ReturnAddressInfo {
// 是否是编辑的
isEdit?: boolean;
// 退货收货地址
deliveryAddress: {
// id
id?: number;
// 配送方式
deliveryType?: number;
// 收件人姓名
name: string;
// phone
phone: string;
// 完整地址
fullAddress: string;
},
// 退货发货地址
shippingAddress: {
// id
id?: number;
// 配送方式
deliveryType?: number;
// 收件人姓名
name: string;
// phone
phone: string;
// 完整地址
fullAddress: string;
},
// onSubmit
onSubmit: (values: Values) => void;
};
const ReturnAddressInfo: React.FC<ReturnAddressInfo> = ({
isEdit = false,
deliveryAddress = {},
shippingAddress = {},
onSubmit,
}) => {
const handleSubmit = values => {
};
const DeliveryAddress = (
// 获取收货地址
const fetchDeliveryAddress = (): Promise<any[]> => {
return new Promise((resolve, reject) => {
PublicApi.getLogisticsSelectListReceiverAddress().then(res => {
if (res.code === 1000) {
const options =
res.data ?
res.data.map(item => ({
label: `${item.fullAddress}/${item.receiverName}/${item.phone}`,
value: item.id,
...item,
})) :
[];
resolve(options);
}
reject();
}).catch(() => {
reject();
});
});
};
const Address = (
<div>
<p>张三 / 185 2929 6475</p>
<p>广东省广州市海珠区新港东路1068号中洲中心北塔6楼</p>
<p>{shippingAddress.name || ''} / {shippingAddress.phone || ''}</p>
<p>{shippingAddress.fullAddress || ''}</p>
</div>
);
......@@ -44,13 +112,61 @@ const ReturnAddressInfo: React.FC<ReturnAddressInfo> = ({
fullHeight
>
<NiceForm
effects={($, { setFieldState }) => {
onFieldValueChange$('shippingAddress').subscribe(fieldState => {
console.log('配送方式', fieldState.value);
initialValues={{
deliveryType: shippingAddress.deliveryType,
deliveryAddress: deliveryAddress.id,
}}
effects={($, { setFieldState, getFieldValue }) => {
useAsyncSelect('deliveryAddress', fetchDeliveryAddress, ['label', 'value']);
const linkage = useLinkageUtils();
// 联动配送方式
onFieldValueChange$('deliveryType').subscribe(fieldState => {
const { name, value } = fieldState;
switch (value) {
// 物流
case 1: {
linkage.show('shippingAddress');
linkage.hide('pickupAddress');
break;
};
// 自提
case 2: {
linkage.hide('shippingAddress');
linkage.show('pickupAddress');
break;
};
// 无需物流
case 3: {
linkage.hide('*(shippingAddress,pickupAddress)');
break;
};
default:
break
};
});
onFieldInputChange$('deliveryAddress').subscribe(fieldState => {
const { name, value, originAsyncData } = fieldState;
const deliveryTypeValue = getFieldValue('deliveryType');
const fullData = originAsyncData.find(item => item.id === value);
if (onSubmit) {
onSubmit({
deliveryType: deliveryTypeValue,
id: fullData ? fullData.id : undefined,
isDefault: fullData ? fullData.isDefault : undefined,
receiveAddress: fullData ? fullData.fullAddress : undefined,
receiveUserName: fullData ? fullData.receiverName : undefined,
receiveUserTel: fullData ? fullData.phone : undefined,
});
}
});
}}
expressionScope={{
DeliveryAddress,
Address,
}}
editable={isEdit}
actions={modalFormActions}
......
......@@ -2,10 +2,11 @@
* @Author: XieZhiXiong
* @Date: 2020-11-09 15:56:35
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 16:19:24
* @LastEditTime: 2020-11-20 15:41:12
* @Description:
*/
import { ISchema } from '@formily/antd';
import { UPLOAD_TYPE, DELIVERY_TYPE_ENUM } from '@/constants';
export const schema: ISchema = {
type: 'object',
......@@ -14,33 +15,53 @@ export const schema: ISchema = {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
labelCol: 6,
full: true,
labelCol: 8,
wrapperCol: 16,
labelAlign: 'left',
},
properties: {
mode: {
type: 'string',
deliveryType: {
title: '配送方式',
default: '物流',
'x-component': 'Text',
'x-component-props': {},
type: 'string',
enum: DELIVERY_TYPE_ENUM,
editable: false,
'x-component-props': {
style: {
width: '80%',
},
shippingAddress: {
},
},
deliveryAddress: {
type: 'string',
title: '退货收货地址',
enum: [],
required: true,
'x-component-props': {
placeholder: '请选择',
style: {
width: '80%',
},
},
deliveryAddress: {
'x-rules': [
{
required: true,
message: '请选择退货收货地址',
},
],
},
shippingAddress: {
type: 'string',
title: '退货发货地址',
'x-component': 'Children',
'x-component-props': {
children: '{{DeliveryAddress}}',
children: '{{Address}}',
},
},
pickupAddress: {
type: 'string',
title: '退货自提地址',
'x-component': 'Children',
'x-component-props': {
children: '{{Address}}',
},
},
},
......
......@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-11-06 16:30:44
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-19 18:15:56
* @LastEditTime: 2020-11-20 16:03:42
* @Description: 待新增退货发货单
*/
import React, { useState, useRef } from 'react';
......@@ -67,7 +67,7 @@ const ExchangePrAddDeliver: React.FC = () => {
},
{
title: '申请单摘要',
dataIndex: 'parentMemberName',
dataIndex: 'applyAbstract',
align: 'center',
},
{
......@@ -77,17 +77,17 @@ const ExchangePrAddDeliver: React.FC = () => {
},
{
title: '单据时间',
dataIndex: 'created',
dataIndex: 'applyTime',
align: 'center',
},
{
title: '退货批次',
dataIndex: 'batch',
dataIndex: 'returnBatch',
align: 'center',
},
{
title: '退货发货单号',
dataIndex: 'deliverNo',
dataIndex: 'returnDeliveryNo',
align: 'center',
render: text => <a>{text}</a>,
},
......
......@@ -58,7 +58,7 @@ const ExchangeForm: React.FC<BillsFormProps> = ({
const [replaceGoodsList, setReplaceGoodsList] = useState<GetAsReplaceGoodsPageReturnedGoodsResponse>({ data: [], totalCount: 0 });
const [unsaved, setUnsaved] = useState(false);
const [infoLoading, setInfoLoading] = useState(false);
const [replaceGoodsLoading, setRepairGoodsLoading] = useState(false);
const [replaceGoodsLoading, setExchangeGoodsLoading] = useState(false);
const [goodsValue, setGoodsValue] = useState([]);
const [submitLoading, setSubmitLoading] = useState(false);
const [visibleGoodsDrawer, setVisibleGoodsDrawer] = useState(false);
......@@ -194,14 +194,13 @@ const ExchangeForm: React.FC<BillsFormProps> = ({
);
setDetailInfo({
...detailInfo,
proofFileList: faultFileList.map(item => normalizeFiledata(item.filePath)),
deliveryAddress: {
fullAddress: replaceGoodsAddress.sendAddress,
fullAddress: replaceGoodsAddress.receiveAddress,
id: 123, // 缺
isDefault: 1, // 缺
phone: replaceGoodsAddress.sendUserTel,
receiverName: replaceGoodsAddress.sendUserName,
phone: replaceGoodsAddress.receiveUserTel,
receiverName: replaceGoodsAddress.receiveUserName,
},
// 物流
shippingAddress: returnGoodsAddress.deliveryType === 1 ? {
......@@ -243,7 +242,7 @@ const ExchangeForm: React.FC<BillsFormProps> = ({
if (!id) {
return;
}
setRepairGoodsLoading(true);
setExchangeGoodsLoading(true);
PublicApi.getAsReplaceGoodsPageReturnedGoods({
replaceId: id,
current: `${1}`,
......@@ -254,7 +253,7 @@ const ExchangeForm: React.FC<BillsFormProps> = ({
setGoodsValue(res.data && res.data.data ? res.data.data.map(item => item.orderRecordId) : []);
}
}).finally(() => {
setRepairGoodsLoading(false);
setExchangeGoodsLoading(false);
});
};
......
......@@ -9,22 +9,29 @@ import {
Col,
Badge,
Switch,
Tooltip,
message,
} from 'antd';
import { FormOutlined } from '@ant-design/icons';
import { FormOutlined, QuestionCircleOutlined } from '@ant-design/icons';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { history } from 'umi';
import { PublicApi } from '@/services/api';
import { GetAsReturnGoodsGetDetailBySupplierResponse } from '@/services/AfterServiceApi';
import { CREDIT_INNER_STATUS, CREDIT_OUTER_STATUS, CREDIT_STATUS } from '@/constants';
import {
GetAsReplaceGoodsGetDetailBySupplierResponse,
GetAsReplaceGoodsPageReturnedGoodsResponse,
} from '@/services/AfterServiceApi';
import { normalizeFiledata, FileData, findLastIndexFlowState } from '@/utils';
import AvatarWrap from '@/components/AvatarWrap';
import StatusTag from '@/components/StatusTag';
import EyePreview from '@/components/EyePreview';
import AuditProcess from '@/components/AuditProcess';
import { EditableColumns } from '@/components/PolymericTable/interface';
import ReturnInfoDrawer from '../../../components/ReturnInfoDrawer';
import { } from '../../../constants';
import { Values as ExchangeAddressValues } from '../../../components/ExchangeAddressInfo';
import { Values as ReturnAddressValues } from '../../../components/ReturnAddressInfo';
import {
EXCHANGE_OUTER_STATUS_TAG_MAP,
EXCHANGE_INNER_STATUS_BADGE_MAP,
} from '../../../constants';
const ProductList = React.lazy(() => import('../../../components/ProductList'));
const ExchangeReceivedInfo = React.lazy(() => import('../../../components/ExchangeReceivedInfo'));
......@@ -46,20 +53,81 @@ interface DetailInfoProps {
headExtra?: React.ReactNode;
};
interface DetailInfo extends GetAsReplaceGoodsGetDetailBySupplierResponse {
fileList: FileData[];
};
const DetailInfo: React.FC<DetailInfoProps> = ({
id,
isEdit = false,
target,
headExtra = null,
}) => {
const [detailInfo, setDetailInfo] = useState<GetAsReturnGoodsGetDetailBySupplierResponse>(null);
const [detailInfo, setDetailInfo] = useState<DetailInfo>(null);
const [replaceGoodsList, setReplaceGoodsList] = useState<GetAsReplaceGoodsPageReturnedGoodsResponse>({ data: [], totalCount: 0 });
const [infoLoading, setInfoloading] = useState(false);
const [replaceGoodsLoading, setExchangeGoodsLoading] = useState(false);
const [exchangeAddress, setExchangeAddress] = useState<ExchangeAddressValues>(null);
const [returnAddress, setReturnAddress] = useState<ReturnAddressValues>(null);
// 获取换货申请详情
const getDetailInfo = () => {
if (!id) {
return;
}
setInfoloading(true);
PublicApi.getAsReplaceGoodsGetDetailBySupplier({
replaceId: id,
}).then(res => {
if (res.code === 1000) {
const {
faultFileList,
...rest
} = res.data;
setDetailInfo({
faultFileList,
fileList: faultFileList.map(item => normalizeFiledata(item.filePath)),
...rest,
});
}
}).finally(() => {
setInfoloading(false);
});
};
// 获取换货明细列表
const getReplaceGoods = () => {
if (!id) {
return;
}
setExchangeGoodsLoading(true);
PublicApi.getAsReplaceGoodsPageReturnedGoods({
replaceId: id,
current: `${1}`,
pageSize: `${99999}`,
}).then(res => {
if (res.code === 1000) {
setReplaceGoodsList(res.data);
}
}).finally(() => {
setExchangeGoodsLoading(false);
});
};
const handleReturn = record => {
if (!isEdit) {
if (!isEdit || !id) {
return;
}
console.log('否后退货', record)
PublicApi.postAsReplaceGoodsSetNeedReturnGoods({
replaceId: +id,
replaceGoodsId: record.productId,
isNeed: record.needReplaceName === 1 ? 0 : 1,
}).then(res => {
if (res.code === 1000) {
getReplaceGoods();
}
});
};
const productColumns: EditableColumns[] = [
......@@ -75,8 +143,8 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
),
},
{
title: 'ID',
dataIndex: 'id',
title: '商品ID',
dataIndex: 'productId',
align: 'center',
},
{
......@@ -101,27 +169,39 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
},
{
title: '采购数量',
dataIndex: 'quantity',
dataIndex: 'purchaseCount',
align: 'center',
},
{
title: '采购单价',
dataIndex: 'purchasePrice',
align: 'center',
},
{
title: '采购金额',
dataIndex: 'amount',
dataIndex: 'purchaseAmount',
align: 'center',
},
{
title: '换货数量',
dataIndex: 'num',
dataIndex: 'replaceCount',
align: 'center',
},
{
title: '换货原因',
dataIndex: 'reason',
dataIndex: 'replaceReason',
align: 'center',
},
{
title: '是否需要退货',
dataIndex: 'status',
title: (
<>
<span style={{ marginRight: 8 }}>是否需要退货</span>
<Tooltip title="如果商品因为缺陷原因,无法再退回加工后重新使用,可选择不需要退货,选择后,采购方无须退回不良品。">
<QuestionCircleOutlined />
</Tooltip>
</>
),
dataIndex: 'needReplaceName',
align: 'center',
render: (text, record) => (
<>
......@@ -135,27 +215,19 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
},
];
// 获取换货申请详情
const getDetailInfo = () => {
if (!id) {
return;
}
// setInfoloading(true);
// PublicApi.getAsReturnGoodsGetDetailBySupplier({
// returnId: id,
// }).then(res => {
// if (res.code === 1000) {
// setDetailInfo(res.data);
// }
// }).finally(() => {
// setInfoloading(false);
// });
};
useEffect(() => {
getDetailInfo();
getReplaceGoods();
}, []);
const handleExchangeAddressSubmit = values => {
setExchangeAddress(values);
};
const handleReturnAddressSubmit = values => {
setReturnAddress(values);
};
return (
<Spin spinning={infoLoading}>
<PageHeaderWrapper
......@@ -188,14 +260,14 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
padding: '0 32px',
}}
>
<Descriptions.Item label="申请单摘要">{detailInfo?.applyAbstract}</Descriptions.Item>
<Descriptions.Item label="申请单摘要">{detailInfo?.applyAbstract}</Descriptions.Item>
<Descriptions.Item label="采购会员">{detailInfo?.consumerName}</Descriptions.Item>
<Descriptions.Item label="单据时间">{detailInfo?.applyTime}</Descriptions.Item>
<Descriptions.Item label="外部状态">
<StatusTag type="success" title={'售后完成'} />
<StatusTag type={EXCHANGE_OUTER_STATUS_TAG_MAP[detailInfo?.outerStatus]} title={detailInfo?.outerStatusName} />
</Descriptions.Item>
<Descriptions.Item label="内部状态">
<Badge color={'#41CC9E'} text={'已确认售后完成'} />
<Badge color={EXCHANGE_INNER_STATUS_BADGE_MAP[detailInfo?.innerStatus]} text={detailInfo?.innerStatusName} />
</Descriptions.Item>
</Descriptions>
</PageHeader>
......@@ -238,13 +310,10 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
<Suspense fallback={null}>
<ProductList
title="换货商品"
rowKey="orderRecordId"
columns={productColumns}
dataSource={[
{
id: 1,
applyNo: '123',
},
]}
loading={replaceGoodsLoading}
dataSource={replaceGoodsList.data}
/>
</Suspense>
</Col>
......@@ -293,33 +362,65 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
<Row
gutter={24}
>
<Col span={6}>
<Col span={detailInfo && detailInfo.evaluate ? 6 : 8}>
{/* 相关不良原因举证附件 */}
<Suspense fallback={null}>
<FileList />
<FileList fileList={detailInfo?.fileList} />
</Suspense>
</Col>
<Col span={6}>
<Col span={detailInfo && detailInfo.evaluate ? 6 : 8}>
{/* 退货收货地址 */}
<Suspense fallback={null}>
<ReturnAddressInfo isEdit={isEdit} />
<ReturnAddressInfo
deliveryAddress={{
id: 1, // 缺
name: detailInfo?.returnGoodsAddress?.receiveUserName,
phone: detailInfo?.returnGoodsAddress?.receiveUserTel,
fullAddress: detailInfo?.returnGoodsAddress?.receiveAddress,
}}
shippingAddress={{
deliveryType: detailInfo?.returnGoodsAddress?.deliveryType,
name: detailInfo?.returnGoodsAddress?.sendUserName,
phone: detailInfo?.returnGoodsAddress?.sendUserTel,
fullAddress: detailInfo?.returnGoodsAddress?.sendAddress,
}}
isEdit={isEdit}
onSubmit={handleReturnAddressSubmit}
/>
</Suspense>
</Col>
<Col span={6}>
<Col span={detailInfo && detailInfo.evaluate ? 6 : 8}>
{/* 换货收货地址 */}
<Suspense fallback={null}>
<ExchangeAddressInfo isEdit={isEdit} />
<ExchangeAddressInfo
deliveryAddress={{
name: detailInfo?.replaceGoodsAddress?.receiveUserName,
phone: detailInfo?.replaceGoodsAddress?.receiveUserTel,
fullAddress: detailInfo?.replaceGoodsAddress?.receiveAddress,
}}
shippingAddress={{
id: 1, // 缺
deliveryType: detailInfo?.replaceGoodsAddress?.deliveryType,
name: detailInfo?.replaceGoodsAddress?.sendUserName,
phone: detailInfo?.replaceGoodsAddress?.sendUserTel,
fullAddress: detailInfo?.replaceGoodsAddress?.sendAddress,
}}
isEdit={isEdit}
onSubmit={handleExchangeAddressSubmit}
/>
</Suspense>
</Col>
{detailInfo && detailInfo.evaluate && (
<Col span={6}>
{/* 售后评价 */}
<Suspense fallback={null}>
<Score />
<Score score={detailInfo?.evaluate?.level} />
</Suspense>
</Col>
)}
</Row>
</Col>
......@@ -327,8 +428,8 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
{/* 内、外部流转记录 */}
<Suspense fallback={null}>
<FlowRecords
outerHistory={[]}
innerHistory={[]}
outerHistory={detailInfo?.outerRecordList}
innerHistory={detailInfo?.innerRecordList}
/>
</Suspense>
</Col>
......
......@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-11-17 18:07:41
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-19 18:28:16
* @LastEditTime: 2020-11-20 15:43:56
* @Description: 待提交审核换货申请单
*/
import React, { useState, useRef } from 'react';
......@@ -42,7 +42,7 @@ const ExchangePr1: React.FC = () => {
render: (text, record) => (
<>
<EyePreview
url={`/memberCenter/afterService/exchangeManage/exchangPr1/detail?id=${record.replaceId}`}
url={`/memberCenter/afterService/exchangeManage/exchangePr1/detail?id=${record.replaceId}`}
>
{text}
</EyePreview>
......@@ -86,7 +86,7 @@ const ExchangePr1: React.FC = () => {
<>
<Button
type="link"
onClick={() => history.push(`/memberCenter/afterService/exchangeManage/exchangPr1/verify?id=${record.replaceId}`)}
onClick={() => history.push(`/memberCenter/afterService/exchangeManage/exchangePr1/verify?id=${record.replaceId}`)}
>
提交审核
</Button>
......
......@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-11-04 17:22:07
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-17 18:13:55
* @LastEditTime: 2020-11-20 15:46:31
* @Description:
*/
import React, { useState } from 'react';
......@@ -23,17 +23,17 @@ const ExchangePr1Verify: React.FC = () => {
if (!id) {
return;
}
// setConfirmLoading(true);
// PublicApi.postAsReturnGoodsSubmitVerify({
// applyId: id,
// ...values,
// }).then(res => {
// if (res.code === 1000) {
// history.goBack();
// }
// }).finally(() => {
// setConfirmLoading(false);
// });
setConfirmLoading(true);
PublicApi.postAsReplaceGoodsVerifyStepOne({
applyId: id,
...values,
}).then(res => {
if (res.code === 1000) {
history.goBack();
}
}).finally(() => {
setConfirmLoading(false);
});
};
return (
......@@ -50,7 +50,6 @@ const ExchangePr1Verify: React.FC = () => {
单据审核
</Button>
)}
isEdit
/>
<VerifyModal
......
......@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-11-17 18:07:41
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-18 10:11:17
* @LastEditTime: 2020-11-20 15:47:08
* @Description: 待提交审核换货申请单
*/
import React, { useState, useRef } from 'react';
......
......@@ -23,17 +23,17 @@ const ExchangePr2Verify: React.FC = () => {
if (!id) {
return;
}
// setConfirmLoading(true);
// PublicApi.postAsReturnGoodsSubmitVerify({
// applyId: id,
// ...values,
// }).then(res => {
// if (res.code === 1000) {
// history.goBack();
// }
// }).finally(() => {
// setConfirmLoading(false);
// });
setConfirmLoading(true);
PublicApi.postAsReplaceGoodsVerifyStepTwo({
applyId: id,
...values,
}).then(res => {
if (res.code === 1000) {
history.goBack();
}
}).finally(() => {
setConfirmLoading(false);
});
};
return (
......@@ -50,7 +50,6 @@ const ExchangePr2Verify: React.FC = () => {
单据审核
</Button>
)}
isEdit
/>
<VerifyModal
......
......@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-11-06 16:30:44
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-19 18:55:37
* @LastEditTime: 2020-11-20 16:02:32
* @Description: 待新增换货发货单
*/
import React, { useState, useRef } from 'react';
......@@ -67,7 +67,7 @@ const ExchangePrAddDeliver: React.FC = () => {
},
{
title: '申请单摘要',
dataIndex: 'parentMemberName',
dataIndex: 'applyAbstract',
align: 'center',
},
{
......@@ -77,7 +77,7 @@ const ExchangePrAddDeliver: React.FC = () => {
},
{
title: '单据时间',
dataIndex: 'created',
dataIndex: 'applyTime',
align: 'center',
},
{
......
......@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-11-04 17:22:07
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-18 10:19:22
* @LastEditTime: 2020-11-20 15:49:38
* @Description:
*/
import React, { useState } from 'react';
......@@ -23,17 +23,17 @@ const ExchangePrConfirmVerify: React.FC = () => {
if (!id) {
return;
}
// setConfirmLoading(true);
// PublicApi.postAsReturnGoodsSubmitVerify({
// applyId: id,
// ...values,
// }).then(res => {
// if (res.code === 1000) {
// history.goBack();
// }
// }).finally(() => {
// setConfirmLoading(false);
// });
setConfirmLoading(true);
PublicApi.postAsReplaceGoodsConfirmVerify({
applyId: id,
...values,
}).then(res => {
if (res.code === 1000) {
history.goBack();
}
}).finally(() => {
setConfirmLoading(false);
});
};
return (
......@@ -50,7 +50,6 @@ const ExchangePrConfirmVerify: React.FC = () => {
确认单据
</Button>
)}
isEdit
/>
<VerifyModal
......
......@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-11-04 17:22:07
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-17 18:13:55
* @LastEditTime: 2020-11-20 10:47:03
* @Description:
*/
import React, { useState } from 'react';
......@@ -23,17 +23,17 @@ const ExchangePrSubmitVerify: React.FC = () => {
if (!id) {
return;
}
// setConfirmLoading(true);
// PublicApi.postAsReturnGoodsSubmitVerify({
// applyId: id,
// ...values,
// }).then(res => {
// if (res.code === 1000) {
// history.goBack();
// }
// }).finally(() => {
// setConfirmLoading(false);
// });
setConfirmLoading(true);
PublicApi.postAsReplaceGoodsSubmitVerify({
applyId: id,
...values,
}).then(res => {
if (res.code === 1000) {
history.goBack();
}
}).finally(() => {
setConfirmLoading(false);
});
};
return (
......
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