提交 1ecf4ce3 作者: 龚洪江

修复:采购订单确认订单,地址显示到区级

上级 866b8756
...@@ -23,15 +23,16 @@ import IframeModal from '~/components/modal/iframeModal'; ...@@ -23,15 +23,16 @@ import IframeModal from '~/components/modal/iframeModal';
import { decode } from 'js-base64'; import { decode } from 'js-base64';
import { UploadFile } from 'antd/es/upload/interface'; import { UploadFile } from 'antd/es/upload/interface';
// 订单对象类型 // 商城订单对象类型
type mallOrderItemType = InterListType<mallOrderListType>[0]; type mallOrderItemType = InterListType<mallOrderListType>[0];
interface selfProps { interface selfProps {
onCancel: () => void; onCancel: () => void;
onOk: () => void; onOk: () => void;
mallOrderItem: mallOrderItemType | undefined; orderItem: any;
type: number; //0:采购订单,1:商城订单
} }
const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, mallOrderItem }) => { const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, orderItem, type }) => {
const [orderInfoForm] = Form.useForm<{ const [orderInfoForm] = Form.useForm<{
orderTotalAmount: number; orderTotalAmount: number;
deliveryTime: string; deliveryTime: string;
...@@ -81,13 +82,13 @@ const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, mallOrder ...@@ -81,13 +82,13 @@ const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, mallOrder
}; };
// 合同上传fdd // 合同上传fdd
const uploadContract = () => { const uploadContract = () => {
if (mallOrderItem) { if (orderItem) {
contractForm contractForm
.validateFields() .validateFields()
.then((values) => { .then((values) => {
FddInterfaceAPI.uploadContract({ FddInterfaceAPI.uploadContract({
docUrl: values.contractUrl, docUrl: values.contractUrl,
orderNo: mallOrderItem.orderNo, orderNo: orderItem.orderNo,
port: 1, port: 1,
title: values.contractTitle, title: values.contractTitle,
}).then(({ result }) => { }).then(({ result }) => {
...@@ -113,7 +114,7 @@ const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, mallOrder ...@@ -113,7 +114,7 @@ const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, mallOrder
}; };
// 用户钱包信息 // 用户钱包信息
const getWalletAmount = () => { const getWalletAmount = () => {
OrderManageAPI.getWalletAmount({ userAccountId: mallOrderItem?.userAccountId }).then( OrderManageAPI.getWalletAmount({ userAccountId: orderItem?.userAccountId }).then(
({ result }) => { ({ result }) => {
if (result) { if (result) {
orderInfoForm.setFieldsValue({ orderInfoForm.setFieldsValue({
...@@ -125,22 +126,23 @@ const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, mallOrder ...@@ -125,22 +126,23 @@ const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, mallOrder
); );
}; };
const handleOk = () => { const handleOk = () => {
if (mallOrderItem) { if (orderItem) {
Promise.all([orderInfoForm.validateFields(), contractForm.validateFields()]) Promise.all([orderInfoForm.validateFields(), contractForm.validateFields()])
.then((values) => { .then((values) => {
OrderManageAPI.confirmOrder({ ...values[0], id: mallOrderItem.id }).then( OrderManageAPI[type === 1 ? 'confirmOrder' : 'confirmPOrder']({
({ code, message: msg }) => { ...values[0],
if (code === '200') { id: orderItem.id,
message.success('确认订单成功'); }).then(({ code, message: msg }) => {
orderInfoForm.resetFields(); if (code === '200') {
contractForm.resetFields(); message.success('确认订单成功');
setContractFileList([]); orderInfoForm.resetFields();
onOk(); contractForm.resetFields();
} else { setContractFileList([]);
message.error(msg); onOk();
} } else {
}, message.error(msg);
); }
});
}) })
.catch((error: any) => { .catch((error: any) => {
message.warning(error?.errorFields[0]?.errors[0]); message.warning(error?.errorFields[0]?.errors[0]);
...@@ -155,63 +157,19 @@ const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, mallOrder ...@@ -155,63 +157,19 @@ const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, mallOrder
}; };
useEffect(() => { useEffect(() => {
if (mallOrderItem) { if (orderItem) {
getWalletAmount(); if (type === 1) {
getWalletAmount();
}
orderInfoForm.setFieldValue(
'orderTotalAmount',
type === 1 ? orderItem.orderTotalAmount : orderItem.orderAmount,
);
} }
}, [mallOrderItem]); }, [orderItem, type]);
return ( return (
<Modal open={open} title='确认订单' onOk={handleOk} onCancel={handleCancel} width={800}> <Modal open={open} title='确认订单' onOk={handleOk} onCancel={handleCancel} width={800}>
<div className='sure-order'> <div className='sure-order'>
{/*<div className='address-info'>*/}
{/* <div className='address-info-title'>收货信息:</div>*/}
{/* <div className='address-info-form'>*/}
{/* <Form labelCol={{ span: 5 }} wrapperCol={{ span: 16 }}>*/}
{/* <Form.Item*/}
{/* label='收货人'*/}
{/* name='takeName'*/}
{/* // rules={[{ required: true, validator: validateUserName }]}*/}
{/* >*/}
{/* <Input placeholder='请输入收货人' style={{ width: '300px' }} />*/}
{/* </Form.Item>*/}
{/* <Form.Item*/}
{/* label='联系方式'*/}
{/* name='takePhone'*/}
{/* // rules={[{ required: true, validator: validatePhone }]}*/}
{/* >*/}
{/* <Input placeholder='请输入联系方式' style={{ width: '300px' }} />*/}
{/* </Form.Item>*/}
{/* <Form.Item*/}
{/* label='所属地区'*/}
{/* rules={[{ required: true, message: '请输入所属地区' }]}*/}
{/* name='takeRegion'*/}
{/* >*/}
{/* <Cascader*/}
{/* // options={location}*/}
{/* style={{ width: '300px' }}*/}
{/* fieldNames={{*/}
{/* label: 'name',*/}
{/* value: 'name',*/}
{/* children: 'childInfo',*/}
{/* }}*/}
{/* placeholder='请选择所属地区'*/}
{/* />*/}
{/* </Form.Item>*/}
{/* <Form.Item*/}
{/* label='详细地址'*/}
{/* name='takeAddress'*/}
{/* rules={[{ required: true, message: '请输入详细地址' }]}*/}
{/* >*/}
{/* <Input.TextArea*/}
{/* maxLength={250}*/}
{/* placeholder='请输入详细地址'*/}
{/* showCount*/}
{/* rows={4}*/}
{/* style={{ width: '300px' }}*/}
{/* />*/}
{/* </Form.Item>*/}
{/* </Form>*/}
{/* </div>*/}
{/*</div>*/}
<div className='order-info'> <div className='order-info'>
<div className='order-info-title'>订单信息:</div> <div className='order-info-title'>订单信息:</div>
<Row> <Row>
...@@ -221,7 +179,7 @@ const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, mallOrder ...@@ -221,7 +179,7 @@ const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, mallOrder
<Table <Table
bordered bordered
columns={tableColumns} columns={tableColumns}
dataSource={mallOrderItem?.skuDTOList || []} dataSource={orderItem?.skuDTOList || []}
pagination={false} pagination={false}
rowKey='id' rowKey='id'
/> />
...@@ -235,19 +193,25 @@ const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, mallOrder ...@@ -235,19 +193,25 @@ const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, mallOrder
> >
<Input placeholder='请输入实付总额' suffix='元' maxLength={30} /> <Input placeholder='请输入实付总额' suffix='元' maxLength={30} />
</Form.Item> </Form.Item>
<Form.Item label='云享金' name='cashAmt'> {type === 1 ? (
<Input placeholder='请输入抵扣云享金' suffix='元' /> <>
</Form.Item> <Form.Item label='云享金' name='cashAmt'>
<Form.Item label='佣金' name='totalSalary'> <Input placeholder='请输入抵扣云享金' suffix='元' />
<Input placeholder='请输入抵扣佣金' suffix='元' /> </Form.Item>
</Form.Item> <Form.Item label='佣金' name='totalSalary'>
<Form.Item <Input placeholder='请输入抵扣佣金' suffix='元' />
label='订单交期' </Form.Item>
name='deliveryTime' <Form.Item
rules={[{ required: true, message: '请选择订单交期' }]} label='订单交期'
> name='deliveryTime'
<DatePicker /> rules={[{ required: true, message: '请选择订单交期' }]}
</Form.Item> >
<DatePicker />
</Form.Item>
</>
) : (
''
)}
</Form> </Form>
</div> </div>
</Col> </Col>
......
...@@ -7,6 +7,7 @@ import { useNavigate } from 'react-router-dom'; ...@@ -7,6 +7,7 @@ import { useNavigate } from 'react-router-dom';
import { InterListType, InterReqListType, PaginationProps } from '~/api/interface'; import { InterListType, InterReqListType, PaginationProps } from '~/api/interface';
import { listPurchaseOrderType } from '~/api/interface/orderManageType'; import { listPurchaseOrderType } from '~/api/interface/orderManageType';
import TableItem from '~/components/order/selfTableItem'; import TableItem from '~/components/order/selfTableItem';
import SureOrder from '~/components/order/productOrder/sureOrder';
import './index.scss'; import './index.scss';
import { filterObjAttr } from '~/utils'; import { filterObjAttr } from '~/utils';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
...@@ -25,7 +26,10 @@ const ProcurementOrderList = () => { ...@@ -25,7 +26,10 @@ const ProcurementOrderList = () => {
{ {
btnStr: '确认订单', btnStr: '确认订单',
status: 200, status: 200,
btnClick: (record: procurementOrderListType[0]) => {}, btnClick: (record: procurementOrderListType[0]) => {
setCurrentOrderItem(record);
setSureOrderShow(true);
},
}, },
{ {
btnStr: '凭证审批', btnStr: '凭证审批',
...@@ -49,6 +53,7 @@ const ProcurementOrderList = () => { ...@@ -49,6 +53,7 @@ const ProcurementOrderList = () => {
// 表格数据 // 表格数据
const [tableData, setTableData] = useState<procurementOrderListType>([]); const [tableData, setTableData] = useState<procurementOrderListType>([]);
const [currentOrderItem, setCurrentOrderItem] = useState<procurementOrderListType[0]>();
const [query, setQuery] = useState<procurementOrderParamsType>(); const [query, setQuery] = useState<procurementOrderParamsType>();
const [pagination, setPagination] = useState<PaginationProps & { totalCount: number }>({ const [pagination, setPagination] = useState<PaginationProps & { totalCount: number }>({
pageNo: 1, pageNo: 1,
...@@ -152,6 +157,8 @@ const ProcurementOrderList = () => { ...@@ -152,6 +157,8 @@ const ProcurementOrderList = () => {
), ),
}, },
]; ];
// 订单流程操作
const [sureOrderShow, setSureOrderShow] = useState<boolean>(false);
// 获取当前操作按钮 // 获取当前操作按钮
const getCurrentOperateBtn = (status: number) => { const getCurrentOperateBtn = (status: number) => {
...@@ -210,6 +217,14 @@ const ProcurementOrderList = () => { ...@@ -210,6 +217,14 @@ const ProcurementOrderList = () => {
}); });
}; };
// 确认订单
const sureOrderOk = () => {
setSureOrderShow(false);
};
const sureOrderCancel = () => {
setSureOrderShow(false);
};
useEffect(() => { useEffect(() => {
getOrderStatusList(); getOrderStatusList();
getListPurchaseOrder(); getListPurchaseOrder();
...@@ -263,6 +278,13 @@ const ProcurementOrderList = () => { ...@@ -263,6 +278,13 @@ const ProcurementOrderList = () => {
showTotal: (total, range) => `当前 ${range[0]}-${range[1]} 条记录 / 共 ${total} 条数据`, showTotal: (total, range) => `当前 ${range[0]}-${range[1]} 条记录 / 共 ${total} 条数据`,
}} }}
/> />
<SureOrder
open={sureOrderShow}
onCancel={sureOrderCancel}
onOk={sureOrderOk}
orderItem={currentOrderItem}
type={0}
/>
</div> </div>
); );
}; };
......
import { FC, useEffect, useState } from 'react'; import { FC, useEffect, useState } from 'react';
import { Cascader, Form, Input, message, Modal, ModalProps, Select } from 'antd'; import { Cascader, Form, Input, message, Modal, ModalProps, Select } from 'antd';
import { CommonAPI, OrderManageAPI } from '~/api'; import { OrderManageAPI } from '~/api';
import { InterDataType, InterListType, InterReqType } from '~/api/interface'; import { InterListType, InterReqType } from '~/api/interface';
import { getSecondDistrictInfoType } from '~/api/interface/commonType';
import { mallOrderListType, mallOrderSendType } from '~/api/interface/orderManageType'; import { mallOrderListType, mallOrderSendType } from '~/api/interface/orderManageType';
import regionData from '~/assets/json/district.json';
// 地址返回类型
type locationType = InterDataType<getSecondDistrictInfoType>;
type mallOrderType = InterListType<mallOrderListType>[0]; type mallOrderType = InterListType<mallOrderListType>[0];
// 发货请求类型 // 发货请求类型
type sendMallType = Omit<Exclude<InterReqType<mallOrderSendType>, undefined>, 'takeRegion'> & { type sendMallType = Omit<Exclude<InterReqType<mallOrderSendType>, undefined>, 'takeRegion'> & {
...@@ -21,7 +19,6 @@ interface selfProps { ...@@ -21,7 +19,6 @@ interface selfProps {
const ShipmentsOrder: FC<ModalProps & selfProps> = ({ onOk, onCancel, open, currentOrderItem }) => { const ShipmentsOrder: FC<ModalProps & selfProps> = ({ onOk, onCancel, open, currentOrderItem }) => {
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 }[]>([]);
const [location, setLocation] = useState<locationType>([]);
//获取物流公司列表 //获取物流公司列表
const getExpressList = () => { const getExpressList = () => {
...@@ -29,12 +26,6 @@ const ShipmentsOrder: FC<ModalProps & selfProps> = ({ onOk, onCancel, open, curr ...@@ -29,12 +26,6 @@ const ShipmentsOrder: FC<ModalProps & selfProps> = ({ onOk, onCancel, open, curr
setListExpressInfo(result?.map((v) => ({ label: v.exName, value: v.exCode })) || []); setListExpressInfo(result?.map((v) => ({ label: v.exName, value: v.exCode })) || []);
}); });
}; };
// 获取地址信息
const getLocation = () => {
CommonAPI.getSecondDistrictInfo().then(({ result }) => {
setLocation(result || []);
});
};
const handleOk = () => { const handleOk = () => {
form.validateFields().then((value) => { form.validateFields().then((value) => {
...@@ -58,7 +49,6 @@ const ShipmentsOrder: FC<ModalProps & selfProps> = ({ onOk, onCancel, open, curr ...@@ -58,7 +49,6 @@ const ShipmentsOrder: FC<ModalProps & selfProps> = ({ onOk, onCancel, open, curr
}; };
useEffect(() => { useEffect(() => {
if (open) { if (open) {
getLocation();
getExpressList(); getExpressList();
} }
}, [open]); }, [open]);
...@@ -147,7 +137,7 @@ const ShipmentsOrder: FC<ModalProps & selfProps> = ({ onOk, onCancel, open, curr ...@@ -147,7 +137,7 @@ const ShipmentsOrder: FC<ModalProps & selfProps> = ({ onOk, onCancel, open, curr
]} ]}
> >
<Cascader <Cascader
options={location} options={regionData}
placeholder='请选择收货地址' placeholder='请选择收货地址'
allowClear allowClear
fieldNames={{ fieldNames={{
......
...@@ -7,7 +7,7 @@ import { CommentOutlined } from '@ant-design/icons'; ...@@ -7,7 +7,7 @@ import { CommentOutlined } from '@ant-design/icons';
import { OrderManageAPI } from '~/api'; 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/sureOrder'; import SureOrder from '~/components/order/productOrder/sureOrder';
import ApprovalOrder from './components/approvalOrder'; import ApprovalOrder from './components/approvalOrder';
import ShipmentsOrder from './components/shipmentsOrder'; import ShipmentsOrder from './components/shipmentsOrder';
import RemarkModal from '~/pages/orderManage/productOrder/orderList/components/remarkModal'; import RemarkModal from '~/pages/orderManage/productOrder/orderList/components/remarkModal';
...@@ -473,7 +473,8 @@ function ProductOrderView() { ...@@ -473,7 +473,8 @@ function ProductOrderView() {
open={sureOrderShow} open={sureOrderShow}
onCancel={sureOrderCancel} onCancel={sureOrderCancel}
onOk={sureOrderOk} onOk={sureOrderOk}
mallOrderItem={currentOrderItem} orderItem={currentOrderItem}
type={1}
/> />
{/*凭证审批*/} {/*凭证审批*/}
<ApprovalOrder <ApprovalOrder
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论