提交 103e1377 作者: 龚洪江

功能:采购审批凭证,发货,上传凭证

上级 2a175508
...@@ -1243,7 +1243,7 @@ export type confirmOrderType = InterFunction< ...@@ -1243,7 +1243,7 @@ export type confirmOrderType = InterFunction<
/** /**
* 订单实付总额 * 订单实付总额
*/ */
orderTotalAmount: number; orderTotalAmount?: number;
/** /**
* 卖家备注 * 卖家备注
*/ */
...@@ -1334,34 +1334,7 @@ export type approvalOrderType = InterFunction< ...@@ -1334,34 +1334,7 @@ export type approvalOrderType = InterFunction<
>; >;
// 采购订单-列表 // 采购订单-列表
export type listPurchaseOrderType = InterListFunction< type purchaseOrderItemType = {
{
/**
* 结束时间
*/
endTime?: string;
/**
* 关键字-订单编号
*/
keyword?: string;
/**
* 开始时间
*/
startTime?: string;
/**
* 订单状态码
*/
statusCode?: number;
/**
* 商家id
*/
thirdBackUserAccountId?: number;
/**
* 用户uid
*/
uid?: string;
},
{
id: number; id: number;
orderNo: string; orderNo: string;
backUserAccountId: number; backUserAccountId: number;
...@@ -1369,7 +1342,7 @@ export type listPurchaseOrderType = InterListFunction< ...@@ -1369,7 +1342,7 @@ export type listPurchaseOrderType = InterListFunction<
uavOrderId: number; uavOrderId: number;
orderAmount: number; orderAmount: number;
statusCode: number; statusCode: number;
createTime: string; createTime: number;
userRemark: null; userRemark: null;
sellerRemark: null; sellerRemark: null;
skuDTOList: { skuDTOList: {
...@@ -1418,92 +1391,107 @@ export type listPurchaseOrderType = InterListFunction< ...@@ -1418,92 +1391,107 @@ export type listPurchaseOrderType = InterListFunction<
*/ */
unitPrice?: number; unitPrice?: number;
}[]; }[];
uavOrderExpressDTO: null; uavOrderExpressDTO: {
uavOrderPayDTOS: null;
contractInfoDTO: null;
}
>;
// 采购订单-详情
export type purchaseOrderDetailType = InterFunction<
{
/**
* id
*/
id: number; id: number;
}, uavOrderId: number;
{ sendExpNo: string;
sendExpCode: string;
takeName: string;
takePhone: string;
takeRegion: string;
takeAddress: string;
sendTime: number;
receiveTime: null;
receive: number;
};
uavOrderPayDTOS: Array<unknown>;
contractInfoDTO?: {
id: number; id: number;
unionId: string;
orderNo: string; orderNo: string;
backUserAccountId: number; contractNo: string;
thirdUserAccountId: number; contractTitle: string;
uavOrderId: number; signStatus: number;
orderAmount: number; singerTime: null;
statusCode: number; createTime: string;
createTime: number; updateTime: string;
userRemark: null; archiveDate: null;
sellerRemark: null; aremark: string;
skuDTOList: { bremark: null;
atransactionId: string;
btransactionId: null;
};
companyName: string;
thirdPhoneNum: string;
payDTOS: {
/** /**
* 下单时间 * 审核状态,0待审批,1通过,2未通过
*/
checkStatus?: number;
/**
* 提交时间
*/ */
createTime?: Date; createTime?: Date;
/** /**
* 订单规格id * id
*/ */
id?: number; id?: number;
/** /**
* 商品id * 支付凭证
*/ */
mallGoodsId?: number; payImgList: string;
/** /**
* 购买数量 * 备注信息
*/ */
orderNum: number; payRemark?: string;
/** /**
* 商品规格id * 未通过原因
*/ */
priceStockId?: number; refuseReason?: string;
/** /**
* 商品规格 * 订单id
*/ */
productSpec: string; uavOrderId?: number;
}[];
};
export type listPurchaseOrderType = InterListFunction<
{
/** /**
* 商品规格图片 * 结束时间
*/ */
skuImage?: string; endTime?: string;
/** /**
* 商品规格编号 * 关键字-订单编号
*/ */
skuNo?: string; keyword?: string;
/** /**
* 商品名称 * 开始时间
*/ */
tradeName?: string; startTime?: string;
/** /**
* 订单id * 订单状态码
*/ */
uavOrderId?: number; statusCode?: number;
/** /**
* 单价 * 商家id
*/
thirdBackUserAccountId?: number;
/**
* 用户uid
*/
uid?: string;
},
purchaseOrderItemType
>;
// 采购订单-详情
export type purchaseOrderDetailType = InterFunction<
{
/**
* id
*/ */
unitPrice?: number;
}[];
uavOrderExpressDTO: {
id: number; id: number;
uavOrderId: number; },
sendExpNo: string; purchaseOrderItemType
sendExpCode: string;
takeName: string;
takePhone: string;
takeRegion: string;
takeAddress: string;
sendTime: number;
receiveTime: null;
receive: number;
};
uavOrderPayDTOS: Array<unknown>;
contractInfoDTO: null;
}
>; >;
// 采购订单-确认 // 采购订单-确认
export type confirmPOrderType = InterFunction< export type confirmPOrderType = InterFunction<
...@@ -1523,3 +1511,81 @@ export type confirmPOrderType = InterFunction< ...@@ -1523,3 +1511,81 @@ export type confirmPOrderType = InterFunction<
}, },
any any
>; >;
// 采购订单-上传付款凭证
export type uploadPOrderType = InterFunction<
{
/**
* 审核状态,0待审批,1通过,2未通过
*/
checkStatus?: number;
/**
* 支付凭证
*/
payImgList?: string;
/**
* 备注信息
*/
payRemark?: string;
/**
* 订单id
*/
uavOrderId?: number;
},
any
>;
// 采购订单-审核
export type uavPoCheckPayType = InterFunction<
{
/**
* 审核状态,0待审批,1通过,2未通过
*/
checkStatus?: number;
/**
* id
*/
id?: number;
/**
* 未通过原因
*/
refuseReason?: string;
/**
* 订单id
*/
uavOrderId?: number;
},
any
>;
// 采购订单-发货
export type uavPoSendType = InterFunction<
{
/**
* 快递编码
*/
sendExpCode?: string;
/**
* 快递编号
*/
sendExpNo?: string;
/**
* 发货-收货详细地址
*/
takeAddress?: string;
/**
* 取货人
*/
takeName?: string;
/**
* 取货人号码
*/
takePhone?: string;
/**
* 地区信息
*/
takeRegion?: string;
/**
* 订单id
*/
uavOrderId?: number;
},
any
>;
...@@ -32,6 +32,9 @@ import { ...@@ -32,6 +32,9 @@ import {
serviceOrderFormListType, serviceOrderFormListType,
serviceOrderStatusType, serviceOrderStatusType,
serviceOrderType, serviceOrderType,
uavPoCheckPayType,
uavPoSendType,
uploadPOrderType,
walletAmountType, walletAmountType,
} from '~/api/interface/orderManageType'; } from '~/api/interface/orderManageType';
...@@ -142,4 +145,10 @@ export class OrderManageAPI { ...@@ -142,4 +145,10 @@ export class OrderManageAPI {
axios.get('/oms/uav-po/getPurchaseOrder', { params }); axios.get('/oms/uav-po/getPurchaseOrder', { params });
// 采购订单-确认 // 采购订单-确认
static confirmPOrder: confirmPOrderType = (data) => axios.post('/oms/uav-po/confirmPOrder', data); static confirmPOrder: confirmPOrderType = (data) => axios.post('/oms/uav-po/confirmPOrder', data);
// 采购订单-上传付款凭证
static uploadPOrder: uploadPOrderType = (data) => axios.post('/oms/uav-po/upLoadPay', data);
// 采购订单-审核
static uavPoCheckPay: uavPoCheckPayType = (data) => axios.post('/oms/uav-po/checkPay', data);
// 采购订单-发货
static uavPoSend: uavPoSendType = (data) => axios.post('/oms/uav-po/send', data);
} }
...@@ -11,20 +11,25 @@ import { ...@@ -11,20 +11,25 @@ import {
RadioChangeEvent, RadioChangeEvent,
message, message,
} from 'antd'; } from 'antd';
import { mallOrderListType } from '~/api/interface/orderManageType';
import { InterListType } from '~/api/interface';
import './index.scss'; import './index.scss';
import { OrderManageAPI } from '~/api'; import { OrderManageAPI } from '~/api';
interface selfProps { interface selfProps {
onCancel: () => void; onCancel: () => void;
onOk: () => void; onOk: () => void;
mallOrderItem: mallOrderItemType | undefined; mallOrderItem: any;
type: number; //0:采购订单,1:商城订单
} }
// 订单对象类型 // 订单对象类型
type mallOrderItemType = InterListType<mallOrderListType>[0]; // type mallOrderItemType = InterListType<mallOrderListType>[0];
const ApprovalOrder: FC<ModalProps & selfProps> = ({ open, onCancel, onOk, mallOrderItem }) => { const ApprovalOrder: FC<ModalProps & selfProps> = ({
open,
onCancel,
onOk,
mallOrderItem,
type,
}) => {
const [form] = Form.useForm<{ checkStatus: number; refuseReason: string }>(); const [form] = Form.useForm<{ checkStatus: number; refuseReason: string }>();
const [checkStatus, setCheckStatus] = useState<number>(1); const [checkStatus, setCheckStatus] = useState<number>(1);
const radioChange = (e: RadioChangeEvent) => { const radioChange = (e: RadioChangeEvent) => {
...@@ -32,13 +37,15 @@ const ApprovalOrder: FC<ModalProps & selfProps> = ({ open, onCancel, onOk, mallO ...@@ -32,13 +37,15 @@ const ApprovalOrder: FC<ModalProps & selfProps> = ({ open, onCancel, onOk, mallO
}; };
// 获取需要审批的凭证 // 获取需要审批的凭证
const getApproveObj = () => { const getApproveObj = () => {
return mallOrderItem?.payDTOList?.find((v) => v.checkStatus === 0); return type === 1
? mallOrderItem?.payDTOList?.find((v: any) => v.checkStatus === 0)
: mallOrderItem?.payDTOS?.find((v: any) => v.checkStatus === 0);
}; };
const handleOk = () => { const handleOk = () => {
if (mallOrderItem) { if (mallOrderItem) {
form.validateFields().then((values) => { form.validateFields().then((values) => {
OrderManageAPI.approvalOrder({ OrderManageAPI[type === 1 ? 'approvalOrder' : 'uavPoCheckPay']({
uavOrderId: mallOrderItem?.id, uavOrderId: mallOrderItem?.id,
checkStatus: values.checkStatus, checkStatus: values.checkStatus,
refuseReason: values.refuseReason || undefined, refuseReason: values.refuseReason || undefined,
......
...@@ -12,11 +12,18 @@ type sendMallType = Omit<Exclude<InterReqType<mallOrderSendType>, undefined>, 't ...@@ -12,11 +12,18 @@ type sendMallType = Omit<Exclude<InterReqType<mallOrderSendType>, undefined>, 't
}; };
interface selfProps { interface selfProps {
currentOrderItem: mallOrderType | undefined; currentOrderItem: any;
onCancel: () => void; onCancel: () => void;
onOk: () => void; onOk: () => void;
type: number; //0:采购订单,1:商城订单
} }
const ShipmentsOrder: FC<ModalProps & selfProps> = ({ onOk, onCancel, open, currentOrderItem }) => { const ShipmentsOrder: FC<ModalProps & selfProps> = ({
onOk,
onCancel,
open,
currentOrderItem,
type,
}) => {
const [form] = Form.useForm<sendMallType>(); const [form] = Form.useForm<sendMallType>();
const [listExpressInfo, setListExpressInfo] = useState<{ label: string; value: string }[]>([]); const [listExpressInfo, setListExpressInfo] = useState<{ label: string; value: string }[]>([]);
...@@ -29,9 +36,9 @@ const ShipmentsOrder: FC<ModalProps & selfProps> = ({ onOk, onCancel, open, curr ...@@ -29,9 +36,9 @@ const ShipmentsOrder: FC<ModalProps & selfProps> = ({ onOk, onCancel, open, curr
const handleOk = () => { const handleOk = () => {
form.validateFields().then((value) => { form.validateFields().then((value) => {
OrderManageAPI.mallOrderSend({ OrderManageAPI[type === 1 ? 'mallOrderSend' : 'uavPoSend']({
...value, ...value,
uavOrderId: currentOrderItem?.id, uavOrderId: type === 1 ? currentOrderItem?.id : currentOrderItem.uavOrderId,
id: currentOrderItem?.uavOrderExpressDTO.id, id: currentOrderItem?.uavOrderExpressDTO.id,
takeRegion: value?.takeRegion?.join('/'), takeRegion: value?.takeRegion?.join('/'),
}).then(({ code }) => { }).then(({ code }) => {
......
...@@ -132,6 +132,8 @@ const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, orderItem ...@@ -132,6 +132,8 @@ const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, orderItem
OrderManageAPI[type === 1 ? 'confirmOrder' : 'confirmPOrder']({ OrderManageAPI[type === 1 ? 'confirmOrder' : 'confirmPOrder']({
...values[0], ...values[0],
id: orderItem.id, id: orderItem.id,
orderAmount: type === 1 ? undefined : values[0].orderTotalAmount,
orderTotalAmount: type === 1 ? values[0].orderTotalAmount : undefined,
}).then(({ code, message: msg }) => { }).then(({ code, message: msg }) => {
if (code === '200') { if (code === '200') {
message.success('确认订单成功'); message.success('确认订单成功');
......
...@@ -24,5 +24,20 @@ ...@@ -24,5 +24,20 @@
} }
} }
} }
.pay-item{
display: flex;
margin-bottom: 10px;
&-label{
}
&-content{
display: flex;
align-items: center;
.ant-image{
margin-right: 10px;
margin-bottom: 10px;
}
}
}
} }
import { Button, Descriptions, Image, Table } from 'antd'; import { Button, Descriptions, Image, Table } from 'antd';
import { useNavigate, useSearchParams } from 'react-router-dom'; import { useNavigate, useSearchParams } from 'react-router-dom';
import { OrderManageAPI } from '~/api'; import { FddInterfaceAPI, OrderManageAPI } from '~/api';
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import { purchaseOrderDetailType } from '~/api/interface/orderManageType'; import { purchaseOrderDetailType } from '~/api/interface/orderManageType';
import { InterDataType } from '~/api/interface'; import { InterDataType } from '~/api/interface';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import { ColumnsType } from 'antd/es/table'; import { ColumnsType } from 'antd/es/table';
import './index.scss'; import './index.scss';
import { decode } from 'js-base64';
import FileSaver from 'file-saver';
// 采购订单详情返回类型 // 采购订单详情返回类型
type detailType = InterDataType<purchaseOrderDetailType>; type detailType = InterDataType<purchaseOrderDetailType>;
...@@ -23,7 +25,7 @@ const ProcurementOrderDetail = () => { ...@@ -23,7 +25,7 @@ const ProcurementOrderDetail = () => {
align: 'center', align: 'center',
width: '20%', width: '20%',
render: (_text, record) => ( render: (_text, record) => (
<div className='mall-sku-item'> <div className='procurement-sku-item'>
<Image src={record.skuImage} className='sku-img' /> <Image src={record.skuImage} className='sku-img' />
<div className='sku-info'> <div className='sku-info'>
<div className='info-name'>{record.tradeName}</div> <div className='info-name'>{record.tradeName}</div>
...@@ -80,6 +82,28 @@ const ProcurementOrderDetail = () => { ...@@ -80,6 +82,28 @@ const ProcurementOrderDetail = () => {
const backRoute = () => { const backRoute = () => {
navigate(-1); navigate(-1);
}; };
// 合同预览
const contractPreview = () => {
if (purchaseOrderDetail?.contractInfoDTO?.contractNo) {
FddInterfaceAPI.viewContract({
contractId: purchaseOrderDetail?.contractInfoDTO?.contractNo,
}).then(({ result }) => {
window.open(decode(result), '_blank');
});
}
};
// 合同下载
const downloadContract = () => {
if (purchaseOrderDetail?.contractInfoDTO?.contractNo) {
FddInterfaceAPI.downloadContract({
contractId: purchaseOrderDetail?.contractInfoDTO?.contractNo,
}).then(({ result }) => {
FileSaver.saveAs(decode(result), `${purchaseOrderDetail?.contractInfoDTO?.contractNo}.pdf`);
});
}
};
useEffect(() => { useEffect(() => {
getPurchaseOrderDetail(Number(searchParams.get('id'))); getPurchaseOrderDetail(Number(searchParams.get('id')));
getOrderStatusList(); getOrderStatusList();
...@@ -96,20 +120,23 @@ const ProcurementOrderDetail = () => { ...@@ -96,20 +120,23 @@ const ProcurementOrderDetail = () => {
</Button> </Button>
} }
> >
<Descriptions.Item label='供应商名称:'>供应商名称:</Descriptions.Item> <Descriptions.Item label='供应商名称:'>
<Descriptions.Item label='供应商电话:'>供应商电话:</Descriptions.Item> {purchaseOrderDetail?.companyName}
<Descriptions.Item label='Live'>Hangzhou, Zhejiang</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label='供应商电话:'>
{purchaseOrderDetail?.thirdPhoneNum}
</Descriptions.Item>
</Descriptions> </Descriptions>
<Descriptions title='订单' style={{ marginTop: '10px' }} column={3}> <Descriptions title='订单' style={{ marginTop: '10px' }} column={3}>
<Descriptions.Item label='订单编号:' labelStyle={{ color: '#000' }}> <Descriptions.Item label='订单编号:' labelStyle={{ color: '#000' }}>
{purchaseOrderDetail?.orderNo} {purchaseOrderDetail?.orderNo}
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label='创建时间:' labelStyle={{ color: '#000' }} span={2}> <Descriptions.Item label='创建时间:' labelStyle={{ color: '#000' }}>
{dayjs(purchaseOrderDetail?.createTime).format('YYYY-MM-DD HH:mm:ss')} {dayjs(purchaseOrderDetail?.createTime).format('YYYY-MM-DD HH:mm:ss')}
</Descriptions.Item> </Descriptions.Item>
{/*<Descriptions.Item label='合同编号:' labelStyle={{ color: '#000' }}>*/} <Descriptions.Item label='合同编号:' labelStyle={{ color: '#000' }}>
{/* 3*/} {purchaseOrderDetail?.contractInfoDTO?.contractNo || '--'}
{/*</Descriptions.Item>*/} </Descriptions.Item>
<Descriptions.Item span={3}> <Descriptions.Item span={3}>
<Table <Table
size='small' size='small'
...@@ -139,10 +166,39 @@ const ProcurementOrderDetail = () => { ...@@ -139,10 +166,39 @@ const ProcurementOrderDetail = () => {
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label='物流进度:'>--</Descriptions.Item> <Descriptions.Item label='物流进度:'>--</Descriptions.Item>
</Descriptions> </Descriptions>
<Descriptions title='凭证' bordered style={{ marginTop: '10px' }}> <Descriptions title='凭证及合同' bordered style={{ marginTop: '10px' }}>
<Descriptions.Item label='付款凭证:'>供应商名称:</Descriptions.Item> <Descriptions.Item label='付款凭证:'>
<Descriptions.Item label='验收商品:'>供应商电话:</Descriptions.Item> {purchaseOrderDetail?.payDTOS.map((v, index) => (
<Descriptions.Item label='合同信息:'>Hangzhou, Zhejiang</Descriptions.Item> <div className='pay-item' key={index}>
<div className='pay-item-laebl'>
第{index + 1}次上传{' '}
<span style={{ color: 'red' }}>
({v.checkStatus === 0 ? '待审批' : v.checkStatus === 1 ? '已通过' : '未通过'})
</span>
</div>
<div className='pay-item-content'>
{JSON.parse(v.payImgList).map((i: any, j: number) => (
<Image key={j} src={i.filePath} width={100} height={100} />
))}
</div>
</div>
))}
</Descriptions.Item>
<Descriptions.Item label='合同信息:'>
{purchaseOrderDetail?.contractInfoDTO ? (
<>
<Button type='link' onClick={contractPreview}>
查看
</Button>
<Button type='link' onClick={downloadContract}>
下载
</Button>
</>
) : (
'--'
)}
</Descriptions.Item>
</Descriptions> </Descriptions>
</div> </div>
); );
......
import { Form, Input, message, Modal, ModalProps } from 'antd';
import { FC, useState } from 'react';
import { Uploader } from '~/components/uploader';
import { UploadOutlined } from '@ant-design/icons';
import { UploadFile } from 'antd/es/upload/interface';
import { OrderManageAPI } from '~/api';
import { listPurchaseOrderType } from '~/api/interface/orderManageType';
import { InterListType } from '~/api/interface';
// 采购订单列表返回类型
type procurementOrderType = InterListType<listPurchaseOrderType>[0];
interface selfProps {
onOk: () => void;
onCancel: () => void;
currentOrderItem: procurementOrderType | undefined;
}
const UploadPayment: FC<ModalProps & selfProps> = ({ open, currentOrderItem, onCancel, onOk }) => {
const [form] = Form.useForm<{ payImgList: string; payRemark: string }>();
const [fileList, setFileList] = useState<UploadFile[]>([]);
// 上传成功
const uploadSuccess = (value: any) => {
setFileList([...value]);
form.setFieldValue('payImgList', JSON.stringify(value.map((v: any) => ({ filePath: v.url }))));
};
const handleOk = () => {
if (currentOrderItem) {
form.validateFields().then((values) => {
OrderManageAPI.uploadPOrder({ ...values, uavOrderId: currentOrderItem.id }).then(
({ code }) => {
if (code === '200') {
message.success('上传凭证成功'), form.resetFields();
setFileList([]);
onOk();
}
},
);
});
}
};
const handleCancel = () => {
form.resetFields();
setFileList([]);
onCancel();
};
return (
<Modal open={open} onOk={handleOk} onCancel={handleCancel} title='上传付款凭证'>
<Form form={form} labelCol={{ span: 2 }} wrapperCol={{ span: 20 }}>
<Form.Item
label='凭证'
rules={[{ required: true, message: '请上传付款凭证' }]}
name='payImgList'
>
<Uploader
fileUpload
listType='picture-card'
onChange={uploadSuccess}
fileLength={4}
defaultFileList={fileList}
>
<UploadOutlined />
</Uploader>
</Form.Item>
<Form.Item label='备注' name='payRemark'>
<Input.TextArea placeholder='请输入备注' maxLength={70} rows={4} showCount />
</Form.Item>
</Form>
</Modal>
);
};
export default UploadPayment;
import SearchBox from '~/components/search-box'; import SearchBox from '~/components/search-box';
import { Button, Image, Table } from 'antd'; import { Button, Image, Table } from 'antd';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { OrderManageAPI } from '~/api'; import { FddInterfaceAPI, OrderManageAPI } from '~/api';
import { ColumnsType } from 'antd/es/table/InternalTable'; import { ColumnsType } from 'antd/es/table/InternalTable';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { InterListType, InterReqListType, PaginationProps } from '~/api/interface'; import { InterListType, InterReqListType, PaginationProps } from '~/api/interface';
...@@ -12,6 +12,11 @@ import './index.scss'; ...@@ -12,6 +12,11 @@ import './index.scss';
import { filterObjAttr } from '~/utils'; import { filterObjAttr } from '~/utils';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import qs from 'query-string'; import qs from 'query-string';
import IframeModal from '~/components/modal/iframeModal';
import { decode } from 'js-base64';
import UploadPayment from '~/pages/orderManage/procurementOrder/orderList/components/uploadPayment';
import ApprovalOrder from '~/components/order/productOrder/approvalOrder';
import ShipmentsOrder from '~/components/order/productOrder/shipmentsOrder';
// 采购订单列表返回类型 // 采购订单列表返回类型
type procurementOrderListType = InterListType<listPurchaseOrderType>; type procurementOrderListType = InterListType<listPurchaseOrderType>;
...@@ -32,14 +37,44 @@ const ProcurementOrderList = () => { ...@@ -32,14 +37,44 @@ const ProcurementOrderList = () => {
}, },
}, },
{ {
btnStr: '签署合同',
status: 300,
btnClick: (record: procurementOrderListType[0]) => {
setCurrentOrderItem(record);
getPurchaseOrderDetail(record.id).then((result: procurementOrderListType[0]) => {
if (result.contractInfoDTO) {
contractSign(result.contractInfoDTO?.contractNo);
}
});
},
},
{
btnStr: '上传付款凭证',
status: 400,
btnClick: (record: procurementOrderListType[0]) => {
setCurrentOrderItem(record);
setUploadPaymentShow(true);
},
},
{
btnStr: '凭证审批', btnStr: '凭证审批',
status: 420, status: 420,
btnClick: (record: procurementOrderListType[0]) => {}, btnClick: (record: procurementOrderListType[0]) => {
setCurrentOrderItem({ ...record });
setApprovalOrderShow(true);
},
}, },
{ {
btnStr: '发货', btnStr: '发货',
status: 500, status: 500,
btnClick: (record: procurementOrderListType[0]) => {}, btnClick: (record: procurementOrderListType[0]) => {
getPurchaseOrderDetail(record.id).then((result: procurementOrderListType[0]) => {
if (result) {
setCurrentOrderItem({ ...result });
setShipmentsOrderShow(true);
}
});
},
}, },
]; ];
// 订单状态 // 订单状态
...@@ -50,7 +85,6 @@ const ProcurementOrderList = () => { ...@@ -50,7 +85,6 @@ const ProcurementOrderList = () => {
>([]); >([]);
// 当前选择的是第几个按钮 // 当前选择的是第几个按钮
const [statusCodeButtonIndex, setStatusCodeButtonIndex] = useState<number>(0); const [statusCodeButtonIndex, setStatusCodeButtonIndex] = useState<number>(0);
// 表格数据 // 表格数据
const [tableData, setTableData] = useState<procurementOrderListType>([]); const [tableData, setTableData] = useState<procurementOrderListType>([]);
const [currentOrderItem, setCurrentOrderItem] = useState<procurementOrderListType[0]>(); const [currentOrderItem, setCurrentOrderItem] = useState<procurementOrderListType[0]>();
...@@ -110,7 +144,16 @@ const ProcurementOrderList = () => { ...@@ -110,7 +144,16 @@ const ProcurementOrderList = () => {
{ {
title: '供应商信息', title: '供应商信息',
align: 'center', align: 'center',
render: () => <TableItem />, render: (_text: any, record) => (
<TableItem
tr={
<div>
<div>{record.companyName}</div>
<div>{record.thirdPhoneNum}</div>
</div>
}
/>
),
}, },
{ {
title: '订单状态', title: '订单状态',
...@@ -133,7 +176,16 @@ const ProcurementOrderList = () => { ...@@ -133,7 +176,16 @@ const ProcurementOrderList = () => {
}, },
{ {
title: '操作', title: '操作',
align: 'center', onHeaderCell: () => ({
style: {
textAlign: 'center',
},
}),
onCell: () => ({
style: {
textAlign: 'right',
},
}),
render: (_text: any, record) => ( render: (_text: any, record) => (
<TableItem <TableItem
tr={ tr={
...@@ -159,6 +211,13 @@ const ProcurementOrderList = () => { ...@@ -159,6 +211,13 @@ const ProcurementOrderList = () => {
]; ];
// 订单流程操作 // 订单流程操作
const [sureOrderShow, setSureOrderShow] = useState<boolean>(false); const [sureOrderShow, setSureOrderShow] = useState<boolean>(false);
const [iframeModalShow, setIframeModalShow] = useState<boolean>(false);
const [uploadPaymentShow, setUploadPaymentShow] = useState<boolean>(false);
const [approvalOrderShow, setApprovalOrderShow] = useState<boolean>(false);
const [shipmentsOrderShow, setShipmentsOrderShow] = useState<boolean>(false);
// 合同地址
const [contractUrl, setContractUrl] = useState<string>('');
// 获取当前操作按钮 // 获取当前操作按钮
const getCurrentOperateBtn = (status: number) => { const getCurrentOperateBtn = (status: number) => {
...@@ -186,6 +245,11 @@ const ProcurementOrderList = () => { ...@@ -186,6 +245,11 @@ const ProcurementOrderList = () => {
setTableData(result.list || []); setTableData(result.list || []);
}); });
}; };
// 获取采购订单详情
const getPurchaseOrderDetail = async (id: number) => {
const { result } = await OrderManageAPI.getPurchaseOrderDetail({ id });
return Promise.resolve(result);
};
// 分页 // 分页
const paginationChange = (pageNo: number, pageSize: number) => { const paginationChange = (pageNo: number, pageSize: number) => {
pagination.pageNo = pageNo; pagination.pageNo = pageNo;
...@@ -205,11 +269,11 @@ const ProcurementOrderList = () => { ...@@ -205,11 +269,11 @@ const ProcurementOrderList = () => {
const searchSuccess = (value: any) => { const searchSuccess = (value: any) => {
pagination.pageNo = 1; pagination.pageNo = 1;
pagination.pageSize = 10; pagination.pageSize = 10;
const reqData = filterObjAttr(value, ['rangeTime']); const reqData = { ...filterObjAttr(value, ['rangeTime']), ...query };
setQuery({ ...reqData }); setQuery({ ...reqData });
getListPurchaseOrder(reqData); getListPurchaseOrder(reqData);
}; };
// 采购订单详情 // 跳转采购订单详情
const toProcurementOrderDetail = (record: procurementOrderListType[0]) => { const toProcurementOrderDetail = (record: procurementOrderListType[0]) => {
navigate({ navigate({
pathname: '/orderManage/procurementOrder/detail', pathname: '/orderManage/procurementOrder/detail',
...@@ -219,16 +283,55 @@ const ProcurementOrderList = () => { ...@@ -219,16 +283,55 @@ const ProcurementOrderList = () => {
// 确认订单 // 确认订单
const sureOrderOk = () => { const sureOrderOk = () => {
getListPurchaseOrder(query);
setSureOrderShow(false); setSureOrderShow(false);
}; };
const sureOrderCancel = () => { const sureOrderCancel = () => {
setSureOrderShow(false); setSureOrderShow(false);
}; };
// 签署合同
const contractSign = (contractId: string) => {
FddInterfaceAPI.signContract({ contractId, port: 1 }).then(({ result }) => {
if (result) {
setContractUrl(decode(result));
setIframeModalShow(true);
}
});
};
const iframeModalCancel = () => {
setIframeModalShow(false);
getListPurchaseOrder(query);
};
// 上传付款凭证
const uploadPaymentCancel = () => {
setUploadPaymentShow(false);
};
const uploadPaymentOk = () => {
setUploadPaymentShow(false);
getListPurchaseOrder(query);
};
useEffect(() => { useEffect(() => {
getOrderStatusList(); getOrderStatusList();
getListPurchaseOrder(); getListPurchaseOrder();
}, []); }, []);
// 凭证审批
const approvalOrderOk = () => {
setApprovalOrderShow(false);
};
const approvalOrderCancel = () => {
setApprovalOrderShow(false);
getListPurchaseOrder(query);
};
// 发货
const shipmentsOrderCancel = () => {
setShipmentsOrderShow(false);
};
const shipmentsOrderOk = () => {
setShipmentsOrderShow(false);
getListPurchaseOrder(query);
};
return ( return (
<div className='procurement-order-list'> <div className='procurement-order-list'>
<SearchBox <SearchBox
...@@ -278,6 +381,7 @@ const ProcurementOrderList = () => { ...@@ -278,6 +381,7 @@ const ProcurementOrderList = () => {
showTotal: (total, range) => `当前 ${range[0]}-${range[1]} 条记录 / 共 ${total} 条数据`, showTotal: (total, range) => `当前 ${range[0]}-${range[1]} 条记录 / 共 ${total} 条数据`,
}} }}
/> />
{/*确认订单*/}
<SureOrder <SureOrder
open={sureOrderShow} open={sureOrderShow}
onCancel={sureOrderCancel} onCancel={sureOrderCancel}
...@@ -285,6 +389,36 @@ const ProcurementOrderList = () => { ...@@ -285,6 +389,36 @@ const ProcurementOrderList = () => {
orderItem={currentOrderItem} orderItem={currentOrderItem}
type={0} type={0}
/> />
{/*签署合同*/}
<IframeModal
url={contractUrl}
title='合同签署'
open={iframeModalShow}
onCancel={iframeModalCancel}
/>
{/*上传凭证*/}
<UploadPayment
open={uploadPaymentShow}
onCancel={uploadPaymentCancel}
onOk={uploadPaymentOk}
currentOrderItem={currentOrderItem}
/>
{/*凭证审批*/}
<ApprovalOrder
mallOrderItem={currentOrderItem}
type={0}
open={approvalOrderShow}
onCancel={approvalOrderCancel}
onOk={approvalOrderOk}
/>
{/*发货*/}
<ShipmentsOrder
open={shipmentsOrderShow}
onCancel={shipmentsOrderCancel}
onOk={shipmentsOrderOk}
currentOrderItem={currentOrderItem}
type={0}
/>
</div> </div>
); );
}; };
......
...@@ -8,8 +8,8 @@ import { OrderManageAPI } from '~/api'; ...@@ -8,8 +8,8 @@ import { OrderManageAPI } from '~/api';
import { mallOrderListType } from '~/api/interface/orderManageType'; import { mallOrderListType } from '~/api/interface/orderManageType';
import { InterListType, InterReqType } from '~/api/interface'; import { InterListType, InterReqType } from '~/api/interface';
import SureOrder from '~/components/order/productOrder/sureOrder'; import SureOrder from '~/components/order/productOrder/sureOrder';
import ApprovalOrder from './components/approvalOrder'; import ApprovalOrder from '~/components/order/productOrder/approvalOrder';
import ShipmentsOrder from './components/shipmentsOrder'; import ShipmentsOrder from '~/components/order/productOrder/shipmentsOrder';
import RemarkModal from '~/pages/orderManage/productOrder/orderList/components/remarkModal'; import RemarkModal from '~/pages/orderManage/productOrder/orderList/components/remarkModal';
import TableItem from '~/components/order/selfTableItem'; import TableItem from '~/components/order/selfTableItem';
import { filterObjAttr } from '~/utils'; import { filterObjAttr } from '~/utils';
...@@ -482,6 +482,7 @@ function ProductOrderView() { ...@@ -482,6 +482,7 @@ function ProductOrderView() {
onCancel={approvalOrderCancel} onCancel={approvalOrderCancel}
onOk={approvalOrderOk} onOk={approvalOrderOk}
mallOrderItem={currentOrderItem} mallOrderItem={currentOrderItem}
type={1}
/> />
{/*发货*/} {/*发货*/}
<ShipmentsOrder <ShipmentsOrder
...@@ -489,6 +490,7 @@ function ProductOrderView() { ...@@ -489,6 +490,7 @@ function ProductOrderView() {
onCancel={shipmentsOrderCancel} onCancel={shipmentsOrderCancel}
onOk={shipmentsOrderOk} onOk={shipmentsOrderOk}
currentOrderItem={currentOrderItem} currentOrderItem={currentOrderItem}
type={1}
/> />
{/*卖家备注*/} {/*卖家备注*/}
<RemarkModal <RemarkModal
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论