BasicProfile.js 4.63 KB
Newer Older
ddcat1115's avatar
ddcat1115 committed
1 2
import React, { Component } from 'react';
import { connect } from 'dva';
afc163's avatar
afc163 committed
3
import { Card, Badge, Table, Divider } from 'antd';
ddcat1115's avatar
ddcat1115 committed
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
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',
afc163's avatar
afc163 committed
102
      align: 'right',
ddcat1115's avatar
ddcat1115 committed
103 104 105 106 107
      render: renderContent,
    }, {
      title: '数量(件)',
      dataIndex: 'num',
      key: 'num',
afc163's avatar
afc163 committed
108
      align: 'right',
ddcat1115's avatar
ddcat1115 committed
109 110 111 112 113 114 115 116 117 118
      render: (text, row, index) => {
        if (index < basicGoods.length) {
          return text;
        }
        return <span style={{ fontWeight: 600 }}>{text}</span>;
      },
    }, {
      title: '金额',
      dataIndex: 'amount',
      key: 'amount',
afc163's avatar
afc163 committed
119
      align: 'right',
ddcat1115's avatar
ddcat1115 committed
120 121 122 123 124 125 126 127 128 129
      render: (text, row, index) => {
        if (index < basicGoods.length) {
          return text;
        }
        return <span style={{ fontWeight: 600 }}>{text}</span>;
      },
    }];
    return (
      <PageHeaderLayout title="基础详情页">
        <Card bordered={false}>
nikogu's avatar
nikogu committed
130
          <DescriptionList size="large" title="退款申请" style={{ marginBottom: 32 }}>
ddcat1115's avatar
ddcat1115 committed
131 132 133 134 135
            <Description term="取货单号">1000000000</Description>
            <Description term="状态">已取货</Description>
            <Description term="销售单号">1234123421</Description>
            <Description term="子订单">3214321432</Description>
          </DescriptionList>
afc163's avatar
afc163 committed
136
          <Divider style={{ marginBottom: 32 }} />
nikogu's avatar
nikogu committed
137
          <DescriptionList size="large" title="用户信息" style={{ marginBottom: 32 }}>
ddcat1115's avatar
ddcat1115 committed
138 139 140 141
            <Description term="用户姓名">付小小</Description>
            <Description term="联系电话">18100000000</Description>
            <Description term="常用快递">菜鸟仓储</Description>
            <Description term="取货地址">浙江省杭州市西湖区万塘路18号</Description>
ddcat1115's avatar
ddcat1115 committed
142
            <Description term="备注"></Description>
ddcat1115's avatar
ddcat1115 committed
143
          </DescriptionList>
afc163's avatar
afc163 committed
144
          <Divider style={{ marginBottom: 32 }} />
ddcat1115's avatar
ddcat1115 committed
145 146 147 148 149 150 151 152 153 154 155
          <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
ddcat1115's avatar
ddcat1115 committed
156
            style={{ marginBottom: 16 }}
ddcat1115's avatar
ddcat1115 committed
157 158 159 160 161 162 163 164 165 166
            pagination={false}
            loading={basicLoading}
            dataSource={basicProgress}
            columns={progressColumns}
          />
        </Card>
      </PageHeaderLayout>
    );
  }
}