Commit 0b6aa8d1c1c517cb1368bff717f98cdf82ff92d5

Authored by zhongnanhuang
1 parent d3ac1455

feat: update 新版本合并

.umirc.ts
@@ -59,6 +59,13 @@ export default defineConfig({ @@ -59,6 +59,13 @@ export default defineConfig({
59 access: 'canReadAdminAndFinance', 59 access: 'canReadAdminAndFinance',
60 }, 60 },
61 { 61 {
  62 + name: '预存管理',
  63 + path: '/prepaidManage',
  64 + component: './Prepaid',
  65 + icon: 'AccountBookOutlined',
  66 + access: 'canReadAdminAndFinanceAndSales',
  67 + },
  68 + {
62 name: '打印', 69 name: '打印',
63 path: '/print', 70 path: '/print',
64 component: './OrderPrint', 71 component: './OrderPrint',
src/access.ts
@@ -2,11 +2,18 @@ export default (initialState: API.UserInfo) => { @@ -2,11 +2,18 @@ export default (initialState: API.UserInfo) => {
2 // 在这里按照初始化数据定义项目中的权限,统一管理 2 // 在这里按照初始化数据定义项目中的权限,统一管理
3 // 参考文档 https://umijs.org/docs/max/access 3 // 参考文档 https://umijs.org/docs/max/access
4 const { roleSmallVO } = initialState; 4 const { roleSmallVO } = initialState;
5 - 5 + const canReadAdmin = roleSmallVO?.code === 'admin';
  6 + const canReadProcure = roleSmallVO?.code === 'procure';
  7 + const canReadFinance = roleSmallVO?.code === 'finance';
  8 + const canReadSales =
  9 + roleSmallVO?.code === 'salesManager' ||
  10 + roleSmallVO?.code === 'salesRepresentative';
6 return { 11 return {
7 - canReadAdmin: roleSmallVO?.code === 'admin',  
8 - canReadProcure: roleSmallVO?.code === 'procure',  
9 - canReadAdminAndFinance:  
10 - roleSmallVO?.code === 'admin' || roleSmallVO?.code === 'finance', 12 + canReadAdmin: canReadAdmin,
  13 + canReadProcure: canReadProcure,
  14 + canReadAdminAndFinance: canReadFinance || canReadAdmin,
  15 + canReadSales: canReadSales,
  16 + canReadAdminAndFinanceAndSales:
  17 + canReadFinance || canReadAdmin || canReadSales,
11 }; 18 };
12 }; 19 };
src/pages/Order/components/CheckModal.tsx
@@ -27,11 +27,7 @@ import { @@ -27,11 +27,7 @@ import {
27 COMFIR_RECEIPT_IMAGES_NUMBER, 27 COMFIR_RECEIPT_IMAGES_NUMBER,
28 } from '../constant'; 28 } from '../constant';
29 // import { cloneDeep } from 'lodash'; 29 // import { cloneDeep } from 'lodash';
30 -import {  
31 - enumValueToLabel,  
32 - getAliYunOSSFileNameFromUrl,  
33 - transImageFile,  
34 -} from '@/utils'; 30 +import { enumValueToLabel, transImageFile } from '@/utils';
35 import { PlusOutlined } from '@ant-design/icons'; 31 import { PlusOutlined } from '@ant-design/icons';
36 import { cloneDeep } from 'lodash'; 32 import { cloneDeep } from 'lodash';
37 33
@@ -60,10 +56,11 @@ export default ({ @@ -60,10 +56,11 @@ export default ({
60 const handleCancel = () => setPreviewOpen(false); 56 const handleCancel = () => setPreviewOpen(false);
61 const [messageApi, contextHolder] = message.useMessage(); 57 const [messageApi, contextHolder] = message.useMessage();
62 const [form] = Form.useForm<{ name: string; company: string }>(); 58 const [form] = Form.useForm<{ name: string; company: string }>();
63 - let subOrderIds: any[] = subOrders.map((subOrder) => subOrder.id); 59 + let subOrderIds: any[] = subOrders?.map((subOrder) => subOrder.id);
64 const [mainOrderId] = useState(data.id); 60 const [mainOrderId] = useState(data.id);
65 61
66 const [afterSalesInfo, setAfterSalesInfo] = useState<any>(); 62 const [afterSalesInfo, setAfterSalesInfo] = useState<any>();
  63 + const [prepaidProofImages, setPrepaidProofImages] = useState<any[]>([]);
67 64
68 /** 65 /**
69 * 审核类型 66 * 审核类型
@@ -81,11 +78,12 @@ export default ({ @@ -81,11 +78,12 @@ export default ({
81 // }); 78 // });
82 79
83 //附件 80 //附件
84 - let annex = subOrders[0].afterAnnexList; 81 + let annex = subOrders[0].afterSalesAnnexList;
  82 + let index = 1;
85 let annexLinks = annex?.map((f) => { 83 let annexLinks = annex?.map((f) => {
86 return ( 84 return (
87 <Button className="p-0 pr-1" type="link" key="key" href={f}> 85 <Button className="p-0 pr-1" type="link" key="key" href={f}>
88 - {getAliYunOSSFileNameFromUrl(f)} 86 + {'附件' + index++}
89 </Button> 87 </Button>
90 ); 88 );
91 }); 89 });
@@ -132,6 +130,16 @@ export default ({ @@ -132,6 +130,16 @@ export default ({
132 //去重 130 //去重
133 paymentReceiptsImagesList = [...new Set(paymentReceiptsImagesList)]; 131 paymentReceiptsImagesList = [...new Set(paymentReceiptsImagesList)];
134 setPymentReceiptsImages(paymentReceiptsImagesList); 132 setPymentReceiptsImages(paymentReceiptsImagesList);
  133 +
  134 + //预存审核的凭证
  135 + let proofImages: any[] = [];
  136 + subOrders?.forEach((item) => {
  137 + let images = item.proofImages;
  138 + if (images !== null && images !== undefined) {
  139 + proofImages.push(...images);
  140 + }
  141 + });
  142 + setPrepaidProofImages(proofImages);
135 }, []); 143 }, []);
136 144
137 const handleChange: UploadProps['onChange'] = ({ fileList: newFileList }) => { 145 const handleChange: UploadProps['onChange'] = ({ fileList: newFileList }) => {
@@ -591,6 +599,38 @@ export default ({ @@ -591,6 +599,38 @@ export default ({
591 <></> 599 <></>
592 )} 600 )}
593 601
  602 + {checkType(CHECK_TYPE.PREPAID_AUDIT) && (
  603 + <>
  604 + <Divider orientation="center">
  605 + <span className="text-sm">凭证</span>
  606 + </Divider>
  607 + <Image.PreviewGroup
  608 + className="mr-10"
  609 + preview={{
  610 + onChange: (current, prev) =>
  611 + console.log(`current index: ${current}, prev index: ${prev}`),
  612 + }}
  613 + >
  614 + {prepaidProofImages.map((url) => (
  615 + <>
  616 + <Image width={120} src={url} /> <Divider type="vertical" />
  617 + </>
  618 + ))}
  619 + </Image.PreviewGroup>
  620 + <Divider></Divider>
  621 + </>
  622 + )}
  623 +
  624 + {checkType('prepaidAudit') ? (
  625 + <div>请特别注意手机号码和充值金额。</div>
  626 + ) : (
  627 + <div>请特别注意订单总金额与订单金额。</div>
  628 + )}
  629 + <ProFormTextArea
  630 + width="lg"
  631 + name="name"
  632 + placeholder="若驳回,请填写驳回理由"
  633 + />
594 {checkType(CHECK_TYPE.FINALCIAL) ? ( 634 {checkType(CHECK_TYPE.FINALCIAL) ? (
595 <> 635 <>
596 <div className="pb-4 text-xs decoration-gray-50"> 636 <div className="pb-4 text-xs decoration-gray-50">
src/pages/Order/components/DeliverInfoDrawer.tsx
@@ -4,7 +4,6 @@ import { Col, Drawer, Row } from &#39;antd&#39;; @@ -4,7 +4,6 @@ import { Col, Drawer, Row } from &#39;antd&#39;;
4 import { PAYEE_OPTIONS } from '../constant'; 4 import { PAYEE_OPTIONS } from '../constant';
5 5
6 export default ({ data, onClose }) => { 6 export default ({ data, onClose }) => {
7 - console.log(data);  
8 return ( 7 return (
9 <> 8 <>
10 <Drawer 9 <Drawer
src/pages/Order/components/FinancialDrawer.tsx
@@ -54,6 +54,7 @@ export default ({ @@ -54,6 +54,7 @@ export default ({
54 subOrders?.forEach((item: any) => { 54 subOrders?.forEach((item: any) => {
55 distinctMap.set(item.mainOrderId, item.totalPayment); 55 distinctMap.set(item.mainOrderId, item.totalPayment);
56 }); 56 });
  57 +
57 let sum = 0; 58 let sum = 0;
58 for (let p of distinctMap.values()) { 59 for (let p of distinctMap.values()) {
59 sum = FloatAdd(p, sum); 60 sum = FloatAdd(p, sum);
src/pages/Order/components/OrderDrawer.tsx
1 import { RESPONSE_CODE } from '@/constants/enum'; 1 import { RESPONSE_CODE } from '@/constants/enum';
2 import { 2 import {
3 - postKingdeeRepCustomer, 3 + postCanrdApiUserAddressList,
  4 + postCanrdApiUserList,
4 postKingdeeRepCustomerDetail, 5 postKingdeeRepCustomerDetail,
5 postKingdeeRepMaterial, 6 postKingdeeRepMaterial,
6 postKingdeeRepMaterialUnit, 7 postKingdeeRepMaterialUnit,
@@ -19,6 +20,7 @@ import { @@ -19,6 +20,7 @@ import {
19 getAliYunOSSFileNameFromUrl, 20 getAliYunOSSFileNameFromUrl,
20 getUserInfo, 21 getUserInfo,
21 } from '@/utils'; 22 } from '@/utils';
  23 +import { getDefaultString } from '@/utils/StringUtil';
22 import { getTeacherCustomFieldNumber } from '@/utils/kingdee'; 24 import { getTeacherCustomFieldNumber } from '@/utils/kingdee';
23 import { 25 import {
24 DrawerForm, 26 DrawerForm,
@@ -53,10 +55,12 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -53,10 +55,12 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
53 const [submitBtnLoading, setSubmitBtnLoading] = useState(false); 55 const [submitBtnLoading, setSubmitBtnLoading] = useState(false);
54 const [drawerTitle, setDrawerTitle] = useState(''); 56 const [drawerTitle, setDrawerTitle] = useState('');
55 const [hasLocalData, setHasLocalData] = useState(false); 57 const [hasLocalData, setHasLocalData] = useState(false);
56 - const [customer, setCustomer] = useState({}); 58 + // const [customer, setCustomer] = useState({});
57 const [localSaveLoading, setLocalSaveLoading] = useState(false); 59 const [localSaveLoading, setLocalSaveLoading] = useState(false);
58 const [kingdeeCstomerModalVisible, setKingdeeCstomerModalVisible] = 60 const [kingdeeCstomerModalVisible, setKingdeeCstomerModalVisible] =
59 useState(false); 61 useState(false);
  62 + const [paymentMethod, setPaymentMethod] = useState('');
  63 + const [customerRequestCount, setCustomerRequestCount] = useState(0);
60 const [ 64 const [
61 productParametersDisabledFlagList, 65 productParametersDisabledFlagList,
62 setProductParametersDisabledFlagList, 66 setProductParametersDisabledFlagList,
@@ -65,8 +69,8 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -65,8 +69,8 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
65 // [], 69 // [],
66 // ); //商品的仓库选项 70 // ); //商品的仓库选项
67 const [productUnitOptionsList, setProductUnitOptionsList] = useState([]); //商品的单位选项 71 const [productUnitOptionsList, setProductUnitOptionsList] = useState([]); //商品的单位选项
68 - const [productCustomerContactOptions, setProductCustomerContactOptions] =  
69 - useState([]); //客户的收货人选项 72 + // const [productCustomerContactOptions, setProductCustomerContactOptions] =
  73 + // useState([]); //客户的收货人选项
70 const [form] = Form.useForm<{ 74 const [form] = Form.useForm<{
71 isLocalData: boolean; 75 isLocalData: boolean;
72 salesCode: ''; 76 salesCode: '';
@@ -188,16 +192,16 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -188,16 +192,16 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
188 let existFlag = false; 192 let existFlag = false;
189 193
190 //填充收货人选项 194 //填充收货人选项
191 - let newProductCustomerContactOptions = res?.bomentity?.map((item) => {  
192 - let address =  
193 - item.contact_person + ',' + item.mobile + ',' + item.contact_address;  
194 - if (address === data.contactAddress) {  
195 - existFlag = true;  
196 - }  
197 - return { ...item, label: address, value: address };  
198 - }); 195 + // let newProductCustomerContactOptions = res?.bomentity?.map((item) => {
  196 + // let address =
  197 + // item.contact_person + ',' + item.mobile + ',' + item.contact_address;
  198 + // if (address === data.contactAddress) {
  199 + // existFlag = true;
  200 + // }
  201 + // return { ...item, label: address, value: address };
  202 + // });
199 203
200 - setProductCustomerContactOptions(newProductCustomerContactOptions); 204 + // setProductCustomerContactOptions(newProductCustomerContactOptions);
201 205
202 if (!existFlag) { 206 if (!existFlag) {
203 //清空原来的收货人信息 207 //清空原来的收货人信息
@@ -211,25 +215,25 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -211,25 +215,25 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
211 /** 215 /**
212 * 回显金蝶信息 216 * 回显金蝶信息
213 */ 217 */
214 - async function showKindeeInfo() {  
215 - //客户信息  
216 - if (copyData.customerId) {  
217 - //客户回显  
218 - autoFillCustomerContactSelectOptions(copyData.customerId);  
219 - }  
220 -  
221 - //商品单位回显  
222 - let list = copyData?.subOrderInformationLists;  
223 - if (list) {  
224 - let newProductUnitOptionsList = [...productUnitOptionsList];  
225 - for (let i = 0; i < list.length; i++) {  
226 - newProductUnitOptionsList[i] = [  
227 - { label: list[i].unit, value: list[i].unitId },  
228 - ];  
229 - }  
230 - setProductUnitOptionsList(newProductUnitOptionsList);  
231 - }  
232 - } 218 + // async function showKindeeInfo() {
  219 + // //客户信息
  220 + // if (copyData.customerId) {
  221 + // //客户回显
  222 + // autoFillCustomerContactSelectOptions(copyData.customerId);
  223 + // }
  224 +
  225 + // //商品单位回显
  226 + // let list = copyData?.subOrderInformationLists;
  227 + // if (list) {
  228 + // let newProductUnitOptionsList = [...productUnitOptionsList];
  229 + // for (let i = 0; i < list.length; i++) {
  230 + // newProductUnitOptionsList[i] = [
  231 + // { label: list[i].unit, value: list[i].unitId },
  232 + // ];
  233 + // }
  234 + // setProductUnitOptionsList(newProductUnitOptionsList);
  235 + // }
  236 + // }
233 237
234 /** 238 /**
235 * 构建回显数据 239 * 构建回显数据
@@ -262,6 +266,10 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -262,6 +266,10 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
262 copyData.invoicingStatus = 266 copyData.invoicingStatus =
263 copyData.subOrderInformationLists[0].invoicingStatus; 267 copyData.subOrderInformationLists[0].invoicingStatus;
264 268
  269 + copyData.customerNameString = copyData.customerName;
  270 +
  271 + setPaymentMethod(copyData.paymentMethod);
  272 +
265 //子订单数据处理:子订单在表单中的命名为list 273 //子订单数据处理:子订单在表单中的命名为list
266 let i = 0; 274 let i = 0;
267 let newList = copyData.subOrderInformationLists?.map((item) => { 275 let newList = copyData.subOrderInformationLists?.map((item) => {
@@ -285,17 +293,15 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -285,17 +293,15 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
285 listItem.shippingWarehouse = 'DALANG_WAREHOUSE'; 293 listItem.shippingWarehouse = 'DALANG_WAREHOUSE';
286 } 294 }
287 } 295 }
288 -  
289 setInvoicingStatus(copyData.invoicingStatus); 296 setInvoicingStatus(copyData.invoicingStatus);
290 form.setFieldsValue({ ...copyData }); 297 form.setFieldsValue({ ...copyData });
291 -  
292 //如果是新建,需要清空list 298 //如果是新建,需要清空list
293 if (optType('add')) { 299 if (optType('add')) {
294 form.resetFields(['list']); 300 form.resetFields(['list']);
295 } 301 }
296 302
297 if (!optType('after-sales-check')) { 303 if (!optType('after-sales-check')) {
298 - showKindeeInfo(); 304 + // showKindeeInfo();
299 } 305 }
300 } 306 }
301 } 307 }
@@ -492,12 +498,33 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -492,12 +498,33 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
492 * @param option 收货人信息 498 * @param option 收货人信息
493 */ 499 */
494 async function autoFillCustomerInfo(option: any) { 500 async function autoFillCustomerInfo(option: any) {
495 - form.setFieldValue('customerShippingAddress', option.contact_address);  
496 - form.setFieldValue('customerContactNumber', option.mobile);  
497 - form.setFieldValue('customerName', option.contact_person); 501 + if (option.type === 'add') {
  502 + form.setFieldValue('customerShippingAddress', undefined);
  503 + form.setFieldValue('customerContactNumber', undefined);
  504 + form.setFieldValue('institution', undefined);
  505 + form.setFieldValue('institutionContactName', undefined);
  506 + form.setFieldValue('customerShippingAddress', undefined);
  507 + form.setFieldValue('customerNameString', option.name);
  508 + } else {
  509 + form.setFieldValue('customerShippingAddress', option.fullAddress);
  510 + form.setFieldValue('customerContactNumber', option.phone);
  511 + form.setFieldValue('institution', option.institution);
  512 + form.setFieldValue(
  513 + 'institutionContactName',
  514 + option.institutionContactName,
  515 + );
  516 + form.setFieldValue(
  517 + 'customerShippingAddress',
  518 + getDefaultString(option.province) +
  519 + getDefaultString(option.city) +
  520 + getDefaultString(option.district) +
  521 + getDefaultString(option.detail),
  522 + );
  523 + form.setFieldValue('customerNameString', option.realName);
  524 + }
498 525
499 //erp收货地址:需要与客户联系人中的地址一样:姓名,手机号,地址 526 //erp收货地址:需要与客户联系人中的地址一样:姓名,手机号,地址
500 - form.setFieldValue('contactAddress', option.value); 527 + // form.setFieldValue('contactAddress', option.value);
501 } 528 }
502 529
503 /** 530 /**
@@ -559,18 +586,18 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -559,18 +586,18 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
559 * 检查客户是否可以编辑 586 * 检查客户是否可以编辑
560 * @returns 587 * @returns
561 */ 588 */
562 - const customerEditable = () => {  
563 - let erpCustomerId = form.getFieldValue('erpCustomerId');  
564 - if (  
565 - optType('after-sales-check') ||  
566 - erpCustomerId === null ||  
567 - erpCustomerId === undefined  
568 - ) {  
569 - return false;  
570 - }  
571 -  
572 - return true;  
573 - }; 589 + // const customerEditable = () => {
  590 + // let erpCustomerId = form.getFieldValue('erpCustomerId');
  591 + // if (
  592 + // optType('after-sales-check') ||
  593 + // erpCustomerId === null ||
  594 + // erpCustomerId === undefined
  595 + // ) {
  596 + // return false;
  597 + // }
  598 +
  599 + // return true;
  600 + // };
574 601
575 /** 602 /**
576 * 是否有草稿 603 * 是否有草稿
@@ -624,6 +651,7 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -624,6 +651,7 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
624 if (preOrderData) { 651 if (preOrderData) {
625 let formData = JSON.parse(preOrderData); 652 let formData = JSON.parse(preOrderData);
626 form.setFieldsValue(formData); 653 form.setFieldsValue(formData);
  654 + setPaymentMethod(formData.paymentMethod);
627 } 655 }
628 } 656 }
629 657
@@ -737,6 +765,7 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -737,6 +765,7 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
737 values.list = list; 765 values.list = list;
738 values.institution = values.institution?.trim(); 766 values.institution = values.institution?.trim();
739 values.institutionContactName = values.institutionContactName?.trim(); 767 values.institutionContactName = values.institutionContactName?.trim();
  768 + values.customerName = values.customerNameString.trim();
740 769
741 if (typeof values.erpCustomerId !== 'string') { 770 if (typeof values.erpCustomerId !== 'string') {
742 values.erpCustomerId = values.erpCustomerId?.id; 771 values.erpCustomerId = values.erpCustomerId?.id;
@@ -878,6 +907,11 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -878,6 +907,11 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
878 name="erpCustomerName" 907 name="erpCustomerName"
879 hidden 908 hidden
880 ></ProFormText> 909 ></ProFormText>
  910 + <ProFormText
  911 + key="customerNameString"
  912 + name="customerNameString"
  913 + hidden
  914 + ></ProFormText>
881 915
882 <ProFormText 916 <ProFormText
883 key="contactAddress" 917 key="contactAddress"
@@ -886,58 +920,21 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -886,58 +920,21 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
886 ></ProFormText> 920 ></ProFormText>
887 921
888 <ProFormSelect 922 <ProFormSelect
889 - name="erpCustomerId"  
890 - key="erpCustomerId" 923 + key="customerName"
  924 + label="收货人"
891 width="lg" 925 width="lg"
892 showSearch 926 showSearch
893 - disabled={optType('after-sales-check')}  
894 - tooltip="空格将作为或条件。例如输入[北京 广东],那么查找出来的将是包含[北京]或者包含[广东]的搜索结果"  
895 - label={  
896 - <>  
897 - <span>客户</span>  
898 - <span  
899 - className={  
900 - 'pl-2 text-xs cursor-pointer ' +  
901 - (customerEditable() ? 'text-[#1677ff]' : 'text-gray-400')  
902 - }  
903 - onClick={() => {  
904 - if (!customerEditable()) {  
905 - return;  
906 - }  
907 - let customerId = form.getFieldValue('erpCustomerId');  
908 - if (typeof customerId === 'string') {  
909 - setCustomer({ ...customer, id: customerId });  
910 - } else {  
911 - setCustomer({ ...customer, id: customerId.id });  
912 - }  
913 - setKingdeeCstomerModalVisible(true);  
914 - }}  
915 - >  
916 - 编辑客户信息  
917 - </span>  
918 - </>  
919 - }  
920 - placeholder="请选择客户"  
921 - rules={[{ required: true, message: '客户必填' }]} 927 + name="customerName"
  928 + placeholder="请选择收货人"
  929 + rules={[{ required: true, message: '收货人必填' }]}
922 onChange={(_, option) => { 930 onChange={(_, option) => {
923 - //新增客户  
924 - if (option?.type === 'add') {  
925 - setCustomer({ name: option?.name });  
926 - setKingdeeCstomerModalVisible(true);  
927 - return;  
928 - }  
929 - autoFillCustomerContactSelectOptions(option?.id);  
930 - }}  
931 - initialValue={{  
932 - label: copyData?.erpCustomerName,  
933 - value: copyData?.customerId,  
934 - id: copyData?.customerId, 931 + autoFillCustomerInfo(option);
935 }} 932 }}
936 fieldProps={{ 933 fieldProps={{
937 filterOption() { 934 filterOption() {
938 return true; 935 return true;
939 }, 936 },
940 - optionItemRender(item) { 937 + optionItemRender(item: any) {
941 if (item.type === 'add') { 938 if (item.type === 'add') {
942 return ( 939 return (
943 <div title={item.name + '(新增客户)'}> 940 <div title={item.name + '(新增客户)'}>
@@ -947,23 +944,43 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -947,23 +944,43 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
947 </div> 944 </div>
948 ); 945 );
949 } 946 }
  947 +
  948 + let title = '';
  949 + let spanText = '';
  950 + let realName = item.realName;
  951 + let phone = item.phone;
  952 + let province = item.province;
  953 + let city = item.city;
  954 + let district = item.district;
  955 + let detail = item.detail;
  956 + let institution = item.institution;
  957 + let institutionContactName = item.institutionContactName;
  958 +
  959 + title =
  960 + getDefaultString(realName) +
  961 + '|' +
  962 + getDefaultString(phone) +
  963 + '|' +
  964 + getDefaultString(institution) +
  965 + '|' +
  966 + getDefaultString(institutionContactName) +
  967 + '|' +
  968 + getDefaultString(province) +
  969 + getDefaultString(city) +
  970 + getDefaultString(district) +
  971 + getDefaultString(detail);
  972 +
  973 + spanText =
  974 + getDefaultString(realName) +
  975 + '|' +
  976 + getDefaultString(phone) +
  977 + '|' +
  978 + getDefaultString(institution) +
  979 + '|' +
  980 + getDefaultString(institutionContactName);
950 return ( 981 return (
951 - <div  
952 - title={  
953 - item.name +  
954 - ' | ' +  
955 - item.customerContactNumber +  
956 - ' | ' +  
957 - (item.customerShippingAddress === undefined  
958 - ? '无地址'  
959 - : item.customerShippingAddress) +  
960 - ' | ' +  
961 - item.institutionContactName +  
962 - ' | ' +  
963 - item.institution  
964 - }  
965 - >  
966 - <span style={{ color: '#333333' }}>{item.name}</span> 982 + <div title={title}>
  983 + <span style={{ color: '#333333' }}>{spanText}</span>
967 </div> 984 </div>
968 ); 985 );
969 }, 986 },
@@ -971,10 +988,10 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -971,10 +988,10 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
971 debounceTime={1000} 988 debounceTime={1000}
972 request={async (value, {}) => { 989 request={async (value, {}) => {
973 const keywords = value.keyWords; 990 const keywords = value.keyWords;
974 - const res = await postKingdeeRepCustomer({  
975 - data: { search: keywords }, 991 + const res = await postCanrdApiUserAddressList({
  992 + data: { keywords: keywords },
976 }); 993 });
977 - let options = res?.rows?.map((c: any) => { 994 + let options = res?.data?.map((c: any) => {
978 return { 995 return {
979 ...c, 996 ...c,
980 label: c.name, 997 label: c.name,
@@ -982,7 +999,27 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -982,7 +999,27 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
982 key: c.id, 999 key: c.id,
983 }; 1000 };
984 }); 1001 });
985 - 1002 + console.log(form.getFieldsValue());
  1003 + console.log(form.getFieldValue('customerName'));
  1004 + //判断如果是在修改或者复制,那么第一次请求的时候,默认生成当前收货人信息的option
  1005 + let realName = form.getFieldValue('customerName');
  1006 + let detail = form.getFieldValue('customerShippingAddress');
  1007 + let institution = form.getFieldValue('institution');
  1008 + let institutionContactName = form.getFieldValue(
  1009 + 'institutionContactNam',
  1010 + );
  1011 + if (customerRequestCount === 0) {
  1012 + setCustomerRequestCount(1);
  1013 + options.push({
  1014 + label: realName,
  1015 + value: realName,
  1016 + key: realName,
  1017 + realName: realName,
  1018 + detail: detail,
  1019 + institution: institution,
  1020 + institutionContactName: institutionContactName,
  1021 + });
  1022 + }
986 //第一个商品默认为要新增客户 1023 //第一个商品默认为要新增客户
987 if (keywords.trim() !== '') { 1024 if (keywords.trim() !== '') {
988 options.unshift({ 1025 options.unshift({
@@ -997,21 +1034,6 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -997,21 +1034,6 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
997 return options; 1034 return options;
998 }} 1035 }}
999 /> 1036 />
1000 - <ProFormSelect  
1001 - key="customerName"  
1002 - label="收货人"  
1003 - width="lg"  
1004 - showSearch  
1005 - name="customerName"  
1006 - placeholder="请选择收货人"  
1007 - rules={[{ required: true, message: '收货人必填' }]}  
1008 - onChange={(_, option) => {  
1009 - autoFillCustomerInfo(option);  
1010 - }}  
1011 - initialValue={data.contactAddress}  
1012 - options={productCustomerContactOptions}  
1013 - disabled={optType('after-sales-check')}  
1014 - />  
1015 1037
1016 <ProFormText 1038 <ProFormText
1017 width="lg" 1039 width="lg"
@@ -1020,7 +1042,6 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -1020,7 +1042,6 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
1020 label="联系方式" 1042 label="联系方式"
1021 placeholder="请输入联系方式" 1043 placeholder="请输入联系方式"
1022 rules={[{ required: true, message: '联系方式必填' }]} 1044 rules={[{ required: true, message: '联系方式必填' }]}
1023 - disabled  
1024 /> 1045 />
1025 <ProFormText 1046 <ProFormText
1026 width="lg" 1047 width="lg"
@@ -1029,7 +1050,6 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -1029,7 +1050,6 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
1029 label="单位" 1050 label="单位"
1030 placeholder="请输入单位" 1051 placeholder="请输入单位"
1031 rules={[{ required: true, message: '单位必填' }]} 1052 rules={[{ required: true, message: '单位必填' }]}
1032 - disabled  
1033 /> 1053 />
1034 <ProFormText 1054 <ProFormText
1035 width="lg" 1055 width="lg"
@@ -1038,7 +1058,6 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -1038,7 +1058,6 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
1038 label="课题组" 1058 label="课题组"
1039 placeholder="请输入课题组" 1059 placeholder="请输入课题组"
1040 rules={[{ required: true, message: '课题组必填' }]} 1060 rules={[{ required: true, message: '课题组必填' }]}
1041 - disabled  
1042 /> 1061 />
1043 <ProFormTextArea 1062 <ProFormTextArea
1044 width="lg" 1063 width="lg"
@@ -1047,7 +1066,6 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -1047,7 +1066,6 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
1047 label="收货地址" 1066 label="收货地址"
1048 placeholder="请输入收货地址" 1067 placeholder="请输入收货地址"
1049 rules={[{ required: true, message: '收货地址必填' }]} 1068 rules={[{ required: true, message: '收货地址必填' }]}
1050 - disabled  
1051 /> 1069 />
1052 <div id="total-payment"> 1070 <div id="total-payment">
1053 <ProFormDigit 1071 <ProFormDigit
@@ -1089,11 +1107,69 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -1089,11 +1107,69 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
1089 width="lg" 1107 width="lg"
1090 key="paymentMethod" 1108 key="paymentMethod"
1091 label="支付方式" 1109 label="支付方式"
  1110 + onChange={(val: any) => {
  1111 + setPaymentMethod(val);
  1112 + }}
1092 options={enumToSelect(PAYMENT_METHOD_OPTIONS)} 1113 options={enumToSelect(PAYMENT_METHOD_OPTIONS)}
1093 rules={[{ required: true, message: '支付方式必填' }]} 1114 rules={[{ required: true, message: '支付方式必填' }]}
1094 disabled={optType('after-sales-check')} 1115 disabled={optType('after-sales-check')}
1095 /> 1116 />
1096 <ProFormSelect 1117 <ProFormSelect
  1118 + name="prepaidUid"
  1119 + key="prepaidUid"
  1120 + width="lg"
  1121 + hidden={paymentMethod !== 'WITHHOLDING_ADVANCE_DEPOSIT'}
  1122 + showSearch
  1123 + label="预存账号"
  1124 + onChange={(option: any) => {
  1125 + form.setFieldValue('prepaidAmount', option.nowMoney);
  1126 + }}
  1127 + placeholder="请选择预存账号"
  1128 + rules={[
  1129 + {
  1130 + required: paymentMethod === 'WITHHOLDING_ADVANCE_DEPOSIT',
  1131 + message: '支付方式为扣预存时,预存账号必填',
  1132 + },
  1133 + ]}
  1134 + fieldProps={{
  1135 + filterOption() {
  1136 + return true;
  1137 + },
  1138 + optionItemRender(item) {
  1139 + let name =
  1140 + item.label +
  1141 + ' | ' +
  1142 + item.institution +
  1143 + ' | ' +
  1144 + item.nowMoney +
  1145 + '¥' +
  1146 + ' | ' +
  1147 + item.phone;
  1148 + return (
  1149 + <div title={name}>
  1150 + <span style={{ color: '#333333' }}>{name}</span>
  1151 + </div>
  1152 + );
  1153 + },
  1154 + }}
  1155 + debounceTime={1000}
  1156 + request={async (value, {}) => {
  1157 + const keywords = value.keyWords;
  1158 + const res = await postCanrdApiUserList({
  1159 + data: { keywords: keywords, pageSize: 1000000 },
  1160 + });
  1161 + let options = res?.data?.data?.map((c: any) => {
  1162 + return {
  1163 + ...c,
  1164 + label: c.realName,
  1165 + value: c.uid,
  1166 + key: c.uid,
  1167 + };
  1168 + });
  1169 + return options;
  1170 + }}
  1171 + />
  1172 + <ProFormSelect
1097 placeholder="选择是否需要开票" 1173 placeholder="选择是否需要开票"
1098 name="invoicingStatus" 1174 name="invoicingStatus"
1099 width="lg" 1175 width="lg"
src/pages/Order/constant.ts
@@ -8,6 +8,7 @@ export const PAYMENT_CHANNEL_OPTIONS = { @@ -8,6 +8,7 @@ export const PAYMENT_CHANNEL_OPTIONS = {
8 WECHAT: '微信', 8 WECHAT: '微信',
9 BANK_TRANSFER: '银行转账', 9 BANK_TRANSFER: '银行转账',
10 BALANCE: '预存款', 10 BALANCE: '预存款',
  11 + OFFLINE: '线下支付',
11 }; 12 };
12 13
13 export const RECEIPTS_RECORD_TYPES = { 14 export const RECEIPTS_RECORD_TYPES = {
@@ -91,7 +92,6 @@ export const INVOCING_STATUS = { @@ -91,7 +92,6 @@ export const INVOCING_STATUS = {
91 * 采购审核 92 * 采购审核
92 */ 93 */
93 export const CHECK_TYPE = { 94 export const CHECK_TYPE = {
94 - CONFIRM_DELIVER: 'CONFIRM_DELIVER',  
95 WEARHOUSE_KEEPER: 'WEARHOUSE_KEEPER', 95 WEARHOUSE_KEEPER: 'WEARHOUSE_KEEPER',
96 FINALCIAL: 'FINALCIAL', 96 FINALCIAL: 'FINALCIAL',
97 PROCURE: 'PROCURE', 97 PROCURE: 'PROCURE',
@@ -104,7 +104,7 @@ export const CHECK_TYPE = { @@ -104,7 +104,7 @@ export const CHECK_TYPE = {
104 MODIFY_LEADER_AUDIT: 'MODIFY_LEADER_AUDIT', 104 MODIFY_LEADER_AUDIT: 'MODIFY_LEADER_AUDIT',
105 URGENT_INVOICE_AUDITING: 'URGENT_INVOICE_AUDITING', 105 URGENT_INVOICE_AUDITING: 'URGENT_INVOICE_AUDITING',
106 PAYMENT_RECEIPTS_AUDIT: 'PAYMENT_RECEIPTS_AUDIT', 106 PAYMENT_RECEIPTS_AUDIT: 'PAYMENT_RECEIPTS_AUDIT',
107 - CONFIRM_REISSUE: 'CONFIRM_REISSUE', 107 + PREPAID_AUDIT: 'PREPAID_AUDIT',
108 }; 108 };
109 109
110 /** 110 /**
@@ -392,7 +392,11 @@ export const HISTORY_OPT_TYPE = new Map&lt;string, string&gt;([ @@ -392,7 +392,11 @@ export const HISTORY_OPT_TYPE = new Map&lt;string, string&gt;([
392 ['warehouse_audit', '仓库审核'], 392 ['warehouse_audit', '仓库审核'],
393 ['post_audit', '后置审核'], 393 ['post_audit', '后置审核'],
394 ['applyModify', '申请修改订单信息'], 394 ['applyModify', '申请修改订单信息'],
395 - ['OUTSIDE_SYSTEM_PUSH', '外部系统推送了本订单'], 395 + ['OUTSIDE_SYSTEM_PUSH', '外部系统创建订单'],
  396 + ['api_applyAddressModify', '外部系统申请修改收货地址'],
  397 + ['api_applyAfterSales', '外部系统申请售后'],
  398 + ['api_toEvaluated', '外部系统评价'],
  399 + ['api_confirmReceive', '外部系统确认收货'],
396 ]); 400 ]);
397 401
398 export const MAIN_ORDER_COLUMNS = [ 402 export const MAIN_ORDER_COLUMNS = [
src/pages/Order/index.tsx
@@ -4128,6 +4128,9 @@ const OrderPage = () =&gt; { @@ -4128,6 +4128,9 @@ const OrderPage = () =&gt; {
4128 for (let row of data?.data) { 4128 for (let row of data?.data) {
4129 let mianOrderId = row.id; 4129 let mianOrderId = row.id;
4130 let subOrderIds = row.subOrderInformationLists?.map((item) => { 4130 let subOrderIds = row.subOrderInformationLists?.map((item) => {
  4131 + //目前子订单存储的totalPayment不准确,这里重新处理取主订单的totalPayment
  4132 + //totalPayment在财务开票计算金额时使用到
  4133 + item.totalPayment = row.totalPayment;
4131 return item.id; 4134 return item.id;
4132 }); 4135 });
4133 mainOrderIdSubOrderIdRelationsMap.set(mianOrderId, subOrderIds); 4136 mainOrderIdSubOrderIdRelationsMap.set(mianOrderId, subOrderIds);
src/pages/Prepaid/components/BalanceChangeRecordsModal.tsx 0 → 100644
  1 +import EllipsisDiv from '@/components/Div/EllipsisDiv';
  2 +import { postCanrdApiUserCenterInfo } from '@/services';
  3 +import { ModalForm, ProTable } from '@ant-design/pro-components';
  4 +import { Form } from 'antd';
  5 +import { BALANCE_CHANGE_COLUMNS } from '../constant';
  6 +import '../index.less';
  7 +
  8 +// import { cloneDeep } from 'lodash';
  9 +export default ({ setVisible, userInfoObj, onClose }) => {
  10 + const [form] = Form.useForm<{ name: string; company: string }>();
  11 + const uid = userInfoObj?.uid;
  12 +
  13 + const balanceColumnsInit = () => {
  14 + let columns = BALANCE_CHANGE_COLUMNS.map((item) => {
  15 + let newItem = { ...item };
  16 + let dataIndex = item.dataIndex;
  17 +
  18 + newItem.render = (text, record) => {
  19 + let textValue = record[dataIndex];
  20 + return <EllipsisDiv text={textValue} />;
  21 + };
  22 +
  23 + return newItem;
  24 + });
  25 + return columns;
  26 + };
  27 +
  28 + return (
  29 + <div className="prepaid-index">
  30 + <ModalForm<{
  31 + name: string;
  32 + company: string;
  33 + }>
  34 + width={1000}
  35 + open
  36 + title="余额变动记录"
  37 + form={form}
  38 + autoFocusFirstInput
  39 + submitter={{
  40 + submitButtonProps: {
  41 + style: {
  42 + display: 'none',
  43 + },
  44 + },
  45 + }}
  46 + modalProps={{
  47 + okText: '通过',
  48 + cancelText: '关闭',
  49 + destroyOnClose: true,
  50 + onCancel: () => {
  51 + setVisible(false);
  52 + },
  53 + }}
  54 + onFinish={async (values) => {
  55 + console.log(values);
  56 + onClose();
  57 + }}
  58 + onOpenChange={setVisible}
  59 + >
  60 + <ProTable
  61 + columns={balanceColumnsInit()}
  62 + cardBordered
  63 + pagination={{
  64 + pageSize: 10,
  65 + }}
  66 + request={async (params) => {
  67 + const res = await postCanrdApiUserCenterInfo({
  68 + data: { ...params, uid: uid, type: 4 },
  69 + });
  70 + return {
  71 + data: res?.data?.data || [],
  72 + total: res?.data?.total || 0,
  73 + };
  74 + }}
  75 + columnsState={{
  76 + persistenceKey: 'pro-table-singe-balance',
  77 + persistenceType: 'localStorage',
  78 + defaultValue: {
  79 + option: { fixed: 'right', disable: true },
  80 + },
  81 + onChange(value) {
  82 + console.log('value: ', value);
  83 + },
  84 + }}
  85 + rowKey="id"
  86 + search={false}
  87 + options={{
  88 + setting: {
  89 + listsHeight: 400,
  90 + },
  91 + }}
  92 + form={{}}
  93 + dateFormatter="string"
  94 + headerTitle="余额变动记录"
  95 + scroll={{ x: 1400 }}
  96 + toolBarRender={() => []}
  97 + />
  98 + </ModalForm>
  99 + </div>
  100 + );
  101 +};
src/pages/Prepaid/components/RechargePrepaymentModal.tsx 0 → 100644
  1 +import { RESPONSE_CODE } from '@/constants/enum';
  2 +import {
  3 + postCanrdApiUserList,
  4 + postPrepaidCreate,
  5 + postPrepaidUpdate,
  6 + postServiceOrderFileProcess,
  7 + postServiceOrderQuerySalesCode,
  8 +} from '@/services';
  9 +import { transImageFile } from '@/utils';
  10 +import { PlusOutlined } from '@ant-design/icons';
  11 +import {
  12 + ModalForm,
  13 + ProFormDigit,
  14 + ProFormSelect,
  15 + ProFormText,
  16 + ProFormTextArea,
  17 +} from '@ant-design/pro-components';
  18 +import { Form, Modal, Upload, UploadFile, UploadProps, message } from 'antd';
  19 +import { RcFile } from 'antd/es/upload';
  20 +import { cloneDeep } from 'lodash';
  21 +import { useEffect, useRef, useState } from 'react';
  22 +
  23 +// import { cloneDeep } from 'lodash';
  24 +export default ({ setVisible, prepaymentObject, onClose }) => {
  25 + const [form] = Form.useForm<{
  26 + proofImages: any;
  27 + id: number;
  28 + customerName: string;
  29 + contactPerson: string;
  30 + salesCode: string;
  31 + rechargeAmount: number;
  32 + notes: string;
  33 + }>();
  34 + const [salesCodeOptions, setSalesCodeOptions] = useState([]);
  35 + const [isCreate, setIsCreate] = useState(true);
  36 + const [fileList, setFileList] = useState<UploadFile[]>([]);
  37 + const [previewOpen, setPreviewOpen] = useState(false);
  38 + const [previewImage, setPreviewImage] = useState('');
  39 + const [previewTitle, setPreviewTitle] = useState('');
  40 + const [messageApi, contextHolder] = message.useMessage();
  41 + const fileListObj = useRef<UploadFile[]>([]); //使用引用类型,使得在useEffect里面设置监听事件后,不用更新监听事件也能保持obj与外界一致
  42 + const getBase64 = (file: RcFile): Promise<string> =>
  43 + new Promise((resolve, reject) => {
  44 + const reader = new FileReader();
  45 + reader.readAsDataURL(file);
  46 + reader.onload = () => resolve(reader.result as string);
  47 + reader.onerror = (error) => reject(error);
  48 + });
  49 + const handleCancel = () => setPreviewOpen(false);
  50 +
  51 + /** 粘贴快捷键的回调 */
  52 + const onPaste = async (e: any) => {
  53 + /** 获取剪切板的数据clipboardData */
  54 + let clipboardData = e.clipboardData,
  55 + i = 0,
  56 + items,
  57 + item,
  58 + types;
  59 +
  60 + /** 为空判断 */
  61 + if (clipboardData) {
  62 + items = clipboardData.items;
  63 + if (!items) {
  64 + message.info('您的剪贴板中没有照片');
  65 + return;
  66 + }
  67 +
  68 + item = items[0];
  69 + types = clipboardData.types || [];
  70 + /** 遍历剪切板的数据 */
  71 + for (; i < types.length; i++) {
  72 + if (types[i] === 'Files') {
  73 + item = items[i];
  74 + break;
  75 + }
  76 + }
  77 +
  78 + /** 判断文件是否为图片 */
  79 + if (item && item.kind === 'file' && item.type.match(/^image\//i)) {
  80 + const imgItem = item.getAsFile();
  81 + const newFileList = cloneDeep(fileListObj.current);
  82 + let filteredArray = newFileList.filter(
  83 + (obj) => obj.status !== 'removed',
  84 + ); //过滤掉状态为已删除的照片
  85 + const listItem = {
  86 + ...imgItem,
  87 + status: 'done',
  88 + url: await getBase64(imgItem),
  89 + originFileObj: imgItem,
  90 + };
  91 +
  92 + if (filteredArray.length >= 3) {
  93 + message.info('发货照片数量不能超过3');
  94 + return;
  95 + }
  96 + fileListObj.current = filteredArray;
  97 + filteredArray.push(listItem);
  98 + setFileList(filteredArray);
  99 + return;
  100 + }
  101 + }
  102 +
  103 + message.info('您的剪贴板中没有照片');
  104 + };
  105 +
  106 + const handlePreview = async (file: UploadFile) => {
  107 + if (!file.url && !file.preview) {
  108 + file.preview = await getBase64(file.originFileObj as RcFile);
  109 + }
  110 + setPreviewImage(file.url || (file.preview as string));
  111 + setPreviewOpen(true);
  112 + setPreviewTitle(
  113 + file.name ||
  114 + file.originFileObj?.name ||
  115 + file.url!.substring(file.url!.lastIndexOf('/') + 1),
  116 + );
  117 + };
  118 +
  119 + const handleBeforeUpload = (file: any) => {
  120 + setFileList([...fileList, file]);
  121 + return false;
  122 + };
  123 +
  124 + const handleChange: UploadProps['onChange'] = ({ fileList: newFileList }) => {
  125 + //fileListObj得在change里变化,change的参数是已经处理过的file数组
  126 + //beforeUpload中的参数file是未处理过,还需要Base64拿到文件数据处理
  127 + fileListObj.current = newFileList;
  128 + setFileList(newFileList);
  129 + };
  130 +
  131 + const props: UploadProps = {
  132 + onRemove: (file) => {
  133 + const index = fileList.indexOf(file);
  134 + const newFileList = fileList.slice();
  135 + newFileList.splice(index, 1);
  136 + setFileList(newFileList);
  137 + },
  138 + beforeUpload: handleBeforeUpload,
  139 + listType: 'picture-card',
  140 + onPreview: handlePreview,
  141 + fileList,
  142 + onChange: handleChange,
  143 + accept: 'image/png, image/jpeg, image/png',
  144 + // action: '/api/service/order/fileProcess',
  145 + name: 'files',
  146 + headers: { Authorization: localStorage.getItem('token') },
  147 + };
  148 +
  149 + const uploadButton = (
  150 + <div>
  151 + <PlusOutlined />
  152 + <div style={{ marginTop: 8 }}>上传凭证</div>
  153 + </div>
  154 + );
  155 +
  156 + /**
  157 + * 获取销售代码枚举,在复制和编辑的时候判断是否为旧的代码
  158 + */
  159 + const getSalesCodeOptions = async () => {
  160 + const res = await postServiceOrderQuerySalesCode();
  161 + let options = res.data?.map((item) => {
  162 + return {
  163 + label: item.userName,
  164 + value: item.userName,
  165 + number: item.number,
  166 + };
  167 + });
  168 + setSalesCodeOptions(options);
  169 + };
  170 +
  171 + // 自定义校验规则
  172 + const validateRechargeAmount = async (rule: any, value: number) => {
  173 + if (value <= 0) {
  174 + throw new Error('充值金额必须大于0');
  175 + }
  176 + };
  177 +
  178 + //自动填充客户信息
  179 + const autoFillCustomerContactSelectOptions = (option: any) => {
  180 + console.log(option);
  181 + //新增
  182 + if (option.value === 3.1415926) {
  183 + form.setFieldValue('customerNameString', option.name);
  184 + } else {
  185 + form.setFieldValue('phone', option.phone);
  186 + form.setFieldValue('contactPerson', option.realName);
  187 + form.setFieldValue('customerNameString', option.institution);
  188 + }
  189 + };
  190 +
  191 + useEffect(() => {
  192 + getSalesCodeOptions();
  193 +
  194 + //修改,信息回显
  195 + if (prepaymentObject !== null) {
  196 + setIsCreate(false);
  197 +
  198 + let values = form.getFieldsValue();
  199 + let keys = Object.keys(values);
  200 + for (let key of keys) {
  201 + form.setFieldValue(key, prepaymentObject[key]);
  202 + }
  203 +
  204 + //客户select回显
  205 + form.setFieldValue('customerName', prepaymentObject.customerName);
  206 +
  207 + //凭证回显
  208 + let images = prepaymentObject.proofImages;
  209 + if (images !== null && images !== undefined) {
  210 + let files = images?.map((item) => {
  211 + return {
  212 + url: item,
  213 + status: 'done',
  214 + isOld: true,
  215 + };
  216 + });
  217 + setFileList(files);
  218 + }
  219 + }
  220 + }, []);
  221 +
  222 + useEffect(() => {
  223 + document.addEventListener('paste', onPaste);
  224 + return () => {
  225 + document.removeEventListener('paste', onPaste);
  226 + };
  227 + }, []);
  228 +
  229 + return (
  230 + <>
  231 + <ModalForm
  232 + width={500}
  233 + open
  234 + title={(isCreate ? '新增' : '修改') + '预存记录'}
  235 + form={form}
  236 + autoFocusFirstInput
  237 + modalProps={{
  238 + okText: '保存',
  239 + cancelText: '取消',
  240 + destroyOnClose: true,
  241 + onCancel: () => {
  242 + setVisible(false);
  243 + },
  244 + }}
  245 + onFinish={async (values) => {
  246 + if (fileList.length <= 0) {
  247 + message.error('凭证不能为空');
  248 + return;
  249 + }
  250 + messageApi.open({
  251 + type: 'loading',
  252 + content: '正在上传图片...',
  253 + duration: 0,
  254 + });
  255 + //附件处理
  256 + let formData = new FormData();
  257 + //附件处理
  258 + console.log(fileList);
  259 + for (let file of fileList) {
  260 + if (file.isOld === undefined) {
  261 + if (file.originFileObj) {
  262 + formData.append('files', file.originFileObj as RcFile);
  263 + } else {
  264 + //有url的话取url(源文件),没url取thumbUrl。有url的时候thumbUrl是略缩图
  265 + if (file?.url === undefined || file?.url === null) {
  266 + formData.append(
  267 + 'files',
  268 + transImageFile(file?.thumbUrl),
  269 + file?.originFileObj?.name,
  270 + );
  271 + } else {
  272 + formData.append(
  273 + 'files',
  274 + transImageFile(file?.url),
  275 + file?.originFileObj?.name,
  276 + );
  277 + }
  278 + }
  279 + }
  280 + }
  281 + let res = await postServiceOrderFileProcess({
  282 + data: formData,
  283 + });
  284 + if (res.result === RESPONSE_CODE.SUCCESS) {
  285 + message.success('上传成功!');
  286 +
  287 + let fileUrls = res?.data?.map((item) => {
  288 + return item;
  289 + });
  290 +
  291 + //旧的凭证也要加上去
  292 + fileList.forEach((item) => {
  293 + if (item.isOld !== undefined) {
  294 + fileUrls.unshift(item.url);
  295 + }
  296 + });
  297 +
  298 + values.proofImages = fileUrls;
  299 +
  300 + if (isCreate) {
  301 + res = await postPrepaidCreate({
  302 + data: {
  303 + ...values,
  304 + customerName: form.getFieldValue('customerNameString'),
  305 + },
  306 + });
  307 + } else {
  308 + let customerNameString = form.getFieldValue('customerNameString');
  309 + let body = { ...values };
  310 + if (customerNameString) {
  311 + //customerNameString不为空说明是有重新选择客户,customerName要取这个值
  312 + body.customerName = customerNameString;
  313 + }
  314 + res = await postPrepaidUpdate({
  315 + data: body,
  316 + });
  317 + }
  318 +
  319 + if (res && res.result === RESPONSE_CODE.SUCCESS) {
  320 + message.success(res.message);
  321 + onClose();
  322 + }
  323 + }
  324 + }}
  325 + onOpenChange={setVisible}
  326 + >
  327 + <ProFormText name="id" label="编号" disabled />
  328 + <ProFormSelect
  329 + name="customerName"
  330 + key="customerName"
  331 + width="lg"
  332 + showSearch
  333 + label="客户名称"
  334 + placeholder="请选择客户"
  335 + onChange={(_, option) => {
  336 + autoFillCustomerContactSelectOptions(option);
  337 + }}
  338 + fieldProps={{
  339 + filterOption() {
  340 + return true;
  341 + },
  342 + optionItemRender(item) {
  343 + if (item.type === 'add') {
  344 + return (
  345 + <div title={item.name + '(新增客户)'}>
  346 + <span style={{ color: '#333333' }}>{item.name}</span>
  347 + {' | '}
  348 + <span style={{ color: 'orange' }}>自定义</span>
  349 + </div>
  350 + );
  351 + }
  352 +
  353 + let name =
  354 + item.label +
  355 + ' | ' +
  356 + item.institution +
  357 + ' | ' +
  358 + item.nowMoney +
  359 + '¥' +
  360 + ' | ' +
  361 + item.phone;
  362 + return (
  363 + <div title={name}>
  364 + <span style={{ color: '#333333' }}>{name}</span>
  365 + </div>
  366 + );
  367 + },
  368 + }}
  369 + debounceTime={1000}
  370 + request={async (value, {}) => {
  371 + const keywords = value.keyWords;
  372 + const res = await postCanrdApiUserList({
  373 + data: { keywords: keywords, pageSize: 1000000 },
  374 + });
  375 + let options = res?.data?.data?.map((c: any) => {
  376 + return {
  377 + ...c,
  378 + label: c.realName,
  379 + value: c.uid,
  380 + key: c.uid,
  381 + };
  382 + });
  383 +
  384 + //第一个默认为要新增客户
  385 + if (keywords.trim() !== '') {
  386 + options.unshift({
  387 + name: keywords,
  388 + type: 'add',
  389 + label: keywords,
  390 + value: 3.1415926,
  391 + key: keywords,
  392 + });
  393 + }
  394 +
  395 + return options;
  396 + }}
  397 + />
  398 + <ProFormText
  399 + name="contactPerson"
  400 + label="联系人"
  401 + rules={[{ required: true, message: '请输入联系人' }]}
  402 + />
  403 + <ProFormText
  404 + name="phone"
  405 + label="手机号"
  406 + rules={[{ required: true, message: '请输入手机号' }]}
  407 + />
  408 + <ProFormSelect
  409 + name="salesCode"
  410 + key="salesCode"
  411 + width="lg"
  412 + showSearch
  413 + label="销售代表"
  414 + placeholder="请输入销售代表"
  415 + rules={[{ required: true, message: '销售代表必填' }]}
  416 + options={salesCodeOptions}
  417 + />
  418 + <ProFormDigit
  419 + name="rechargeAmount"
  420 + label="充值金额(¥)"
  421 + rules={[
  422 + { required: true, message: '请输入充值金额' },
  423 + { validator: validateRechargeAmount },
  424 + ]}
  425 + />
  426 +
  427 + <>
  428 + <div className="pb-4 text-xs decoration-gray-50">可复制照片粘贴</div>
  429 + <Upload {...props}>{fileList.length < 3 ? uploadButton : ''}</Upload>
  430 + </>
  431 +
  432 + <ProFormTextArea name="notes" label="备注" />
  433 + </ModalForm>
  434 +
  435 + <Modal
  436 + open={previewOpen}
  437 + title={previewTitle}
  438 + footer={null}
  439 + onCancel={handleCancel}
  440 + >
  441 + <img alt="图片预览" style={{ width: '100%' }} src={previewImage} />
  442 + </Modal>
  443 +
  444 + {contextHolder}
  445 + </>
  446 + );
  447 +};
src/pages/Prepaid/constant.tsx 0 → 100644
  1 +import { enumToProTableEnumValue } from '@/utils';
  2 +
  3 +export type PrepaidItem = {
  4 + id: number; // id
  5 + customerName: string; // 购买方
  6 + contactPerson: string; // 联系人
  7 + salesCode: string; // 销售
  8 + phone: string; // 销售
  9 + rechargeAmount: number; // 金额
  10 + notes: string; // 备注
  11 + rechargeSource: string; // 充值来源
  12 + status: string; // 状态
  13 + auditors: string; // 审核人
  14 + auditDate: string; // 审核日期
  15 + auditNotes: string; // 审核备注
  16 +};
  17 +export const PREPAID_STATUS_OPTIONS = {
  18 + CREATED: '待审核',
  19 + AUDIT_FAIL: '审核失败',
  20 + AUDIT_PASS: '审核通过',
  21 +};
  22 +export const SALES_RECHARGE_PREPAYMENT_COLUMNS = [
  23 + // {
  24 + // title: '编号',
  25 + // dataIndex: 'id',
  26 + // key: 'id',
  27 + // valueType: 'index',
  28 + // },
  29 + {
  30 + title: '客户名称',
  31 + dataIndex: 'customerName',
  32 + key: 'customerName',
  33 + valueType: 'text',
  34 + },
  35 + {
  36 + title: '联系人',
  37 + dataIndex: 'contactPerson',
  38 + key: 'contactPerson',
  39 + valueType: 'text',
  40 + },
  41 + {
  42 + title: '销售',
  43 + dataIndex: 'salesCode',
  44 + key: 'salesCode',
  45 + valueType: 'text',
  46 + },
  47 + {
  48 + title: '手机号',
  49 + dataIndex: 'phone',
  50 + key: 'phone',
  51 + valueType: 'text',
  52 + },
  53 + {
  54 + title: '金额',
  55 + dataIndex: 'rechargeAmount',
  56 + key: 'rechargeAmount',
  57 + valueType: 'money',
  58 + hideInSearch: true,
  59 + },
  60 + {
  61 + title: '状态',
  62 + dataIndex: 'status',
  63 + key: 'status',
  64 + valueType: 'text',
  65 + valueEnum: enumToProTableEnumValue(PREPAID_STATUS_OPTIONS),
  66 + },
  67 + {
  68 + title: '备注',
  69 + dataIndex: 'notes',
  70 + key: 'notes',
  71 + valueType: 'text',
  72 + },
  73 + {
  74 + title: '凭证',
  75 + dataIndex: 'proofImages',
  76 + key: 'proofImages',
  77 + },
  78 + {
  79 + title: '创建日期',
  80 + dataIndex: 'createTime',
  81 + key: 'createTime',
  82 + valueType: 'dateTimeRange',
  83 + search: {
  84 + transform: (value) => {
  85 + return {
  86 + createTimeBeginTime: value[0],
  87 + createTimeEndTime: value[1],
  88 + };
  89 + },
  90 + },
  91 + },
  92 + {
  93 + title: '充值来源',
  94 + dataIndex: 'rechargeSource',
  95 + key: 'rechargeSource',
  96 + valueType: 'text',
  97 + hideInTable: true,
  98 + hideInSearch: true,
  99 + },
  100 +
  101 + {
  102 + title: '审核人',
  103 + dataIndex: 'auditors',
  104 + key: 'auditors',
  105 + valueType: 'text',
  106 + hideInTable: true,
  107 + hideInSearch: true,
  108 + },
  109 + {
  110 + title: '审核日期',
  111 + dataIndex: 'auditDate',
  112 + key: 'auditDate',
  113 + valueType: 'dateTimeRange',
  114 + hideInTable: true,
  115 + search: {
  116 + transform: (value) => {
  117 + return {
  118 + auditDateBeginTime: value[0],
  119 + auditDateEndTime: value[1],
  120 + };
  121 + },
  122 + },
  123 + hideInSearch: true,
  124 + },
  125 + {
  126 + title: '审核备注',
  127 + dataIndex: 'auditNotes',
  128 + key: 'auditNotes',
  129 + valueType: 'text',
  130 + },
  131 +];
  132 +
  133 +export const ACCOUNT_COLUMNS = [
  134 + // {
  135 + // title: '编号',
  136 + // dataIndex: 'uid',
  137 + // key: 'uid',
  138 + // valueType: 'index',
  139 + // hideInSearch: true,
  140 + // },
  141 + {
  142 + title: '关键字',
  143 + dataIndex: 'keywords',
  144 + key: 'keywords',
  145 + hideInTable: true,
  146 + fieldProps: {
  147 + placeholder: '请输入 单位|课题组|姓名|手机号|昵称',
  148 + },
  149 + },
  150 + {
  151 + title: '单位',
  152 + dataIndex: 'institution',
  153 + key: 'institution',
  154 + valueType: 'text',
  155 + hideInSearch: true,
  156 + },
  157 + {
  158 + title: '课题组老师',
  159 + dataIndex: 'institutionContactName',
  160 + key: 'institutionContactName',
  161 + valueType: 'text',
  162 + hideInSearch: true,
  163 + },
  164 + {
  165 + title: '手机号',
  166 + dataIndex: 'phone',
  167 + key: 'phone',
  168 + valueType: 'text',
  169 + },
  170 + {
  171 + title: '真实姓名',
  172 + dataIndex: 'realName',
  173 + key: 'realName',
  174 + valueType: 'text',
  175 + hideInSearch: true,
  176 + },
  177 + {
  178 + title: '余额(¥)',
  179 + dataIndex: 'nowMoney',
  180 + key: 'nowMoney',
  181 + valueType: 'money',
  182 + hideInSearch: true,
  183 + },
  184 + {
  185 + title: '账号',
  186 + dataIndex: 'account',
  187 + key: 'account',
  188 + valueType: 'text',
  189 + hideInSearch: true,
  190 + },
  191 + {
  192 + title: '昵称',
  193 + dataIndex: 'nickname',
  194 + key: 'nickname',
  195 + valueType: 'text',
  196 + hideInSearch: true,
  197 + },
  198 + {
  199 + title: '账号创建日期',
  200 + dataIndex: 'createTime',
  201 + key: 'createTime',
  202 + valueType: 'dateRange',
  203 + search: {
  204 + transform: (value) => {
  205 + return {
  206 + dateLimit: value[0] + ',' + value[1],
  207 + };
  208 + },
  209 + },
  210 + },
  211 +];
  212 +
  213 +export const BALANCE_CHANGE_COLUMNS = [
  214 + {
  215 + title: '变动金额(¥)',
  216 + dataIndex: 'number',
  217 + key: 'number',
  218 + dataType: 'money',
  219 + width: 140,
  220 + },
  221 + {
  222 + title: '变动后(¥)',
  223 + dataIndex: 'balance',
  224 + key: 'balance',
  225 + dataType: 'money',
  226 + width: 140,
  227 + },
  228 + {
  229 + title: '类型',
  230 + dataIndex: 'title',
  231 + key: 'title',
  232 + dataType: 'text',
  233 + width: 200,
  234 + },
  235 + {
  236 + title: '备注',
  237 + dataIndex: 'mark',
  238 + key: 'mark',
  239 + dataType: 'text',
  240 + width: 250,
  241 + },
  242 + {
  243 + title: '创建时间',
  244 + dataIndex: 'add_time',
  245 + key: 'add_time',
  246 + dataType: 'datetime',
  247 + },
  248 +];
src/pages/Prepaid/index.less 0 → 100644
  1 +.prepaid-index td {
  2 + font-family: 'San Francisco', 'Helvetica Neue', Helvetica, Arial,
  3 + 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB', 'Heiti SC',
  4 + 'WenQuanYi Micro Hei', sans-serif;
  5 + font-size: 13px;
  6 +}
src/pages/Prepaid/index.tsx
@@ -155,7 +155,7 @@ const PrepaidPage = () =&gt; { @@ -155,7 +155,7 @@ const PrepaidPage = () =&gt; {
155 <ButtonConfirm 155 <ButtonConfirm
156 key="delete" 156 key="delete"
157 className="p-0" 157 className="p-0"
158 - title={'确认删除编号为[ ' + record.id + ' ]的预存记录吗?'} 158 + title={'确认删除这条预存记录吗?'}
159 text="删除" 159 text="删除"
160 onConfirm={async () => { 160 onConfirm={async () => {
161 let res = await postPrepaidDelete({ 161 let res = await postPrepaidDelete({
src/services/definition.ts
@@ -365,6 +365,16 @@ export interface ApiCreateOrderRequest { @@ -365,6 +365,16 @@ export interface ApiCreateOrderRequest {
365 customerShippingAddress?: string; 365 customerShippingAddress?: string;
366 /** 366 /**
367 * @description 367 * @description
  368 + * 单位
  369 + */
  370 + institution?: string;
  371 + /**
  372 + * @description
  373 + * 课题组老师
  374 + */
  375 + institutionContactName?: string;
  376 + /**
  377 + * @description
368 * 商品列表 378 * 商品列表
369 */ 379 */
370 list?: Array<ApiCreateProductRequest>; 380 list?: Array<ApiCreateProductRequest>;
@@ -466,6 +476,19 @@ export interface ApiCreateProductRequest { @@ -466,6 +476,19 @@ export interface ApiCreateProductRequest {
466 unit?: string; 476 unit?: string;
467 } 477 }
468 478
  479 +export interface ApiOrderCustomersRequest {
  480 + /** @format int32 */
  481 + current?: number;
  482 + /** @format int32 */
  483 + pageSize?: number;
  484 + /** @format int32 */
  485 + total?: number;
  486 +}
  487 +
  488 +export interface ApiOrderEvaluatedRequest {
  489 + subOrderIds?: Array<number>;
  490 +}
  491 +
469 export interface ApiQueryOrderDetailRequest { 492 export interface ApiQueryOrderDetailRequest {
470 /** 493 /**
471 * @description 494 * @description
@@ -479,6 +502,12 @@ export interface ApiQueryOrderDetailRequest { @@ -479,6 +502,12 @@ export interface ApiQueryOrderDetailRequest {
479 orderId?: string; 502 orderId?: string;
480 /** 503 /**
481 * @description 504 * @description
  505 + * 子订单状态
  506 + * @format int32
  507 + */
  508 + orderStatus?: number;
  509 + /**
  510 + * @description
482 * 账号id 511 * 账号id
483 * @format int32 512 * @format int32
484 */ 513 */
@@ -500,6 +529,12 @@ export interface ApiQueryOrderStatusCountsRequest { @@ -500,6 +529,12 @@ export interface ApiQueryOrderStatusCountsRequest {
500 } 529 }
501 530
502 export interface AuditDto { 531 export interface AuditDto {
  532 + /**
  533 + * @description
  534 + * 主订单id
  535 + * @format int64
  536 + */
  537 + mainOrderId?: number;
503 notes?: string; 538 notes?: string;
504 /** 539 /**
505 * @description 540 * @description
@@ -854,6 +889,22 @@ export interface InventoryMaterialStockReq { @@ -854,6 +889,22 @@ export interface InventoryMaterialStockReq {
854 materialId?: string; 889 materialId?: string;
855 } 890 }
856 891
  892 +export interface InvoiceRecordQueryRequest {
  893 + /** @format date */
  894 + createTimeGe?: string;
  895 + /** @format date */
  896 + createTimeLe?: string;
  897 + /** @format int32 */
  898 + pageNumber?: number;
  899 + /** @format int32 */
  900 + pageSize?: number;
  901 + /**
  902 + * @description
  903 + * 用户id
  904 + */
  905 + uid?: string;
  906 +}
  907 +
857 export interface Item { 908 export interface Item {
858 billDate?: string; 909 billDate?: string;
859 billNo?: string; 910 billNo?: string;
@@ -867,6 +918,20 @@ export interface ItemSaItem { @@ -867,6 +918,20 @@ export interface ItemSaItem {
867 itemValue?: string; 918 itemValue?: string;
868 } 919 }
869 920
  921 +export interface MainOrderqueryRequest {
  922 + afterInvoicingStatusIsNull?: boolean;
  923 + orderStatusNotIn?: Array<string>;
  924 + /** @format int32 */
  925 + pageNumber?: number;
  926 + /** @format int32 */
  927 + pageSize?: number;
  928 + /**
  929 + * @description
  930 + * 用户id
  931 + */
  932 + uid?: string;
  933 +}
  934 +
870 export interface MaterialListReply { 935 export interface MaterialListReply {
871 count?: string; 936 count?: string;
872 /** @format int32 */ 937 /** @format int32 */
@@ -1529,8 +1594,6 @@ export interface QueryReportFormsDto { @@ -1529,8 +1594,6 @@ export interface QueryReportFormsDto {
1529 export interface ReissueInvoiceDto { 1594 export interface ReissueInvoiceDto {
1530 /** @format int64 */ 1595 /** @format int64 */
1531 invoiceId?: number; 1596 invoiceId?: number;
1532 - invoiceNumber?: string;  
1533 - mainOrderIds?: Array<number>;  
1534 notes?: string; 1597 notes?: string;
1535 } 1598 }
1536 1599
@@ -1708,6 +1771,31 @@ export interface UpdatePwdVO { @@ -1708,6 +1771,31 @@ export interface UpdatePwdVO {
1708 userId?: number; 1771 userId?: number;
1709 } 1772 }
1710 1773
  1774 +export interface UserAddressListRequest {
  1775 + keywords?: string;
  1776 +}
  1777 +
  1778 +export interface UserCenterInfoRequest {
  1779 + /** @format int32 */
  1780 + current?: number;
  1781 + /** @format int32 */
  1782 + pageSize?: number;
  1783 + /** @format int32 */
  1784 + total?: number;
  1785 + /**
  1786 + * @description
  1787 + * 类型:0=消费记录,1=积分明细,2=签到记录,3=持有优惠券,4=余额变动,5=好友关系
  1788 + * @format int32
  1789 + */
  1790 + type?: number;
  1791 + /**
  1792 + * @description
  1793 + * 用户id
  1794 + * @format int32
  1795 + */
  1796 + uid?: number;
  1797 +}
  1798 +
1711 export interface UserDetailRequest { 1799 export interface UserDetailRequest {
1712 /** @format int32 */ 1800 /** @format int32 */
1713 current?: number; 1801 current?: number;
@@ -1732,6 +1820,11 @@ export interface UserListRequest { @@ -1732,6 +1820,11 @@ export interface UserListRequest {
1732 current?: number; 1820 current?: number;
1733 /** 1821 /**
1734 * @description 1822 * @description
  1823 + * 创建日期开始时间
  1824 + */
  1825 + dateLimit?: string;
  1826 + /**
  1827 + * @description
1735 * 单位 1828 * 单位
1736 */ 1829 */
1737 institution?: string; 1830 institution?: string;
@@ -1752,10 +1845,21 @@ export interface UserListRequest { @@ -1752,10 +1845,21 @@ export interface UserListRequest {
1752 * 手机号 1845 * 手机号
1753 */ 1846 */
1754 phone?: string; 1847 phone?: string;
  1848 + /**
  1849 + * @description
  1850 + * salesCode
  1851 + */
  1852 + salesCode?: string;
1755 /** @format int32 */ 1853 /** @format int32 */
1756 total?: number; 1854 total?: number;
1757 /** 1855 /**
1758 * @description 1856 * @description
  1857 + * id
  1858 + * @format int32
  1859 + */
  1860 + uid?: number;
  1861 + /**
  1862 + * @description
1759 * 用户名 1863 * 用户名
1760 */ 1864 */
1761 username?: string; 1865 username?: string;
@@ -1765,6 +1869,24 @@ export interface View { @@ -1765,6 +1869,24 @@ export interface View {
1765 contentType?: string; 1869 contentType?: string;
1766 } 1870 }
1767 1871
  1872 +/**
  1873 + * @description
  1874 + * 确认收货请求
  1875 + */
  1876 +export interface ApiOrderConfirmReceiveRequest {
  1877 + /**
  1878 + * @description
  1879 + * 主订单id
  1880 + * @format int64
  1881 + */
  1882 + orderId?: number;
  1883 + /**
  1884 + * @description
  1885 + * 子订单id
  1886 + */
  1887 + subOrderIds?: Array<number>;
  1888 +}
  1889 +
1768 export interface SalesRechargePrepaymentAuditRequest { 1890 export interface SalesRechargePrepaymentAuditRequest {
1769 /** 1891 /**
1770 * @description 1892 * @description
@@ -1806,6 +1928,11 @@ export interface SalesRechargePrepaymentCreateRequest { @@ -1806,6 +1928,11 @@ export interface SalesRechargePrepaymentCreateRequest {
1806 phone?: string; 1928 phone?: string;
1807 /** 1929 /**
1808 * @description 1930 * @description
  1931 + * 凭证
  1932 + */
  1933 + proofImages?: Array<string>;
  1934 + /**
  1935 + * @description
1809 * 充值金额 1936 * 充值金额
1810 */ 1937 */
1811 rechargeAmount?: number; 1938 rechargeAmount?: number;
@@ -1969,6 +2096,11 @@ export interface SalesRechargePrepaymentUpdateRequest { @@ -1969,6 +2096,11 @@ export interface SalesRechargePrepaymentUpdateRequest {
1969 phone?: string; 2096 phone?: string;
1970 /** 2097 /**
1971 * @description 2098 * @description
  2099 + * 凭证
  2100 + */
  2101 + proofImages?: Array<string>;
  2102 + /**
  2103 + * @description
1972 * 充值金额 2104 * 充值金额
1973 */ 2105 */
1974 rechargeAmount?: number; 2106 rechargeAmount?: number;
@@ -1984,6 +2116,101 @@ export interface SalesRechargePrepaymentUpdateRequest { @@ -1984,6 +2116,101 @@ export interface SalesRechargePrepaymentUpdateRequest {
1984 salesCode?: string; 2116 salesCode?: string;
1985 } 2117 }
1986 2118
  2119 +/**
  2120 + * @description
  2121 + * 开票添加对象
  2122 + */
  2123 +export interface StoreOrderInvoiceRequest {
  2124 + /**
  2125 + * @description
  2126 + * 开票备注
  2127 + */
  2128 + comment?: string;
  2129 + /**
  2130 + * @description
  2131 + * 开票内容
  2132 + */
  2133 + content?: string;
  2134 + /**
  2135 + * @description
  2136 + * 创建时间
  2137 + * @format date-time
  2138 + */
  2139 + createTime?: string;
  2140 + /**
  2141 + * @description
  2142 + * 关联订单id
  2143 + */
  2144 + orderIdList?: Array<number>;
  2145 + /**
  2146 + * @description
  2147 + * 买方注册地址
  2148 + */
  2149 + partyAAddress?: string;
  2150 + /**
  2151 + * @description
  2152 + * 买方开户行账号
  2153 + */
  2154 + partyABankAccount?: string;
  2155 + /**
  2156 + * @description
  2157 + * 买方名称
  2158 + */
  2159 + partyAName?: string;
  2160 + /**
  2161 + * @description
  2162 + * 买方开户行
  2163 + */
  2164 + partyAOpenBank?: string;
  2165 + /**
  2166 + * @description
  2167 + * 买方电话号码
  2168 + */
  2169 + partyAPhoneNumber?: string;
  2170 + /**
  2171 + * @description
  2172 + * 买方税号
  2173 + */
  2174 + partyATaxid?: string;
  2175 + /**
  2176 + * @description
  2177 + * 抬头类型
  2178 + */
  2179 + partyAType?: string;
  2180 + /**
  2181 + * @description
  2182 + * 卖方名称
  2183 + */
  2184 + partyBName?: string;
  2185 + /**
  2186 + * @description
  2187 + * 发票金额
  2188 + * @format double
  2189 + */
  2190 + price?: number;
  2191 + /**
  2192 + * @description
  2193 + * 接收邮箱地址
  2194 + */
  2195 + receiveEmail?: string;
  2196 + /**
  2197 + * @description
  2198 + * 发票类型
  2199 + */
  2200 + type?: string;
  2201 + /**
  2202 + * @description
  2203 + * 用户id
  2204 + */
  2205 + uid?: string;
  2206 + /**
  2207 + * @description
  2208 + * 更新时间
  2209 + * @format date-time
  2210 + */
  2211 + updateTime?: string;
  2212 +}
  2213 +
1987 export interface UploadPaymentReceiptDTO { 2214 export interface UploadPaymentReceiptDTO {
1988 /** 2215 /**
1989 * @description 2216 * @description
src/services/request.ts
@@ -24,6 +24,9 @@ import type { @@ -24,6 +24,9 @@ import type {
24 ApiApplyAddressModifyRequest, 24 ApiApplyAddressModifyRequest,
25 ApiApplyAfterSalesRequest, 25 ApiApplyAfterSalesRequest,
26 ApiCreateOrderRequest, 26 ApiCreateOrderRequest,
  27 + ApiOrderConfirmReceiveRequest,
  28 + ApiOrderCustomersRequest,
  29 + ApiOrderEvaluatedRequest,
27 ApiQueryOrderDetailRequest, 30 ApiQueryOrderDetailRequest,
28 ApiQueryOrderStatusCountsRequest, 31 ApiQueryOrderStatusCountsRequest,
29 AuditDto, 32 AuditDto,
@@ -41,13 +44,14 @@ import type { @@ -41,13 +44,14 @@ import type {
41 DictionaryVO, 44 DictionaryVO,
42 Dto, 45 Dto,
43 InventoryMaterialStockReq, 46 InventoryMaterialStockReq,
  47 + InvoiceRecordQueryRequest,
  48 + MainOrderqueryRequest,
44 MaterialListReply, 49 MaterialListReply,
45 MaterialMaterialListReq, 50 MaterialMaterialListReq,
46 MaterialStockRes, 51 MaterialStockRes,
47 MaterialUnitListRes, 52 MaterialUnitListRes,
48 MeasureUnitListRes, 53 MeasureUnitListRes,
49 MessageQueryDTO, 54 MessageQueryDTO,
50 - ModelAndView,  
51 OrderAddVO, 55 OrderAddVO,
52 OrderAuditLogQueryVO, 56 OrderAuditLogQueryVO,
53 OrderBaseInfoQueryVO, 57 OrderBaseInfoQueryVO,
@@ -79,6 +83,7 @@ import type { @@ -79,6 +83,7 @@ import type {
79 SaveReply, 83 SaveReply,
80 ServerResult, 84 ServerResult,
81 ShippingWarehouseChangeDto, 85 ShippingWarehouseChangeDto,
  86 + StoreOrderInvoiceRequest,
82 SysLogQueryVO, 87 SysLogQueryVO,
83 SystemCustomFieldReq, 88 SystemCustomFieldReq,
84 ToProcureAuditDto, 89 ToProcureAuditDto,
@@ -88,6 +93,8 @@ import type { @@ -88,6 +93,8 @@ import type {
88 UpdateHirePurchaseDto, 93 UpdateHirePurchaseDto,
89 UpdatePwdVO, 94 UpdatePwdVO,
90 UploadPaymentReceiptDTO, 95 UploadPaymentReceiptDTO,
  96 + UserAddressListRequest,
  97 + UserCenterInfoRequest,
91 UserDetailRequest, 98 UserDetailRequest,
92 UserListRequest, 99 UserListRequest,
93 } from './definition'; 100 } from './definition';
@@ -404,6 +411,77 @@ export const postApiOrderApplyAfterSales = /* #__PURE__ */ (() =&gt; { @@ -404,6 +411,77 @@ export const postApiOrderApplyAfterSales = /* #__PURE__ */ (() =&gt; {
404 return request; 411 return request;
405 })(); 412 })();
406 413
  414 +/** @description request parameter type for postApiOrderConfirmReceive */
  415 +export interface PostApiOrderConfirmReceiveOption {
  416 + /**
  417 + * @description
  418 + * request
  419 + */
  420 + body: {
  421 + /**
  422 + @description
  423 + request */
  424 + request: ApiOrderConfirmReceiveRequest;
  425 + };
  426 +}
  427 +
  428 +/** @description response type for postApiOrderConfirmReceive */
  429 +export interface PostApiOrderConfirmReceiveResponse {
  430 + /**
  431 + * @description
  432 + * OK
  433 + */
  434 + 200: ServerResult;
  435 + /**
  436 + * @description
  437 + * Created
  438 + */
  439 + 201: any;
  440 + /**
  441 + * @description
  442 + * Unauthorized
  443 + */
  444 + 401: any;
  445 + /**
  446 + * @description
  447 + * Forbidden
  448 + */
  449 + 403: any;
  450 + /**
  451 + * @description
  452 + * Not Found
  453 + */
  454 + 404: any;
  455 +}
  456 +
  457 +export type PostApiOrderConfirmReceiveResponseSuccess =
  458 + PostApiOrderConfirmReceiveResponse[200];
  459 +/**
  460 + * @description
  461 + * 确认收货
  462 + * @tags 内部订单
  463 + * @produces *
  464 + * @consumes application/json
  465 + */
  466 +export const postApiOrderConfirmReceive = /* #__PURE__ */ (() => {
  467 + const method = 'post';
  468 + const url = '/api/order/confirmReceive';
  469 + function request(
  470 + option: PostApiOrderConfirmReceiveOption,
  471 + ): Promise<PostApiOrderConfirmReceiveResponseSuccess> {
  472 + return requester(request.url, {
  473 + method: request.method,
  474 + ...option,
  475 + }) as unknown as Promise<PostApiOrderConfirmReceiveResponseSuccess>;
  476 + }
  477 +
  478 + /** http method */
  479 + request.method = method;
  480 + /** request url */
  481 + request.url = url;
  482 + return request;
  483 +})();
  484 +
407 /** @description request parameter type for postApiOrderCreateOrder */ 485 /** @description request parameter type for postApiOrderCreateOrder */
408 export interface PostApiOrderCreateOrderOption { 486 export interface PostApiOrderCreateOrderOption {
409 /** 487 /**
@@ -414,12 +492,563 @@ export interface PostApiOrderCreateOrderOption { @@ -414,12 +492,563 @@ export interface PostApiOrderCreateOrderOption {
414 /** 492 /**
415 @description 493 @description
416 request */ 494 request */
417 - request: ApiCreateOrderRequest; 495 + request: ApiCreateOrderRequest;
  496 + };
  497 +}
  498 +
  499 +/** @description response type for postApiOrderCreateOrder */
  500 +export interface PostApiOrderCreateOrderResponse {
  501 + /**
  502 + * @description
  503 + * OK
  504 + */
  505 + 200: ServerResult;
  506 + /**
  507 + * @description
  508 + * Created
  509 + */
  510 + 201: any;
  511 + /**
  512 + * @description
  513 + * Unauthorized
  514 + */
  515 + 401: any;
  516 + /**
  517 + * @description
  518 + * Forbidden
  519 + */
  520 + 403: any;
  521 + /**
  522 + * @description
  523 + * Not Found
  524 + */
  525 + 404: any;
  526 +}
  527 +
  528 +export type PostApiOrderCreateOrderResponseSuccess =
  529 + PostApiOrderCreateOrderResponse[200];
  530 +/**
  531 + * @description
  532 + * 创建订单
  533 + * @tags 内部订单
  534 + * @produces *
  535 + * @consumes application/json
  536 + */
  537 +export const postApiOrderCreateOrder = /* #__PURE__ */ (() => {
  538 + const method = 'post';
  539 + const url = '/api/order/createOrder';
  540 + function request(
  541 + option: PostApiOrderCreateOrderOption,
  542 + ): Promise<PostApiOrderCreateOrderResponseSuccess> {
  543 + return requester(request.url, {
  544 + method: request.method,
  545 + ...option,
  546 + }) as unknown as Promise<PostApiOrderCreateOrderResponseSuccess>;
  547 + }
  548 +
  549 + /** http method */
  550 + request.method = method;
  551 + /** request url */
  552 + request.url = url;
  553 + return request;
  554 +})();
  555 +
  556 +/** @description request parameter type for postApiOrderCustomers */
  557 +export interface PostApiOrderCustomersOption {
  558 + /**
  559 + * @description
  560 + * request
  561 + */
  562 + body: {
  563 + /**
  564 + @description
  565 + request */
  566 + request: ApiOrderCustomersRequest;
  567 + };
  568 +}
  569 +
  570 +/** @description response type for postApiOrderCustomers */
  571 +export interface PostApiOrderCustomersResponse {
  572 + /**
  573 + * @description
  574 + * OK
  575 + */
  576 + 200: ServerResult;
  577 + /**
  578 + * @description
  579 + * Created
  580 + */
  581 + 201: any;
  582 + /**
  583 + * @description
  584 + * Unauthorized
  585 + */
  586 + 401: any;
  587 + /**
  588 + * @description
  589 + * Forbidden
  590 + */
  591 + 403: any;
  592 + /**
  593 + * @description
  594 + * Not Found
  595 + */
  596 + 404: any;
  597 +}
  598 +
  599 +export type PostApiOrderCustomersResponseSuccess =
  600 + PostApiOrderCustomersResponse[200];
  601 +/**
  602 + * @description
  603 + * 查询订单客户信息
  604 + * @tags 内部订单
  605 + * @produces *
  606 + * @consumes application/json
  607 + */
  608 +export const postApiOrderCustomers = /* #__PURE__ */ (() => {
  609 + const method = 'post';
  610 + const url = '/api/order/customers';
  611 + function request(
  612 + option: PostApiOrderCustomersOption,
  613 + ): Promise<PostApiOrderCustomersResponseSuccess> {
  614 + return requester(request.url, {
  615 + method: request.method,
  616 + ...option,
  617 + }) as unknown as Promise<PostApiOrderCustomersResponseSuccess>;
  618 + }
  619 +
  620 + /** http method */
  621 + request.method = method;
  622 + /** request url */
  623 + request.url = url;
  624 + return request;
  625 +})();
  626 +
  627 +/** @description request parameter type for postApiOrderEvaluated */
  628 +export interface PostApiOrderEvaluatedOption {
  629 + /**
  630 + * @description
  631 + * request
  632 + */
  633 + body: {
  634 + /**
  635 + @description
  636 + request */
  637 + request: ApiOrderEvaluatedRequest;
  638 + };
  639 +}
  640 +
  641 +/** @description response type for postApiOrderEvaluated */
  642 +export interface PostApiOrderEvaluatedResponse {
  643 + /**
  644 + * @description
  645 + * OK
  646 + */
  647 + 200: ServerResult;
  648 + /**
  649 + * @description
  650 + * Created
  651 + */
  652 + 201: any;
  653 + /**
  654 + * @description
  655 + * Unauthorized
  656 + */
  657 + 401: any;
  658 + /**
  659 + * @description
  660 + * Forbidden
  661 + */
  662 + 403: any;
  663 + /**
  664 + * @description
  665 + * Not Found
  666 + */
  667 + 404: any;
  668 +}
  669 +
  670 +export type PostApiOrderEvaluatedResponseSuccess =
  671 + PostApiOrderEvaluatedResponse[200];
  672 +/**
  673 + * @description
  674 + * 评价子订单
  675 + * @tags 内部订单
  676 + * @produces *
  677 + * @consumes application/json
  678 + */
  679 +export const postApiOrderEvaluated = /* #__PURE__ */ (() => {
  680 + const method = 'post';
  681 + const url = '/api/order/evaluated';
  682 + function request(
  683 + option: PostApiOrderEvaluatedOption,
  684 + ): Promise<PostApiOrderEvaluatedResponseSuccess> {
  685 + return requester(request.url, {
  686 + method: request.method,
  687 + ...option,
  688 + }) as unknown as Promise<PostApiOrderEvaluatedResponseSuccess>;
  689 + }
  690 +
  691 + /** http method */
  692 + request.method = method;
  693 + /** request url */
  694 + request.url = url;
  695 + return request;
  696 +})();
  697 +
  698 +/** @description request parameter type for postApiOrderInvoicedOrderList */
  699 +export interface PostApiOrderInvoicedOrderListOption {
  700 + /**
  701 + * @description
  702 + * request
  703 + */
  704 + body: {
  705 + /**
  706 + @description
  707 + request */
  708 + request: MainOrderqueryRequest;
  709 + };
  710 +}
  711 +
  712 +/** @description response type for postApiOrderInvoicedOrderList */
  713 +export interface PostApiOrderInvoicedOrderListResponse {
  714 + /**
  715 + * @description
  716 + * OK
  717 + */
  718 + 200: ServerResult;
  719 + /**
  720 + * @description
  721 + * Created
  722 + */
  723 + 201: any;
  724 + /**
  725 + * @description
  726 + * Unauthorized
  727 + */
  728 + 401: any;
  729 + /**
  730 + * @description
  731 + * Forbidden
  732 + */
  733 + 403: any;
  734 + /**
  735 + * @description
  736 + * Not Found
  737 + */
  738 + 404: any;
  739 +}
  740 +
  741 +export type PostApiOrderInvoicedOrderListResponseSuccess =
  742 + PostApiOrderInvoicedOrderListResponse[200];
  743 +/**
  744 + * @description
  745 + * 获取已开票订单
  746 + * @tags 内部订单
  747 + * @produces *
  748 + * @consumes application/json
  749 + */
  750 +export const postApiOrderInvoicedOrderList = /* #__PURE__ */ (() => {
  751 + const method = 'post';
  752 + const url = '/api/order/invoicedOrderList';
  753 + function request(
  754 + option: PostApiOrderInvoicedOrderListOption,
  755 + ): Promise<PostApiOrderInvoicedOrderListResponseSuccess> {
  756 + return requester(request.url, {
  757 + method: request.method,
  758 + ...option,
  759 + }) as unknown as Promise<PostApiOrderInvoicedOrderListResponseSuccess>;
  760 + }
  761 +
  762 + /** http method */
  763 + request.method = method;
  764 + /** request url */
  765 + request.url = url;
  766 + return request;
  767 +})();
  768 +
  769 +/** @description request parameter type for postApiOrderInvoicedRecordList */
  770 +export interface PostApiOrderInvoicedRecordListOption {
  771 + /**
  772 + * @description
  773 + * request
  774 + */
  775 + body: {
  776 + /**
  777 + @description
  778 + request */
  779 + request: InvoiceRecordQueryRequest;
  780 + };
  781 +}
  782 +
  783 +/** @description response type for postApiOrderInvoicedRecordList */
  784 +export interface PostApiOrderInvoicedRecordListResponse {
  785 + /**
  786 + * @description
  787 + * OK
  788 + */
  789 + 200: ServerResult;
  790 + /**
  791 + * @description
  792 + * Created
  793 + */
  794 + 201: any;
  795 + /**
  796 + * @description
  797 + * Unauthorized
  798 + */
  799 + 401: any;
  800 + /**
  801 + * @description
  802 + * Forbidden
  803 + */
  804 + 403: any;
  805 + /**
  806 + * @description
  807 + * Not Found
  808 + */
  809 + 404: any;
  810 +}
  811 +
  812 +export type PostApiOrderInvoicedRecordListResponseSuccess =
  813 + PostApiOrderInvoicedRecordListResponse[200];
  814 +/**
  815 + * @description
  816 + * 获取开票记录
  817 + * @tags 内部订单
  818 + * @produces *
  819 + * @consumes application/json
  820 + */
  821 +export const postApiOrderInvoicedRecordList = /* #__PURE__ */ (() => {
  822 + const method = 'post';
  823 + const url = '/api/order/invoicedRecordList';
  824 + function request(
  825 + option: PostApiOrderInvoicedRecordListOption,
  826 + ): Promise<PostApiOrderInvoicedRecordListResponseSuccess> {
  827 + return requester(request.url, {
  828 + method: request.method,
  829 + ...option,
  830 + }) as unknown as Promise<PostApiOrderInvoicedRecordListResponseSuccess>;
  831 + }
  832 +
  833 + /** http method */
  834 + request.method = method;
  835 + /** request url */
  836 + request.url = url;
  837 + return request;
  838 +})();
  839 +
  840 +/** @description response type for postApiOrderListAllSubOrderBaseInfo */
  841 +export interface PostApiOrderListAllSubOrderBaseInfoResponse {
  842 + /**
  843 + * @description
  844 + * OK
  845 + */
  846 + 200: ServerResult;
  847 + /**
  848 + * @description
  849 + * Created
  850 + */
  851 + 201: any;
  852 + /**
  853 + * @description
  854 + * Unauthorized
  855 + */
  856 + 401: any;
  857 + /**
  858 + * @description
  859 + * Forbidden
  860 + */
  861 + 403: any;
  862 + /**
  863 + * @description
  864 + * Not Found
  865 + */
  866 + 404: any;
  867 +}
  868 +
  869 +export type PostApiOrderListAllSubOrderBaseInfoResponseSuccess =
  870 + PostApiOrderListAllSubOrderBaseInfoResponse[200];
  871 +/**
  872 + * @description
  873 + * 查询所有子订单基本信息
  874 + * @tags 内部订单
  875 + * @produces *
  876 + * @consumes application/json
  877 + */
  878 +export const postApiOrderListAllSubOrderBaseInfo = /* #__PURE__ */ (() => {
  879 + const method = 'post';
  880 + const url = '/api/order/listAllSubOrderBaseInfo';
  881 + function request(): Promise<PostApiOrderListAllSubOrderBaseInfoResponseSuccess> {
  882 + return requester(request.url, {
  883 + method: request.method,
  884 + }) as unknown as Promise<PostApiOrderListAllSubOrderBaseInfoResponseSuccess>;
  885 + }
  886 +
  887 + /** http method */
  888 + request.method = method;
  889 + /** request url */
  890 + request.url = url;
  891 + return request;
  892 +})();
  893 +
  894 +/** @description request parameter type for postApiOrderQueryOrderDetail */
  895 +export interface PostApiOrderQueryOrderDetailOption {
  896 + /**
  897 + * @description
  898 + * request
  899 + */
  900 + body: {
  901 + /**
  902 + @description
  903 + request */
  904 + request: ApiQueryOrderDetailRequest;
  905 + };
  906 +}
  907 +
  908 +/** @description response type for postApiOrderQueryOrderDetail */
  909 +export interface PostApiOrderQueryOrderDetailResponse {
  910 + /**
  911 + * @description
  912 + * OK
  913 + */
  914 + 200: ServerResult;
  915 + /**
  916 + * @description
  917 + * Created
  918 + */
  919 + 201: any;
  920 + /**
  921 + * @description
  922 + * Unauthorized
  923 + */
  924 + 401: any;
  925 + /**
  926 + * @description
  927 + * Forbidden
  928 + */
  929 + 403: any;
  930 + /**
  931 + * @description
  932 + * Not Found
  933 + */
  934 + 404: any;
  935 +}
  936 +
  937 +export type PostApiOrderQueryOrderDetailResponseSuccess =
  938 + PostApiOrderQueryOrderDetailResponse[200];
  939 +/**
  940 + * @description
  941 + * 订单详情
  942 + * @tags 内部订单
  943 + * @produces *
  944 + * @consumes application/json
  945 + */
  946 +export const postApiOrderQueryOrderDetail = /* #__PURE__ */ (() => {
  947 + const method = 'post';
  948 + const url = '/api/order/queryOrderDetail';
  949 + function request(
  950 + option: PostApiOrderQueryOrderDetailOption,
  951 + ): Promise<PostApiOrderQueryOrderDetailResponseSuccess> {
  952 + return requester(request.url, {
  953 + method: request.method,
  954 + ...option,
  955 + }) as unknown as Promise<PostApiOrderQueryOrderDetailResponseSuccess>;
  956 + }
  957 +
  958 + /** http method */
  959 + request.method = method;
  960 + /** request url */
  961 + request.url = url;
  962 + return request;
  963 +})();
  964 +
  965 +/** @description request parameter type for postApiOrderQueryOrderStatusCounts */
  966 +export interface PostApiOrderQueryOrderStatusCountsOption {
  967 + /**
  968 + * @description
  969 + * request
  970 + */
  971 + body: {
  972 + /**
  973 + @description
  974 + request */
  975 + request: ApiQueryOrderStatusCountsRequest;
  976 + };
  977 +}
  978 +
  979 +/** @description response type for postApiOrderQueryOrderStatusCounts */
  980 +export interface PostApiOrderQueryOrderStatusCountsResponse {
  981 + /**
  982 + * @description
  983 + * OK
  984 + */
  985 + 200: ServerResult;
  986 + /**
  987 + * @description
  988 + * Created
  989 + */
  990 + 201: any;
  991 + /**
  992 + * @description
  993 + * Unauthorized
  994 + */
  995 + 401: any;
  996 + /**
  997 + * @description
  998 + * Forbidden
  999 + */
  1000 + 403: any;
  1001 + /**
  1002 + * @description
  1003 + * Not Found
  1004 + */
  1005 + 404: any;
  1006 +}
  1007 +
  1008 +export type PostApiOrderQueryOrderStatusCountsResponseSuccess =
  1009 + PostApiOrderQueryOrderStatusCountsResponse[200];
  1010 +/**
  1011 + * @description
  1012 + * 获取各个订单状态数量
  1013 + * @tags 内部订单
  1014 + * @produces *
  1015 + * @consumes application/json
  1016 + */
  1017 +export const postApiOrderQueryOrderStatusCounts = /* #__PURE__ */ (() => {
  1018 + const method = 'post';
  1019 + const url = '/api/order/queryOrderStatusCounts';
  1020 + function request(
  1021 + option: PostApiOrderQueryOrderStatusCountsOption,
  1022 + ): Promise<PostApiOrderQueryOrderStatusCountsResponseSuccess> {
  1023 + return requester(request.url, {
  1024 + method: request.method,
  1025 + ...option,
  1026 + }) as unknown as Promise<PostApiOrderQueryOrderStatusCountsResponseSuccess>;
  1027 + }
  1028 +
  1029 + /** http method */
  1030 + request.method = method;
  1031 + /** request url */
  1032 + request.url = url;
  1033 + return request;
  1034 +})();
  1035 +
  1036 +/** @description request parameter type for postApiOrderQueryServiceOrder */
  1037 +export interface PostApiOrderQueryServiceOrderOption {
  1038 + /**
  1039 + * @description
  1040 + * request
  1041 + */
  1042 + body: {
  1043 + /**
  1044 + @description
  1045 + request */
  1046 + request: Dto;
418 }; 1047 };
419 } 1048 }
420 1049
421 -/** @description response type for postApiOrderCreateOrder */  
422 -export interface PostApiOrderCreateOrderResponse { 1050 +/** @description response type for postApiOrderQueryServiceOrder */
  1051 +export interface PostApiOrderQueryServiceOrderResponse {
423 /** 1052 /**
424 * @description 1053 * @description
425 * OK 1054 * OK
@@ -447,25 +1076,25 @@ export interface PostApiOrderCreateOrderResponse { @@ -447,25 +1076,25 @@ export interface PostApiOrderCreateOrderResponse {
447 404: any; 1076 404: any;
448 } 1077 }
449 1078
450 -export type PostApiOrderCreateOrderResponseSuccess =  
451 - PostApiOrderCreateOrderResponse[200]; 1079 +export type PostApiOrderQueryServiceOrderResponseSuccess =
  1080 + PostApiOrderQueryServiceOrderResponse[200];
452 /** 1081 /**
453 * @description 1082 * @description
454 - * 创建订单 1083 + * 查询订单列表
455 * @tags 内部订单 1084 * @tags 内部订单
456 * @produces * 1085 * @produces *
457 * @consumes application/json 1086 * @consumes application/json
458 */ 1087 */
459 -export const postApiOrderCreateOrder = /* #__PURE__ */ (() => { 1088 +export const postApiOrderQueryServiceOrder = /* #__PURE__ */ (() => {
460 const method = 'post'; 1089 const method = 'post';
461 - const url = '/api/order/createOrder'; 1090 + const url = '/api/order/queryServiceOrder';
462 function request( 1091 function request(
463 - option: PostApiOrderCreateOrderOption,  
464 - ): Promise<PostApiOrderCreateOrderResponseSuccess> { 1092 + option: PostApiOrderQueryServiceOrderOption,
  1093 + ): Promise<PostApiOrderQueryServiceOrderResponseSuccess> {
465 return requester(request.url, { 1094 return requester(request.url, {
466 method: request.method, 1095 method: request.method,
467 ...option, 1096 ...option,
468 - }) as unknown as Promise<PostApiOrderCreateOrderResponseSuccess>; 1097 + }) as unknown as Promise<PostApiOrderQueryServiceOrderResponseSuccess>;
469 } 1098 }
470 1099
471 /** http method */ 1100 /** http method */
@@ -475,8 +1104,8 @@ export const postApiOrderCreateOrder = /* #__PURE__ */ (() =&gt; { @@ -475,8 +1104,8 @@ export const postApiOrderCreateOrder = /* #__PURE__ */ (() =&gt; {
475 return request; 1104 return request;
476 })(); 1105 })();
477 1106
478 -/** @description request parameter type for postApiOrderQueryOrderDetail */  
479 -export interface PostApiOrderQueryOrderDetailOption { 1107 +/** @description request parameter type for postApiOrderStoreApplyInvoice */
  1108 +export interface PostApiOrderStoreApplyInvoiceOption {
480 /** 1109 /**
481 * @description 1110 * @description
482 * request 1111 * request
@@ -485,12 +1114,12 @@ export interface PostApiOrderQueryOrderDetailOption { @@ -485,12 +1114,12 @@ export interface PostApiOrderQueryOrderDetailOption {
485 /** 1114 /**
486 @description 1115 @description
487 request */ 1116 request */
488 - request: ApiQueryOrderDetailRequest; 1117 + request: StoreOrderInvoiceRequest;
489 }; 1118 };
490 } 1119 }
491 1120
492 -/** @description response type for postApiOrderQueryOrderDetail */  
493 -export interface PostApiOrderQueryOrderDetailResponse { 1121 +/** @description response type for postApiOrderStoreApplyInvoice */
  1122 +export interface PostApiOrderStoreApplyInvoiceResponse {
494 /** 1123 /**
495 * @description 1124 * @description
496 * OK 1125 * OK
@@ -518,25 +1147,25 @@ export interface PostApiOrderQueryOrderDetailResponse { @@ -518,25 +1147,25 @@ export interface PostApiOrderQueryOrderDetailResponse {
518 404: any; 1147 404: any;
519 } 1148 }
520 1149
521 -export type PostApiOrderQueryOrderDetailResponseSuccess =  
522 - PostApiOrderQueryOrderDetailResponse[200]; 1150 +export type PostApiOrderStoreApplyInvoiceResponseSuccess =
  1151 + PostApiOrderStoreApplyInvoiceResponse[200];
523 /** 1152 /**
524 * @description 1153 * @description
525 - * 订单详情 1154 + * 商城申请开票
526 * @tags 内部订单 1155 * @tags 内部订单
527 * @produces * 1156 * @produces *
528 * @consumes application/json 1157 * @consumes application/json
529 */ 1158 */
530 -export const postApiOrderQueryOrderDetail = /* #__PURE__ */ (() => { 1159 +export const postApiOrderStoreApplyInvoice = /* #__PURE__ */ (() => {
531 const method = 'post'; 1160 const method = 'post';
532 - const url = '/api/order/queryOrderDetail'; 1161 + const url = '/api/order/storeApplyInvoice';
533 function request( 1162 function request(
534 - option: PostApiOrderQueryOrderDetailOption,  
535 - ): Promise<PostApiOrderQueryOrderDetailResponseSuccess> { 1163 + option: PostApiOrderStoreApplyInvoiceOption,
  1164 + ): Promise<PostApiOrderStoreApplyInvoiceResponseSuccess> {
536 return requester(request.url, { 1165 return requester(request.url, {
537 method: request.method, 1166 method: request.method,
538 ...option, 1167 ...option,
539 - }) as unknown as Promise<PostApiOrderQueryOrderDetailResponseSuccess>; 1168 + }) as unknown as Promise<PostApiOrderStoreApplyInvoiceResponseSuccess>;
540 } 1169 }
541 1170
542 /** http method */ 1171 /** http method */
@@ -546,8 +1175,8 @@ export const postApiOrderQueryOrderDetail = /* #__PURE__ */ (() =&gt; { @@ -546,8 +1175,8 @@ export const postApiOrderQueryOrderDetail = /* #__PURE__ */ (() =&gt; {
546 return request; 1175 return request;
547 })(); 1176 })();
548 1177
549 -/** @description request parameter type for postApiOrderQueryOrderStatusCounts */  
550 -export interface PostApiOrderQueryOrderStatusCountsOption { 1178 +/** @description request parameter type for postApiOrderWaitInvoiceOrderList */
  1179 +export interface PostApiOrderWaitInvoiceOrderListOption {
551 /** 1180 /**
552 * @description 1181 * @description
553 * request 1182 * request
@@ -556,12 +1185,12 @@ export interface PostApiOrderQueryOrderStatusCountsOption { @@ -556,12 +1185,12 @@ export interface PostApiOrderQueryOrderStatusCountsOption {
556 /** 1185 /**
557 @description 1186 @description
558 request */ 1187 request */
559 - request: ApiQueryOrderStatusCountsRequest; 1188 + request: MainOrderqueryRequest;
560 }; 1189 };
561 } 1190 }
562 1191
563 -/** @description response type for postApiOrderQueryOrderStatusCounts */  
564 -export interface PostApiOrderQueryOrderStatusCountsResponse { 1192 +/** @description response type for postApiOrderWaitInvoiceOrderList */
  1193 +export interface PostApiOrderWaitInvoiceOrderListResponse {
565 /** 1194 /**
566 * @description 1195 * @description
567 * OK 1196 * OK
@@ -589,25 +1218,25 @@ export interface PostApiOrderQueryOrderStatusCountsResponse { @@ -589,25 +1218,25 @@ export interface PostApiOrderQueryOrderStatusCountsResponse {
589 404: any; 1218 404: any;
590 } 1219 }
591 1220
592 -export type PostApiOrderQueryOrderStatusCountsResponseSuccess =  
593 - PostApiOrderQueryOrderStatusCountsResponse[200]; 1221 +export type PostApiOrderWaitInvoiceOrderListResponseSuccess =
  1222 + PostApiOrderWaitInvoiceOrderListResponse[200];
594 /** 1223 /**
595 * @description 1224 * @description
596 - * 获取各个订单状态数量 1225 + * 获取可开票订单
597 * @tags 内部订单 1226 * @tags 内部订单
598 * @produces * 1227 * @produces *
599 * @consumes application/json 1228 * @consumes application/json
600 */ 1229 */
601 -export const postApiOrderQueryOrderStatusCounts = /* #__PURE__ */ (() => { 1230 +export const postApiOrderWaitInvoiceOrderList = /* #__PURE__ */ (() => {
602 const method = 'post'; 1231 const method = 'post';
603 - const url = '/api/order/queryOrderStatusCounts'; 1232 + const url = '/api/order/waitInvoiceOrderList';
604 function request( 1233 function request(
605 - option: PostApiOrderQueryOrderStatusCountsOption,  
606 - ): Promise<PostApiOrderQueryOrderStatusCountsResponseSuccess> { 1234 + option: PostApiOrderWaitInvoiceOrderListOption,
  1235 + ): Promise<PostApiOrderWaitInvoiceOrderListResponseSuccess> {
607 return requester(request.url, { 1236 return requester(request.url, {
608 method: request.method, 1237 method: request.method,
609 ...option, 1238 ...option,
610 - }) as unknown as Promise<PostApiOrderQueryOrderStatusCountsResponseSuccess>; 1239 + }) as unknown as Promise<PostApiOrderWaitInvoiceOrderListResponseSuccess>;
611 } 1240 }
612 1241
613 /** http method */ 1242 /** http method */
@@ -617,8 +1246,8 @@ export const postApiOrderQueryOrderStatusCounts = /* #__PURE__ */ (() =&gt; { @@ -617,8 +1246,8 @@ export const postApiOrderQueryOrderStatusCounts = /* #__PURE__ */ (() =&gt; {
617 return request; 1246 return request;
618 })(); 1247 })();
619 1248
620 -/** @description request parameter type for postApiOrderQueryServiceOrder */  
621 -export interface PostApiOrderQueryServiceOrderOption { 1249 +/** @description request parameter type for postCanrdApiUserAddressList */
  1250 +export interface PostCanrdApiUserAddressListOption {
622 /** 1251 /**
623 * @description 1252 * @description
624 * request 1253 * request
@@ -627,12 +1256,12 @@ export interface PostApiOrderQueryServiceOrderOption { @@ -627,12 +1256,12 @@ export interface PostApiOrderQueryServiceOrderOption {
627 /** 1256 /**
628 @description 1257 @description
629 request */ 1258 request */
630 - request: Dto; 1259 + request: UserAddressListRequest;
631 }; 1260 };
632 } 1261 }
633 1262
634 -/** @description response type for postApiOrderQueryServiceOrder */  
635 -export interface PostApiOrderQueryServiceOrderResponse { 1263 +/** @description response type for postCanrdApiUserAddressList */
  1264 +export interface PostCanrdApiUserAddressListResponse {
636 /** 1265 /**
637 * @description 1266 * @description
638 * OK 1267 * OK
@@ -660,25 +1289,96 @@ export interface PostApiOrderQueryServiceOrderResponse { @@ -660,25 +1289,96 @@ export interface PostApiOrderQueryServiceOrderResponse {
660 404: any; 1289 404: any;
661 } 1290 }
662 1291
663 -export type PostApiOrderQueryServiceOrderResponseSuccess =  
664 - PostApiOrderQueryServiceOrderResponse[200]; 1292 +export type PostCanrdApiUserAddressListResponseSuccess =
  1293 + PostCanrdApiUserAddressListResponse[200];
665 /** 1294 /**
666 * @description 1295 * @description
667 - * 查询订单列表  
668 - * @tags 内部订单 1296 + * 查询地址信息
  1297 + * @tags canrd-mobile-api-controller
669 * @produces * 1298 * @produces *
670 * @consumes application/json 1299 * @consumes application/json
671 */ 1300 */
672 -export const postApiOrderQueryServiceOrder = /* #__PURE__ */ (() => { 1301 +export const postCanrdApiUserAddressList = /* #__PURE__ */ (() => {
673 const method = 'post'; 1302 const method = 'post';
674 - const url = '/api/order/queryServiceOrder'; 1303 + const url = '/canrd/api/user/address/list';
675 function request( 1304 function request(
676 - option: PostApiOrderQueryServiceOrderOption,  
677 - ): Promise<PostApiOrderQueryServiceOrderResponseSuccess> { 1305 + option: PostCanrdApiUserAddressListOption,
  1306 + ): Promise<PostCanrdApiUserAddressListResponseSuccess> {
678 return requester(request.url, { 1307 return requester(request.url, {
679 method: request.method, 1308 method: request.method,
680 ...option, 1309 ...option,
681 - }) as unknown as Promise<PostApiOrderQueryServiceOrderResponseSuccess>; 1310 + }) as unknown as Promise<PostCanrdApiUserAddressListResponseSuccess>;
  1311 + }
  1312 +
  1313 + /** http method */
  1314 + request.method = method;
  1315 + /** request url */
  1316 + request.url = url;
  1317 + return request;
  1318 +})();
  1319 +
  1320 +/** @description request parameter type for postCanrdApiUserCenterInfo */
  1321 +export interface PostCanrdApiUserCenterInfoOption {
  1322 + /**
  1323 + * @description
  1324 + * request
  1325 + */
  1326 + body: {
  1327 + /**
  1328 + @description
  1329 + request */
  1330 + request: UserCenterInfoRequest;
  1331 + };
  1332 +}
  1333 +
  1334 +/** @description response type for postCanrdApiUserCenterInfo */
  1335 +export interface PostCanrdApiUserCenterInfoResponse {
  1336 + /**
  1337 + * @description
  1338 + * OK
  1339 + */
  1340 + 200: ServerResult;
  1341 + /**
  1342 + * @description
  1343 + * Created
  1344 + */
  1345 + 201: any;
  1346 + /**
  1347 + * @description
  1348 + * Unauthorized
  1349 + */
  1350 + 401: any;
  1351 + /**
  1352 + * @description
  1353 + * Forbidden
  1354 + */
  1355 + 403: any;
  1356 + /**
  1357 + * @description
  1358 + * Not Found
  1359 + */
  1360 + 404: any;
  1361 +}
  1362 +
  1363 +export type PostCanrdApiUserCenterInfoResponseSuccess =
  1364 + PostCanrdApiUserCenterInfoResponse[200];
  1365 +/**
  1366 + * @description
  1367 + * 获取会员详情
  1368 + * @tags canrd-mobile-api-controller
  1369 + * @produces *
  1370 + * @consumes application/json
  1371 + */
  1372 +export const postCanrdApiUserCenterInfo = /* #__PURE__ */ (() => {
  1373 + const method = 'post';
  1374 + const url = '/canrd/api/user/center/info';
  1375 + function request(
  1376 + option: PostCanrdApiUserCenterInfoOption,
  1377 + ): Promise<PostCanrdApiUserCenterInfoResponseSuccess> {
  1378 + return requester(request.url, {
  1379 + method: request.method,
  1380 + ...option,
  1381 + }) as unknown as Promise<PostCanrdApiUserCenterInfoResponseSuccess>;
682 } 1382 }
683 1383
684 /** http method */ 1384 /** http method */
@@ -836,7 +1536,9 @@ export interface GetErrorResponse { @@ -836,7 +1536,9 @@ export interface GetErrorResponse {
836 * @description 1536 * @description
837 * OK 1537 * OK
838 */ 1538 */
839 - 200: ModelAndView; 1539 + 200: {
  1540 + [propertyName: string]: any;
  1541 + };
840 /** 1542 /**
841 * @description 1543 * @description
842 * Unauthorized 1544 * Unauthorized
@@ -857,9 +1559,9 @@ export interface GetErrorResponse { @@ -857,9 +1559,9 @@ export interface GetErrorResponse {
857 export type GetErrorResponseSuccess = GetErrorResponse[200]; 1559 export type GetErrorResponseSuccess = GetErrorResponse[200];
858 /** 1560 /**
859 * @description 1561 * @description
860 - * errorHtml 1562 + * error
861 * @tags basic-error-controller 1563 * @tags basic-error-controller
862 - * @produces text/html 1564 + * @produces *
863 */ 1565 */
864 export const getError = /* #__PURE__ */ (() => { 1566 export const getError = /* #__PURE__ */ (() => {
865 const method = 'get'; 1567 const method = 'get';
@@ -883,7 +1585,9 @@ export interface PutErrorResponse { @@ -883,7 +1585,9 @@ export interface PutErrorResponse {
883 * @description 1585 * @description
884 * OK 1586 * OK
885 */ 1587 */
886 - 200: ModelAndView; 1588 + 200: {
  1589 + [propertyName: string]: any;
  1590 + };
887 /** 1591 /**
888 * @description 1592 * @description
889 * Created 1593 * Created
@@ -909,9 +1613,9 @@ export interface PutErrorResponse { @@ -909,9 +1613,9 @@ export interface PutErrorResponse {
909 export type PutErrorResponseSuccess = PutErrorResponse[200]; 1613 export type PutErrorResponseSuccess = PutErrorResponse[200];
910 /** 1614 /**
911 * @description 1615 * @description
912 - * errorHtml 1616 + * error
913 * @tags basic-error-controller 1617 * @tags basic-error-controller
914 - * @produces text/html 1618 + * @produces *
915 * @consumes application/json 1619 * @consumes application/json
916 */ 1620 */
917 export const putError = /* #__PURE__ */ (() => { 1621 export const putError = /* #__PURE__ */ (() => {
@@ -936,7 +1640,9 @@ export interface PostErrorResponse { @@ -936,7 +1640,9 @@ export interface PostErrorResponse {
936 * @description 1640 * @description
937 * OK 1641 * OK
938 */ 1642 */
939 - 200: ModelAndView; 1643 + 200: {
  1644 + [propertyName: string]: any;
  1645 + };
940 /** 1646 /**
941 * @description 1647 * @description
942 * Created 1648 * Created
@@ -962,9 +1668,9 @@ export interface PostErrorResponse { @@ -962,9 +1668,9 @@ export interface PostErrorResponse {
962 export type PostErrorResponseSuccess = PostErrorResponse[200]; 1668 export type PostErrorResponseSuccess = PostErrorResponse[200];
963 /** 1669 /**
964 * @description 1670 * @description
965 - * errorHtml 1671 + * error
966 * @tags basic-error-controller 1672 * @tags basic-error-controller
967 - * @produces text/html 1673 + * @produces *
968 * @consumes application/json 1674 * @consumes application/json
969 */ 1675 */
970 export const postError = /* #__PURE__ */ (() => { 1676 export const postError = /* #__PURE__ */ (() => {
@@ -989,7 +1695,9 @@ export interface DeleteErrorResponse { @@ -989,7 +1695,9 @@ export interface DeleteErrorResponse {
989 * @description 1695 * @description
990 * OK 1696 * OK
991 */ 1697 */
992 - 200: ModelAndView; 1698 + 200: {
  1699 + [propertyName: string]: any;
  1700 + };
993 /** 1701 /**
994 * @description 1702 * @description
995 * No Content 1703 * No Content
@@ -1010,9 +1718,9 @@ export interface DeleteErrorResponse { @@ -1010,9 +1718,9 @@ export interface DeleteErrorResponse {
1010 export type DeleteErrorResponseSuccess = DeleteErrorResponse[200]; 1718 export type DeleteErrorResponseSuccess = DeleteErrorResponse[200];
1011 /** 1719 /**
1012 * @description 1720 * @description
1013 - * errorHtml 1721 + * error
1014 * @tags basic-error-controller 1722 * @tags basic-error-controller
1015 - * @produces text/html 1723 + * @produces *
1016 */ 1724 */
1017 export const deleteError = /* #__PURE__ */ (() => { 1725 export const deleteError = /* #__PURE__ */ (() => {
1018 const method = 'delete'; 1726 const method = 'delete';
@@ -1036,7 +1744,9 @@ export interface OptionsErrorResponse { @@ -1036,7 +1744,9 @@ export interface OptionsErrorResponse {
1036 * @description 1744 * @description
1037 * OK 1745 * OK
1038 */ 1746 */
1039 - 200: ModelAndView; 1747 + 200: {
  1748 + [propertyName: string]: any;
  1749 + };
1040 /** 1750 /**
1041 * @description 1751 * @description
1042 * No Content 1752 * No Content
@@ -1057,9 +1767,9 @@ export interface OptionsErrorResponse { @@ -1057,9 +1767,9 @@ export interface OptionsErrorResponse {
1057 export type OptionsErrorResponseSuccess = OptionsErrorResponse[200]; 1767 export type OptionsErrorResponseSuccess = OptionsErrorResponse[200];
1058 /** 1768 /**
1059 * @description 1769 * @description
1060 - * errorHtml 1770 + * error
1061 * @tags basic-error-controller 1771 * @tags basic-error-controller
1062 - * @produces text/html 1772 + * @produces *
1063 * @consumes application/json 1773 * @consumes application/json
1064 */ 1774 */
1065 export const optionsError = /* #__PURE__ */ (() => { 1775 export const optionsError = /* #__PURE__ */ (() => {
@@ -1084,7 +1794,9 @@ export interface HeadErrorResponse { @@ -1084,7 +1794,9 @@ export interface HeadErrorResponse {
1084 * @description 1794 * @description
1085 * OK 1795 * OK
1086 */ 1796 */
1087 - 200: ModelAndView; 1797 + 200: {
  1798 + [propertyName: string]: any;
  1799 + };
1088 /** 1800 /**
1089 * @description 1801 * @description
1090 * No Content 1802 * No Content
@@ -1105,9 +1817,9 @@ export interface HeadErrorResponse { @@ -1105,9 +1817,9 @@ export interface HeadErrorResponse {
1105 export type HeadErrorResponseSuccess = HeadErrorResponse[200]; 1817 export type HeadErrorResponseSuccess = HeadErrorResponse[200];
1106 /** 1818 /**
1107 * @description 1819 * @description
1108 - * errorHtml 1820 + * error
1109 * @tags basic-error-controller 1821 * @tags basic-error-controller
1110 - * @produces text/html 1822 + * @produces *
1111 * @consumes application/json 1823 * @consumes application/json
1112 */ 1824 */
1113 export const headError = /* #__PURE__ */ (() => { 1825 export const headError = /* #__PURE__ */ (() => {
@@ -1132,7 +1844,9 @@ export interface PatchErrorResponse { @@ -1132,7 +1844,9 @@ export interface PatchErrorResponse {
1132 * @description 1844 * @description
1133 * OK 1845 * OK
1134 */ 1846 */
1135 - 200: ModelAndView; 1847 + 200: {
  1848 + [propertyName: string]: any;
  1849 + };
1136 /** 1850 /**
1137 * @description 1851 * @description
1138 * No Content 1852 * No Content
@@ -1153,9 +1867,9 @@ export interface PatchErrorResponse { @@ -1153,9 +1867,9 @@ export interface PatchErrorResponse {
1153 export type PatchErrorResponseSuccess = PatchErrorResponse[200]; 1867 export type PatchErrorResponseSuccess = PatchErrorResponse[200];
1154 /** 1868 /**
1155 * @description 1869 * @description
1156 - * errorHtml 1870 + * error
1157 * @tags basic-error-controller 1871 * @tags basic-error-controller
1158 - * @produces text/html 1872 + * @produces *
1159 * @consumes application/json 1873 * @consumes application/json
1160 */ 1874 */
1161 export const patchError = /* #__PURE__ */ (() => { 1875 export const patchError = /* #__PURE__ */ (() => {
@@ -6415,6 +7129,77 @@ export const postOrderErpUsersUpdatePass = /* #__PURE__ */ (() =&gt; { @@ -6415,6 +7129,77 @@ export const postOrderErpUsersUpdatePass = /* #__PURE__ */ (() =&gt; {
6415 return request; 7129 return request;
6416 })(); 7130 })();
6417 7131
  7132 +/** @description request parameter type for postOrderImportImportWeightAndVolume */
  7133 +export interface PostOrderImportImportWeightAndVolumeOption {
  7134 + /**
  7135 + * @description
  7136 + * file
  7137 + */
  7138 + formData: {
  7139 + /**
  7140 + @description
  7141 + file */
  7142 + file: File;
  7143 + };
  7144 +}
  7145 +
  7146 +/** @description response type for postOrderImportImportWeightAndVolume */
  7147 +export interface PostOrderImportImportWeightAndVolumeResponse {
  7148 + /**
  7149 + * @description
  7150 + * OK
  7151 + */
  7152 + 200: ServerResult;
  7153 + /**
  7154 + * @description
  7155 + * Created
  7156 + */
  7157 + 201: any;
  7158 + /**
  7159 + * @description
  7160 + * Unauthorized
  7161 + */
  7162 + 401: any;
  7163 + /**
  7164 + * @description
  7165 + * Forbidden
  7166 + */
  7167 + 403: any;
  7168 + /**
  7169 + * @description
  7170 + * Not Found
  7171 + */
  7172 + 404: any;
  7173 +}
  7174 +
  7175 +export type PostOrderImportImportWeightAndVolumeResponseSuccess =
  7176 + PostOrderImportImportWeightAndVolumeResponse[200];
  7177 +/**
  7178 + * @description
  7179 + * 导入重量和体积
  7180 + * @tags 导入
  7181 + * @produces *
  7182 + * @consumes multipart/form-data
  7183 + */
  7184 +export const postOrderImportImportWeightAndVolume = /* #__PURE__ */ (() => {
  7185 + const method = 'post';
  7186 + const url = '/order/import/importWeightAndVolume';
  7187 + function request(
  7188 + option: PostOrderImportImportWeightAndVolumeOption,
  7189 + ): Promise<PostOrderImportImportWeightAndVolumeResponseSuccess> {
  7190 + return requester(request.url, {
  7191 + method: request.method,
  7192 + ...option,
  7193 + }) as unknown as Promise<PostOrderImportImportWeightAndVolumeResponseSuccess>;
  7194 + }
  7195 +
  7196 + /** http method */
  7197 + request.method = method;
  7198 + /** request url */
  7199 + request.url = url;
  7200 + return request;
  7201 +})();
  7202 +
6418 /** @description request parameter type for postPrepaidAudit */ 7203 /** @description request parameter type for postPrepaidAudit */
6419 export interface PostPrepaidAuditOption { 7204 export interface PostPrepaidAuditOption {
6420 /** 7205 /**
src/utils/StringUtil.ts 0 → 100644
  1 +export function getDefaultString(val: any) {
  2 + if (val === null || val === undefined) {
  3 + return '无';
  4 + }
  5 +
  6 + return val;
  7 +}
  8 +
  9 +export function isEmpty(val: any) {
  10 + return val === null || val === undefined || val.trim() === '';
  11 +}