Commit 1f90f26b3b951622e263a2b3d9d13faf824e0512

Authored by zhongnanhuang
1 parent 7bd04f86

feat: update 售后审核

src/pages/Order/components/CheckModal.tsx
1 import { RESPONSE_CODE } from '@/constants/enum'; 1 import { RESPONSE_CODE } from '@/constants/enum';
2 import { 2 import {
  3 + postServiceOrderAfterSalesCheck,
3 postServiceOrderCheckOrder, 4 postServiceOrderCheckOrder,
4 postServiceOrderFileProcess, 5 postServiceOrderFileProcess,
5 postServiceOrderFinanceCheckOrder, 6 postServiceOrderFinanceCheckOrder,
  7 + postServiceOrderQueryAfterSalesInfoSnapshot,
6 } from '@/services'; 8 } from '@/services';
7 import { ModalForm, ProFormTextArea } from '@ant-design/pro-components'; 9 import { ModalForm, ProFormTextArea } from '@ant-design/pro-components';
8 -import { Button, Form, Modal, UploadFile, message } from 'antd'; 10 +import { Button, Descriptions, Form, Modal, UploadFile, message } from 'antd';
9 import Upload, { RcFile, UploadProps } from 'antd/es/upload'; 11 import Upload, { RcFile, UploadProps } from 'antd/es/upload';
10 import { useEffect, useRef, useState } from 'react'; 12 import { useEffect, useRef, useState } from 'react';
11 import { CHECK_TYPE, COMFIR_RECEIPT_IMAGES_NUMBER } from '../constant'; 13 import { CHECK_TYPE, COMFIR_RECEIPT_IMAGES_NUMBER } from '../constant';
@@ -34,6 +36,28 @@ export default ({ @@ -34,6 +36,28 @@ export default ({
34 const [fileList, setFileList] = useState<UploadFile[]>([]); 36 const [fileList, setFileList] = useState<UploadFile[]>([]);
35 const handleCancel = () => setPreviewOpen(false); 37 const handleCancel = () => setPreviewOpen(false);
36 const [messageApi, contextHolder] = message.useMessage(); 38 const [messageApi, contextHolder] = message.useMessage();
  39 + const [afterSalesItems, setAfterSalesItems] = useState<any[]>([]);
  40 + const [form] = Form.useForm<{ name: string; company: string }>();
  41 + let subOrderIds: any[] = subOrders.map((subOrder) => subOrder.id);
  42 +
  43 + /**
  44 + * 审核类型
  45 + */
  46 + function checkType(check: string) {
  47 + if (orderCheckType === check) {
  48 + return true;
  49 + }
  50 + return false;
  51 + }
  52 +
  53 + const getOrderAfterSalesInfo = async () => {
  54 + let res = await postServiceOrderQueryAfterSalesInfoSnapshot({
  55 + data: { subOrderIds: subOrderIds },
  56 + });
  57 + setAfterSalesItems([]);
  58 + console.log(res);
  59 + };
  60 +
37 const handleChange: UploadProps['onChange'] = ({ fileList: newFileList }) => { 61 const handleChange: UploadProps['onChange'] = ({ fileList: newFileList }) => {
38 //fileListObj得在change里变化,change的参数是已经处理过的file数组 62 //fileListObj得在change里变化,change的参数是已经处理过的file数组
39 //beforeUpload中的参数file是未处理过,还需要Base64拿到文件数据处理 63 //beforeUpload中的参数file是未处理过,还需要Base64拿到文件数据处理
@@ -96,6 +120,11 @@ export default ({ @@ -96,6 +120,11 @@ export default ({
96 message.info('您的剪贴板中没有照片'); 120 message.info('您的剪贴板中没有照片');
97 }; 121 };
98 useEffect(() => { 122 useEffect(() => {
  123 + //回显售后信息
  124 + if (checkType(CHECK_TYPE.AFTER_SALES)) {
  125 + getOrderAfterSalesInfo();
  126 + }
  127 +
99 document.addEventListener('paste', onPaste); 128 document.addEventListener('paste', onPaste);
100 return () => { 129 return () => {
101 document.removeEventListener('paste', onPaste); 130 document.removeEventListener('paste', onPaste);
@@ -143,15 +172,6 @@ export default ({ @@ -143,15 +172,6 @@ export default ({
143 headers: { Authorization: localStorage.getItem('token') }, 172 headers: { Authorization: localStorage.getItem('token') },
144 }; 173 };
145 174
146 - const [form] = Form.useForm<{ name: string; company: string }>();  
147 - let subOrderIds: any[] = [];  
148 - //是单条子订单审核  
149 - if (subOrders === undefined) {  
150 - subOrderIds = [data.id];  
151 - } else {  
152 - subOrderIds = subOrders.map((subOrder) => subOrder.id);  
153 - }  
154 -  
155 async function doCheck(body: object) { 175 async function doCheck(body: object) {
156 const data = await postServiceOrderCheckOrder({ 176 const data = await postServiceOrderCheckOrder({
157 data: body, 177 data: body,
@@ -224,7 +244,7 @@ export default ({ @@ -224,7 +244,7 @@ export default ({
224 * @param body 售后审核 244 * @param body 售后审核
225 */ 245 */
226 async function doAfterSalesCheck(body: object) { 246 async function doAfterSalesCheck(body: object) {
227 - const data = await postServiceOrderFinanceCheckOrder({ 247 + const data = await postServiceOrderAfterSalesCheck({
228 data: body, 248 data: body,
229 }); 249 });
230 if (data.result === RESPONSE_CODE.SUCCESS) { 250 if (data.result === RESPONSE_CODE.SUCCESS) {
@@ -233,16 +253,6 @@ export default ({ @@ -233,16 +253,6 @@ export default ({
233 } 253 }
234 } 254 }
235 255
236 - /**  
237 - * 审核类型  
238 - */  
239 - function checkType(check: string) {  
240 - if (orderCheckType === check) {  
241 - return true;  
242 - }  
243 - return false;  
244 - }  
245 -  
246 return ( 256 return (
247 <> 257 <>
248 <ModalForm<{ 258 <ModalForm<{
@@ -281,10 +291,10 @@ export default ({ @@ -281,10 +291,10 @@ export default ({
281 291
282 if (checkType(CHECK_TYPE.AFTER_SALES)) { 292 if (checkType(CHECK_TYPE.AFTER_SALES)) {
283 doAfterSalesCheck({ 293 doAfterSalesCheck({
284 - flag: false,  
285 - ids: subOrderIds,  
286 - externalProcurement: 0,  
287 - checkNotes: form.getFieldValue('name'), 294 + isAfterSalesSuccess: false,
  295 + subOrderIds: subOrderIds,
  296 + mainId: data.id,
  297 + afterSalesRejectionNotes: form.getFieldValue('name'),
288 }); 298 });
289 return; 299 return;
290 } 300 }
@@ -338,10 +348,10 @@ export default ({ @@ -338,10 +348,10 @@ export default ({
338 if (checkType(CHECK_TYPE.AFTER_SALES)) { 348 if (checkType(CHECK_TYPE.AFTER_SALES)) {
339 //审核通过 349 //审核通过
340 return doAfterSalesCheck({ 350 return doAfterSalesCheck({
341 - flag: true,  
342 - ids: subOrderIds,  
343 - externalProcurement: 0,  
344 - checkNotes: values.name, 351 + isAfterSalesSuccess: true,
  352 + subOrderIds: subOrderIds,
  353 + mainId: data.id,
  354 + afterSalesRejectionNotes: values.name,
345 }); 355 });
346 } 356 }
347 357
@@ -351,6 +361,20 @@ export default ({ @@ -351,6 +361,20 @@ export default ({
351 }} 361 }}
352 onOpenChange={setCheckVisible} 362 onOpenChange={setCheckVisible}
353 > 363 >
  364 + {checkType(CHECK_TYPE.AFTER_SALES) ? (
  365 + <Descriptions
  366 + className="mb-5"
  367 + labelStyle={{ textAlign: 'center' }}
  368 + column={1}
  369 + bordered
  370 + title={<span className="text-sm font-medium">售后信息</span>}
  371 + size="small"
  372 + items={afterSalesItems}
  373 + />
  374 + ) : (
  375 + ''
  376 + )}
  377 +
354 <div>请特别注意订单总金额与订单金额。</div> 378 <div>请特别注意订单总金额与订单金额。</div>
355 <ProFormTextArea 379 <ProFormTextArea
356 width="lg" 380 width="lg"
@@ -359,7 +383,9 @@ export default ({ @@ -359,7 +383,9 @@ export default ({
359 /> 383 />
360 {checkType(CHECK_TYPE.FINALCIAL) ? ( 384 {checkType(CHECK_TYPE.FINALCIAL) ? (
361 <> 385 <>
362 - {/* <div className="pb-4 text-xs decoration-gray-50">可复制照片粘贴</div> */} 386 + <div className="pb-4 text-xs decoration-gray-50">
  387 + 可复制照片粘贴
  388 + </div>
363 <Upload {...props}> 389 <Upload {...props}>
364 {fileList.length < COMFIR_RECEIPT_IMAGES_NUMBER 390 {fileList.length < COMFIR_RECEIPT_IMAGES_NUMBER
365 ? uploadButton 391 ? uploadButton
src/pages/Order/constant.ts
@@ -119,6 +119,7 @@ export const ORDER_STATUS_OPTIONS = { @@ -119,6 +119,7 @@ export const ORDER_STATUS_OPTIONS = {
119 AUDIT_FAILED: '审核失败', 119 AUDIT_FAILED: '审核失败',
120 IN_AFTER_SALES: '售后中', 120 IN_AFTER_SALES: '售后中',
121 AFTER_SALES_COMPLETION: '售后完成', 121 AFTER_SALES_COMPLETION: '售后完成',
  122 + AFTER_SALES_FAILURE: '售后失败',
122 NO_NEED_SEND: '无需发货', 123 NO_NEED_SEND: '无需发货',
123 PROCURE_CONVERT_WAREHOUSE_KEEPER: '采购转仓库', 124 PROCURE_CONVERT_WAREHOUSE_KEEPER: '采购转仓库',
124 }; 125 };
@@ -165,6 +166,7 @@ export const TAGS_COLOR = new Map&lt;string, string&gt;([ @@ -165,6 +166,7 @@ export const TAGS_COLOR = new Map&lt;string, string&gt;([
165 ['PROCURE_WAIT_SHIP', 'processing'], 166 ['PROCURE_WAIT_SHIP', 'processing'],
166 ['NO_NEED_SEND', 'success'], 167 ['NO_NEED_SEND', 'success'],
167 ['PROCURE_CONVERT_WAREHOUSE_KEEPER', 'processing'], 168 ['PROCURE_CONVERT_WAREHOUSE_KEEPER', 'processing'],
  169 + ['AFTER_SALES_FAILURE', 'red'],
168 ]); 170 ]);
169 export const SALES_CODE_OPTIONS = [ 171 export const SALES_CODE_OPTIONS = [
170 { label: 'D-Linda', value: 'D-Linda' }, 172 { label: 'D-Linda', value: 'D-Linda' },
src/pages/Order/index.tsx
@@ -66,7 +66,6 @@ import ProcureConvertModal from &#39;./components/ProcureConvertModal&#39;; @@ -66,7 +66,6 @@ import ProcureConvertModal from &#39;./components/ProcureConvertModal&#39;;
66 import SubOrderComfirmReceiptImagesModal from './components/SubOrderComfirmReceiptImagesModal'; 66 import SubOrderComfirmReceiptImagesModal from './components/SubOrderComfirmReceiptImagesModal';
67 import { 67 import {
68 AFTER_INVOICING_STATUS, 68 AFTER_INVOICING_STATUS,
69 - AFTE_SALES_PLAN_OPTIONS,  
70 CHECK_TYPE, 69 CHECK_TYPE,
71 LOGISTICS_STATUS_OPTIONS, 70 LOGISTICS_STATUS_OPTIONS,
72 MAIN_ORDER_COLUMNS, 71 MAIN_ORDER_COLUMNS,
@@ -357,31 +356,37 @@ const OrderPage = () =&gt; { @@ -357,31 +356,37 @@ const OrderPage = () =&gt; {
357 orderStatus === 'IN_AFTER_SALES' 356 orderStatus === 'IN_AFTER_SALES'
358 ) { 357 ) {
359 return ( 358 return (
360 - <MyToolTip  
361 - key="key"  
362 - title={  
363 - enumValueToLabel(  
364 - optRecord.afterSalesPlan,  
365 - AFTE_SALES_PLAN_OPTIONS,  
366 - ) +  
367 - ' ' +  
368 - optRecord.afterSalesNotes  
369 - }  
370 - content={  
371 - <>  
372 - <Tag  
373 - color={TAGS_COLOR.get(optRecord.orderStatus)}  
374 - style={{ marginRight: '4px' }}  
375 - >  
376 - {enumValueToLabel(  
377 - optRecord.orderStatus,  
378 - ORDER_STATUS_OPTIONS,  
379 - )}  
380 - </Tag>  
381 - <QuestionCircleOutlined style={{ color: '#C1C1C1' }} />  
382 - </>  
383 - }  
384 - /> 359 + // <MyToolTip
  360 + // key="key"
  361 + // title={
  362 + // enumValueToLabel(
  363 + // optRecord.afterSalesPlan,
  364 + // AFTE_SALES_PLAN_OPTIONS,
  365 + // ) +
  366 + // ' ' +
  367 + // optRecord.afterSalesNotes
  368 + // }
  369 + // content={
  370 + // <>
  371 + // <Tag
  372 + // color={TAGS_COLOR.get(optRecord.orderStatus)}
  373 + // style={{ marginRight: '4px' }}
  374 + // >
  375 + // {enumValueToLabel(
  376 + // optRecord.orderStatus,
  377 + // ORDER_STATUS_OPTIONS,
  378 + // )}
  379 + // </Tag>
  380 + // <QuestionCircleOutlined style={{ color: '#C1C1C1' }} />
  381 + // </>
  382 + // }
  383 + // />
  384 + <Tag
  385 + color={TAGS_COLOR.get(optRecord.orderStatus)}
  386 + style={{ marginRight: '4px' }}
  387 + >
  388 + {enumValueToLabel(optRecord.orderStatus, ORDER_STATUS_OPTIONS)}
  389 + </Tag>
385 ); 390 );
386 } 391 }
387 392
@@ -436,7 +441,6 @@ const OrderPage = () =&gt; { @@ -436,7 +441,6 @@ const OrderPage = () =&gt; {
436 //财务审核附件处理 441 //财务审核附件处理
437 const getInvoicingCheckAnnexList = () => { 442 const getInvoicingCheckAnnexList = () => {
438 let invoicingCheckAnnexList = optRecord.invoicingCheckAnnexList; 443 let invoicingCheckAnnexList = optRecord.invoicingCheckAnnexList;
439 -  
440 return ( 444 return (
441 <div> 445 <div>
442 <Image.PreviewGroup 446 <Image.PreviewGroup
@@ -883,7 +887,7 @@ const OrderPage = () =&gt; { @@ -883,7 +887,7 @@ const OrderPage = () =&gt; {
883 className="p-0" 887 className="p-0"
884 type="link" 888 type="link"
885 onClick={() => { 889 onClick={() => {
886 - setOrderRow(optRecord); 890 + setOrderRow(record);
887 setCheckVisible(true); 891 setCheckVisible(true);
888 setSelectedRows([optRecord]); 892 setSelectedRows([optRecord]);
889 setOrderCheckType(CHECK_TYPE.NORMAL); 893 setOrderCheckType(CHECK_TYPE.NORMAL);
@@ -900,7 +904,7 @@ const OrderPage = () =&gt; { @@ -900,7 +904,7 @@ const OrderPage = () =&gt; {
900 className="p-0" 904 className="p-0"
901 type="link" 905 type="link"
902 onClick={() => { 906 onClick={() => {
903 - setOrderRow(optRecord); 907 + setOrderRow(record);
904 setCheckVisible(true); 908 setCheckVisible(true);
905 setSelectedRows([optRecord]); 909 setSelectedRows([optRecord]);
906 setOrderCheckType(CHECK_TYPE.AFTER_SALES); 910 setOrderCheckType(CHECK_TYPE.AFTER_SALES);
@@ -917,7 +921,7 @@ const OrderPage = () =&gt; { @@ -917,7 +921,7 @@ const OrderPage = () =&gt; {
917 className="p-0" 921 className="p-0"
918 type="link" 922 type="link"
919 onClick={() => { 923 onClick={() => {
920 - setOrderRow(optRecord); 924 + setOrderRow(record);
921 setCheckVisible(true); 925 setCheckVisible(true);
922 setSelectedRows([optRecord]); 926 setSelectedRows([optRecord]);
923 setOrderCheckType(CHECK_TYPE.FINALCIAL); 927 setOrderCheckType(CHECK_TYPE.FINALCIAL);
@@ -934,7 +938,7 @@ const OrderPage = () =&gt; { @@ -934,7 +938,7 @@ const OrderPage = () =&gt; {
934 className="p-0" 938 className="p-0"
935 type="link" 939 type="link"
936 onClick={() => { 940 onClick={() => {
937 - setOrderRow(optRecord); 941 + setOrderRow(record);
938 setSelectedRows([optRecord]); 942 setSelectedRows([optRecord]);
939 setOrderCheckType(CHECK_TYPE.PROCURE); 943 setOrderCheckType(CHECK_TYPE.PROCURE);
940 setProcureCheckModalVisible(true); 944 setProcureCheckModalVisible(true);
@@ -1645,12 +1649,13 @@ const OrderPage = () =&gt; { @@ -1645,12 +1649,13 @@ const OrderPage = () =&gt; {
1645 let selectedSubOrders = selectedRowObj[record.id]; 1649 let selectedSubOrders = selectedRowObj[record.id];
1646 setSelectedRows(selectedSubOrders); 1650 setSelectedRows(selectedSubOrders);
1647 if (selectedSubOrders === undefined) { 1651 if (selectedSubOrders === undefined) {
1648 - setSelectedRows(record.subOrderInformationLists); 1652 + selectedSubOrders = record.subOrderInformationLists;
1649 } 1653 }
1650 - for (let i = 0; i < selectedRows.length; i++) { 1654 + for (let i = 0; i < selectedSubOrders.length; i++) {
1651 if ( 1655 if (
1652 - selectedRows[i].orderStatus !== 'UNAUDITED' &&  
1653 - selectedRows[i].orderStatus !== 'FINANCE_PROCESS' 1656 + selectedSubOrders[i].orderStatus !== 'UNAUDITED' &&
  1657 + selectedSubOrders[i].orderStatus !==
  1658 + 'FINANCE_PROCESS'
1654 ) { 1659 ) {
1655 message.error('请选择未审核的子订单进行审核'); 1660 message.error('请选择未审核的子订单进行审核');
1656 return; 1661 return;
@@ -1658,6 +1663,7 @@ const OrderPage = () =&gt; { @@ -1658,6 +1663,7 @@ const OrderPage = () =&gt; {
1658 } 1663 }
1659 setOrderRow(record); 1664 setOrderRow(record);
1660 setCheckVisible(true); 1665 setCheckVisible(true);
  1666 + setSelectedRows(selectedSubOrders);
1661 setOrderCheckType(CHECK_TYPE.NORMAL); 1667 setOrderCheckType(CHECK_TYPE.NORMAL);
1662 }} 1668 }}
1663 > 1669 >
@@ -1675,11 +1681,12 @@ const OrderPage = () =&gt; { @@ -1675,11 +1681,12 @@ const OrderPage = () =&gt; {
1675 let selectedSubOrders = selectedRowObj[record.id]; 1681 let selectedSubOrders = selectedRowObj[record.id];
1676 setSelectedRows(selectedSubOrders); 1682 setSelectedRows(selectedSubOrders);
1677 if (selectedSubOrders === undefined) { 1683 if (selectedSubOrders === undefined) {
1678 - setSelectedRows(record.subOrderInformationLists); 1684 + selectedSubOrders = record.subOrderInformationLists;
1679 } 1685 }
1680 - for (let i = 0; i < selectedRows.length; i++) { 1686 + for (let i = 0; i < selectedSubOrders.length; i++) {
1681 if ( 1687 if (
1682 - selectedRows[i].orderStatus !== 'IN_AFTER_SALES' 1688 + selectedSubOrders[i].orderStatus !==
  1689 + 'IN_AFTER_SALES'
1683 ) { 1690 ) {
1684 message.error('请选择售后中的子订单进行审核'); 1691 message.error('请选择售后中的子订单进行审核');
1685 return; 1692 return;
@@ -1687,6 +1694,7 @@ const OrderPage = () =&gt; { @@ -1687,6 +1694,7 @@ const OrderPage = () =&gt; {
1687 } 1694 }
1688 setOrderRow(record); 1695 setOrderRow(record);
1689 setCheckVisible(true); 1696 setCheckVisible(true);
  1697 + setSelectedRows(selectedSubOrders);
1690 setOrderCheckType(CHECK_TYPE.AFTER_SALES); 1698 setOrderCheckType(CHECK_TYPE.AFTER_SALES);
1691 }} 1699 }}
1692 > 1700 >
@@ -1753,12 +1761,13 @@ const OrderPage = () =&gt; { @@ -1753,12 +1761,13 @@ const OrderPage = () =&gt; {
1753 let selectedSubOrders = selectedRowObj[record.id]; 1761 let selectedSubOrders = selectedRowObj[record.id];
1754 setSelectedRows(selectedSubOrders); 1762 setSelectedRows(selectedSubOrders);
1755 if (selectedSubOrders === undefined) { 1763 if (selectedSubOrders === undefined) {
1756 - setSelectedRows(record.subOrderInformationLists); 1764 + selectedSubOrders = record.subOrderInformationLists;
1757 } 1765 }
1758 - for (let i = 0; i < selectedRows.length; i++) { 1766 + for (let i = 0; i < selectedSubOrders.length; i++) {
1759 if ( 1767 if (
1760 - selectedRows[i].orderStatus !== 'UNAUDITED' &&  
1761 - selectedRows[i].orderStatus !== 'FINANCE_PROCESS' 1768 + selectedSubOrders[i].orderStatus !== 'UNAUDITED' &&
  1769 + selectedSubOrders[i].orderStatus !==
  1770 + 'FINANCE_PROCESS'
1762 ) { 1771 ) {
1763 message.error('请选择未审核的子订单进行审核'); 1772 message.error('请选择未审核的子订单进行审核');
1764 return; 1773 return;
@@ -1766,6 +1775,7 @@ const OrderPage = () =&gt; { @@ -1766,6 +1775,7 @@ const OrderPage = () =&gt; {
1766 } 1775 }
1767 setOrderRow(record); 1776 setOrderRow(record);
1768 setCheckVisible(true); 1777 setCheckVisible(true);
  1778 + setSelectedRows(selectedSubOrders);
1769 setOrderCheckType(CHECK_TYPE.FINALCIAL); 1779 setOrderCheckType(CHECK_TYPE.FINALCIAL);
1770 }} 1780 }}
1771 > 1781 >
@@ -1784,11 +1794,12 @@ const OrderPage = () =&gt; { @@ -1784,11 +1794,12 @@ const OrderPage = () =&gt; {
1784 let selectedSubOrders = selectedRowObj[record.id]; 1794 let selectedSubOrders = selectedRowObj[record.id];
1785 setSelectedRows(selectedSubOrders); 1795 setSelectedRows(selectedSubOrders);
1786 if (selectedSubOrders === undefined) { 1796 if (selectedSubOrders === undefined) {
1787 - setSelectedRows(record.subOrderInformationLists); 1797 + selectedSubOrders = record.subOrderInformationLists;
1788 } 1798 }
1789 - for (let i = 0; i < selectedRows.length; i++) { 1799 + for (let i = 0; i < selectedSubOrders.length; i++) {
1790 if ( 1800 if (
1791 - selectedRows[i].orderStatus !== 'PROCURE_UN_PROCESS' 1801 + selectedSubOrders[i].orderStatus !==
  1802 + 'PROCURE_UN_PROCESS'
1792 ) { 1803 ) {
1793 message.error('请选择未审核的子订单进行审核'); 1804 message.error('请选择未审核的子订单进行审核');
1794 return; 1805 return;
@@ -1796,6 +1807,7 @@ const OrderPage = () =&gt; { @@ -1796,6 +1807,7 @@ const OrderPage = () =&gt; {
1796 } 1807 }
1797 setOrderRow(record); 1808 setOrderRow(record);
1798 setProcureCheckModalVisible(true); 1809 setProcureCheckModalVisible(true);
  1810 + setSelectedRows(selectedSubOrders);
1799 setOrderCheckType(CHECK_TYPE.PROCURE); 1811 setOrderCheckType(CHECK_TYPE.PROCURE);
1800 }} 1812 }}
1801 > 1813 >
src/services/definition.ts
@@ -712,6 +712,11 @@ export interface ProcureCheckOrderDto { @@ -712,6 +712,11 @@ export interface ProcureCheckOrderDto {
712 export interface ProcureConvertProcureDto { 712 export interface ProcureConvertProcureDto {
713 /** 713 /**
714 * @description 714 * @description
  715 + * 采购转发备注
  716 + */
  717 + procureConvertNotes?: string;
  718 + /**
  719 + * @description
715 * 采购人名称 720 * 采购人名称
716 */ 721 */
717 procureName?: string; 722 procureName?: string;
@@ -764,6 +769,14 @@ export interface ProductInformationDto { @@ -764,6 +769,14 @@ export interface ProductInformationDto {
764 productName?: string; 769 productName?: string;
765 } 770 }
766 771
  772 +export interface QueryAfterSalesInfoSnapshotDto {
  773 + /**
  774 + * @description
  775 + * 子订单id集合
  776 + */
  777 + subOrderIds?: Array<number>;
  778 +}
  779 +
767 export interface QueryAnnexDto { 780 export interface QueryAnnexDto {
768 /** 781 /**
769 * @description 782 * @description
@@ -881,6 +894,16 @@ export interface View { @@ -881,6 +894,16 @@ export interface View {
881 contentType?: string; 894 contentType?: string;
882 } 895 }
883 896
  897 +export interface YearMonth {
  898 + leapYear?: boolean;
  899 + /** @format int32 */
  900 + month?: number;
  901 + /** @format int32 */
  902 + monthValue?: number;
  903 + /** @format int32 */
  904 + year?: number;
  905 +}
  906 +
884 export interface Dto { 907 export interface Dto {
885 /** 908 /**
886 * @description 909 * @description
src/services/request.ts
@@ -41,6 +41,7 @@ import type { @@ -41,6 +41,7 @@ import type {
41 ProcureOrderDto, 41 ProcureOrderDto,
42 ProcurePrintDto, 42 ProcurePrintDto,
43 ProductInformationDto, 43 ProductInformationDto,
  44 + QueryAfterSalesInfoSnapshotDto,
44 QueryAnnexDto, 45 QueryAnnexDto,
45 QueryCustomerInformationDto, 46 QueryCustomerInformationDto,
46 QueryHistoryRecordDto, 47 QueryHistoryRecordDto,
@@ -4847,8 +4848,8 @@ export const postServiceOrderAddOrder = /* #__PURE__ */ (() =&gt; { @@ -4847,8 +4848,8 @@ export const postServiceOrderAddOrder = /* #__PURE__ */ (() =&gt; {
4847 return request; 4848 return request;
4848 })(); 4849 })();
4849 4850
4850 -/** @description request parameter type for postServiceOrderAfterSalesCompletion */  
4851 -export interface PostServiceOrderAfterSalesCompletionOption { 4851 +/** @description request parameter type for postServiceOrderAfterSalesCheck */
  4852 +export interface PostServiceOrderAfterSalesCheckOption {
4852 /** 4853 /**
4853 * @description 4854 * @description
4854 * dto 4855 * dto
@@ -4861,8 +4862,8 @@ export interface PostServiceOrderAfterSalesCompletionOption { @@ -4861,8 +4862,8 @@ export interface PostServiceOrderAfterSalesCompletionOption {
4861 }; 4862 };
4862 } 4863 }
4863 4864
4864 -/** @description response type for postServiceOrderAfterSalesCompletion */  
4865 -export interface PostServiceOrderAfterSalesCompletionResponse { 4865 +/** @description response type for postServiceOrderAfterSalesCheck */
  4866 +export interface PostServiceOrderAfterSalesCheckResponse {
4866 /** 4867 /**
4867 * @description 4868 * @description
4868 * OK 4869 * OK
@@ -4890,25 +4891,25 @@ export interface PostServiceOrderAfterSalesCompletionResponse { @@ -4890,25 +4891,25 @@ export interface PostServiceOrderAfterSalesCompletionResponse {
4890 404: any; 4891 404: any;
4891 } 4892 }
4892 4893
4893 -export type PostServiceOrderAfterSalesCompletionResponseSuccess =  
4894 - PostServiceOrderAfterSalesCompletionResponse[200]; 4894 +export type PostServiceOrderAfterSalesCheckResponseSuccess =
  4895 + PostServiceOrderAfterSalesCheckResponse[200];
4895 /** 4896 /**
4896 * @description 4897 * @description
4897 - * 售后完成 4898 + * 售后审核
4898 * @tags 内部订单 4899 * @tags 内部订单
4899 * @produces * 4900 * @produces *
4900 * @consumes application/json 4901 * @consumes application/json
4901 */ 4902 */
4902 -export const postServiceOrderAfterSalesCompletion = /* #__PURE__ */ (() => { 4903 +export const postServiceOrderAfterSalesCheck = /* #__PURE__ */ (() => {
4903 const method = 'post'; 4904 const method = 'post';
4904 - const url = '/service/order/afterSalesCompletion'; 4905 + const url = '/service/order/afterSalesCheck';
4905 function request( 4906 function request(
4906 - option: PostServiceOrderAfterSalesCompletionOption,  
4907 - ): Promise<PostServiceOrderAfterSalesCompletionResponseSuccess> { 4907 + option: PostServiceOrderAfterSalesCheckOption,
  4908 + ): Promise<PostServiceOrderAfterSalesCheckResponseSuccess> {
4908 return requester(request.url, { 4909 return requester(request.url, {
4909 method: request.method, 4910 method: request.method,
4910 ...option, 4911 ...option,
4911 - }) as unknown as Promise<PostServiceOrderAfterSalesCompletionResponseSuccess>; 4912 + }) as unknown as Promise<PostServiceOrderAfterSalesCheckResponseSuccess>;
4912 } 4913 }
4913 4914
4914 /** http method */ 4915 /** http method */
@@ -6990,6 +6991,78 @@ export const getServiceOrderProvideToken = /* #__PURE__ */ (() =&gt; { @@ -6990,6 +6991,78 @@ export const getServiceOrderProvideToken = /* #__PURE__ */ (() =&gt; {
6990 return request; 6991 return request;
6991 })(); 6992 })();
6992 6993
  6994 +/** @description request parameter type for postServiceOrderQueryAfterSalesInfoSnapshot */
  6995 +export interface PostServiceOrderQueryAfterSalesInfoSnapshotOption {
  6996 + /**
  6997 + * @description
  6998 + * dto
  6999 + */
  7000 + body: {
  7001 + /**
  7002 + @description
  7003 + dto */
  7004 + dto: QueryAfterSalesInfoSnapshotDto;
  7005 + };
  7006 +}
  7007 +
  7008 +/** @description response type for postServiceOrderQueryAfterSalesInfoSnapshot */
  7009 +export interface PostServiceOrderQueryAfterSalesInfoSnapshotResponse {
  7010 + /**
  7011 + * @description
  7012 + * OK
  7013 + */
  7014 + 200: ServerResult;
  7015 + /**
  7016 + * @description
  7017 + * Created
  7018 + */
  7019 + 201: any;
  7020 + /**
  7021 + * @description
  7022 + * Unauthorized
  7023 + */
  7024 + 401: any;
  7025 + /**
  7026 + * @description
  7027 + * Forbidden
  7028 + */
  7029 + 403: any;
  7030 + /**
  7031 + * @description
  7032 + * Not Found
  7033 + */
  7034 + 404: any;
  7035 +}
  7036 +
  7037 +export type PostServiceOrderQueryAfterSalesInfoSnapshotResponseSuccess =
  7038 + PostServiceOrderQueryAfterSalesInfoSnapshotResponse[200];
  7039 +/**
  7040 + * @description
  7041 + * 查询售后信息快照
  7042 + * @tags 内部订单
  7043 + * @produces *
  7044 + * @consumes application/json
  7045 + */
  7046 +export const postServiceOrderQueryAfterSalesInfoSnapshot =
  7047 + /* #__PURE__ */ (() => {
  7048 + const method = 'post';
  7049 + const url = '/service/order/queryAfterSalesInfoSnapshot';
  7050 + function request(
  7051 + option: PostServiceOrderQueryAfterSalesInfoSnapshotOption,
  7052 + ): Promise<PostServiceOrderQueryAfterSalesInfoSnapshotResponseSuccess> {
  7053 + return requester(request.url, {
  7054 + method: request.method,
  7055 + ...option,
  7056 + }) as unknown as Promise<PostServiceOrderQueryAfterSalesInfoSnapshotResponseSuccess>;
  7057 + }
  7058 +
  7059 + /** http method */
  7060 + request.method = method;
  7061 + /** request url */
  7062 + request.url = url;
  7063 + return request;
  7064 + })();
  7065 +
6993 /** @description request parameter type for postServiceOrderQueryCustomerInformation */ 7066 /** @description request parameter type for postServiceOrderQueryCustomerInformation */
6994 export interface PostServiceOrderQueryCustomerInformationOption { 7067 export interface PostServiceOrderQueryCustomerInformationOption {
6995 /** 7068 /**