Commit fae9c63900d4ea04d44f21c912d6cf2308f69c90

Authored by 曾国涛
1 parent 3201699b

Merge branch 'master' into zgt移除ManualInvoicingModal中的非必要注释代码

发现并删除了ManualInvoicingModal组件中未使用的注释代码,以提高代码清晰度和维护性。
.umirc.ts
@@ -72,19 +72,26 @@ export default defineConfig({ @@ -72,19 +72,26 @@ export default defineConfig({
72 component: './Invoice/InvoiceRecord', 72 component: './Invoice/InvoiceRecord',
73 }, 73 },
74 { 74 {
75 - name: '发票管理', 75 + name: '发票核销',
76 path: 'invoice', 76 path: 'invoice',
77 icon: 'BookOutlined', 77 icon: 'BookOutlined',
78 access: 'canReadAdminAndFinance', 78 access: 'canReadAdminAndFinance',
79 component: './Invoice/Invoice', 79 component: './Invoice/Invoice',
80 }, 80 },
81 { 81 {
82 - name: '发票核销', 82 + name: '银行流水',
83 path: 'invoiceVerification', 83 path: 'invoiceVerification',
84 icon: 'BookOutlined', 84 icon: 'BookOutlined',
85 access: 'canReadAdminAndFinance', 85 access: 'canReadAdminAndFinance',
86 component: './Invoice/InvoiceVerification', 86 component: './Invoice/InvoiceVerification',
87 }, 87 },
  88 + {
  89 + name: '手动开票白名单',
  90 + path: 'OldInvoicingWhiteList',
  91 + icon: 'BookOutlined',
  92 + access: 'canReadAdminAndFinance',
  93 + component: './Invoice/whiteList',
  94 + },
88 ], 95 ],
89 }, 96 },
90 { 97 {
@@ -133,7 +140,7 @@ export default defineConfig({ @@ -133,7 +140,7 @@ export default defineConfig({
133 path: '/procure', 140 path: '/procure',
134 component: './procure', 141 component: './procure',
135 icon: 'BookOutlined', 142 icon: 'BookOutlined',
136 - access: 'canReadAdmin', 143 + access: 'canReadAdminAndWarehouseKeeperAndProcure',
137 }, 144 },
138 /*{ 145 /*{
139 name: '用户管理', 146 name: '用户管理',
src/access.ts
@@ -5,6 +5,7 @@ export default (initialState: API.UserInfo) => { @@ -5,6 +5,7 @@ export default (initialState: API.UserInfo) => {
5 const canReadAdmin = roleSmallVO?.code === 'admin'; 5 const canReadAdmin = roleSmallVO?.code === 'admin';
6 const canReadProcure = roleSmallVO?.code === 'procure'; 6 const canReadProcure = roleSmallVO?.code === 'procure';
7 const canReadFinance = roleSmallVO?.code === 'finance'; 7 const canReadFinance = roleSmallVO?.code === 'finance';
  8 + const canReadWarehouseKeeper = roleSmallVO?.code === 'warehouseKeeper';
8 const canReadSales = 9 const canReadSales =
9 roleSmallVO?.code === 'salesManager' || 10 roleSmallVO?.code === 'salesManager' ||
10 roleSmallVO?.code === 'salesRepresentative'; 11 roleSmallVO?.code === 'salesRepresentative';
@@ -17,5 +18,7 @@ export default (initialState: API.UserInfo) => { @@ -17,5 +18,7 @@ export default (initialState: API.UserInfo) => {
17 canReadAdminAndFinanceAndSales: 18 canReadAdminAndFinanceAndSales:
18 canReadFinance || canReadAdmin || canReadSales, 19 canReadFinance || canReadAdmin || canReadSales,
19 canReadAdminAndSales: canReadAdmin || canReadSales, 20 canReadAdminAndSales: canReadAdmin || canReadSales,
  21 + canReadAdminAndWarehouseKeeperAndProcure:
  22 + canReadWarehouseKeeper || canReadAdmin || canReadProcure,
20 }; 23 };
21 }; 24 };
src/pages/Invoice/Invoice/index.tsx
@@ -112,8 +112,9 @@ const InvoiceRecord = () => { @@ -112,8 +112,9 @@ const InvoiceRecord = () => {
112 <a 112 <a
113 key="editable" 113 key="editable"
114 onClick={() => { 114 onClick={() => {
  115 + console.log(JSON.stringify(record));
115 setInvoiceVerificationVisible(true); 116 setInvoiceVerificationVisible(true);
116 - setInvoiceId(record.invoiceId); 117 + setInvoiceId(record.id);
117 }} 118 }}
118 > 119 >
119 核销 120 核销
src/pages/Invoice/InvoiceRecord/index.tsx
@@ -12,7 +12,8 @@ import { @@ -12,7 +12,8 @@ import {
12 import { excelExport } from '@/services/exportRequest'; 12 import { excelExport } from '@/services/exportRequest';
13 import { enumToProTableEnumValue, enumToSelect } from '@/utils'; 13 import { enumToProTableEnumValue, enumToSelect } from '@/utils';
14 import { ActionType, ModalForm, ProTable } from '@ant-design/pro-components'; 14 import { ActionType, ModalForm, ProTable } from '@ant-design/pro-components';
15 -import { Button, Divider, Space, Tooltip, message } from 'antd'; 15 +import { Button, Divider, Space, Table, Tooltip, message } from 'antd';
  16 +import axios from 'axios';
16 import { useEffect, useRef, useState } from 'react'; 17 import { useEffect, useRef, useState } from 'react';
17 18
18 const InvoiceRecord = () => { 19 const InvoiceRecord = () => {
@@ -49,6 +50,40 @@ const InvoiceRecord = () =&gt; { @@ -49,6 +50,40 @@ const InvoiceRecord = () =&gt; {
49 extracted().catch(console.error); 50 extracted().catch(console.error);
50 }, []); 51 }, []);
51 52
  53 + const downloadImportTemplate = async (urls) => {
  54 + messageApi.open({
  55 + type: 'loading',
  56 + content: '下载中',
  57 + duration: 0,
  58 + });
  59 + axios({
  60 + url: '/api/file/directDown',
  61 + method: 'post',
  62 + responseType: 'blob',
  63 + headers: { Authorization: localStorage.getItem('token') },
  64 + data: urls,
  65 + })
  66 + .then((response) => {
  67 + // 创建一个新的 Blob 对象,它包含了服务器响应的数据(即你的 Excel 文件)
  68 + const blob = new Blob([response.data]); // Excel 的 MIME 类型
  69 + const downloadUrl = window.URL.createObjectURL(blob);
  70 + const a = document.createElement('a');
  71 + a.href = downloadUrl;
  72 + a.download = '发票.zip'; // 你可以为文件命名
  73 + document.body.appendChild(a);
  74 + a.click(); // 模拟点击操作来下载文件
  75 + URL.revokeObjectURL(downloadUrl); // 释放掉 blob 对象所占用的内存
  76 + document.body.removeChild(a);
  77 + })
  78 + .catch((error) => {
  79 + // 处理错误
  80 + console.error('下载错误', error);
  81 + })
  82 + .finally(() => {
  83 + messageApi.destroy();
  84 + });
  85 + };
  86 +
52 const processedRecordColumns = [ 87 const processedRecordColumns = [
53 { 88 {
54 dataIndex: 'index', 89 dataIndex: 'index',
@@ -204,6 +239,7 @@ const InvoiceRecord = () =&gt; { @@ -204,6 +239,7 @@ const InvoiceRecord = () =&gt; {
204 }, 239 },
205 { 240 {
206 title: '开票状态', 241 title: '开票状态',
  242 + key: 'invoiceRecordStatus',
207 valueType: 'select', 243 valueType: 'select',
208 dataIndex: 'status', 244 dataIndex: 'status',
209 filters: true, 245 filters: true,
@@ -215,9 +251,9 @@ const InvoiceRecord = () =&gt; { @@ -215,9 +251,9 @@ const InvoiceRecord = () =&gt; {
215 }, 251 },
216 }, 252 },
217 { 253 {
218 - title: '销售代表', 254 + title: '申请人',
219 valueType: 'select', 255 valueType: 'select',
220 - dataIndex: 'salesCode', 256 + dataIndex: 'createByName',
221 filters: true, 257 filters: true,
222 onFilter: true, 258 onFilter: true,
223 hideInTable: true, 259 hideInTable: true,
@@ -400,6 +436,32 @@ const InvoiceRecord = () =&gt; { @@ -400,6 +436,32 @@ const InvoiceRecord = () =&gt; {
400 listsHeight: 400, 436 listsHeight: 400,
401 }, 437 },
402 }} 438 }}
  439 + rowSelection={{
  440 + // 自定义选择项参考: https://ant.design/components/table-cn/#components-table-demo-row-selection-custom
  441 + // 注释该行则默认不显示下拉选项
  442 + selections: [Table.SELECTION_ALL, Table.SELECTION_INVERT],
  443 + alwaysShowAlert: true,
  444 + }}
  445 + tableAlertOptionRender={({ selectedRowKeys, selectedRows }) => {
  446 + console.log(selectedRows);
  447 + console.log(selectedRowKeys);
  448 + return (
  449 + <Space size={16}>
  450 + <Button
  451 + type={'primary'}
  452 + onClick={() => {
  453 + const urls = selectedRows.map((item) => {
  454 + return item.invoiceAddress;
  455 + });
  456 + downloadImportTemplate(urls);
  457 + }}
  458 + disabled={selectedRowKeys.length === 0}
  459 + >
  460 + 下载发票
  461 + </Button>
  462 + </Space>
  463 + );
  464 + }}
403 form={{}} 465 form={{}}
404 dateFormatter="string" 466 dateFormatter="string"
405 headerTitle="待开票列表" 467 headerTitle="待开票列表"
src/pages/Invoice/constant.tsx
@@ -93,6 +93,7 @@ export const INVOICE_COLUMNS = [ @@ -93,6 +93,7 @@ export const INVOICE_COLUMNS = [
93 title: '金额', 93 title: '金额',
94 dataIndex: 'money', 94 dataIndex: 'money',
95 valueType: 'money', 95 valueType: 'money',
  96 + hideInTable: true,
96 width: 100, 97 width: 100,
97 }, 98 },
98 { 99 {
@@ -131,6 +132,7 @@ export const INVOICE_COLUMNS = [ @@ -131,6 +132,7 @@ export const INVOICE_COLUMNS = [
131 title: '备注', 132 title: '备注',
132 dataIndex: 'notes', 133 dataIndex: 'notes',
133 valueType: 'text', 134 valueType: 'text',
  135 + hideInSearch: true,
134 width: 250, 136 width: 250,
135 }, 137 },
136 ]; 138 ];
src/pages/Invoice/waitProcessRecord/components/ManualInvoicingModal.tsx
@@ -38,6 +38,7 @@ export default ({ record }) =&gt; { @@ -38,6 +38,7 @@ export default ({ record }) =&gt; {
38 isSuccess: true, 38 isSuccess: true,
39 invoiceRecordId: record.id, 39 invoiceRecordId: record.id,
40 manual: true, 40 manual: true,
  41 + invoiceDetailDtoList: record.invoiceDetails,
41 }, 42 },
42 }); 43 });
43 if (res.result === RESPONSE_CODE.SUCCESS) { 44 if (res.result === RESPONSE_CODE.SUCCESS) {
src/pages/Invoice/waitProcessRecord/index.tsx
@@ -120,7 +120,7 @@ const InvoiceRecord = () =&gt; { @@ -120,7 +120,7 @@ const InvoiceRecord = () =&gt; {
120 hideInTable: true, 120 hideInTable: true,
121 }, 121 },
122 { 122 {
123 - title: '销售代表', 123 + title: '申请人',
124 valueType: 'text', 124 valueType: 'text',
125 hideInSearch: true, 125 hideInSearch: true,
126 ellipsis: true, 126 ellipsis: true,
@@ -258,6 +258,7 @@ const InvoiceRecord = () =&gt; { @@ -258,6 +258,7 @@ const InvoiceRecord = () =&gt; {
258 { 258 {
259 title: '开票状态', 259 title: '开票状态',
260 valueType: 'select', 260 valueType: 'select',
  261 + key: 'waitProcessRecordStatus',
261 dataIndex: 'status', 262 dataIndex: 'status',
262 filters: true, 263 filters: true,
263 onFilter: true, 264 onFilter: true,
@@ -383,7 +384,6 @@ const InvoiceRecord = () =&gt; { @@ -383,7 +384,6 @@ const InvoiceRecord = () =&gt; {
383 'WAITING_FOR_INVOICING', 384 'WAITING_FOR_INVOICING',
384 'AUDITING', 385 'AUDITING',
385 'AUDITING_NOT_PASSED', 386 'AUDITING_NOT_PASSED',
386 - 'CANCELED',  
387 ], 387 ],
388 needBuildDetails: true, 388 needBuildDetails: true,
389 needBuildSubOrders: true, 389 needBuildSubOrders: true,
src/pages/Invoice/whiteList/index.tsx 0 → 100644
  1 +import ButtonConfirm from '@/components/ButtomConfirm';
  2 +import { RESPONSE_CODE } from '@/constants/enum';
  3 +import {
  4 + postOldInvoicingWhiteListBatchAdd,
  5 + postOldInvoicingWhiteListPage,
  6 + postOldInvoicingWhiteListRemove,
  7 +} from '@/services';
  8 +import { PlusOutlined } from '@ant-design/icons';
  9 +import {
  10 + ActionType,
  11 + ModalForm,
  12 + ProColumns,
  13 + ProFormTextArea,
  14 + ProTable,
  15 +} from '@ant-design/pro-components';
  16 +import { Button, message } from 'antd';
  17 +import { useRef } from 'react';
  18 +export const waitTimePromise = async (time: number = 100) => {
  19 + return new Promise((resolve) => {
  20 + setTimeout(() => {
  21 + resolve(true);
  22 + }, time);
  23 + });
  24 +};
  25 +
  26 +export const waitTime = async (time: number = 100) => {
  27 + await waitTimePromise(time);
  28 +};
  29 +
  30 +const columns: ProColumns[] = [
  31 + {
  32 + dataIndex: 'index',
  33 + valueType: 'indexBorder',
  34 + width: 48,
  35 + },
  36 + {
  37 + title: '订单号',
  38 + dataIndex: 'mainOrderId',
  39 + ellipsis: true,
  40 + },
  41 + {
  42 + title: '添加时间',
  43 + dataIndex: 'createTime',
  44 + hideInSearch: true,
  45 + ellipsis: true,
  46 + },
  47 + {
  48 + title: '添加人',
  49 + dataIndex: 'createByName',
  50 + hideInSearch: true,
  51 + ellipsis: true,
  52 + },
  53 + {
  54 + title: '创建时间',
  55 + valueType: 'dateTimeRange',
  56 + hideInTable: true,
  57 + search: {
  58 + transform: (value) => {
  59 + if (value) {
  60 + return {
  61 + createTimeGe: value[0],
  62 + createTimeLe: value[1],
  63 + };
  64 + }
  65 + },
  66 + },
  67 + },
  68 + {
  69 + title: '操作',
  70 + valueType: 'option',
  71 + key: 'option',
  72 + render: (text, record, _, action) => [
  73 + <ButtonConfirm
  74 + key="delete"
  75 + className="p-0"
  76 + title={'确认删除此项吗?'}
  77 + text="删除"
  78 + onConfirm={async () => {
  79 + await postOldInvoicingWhiteListRemove({
  80 + query: {
  81 + mainOrderId: record.mainOrderId,
  82 + },
  83 + });
  84 + action?.reload();
  85 + }}
  86 + />,
  87 + ],
  88 + },
  89 +];
  90 +
  91 +export default () => {
  92 + const actionRef = useRef<ActionType>();
  93 + return (
  94 + <ProTable
  95 + columns={columns}
  96 + actionRef={actionRef}
  97 + cardBordered
  98 + request={async (params) => {
  99 + const res = await postOldInvoicingWhiteListPage({
  100 + data: params,
  101 + });
  102 + return res.data;
  103 + }}
  104 + rowKey="id"
  105 + search={{
  106 + labelWidth: 'auto',
  107 + }}
  108 + options={{
  109 + setting: {
  110 + listsHeight: 400,
  111 + },
  112 + }}
  113 + pagination={{
  114 + pageSize: 5,
  115 + onChange: (page) => console.log(page),
  116 + }}
  117 + dateFormatter="string"
  118 + headerTitle="白名单"
  119 + toolBarRender={() => [
  120 + <ModalForm
  121 + key="add"
  122 + title="添加"
  123 + trigger={
  124 + <Button type="primary">
  125 + <PlusOutlined />
  126 + 添加
  127 + </Button>
  128 + }
  129 + autoFocusFirstInput
  130 + modalProps={{
  131 + destroyOnClose: true,
  132 + onCancel: () => console.log('run'),
  133 + }}
  134 + submitTimeout={2000}
  135 + onFinish={async (values) => {
  136 + const res = await postOldInvoicingWhiteListBatchAdd({
  137 + data: values,
  138 + });
  139 + if (res.result === RESPONSE_CODE.SUCCESS) {
  140 + actionRef.current?.reload();
  141 + message.success('添加成功');
  142 + return true;
  143 + }
  144 + }}
  145 + >
  146 + <ProFormTextArea
  147 + name="orderIdsText"
  148 + label="订单号"
  149 + placeholder="请输入订单号,多个用逗号分割"
  150 + rules={[
  151 + {
  152 + required: true,
  153 + message: '请输入订单号,多个用逗号分割',
  154 + },
  155 + ]}
  156 + ></ProFormTextArea>
  157 + </ModalForm>,
  158 + ]}
  159 + />
  160 + );
  161 +};
src/pages/Order/components/InvoicingDrawerForm.tsx
@@ -123,19 +123,6 @@ export default ({ dataList, setVisible, mainOrder, onClose }) =&gt; { @@ -123,19 +123,6 @@ export default ({ dataList, setVisible, mainOrder, onClose }) =&gt; {
123 const openBank = form.getFieldValue('openBank'); 123 const openBank = form.getFieldValue('openBank');
124 const bankAccount = form.getFieldValue('bankAccount'); 124 const bankAccount = form.getFieldValue('bankAccount');
125 const bankCode = form.getFieldValue('bankCode'); 125 const bankCode = form.getFieldValue('bankCode');
126 - console.log(  
127 - '开户名称: ' +  
128 - partyBName +  
129 - '\n' +  
130 - '开户行: ' +  
131 - openBank +  
132 - '\n' +  
133 - '账号: ' +  
134 - bankAccount +  
135 - '\n' +  
136 - '银行联行号: ' +  
137 - bankCode,  
138 - );  
139 return { 126 return {
140 ...form.getFieldsValue(), 127 ...form.getFieldsValue(),
141 totalPrice: totalPrice, 128 totalPrice: totalPrice,
@@ -205,7 +192,6 @@ export default ({ dataList, setVisible, mainOrder, onClose }) =&gt; { @@ -205,7 +192,6 @@ export default ({ dataList, setVisible, mainOrder, onClose }) =&gt; {
205 let res = await postServiceInvoiceWaitReissueInvoices({ 192 let res = await postServiceInvoiceWaitReissueInvoices({
206 data: reissueIds, 193 data: reissueIds,
207 }); 194 });
208 - console.log(res.data);  
209 return enum2ReverseSelect(res.data); 195 return enum2ReverseSelect(res.data);
210 }} 196 }}
211 /> 197 />
@@ -289,15 +275,6 @@ export default ({ dataList, setVisible, mainOrder, onClose }) =&gt; { @@ -289,15 +275,6 @@ export default ({ dataList, setVisible, mainOrder, onClose }) =&gt; {
289 label="联系人" 275 label="联系人"
290 rules={[{ required: true, message: '请选择银行联行号!' }]} 276 rules={[{ required: true, message: '请选择银行联行号!' }]}
291 /> 277 />
292 - <ProFormMoney  
293 - label="开票金额"  
294 - name="price"  
295 - locale="zh-CN"  
296 - rules={[{ required: true, message: '请填写开票金额!' }]}  
297 - initialValue={dataListCopy.reduce((accumulator, currentValue) => {  
298 - return accumulator + currentValue.subOrderPayment;  
299 - }, 0)}  
300 - />  
301 <ProFormSelect 278 <ProFormSelect
302 name="invoicingType" 279 name="invoicingType"
303 label="开具类型" 280 label="开具类型"
@@ -388,23 +365,19 @@ export default ({ dataList, setVisible, mainOrder, onClose }) =&gt; { @@ -388,23 +365,19 @@ export default ({ dataList, setVisible, mainOrder, onClose }) =&gt; {
388 placeholder="请选择是否加急" 365 placeholder="请选择是否加急"
389 rules={[{ required: true, message: '请选择是否加急!' }]} 366 rules={[{ required: true, message: '请选择是否加急!' }]}
390 /> 367 />
  368 + <ProFormMoney
  369 + label="开票金额"
  370 + name="price"
  371 + locale="zh-CN"
  372 + disabled={true}
  373 + rules={[{ required: true, message: '请填写开票金额!' }]}
  374 + initialValue={dataListCopy.reduce((accumulator, currentValue) => {
  375 + return accumulator + currentValue.subOrderPayment;
  376 + }, 0)}
  377 + />
391 <ProFormList 378 <ProFormList
392 name="invoiceDetails" 379 name="invoiceDetails"
393 label="开票明细" 380 label="开票明细"
394 - /*initialValue={dataListCopy.map((item) => {  
395 - console.log("item"+JSON.stringify(item));  
396 - return {  
397 - productName: item.productName,  
398 - projectName: item.projectName,  
399 - subOrderId: item.id,  
400 - /!*projectName: item.productName,*!/  
401 - specification: item.parameters,  
402 - unit: item.unit,  
403 - quantity: item.quantity,  
404 - price: item.productPrice,  
405 - totalPrice: item.subOrderPayment,  
406 - };  
407 - })}*/  
408 rules={[ 381 rules={[
409 { 382 {
410 required: true, 383 required: true,
@@ -488,9 +461,6 @@ export default ({ dataList, setVisible, mainOrder, onClose }) =&gt; { @@ -488,9 +461,6 @@ export default ({ dataList, setVisible, mainOrder, onClose }) =&gt; {
488 option.productAndServiceCatagoryAbbreviation + 461 option.productAndServiceCatagoryAbbreviation +
489 '*' + 462 '*' +
490 option.name; 463 option.name;
491 - console.log(  
492 - 'copyList' + JSON.stringify(listMeta.record.projectName),  
493 - );  
494 form.setFieldValue('invoiceDetails', copyList); 464 form.setFieldValue('invoiceDetails', copyList);
495 }} 465 }}
496 debounceTime={1000} 466 debounceTime={1000}
@@ -575,6 +545,18 @@ export default ({ dataList, setVisible, mainOrder, onClose }) =&gt; { @@ -575,6 +545,18 @@ export default ({ dataList, setVisible, mainOrder, onClose }) =&gt; {
575 key={'totalPrice' + listMeta.index} 545 key={'totalPrice' + listMeta.index}
576 label="金额" 546 label="金额"
577 name="totalPrice" 547 name="totalPrice"
  548 + onChange={() => {
  549 + const invoiceDetails = form.getFieldValue('invoiceDetails');
  550 + console.log('invoiceDetails', invoiceDetails);
  551 + const totalPrice = invoiceDetails.reduce(
  552 + (accumulator, currentValue) => {
  553 + return FloatAdd(accumulator, currentValue.totalPrice);
  554 + },
  555 + 0,
  556 + );
  557 + console.log('totalPrice', totalPrice);
  558 + form.setFieldValue('price', totalPrice);
  559 + }}
578 rules={[ 560 rules={[
579 { 561 {
580 validator: (_, value) => { 562 validator: (_, value) => {
src/pages/Order/components/OrderDrawer.tsx
@@ -11,6 +11,7 @@ import { @@ -11,6 +11,7 @@ import {
11 postKingdeeRepMaterialUnit, 11 postKingdeeRepMaterialUnit,
12 postKingdeeRepMeasureUnit, 12 postKingdeeRepMeasureUnit,
13 postPrepaidPhoneAvailableList, 13 postPrepaidPhoneAvailableList,
  14 + postResearchGroupsNameSet,
14 postServiceOrderAddOrder, 15 postServiceOrderAddOrder,
15 postServiceOrderAfterSalesQuerySnapshotOrder, 16 postServiceOrderAfterSalesQuerySnapshotOrder,
16 postServiceOrderApplyAfterSales, 17 postServiceOrderApplyAfterSales,
@@ -1202,13 +1203,36 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -1202,13 +1203,36 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
1202 placeholder="请输入单位" 1203 placeholder="请输入单位"
1203 rules={[{ required: true, message: '单位必填' }]} 1204 rules={[{ required: true, message: '单位必填' }]}
1204 /> 1205 />
1205 - <ProFormText  
1206 - width="lg"  
1207 - key="institutionContactName" 1206 + <ProFormSelect
  1207 + key={'institutionContactName'}
  1208 + width="md"
  1209 + showSearch
1208 name="institutionContactName" 1210 name="institutionContactName"
1209 - label="课题组"  
1210 - placeholder="请输入课题组"  
1211 - rules={[{ required: true, message: '课题组必填' }]} 1211 + rules={[{ required: true, message: '请输入课题组名称!' }]}
  1212 + request={async (value) => {
  1213 + const keywords = value.keyWords;
  1214 + const res = await postResearchGroupsNameSet({
  1215 + data: {
  1216 + groupName: keywords,
  1217 + },
  1218 + });
  1219 + let options = res?.data?.map((c: any) => {
  1220 + return {
  1221 + label: c,
  1222 + value: c,
  1223 + key: c,
  1224 + };
  1225 + });
  1226 + return options;
  1227 + }}
  1228 + fieldProps={{
  1229 + filterOption() {
  1230 + return true;
  1231 + },
  1232 + }}
  1233 + debounceTime={1000}
  1234 + label="课题组名称"
  1235 + placeholder="请输入名称"
1212 /> 1236 />
1213 <div 1237 <div
1214 style={{ 1238 style={{
src/pages/procure/components/AddDrawer.tsx renamed to src/pages/procure/components/AddOrModifyDrawer.tsx
1 import { RESPONSE_CODE } from '@/constants/enum'; 1 import { RESPONSE_CODE } from '@/constants/enum';
2 import { 2 import {
3 postOrderErpOrderStagesUpload, 3 postOrderErpOrderStagesUpload,
4 - postProcureReturnBillAdd, 4 + postProcureReturnBillAddOrModify,
5 postServiceConstStores, 5 postServiceConstStores,
6 } from '@/services'; 6 } from '@/services';
7 import { enumToSelect } from '@/utils'; 7 import { enumToSelect } from '@/utils';
@@ -14,44 +14,76 @@ import { @@ -14,44 +14,76 @@ import {
14 } from '@ant-design/pro-components'; 14 } from '@ant-design/pro-components';
15 import { Button, Form, message } from 'antd'; 15 import { Button, Form, message } from 'antd';
16 import { RcFile } from 'antd/es/upload'; 16 import { RcFile } from 'antd/es/upload';
17 -  
18 -export default ({ reloadTable }) => { 17 +export default ({ data, type, reloadTable }) => {
19 const [form] = Form.useForm(); 18 const [form] = Form.useForm();
  19 + const onfinish = async (values) => {
  20 + const res = await postProcureReturnBillAddOrModify({
  21 + data: values,
  22 + });
  23 + if (res.result === RESPONSE_CODE.SUCCESS) {
  24 + message.success('新增成功');
  25 + reloadTable();
  26 + return true;
  27 + }
  28 + // 不返回不会关闭弹框
  29 + };
  30 + const optType = {
  31 + add: {
  32 + readOnly: false,
  33 + title: '新增采购退货单',
  34 + button: (
  35 + <Button size={'small'} type="primary">
  36 + 新增
  37 + </Button>
  38 + ),
  39 + onFinish: onfinish,
  40 + },
  41 + modify: {
  42 + readOnly: false,
  43 + title: '修改采购退货单',
  44 + button: (
  45 + <Button size={'small'} type="link">
  46 + 编辑
  47 + </Button>
  48 + ),
  49 + onFinish: onfinish,
  50 + },
  51 + detail: {
  52 + readOnly: true,
  53 + title: '查看采购退货单',
  54 + button: (
  55 + <Button size={'small'} type="link">
  56 + 查看
  57 + </Button>
  58 + ),
  59 + onFinish: () => {},
  60 + },
  61 + };
20 return ( 62 return (
21 <DrawerForm 63 <DrawerForm
22 - title="新增采购退货单" 64 + title={optType[type].title}
23 resize={{ 65 resize={{
24 onResize() { 66 onResize() {
25 console.log('resize!'); 67 console.log('resize!');
26 }, 68 },
27 maxWidth: window.innerWidth * 0.8, 69 maxWidth: window.innerWidth * 0.8,
28 - minWidth: 300, 70 + minWidth: 400,
29 }} 71 }}
30 form={form} 72 form={form}
31 - trigger={<Button type="primary">新增</Button>} 73 + trigger={optType[type].button}
32 autoFocusFirstInput 74 autoFocusFirstInput
33 drawerProps={{ 75 drawerProps={{
34 destroyOnClose: true, 76 destroyOnClose: true,
35 }} 77 }}
36 submitTimeout={2000} 78 submitTimeout={2000}
37 - onFinish={async (values) => {  
38 - const res = await postProcureReturnBillAdd({  
39 - data: values,  
40 - });  
41 - if (res.result === RESPONSE_CODE.SUCCESS) {  
42 - message.success('新增成功');  
43 - return true;  
44 - }  
45 - message.success('提交成功');  
46 - reloadTable();  
47 - // 不返回不会关闭弹框  
48 - return true;  
49 - }} 79 + onFinish={optType[type].onFinish}
50 > 80 >
51 <ProFormText 81 <ProFormText
52 name="consignee" 82 name="consignee"
53 label="收货人" 83 label="收货人"
54 placeholder="请输入收货人" 84 placeholder="请输入收货人"
  85 + readonly={optType[type].readOnly}
  86 + initialValue={data?.consignee}
55 rules={[ 87 rules={[
56 { 88 {
57 required: true, 89 required: true,
@@ -63,6 +95,8 @@ export default ({ reloadTable }) =&gt; { @@ -63,6 +95,8 @@ export default ({ reloadTable }) =&gt; {
63 name="phoneNumber" 95 name="phoneNumber"
64 label="联系电话" 96 label="联系电话"
65 placeholder="请输入联系电话" 97 placeholder="请输入联系电话"
  98 + initialValue={data?.phoneNumber}
  99 + readonly={optType[type].readOnly}
66 rules={[ 100 rules={[
67 { 101 {
68 required: true, 102 required: true,
@@ -74,6 +108,8 @@ export default ({ reloadTable }) =&gt; { @@ -74,6 +108,8 @@ export default ({ reloadTable }) =&gt; {
74 name="address" 108 name="address"
75 label="收货地址" 109 label="收货地址"
76 placeholder="请输入收货地址" 110 placeholder="请输入收货地址"
  111 + initialValue={data?.address}
  112 + readonly={optType[type].readOnly}
77 rules={[ 113 rules={[
78 { 114 {
79 required: true, 115 required: true,
@@ -85,6 +121,8 @@ export default ({ reloadTable }) =&gt; { @@ -85,6 +121,8 @@ export default ({ reloadTable }) =&gt; {
85 name="productDetail" 121 name="productDetail"
86 label="产品明细" 122 label="产品明细"
87 placeholder="请输入产品明细" 123 placeholder="请输入产品明细"
  124 + initialValue={data?.productDetail}
  125 + readonly={optType[type].readOnly}
88 rules={[ 126 rules={[
89 { 127 {
90 required: true, 128 required: true,
@@ -94,6 +132,11 @@ export default ({ reloadTable }) =&gt; { @@ -94,6 +132,11 @@ export default ({ reloadTable }) =&gt; {
94 ></ProFormTextArea> 132 ></ProFormTextArea>
95 <ProFormSelect 133 <ProFormSelect
96 name="sendStoreCode" 134 name="sendStoreCode"
  135 + readonly={optType[type].readOnly}
  136 + fieldProps={{
  137 + labelInValue: false,
  138 + }}
  139 + initialValue={data ? data?.sendStoreCode + '' : null}
97 label="发货仓库" 140 label="发货仓库"
98 request={async () => { 141 request={async () => {
99 const res = await postServiceConstStores(); 142 const res = await postServiceConstStores();
@@ -109,12 +152,15 @@ export default ({ reloadTable }) =&gt; { @@ -109,12 +152,15 @@ export default ({ reloadTable }) =&gt; {
109 <ProFormTextArea 152 <ProFormTextArea
110 name="notes" 153 name="notes"
111 label="备注" 154 label="备注"
  155 + initialValue={data?.notes}
  156 + readonly={optType[type].readOnly}
112 placeholder="请输入备注" 157 placeholder="请输入备注"
113 ></ProFormTextArea> 158 ></ProFormTextArea>
114 <ProFormUploadDragger 159 <ProFormUploadDragger
115 label="附件" 160 label="附件"
116 name="attachmentsFile" 161 name="attachmentsFile"
117 action="upload.do" 162 action="upload.do"
  163 + hidden={optType[type].readOnly}
118 onChange={(info) => { 164 onChange={(info) => {
119 const uploadFile = async ({ fileList: newFileList }) => { 165 const uploadFile = async ({ fileList: newFileList }) => {
120 if (newFileList.length > 0) { 166 if (newFileList.length > 0) {
@@ -138,7 +184,15 @@ export default ({ reloadTable }) =&gt; { @@ -138,7 +184,15 @@ export default ({ reloadTable }) =&gt; {
138 }} 184 }}
139 max={1} 185 max={1}
140 /> 186 />
141 - <ProFormText name="attachments" hidden></ProFormText> 187 + <a hidden={!optType[type].readOnly} href={data?.attachments} download>
  188 + 下载附件
  189 + </a>
  190 + <ProFormText
  191 + initialValue={data?.attachments}
  192 + name="attachments"
  193 + hidden
  194 + ></ProFormText>
  195 + <ProFormText initialValue={data?.id} name="id" hidden></ProFormText>
142 </DrawerForm> 196 </DrawerForm>
143 ); 197 );
144 }; 198 };
src/pages/procure/components/StatusTransitionModal.tsx 0 → 100644
  1 +import { RESPONSE_CODE } from '@/constants/enum';
  2 +import {
  3 + postProcureReturnBillAudit,
  4 + postProcureReturnBillSend,
  5 +} from '@/services';
  6 +import { ModalForm, ProFormTextArea } from '@ant-design/pro-components';
  7 +import { Button, Form, message } from 'antd';
  8 +
  9 +export default ({ type, ids, reloadTable }) => {
  10 + const transitionTypes = {
  11 + audit: {
  12 + title: '审核',
  13 + notesLabel: '驳回原因',
  14 + notesPlaceholder: '请输入驳回原因',
  15 + submitText: '通过',
  16 + resetText: '驳回',
  17 + onfinish: async (values) => {
  18 + const res = await postProcureReturnBillAudit({
  19 + data: {
  20 + ids: ids,
  21 + transitionNotes: values.transitionNotes,
  22 + },
  23 + });
  24 + if (res.result === RESPONSE_CODE.SUCCESS) {
  25 + message.success('操作成功');
  26 + reloadTable();
  27 + return true;
  28 + } else {
  29 + message.error('操作失败');
  30 + }
  31 + },
  32 + },
  33 + send: {
  34 + title: '发货',
  35 + notesLabel: '发货信息',
  36 + notesPlaceholder: '请输入发货信息(如:顺丰快递,SF24070802324)',
  37 + submitText: '发货',
  38 + resetText: '取消',
  39 + onfinish: async (values) => {
  40 + const res = await postProcureReturnBillSend({
  41 + data: {
  42 + ids: ids,
  43 + transitionNotes: values.transitionNotes,
  44 + },
  45 + });
  46 + if (res.result === RESPONSE_CODE.SUCCESS) {
  47 + message.success('操作成功');
  48 + reloadTable();
  49 + return true;
  50 + } else {
  51 + message.error('操作失败');
  52 + }
  53 + },
  54 + },
  55 + };
  56 + const [form] = Form.useForm();
  57 + return (
  58 + <ModalForm
  59 + title={transitionTypes[type].title}
  60 + trigger={
  61 + <Button size={'small'} type="link">
  62 + {transitionTypes[type].title}
  63 + </Button>
  64 + }
  65 + form={form}
  66 + autoFocusFirstInput
  67 + modalProps={{
  68 + destroyOnClose: true,
  69 + onCancel: () => console.log('run'),
  70 + }}
  71 + submitter={{
  72 + searchConfig: {
  73 + submitText: transitionTypes[type].submitText,
  74 + resetText: transitionTypes[type].resetText,
  75 + },
  76 + }}
  77 + onFinish={transitionTypes[type].onfinish}
  78 + >
  79 + <ProFormTextArea
  80 + name="transitionNotes"
  81 + label={transitionTypes[type].notesLabel}
  82 + placeholder={transitionTypes[type].notesPlaceholder}
  83 + />
  84 + </ModalForm>
  85 + );
  86 +};
src/pages/procure/index.tsx
1 -import AddDrawer from '@/pages/procure/components/AddDrawer'; 1 +import { RESPONSE_CODE } from '@/constants/enum';
  2 +import {
  3 + default as AddDrawer,
  4 + default as AddOrModifyDrawer,
  5 +} from '@/pages/procure/components/AddOrModifyDrawer';
  6 +import StatusTransitionModal from '@/pages/procure/components/StatusTransitionModal';
2 import { 7 import {
3 postProcureReturnBillPage, 8 postProcureReturnBillPage,
  9 + postProcureReturnBillRemove,
4 postServiceConstProcureReturnBills, 10 postServiceConstProcureReturnBills,
5 postServiceConstStores, 11 postServiceConstStores,
6 } from '@/services'; 12 } from '@/services';
  13 +import { orderExport } from '@/services/order';
7 import { enumToSelect } from '@/utils'; 14 import { enumToSelect } from '@/utils';
8 -import { EllipsisOutlined } from '@ant-design/icons';  
9 import type { ActionType, ProColumns } from '@ant-design/pro-components'; 15 import type { ActionType, ProColumns } from '@ant-design/pro-components';
10 -import { ProTable, TableDropdown } from '@ant-design/pro-components';  
11 -import { Button, Dropdown } from 'antd'; 16 +import { ProTable } from '@ant-design/pro-components';
  17 +import { Button, Popconfirm, message } from 'antd';
12 import { useRef } from 'react'; 18 import { useRef } from 'react';
  19 +
13 export const waitTimePromise = async (time: number = 100) => { 20 export const waitTimePromise = async (time: number = 100) => {
14 return new Promise((resolve) => { 21 return new Promise((resolve) => {
15 setTimeout(() => { 22 setTimeout(() => {
@@ -22,261 +29,310 @@ export const waitTime = async (time: number = 100) =&gt; { @@ -22,261 +29,310 @@ export const waitTime = async (time: number = 100) =&gt; {
22 await waitTimePromise(time); 29 await waitTimePromise(time);
23 }; 30 };
24 31
25 -const columns: ProColumns[] = [  
26 - {  
27 - title: '订单编号',  
28 - width: 120,  
29 - dataIndex: 'id',  
30 - ellipsis: true,  
31 - hideInSearch: true,  
32 - },  
33 - {  
34 - title: '收获人',  
35 - width: 120,  
36 - dataIndex: 'consignee',  
37 - ellipsis: true,  
38 - hideInSearch: true,  
39 - },  
40 - {  
41 - title: '联系电话',  
42 - width: 120,  
43 - dataIndex: 'phoneNumber',  
44 - ellipsis: true,  
45 - hideInSearch: true,  
46 - },  
47 - {  
48 - title: '收货地址',  
49 - width: 120,  
50 - dataIndex: 'address',  
51 - ellipsis: true,  
52 - hideInSearch: true,  
53 - },  
54 - {  
55 - title: '产品明细',  
56 - width: 120,  
57 - dataIndex: 'productDetail',  
58 - ellipsis: true,  
59 - hideInSearch: true,  
60 - },  
61 - {  
62 - title: '发货仓库',  
63 - width: 120,  
64 - dataIndex: 'sendStoreText',  
65 - ellipsis: true,  
66 - hideInSearch: true,  
67 - },  
68 - {  
69 - title: '创建人',  
70 - width: 120,  
71 - dataIndex: 'createByName',  
72 - ellipsis: true,  
73 - hideInSearch: true,  
74 - },  
75 - {  
76 - title: '创建时间',  
77 - width: 120,  
78 - valueType: 'dateTime',  
79 - dataIndex: 'createTime',  
80 - ellipsis: true,  
81 - hideInSearch: true,  
82 - },  
83 - {  
84 - title: '订单状态',  
85 - width: 120,  
86 - dataIndex: 'statusText',  
87 - ellipsis: true,  
88 - hideInSearch: true,  
89 - },  
90 - {  
91 - title: '附件',  
92 - width: 120,  
93 - dataIndex: 'attachments',  
94 - ellipsis: true,  
95 - hideInSearch: true,  
96 - },  
97 - {  
98 - title: '备注',  
99 - width: 120,  
100 - dataIndex: 'notes',  
101 - ellipsis: true,  
102 - hideInSearch: true,  
103 - },  
104 - {  
105 - title: '发货信息',  
106 - width: 120,  
107 - dataIndex: 'sendInfo',  
108 - ellipsis: true,  
109 - hideInSearch: true,  
110 - },  
111 -  
112 - {  
113 - title: '订单编号',  
114 - width: 120,  
115 - dataIndex: 'id',  
116 - hideInTable: true,  
117 - },  
118 - {  
119 - title: '收货人',  
120 - width: 120,  
121 - dataIndex: 'consigneeLike',  
122 - hideInTable: true,  
123 - },  
124 - {  
125 - title: '联系电话',  
126 - width: 120,  
127 - dataIndex: 'phoneNumberLike',  
128 - hideInTable: true,  
129 - },  
130 - {  
131 - title: '发货仓库',  
132 - width: 120,  
133 - dataIndex: 'sendStore',  
134 - valueType: 'select',  
135 - hideInTable: true,  
136 - request: async () => {  
137 - const res = await postServiceConstStores();  
138 - return enumToSelect(res.data); 32 +export default () => {
  33 + const [messageApi, contextHolder] = message.useMessage();
  34 + const actionRef = useRef<ActionType>();
  35 + const reloadTable = () => {
  36 + actionRef.current?.reload();
  37 + };
  38 + const columns: ProColumns[] = [
  39 + {
  40 + title: '订单编号',
  41 + width: 120,
  42 + dataIndex: 'id',
  43 + ellipsis: true,
  44 + hideInSearch: true,
139 }, 45 },
140 - },  
141 - {  
142 - title: '订单状态',  
143 - width: 120,  
144 - dataIndex: 'status',  
145 - valueType: 'select',  
146 - hideInTable: true,  
147 - request: async () => {  
148 - const res = await postServiceConstProcureReturnBills();  
149 - return enumToSelect(res.data); 46 + {
  47 + title: '收货人',
  48 + width: 120,
  49 + dataIndex: 'consignee',
  50 + ellipsis: true,
  51 + hideInSearch: true,
150 }, 52 },
151 - },  
152 - {  
153 - title: '创建人',  
154 - width: 120,  
155 - dataIndex: 'createByNameLike',  
156 - hideInTable: true,  
157 - },  
158 - {  
159 - title: '创建时间',  
160 - dataIndex: 'createTime',  
161 - valueType: 'dateTimeRange',  
162 - search: {  
163 - transform: (value: any) => ({  
164 - createTimeGe: value[0],  
165 - createTimeLe: value[1],  
166 - }), 53 + {
  54 + title: '联系电话',
  55 + width: 120,
  56 + dataIndex: 'phoneNumber',
  57 + ellipsis: true,
  58 + hideInSearch: true,
167 }, 59 },
168 - hideInTable: true,  
169 - },  
170 - {  
171 - title: '操作',  
172 - valueType: 'option',  
173 - key: 'option',  
174 - render: (text, record, _, action) => [  
175 - <a  
176 - key="editable"  
177 - onClick={() => {  
178 - action?.startEditable?.(record.id);  
179 - }}  
180 - >  
181 - 编辑  
182 - </a>,  
183 - <a href={record.url} target="_blank" rel="noopener noreferrer" key="view">  
184 - 查看  
185 - </a>,  
186 - <TableDropdown  
187 - key="actionGroup"  
188 - onSelect={() => action?.reload()}  
189 - menus={[  
190 - { key: 'copy', name: '复制' },  
191 - { key: 'delete', name: '删除' },  
192 - ]}  
193 - />,  
194 - ],  
195 - },  
196 -];  
197 -  
198 -export default () => {  
199 - const actionRef = useRef<ActionType>();  
200 - return (  
201 - <ProTable  
202 - columns={columns}  
203 - actionRef={actionRef}  
204 - cardBordered  
205 - request={async (params, sort, filter) => {  
206 - console.log(sort, filter);  
207 - const res = await postProcureReturnBillPage({  
208 - data: params,  
209 - });  
210 - console.log(res);  
211 - return res.data;  
212 - }}  
213 - editable={{  
214 - type: 'multiple',  
215 - }}  
216 - scroll={{ x: 1300 }}  
217 - columnsState={{  
218 - persistenceKey: 'pro-table-singe-demos',  
219 - persistenceType: 'localStorage',  
220 - defaultValue: {  
221 - option: { fixed: 'right', disable: true },  
222 - },  
223 - onChange(value) {  
224 - console.log('value: ', value);  
225 - },  
226 - }}  
227 - rowKey="id"  
228 - search={{  
229 - labelWidth: 'auto',  
230 - }}  
231 - options={{  
232 - setting: {  
233 - listsHeight: 400,  
234 - },  
235 - }}  
236 - form={{  
237 - // 由于配置了 transform,提交的参数与定义的不同这里需要转化一下  
238 - syncToUrl: (values, type) => {  
239 - if (type === 'get') {  
240 - return {  
241 - ...values,  
242 - created_at: [values.startTime, values.endTime],  
243 - };  
244 - }  
245 - return values;  
246 - },  
247 - }}  
248 - pagination={{  
249 - pageSize: 5,  
250 - onChange: (page) => console.log(page),  
251 - }}  
252 - dateFormatter="string"  
253 - headerTitle="高级表格"  
254 - toolBarRender={() => [  
255 - <AddDrawer key="add" />,  
256 - <Dropdown  
257 - key="menu"  
258 - menu={{  
259 - items: [  
260 - {  
261 - label: '1st item',  
262 - key: '1',  
263 - },  
264 - {  
265 - label: '2nd item',  
266 - key: '2',  
267 - },  
268 - {  
269 - label: '3rd item',  
270 - key: '3', 60 + {
  61 + title: '收货地址',
  62 + width: 120,
  63 + dataIndex: 'address',
  64 + ellipsis: true,
  65 + hideInSearch: true,
  66 + },
  67 + {
  68 + title: '产品明细',
  69 + width: 120,
  70 + dataIndex: 'productDetail',
  71 + ellipsis: true,
  72 + hideInSearch: true,
  73 + },
  74 + {
  75 + title: '发货仓库',
  76 + width: 120,
  77 + dataIndex: 'sendStoreText',
  78 + ellipsis: true,
  79 + hideInSearch: true,
  80 + },
  81 + {
  82 + title: '创建人',
  83 + width: 120,
  84 + dataIndex: 'createByName',
  85 + ellipsis: true,
  86 + hideInSearch: true,
  87 + },
  88 + {
  89 + title: '创建时间',
  90 + width: 120,
  91 + valueType: 'dateTime',
  92 + dataIndex: 'createTime',
  93 + ellipsis: true,
  94 + hideInSearch: true,
  95 + },
  96 + {
  97 + title: '订单状态',
  98 + width: 120,
  99 + dataIndex: 'statusText',
  100 + ellipsis: true,
  101 + hideInSearch: true,
  102 + },
  103 + {
  104 + title: '附件',
  105 + width: 120,
  106 + dataIndex: 'attachments',
  107 + ellipsis: true,
  108 + hideInSearch: true,
  109 + },
  110 + {
  111 + title: '备注',
  112 + width: 120,
  113 + dataIndex: 'notes',
  114 + ellipsis: true,
  115 + hideInSearch: true,
  116 + },
  117 + {
  118 + title: '发货信息',
  119 + width: 120,
  120 + dataIndex: 'sendInfo',
  121 + ellipsis: true,
  122 + hideInSearch: true,
  123 + },
  124 + {
  125 + title: '订单编号',
  126 + width: 120,
  127 + dataIndex: 'id',
  128 + hideInTable: true,
  129 + },
  130 + {
  131 + title: '收货人',
  132 + width: 120,
  133 + dataIndex: 'consigneeLike',
  134 + hideInTable: true,
  135 + },
  136 + {
  137 + title: '联系电话',
  138 + width: 120,
  139 + dataIndex: 'phoneNumberLike',
  140 + hideInTable: true,
  141 + },
  142 + {
  143 + title: '发货仓库',
  144 + width: 120,
  145 + dataIndex: 'sendStore',
  146 + valueType: 'select',
  147 + hideInTable: true,
  148 + request: async () => {
  149 + const res = await postServiceConstStores();
  150 + return enumToSelect(res.data);
  151 + },
  152 + },
  153 + {
  154 + title: '订单状态',
  155 + width: 120,
  156 + dataIndex: 'status',
  157 + valueType: 'select',
  158 + hideInTable: true,
  159 + request: async () => {
  160 + const res = await postServiceConstProcureReturnBills();
  161 + return enumToSelect(res.data);
  162 + },
  163 + },
  164 + {
  165 + title: '创建人',
  166 + width: 120,
  167 + dataIndex: 'createByNameLike',
  168 + hideInTable: true,
  169 + },
  170 + {
  171 + title: '创建时间',
  172 + dataIndex: 'createTime',
  173 + valueType: 'dateTimeRange',
  174 + search: {
  175 + transform: (value: any) => ({
  176 + createTimeGe: value[0],
  177 + createTimeLe: value[1],
  178 + }),
  179 + },
  180 + hideInTable: true,
  181 + },
  182 + {
  183 + title: '操作',
  184 + valueType: 'option',
  185 + key: 'option',
  186 + width: 220,
  187 + render: (text, record, _, action) => [
  188 + <>
  189 + {record.paths?.includes('AUDIT') && (
  190 + <StatusTransitionModal
  191 + type="audit"
  192 + ids={[record.id]}
  193 + reloadTable={reloadTable}
  194 + />
  195 + )}
  196 + </>,
  197 + <>
  198 + {record.paths?.includes('SEND') && (
  199 + <StatusTransitionModal
  200 + type="send"
  201 + ids={[record.id]}
  202 + reloadTable={reloadTable}
  203 + />
  204 + )}
  205 + </>,
  206 + <AddOrModifyDrawer
  207 + key={'detail'}
  208 + reloadTable={reloadTable}
  209 + data={record}
  210 + type={'detail'}
  211 + />,
  212 + <AddOrModifyDrawer
  213 + key={'add'}
  214 + reloadTable={() => {
  215 + action?.reload();
  216 + }}
  217 + data={record}
  218 + type={'modify'}
  219 + />,
  220 + <Popconfirm
  221 + key="delete"
  222 + title="删除单据"
  223 + description="确定删除单据?"
  224 + onConfirm={async () => {
  225 + const res = await postProcureReturnBillRemove({
  226 + query: {
  227 + id: record.id,
271 }, 228 },
272 - ], 229 + });
  230 + if (res.result === RESPONSE_CODE.SUCCESS) {
  231 + message.success('删除成功');
  232 + action?.reload();
  233 + }
273 }} 234 }}
  235 + okText="确认"
  236 + cancelText="取消"
274 > 237 >
275 - <Button>  
276 - <EllipsisOutlined /> 238 + <Button size={'small'} type="link" danger>
  239 + 删除
277 </Button> 240 </Button>
278 - </Dropdown>,  
279 - ]}  
280 - /> 241 + </Popconfirm>,
  242 + ],
  243 + },
  244 + ];
  245 + return (
  246 + <>
  247 + <ProTable
  248 + columns={columns}
  249 + actionRef={actionRef}
  250 + cardBordered
  251 + size={'small'}
  252 + request={async (params, sort, filter) => {
  253 + console.log(sort, filter);
  254 + const res = await postProcureReturnBillPage({
  255 + data: params,
  256 + });
  257 + console.log(res);
  258 + return res.data;
  259 + }}
  260 + editable={{
  261 + type: 'multiple',
  262 + }}
  263 + scroll={{ x: 1300 }}
  264 + columnsState={{
  265 + persistenceKey: 'pro-table-singe-demos',
  266 + persistenceType: 'localStorage',
  267 + defaultValue: {
  268 + option: { fixed: 'right', disable: true },
  269 + },
  270 + onChange(value) {
  271 + console.log('value: ', value);
  272 + },
  273 + }}
  274 + rowKey="id"
  275 + search={{
  276 + optionRender: (searchConfig, formProps, dom) => [
  277 + ...dom.reverse(),
  278 + <Button
  279 + key="out"
  280 + onClick={() => {
  281 + const values = searchConfig?.form?.getFieldsValue();
  282 + messageApi.open({
  283 + type: 'loading',
  284 + content: '导出中...',
  285 + duration: 0,
  286 + });
  287 + orderExport(
  288 + '/api/procureReturnBill/export',
  289 + '客户信息.xlsx',
  290 + 'POST',
  291 + values,
  292 + () => {
  293 + messageApi.destroy();
  294 + },
  295 + );
  296 + }}
  297 + >
  298 + 导出
  299 + </Button>,
  300 + ],
  301 + labelWidth: 'auto',
  302 + }}
  303 + options={{
  304 + setting: {
  305 + listsHeight: 400,
  306 + },
  307 + }}
  308 + form={{
  309 + // 由于配置了 transform,提交的参数与定义的不同这里需要转化一下
  310 + syncToUrl: (values, type) => {
  311 + if (type === 'get') {
  312 + return {
  313 + ...values,
  314 + created_at: [values.startTime, values.endTime],
  315 + };
  316 + }
  317 + return values;
  318 + },
  319 + }}
  320 + pagination={{
  321 + pageSize: 5,
  322 + onChange: (page) => console.log(page),
  323 + }}
  324 + dateFormatter="string"
  325 + headerTitle="高级表格"
  326 + toolBarRender={() => [
  327 + <AddDrawer
  328 + key="add"
  329 + data={null}
  330 + type="add"
  331 + reloadTable={reloadTable}
  332 + />,
  333 + ]}
  334 + />
  335 + {contextHolder}
  336 + </>
281 ); 337 );
282 }; 338 };
src/services/definition.ts
@@ -203,6 +203,7 @@ export interface AdminClientDto { @@ -203,6 +203,7 @@ export interface AdminClientDto {
203 } 203 }
204 204
205 export interface AdminDeptQueryVO { 205 export interface AdminDeptQueryVO {
  206 + createByName?: string;
206 /** @format int32 */ 207 /** @format int32 */
207 current?: number; 208 current?: number;
208 /** @format int32 */ 209 /** @format int32 */
@@ -247,6 +248,7 @@ export interface AdminInvoicingAccountDTO { @@ -247,6 +248,7 @@ export interface AdminInvoicingAccountDTO {
247 } 248 }
248 249
249 export interface AdminJobQueryVO { 250 export interface AdminJobQueryVO {
  251 + createByName?: string;
250 /** @format int32 */ 252 /** @format int32 */
251 current?: number; 253 current?: number;
252 /** @format int32 */ 254 /** @format int32 */
@@ -277,6 +279,7 @@ export interface AdminMenuQueryVO { @@ -277,6 +279,7 @@ export interface AdminMenuQueryVO {
277 /** @format int32 */ 279 /** @format int32 */
278 cache?: number; 280 cache?: number;
279 component?: string; 281 component?: string;
  282 + createByName?: string;
280 /** @format int32 */ 283 /** @format int32 */
281 current?: number; 284 current?: number;
282 /** @format int32 */ 285 /** @format int32 */
@@ -326,6 +329,7 @@ export interface AdminMenuVO { @@ -326,6 +329,7 @@ export interface AdminMenuVO {
326 } 329 }
327 330
328 export interface AdminRoleQueryVO { 331 export interface AdminRoleQueryVO {
  332 + createByName?: string;
329 /** @format int32 */ 333 /** @format int32 */
330 current?: number; 334 current?: number;
331 dataScope?: string; 335 dataScope?: string;
@@ -358,6 +362,7 @@ export interface AdminRoleVO { @@ -358,6 +362,7 @@ export interface AdminRoleVO {
358 } 362 }
359 363
360 export interface AdminUserLoginByPhoneVO { 364 export interface AdminUserLoginByPhoneVO {
  365 + createByName?: string;
361 /** @format int32 */ 366 /** @format int32 */
362 current?: number; 367 current?: number;
363 /** @format int32 */ 368 /** @format int32 */
@@ -373,6 +378,7 @@ export interface AdminUserLoginByPhoneVO { @@ -373,6 +378,7 @@ export interface AdminUserLoginByPhoneVO {
373 } 378 }
374 379
375 export interface AdminUserLoginByPwdVO { 380 export interface AdminUserLoginByPwdVO {
  381 + createByName?: string;
376 /** @format int32 */ 382 /** @format int32 */
377 current?: number; 383 current?: number;
378 /** @format int32 */ 384 /** @format int32 */
@@ -391,6 +397,7 @@ export interface AdminUserLoginByPwdVO { @@ -391,6 +397,7 @@ export interface AdminUserLoginByPwdVO {
391 397
392 export interface AdminUserModifyPwdVO { 398 export interface AdminUserModifyPwdVO {
393 confirmPassword?: string; 399 confirmPassword?: string;
  400 + createByName?: string;
394 /** @format int32 */ 401 /** @format int32 */
395 current?: number; 402 current?: number;
396 /** @format int32 */ 403 /** @format int32 */
@@ -407,6 +414,7 @@ export interface AdminUserModifyPwdVO { @@ -407,6 +414,7 @@ export interface AdminUserModifyPwdVO {
407 } 414 }
408 415
409 export interface AdminUserPasswordRecoverEmailVO { 416 export interface AdminUserPasswordRecoverEmailVO {
  417 + createByName?: string;
410 /** @format int32 */ 418 /** @format int32 */
411 current?: number; 419 current?: number;
412 /** @format int32 */ 420 /** @format int32 */
@@ -421,6 +429,7 @@ export interface AdminUserPasswordRecoverEmailVO { @@ -421,6 +429,7 @@ export interface AdminUserPasswordRecoverEmailVO {
421 } 429 }
422 430
423 export interface AdminUserQueryVO { 431 export interface AdminUserQueryVO {
  432 + createByName?: string;
424 /** @format int32 */ 433 /** @format int32 */
425 current?: number; 434 current?: number;
426 email?: string; 435 email?: string;
@@ -445,6 +454,7 @@ export interface AdminUserQueryVO { @@ -445,6 +454,7 @@ export interface AdminUserQueryVO {
445 454
446 export interface AdminUserRegisterVO { 455 export interface AdminUserRegisterVO {
447 confirmPassword?: string; 456 confirmPassword?: string;
  457 + createByName?: string;
448 /** @format int32 */ 458 /** @format int32 */
449 current?: number; 459 current?: number;
450 email?: string; 460 email?: string;
@@ -561,6 +571,11 @@ export interface ApiCreateOrderRequest { @@ -561,6 +571,11 @@ export interface ApiCreateOrderRequest {
561 notes?: string; 571 notes?: string;
562 /** 572 /**
563 * @description 573 * @description
  574 + * 订单编号
  575 + */
  576 + orderNo?: string;
  577 + /**
  578 + * @description
564 * 支付渠道 579 * 支付渠道
565 */ 580 */
566 paymentChannel?: string; 581 paymentChannel?: string;
@@ -653,6 +668,7 @@ export interface ApiCreateProductRequest { @@ -653,6 +668,7 @@ export interface ApiCreateProductRequest {
653 } 668 }
654 669
655 export interface ApiOrderCustomersRequest { 670 export interface ApiOrderCustomersRequest {
  671 + createByName?: string;
656 /** @format int32 */ 672 /** @format int32 */
657 current?: number; 673 current?: number;
658 /** @format int32 */ 674 /** @format int32 */
@@ -688,6 +704,11 @@ export interface ApiQueryOrderDetailRequest { @@ -688,6 +704,11 @@ export interface ApiQueryOrderDetailRequest {
688 orderStatus?: number; 704 orderStatus?: number;
689 /** 705 /**
690 * @description 706 * @description
  707 + * 原始订单编号:orderId存在的话,此参数无效
  708 + */
  709 + originalOrderNo?: string;
  710 + /**
  711 + * @description
691 * 账号id 712 * 账号id
692 * @format int32 713 * @format int32
693 */ 714 */
@@ -948,6 +969,7 @@ export interface AuditDto { @@ -948,6 +969,7 @@ export interface AuditDto {
948 } 969 }
949 970
950 export interface AuditVO { 971 export interface AuditVO {
  972 + createByName?: string;
951 /** @format int32 */ 973 /** @format int32 */
952 current?: number; 974 current?: number;
953 /** @format int32 */ 975 /** @format int32 */
@@ -1026,6 +1048,7 @@ export interface CancelSendOrderDto { @@ -1026,6 +1048,7 @@ export interface CancelSendOrderDto {
1026 } 1048 }
1027 1049
1028 export interface CaptchaMessageVO { 1050 export interface CaptchaMessageVO {
  1051 + createByName?: string;
1029 /** @format int32 */ 1052 /** @format int32 */
1030 current?: number; 1053 current?: number;
1031 /** @format int32 */ 1054 /** @format int32 */
@@ -1280,6 +1303,7 @@ export interface CustomerSaveReq { @@ -1280,6 +1303,7 @@ export interface CustomerSaveReq {
1280 } 1303 }
1281 1304
1282 export interface DictionaryQueryVO { 1305 export interface DictionaryQueryVO {
  1306 + createByName?: string;
1283 /** @format int32 */ 1307 /** @format int32 */
1284 current?: number; 1308 current?: number;
1285 dictCode?: string; 1309 dictCode?: string;
@@ -1376,6 +1400,12 @@ export interface InvoiceDto { @@ -1376,6 +1400,12 @@ export interface InvoiceDto {
1376 * 收款时间 1400 * 收款时间
1377 * @format date-time 1401 * @format date-time
1378 */ 1402 */
  1403 + collectionDatetime?: string;
  1404 + /**
  1405 + * @description
  1406 + * 收款时间
  1407 + * @format date-time
  1408 + */
1379 collectionTime?: string; 1409 collectionTime?: string;
1380 /** 1410 /**
1381 * @description 1411 * @description
@@ -1421,6 +1451,11 @@ export interface InvoiceDto { @@ -1421,6 +1451,11 @@ export interface InvoiceDto {
1421 notes?: string; 1451 notes?: string;
1422 /** 1452 /**
1423 * @description 1453 * @description
  1454 + * 权限路径
  1455 + */
  1456 + path?: Array<string>;
  1457 + /**
  1458 + * @description
1424 * 收款单位 1459 * 收款单位
1425 */ 1460 */
1426 payee?: string; 1461 payee?: string;
@@ -1670,6 +1705,8 @@ export interface InvoiceRecordQueryRequest { @@ -1670,6 +1705,8 @@ export interface InvoiceRecordQueryRequest {
1670 * 联系人 1705 * 联系人
1671 */ 1706 */
1672 contactsLike?: string; 1707 contactsLike?: string;
  1708 + createByName?: string;
  1709 + createNameIn?: Array<string>;
1673 /** @format date-time */ 1710 /** @format date-time */
1674 createTimeGe?: string; 1711 createTimeGe?: string;
1675 /** @format date-time */ 1712 /** @format date-time */
@@ -2016,6 +2053,7 @@ export interface MeasureUnitListResRow { @@ -2016,6 +2053,7 @@ export interface MeasureUnitListResRow {
2016 } 2053 }
2017 2054
2018 export interface MessageQueryDTO { 2055 export interface MessageQueryDTO {
  2056 + createByName?: string;
2019 /** @format int32 */ 2057 /** @format int32 */
2020 current?: number; 2058 current?: number;
2021 /** @format int32 */ 2059 /** @format int32 */
@@ -2059,6 +2097,7 @@ export interface OrderAddVO { @@ -2059,6 +2097,7 @@ export interface OrderAddVO {
2059 export interface OrderAuditLogQueryVO { 2097 export interface OrderAuditLogQueryVO {
2060 /** @format int64 */ 2098 /** @format int64 */
2061 applyId?: number; 2099 applyId?: number;
  2100 + createByName?: string;
2062 /** @format int32 */ 2101 /** @format int32 */
2063 current?: number; 2102 current?: number;
2064 /** @format int32 */ 2103 /** @format int32 */
@@ -2103,6 +2142,7 @@ export interface OrderBaseFieldVO { @@ -2103,6 +2142,7 @@ export interface OrderBaseFieldVO {
2103 export interface OrderBaseInfoQueryVO { 2142 export interface OrderBaseInfoQueryVO {
2104 cnColor?: string; 2143 cnColor?: string;
2105 collection?: string; 2144 collection?: string;
  2145 + createByName?: string;
2106 /** @format int32 */ 2146 /** @format int32 */
2107 current?: number; 2147 current?: number;
2108 customerCode?: string; 2148 customerCode?: string;
@@ -2191,6 +2231,7 @@ export interface OrderFieldLockApplyQueryVO { @@ -2191,6 +2231,7 @@ export interface OrderFieldLockApplyQueryVO {
2191 applyUserId?: number; 2231 applyUserId?: number;
2192 /** @format int64 */ 2232 /** @format int64 */
2193 auditUserId?: number; 2233 auditUserId?: number;
  2234 + createByName?: string;
2194 /** @format int32 */ 2235 /** @format int32 */
2195 current?: number; 2236 current?: number;
2196 /** @format int32 */ 2237 /** @format int32 */
@@ -2260,6 +2301,7 @@ export interface OrderMainProDo { @@ -2260,6 +2301,7 @@ export interface OrderMainProDo {
2260 } 2301 }
2261 2302
2262 export interface OrderOptLogQueryVO { 2303 export interface OrderOptLogQueryVO {
  2304 + createByName?: string;
2263 /** @format int32 */ 2305 /** @format int32 */
2264 current?: number; 2306 current?: number;
2265 /** @format int32 */ 2307 /** @format int32 */
@@ -2523,6 +2565,11 @@ export interface ProcurePrintDto { @@ -2523,6 +2565,11 @@ export interface ProcurePrintDto {
2523 ids?: Array<number>; 2565 ids?: Array<number>;
2524 } 2566 }
2525 2567
  2568 +export interface ProcureReturnBillApprovalDto {
  2569 + ids?: Array<number>;
  2570 + transitionNotes?: string;
  2571 +}
  2572 +
2526 export interface ProcureReturnBillDto { 2573 export interface ProcureReturnBillDto {
2527 /** 2574 /**
2528 * @description 2575 * @description
@@ -2578,6 +2625,12 @@ export interface ProcureReturnBillDto { @@ -2578,6 +2625,12 @@ export interface ProcureReturnBillDto {
2578 /** 2625 /**
2579 * @description 2626 * @description
2580 * 发货仓库 2627 * 发货仓库
  2628 + * @format int32
  2629 + */
  2630 + sendStoreCode?: number;
  2631 + /**
  2632 + * @description
  2633 + * 发货仓库
2581 */ 2634 */
2582 sendStoreText?: string; 2635 sendStoreText?: string;
2583 /** 2636 /**
@@ -2591,6 +2644,7 @@ export interface ProcureReturnBillDto { @@ -2591,6 +2644,7 @@ export interface ProcureReturnBillDto {
2591 * @format int32 2644 * @format int32
2592 */ 2645 */
2593 statusCode?: number; 2646 statusCode?: number;
  2647 + statusNotes?: string;
2594 /** 2648 /**
2595 * @description 2649 * @description
2596 * 订单状态 2650 * 订单状态
@@ -2655,6 +2709,7 @@ export interface QueryBankStatementDto { @@ -2655,6 +2709,7 @@ export interface QueryBankStatementDto {
2655 * @format date 2709 * @format date
2656 */ 2710 */
2657 collectionDatetimeEnd?: string; 2711 collectionDatetimeEnd?: string;
  2712 + createByName?: string;
2658 /** @format int32 */ 2713 /** @format int32 */
2659 current?: number; 2714 current?: number;
2660 /** @format int32 */ 2715 /** @format int32 */
@@ -2691,6 +2746,7 @@ export interface QueryClientDto { @@ -2691,6 +2746,7 @@ export interface QueryClientDto {
2691 companyAddressLike?: string; 2746 companyAddressLike?: string;
2692 companyIds?: Array<number>; 2747 companyIds?: Array<number>;
2693 companyNameLike?: string; 2748 companyNameLike?: string;
  2749 + createByName?: string;
2694 createByUserIdIn?: Array<number>; 2750 createByUserIdIn?: Array<number>;
2695 /** @format date-time */ 2751 /** @format date-time */
2696 createTimeGe?: string; 2752 createTimeGe?: string;
@@ -2718,6 +2774,7 @@ export interface QueryCommunicationInfoDto { @@ -2718,6 +2774,7 @@ export interface QueryCommunicationInfoDto {
2718 /** @format int64 */ 2774 /** @format int64 */
2719 clientId?: number; 2775 clientId?: number;
2720 content?: string; 2776 content?: string;
  2777 + createByName?: string;
2721 /** @format int32 */ 2778 /** @format int32 */
2722 current?: number; 2779 current?: number;
2723 /** @format date-time */ 2780 /** @format date-time */
@@ -2776,6 +2833,7 @@ export interface QueryInvoiceDetailDto { @@ -2776,6 +2833,7 @@ export interface QueryInvoiceDetailDto {
2776 } 2833 }
2777 2834
2778 export interface QueryInvoiceProjectDto { 2835 export interface QueryInvoiceProjectDto {
  2836 + createByName?: string;
2779 /** @format int32 */ 2837 /** @format int32 */
2780 current?: number; 2838 current?: number;
2781 /** @format int32 */ 2839 /** @format int32 */
@@ -2795,6 +2853,8 @@ export interface QueryInvoiceRecordDto { @@ -2795,6 +2853,8 @@ export interface QueryInvoiceRecordDto {
2795 * 联系人 2853 * 联系人
2796 */ 2854 */
2797 contactsLike?: string; 2855 contactsLike?: string;
  2856 + createByName?: string;
  2857 + createNameIn?: Array<string>;
2798 /** @format date-time */ 2858 /** @format date-time */
2799 createTimeGe?: string; 2859 createTimeGe?: string;
2800 /** @format date-time */ 2860 /** @format date-time */
@@ -2989,6 +3049,7 @@ export interface QueryMainOrderDto { @@ -2989,6 +3049,7 @@ export interface QueryMainOrderDto {
2989 3049
2990 export interface QueryProcureReturnBillDto { 3050 export interface QueryProcureReturnBillDto {
2991 consigneeLike?: string; 3051 consigneeLike?: string;
  3052 + createByName?: string;
2992 createByNameLike?: string; 3053 createByNameLike?: string;
2993 /** @format date-time */ 3054 /** @format date-time */
2994 createTimeGe?: string; 3055 createTimeGe?: string;
@@ -3043,6 +3104,26 @@ export interface QueryReportFormsDto { @@ -3043,6 +3104,26 @@ export interface QueryReportFormsDto {
3043 statisticsMethod?: string; 3104 statisticsMethod?: string;
3044 } 3105 }
3045 3106
  3107 +export interface QueryUseOldInvoicingDto {
  3108 + createByName?: string;
  3109 + /** @format date-time */
  3110 + createTimeGe?: string;
  3111 + /** @format date-time */
  3112 + createTimeLe?: string;
  3113 + /** @format int32 */
  3114 + current?: number;
  3115 + /** @format int32 */
  3116 + end?: number;
  3117 + /** @format int64 */
  3118 + mainOrderId?: number;
  3119 + /** @format int32 */
  3120 + pageSize?: number;
  3121 + /** @format int32 */
  3122 + start?: number;
  3123 + /** @format int32 */
  3124 + total?: number;
  3125 +}
  3126 +
3046 export interface ReissueInvoiceDto { 3127 export interface ReissueInvoiceDto {
3047 /** @format int64 */ 3128 /** @format int64 */
3048 invoiceId?: number; 3129 invoiceId?: number;
@@ -3176,6 +3257,7 @@ export interface ResearchGroupListRequest { @@ -3176,6 +3257,7 @@ export interface ResearchGroupListRequest {
3176 * 公司名称 3257 * 公司名称
3177 */ 3258 */
3178 companyNameLike?: string; 3259 companyNameLike?: string;
  3260 + createByName?: string;
3179 /** @format int32 */ 3261 /** @format int32 */
3180 current?: number; 3262 current?: number;
3181 /** @format int32 */ 3263 /** @format int32 */
@@ -3586,6 +3668,7 @@ export interface SubOrder { @@ -3586,6 +3668,7 @@ export interface SubOrder {
3586 export interface SysLogQueryVO { 3668 export interface SysLogQueryVO {
3587 address?: string; 3669 address?: string;
3588 browser?: string; 3670 browser?: string;
  3671 + createByName?: string;
3589 /** @format int32 */ 3672 /** @format int32 */
3590 current?: number; 3673 current?: number;
3591 description?: string; 3674 description?: string;
@@ -3756,6 +3839,10 @@ export interface UpdatePwdVO { @@ -3756,6 +3839,10 @@ export interface UpdatePwdVO {
3756 userId?: number; 3839 userId?: number;
3757 } 3840 }
3758 3841
  3842 +export interface UseOldInvoicingDto {
  3843 + orderIdsText?: string;
  3844 +}
  3845 +
3759 export interface UserAddressListRequest { 3846 export interface UserAddressListRequest {
3760 keywords?: string; 3847 keywords?: string;
3761 /** @format int32 */ 3848 /** @format int32 */
@@ -3763,6 +3850,7 @@ export interface UserAddressListRequest { @@ -3763,6 +3850,7 @@ export interface UserAddressListRequest {
3763 } 3850 }
3764 3851
3765 export interface UserCenterInfoRequest { 3852 export interface UserCenterInfoRequest {
  3853 + createByName?: string;
3766 /** @format int32 */ 3854 /** @format int32 */
3767 current?: number; 3855 current?: number;
3768 /** @format int32 */ 3856 /** @format int32 */
@@ -3788,6 +3876,7 @@ export interface UserCenterInfoRequest { @@ -3788,6 +3876,7 @@ export interface UserCenterInfoRequest {
3788 } 3876 }
3789 3877
3790 export interface UserDetailRequest { 3878 export interface UserDetailRequest {
  3879 + createByName?: string;
3791 /** @format int32 */ 3880 /** @format int32 */
3792 current?: number; 3881 current?: number;
3793 /** @format int32 */ 3882 /** @format int32 */
@@ -3811,6 +3900,7 @@ export interface UserDetailRequest { @@ -3811,6 +3900,7 @@ export interface UserDetailRequest {
3811 } 3900 }
3812 3901
3813 export interface UserListRequest { 3902 export interface UserListRequest {
  3903 + createByName?: string;
3814 /** @format int32 */ 3904 /** @format int32 */
3815 current?: number; 3905 current?: number;
3816 /** 3906 /**
@@ -3986,26 +4076,50 @@ export interface InvoiceDetail { @@ -3986,26 +4076,50 @@ export interface InvoiceDetail {
3986 * @format double 4076 * @format double
3987 */ 4077 */
3988 price?: number; 4078 price?: number;
  4079 + /**
  4080 + * @description
  4081 + * 项目名称
  4082 + */
3989 projectName?: string; 4083 projectName?: string;
3990 - /** @format double */ 4084 + /**
  4085 + * @description
  4086 + * 数量
  4087 + * @format double
  4088 + */
3991 quantity?: number; 4089 quantity?: number;
3992 /** 4090 /**
3993 * @description 4091 * @description
3994 * 型号 4092 * 型号
3995 */ 4093 */
3996 specification?: string; 4094 specification?: string;
3997 - /** @format int64 */ 4095 + /**
  4096 + * @description
  4097 + * 关联子订单id
  4098 + * @format int64
  4099 + */
3998 subOrderId?: number; 4100 subOrderId?: number;
3999 - /** @format double */ 4101 + /**
  4102 + * @description
  4103 + * 税额
  4104 + * @format double
  4105 + */
4000 taxPrice?: number; 4106 taxPrice?: number;
4001 - /** @format double */ 4107 + /**
  4108 + * @description
  4109 + * 税率
  4110 + * @format double
  4111 + */
4002 taxRate?: number; 4112 taxRate?: number;
4003 /** 4113 /**
4004 * @description 4114 * @description
4005 - * 总价 4115 + * 总价(金额+税额)
4006 * @format double 4116 * @format double
4007 */ 4117 */
4008 totalPrice?: number; 4118 totalPrice?: number;
  4119 + /**
  4120 + * @description
  4121 + * 单位
  4122 + */
4009 unit?: string; 4123 unit?: string;
4010 } 4124 }
4011 4125
@@ -4180,6 +4294,7 @@ export interface SalesRechargePrepaymentRequest { @@ -4180,6 +4294,7 @@ export interface SalesRechargePrepaymentRequest {
4180 * 创建人员 4294 * 创建人员
4181 */ 4295 */
4182 createBy?: string; 4296 createBy?: string;
  4297 + createByName?: string;
4183 /** 4298 /**
4184 * @description 4299 * @description
4185 * 创建时间开始时间 4300 * 创建时间开始时间
src/services/request.ts
@@ -63,6 +63,7 @@ import type { @@ -63,6 +63,7 @@ import type {
63 MaterialUnitListRes, 63 MaterialUnitListRes,
64 MeasureUnitListRes, 64 MeasureUnitListRes,
65 MessageQueryDTO, 65 MessageQueryDTO,
  66 + ModelAndView,
66 OrderAddVO, 67 OrderAddVO,
67 OrderAuditLogQueryVO, 68 OrderAuditLogQueryVO,
68 OrderBaseInfoQueryVO, 69 OrderBaseInfoQueryVO,
@@ -82,6 +83,7 @@ import type { @@ -82,6 +83,7 @@ import type {
82 ProcureConvertProcureDto, 83 ProcureConvertProcureDto,
83 ProcureOrderDto, 84 ProcureOrderDto,
84 ProcurePrintDto, 85 ProcurePrintDto,
  86 + ProcureReturnBillApprovalDto,
85 ProcureReturnBillDto, 87 ProcureReturnBillDto,
86 ProductInformationDto, 88 ProductInformationDto,
87 QueryAfterSalesInfoSnapshotDto, 89 QueryAfterSalesInfoSnapshotDto,
@@ -97,6 +99,7 @@ import type { @@ -97,6 +99,7 @@ import type {
97 QueryMainOrderDto, 99 QueryMainOrderDto,
98 QueryProcureReturnBillDto, 100 QueryProcureReturnBillDto,
99 QueryReportFormsDto, 101 QueryReportFormsDto,
  102 + QueryUseOldInvoicingDto,
100 ReissueInvoiceDto, 103 ReissueInvoiceDto,
101 ResearchGroupAddRequest, 104 ResearchGroupAddRequest,
102 ResearchGroupDeleteRequest, 105 ResearchGroupDeleteRequest,
@@ -128,6 +131,7 @@ import type { @@ -128,6 +131,7 @@ import type {
128 UpdateHirePurchaseDto, 131 UpdateHirePurchaseDto,
129 UpdatePwdVO, 132 UpdatePwdVO,
130 UploadPaymentReceiptDTO, 133 UploadPaymentReceiptDTO,
  134 + UseOldInvoicingDto,
131 UserAddressListRequest, 135 UserAddressListRequest,
132 UserAddressSaveRequest, 136 UserAddressSaveRequest,
133 UserCenterInfoRequest, 137 UserCenterInfoRequest,
@@ -3227,9 +3231,7 @@ export interface GetErrorResponse { @@ -3227,9 +3231,7 @@ export interface GetErrorResponse {
3227 * @description 3231 * @description
3228 * OK 3232 * OK
3229 */ 3233 */
3230 - 200: {  
3231 - [propertyName: string]: any;  
3232 - }; 3234 + 200: ModelAndView;
3233 /** 3235 /**
3234 * @description 3236 * @description
3235 * Unauthorized 3237 * Unauthorized
@@ -3250,9 +3252,9 @@ export interface GetErrorResponse { @@ -3250,9 +3252,9 @@ export interface GetErrorResponse {
3250 export type GetErrorResponseSuccess = GetErrorResponse[200]; 3252 export type GetErrorResponseSuccess = GetErrorResponse[200];
3251 /** 3253 /**
3252 * @description 3254 * @description
3253 - * error 3255 + * errorHtml
3254 * @tags basic-error-controller 3256 * @tags basic-error-controller
3255 - * @produces * 3257 + * @produces text/html
3256 */ 3258 */
3257 export const getError = /* #__PURE__ */ (() => { 3259 export const getError = /* #__PURE__ */ (() => {
3258 const method = 'get'; 3260 const method = 'get';
@@ -3276,9 +3278,7 @@ export interface PutErrorResponse { @@ -3276,9 +3278,7 @@ export interface PutErrorResponse {
3276 * @description 3278 * @description
3277 * OK 3279 * OK
3278 */ 3280 */
3279 - 200: {  
3280 - [propertyName: string]: any;  
3281 - }; 3281 + 200: ModelAndView;
3282 /** 3282 /**
3283 * @description 3283 * @description
3284 * Created 3284 * Created
@@ -3304,9 +3304,9 @@ export interface PutErrorResponse { @@ -3304,9 +3304,9 @@ export interface PutErrorResponse {
3304 export type PutErrorResponseSuccess = PutErrorResponse[200]; 3304 export type PutErrorResponseSuccess = PutErrorResponse[200];
3305 /** 3305 /**
3306 * @description 3306 * @description
3307 - * error 3307 + * errorHtml
3308 * @tags basic-error-controller 3308 * @tags basic-error-controller
3309 - * @produces * 3309 + * @produces text/html
3310 * @consumes application/json 3310 * @consumes application/json
3311 */ 3311 */
3312 export const putError = /* #__PURE__ */ (() => { 3312 export const putError = /* #__PURE__ */ (() => {
@@ -3331,9 +3331,7 @@ export interface PostErrorResponse { @@ -3331,9 +3331,7 @@ export interface PostErrorResponse {
3331 * @description 3331 * @description
3332 * OK 3332 * OK
3333 */ 3333 */
3334 - 200: {  
3335 - [propertyName: string]: any;  
3336 - }; 3334 + 200: ModelAndView;
3337 /** 3335 /**
3338 * @description 3336 * @description
3339 * Created 3337 * Created
@@ -3359,9 +3357,9 @@ export interface PostErrorResponse { @@ -3359,9 +3357,9 @@ export interface PostErrorResponse {
3359 export type PostErrorResponseSuccess = PostErrorResponse[200]; 3357 export type PostErrorResponseSuccess = PostErrorResponse[200];
3360 /** 3358 /**
3361 * @description 3359 * @description
3362 - * error 3360 + * errorHtml
3363 * @tags basic-error-controller 3361 * @tags basic-error-controller
3364 - * @produces * 3362 + * @produces text/html
3365 * @consumes application/json 3363 * @consumes application/json
3366 */ 3364 */
3367 export const postError = /* #__PURE__ */ (() => { 3365 export const postError = /* #__PURE__ */ (() => {
@@ -3386,9 +3384,7 @@ export interface DeleteErrorResponse { @@ -3386,9 +3384,7 @@ export interface DeleteErrorResponse {
3386 * @description 3384 * @description
3387 * OK 3385 * OK
3388 */ 3386 */
3389 - 200: {  
3390 - [propertyName: string]: any;  
3391 - }; 3387 + 200: ModelAndView;
3392 /** 3388 /**
3393 * @description 3389 * @description
3394 * No Content 3390 * No Content
@@ -3409,9 +3405,9 @@ export interface DeleteErrorResponse { @@ -3409,9 +3405,9 @@ export interface DeleteErrorResponse {
3409 export type DeleteErrorResponseSuccess = DeleteErrorResponse[200]; 3405 export type DeleteErrorResponseSuccess = DeleteErrorResponse[200];
3410 /** 3406 /**
3411 * @description 3407 * @description
3412 - * error 3408 + * errorHtml
3413 * @tags basic-error-controller 3409 * @tags basic-error-controller
3414 - * @produces * 3410 + * @produces text/html
3415 */ 3411 */
3416 export const deleteError = /* #__PURE__ */ (() => { 3412 export const deleteError = /* #__PURE__ */ (() => {
3417 const method = 'delete'; 3413 const method = 'delete';
@@ -3435,9 +3431,7 @@ export interface OptionsErrorResponse { @@ -3435,9 +3431,7 @@ export interface OptionsErrorResponse {
3435 * @description 3431 * @description
3436 * OK 3432 * OK
3437 */ 3433 */
3438 - 200: {  
3439 - [propertyName: string]: any;  
3440 - }; 3434 + 200: ModelAndView;
3441 /** 3435 /**
3442 * @description 3436 * @description
3443 * No Content 3437 * No Content
@@ -3458,9 +3452,9 @@ export interface OptionsErrorResponse { @@ -3458,9 +3452,9 @@ export interface OptionsErrorResponse {
3458 export type OptionsErrorResponseSuccess = OptionsErrorResponse[200]; 3452 export type OptionsErrorResponseSuccess = OptionsErrorResponse[200];
3459 /** 3453 /**
3460 * @description 3454 * @description
3461 - * error 3455 + * errorHtml
3462 * @tags basic-error-controller 3456 * @tags basic-error-controller
3463 - * @produces * 3457 + * @produces text/html
3464 * @consumes application/json 3458 * @consumes application/json
3465 */ 3459 */
3466 export const optionsError = /* #__PURE__ */ (() => { 3460 export const optionsError = /* #__PURE__ */ (() => {
@@ -3485,9 +3479,7 @@ export interface HeadErrorResponse { @@ -3485,9 +3479,7 @@ export interface HeadErrorResponse {
3485 * @description 3479 * @description
3486 * OK 3480 * OK
3487 */ 3481 */
3488 - 200: {  
3489 - [propertyName: string]: any;  
3490 - }; 3482 + 200: ModelAndView;
3491 /** 3483 /**
3492 * @description 3484 * @description
3493 * No Content 3485 * No Content
@@ -3508,9 +3500,9 @@ export interface HeadErrorResponse { @@ -3508,9 +3500,9 @@ export interface HeadErrorResponse {
3508 export type HeadErrorResponseSuccess = HeadErrorResponse[200]; 3500 export type HeadErrorResponseSuccess = HeadErrorResponse[200];
3509 /** 3501 /**
3510 * @description 3502 * @description
3511 - * error 3503 + * errorHtml
3512 * @tags basic-error-controller 3504 * @tags basic-error-controller
3513 - * @produces * 3505 + * @produces text/html
3514 * @consumes application/json 3506 * @consumes application/json
3515 */ 3507 */
3516 export const headError = /* #__PURE__ */ (() => { 3508 export const headError = /* #__PURE__ */ (() => {
@@ -3535,9 +3527,7 @@ export interface PatchErrorResponse { @@ -3535,9 +3527,7 @@ export interface PatchErrorResponse {
3535 * @description 3527 * @description
3536 * OK 3528 * OK
3537 */ 3529 */
3538 - 200: {  
3539 - [propertyName: string]: any;  
3540 - }; 3530 + 200: ModelAndView;
3541 /** 3531 /**
3542 * @description 3532 * @description
3543 * No Content 3533 * No Content
@@ -3558,9 +3548,9 @@ export interface PatchErrorResponse { @@ -3558,9 +3548,9 @@ export interface PatchErrorResponse {
3558 export type PatchErrorResponseSuccess = PatchErrorResponse[200]; 3548 export type PatchErrorResponseSuccess = PatchErrorResponse[200];
3559 /** 3549 /**
3560 * @description 3550 * @description
3561 - * error 3551 + * errorHtml
3562 * @tags basic-error-controller 3552 * @tags basic-error-controller
3563 - * @produces * 3553 + * @produces text/html
3564 * @consumes application/json 3554 * @consumes application/json
3565 */ 3555 */
3566 export const patchError = /* #__PURE__ */ (() => { 3556 export const patchError = /* #__PURE__ */ (() => {
@@ -3579,6 +3569,76 @@ export const patchError = /* #__PURE__ */ (() =&gt; { @@ -3579,6 +3569,76 @@ export const patchError = /* #__PURE__ */ (() =&gt; {
3579 return request; 3569 return request;
3580 })(); 3570 })();
3581 3571
  3572 +/** @description request parameter type for postFileDirectDown */
  3573 +export interface PostFileDirectDownOption {
  3574 + /**
  3575 + * @description
  3576 + * urls
  3577 + */
  3578 + body: {
  3579 + /**
  3580 + @description
  3581 + urls */
  3582 + urls: Array<string>;
  3583 + };
  3584 +}
  3585 +
  3586 +/** @description response type for postFileDirectDown */
  3587 +export interface PostFileDirectDownResponse {
  3588 + /**
  3589 + * @description
  3590 + * OK
  3591 + */
  3592 + 200: any;
  3593 + /**
  3594 + * @description
  3595 + * Created
  3596 + */
  3597 + 201: any;
  3598 + /**
  3599 + * @description
  3600 + * Unauthorized
  3601 + */
  3602 + 401: any;
  3603 + /**
  3604 + * @description
  3605 + * Forbidden
  3606 + */
  3607 + 403: any;
  3608 + /**
  3609 + * @description
  3610 + * Not Found
  3611 + */
  3612 + 404: any;
  3613 +}
  3614 +
  3615 +export type PostFileDirectDownResponseSuccess = PostFileDirectDownResponse[200];
  3616 +/**
  3617 + * @description
  3618 + * directDownFile
  3619 + * @tags file-controller
  3620 + * @produces *
  3621 + * @consumes application/json
  3622 + */
  3623 +export const postFileDirectDown = /* #__PURE__ */ (() => {
  3624 + const method = 'post';
  3625 + const url = '/file/directDown';
  3626 + function request(
  3627 + option: PostFileDirectDownOption,
  3628 + ): Promise<PostFileDirectDownResponseSuccess> {
  3629 + return requester(request.url, {
  3630 + method: request.method,
  3631 + ...option,
  3632 + }) as unknown as Promise<PostFileDirectDownResponseSuccess>;
  3633 + }
  3634 +
  3635 + /** http method */
  3636 + request.method = method;
  3637 + /** request url */
  3638 + request.url = url;
  3639 + return request;
  3640 +})();
  3641 +
3582 /** @description request parameter type for postKingdeeRepCustomer */ 3642 /** @description request parameter type for postKingdeeRepCustomer */
3583 export interface PostKingdeeRepCustomerOption { 3643 export interface PostKingdeeRepCustomerOption {
3584 /** 3644 /**
@@ -4360,6 +4420,221 @@ export const postOfficialWebsiteUploadAliOss = /* #__PURE__ */ (() =&gt; { @@ -4360,6 +4420,221 @@ export const postOfficialWebsiteUploadAliOss = /* #__PURE__ */ (() =&gt; {
4360 return request; 4420 return request;
4361 })(); 4421 })();
4362 4422
  4423 +/** @description request parameter type for postOldInvoicingWhiteListBatchAdd */
  4424 +export interface PostOldInvoicingWhiteListBatchAddOption {
  4425 + /**
  4426 + * @description
  4427 + * useOldInvoicingDto
  4428 + */
  4429 + body: {
  4430 + /**
  4431 + @description
  4432 + useOldInvoicingDto */
  4433 + useOldInvoicingDto: UseOldInvoicingDto;
  4434 + };
  4435 +}
  4436 +
  4437 +/** @description response type for postOldInvoicingWhiteListBatchAdd */
  4438 +export interface PostOldInvoicingWhiteListBatchAddResponse {
  4439 + /**
  4440 + * @description
  4441 + * OK
  4442 + */
  4443 + 200: ServerResult;
  4444 + /**
  4445 + * @description
  4446 + * Created
  4447 + */
  4448 + 201: any;
  4449 + /**
  4450 + * @description
  4451 + * Unauthorized
  4452 + */
  4453 + 401: any;
  4454 + /**
  4455 + * @description
  4456 + * Forbidden
  4457 + */
  4458 + 403: any;
  4459 + /**
  4460 + * @description
  4461 + * Not Found
  4462 + */
  4463 + 404: any;
  4464 +}
  4465 +
  4466 +export type PostOldInvoicingWhiteListBatchAddResponseSuccess =
  4467 + PostOldInvoicingWhiteListBatchAddResponse[200];
  4468 +/**
  4469 + * @description
  4470 + * 批量添加
  4471 + * @tags 旧开票白名单
  4472 + * @produces *
  4473 + * @consumes application/json
  4474 + */
  4475 +export const postOldInvoicingWhiteListBatchAdd = /* #__PURE__ */ (() => {
  4476 + const method = 'post';
  4477 + const url = '/oldInvoicingWhiteList/batchAdd';
  4478 + function request(
  4479 + option: PostOldInvoicingWhiteListBatchAddOption,
  4480 + ): Promise<PostOldInvoicingWhiteListBatchAddResponseSuccess> {
  4481 + return requester(request.url, {
  4482 + method: request.method,
  4483 + ...option,
  4484 + }) as unknown as Promise<PostOldInvoicingWhiteListBatchAddResponseSuccess>;
  4485 + }
  4486 +
  4487 + /** http method */
  4488 + request.method = method;
  4489 + /** request url */
  4490 + request.url = url;
  4491 + return request;
  4492 +})();
  4493 +
  4494 +/** @description request parameter type for postOldInvoicingWhiteListPage */
  4495 +export interface PostOldInvoicingWhiteListPageOption {
  4496 + /**
  4497 + * @description
  4498 + * dto
  4499 + */
  4500 + body: {
  4501 + /**
  4502 + @description
  4503 + dto */
  4504 + dto: QueryUseOldInvoicingDto;
  4505 + };
  4506 +}
  4507 +
  4508 +/** @description response type for postOldInvoicingWhiteListPage */
  4509 +export interface PostOldInvoicingWhiteListPageResponse {
  4510 + /**
  4511 + * @description
  4512 + * OK
  4513 + */
  4514 + 200: ServerResult;
  4515 + /**
  4516 + * @description
  4517 + * Created
  4518 + */
  4519 + 201: any;
  4520 + /**
  4521 + * @description
  4522 + * Unauthorized
  4523 + */
  4524 + 401: any;
  4525 + /**
  4526 + * @description
  4527 + * Forbidden
  4528 + */
  4529 + 403: any;
  4530 + /**
  4531 + * @description
  4532 + * Not Found
  4533 + */
  4534 + 404: any;
  4535 +}
  4536 +
  4537 +export type PostOldInvoicingWhiteListPageResponseSuccess =
  4538 + PostOldInvoicingWhiteListPageResponse[200];
  4539 +/**
  4540 + * @description
  4541 + * 查询
  4542 + * @tags 旧开票白名单
  4543 + * @produces *
  4544 + * @consumes application/json
  4545 + */
  4546 +export const postOldInvoicingWhiteListPage = /* #__PURE__ */ (() => {
  4547 + const method = 'post';
  4548 + const url = '/oldInvoicingWhiteList/page';
  4549 + function request(
  4550 + option: PostOldInvoicingWhiteListPageOption,
  4551 + ): Promise<PostOldInvoicingWhiteListPageResponseSuccess> {
  4552 + return requester(request.url, {
  4553 + method: request.method,
  4554 + ...option,
  4555 + }) as unknown as Promise<PostOldInvoicingWhiteListPageResponseSuccess>;
  4556 + }
  4557 +
  4558 + /** http method */
  4559 + request.method = method;
  4560 + /** request url */
  4561 + request.url = url;
  4562 + return request;
  4563 +})();
  4564 +
  4565 +/** @description request parameter type for postOldInvoicingWhiteListRemove */
  4566 +export interface PostOldInvoicingWhiteListRemoveOption {
  4567 + /**
  4568 + * @description
  4569 + * mainOrderId
  4570 + * @format int64
  4571 + */
  4572 + query?: {
  4573 + /**
  4574 + @description
  4575 + mainOrderId
  4576 + @format int64 */
  4577 + mainOrderId?: number;
  4578 + };
  4579 +}
  4580 +
  4581 +/** @description response type for postOldInvoicingWhiteListRemove */
  4582 +export interface PostOldInvoicingWhiteListRemoveResponse {
  4583 + /**
  4584 + * @description
  4585 + * OK
  4586 + */
  4587 + 200: ServerResult;
  4588 + /**
  4589 + * @description
  4590 + * Created
  4591 + */
  4592 + 201: any;
  4593 + /**
  4594 + * @description
  4595 + * Unauthorized
  4596 + */
  4597 + 401: any;
  4598 + /**
  4599 + * @description
  4600 + * Forbidden
  4601 + */
  4602 + 403: any;
  4603 + /**
  4604 + * @description
  4605 + * Not Found
  4606 + */
  4607 + 404: any;
  4608 +}
  4609 +
  4610 +export type PostOldInvoicingWhiteListRemoveResponseSuccess =
  4611 + PostOldInvoicingWhiteListRemoveResponse[200];
  4612 +/**
  4613 + * @description
  4614 + * 移除
  4615 + * @tags 旧开票白名单
  4616 + * @produces *
  4617 + * @consumes application/json
  4618 + */
  4619 +export const postOldInvoicingWhiteListRemove = /* #__PURE__ */ (() => {
  4620 + const method = 'post';
  4621 + const url = '/oldInvoicingWhiteList/remove';
  4622 + function request(
  4623 + option?: PostOldInvoicingWhiteListRemoveOption,
  4624 + ): Promise<PostOldInvoicingWhiteListRemoveResponseSuccess> {
  4625 + return requester(request.url, {
  4626 + method: request.method,
  4627 + ...option,
  4628 + }) as unknown as Promise<PostOldInvoicingWhiteListRemoveResponseSuccess>;
  4629 + }
  4630 +
  4631 + /** http method */
  4632 + request.method = method;
  4633 + /** request url */
  4634 + request.url = url;
  4635 + return request;
  4636 +})();
  4637 +
4363 /** @description request parameter type for postOrderErpApplyList */ 4638 /** @description request parameter type for postOrderErpApplyList */
4364 export interface PostOrderErpApplyListOption { 4639 export interface PostOrderErpApplyListOption {
4365 /** 4640 /**
@@ -10609,8 +10884,8 @@ export const postProcureReturnBillAdd = /* #__PURE__ */ (() =&gt; { @@ -10609,8 +10884,8 @@ export const postProcureReturnBillAdd = /* #__PURE__ */ (() =&gt; {
10609 return request; 10884 return request;
10610 })(); 10885 })();
10611 10886
10612 -/** @description request parameter type for postProcureReturnBillModify */  
10613 -export interface PostProcureReturnBillModifyOption { 10887 +/** @description request parameter type for postProcureReturnBillAddOrModify */
  10888 +export interface PostProcureReturnBillAddOrModifyOption {
10614 /** 10889 /**
10615 * @description 10890 * @description
10616 * dto 10891 * dto
@@ -10623,8 +10898,8 @@ export interface PostProcureReturnBillModifyOption { @@ -10623,8 +10898,8 @@ export interface PostProcureReturnBillModifyOption {
10623 }; 10898 };
10624 } 10899 }
10625 10900
10626 -/** @description response type for postProcureReturnBillModify */  
10627 -export interface PostProcureReturnBillModifyResponse { 10901 +/** @description response type for postProcureReturnBillAddOrModify */
  10902 +export interface PostProcureReturnBillAddOrModifyResponse {
10628 /** 10903 /**
10629 * @description 10904 * @description
10630 * OK 10905 * OK
@@ -10652,25 +10927,25 @@ export interface PostProcureReturnBillModifyResponse { @@ -10652,25 +10927,25 @@ export interface PostProcureReturnBillModifyResponse {
10652 404: any; 10927 404: any;
10653 } 10928 }
10654 10929
10655 -export type PostProcureReturnBillModifyResponseSuccess =  
10656 - PostProcureReturnBillModifyResponse[200]; 10930 +export type PostProcureReturnBillAddOrModifyResponseSuccess =
  10931 + PostProcureReturnBillAddOrModifyResponse[200];
10657 /** 10932 /**
10658 * @description 10933 * @description
10659 - * 修改 10934 + * 添加或修改
10660 * @tags procure-return-bill-controller 10935 * @tags procure-return-bill-controller
10661 * @produces * 10936 * @produces *
10662 * @consumes application/json 10937 * @consumes application/json
10663 */ 10938 */
10664 -export const postProcureReturnBillModify = /* #__PURE__ */ (() => { 10939 +export const postProcureReturnBillAddOrModify = /* #__PURE__ */ (() => {
10665 const method = 'post'; 10940 const method = 'post';
10666 - const url = '/procureReturnBill/modify'; 10941 + const url = '/procureReturnBill/addOrModify';
10667 function request( 10942 function request(
10668 - option: PostProcureReturnBillModifyOption,  
10669 - ): Promise<PostProcureReturnBillModifyResponseSuccess> { 10943 + option: PostProcureReturnBillAddOrModifyOption,
  10944 + ): Promise<PostProcureReturnBillAddOrModifyResponseSuccess> {
10670 return requester(request.url, { 10945 return requester(request.url, {
10671 method: request.method, 10946 method: request.method,
10672 ...option, 10947 ...option,
10673 - }) as unknown as Promise<PostProcureReturnBillModifyResponseSuccess>; 10948 + }) as unknown as Promise<PostProcureReturnBillAddOrModifyResponseSuccess>;
10674 } 10949 }
10675 10950
10676 /** http method */ 10951 /** http method */
@@ -10680,8 +10955,8 @@ export const postProcureReturnBillModify = /* #__PURE__ */ (() =&gt; { @@ -10680,8 +10955,8 @@ export const postProcureReturnBillModify = /* #__PURE__ */ (() =&gt; {
10680 return request; 10955 return request;
10681 })(); 10956 })();
10682 10957
10683 -/** @description request parameter type for postProcureReturnBillPage */  
10684 -export interface PostProcureReturnBillPageOption { 10958 +/** @description request parameter type for postProcureReturnBillAudit */
  10959 +export interface PostProcureReturnBillAuditOption {
10685 /** 10960 /**
10686 * @description 10961 * @description
10687 * dto 10962 * dto
@@ -10690,12 +10965,225 @@ export interface PostProcureReturnBillPageOption { @@ -10690,12 +10965,225 @@ export interface PostProcureReturnBillPageOption {
10690 /** 10965 /**
10691 @description 10966 @description
10692 dto */ 10967 dto */
10693 - dto: QueryProcureReturnBillDto; 10968 + dto: ProcureReturnBillApprovalDto;
10694 }; 10969 };
10695 } 10970 }
10696 10971
10697 -/** @description response type for postProcureReturnBillPage */  
10698 -export interface PostProcureReturnBillPageResponse { 10972 +/** @description response type for postProcureReturnBillAudit */
  10973 +export interface PostProcureReturnBillAuditResponse {
  10974 + /**
  10975 + * @description
  10976 + * OK
  10977 + */
  10978 + 200: ServerResult;
  10979 + /**
  10980 + * @description
  10981 + * Created
  10982 + */
  10983 + 201: any;
  10984 + /**
  10985 + * @description
  10986 + * Unauthorized
  10987 + */
  10988 + 401: any;
  10989 + /**
  10990 + * @description
  10991 + * Forbidden
  10992 + */
  10993 + 403: any;
  10994 + /**
  10995 + * @description
  10996 + * Not Found
  10997 + */
  10998 + 404: any;
  10999 +}
  11000 +
  11001 +export type PostProcureReturnBillAuditResponseSuccess =
  11002 + PostProcureReturnBillAuditResponse[200];
  11003 +/**
  11004 + * @description
  11005 + * 审核
  11006 + * @tags procure-return-bill-controller
  11007 + * @produces *
  11008 + * @consumes application/json
  11009 + */
  11010 +export const postProcureReturnBillAudit = /* #__PURE__ */ (() => {
  11011 + const method = 'post';
  11012 + const url = '/procureReturnBill/audit';
  11013 + function request(
  11014 + option: PostProcureReturnBillAuditOption,
  11015 + ): Promise<PostProcureReturnBillAuditResponseSuccess> {
  11016 + return requester(request.url, {
  11017 + method: request.method,
  11018 + ...option,
  11019 + }) as unknown as Promise<PostProcureReturnBillAuditResponseSuccess>;
  11020 + }
  11021 +
  11022 + /** http method */
  11023 + request.method = method;
  11024 + /** request url */
  11025 + request.url = url;
  11026 + return request;
  11027 +})();
  11028 +
  11029 +/** @description request parameter type for postProcureReturnBillExport */
  11030 +export interface PostProcureReturnBillExportOption {
  11031 + /**
  11032 + * @description
  11033 + * dto
  11034 + */
  11035 + body: {
  11036 + /**
  11037 + @description
  11038 + dto */
  11039 + dto: QueryProcureReturnBillDto;
  11040 + };
  11041 +}
  11042 +
  11043 +/** @description response type for postProcureReturnBillExport */
  11044 +export interface PostProcureReturnBillExportResponse {
  11045 + /**
  11046 + * @description
  11047 + * OK
  11048 + */
  11049 + 200: any;
  11050 + /**
  11051 + * @description
  11052 + * Created
  11053 + */
  11054 + 201: any;
  11055 + /**
  11056 + * @description
  11057 + * Unauthorized
  11058 + */
  11059 + 401: any;
  11060 + /**
  11061 + * @description
  11062 + * Forbidden
  11063 + */
  11064 + 403: any;
  11065 + /**
  11066 + * @description
  11067 + * Not Found
  11068 + */
  11069 + 404: any;
  11070 +}
  11071 +
  11072 +export type PostProcureReturnBillExportResponseSuccess =
  11073 + PostProcureReturnBillExportResponse[200];
  11074 +/**
  11075 + * @description
  11076 + * 导出客户信息
  11077 + * @tags procure-return-bill-controller
  11078 + * @produces *
  11079 + * @consumes application/json
  11080 + */
  11081 +export const postProcureReturnBillExport = /* #__PURE__ */ (() => {
  11082 + const method = 'post';
  11083 + const url = '/procureReturnBill/export';
  11084 + function request(
  11085 + option: PostProcureReturnBillExportOption,
  11086 + ): Promise<PostProcureReturnBillExportResponseSuccess> {
  11087 + return requester(request.url, {
  11088 + method: request.method,
  11089 + ...option,
  11090 + }) as unknown as Promise<PostProcureReturnBillExportResponseSuccess>;
  11091 + }
  11092 +
  11093 + /** http method */
  11094 + request.method = method;
  11095 + /** request url */
  11096 + request.url = url;
  11097 + return request;
  11098 +})();
  11099 +
  11100 +/** @description request parameter type for postProcureReturnBillModify */
  11101 +export interface PostProcureReturnBillModifyOption {
  11102 + /**
  11103 + * @description
  11104 + * dto
  11105 + */
  11106 + body: {
  11107 + /**
  11108 + @description
  11109 + dto */
  11110 + dto: ProcureReturnBillDto;
  11111 + };
  11112 +}
  11113 +
  11114 +/** @description response type for postProcureReturnBillModify */
  11115 +export interface PostProcureReturnBillModifyResponse {
  11116 + /**
  11117 + * @description
  11118 + * OK
  11119 + */
  11120 + 200: ServerResult;
  11121 + /**
  11122 + * @description
  11123 + * Created
  11124 + */
  11125 + 201: any;
  11126 + /**
  11127 + * @description
  11128 + * Unauthorized
  11129 + */
  11130 + 401: any;
  11131 + /**
  11132 + * @description
  11133 + * Forbidden
  11134 + */
  11135 + 403: any;
  11136 + /**
  11137 + * @description
  11138 + * Not Found
  11139 + */
  11140 + 404: any;
  11141 +}
  11142 +
  11143 +export type PostProcureReturnBillModifyResponseSuccess =
  11144 + PostProcureReturnBillModifyResponse[200];
  11145 +/**
  11146 + * @description
  11147 + * 修改
  11148 + * @tags procure-return-bill-controller
  11149 + * @produces *
  11150 + * @consumes application/json
  11151 + */
  11152 +export const postProcureReturnBillModify = /* #__PURE__ */ (() => {
  11153 + const method = 'post';
  11154 + const url = '/procureReturnBill/modify';
  11155 + function request(
  11156 + option: PostProcureReturnBillModifyOption,
  11157 + ): Promise<PostProcureReturnBillModifyResponseSuccess> {
  11158 + return requester(request.url, {
  11159 + method: request.method,
  11160 + ...option,
  11161 + }) as unknown as Promise<PostProcureReturnBillModifyResponseSuccess>;
  11162 + }
  11163 +
  11164 + /** http method */
  11165 + request.method = method;
  11166 + /** request url */
  11167 + request.url = url;
  11168 + return request;
  11169 +})();
  11170 +
  11171 +/** @description request parameter type for postProcureReturnBillPage */
  11172 +export interface PostProcureReturnBillPageOption {
  11173 + /**
  11174 + * @description
  11175 + * dto
  11176 + */
  11177 + body: {
  11178 + /**
  11179 + @description
  11180 + dto */
  11181 + dto: QueryProcureReturnBillDto;
  11182 + };
  11183 +}
  11184 +
  11185 +/** @description response type for postProcureReturnBillPage */
  11186 +export interface PostProcureReturnBillPageResponse {
10699 /** 11187 /**
10700 * @description 11188 * @description
10701 * OK 11189 * OK
@@ -10751,6 +11239,150 @@ export const postProcureReturnBillPage = /* #__PURE__ */ (() =&gt; { @@ -10751,6 +11239,150 @@ export const postProcureReturnBillPage = /* #__PURE__ */ (() =&gt; {
10751 return request; 11239 return request;
10752 })(); 11240 })();
10753 11241
  11242 +/** @description request parameter type for postProcureReturnBillRemove */
  11243 +export interface PostProcureReturnBillRemoveOption {
  11244 + /**
  11245 + * @description
  11246 + * id
  11247 + * @format int64
  11248 + */
  11249 + query: {
  11250 + /**
  11251 + @description
  11252 + id
  11253 + @format int64 */
  11254 + id: number;
  11255 + };
  11256 +}
  11257 +
  11258 +/** @description response type for postProcureReturnBillRemove */
  11259 +export interface PostProcureReturnBillRemoveResponse {
  11260 + /**
  11261 + * @description
  11262 + * OK
  11263 + */
  11264 + 200: ServerResult;
  11265 + /**
  11266 + * @description
  11267 + * Created
  11268 + */
  11269 + 201: any;
  11270 + /**
  11271 + * @description
  11272 + * Unauthorized
  11273 + */
  11274 + 401: any;
  11275 + /**
  11276 + * @description
  11277 + * Forbidden
  11278 + */
  11279 + 403: any;
  11280 + /**
  11281 + * @description
  11282 + * Not Found
  11283 + */
  11284 + 404: any;
  11285 +}
  11286 +
  11287 +export type PostProcureReturnBillRemoveResponseSuccess =
  11288 + PostProcureReturnBillRemoveResponse[200];
  11289 +/**
  11290 + * @description
  11291 + * 删除
  11292 + * @tags procure-return-bill-controller
  11293 + * @produces *
  11294 + * @consumes application/json
  11295 + */
  11296 +export const postProcureReturnBillRemove = /* #__PURE__ */ (() => {
  11297 + const method = 'post';
  11298 + const url = '/procureReturnBill/remove';
  11299 + function request(
  11300 + option: PostProcureReturnBillRemoveOption,
  11301 + ): Promise<PostProcureReturnBillRemoveResponseSuccess> {
  11302 + return requester(request.url, {
  11303 + method: request.method,
  11304 + ...option,
  11305 + }) as unknown as Promise<PostProcureReturnBillRemoveResponseSuccess>;
  11306 + }
  11307 +
  11308 + /** http method */
  11309 + request.method = method;
  11310 + /** request url */
  11311 + request.url = url;
  11312 + return request;
  11313 +})();
  11314 +
  11315 +/** @description request parameter type for postProcureReturnBillSend */
  11316 +export interface PostProcureReturnBillSendOption {
  11317 + /**
  11318 + * @description
  11319 + * dto
  11320 + */
  11321 + body: {
  11322 + /**
  11323 + @description
  11324 + dto */
  11325 + dto: ProcureReturnBillApprovalDto;
  11326 + };
  11327 +}
  11328 +
  11329 +/** @description response type for postProcureReturnBillSend */
  11330 +export interface PostProcureReturnBillSendResponse {
  11331 + /**
  11332 + * @description
  11333 + * OK
  11334 + */
  11335 + 200: ServerResult;
  11336 + /**
  11337 + * @description
  11338 + * Created
  11339 + */
  11340 + 201: any;
  11341 + /**
  11342 + * @description
  11343 + * Unauthorized
  11344 + */
  11345 + 401: any;
  11346 + /**
  11347 + * @description
  11348 + * Forbidden
  11349 + */
  11350 + 403: any;
  11351 + /**
  11352 + * @description
  11353 + * Not Found
  11354 + */
  11355 + 404: any;
  11356 +}
  11357 +
  11358 +export type PostProcureReturnBillSendResponseSuccess =
  11359 + PostProcureReturnBillSendResponse[200];
  11360 +/**
  11361 + * @description
  11362 + * 发货
  11363 + * @tags procure-return-bill-controller
  11364 + * @produces *
  11365 + * @consumes application/json
  11366 + */
  11367 +export const postProcureReturnBillSend = /* #__PURE__ */ (() => {
  11368 + const method = 'post';
  11369 + const url = '/procureReturnBill/send';
  11370 + function request(
  11371 + option: PostProcureReturnBillSendOption,
  11372 + ): Promise<PostProcureReturnBillSendResponseSuccess> {
  11373 + return requester(request.url, {
  11374 + method: request.method,
  11375 + ...option,
  11376 + }) as unknown as Promise<PostProcureReturnBillSendResponseSuccess>;
  11377 + }
  11378 +
  11379 + /** http method */
  11380 + request.method = method;
  11381 + /** request url */
  11382 + request.url = url;
  11383 + return request;
  11384 +})();
  11385 +
10754 /** @description request parameter type for postResearchGroupMemberRequestsAdd */ 11386 /** @description request parameter type for postResearchGroupMemberRequestsAdd */
10755 export interface PostResearchGroupMemberRequestsAddOption { 11387 export interface PostResearchGroupMemberRequestsAddOption {
10756 /** 11388 /**
@@ -11586,6 +12218,77 @@ export const postResearchGroupsList = /* #__PURE__ */ (() =&gt; { @@ -11586,6 +12218,77 @@ export const postResearchGroupsList = /* #__PURE__ */ (() =&gt; {
11586 return request; 12218 return request;
11587 })(); 12219 })();
11588 12220
  12221 +/** @description request parameter type for postResearchGroupsNameSet */
  12222 +export interface PostResearchGroupsNameSetOption {
  12223 + /**
  12224 + * @description
  12225 + * request
  12226 + */
  12227 + body: {
  12228 + /**
  12229 + @description
  12230 + request */
  12231 + request: ResearchGroupListRequest;
  12232 + };
  12233 +}
  12234 +
  12235 +/** @description response type for postResearchGroupsNameSet */
  12236 +export interface PostResearchGroupsNameSetResponse {
  12237 + /**
  12238 + * @description
  12239 + * OK
  12240 + */
  12241 + 200: ServerResult;
  12242 + /**
  12243 + * @description
  12244 + * Created
  12245 + */
  12246 + 201: any;
  12247 + /**
  12248 + * @description
  12249 + * Unauthorized
  12250 + */
  12251 + 401: any;
  12252 + /**
  12253 + * @description
  12254 + * Forbidden
  12255 + */
  12256 + 403: any;
  12257 + /**
  12258 + * @description
  12259 + * Not Found
  12260 + */
  12261 + 404: any;
  12262 +}
  12263 +
  12264 +export type PostResearchGroupsNameSetResponseSuccess =
  12265 + PostResearchGroupsNameSetResponse[200];
  12266 +/**
  12267 + * @description
  12268 + * 课题组名称列表
  12269 + * @tags research-groups-controller
  12270 + * @produces *
  12271 + * @consumes application/json
  12272 + */
  12273 +export const postResearchGroupsNameSet = /* #__PURE__ */ (() => {
  12274 + const method = 'post';
  12275 + const url = '/research/groups/nameSet';
  12276 + function request(
  12277 + option: PostResearchGroupsNameSetOption,
  12278 + ): Promise<PostResearchGroupsNameSetResponseSuccess> {
  12279 + return requester(request.url, {
  12280 + method: request.method,
  12281 + ...option,
  12282 + }) as unknown as Promise<PostResearchGroupsNameSetResponseSuccess>;
  12283 + }
  12284 +
  12285 + /** http method */
  12286 + request.method = method;
  12287 + /** request url */
  12288 + request.url = url;
  12289 + return request;
  12290 +})();
  12291 +
11589 /** @description request parameter type for postServiceBankStatementDeleteBankStatement */ 12292 /** @description request parameter type for postServiceBankStatementDeleteBankStatement */
11590 export interface PostServiceBankStatementDeleteBankStatementOption { 12293 export interface PostServiceBankStatementDeleteBankStatementOption {
11591 /** 12294 /**
@@ -12832,8 +13535,8 @@ export const postServiceConstTradeStatus = /* #__PURE__ */ (() =&gt; { @@ -12832,8 +13535,8 @@ export const postServiceConstTradeStatus = /* #__PURE__ */ (() =&gt; {
12832 13535
12833 /** @description request parameter type for getServiceInvoiceListInvoiceProject */ 13536 /** @description request parameter type for getServiceInvoiceListInvoiceProject */
12834 export interface GetServiceInvoiceListInvoiceProjectOption { 13537 export interface GetServiceInvoiceListInvoiceProjectOption {
12835 - /** @format int32 */  
12836 query?: { 13538 query?: {
  13539 + createByName?: string;
12837 /** 13540 /**
12838 @format int32 */ 13541 @format int32 */
12839 current?: number; 13542 current?: number;
@@ -13951,6 +14654,71 @@ export const postServiceInvoiceImportInvoiceDetails = /* #__PURE__ */ (() =&gt; { @@ -13951,6 +14654,71 @@ export const postServiceInvoiceImportInvoiceDetails = /* #__PURE__ */ (() =&gt; {
13951 return request; 14654 return request;
13952 })(); 14655 })();
13953 14656
  14657 +/** @description request parameter type for getServiceInvoiceInvoiceProjectPage */
  14658 +export interface GetServiceInvoiceInvoiceProjectPageOption {
  14659 + /**
  14660 + * @description
  14661 + * dto
  14662 + */
  14663 + body: {
  14664 + /**
  14665 + @description
  14666 + dto */
  14667 + dto: QueryInvoiceProjectDto;
  14668 + };
  14669 +}
  14670 +
  14671 +/** @description response type for getServiceInvoiceInvoiceProjectPage */
  14672 +export interface GetServiceInvoiceInvoiceProjectPageResponse {
  14673 + /**
  14674 + * @description
  14675 + * OK
  14676 + */
  14677 + 200: ServerResult;
  14678 + /**
  14679 + * @description
  14680 + * Unauthorized
  14681 + */
  14682 + 401: any;
  14683 + /**
  14684 + * @description
  14685 + * Forbidden
  14686 + */
  14687 + 403: any;
  14688 + /**
  14689 + * @description
  14690 + * Not Found
  14691 + */
  14692 + 404: any;
  14693 +}
  14694 +
  14695 +export type GetServiceInvoiceInvoiceProjectPageResponseSuccess =
  14696 + GetServiceInvoiceInvoiceProjectPageResponse[200];
  14697 +/**
  14698 + * @description
  14699 + * 查询开票项目
  14700 + * @tags 发票
  14701 + * @produces *
  14702 + */
  14703 +export const getServiceInvoiceInvoiceProjectPage = /* #__PURE__ */ (() => {
  14704 + const method = 'get';
  14705 + const url = '/service/invoice/invoiceProjectPage';
  14706 + function request(
  14707 + option: GetServiceInvoiceInvoiceProjectPageOption,
  14708 + ): Promise<GetServiceInvoiceInvoiceProjectPageResponseSuccess> {
  14709 + return requester(request.url, {
  14710 + method: request.method,
  14711 + ...option,
  14712 + }) as unknown as Promise<GetServiceInvoiceInvoiceProjectPageResponseSuccess>;
  14713 + }
  14714 +
  14715 + /** http method */
  14716 + request.method = method;
  14717 + /** request url */
  14718 + request.url = url;
  14719 + return request;
  14720 +})();
  14721 +
13954 /** @description request parameter type for postServiceInvoiceInvoiceWriteOff */ 14722 /** @description request parameter type for postServiceInvoiceInvoiceWriteOff */
13955 export interface PostServiceInvoiceInvoiceWriteOffOption { 14723 export interface PostServiceInvoiceInvoiceWriteOffOption {
13956 /** 14724 /**