提交 1ecf4ce3 作者: 龚洪江

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

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