import React, { Component } from 'react';
import { connect } from 'dva';
import { Card, Badge, Table, Divider } from 'antd';
import { ColumnProps } from 'antd/es/table';
import { match } from 'react-router';
import DescriptionList from '@/components/DescriptionList';
import PageHeaderWrapper from '@/components/PageHeaderWrapper';
import styles from './BasicProfile.less';
import { IProfileModelState } from './models/profile';
const { Description } = DescriptionList;
const progressColumns = [
{
title: '时间',
dataIndex: 'time',
key: 'time',
},
{
title: '当前进度',
dataIndex: 'rate',
key: 'rate',
},
{
title: '状态',
dataIndex: 'status',
key: 'status',
render: text =>
text === 'success' ? (
) : (
),
},
{
title: '操作员ID',
dataIndex: 'operator',
key: 'operator',
},
{
title: '耗时',
dataIndex: 'cost',
key: 'cost',
},
];
interface IBasicProfileProps {
profile: IProfileModelState;
dispatch: (args: any) => void;
loading: boolean;
match: match;
}
@connect(({ profile, loading }) => ({
profile,
loading: loading.effects['profile/fetchBasic'],
}))
class BasicProfile extends Component {
componentDidMount() {
const { dispatch, match } = this.props;
const { params } = match;
dispatch({
type: 'profile/fetchBasic',
payload: (params as { id: string }).id || '1000000000',
});
}
render() {
const { profile = {}, loading } = this.props;
const {
basicGoods = [],
basicProgress = [],
userInfo = {},
application = {},
} = profile as IProfileModelState;
let goodsData = [];
if (basicGoods.length) {
let num = 0;
let amount = 0;
basicGoods.forEach(item => {
num += Number(item.num);
amount += Number(item.amount);
});
goodsData = basicGoods.concat({
id: '总计',
num,
amount,
});
}
const renderContent = (value, row, index) => {
const obj: { children: any; props: { colSpan?: number } } = {
children: value,
props: {},
};
if (index === basicGoods.length) {
obj.props.colSpan = 0;
}
return obj;
};
const goodsColumns: ColumnProps[] = [
{
title: '商品编号',
dataIndex: 'id',
key: 'id',
render: (text, row, index) => {
if (index < basicGoods.length) {
return {text};
}
return {
children: 总计,
props: {
colSpan: 4,
},
};
},
},
{
title: '商品名称',
dataIndex: 'name',
key: 'name',
render: renderContent,
},
{
title: '商品条码',
dataIndex: 'barcode',
key: 'barcode',
render: renderContent,
},
{
title: '单价',
dataIndex: 'price',
key: 'price',
align: 'right',
render: renderContent,
},
{
title: '数量(件)',
dataIndex: 'num',
key: 'num',
align: 'right',
render: (text, row, index) => {
if (index < basicGoods.length) {
return text;
}
return {text};
},
},
{
title: '金额',
dataIndex: 'amount',
key: 'amount',
align: 'right',
render: (text, row, index) => {
if (index < basicGoods.length) {
return text;
}
return {text};
},
},
];
return (
{application.id}
{application.status}
{application.orderNo}
{application.childOrderNo}
{userInfo.name}
{userInfo.tel}
{userInfo.delivery}
{userInfo.addr}
{userInfo.remark}
退货商品
退货进度
);
}
}
export default BasicProfile;