Commit 1bd2d0cc authored by 前端-钟卫鹏's avatar 前端-钟卫鹏

fix: 对接新订单列表和详情

parent 9f4d21ab
import React, { useRef, useState } from 'react' import React, { useRef } from 'react'
import { Card, Button, Modal } from 'antd' import { Card, Button } from 'antd'
import { StandardTable } from 'god' import { StandardTable } from 'god'
import { PageHeaderWrapper } from '@ant-design/pro-layout'
import { PublicApi } from '@/services/api' import { PublicApi } from '@/services/api'
import EyePreview from '@/components/EyePreview' import EyePreview from '@/components/EyePreview'
import { formatTimeString } from '@/utils' import { formatTimeString } from '@/utils'
import { ORDER_TYPE, PurchaseOrderOutWorkStateTexts, PurchaseOrderInsideWorkStateTexts } from '@/constants' import { ORDER_TYPE } from '@/constants'
import StatusColors from './components/StatusColors' import StatusColors from './components/StatusColors'
import { FORM_FILTER_PATH } from '@/formSchema/const' import { FORM_FILTER_PATH } from '@/formSchema/const'
import { createFormActions, ISchema } from '@formily/antd' import { createFormActions, ISchema } from '@formily/antd'
...@@ -19,24 +18,6 @@ const formActions = createFormActions(); ...@@ -19,24 +18,6 @@ const formActions = createFormActions();
const tableListSchema: ISchema = { const tableListSchema: ISchema = {
type: 'object', type: 'object',
properties: { properties: {
// orderNo: {
// type: 'string',
// "x-component": 'SearchFilter',
// 'x-component-props': {
// placeholder: '请输入订单编号',
// align: 'flex-end',
// },
// },
// [FORM_FILTER_PATH]: {
// type: 'object',
// 'x-component': 'flex-layout',
// 'x-component-props': {
// inline: true,
// colStyle: {
// marginLeft: 20
// }
// },
mageLayout: { mageLayout: {
type: 'object', type: 'object',
'x-component': 'mega-layout', 'x-component': 'mega-layout',
...@@ -78,27 +59,26 @@ const tableListSchema: ISchema = { ...@@ -78,27 +59,26 @@ const tableListSchema: ISchema = {
}, },
properties: { properties: {
orderThe: { digest: {
type: 'string', type: 'string',
'x-component-props': { 'x-component-props': {
placeholder: '请输入订单摘要', placeholder: '请输入订单摘要',
} }
}, },
"supplyMembersName": { "vendorMemberName": {
type: 'string', type: 'string',
"x-component-props": { "x-component-props": {
placeholder: '请输入供应会员名称' placeholder: '请输入供应会员名称'
} }
}, },
"memberName": { "buyerMemberName": {
type: 'string', type: 'string',
"x-component-props": { "x-component-props": {
placeholder: '请输入采购会员名称' placeholder: '请输入采购会员名称'
} }
}, },
"[startCreateTime,endCreateTime]": { "[startDate,endDate]": {
type: 'array', type: 'daterange',
"x-component": 'DateRangePickerUnix',
'x-component-props': { 'x-component-props': {
placeholder: ['开始时间','结束时间'], placeholder: ['开始时间','结束时间'],
}, },
...@@ -120,30 +100,27 @@ export const baseOrderListColumns: any[] = [ ...@@ -120,30 +100,27 @@ export const baseOrderListColumns: any[] = [
align: 'center', align: 'center',
dataIndex: 'orderNo', dataIndex: 'orderNo',
key: 'orderNo', key: 'orderNo',
render: (text, record) => { render: (text, record) => <EyePreview url={`/orderSystem/detail?id=${record.orderId}`}>
// 查看订单, 需根据状态显示不同schema
return <EyePreview url={`/orderSystem/detail?id=${record.id}`}>
{text} {text}
</EyePreview> </EyePreview>
}
}, },
{ {
title: '订单摘要', title: '订单摘要',
align: 'center', align: 'center',
dataIndex: 'orderThe', dataIndex: 'digest',
key: 'orderThe', key: 'digest',
}, },
{ {
title: '采购会员', title: '采购会员',
align: 'center', align: 'center',
dataIndex: 'memberName', dataIndex: 'buyerMemberName',
key: 'memberName', key: 'buyerMemberName',
}, },
{ {
title: '供应会员', title: '供应会员',
align: 'center', align: 'center',
dataIndex: 'supplyMembersName', dataIndex: 'vendorMemberName',
key: 'supplyMembersName', key: 'vendorMemberName',
}, },
{ {
title: '下单时间', title: '下单时间',
...@@ -155,65 +132,37 @@ export const baseOrderListColumns: any[] = [ ...@@ -155,65 +132,37 @@ export const baseOrderListColumns: any[] = [
{ {
title: '订单总额', title: '订单总额',
align: 'center', align: 'center',
dataIndex: 'sumPrice', dataIndex: 'amount',
key: 'sumPrice', key: 'amount',
render: (t, r) => (r.type === 7 || r.type === 8) ? t : '¥' + t render: (t, r) => (r.orderType === 7 || r.orderType === 8) ? t : '¥' + t
}, },
{ {
title: '订单类型', title: '订单类型',
align: 'center', align: 'center',
dataIndex: 'type', dataIndex: 'orderTypeName',
key: 'type', key: 'orderTypeName',
render: (text) => ORDER_TYPE[text],
// 1.询价采购2.需求采购3.现货采购4.集采5.渠道直采6.渠道现货7.积分兑换8.渠道积分兑换
filters: [
{text: '询价采购', value: 1},
{text: '需求采购', value: 2},
{text: '现货采购', value: 3},
{text: '集采', value: 4},
{text: '渠道直采', value: 5},
{text: '渠道现货', value: 6},
{text: '积分兑换', value: 7},
{text: '渠道积分兑换', value: 8},
],
onFilter: (value, record) => value === record.type,
}, },
{ {
title: '外部状态', title: '外部状态',
align: 'center', align: 'center',
dataIndex: 'externalState', dataIndex: 'outerStatusName',
key: 'externalState', key: 'outerStatusName',
render: text => <StatusColors status={text} type='out'/>,
filters: Object.entries(PurchaseOrderOutWorkStateTexts).map(([key, value]) => ({text: value, value: Number(key)})),
onFilter: (value, record) => value === record.externalState,
}, },
// {
// title: '内部状态',
// align: 'center',
// dataIndex: 'interiorState',
// key: 'interiorState',
// render: (text) => <StatusColors status={text} type='inside'/>,
// filters: Object.entries(PurchaseOrderInsideWorkStateTexts).map(([key, value]) => ({text: value, value: Number(key)})),
// onFilter: (value, record) => value === record.interiorState,
// },
] ]
// 销售订单查询 // 销售订单查询
export interface SaleOrderProps { } export interface SaleOrderProps { }
const fetchTableData = async (params) => { const fetchTableData = async (params) => {
const { data } = await PublicApi.getOrderPlatformOrderList(params) const { data } = await PublicApi.getOrderPlatformManagePage(params)
return data return data
} }
// 最后一步开始调试 TODO
const SaleOrder: React.FC<SaleOrderProps> = (props) => { const SaleOrder: React.FC<SaleOrderProps> = (props) => {
const ref = useRef<any>({}) const ref = useRef<any>({})
const secondColumns: any[] = baseOrderListColumns.concat([ const secondColumns: any[] = baseOrderListColumns.concat([])
])
const controllerBtns = <Button style={{width: 140}} onClick={() => {}} type='default'>导出</Button> const controllerBtns = <Button style={{width: 140}} onClick={() => {}} type='default'>导出</Button>
...@@ -244,38 +193,6 @@ const SaleOrder: React.FC<SaleOrderProps> = (props) => { ...@@ -244,38 +193,6 @@ const SaleOrder: React.FC<SaleOrderProps> = (props) => {
}} }}
/> />
} }
// formilyLayouts={{
// justify: 'space-between'
// }}
// formilyChilds={{
// layouts: {
// order: 2
// },
// children: <Button style={{width: 140}} onClick={() => {}} type='default'>导出</Button>
// }}
// formilyProps={{
// ctx: {
// inline: false,
// schema: tableListSchema,
// effects: ($, actions) => {
// useStateFilterSearchLinkageEffect(
// $,
// actions,
// 'orderNo',
// FORM_FILTER_PATH,
// );
// },
// components: {
// DateRangePicker: DatePicker.RangePicker,
// DateRangePickerUnix,
// Submit
// }
// },
// layouts: {
// order: 3,
// span: 16
// }
// }}
/> />
</Card> </Card>
} }
......
...@@ -19,9 +19,9 @@ const outOrderCols: any[] = [ ...@@ -19,9 +19,9 @@ const outOrderCols: any[] = [
}, },
{ {
title: '商品名称', title: '商品名称',
dataIndex: 'productName', dataIndex: 'name',
align: 'center', align: 'center',
key: 'productName', key: 'name',
}, },
{ {
title: '品类', title: '品类',
...@@ -43,28 +43,28 @@ const outOrderCols: any[] = [ ...@@ -43,28 +43,28 @@ const outOrderCols: any[] = [
}, },
{ {
title: '单价', title: '单价',
dataIndex: 'unitPrice', dataIndex: 'price',
align: 'center', align: 'center',
key: 'unitPrice', key: 'price',
}, },
{ {
title: '采购数量', title: '采购数量',
dataIndex: 'purchaseCount', dataIndex: 'quantity',
align: 'center', align: 'center',
key: 'purchaseCount', key: 'quantity',
}, },
{ {
title: '含税', title: '含税',
dataIndex: 'no', dataIndex: 'tax',
align: 'center', align: 'center',
key: 'no', key: 'tax',
render: () => '是' render: (t) => t ? '是' : '否'
}, },
{ {
title: '金额', title: '金额',
dataIndex: 'price', dataIndex: 'amount',
align: 'center', align: 'center',
key: 'price', key: 'amount',
}, },
{ {
title: '已发货', title: '已发货',
...@@ -74,21 +74,21 @@ const outOrderCols: any[] = [ ...@@ -74,21 +74,21 @@ const outOrderCols: any[] = [
}, },
{ {
title: '未发货', title: '未发货',
dataIndex: 'notDelivered', dataIndex: 'leftCount',
align: 'center', align: 'center',
key: 'notDelivered', key: 'leftCount',
}, },
{ {
title: '已收货', title: '已收货',
dataIndex: 'goodsReceived', dataIndex: 'received',
align: 'center', align: 'center',
key: 'goodsReceived', key: 'received',
}, },
{ {
title: '差异数量', title: '差异数量',
dataIndex: 'differenceCount', dataIndex: 'differCount',
align: 'center', align: 'center',
key: 'differenceCount', key: 'differCount',
}, },
] ]
...@@ -102,9 +102,9 @@ const sideChildrenCols: any[] = [ ...@@ -102,9 +102,9 @@ const sideChildrenCols: any[] = [
}, },
{ {
title: '商品名称', title: '商品名称',
dataIndex: 'productName', dataIndex: 'name',
align: 'center', align: 'center',
key: 'productName', key: 'name',
}, },
{ {
title: '品类', title: '品类',
...@@ -126,51 +126,51 @@ const sideChildrenCols: any[] = [ ...@@ -126,51 +126,51 @@ const sideChildrenCols: any[] = [
}, },
{ {
title: '采购数量', title: '采购数量',
dataIndex: 'purchaseCount', dataIndex: 'quantity',
align: 'center', align: 'center',
key: 'purchaseCount', key: 'quantity',
}, },
{ {
title: '发货数量', title: '发货数量',
dataIndex: 'deliverGoodsCount', dataIndex: 'delivered',
align: 'center', align: 'center',
key: 'deliverGoodsCount', key: 'delivered',
}, },
{ {
title: '入库数量', title: '收货数量',
dataIndex: 'storageCount', dataIndex: 'received',
align: 'center', align: 'center',
key: 'storageCount', key: 'received',
}, },
{ {
title: '差异数量', title: '差异数量',
dataIndex: 'differenceCount', dataIndex: 'differCount',
align: 'center', align: 'center',
key: 'differenceCount', key: 'differCount',
}, },
] ]
// 订单发货记录 // 订单发货记录
const OrderDeleveRecord:React.FC<OrderDeleveRecordProps> = (props) => { const OrderDeleveRecord:React.FC<OrderDeleveRecordProps> = (props) => {
const { data, reloadFormData } = useContext(OrderDetailContext) const { data, reloadFormData } = useContext(OrderDetailContext)
const { orderReceivingStatisticsResponses, orderDeliveryDetailsResponses } = data const { deliveries, deliveryDetails } = data
const sideOrderCols: any[] = [ const sideOrderCols: any[] = [
{ {
title: '收货批次', title: '收货批次',
dataIndex: 'deliveryBatch', dataIndex: 'batchNo',
align: 'center', align: 'center',
key: 'deliveryBatch' key: 'batchNo'
}, },
{ {
title: '收货单号', title: '收货单号',
dataIndex: 'deliveryNo', dataIndex: 'receiptNo',
align: 'center', align: 'center',
key: 'deliveryNo', key: 'receiptNo',
}, },
{ {
title: '收货时间', title: '收货时间',
dataIndex: 'deliveryTime', dataIndex: 'receiptTime',
align: 'center', align: 'center',
key: 'deliveryTime', key: 'receiptTime',
render: text => formatTimeString(text) render: text => formatTimeString(text)
}, },
{ {
...@@ -181,88 +181,54 @@ const OrderDeleveRecord:React.FC<OrderDeleveRecordProps> = (props) => { ...@@ -181,88 +181,54 @@ const OrderDeleveRecord:React.FC<OrderDeleveRecordProps> = (props) => {
}, },
{ {
title: '物流公司', title: '物流公司',
dataIndex: 'logisticsCompanyName', dataIndex: 'company',
align: 'center', align: 'center',
key: 'logisticsCompanyName' key: 'company'
}, },
{ {
title: '入库单号', title: '发货单号',
dataIndex: 'storageNo', dataIndex: 'deliveryNo',
align: 'center', align: 'center',
key: 'storageNo', key: 'deliveryNo',
}, },
{ {
title: '入库时间', title: '发货时间',
dataIndex: 'storageTime', dataIndex: 'createTime',
align: 'center', align: 'center',
key: 'storageTime', key: 'createTime',
render: text => formatTimeString(text) render: text => formatTimeString(text)
}, },
{ {
title: '内部状态', title: '内部状态',
dataIndex: 'interiorState', dataIndex: 'innerStatusName',
align: 'center',
key: 'interiorState',
render: text => <StatusColors type='deliveInside' status={text}/>
},
{
title: '操作',
dataIndex: 'ctl',
align: 'center', align: 'center',
key: 'ctl', key: 'innerStatusName',
render: (text, record) => <>
{/* todo 需根据内部状态判断显示哪个按钮 */}
{ record.interiorState === DeliverySideState.CONFIRM_RECEIPT_ORDER && <Button type='link' onClick={() => handleReturn(record)}>确认回单</Button> }
{ record.interiorState === DeliverySideState.WAREHOUSE_ORDER && <Button type='link' onClick={() => handleConfirm(record)}>确认收货</Button> }
</>
}, },
] ]
// 确认收货
const handleConfirm = async (record) => {
const params = {
orderId: record.orderId,
id: record.id
}
await PublicApi.postOrderConfirmReceipt(params)
reloadFormData && reloadFormData()
}
// 确认回单
const handleReturn = async (record) => {
const params = {
orderId: record.orderId,
id: record.id
}
await PublicApi.postOrderReceiptOrderConfirmed(params)
reloadFormData && reloadFormData()
}
return ( return (
<> <>
{ {
(orderReceivingStatisticsResponses?.length > 0 || orderDeliveryDetailsResponses?.length > 0) && (deliveries?.length > 0 || deliveryDetails?.length > 0) &&
<MellowCard style={{marginTop: 24}} bordered={false} id='deleveBox'> <MellowCard style={{marginTop: 24}} bordered={false} id='deleveBox'>
<Tabs defaultActiveKey="2" animated={false}> <Tabs defaultActiveKey="2" animated={false}>
{ {
orderReceivingStatisticsResponses?.length > 0 && <Tabs.TabPane tab='订单收货统计' key="1"> deliveries?.length > 0 && <Tabs.TabPane tab='订单收货统计' key="1">
<Table <Table
columns={outOrderCols} columns={outOrderCols}
dataSource={orderReceivingStatisticsResponses} dataSource={deliveries}
pagination={false} pagination={false}
rowKey="productId" rowKey="productId"
/> />
</Tabs.TabPane> </Tabs.TabPane>
} }
{ {
orderDeliveryDetailsResponses?.length > 0 && <Tabs.TabPane tab='订单收货明细' key="2"> deliveryDetails?.length > 0 && <Tabs.TabPane tab='订单收货明细' key="2">
<NestTable <NestTable
NestColumns={[sideOrderCols, sideChildrenCols]} NestColumns={[sideOrderCols, sideChildrenCols]}
rowKey='id' rowKey='batchNo'
childrenDataKey='orderDeliveryProducts' childrenDataKey='productId'
dataSource={orderDeliveryDetailsResponses} dataSource={deliveryDetails}
/> />
</Tabs.TabPane> </Tabs.TabPane>
} }
...@@ -275,4 +241,4 @@ const OrderDeleveRecord:React.FC<OrderDeleveRecordProps> = (props) => { ...@@ -275,4 +241,4 @@ const OrderDeleveRecord:React.FC<OrderDeleveRecordProps> = (props) => {
OrderDeleveRecord.defaultProps = {} OrderDeleveRecord.defaultProps = {}
export default OrderDeleveRecord export default OrderDeleveRecord
\ No newline at end of file
...@@ -11,22 +11,22 @@ import cx from 'classnames' ...@@ -11,22 +11,22 @@ import cx from 'classnames'
export interface OrderMergeInfoProps { } export interface OrderMergeInfoProps { }
const payInfo = [ const payInfo = [
{ title: '交付日期', name: 'deliveryTime', render: (text) => formatTimeString(text) }, { title: '交付日期', name: 'deliverDate', render: (text) => formatTimeString(text) },
{ {
title: '交付地址', name: 'deliveryAddressInfo', render: (_, record) => title: '交付地址', name: 'address', render: (_, record) =>
<div> <div>
<Row> <Row>
<Col>{record.receiverName}</Col> <Col>{record.consignee}</Col>
<Col> / </Col> <Col> / </Col>
<Col>{record.phone}</Col> <Col>{record.phone}</Col>
{record.isDefault && <Col style={{ marginLeft: 6 }}><Tag color='default'>默认</Tag></Col>} {record.defaultConsignee && <Col style={{ marginLeft: 6 }}><Tag color='default'>默认</Tag></Col>}
</Row> </Row>
<div style={{ color: '#909399' }}>{record.fullAddress}</div> <div style={{ color: '#909399' }}>{record.areaName + '' + record.address}</div>
</div> </div>
}, },
{ title: '提货方式', name: 'deliveryType', render: (text) => DELIVERY_TYPE[text] }, // { title: '提货方式', name: 'deliveryType', render: (text) => DELIVERY_TYPE[text] },
{ title: '自提地址', name: 'pickUpAddress' }, // { title: '自提地址', name: 'pickUpAddress' },
{ title: '运费', name: 'freight' } // { title: '运费', name: 'freight' }
] ]
...@@ -42,19 +42,15 @@ const RenderCard = ({ infoList, dataSource }) => infoList.map(v => dataSource[v. ...@@ -42,19 +42,15 @@ const RenderCard = ({ infoList, dataSource }) => infoList.map(v => dataSource[v.
const OrderMergeInfo: React.FC<OrderMergeInfoProps> = (props) => { const OrderMergeInfo: React.FC<OrderMergeInfoProps> = (props) => {
const orderDetailCtx = useContext(OrderDetailContext) const orderDetailCtx = useContext(OrderDetailContext)
const [isModalVisible, setIsModalVisible] = useState(false) const [isModalVisible, setIsModalVisible] = useState(false)
// const address = useMemo(async () => {
// const { data } = await PublicApi.getLogisticsSelectListReceiverAddress()
// return data
// }, [])
const { data, ctl } = orderDetailCtx const { data, ctl } = orderDetailCtx
const {theInvoiceInfo} = data const { invoice } = data
const otherInfo = [ const otherInfo = [
{ title: '发票', name: 'theInvoiceInfo', render: item => <div className={style.invoice_list_item}> { title: '发票', name: 'invoice', render: item => <div className={style.invoice_list_item}>
<div className={style.invoice_list_item_content}> <div className={style.invoice_list_item_content}>
<div className={cx(style.invoice_list_item_content_tag, item.kind !== 1 ? style.special : '')}>{item.kind === 1 ? '增值税普通发票' : '增值税专用发票'}</div> <div className={cx(style.invoice_list_item_content_tag, item.invoiceType !== 1 ? style.special : '')}>{item.invoiceType === 1 ? '增值税普通发票' : '增值税专用发票'}</div>
<div className={style.invoice_list_item_content_name}> <div className={style.invoice_list_item_content_name}>
<div>{item.invoiceTitle}</div> <div>{item.title}</div>
<div>{item.taxNo}</div> <div>{item.taxNo}</div>
</div> </div>
</div> </div>
...@@ -69,27 +65,12 @@ const OrderMergeInfo: React.FC<OrderMergeInfoProps> = (props) => { ...@@ -69,27 +65,12 @@ const OrderMergeInfo: React.FC<OrderMergeInfoProps> = (props) => {
{ title: '其他要求', name: 'restsRequire' }, { title: '其他要求', name: 'restsRequire' },
] ]
// useEffect(() => {
// if (data.deliveryAddresId && !data.receiverName) {
// asyncSetAddress()
// }
// }, [data, address])
// const asyncSetAddress = async () => {
// const res = await address
// debugger
// ctl.setData({
// ...data,
// ...(res.find(v => v.id === data.deliveryAddresId) || {})
// })
// }
return ( return (
<> <>
<Row style={{ marginTop: 24 }} gutter={24}> <Row style={{ marginTop: 24 }} gutter={24}>
<Col span={data.orderModel > 30 ? 15: 12}> <Col span={data.orderModel > 30 ? 15: 12}>
<MellowCard title='交易信息' fullHeight> <MellowCard title='交易信息' fullHeight>
<RenderCard infoList={payInfo} dataSource={data} /> <RenderCard infoList={payInfo} dataSource={data.consignee} />
</MellowCard> </MellowCard>
</Col> </Col>
<Col span={data.orderModel > 30 ? 9: 6}> <Col span={data.orderModel > 30 ? 9: 6}>
...@@ -121,14 +102,14 @@ const OrderMergeInfo: React.FC<OrderMergeInfoProps> = (props) => { ...@@ -121,14 +102,14 @@ const OrderMergeInfo: React.FC<OrderMergeInfoProps> = (props) => {
</Row> </Row>
<Modal title="发票信息" visible={isModalVisible} onOk={()=>setIsModalVisible(false)} onCancel={()=>setIsModalVisible(false)}> <Modal title="发票信息" visible={isModalVisible} onOk={()=>setIsModalVisible(false)} onCancel={()=>setIsModalVisible(false)}>
<Row gutter={[0 ,10]} style={{fontSize: 14}}> <Row gutter={[0 ,10]} style={{fontSize: 14}}>
<Col span={4}>开具类型:</Col><Col span={20}>{theInvoiceInfo?.type === 1 ? "企业" : "个人"}</Col> <Col span={4}>开具类型:</Col><Col span={20}>{invoice?.invoiceKind === 1 ? "企业" : "个人"}</Col>
<Col span={4}>发票种类:</Col><Col span={20}>{theInvoiceInfo?.kind === 1 ? "增值税普通发票" : "增值税专用发票"}</Col> <Col span={4}>发票种类:</Col><Col span={20}>{invoice?.invoiceType === 1 ? "增值税普通发票" : "增值税专用发票"}</Col>
<Col span={4}>发票抬头:</Col><Col span={20}>{theInvoiceInfo?.invoiceTitle}</Col> <Col span={4}>发票抬头:</Col><Col span={20}>{invoice?.title}</Col>
<Col span={4}>纳税号:</Col><Col span={20}>{theInvoiceInfo?.taxNo}</Col> <Col span={4}>纳税号:</Col><Col span={20}>{invoice?.taxNo}</Col>
<Col span={4}>开户行:</Col><Col span={20}>{theInvoiceInfo?.bankOfDeposit}</Col> <Col span={4}>开户行:</Col><Col span={20}>{invoice?.bank}</Col>
<Col span={4}>账号:</Col><Col span={20}>{theInvoiceInfo?.account}</Col> <Col span={4}>账号:</Col><Col span={20}>{invoice?.account}</Col>
<Col span={4}>地址:</Col><Col span={20}>{theInvoiceInfo?.addres}</Col> <Col span={4}>地址:</Col><Col span={20}>{invoice?.addres}</Col>
<Col span={4}>电话:</Col><Col span={20}>{theInvoiceInfo?.tel}</Col> <Col span={4}>电话:</Col><Col span={20}>{invoice?.phone}</Col>
</Row> </Row>
</Modal> </Modal>
</> </>
......
...@@ -64,14 +64,14 @@ const OrderPayTabs:React.FC<OrderPayTabsProps> = (props) => { ...@@ -64,14 +64,14 @@ const OrderPayTabs:React.FC<OrderPayTabsProps> = (props) => {
// 简单流程为24 // 简单流程为24
const processEnum = data.processEnum const processEnum = data.processEnum
useEffect(() => { // useEffect(() => {
PublicApi.getPayPayWayList({memberId: data.supplyMembersId, memberRoleId: data.supplyMembersRoleId}).then(res => { // PublicApi.getPayPayWayList({memberId: data.supplyMembersId, memberRoleId: data.supplyMembersRoleId}).then(res => {
const { code, data } = res // const { code, data } = res
if (code === 1000) { // if (code === 1000) {
setPaylist(data) // setPaylist(data)
} // }
}) // })
}, []) // }, [])
return ( return (
<Row gutter={24} style={{marginTop: 24}}> <Row gutter={24} style={{marginTop: 24}}>
...@@ -79,7 +79,7 @@ const OrderPayTabs:React.FC<OrderPayTabsProps> = (props) => { ...@@ -79,7 +79,7 @@ const OrderPayTabs:React.FC<OrderPayTabsProps> = (props) => {
<MellowCard bordered={false} fullHeight> <MellowCard bordered={false} fullHeight>
{/* <Row gutter={24}> */} {/* <Row gutter={24}> */}
<Tabs defaultActiveKey='1'> <Tabs defaultActiveKey='1'>
{ data.paymentInformationResponses && data.paymentInformationResponses.map(v => <TabPane key={v.id} tab={<TabHeader dataSource={v}/>}> { data.payments && data.payments.map(v => <TabPane key={v.id} tab={<TabHeader dataSource={v}/>}>
<Row> <Row>
<Col className={style.fontGray} span={4}>支付环节: </Col> <Col className={style.fontGray} span={4}>支付环节: </Col>
<Col>{v.payNode}</Col> <Col>{v.payNode}</Col>
......
...@@ -17,17 +17,15 @@ const outOrderCols: any[] = [ ...@@ -17,17 +17,15 @@ const outOrderCols: any[] = [
}, },
{ {
title: '操作角色', title: '操作角色',
dataIndex: 'roleName', dataIndex: 'operatorRoleName',
align: 'center', align: 'center',
key: 'roleName', key: 'operatorRoleName',
}, },
{ {
title: '状态', title: '状态',
dataIndex: 'state', dataIndex: 'statusName',
align: 'center', align: 'center',
key: 'state', key: 'statusName',
render: text => <StatusColors status={text} type='transformOut'/>
// @todo 需传递工作流状态重新render
}, },
{ {
title: '操作', title: '操作',
...@@ -37,16 +35,16 @@ const outOrderCols: any[] = [ ...@@ -37,16 +35,16 @@ const outOrderCols: any[] = [
}, },
{ {
title: '操作时间', title: '操作时间',
dataIndex: 'operationTime', dataIndex: 'createTime',
align: 'center', align: 'center',
key: 'operationTime', key: 'createTime',
render: time => formatTimeString(time) render: time => formatTimeString(time)
}, },
{ {
title: '审核意见', title: '审核意见',
dataIndex: 'auditOpinion', dataIndex: 'remark',
align: 'center', align: 'center',
key: 'auditOpinion', key: 'remark',
}, },
] ]
const sideOrderCols: any[] = [ const sideOrderCols: any[] = [
...@@ -104,28 +102,28 @@ const sideOrderCols: any[] = [ ...@@ -104,28 +102,28 @@ const sideOrderCols: any[] = [
// 订单流转记录 // 订单流转记录
const OrderTransformRecord:React.FC<OrderTransformRecordProps> = (props) => { const OrderTransformRecord:React.FC<OrderTransformRecordProps> = (props) => {
const { data } = useContext(OrderDetailContext) const { data } = useContext(OrderDetailContext)
const { externalProcurementOrderLogResponses, interiorProcurementOrderLogResponses } = data const { outerHistories, innerHistories } = data
return ( return (
<> <>
{ {
(externalProcurementOrderLogResponses?.length>0 || interiorProcurementOrderLogResponses?.length>0) && (outerHistories?.length>0 || innerHistories?.length>0) &&
<MellowCard style={{marginTop: 24}} bordered={false}> <MellowCard style={{marginTop: 24}} bordered={false}>
<Tabs defaultActiveKey="1" animated={false}> <Tabs defaultActiveKey="1" animated={false}>
{ {
externalProcurementOrderLogResponses?.length>0 && <Tabs.TabPane tab='外部订单流转记录' key="1"> outerHistories?.length>0 && <Tabs.TabPane tab='外部订单流转记录' key="1">
<Table <Table
columns={outOrderCols} columns={outOrderCols}
dataSource={externalProcurementOrderLogResponses} dataSource={outerHistories}
pagination={false} pagination={false}
rowKey="id" rowKey="id"
/> />
</Tabs.TabPane> </Tabs.TabPane>
} }
{ {
interiorProcurementOrderLogResponses?.length>0 && <Tabs.TabPane tab='内部订单流转记录' key="2"> innerHistories?.length>0 && <Tabs.TabPane tab='内部订单流转记录' key="2">
<Table <Table
columns={sideOrderCols} columns={sideOrderCols}
dataSource={interiorProcurementOrderLogResponses} dataSource={innerHistories}
pagination={false} pagination={false}
rowKey="id" rowKey="id"
/> />
......
import React, { useState, useEffect, useContext, useRef } from 'react' import React, { useState, useEffect, useRef } from 'react'
import OrderDetailHeader from '../components/OrderDetailHeader' import OrderDetailHeader from '../components/OrderDetailHeader'
import { Link, history } from 'umi' import { Link } from 'umi'
import { orderTypeLabel, SALE_ORDER_STATUS } from './constant'
import { formatTimeString } from '@/utils' import { formatTimeString } from '@/utils'
import { usePageStatus, PageStatus } from '@/hooks/usePageStatus' import { usePageStatus, PageStatus } from '@/hooks/usePageStatus'
import { PublicApi } from '@/services/api' import { PublicApi } from '@/services/api'
import AuditProcess from '@/components/AuditProcess' import AuditProcess from '@/components/AuditProcess'
import { findLastIndexFlowState } from '@/utils'
import OrderDetailWrapper from '../components/OrderDetailWrapper' import OrderDetailWrapper from '../components/OrderDetailWrapper'
import { GlobalConfig } from '@/global/config'
import OrderProductTable from './components/orderProductTable' import OrderProductTable from './components/orderProductTable'
import { OrderDetailContext } from './context' import { OrderDetailContext } from './context'
import OrderMergeInfo from './components/orderMergeInfo' import OrderMergeInfo from './components/orderMergeInfo'
import OrderTransformRecord from './components/orderTransformRecord' import OrderTransformRecord from './components/orderTransformRecord'
import OrderPayTabs from './components/orderPayTabs' import OrderPayTabs from './components/orderPayTabs'
import StatusColors from '../components/StatusColors'
import OrderDeleveRecord from './components/orderDeleveRecord' import OrderDeleveRecord from './components/orderDeleveRecord'
export interface CommonOrderDetailProps {} export interface CommonOrderDetailProps {}
...@@ -22,8 +18,7 @@ export interface CommonOrderDetailProps {} ...@@ -22,8 +18,7 @@ export interface CommonOrderDetailProps {}
const CommonOrderDetail:React.FC<CommonOrderDetailProps> = (props) => { const CommonOrderDetail:React.FC<CommonOrderDetailProps> = (props) => {
const [formData, setFormData] = useState<any>(null) const [formData, setFormData] = useState<any>(null)
let { id, pageStatus, page_type = SALE_ORDER_STATUS.READY_APPROVED_ORDER, orderNo } = usePageStatus() let { id, pageStatus } = usePageStatus()
page_type = Number(page_type)
const payResultVisible = useRef<any>({}) const payResultVisible = useRef<any>({})
const [payResultType, setPayResultType] = useState<'default' | 'preview'>('default') const [payResultType, setPayResultType] = useState<'default' | 'preview'>('default')
useEffect(() => { useEffect(() => {
...@@ -31,8 +26,8 @@ const CommonOrderDetail:React.FC<CommonOrderDetailProps> = (props) => { ...@@ -31,8 +26,8 @@ const CommonOrderDetail:React.FC<CommonOrderDetailProps> = (props) => {
}, []) }, [])
const reloadFormData = () => { const reloadFormData = () => {
if (id || orderNo) { if (id) {
PublicApi.getOrderPlatformOrderDetails({ id, orderNo }).then(({data, code}) => { PublicApi.getOrderPlatformManageDetail({ orderId: id }).then(({data, code}) => {
if (code === 1000) { if (code === 1000) {
setFormData(data) setFormData(data)
} }
...@@ -52,14 +47,13 @@ const CommonOrderDetail:React.FC<CommonOrderDetailProps> = (props) => { ...@@ -52,14 +47,13 @@ const CommonOrderDetail:React.FC<CommonOrderDetailProps> = (props) => {
} }
const detailList = [ const detailList = [
{ label: '对应报价单号', name: 'quotationNo', span: 8, render: text => <Link to={'/'}>{text}</Link> }, { label: '对应报价单号', name: 'quoteNo', span: 8, render: text => <Link to={'/'}>{text}</Link> },
{ label: '订单摘要', name: 'orderThe', span: 8 }, { label: '订单摘要', name: 'digest', span: 8 },
{ label: '供应会员', name: 'supplyMembersName', span: 8 }, { label: '供应会员', name: 'vendorMemberName', span: 8 },
{ label: '下单模式', name: 'orderModel', span: 8, render: text => GlobalConfig.web.orderMode.find(v => v.value === text)?.label || '' }, { label: '下单模式', name: 'orderModeName', span: 8 },
{ label: '订单类型', name: 'type', span: 8, render: text => orderTypeLabel[text] }, { label: '订单类型', name: 'orderTypeName', span: 8 },
{ label: '下单时间', name: 'createTime', span: 8, render: text => formatTimeString(text) }, { label: '下单时间', name: 'createTime', span: 8, render: text => formatTimeString(text) },
{ label: '外部状态', name: 'externalState', span: 8, render: text => <StatusColors type='out' status={text}/> }, { label: '外部状态', name: 'outerStatusName', span: 8 },
// { label: '内部状态', name: 'purchaseOrderInteriorState', span: 8, render: text => <StatusColors type='saleInside' status={text}/> },
] ]
const headerTiTle = formData ? { const headerTiTle = formData ? {
picName: '单', picName: '单',
...@@ -74,13 +68,27 @@ const CommonOrderDetail:React.FC<CommonOrderDetailProps> = (props) => { ...@@ -74,13 +68,27 @@ const CommonOrderDetail:React.FC<CommonOrderDetailProps> = (props) => {
<OrderDetailWrapper> <OrderDetailWrapper>
<div className='gray-wrap'> <div className='gray-wrap'>
{/* 工作流进度 */} {/* 工作流进度 */}
{ pageStatus !== PageStatus.ADD && formData && formData.externalWorkflowFlowRecordLogResponses && <AuditProcess { pageStatus !== PageStatus.ADD && formData && formData.outerSteps && <AuditProcess
customTitleKey='operationalProcess' customTitleKey='stepName'
customKey='state' customKey='step'
outerVerifyCurrent={findLastIndexFlowState(formData.externalWorkflowFlowRecordLogResponses)} outerVerifyCurrent={formData.currentOuterStep}
innerVerifyCurrent={findLastIndexFlowState(formData.interiorWorkflowFlowRecordLogResponses)} innerVerifyCurrent={formData.currentInnerStep}
outerVerifySteps={formData.externalWorkflowFlowRecordLogResponses || null} outerVerifySteps={
innerVerifySteps={formData.interiorWorkflowFlowRecordLogResponses || null} formData.outerSteps ?
formData.outerSteps.map(item => ({
...item,
status: (item.step <= formData.currentOuterStep) ? 'finish' : 'wait',
})) :
null
}
innerVerifySteps={
formData.innerSteps ?
formData.innerSteps.map(item => ({
...item,
status: (item.step <= formData.currentInnerStep) ? 'finish' : 'wait',
})) :
null
}
></AuditProcess> } ></AuditProcess> }
{/* 商品列表 */} {/* 商品列表 */}
......
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