9 changed files with 330 additions and 36 deletions
@ -0,0 +1,163 @@ |
|||
import React, { Component } from 'react'; |
|||
import { connect } from 'dva'; |
|||
import { Card, Badge, Table } from 'antd'; |
|||
import PageHeaderLayout from '../../layouts/PageHeaderLayout'; |
|||
import DescriptionList from '../../components/DescriptionList'; |
|||
import styles from './BasicProfile.less'; |
|||
|
|||
const { Description } = DescriptionList; |
|||
|
|||
const progressColumns = [{ |
|||
title: '时间', |
|||
dataIndex: 'time', |
|||
key: 'time', |
|||
}, { |
|||
title: '当前进度', |
|||
dataIndex: 'rate', |
|||
key: 'rate', |
|||
}, { |
|||
title: '状态', |
|||
dataIndex: 'status', |
|||
key: 'status', |
|||
render: text => ( |
|||
text === 'success' ? <Badge status="success" text="成功" /> : <Badge status="processing" text="进行中" /> |
|||
), |
|||
}, { |
|||
title: '操作员ID', |
|||
dataIndex: 'operator', |
|||
key: 'operator', |
|||
}, { |
|||
title: '耗时', |
|||
dataIndex: 'cost', |
|||
key: 'cost', |
|||
}]; |
|||
|
|||
@connect(state => ({ |
|||
profile: state.profile, |
|||
})) |
|||
export default class BasicProfile extends Component { |
|||
componentDidMount() { |
|||
const { dispatch } = this.props; |
|||
dispatch({ |
|||
type: 'profile/fetchBasic', |
|||
}); |
|||
} |
|||
|
|||
render() { |
|||
const { profile } = this.props; |
|||
const { basicGoods, basicProgress, basicLoading } = profile; |
|||
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: value, |
|||
props: {}, |
|||
}; |
|||
if (index === basicGoods.length) { |
|||
obj.props.colSpan = 0; |
|||
} |
|||
return obj; |
|||
}; |
|||
const goodsColumns = [{ |
|||
title: '商品编号', |
|||
dataIndex: 'id', |
|||
key: 'id', |
|||
render: (text, row, index) => { |
|||
if (index < basicGoods.length) { |
|||
return <a href="">{text}</a>; |
|||
} |
|||
return { |
|||
children: <span style={{ fontWeight: 600 }}>总计</span>, |
|||
props: { |
|||
colSpan: 4, |
|||
}, |
|||
}; |
|||
}, |
|||
}, { |
|||
title: '商品名称', |
|||
dataIndex: 'name', |
|||
key: 'name', |
|||
render: renderContent, |
|||
}, { |
|||
title: '商品条码', |
|||
dataIndex: 'barcode', |
|||
key: 'barcode', |
|||
render: renderContent, |
|||
}, { |
|||
title: '单价', |
|||
dataIndex: 'price', |
|||
key: 'price', |
|||
render: renderContent, |
|||
}, { |
|||
title: '数量(件)', |
|||
dataIndex: 'num', |
|||
key: 'num', |
|||
render: (text, row, index) => { |
|||
if (index < basicGoods.length) { |
|||
return text; |
|||
} |
|||
return <span style={{ fontWeight: 600 }}>{text}</span>; |
|||
}, |
|||
}, { |
|||
title: '金额', |
|||
dataIndex: 'amount', |
|||
key: 'amount', |
|||
render: (text, row, index) => { |
|||
if (index < basicGoods.length) { |
|||
return text; |
|||
} |
|||
return <span style={{ fontWeight: 600 }}>{text}</span>; |
|||
}, |
|||
}]; |
|||
return ( |
|||
<PageHeaderLayout title="基础详情页"> |
|||
<Card bordered={false}> |
|||
<DescriptionList title="退款申请" style={{ marginBottom: 24 }}> |
|||
<Description term="取货单号">1000000000</Description> |
|||
<Description term="状态">已取货</Description> |
|||
<Description term="销售单号">1234123421</Description> |
|||
<Description term="子订单">3214321432</Description> |
|||
</DescriptionList> |
|||
<div className={styles.divider} /> |
|||
<DescriptionList title="用户信息" style={{ marginBottom: 24 }}> |
|||
<Description term="用户姓名">付小小</Description> |
|||
<Description term="联系电话">18100000000</Description> |
|||
<Description term="常用快递">菜鸟仓储</Description> |
|||
<Description term="取货地址">浙江省杭州市西湖区万塘路18号</Description> |
|||
<Description term="备注">没啥</Description> |
|||
</DescriptionList> |
|||
<div className={styles.divider} /> |
|||
<div className={styles.title}>退货商品</div> |
|||
<Table |
|||
style={{ marginBottom: 24 }} |
|||
pagination={false} |
|||
loading={basicLoading} |
|||
dataSource={goodsData} |
|||
columns={goodsColumns} |
|||
rowKey="id" |
|||
/> |
|||
<div className={styles.title}>退货进度</div> |
|||
<Table |
|||
style={{ marginBottom: 24 }} |
|||
pagination={false} |
|||
loading={basicLoading} |
|||
dataSource={basicProgress} |
|||
columns={progressColumns} |
|||
/> |
|||
</Card> |
|||
</PageHeaderLayout> |
|||
); |
|||
} |
|||
} |
|||
@ -0,0 +1,14 @@ |
|||
@import "~antd/lib/style/themes/default.less"; |
|||
|
|||
.divider { |
|||
border: 0; |
|||
border-top: 1px solid @border-color-split; |
|||
height: 1px; |
|||
margin: 0 0 24px 0; |
|||
} |
|||
|
|||
.title { |
|||
color: rgba(0, 0, 0, 0.85); |
|||
font-weight: 600; |
|||
margin-bottom: 16px; |
|||
} |
|||
Loading…
Reference in new issue