import React, { PureComponent } from 'react'; import moment from 'moment'; import { connect } from 'dva'; import { Button, Card, Col, Divider, Form, Input, Row, Tabs, DatePicker, List } from 'antd'; import PageHeaderWrapper from '@/components/PageHeaderWrapper'; import DictionaryText from '@/components/Dictionary/DictionaryText'; import OrderUpdatePayAmount from './OrderUpdatePayAmount'; import OrderDelivery from './OrderDelivery'; import OrderRemark from './OrderRemark'; import OrderCancel from './OrderCancel'; import dictionary from '@/utils/dictionary'; import styles from './OrderList.less'; const { RangePicker } = DatePicker; const FormItem = Form.Item; const { TabPane } = Tabs; const OrderContent = props => { const { dispatch, item } = props; const { createTime, status, payAmount, id } = item; const { name, mobile } = item.orderRecipient || {}; const handleUpdatePayAmount = updateOrderItem => { dispatch({ type: 'orderList/changePayAmountVisible', payload: { payAmountVisible: true, payAmount: updateOrderItem.payAmount, orderId: updateOrderItem.orderId, orderItemId: updateOrderItem.id, }, }); }; const handleOrderDelivery = () => { dispatch({ type: 'orderDelivery/changeVisible', payload: { visible: true, orderId: id, }, }); dispatch({ type: 'orderDelivery/getOrderItems', payload: { orderId: id, }, }); }; const renderStatusButtons = () => { let res = ''; if (status === 1) { res = ; } else if (status === 2) { res = ; } return res; }; const renderGoods = orderItems => { return orderItems.map(({ skuName, skuImage, quantity, price }) => { return (
{skuName}
{skuName}
秋季精选
{quantity}件
{price / 100} 元/{quantity * (price / 100)} 元
); }); }; return (
{renderGoods(item.orderItems)}
{name}
{mobile}
(下单时间)
{moment(createTime).format('YYYY-MM-DD HH:mm')}
 
{renderStatusButtons(props)}
(实付金额)
{payAmount / 100}元
handleUpdatePayAmount(props)}>修改价格
); }; const OrderList = props => { const { list, dispatch, loading } = props; const { pagination, dataSource } = list; const paginationProps = { ...pagination, }; const handleRemakeClick = item => { const { id, remark } = item; dispatch({ type: 'orderList/changeRemakeVisible', payload: { remarkVisible: true, orderId: id, remark, }, }); }; return ( (
订单号: {item.orderNo} 支付金额: {item.payAmount / 100} 元
查看详情 handleRemakeClick(item)}>备注
)} /> ); }; // SearchForm const SearchForm = Form.create()(props => { const { form: { getFieldDecorator }, form, handleSearch, } = props; const handleFormReset = () => {}; const onSubmit = e => { e.preventDefault(); form.validateFields((err, fields) => { const buildTime = (fieldValue, key) => { const res = {}; if (fieldValue && fieldValue.length >= 2) { const keySuffix = key.substring(0, 1).toUpperCase() + key.substring(1); res[`start${keySuffix}`] = fieldValue[0].format('YYYY-MM-DD HH:mm:ss'); res[`end${keySuffix}`] = fieldValue[1].format('YYYY-MM-DD HH:mm:ss'); } return res; }; const timeFields = ['createTime', 'closingTime']; const buildSearchParams = fields2 => { let res = {}; Object.keys(fields).map(objectKey => { const fieldValue = fields2[objectKey]; if (timeFields.indexOf(objectKey) !== -1) { // 处理时间 res = { ...res, ...buildTime(fieldValue, objectKey), }; } else if (fieldValue !== undefined) { res[objectKey] = fieldValue; } return true; }); return res; }; const searchParams = buildSearchParams(fields); if (handleSearch) { handleSearch(searchParams); } }); }; return (
{getFieldDecorator('id')()} {getFieldDecorator('orderNo')()} {getFieldDecorator('createTime')()}
); }); @connect(({ orderList, orderDelivery, loading }) => ({ orderList, list: orderList.list, loading: loading.models.orderList, orderDelivery, })) class BasicList extends PureComponent { componentDidMount() { const { list: { pagination }, } = this.props; this.queryList({ pageNo: pagination.current, pageSize: pagination.pageSize, }); } queryList = params => { const { dispatch } = this.props; // 保存每次操作 searchParams this.searchParams = params; // dispatch dispatch({ type: 'orderList/queryPage', payload: { ...params, }, }); }; handleEditorClick = () => {}; handleSearch = fields => { const { list: { pagination }, } = this.props; this.queryList({ ...fields, pageNo: pagination.current, pageSize: pagination.pageSize, }); }; handleTabsChange = key => { const params = { ...this.searchParams, status: key, }; this.queryList(params); }; render() { return (
); } } export default BasicList;