Commit 3b242eff9fa8a74e41d636ae99a1e2e16f879dbb

Authored by zhongnanhuang
2 parents 1973d190 3759cd10
.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 核销
@@ -129,7 +130,7 @@ const InvoiceRecord = () =&gt; { @@ -129,7 +130,7 @@ const InvoiceRecord = () =&gt; {
129 type="link" 130 type="link"
130 onClick={() => { 131 onClick={() => {
131 setInvoiceVerificationVisible(true); 132 setInvoiceVerificationVisible(true);
132 - setInvoiceId(record.invoiceId); 133 + setInvoiceId(record.id);
133 }} 134 }}
134 > 135 >
135 查看 136 查看
src/pages/Invoice/InvoiceRecord/components/InvoiceRecordDetailModal.tsx
@@ -21,7 +21,7 @@ import { @@ -21,7 +21,7 @@ import {
21 import { Button, Divider, Form, Space, message } from 'antd'; 21 import { Button, Divider, Form, Space, message } from 'antd';
22 import { useEffect, useRef, useState } from 'react'; 22 import { useEffect, useRef, useState } from 'react';
23 23
24 -export default ({ id, setVisible }) => { 24 +export default ({ id, setVisible, reloadTable }) => {
25 const [readOnly, setReadOnly] = useState(true); 25 const [readOnly, setReadOnly] = useState(true);
26 const [detailTableData, setDetailTableData] = useState([]); 26 const [detailTableData, setDetailTableData] = useState([]);
27 const [payees, setPayees] = useState([]); 27 const [payees, setPayees] = useState([]);
@@ -124,6 +124,7 @@ export default ({ id, setVisible }) =&gt; { @@ -124,6 +124,7 @@ export default ({ id, setVisible }) =&gt; {
124 message.success('提交成功'); 124 message.success('提交成功');
125 } 125 }
126 setVisible(false); 126 setVisible(false);
  127 + reloadTable();
127 return true; 128 return true;
128 }} 129 }}
129 > 130 >
@@ -168,6 +169,7 @@ export default ({ id, setVisible }) =&gt; { @@ -168,6 +169,7 @@ export default ({ id, setVisible }) =&gt; {
168 }, 169 },
169 }); 170 });
170 if (result.result === RESPONSE_CODE.SUCCESS) { 171 if (result.result === RESPONSE_CODE.SUCCESS) {
  172 + reloadTable();
171 message.success('提交成功'); 173 message.success('提交成功');
172 } 174 }
173 return true; 175 return true;
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: 'status',
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="待开票列表"
@@ -412,6 +474,9 @@ const InvoiceRecord = () =&gt; { @@ -412,6 +474,9 @@ const InvoiceRecord = () =&gt; {
412 key="detail" 474 key="detail"
413 id={invoiceRecord.id} 475 id={invoiceRecord.id}
414 setVisible={setInvoiceRecordDetailVisible} 476 setVisible={setInvoiceRecordDetailVisible}
  477 + reloadTable={() => {
  478 + processedRecordRef?.current?.reload();
  479 + }}
415 /> 480 />
416 ) : ( 481 ) : (
417 '' 482 ''
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/InvoiceRecordDetailModal.tsx deleted 100644 → 0
1 -import { RESPONSE_CODE } from '@/constants/enum';  
2 -import InvoiceDetailTable from '@/pages/Invoice/waitProcessRecord/components/InvoiceDetailTable';  
3 -import {  
4 - postServiceConstGetPayeeEnum,  
5 - postServiceConstInvoiceType,  
6 - postServiceConstInvoicingType,  
7 - postServiceInvoiceGetInvoiceRecord,  
8 - postServiceInvoiceModifyRecord,  
9 -} from '@/services';  
10 -import { enumToSelect } from '@/utils';  
11 -import {  
12 - ModalForm,  
13 - ProCard,  
14 - ProForm,  
15 - ProFormInstance,  
16 - ProFormList,  
17 - ProFormSelect,  
18 - ProFormText,  
19 - ProFormTextArea,  
20 -} from '@ant-design/pro-components';  
21 -import { Button, Divider, Form, Space, message } from 'antd';  
22 -import { useEffect, useRef, useState } from 'react';  
23 -  
24 -export default ({ id, setVisible }) => {  
25 - const [readOnly, setReadOnly] = useState(true);  
26 - const [detailTableData, setDetailTableData] = useState([]);  
27 - const [payees, setPayees] = useState([]);  
28 - const [payeeNameOptions, setPayeeNameOptions] = useState([]);  
29 - const formRef = useRef<ProFormInstance>();  
30 - const [form] = Form.useForm();  
31 -  
32 - useEffect(() => {  
33 - console.log('id' + id);  
34 - const getPayees = async () => {  
35 - let res = await postServiceConstGetPayeeEnum();  
36 - setPayees(res.data);  
37 - let payeeNameOptions = res.data.map((item) => {  
38 - return {  
39 - label: item.payeeName,  
40 - value: item.payeeName,  
41 - };  
42 - });  
43 - setPayeeNameOptions(payeeNameOptions);  
44 - };  
45 - getPayees();  
46 - }, []);  
47 - const getRecord = async (id) => {  
48 - let ret = await postServiceInvoiceGetInvoiceRecord({  
49 - query: {  
50 - id: id,  
51 - },  
52 - });  
53 - console.log(ret.data);  
54 - const updatedInvoiceDetails = ret.data.invoiceDetails?.map(  
55 - (item, index) => ({  
56 - ...item, // 保留原有属性  
57 - tid: index + 1, // 添加tid属性,这里以T开头,后面跟索引+1,仅作示例,实际可根据需求生成tid  
58 - }),  
59 - );  
60 - setDetailTableData(updatedInvoiceDetails);  
61 - };  
62 - useEffect(() => {  
63 - getRecord(id);  
64 - }, []);  
65 -  
66 - const updateDetails = (values) => {  
67 - setDetailTableData(values);  
68 - };  
69 - return (  
70 - <>  
71 - <Space>  
72 - <ModalForm  
73 - open  
74 - title="发票详情"  
75 - formRef={formRef}  
76 - request={async () => {  
77 - let ret = await postServiceInvoiceGetInvoiceRecord({  
78 - query: {  
79 - id: id,  
80 - },  
81 - });  
82 - const data = ret.data;  
83 - const orderIdMap = data.orderIdMap;  
84 - const orderIdList = [];  
85 -  
86 - // 使用Object.entries()遍历属性  
87 - Object.entries(orderIdMap).forEach(([key, value]) => {  
88 - const orderId = {  
89 - mainId: key,  
90 - subIds: value,  
91 - };  
92 - orderIdList.push(orderId);  
93 - });  
94 - return {  
95 - ...data,  
96 - orderIdList: orderIdList,  
97 - };  
98 - }}  
99 - submitter={{  
100 - render: () => {  
101 - return [  
102 - <Button  
103 - type={readOnly ? 'primary' : 'default'}  
104 - key="ok"  
105 - onClick={() => {  
106 - setReadOnly(!readOnly);  
107 - }}  
108 - >  
109 - {readOnly ? '编辑' : '取消编辑'}  
110 - </Button>,  
111 - <>  
112 - {!readOnly && (  
113 - <Button  
114 - type="primary"  
115 - key="submit"  
116 - onClick={async () => {  
117 - const result = await postServiceInvoiceModifyRecord({  
118 - data: {  
119 - ...form.getFieldsValue(),  
120 - invoiceDetails: [...detailTableData],  
121 - },  
122 - });  
123 - if (result.result === RESPONSE_CODE.SUCCESS) {  
124 - message.success('提交成功');  
125 - }  
126 - setVisible(false);  
127 - return true;  
128 - }}  
129 - >  
130 - 提交  
131 - </Button>  
132 - )}  
133 - </>,  
134 - /*<Button  
135 - type={'default'}  
136 - key="ok"  
137 - onClick={() => {  
138 - setVisible(false)  
139 - }}  
140 - >  
141 - 取消  
142 - </Button>,*/  
143 - ];  
144 - },  
145 - }}  
146 - width={1200}  
147 - form={form}  
148 - autoFocusFirstInput  
149 - modalProps={{  
150 - destroyOnClose: true,  
151 - onCancel: () => {  
152 - setVisible(false);  
153 - },  
154 - }}  
155 - grid={true}  
156 - layout="horizontal"  
157 - rowProps={{  
158 - gutter: [0, 0],  
159 - }}  
160 - submitTimeout={2000}  
161 - onFinish={async (values) => {  
162 - const result = await postServiceInvoiceModifyRecord({  
163 - data: {  
164 - ...values,  
165 - invoiceDetails: {  
166 - ...detailTableData,  
167 - },  
168 - },  
169 - });  
170 - if (result.result === RESPONSE_CODE.SUCCESS) {  
171 - message.success('提交成功');  
172 - }  
173 - return true;  
174 - }}  
175 - >  
176 - <ProCard  
177 - title="基础信息"  
178 - bordered  
179 - //  
180 - headStyle={{}}  
181 - headerBordered  
182 - size={'small'}  
183 - >  
184 - <ProForm.Group>  
185 - <ProFormText  
186 - readonly  
187 - name="id"  
188 - label="订单批号"  
189 - colProps={{  
190 - span: 5,  
191 - }}  
192 - tooltip="最长为 24 位"  
193 - placeholder="请输入名称"  
194 - />  
195 -  
196 - <ProFormText  
197 - readonly  
198 - width="md"  
199 - colProps={{  
200 - span: 5,  
201 - }}  
202 - name="createByName"  
203 - label="销售代表"  
204 - placeholder="请输入名称"  
205 - />  
206 - <ProFormText  
207 - readonly  
208 - width="md"  
209 - colProps={{  
210 - span: 5,  
211 - }}  
212 - name="createTime"  
213 - label="申请时间"  
214 - placeholder="请输入名称"  
215 - />  
216 - <ProFormSelect  
217 - name="type"  
218 - label="发票类型"  
219 - colProps={{  
220 - span: 5,  
221 - }}  
222 - readonly={readOnly}  
223 - request={async () => {  
224 - let invoiceTypeRet = await postServiceConstInvoiceType();  
225 - return enumToSelect(invoiceTypeRet.data);  
226 - }}  
227 - placeholder="Please select a country"  
228 - rules={[  
229 - { required: true, message: 'Please select your country!' },  
230 - ]}  
231 - />  
232 - <ProFormSelect  
233 - name="invoicingType"  
234 - readonly={readOnly}  
235 - label="开具类型"  
236 - colProps={{  
237 - span: 4,  
238 - }}  
239 - request={async () => {  
240 - let invoicingTypeRet = await postServiceConstInvoicingType();  
241 - let options = enumToSelect(invoicingTypeRet.data);  
242 - return options;  
243 - }}  
244 - placeholder="Please select a country"  
245 - rules={[  
246 - { required: true, message: 'Please select your country!' },  
247 - ]}  
248 - />  
249 - <ProFormList  
250 - label="订单号"  
251 - name="orderIdList"  
252 - creatorButtonProps={false}  
253 - itemRender={({}, { record }) => {  
254 - console.log('record' + JSON.stringify(record));  
255 - return (  
256 - <Space>  
257 - <Button  
258 - key={record.mainId}  
259 - className="pl-1 pr-0"  
260 - type="link"  
261 - target="_blank"  
262 - href={'/order?id=' + record.mainId}  
263 - >  
264 - {record.mainId}  
265 - </Button>  
266 - (  
267 - {record.subIds.map((item) => {  
268 - return (  
269 - <Button  
270 - key={item}  
271 - className="pl-1 pr-0"  
272 - type="link"  
273 - target="_blank"  
274 - href={'/order?subOrderId=' + item}  
275 - >  
276 - {item}  
277 - </Button>  
278 - );  
279 - })}  
280 - )  
281 - <Divider type="vertical" />  
282 - </Space>  
283 - );  
284 - }}  
285 - >  
286 - <ProFormText allowClear={false} width="xs" name={['name']} />  
287 - </ProFormList>  
288 - </ProForm.Group>  
289 - </ProCard>  
290 - <hr />  
291 - <ProCard title="购方信息" bordered headerBordered size={'small'}>  
292 - <ProForm.Group>  
293 - <ProFormText  
294 - readonly={readOnly}  
295 - width="md"  
296 - colProps={{  
297 - span: 8,  
298 - }}  
299 - name="partyAName"  
300 - label="购方名称"  
301 - placeholder="请输入名称"  
302 - />  
303 - <ProFormText  
304 - readonly={readOnly}  
305 - width="md"  
306 - colProps={{  
307 - span: 8,  
308 - }}  
309 - name="partyATaxid"  
310 - label="购方税号"  
311 - placeholder="请输入名称"  
312 - />  
313 - <ProFormText  
314 - readonly={readOnly}  
315 - width="md"  
316 - colProps={{  
317 - span: 8,  
318 - }}  
319 - label="开户银行"  
320 - name={'partyAOpenBank'}  
321 - placeholder="请输入名称"  
322 - />  
323 - <ProFormText  
324 - readonly={readOnly}  
325 - width="md"  
326 - colProps={{  
327 - span: 8,  
328 - }}  
329 - name="partyABankAccount"  
330 - label="银行账号"  
331 - placeholder="请输入名称"  
332 - />  
333 - <ProFormText  
334 - readonly={readOnly}  
335 - width="md"  
336 - colProps={{  
337 - span: 8,  
338 - }}  
339 - name="partyAAddress"  
340 - label="购方地址"  
341 - placeholder="请输入名称"  
342 - />  
343 - <ProFormText  
344 - readonly={readOnly}  
345 - width="md"  
346 - colProps={{  
347 - span: 8,  
348 - }}  
349 - name="partyAPhoneNumber"  
350 - label="电话"  
351 - placeholder="请输入名称"  
352 - />  
353 - </ProForm.Group>  
354 - </ProCard>  
355 - <hr />  
356 - <ProCard title="销方信息" bordered headerBordered size={'small'}>  
357 - <ProForm.Group>  
358 - <ProFormSelect  
359 - readonly={readOnly}  
360 - width="md"  
361 - name="partyBName"  
362 - options={payeeNameOptions}  
363 - onChange={(value: any) => {  
364 - let payee = payees.find((item: any) => {  
365 - return item.payeeName === value;  
366 - });  
367 - console.log(JSON.stringify(payee));  
368 - form.setFieldsValue({  
369 - partyBTaxid: payee.taxId,  
370 - partyBBankAccount: payee.bankAccount,  
371 - partyBOpenBank: payee.openBank,  
372 - partyBAddress: payee.address,  
373 - partyBPhoneNumber: payee.phoneNumber,  
374 - });  
375 - }}  
376 - label="销方名称"  
377 - colProps={{  
378 - span: 8,  
379 - }}  
380 - placeholder="请输入名称"  
381 - />  
382 -  
383 - <ProFormText  
384 - readonly  
385 - width="md"  
386 - name="partyBTaxid"  
387 - label="销方税号"  
388 - colProps={{  
389 - span: 8,  
390 - }}  
391 - placeholder="请输入名称"  
392 - />  
393 - <ProFormText  
394 - readonly  
395 - width="md"  
396 - name="partyBOpenBank"  
397 - label="开户银行"  
398 - colProps={{  
399 - span: 8,  
400 - }}  
401 - placeholder="请输入名称"  
402 - />  
403 - <ProFormText  
404 - readonly  
405 - width="md"  
406 - name="partyBBankAccount"  
407 - label="银行账号"  
408 - colProps={{  
409 - span: 8,  
410 - }}  
411 - placeholder="请输入名称"  
412 - />  
413 - <ProFormText  
414 - readonly  
415 - width="md"  
416 - colProps={{  
417 - span: 8,  
418 - }}  
419 - name="partyBAddress"  
420 - label="销方地址"  
421 - placeholder="请输入名称"  
422 - />  
423 - <ProFormText  
424 - readonly  
425 - width="md"  
426 - colProps={{  
427 - span: 8,  
428 - }}  
429 - name="partyBPhoneNumber"  
430 - label="电话"  
431 - placeholder="请输入名称"  
432 - />  
433 - </ProForm.Group>  
434 - </ProCard>  
435 - <hr />  
436 - <ProCard title="发票明细" bordered headerBordered size={'small'}>  
437 - <InvoiceDetailTable  
438 - recordId={id}  
439 - details={detailTableData}  
440 - updateDetails={updateDetails}  
441 - readOnly={readOnly}  
442 - />  
443 - </ProCard>  
444 - <hr />  
445 - <ProCard title="备注" bordered headerBordered size={'small'}>  
446 - <ProFormTextArea  
447 - readonly={readOnly}  
448 - name="comment"  
449 - placeholder="请输入备注"  
450 - />  
451 - </ProCard>  
452 - </ModalForm>  
453 - </Space>  
454 - </>  
455 - );  
456 -};  
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
  1 +import InvoiceRecordDetailModal from '@/pages/Invoice/InvoiceRecord/components/InvoiceRecordDetailModal';
1 import InvoiceModal from '@/pages/Invoice/waitProcessRecord/components/InvoiceModal'; 2 import InvoiceModal from '@/pages/Invoice/waitProcessRecord/components/InvoiceModal';
2 -import InvoiceRecordDetailModal from '@/pages/Invoice/waitProcessRecord/components/InvoiceRecordDetailModal';  
3 import InvoicingModal from '@/pages/Invoice/waitProcessRecord/components/InvoicingModal'; 3 import InvoicingModal from '@/pages/Invoice/waitProcessRecord/components/InvoicingModal';
4 import ManualInvoicingModal from '@/pages/Invoice/waitProcessRecord/components/ManualInvoicingModal'; 4 import ManualInvoicingModal from '@/pages/Invoice/waitProcessRecord/components/ManualInvoicingModal';
5 import { PAYEE_OPTIONS } from '@/pages/Order/constant'; 5 import { PAYEE_OPTIONS } from '@/pages/Order/constant';
@@ -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: 'status',
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,
@@ -423,6 +423,9 @@ const InvoiceRecord = () =&gt; { @@ -423,6 +423,9 @@ const InvoiceRecord = () =&gt; {
423 key="detail" 423 key="detail"
424 id={invoiceRecord.id} 424 id={invoiceRecord.id}
425 setVisible={setInvoiceRecordDetailVisible} 425 setVisible={setInvoiceRecordDetailVisible}
  426 + reloadTable={() => {
  427 + waitDealrecordActionRef?.current?.reload();
  428 + }}
426 /> 429 />
427 ) : ( 430 ) : (
428 '' 431 ''
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
@@ -1215,6 +1215,37 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -1215,6 +1215,37 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
1215 placeholder="请输入课题组" 1215 placeholder="请输入课题组"
1216 rules={[{ required: true, message: '课题组必填' }]} 1216 rules={[{ required: true, message: '课题组必填' }]}
1217 /> 1217 />
  1218 + {/*<ProFormSelect
  1219 + key={'institutionContactName'}
  1220 + width="md"
  1221 + showSearch
  1222 + name="institutionContactName"
  1223 + rules={[{ required: true, message: '请输入课题组名称!' }]}
  1224 + request={async (value) => {
  1225 + const keywords = value.keyWords;
  1226 + const res = await postResearchGroupsNameSet({
  1227 + data: {
  1228 + groupName: keywords,
  1229 + },
  1230 + });
  1231 + let options = res?.data?.map((c: any) => {
  1232 + return {
  1233 + label: c,
  1234 + value: c,
  1235 + key: c,
  1236 + };
  1237 + });
  1238 + return options;
  1239 + }}
  1240 + fieldProps={{
  1241 + filterOption() {
  1242 + return true;
  1243 + },
  1244 + }}
  1245 + debounceTime={1000}
  1246 + label="课题组名称"
  1247 + placeholder="请输入名称"
  1248 + />*/}
1218 <div 1249 <div
1219 style={{ 1250 style={{
1220 display: 'flex', 1251 display: 'flex',
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';
7 import { orderExport } from '@/services/order'; 13 import { orderExport } from '@/services/order';
8 import { enumToSelect } from '@/utils'; 14 import { enumToSelect } from '@/utils';
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, message } 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,188 +29,226 @@ export const waitTime = async (time: number = 100) =&gt; { @@ -22,188 +29,226 @@ 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);  
139 - },  
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);  
150 - },  
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 - }),  
167 - },  
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 () => { 32 export default () => {
199 const [messageApi, contextHolder] = message.useMessage(); 33 const [messageApi, contextHolder] = message.useMessage();
200 const actionRef = useRef<ActionType>(); 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,
  45 + },
  46 + {
  47 + title: '收货人',
  48 + width: 120,
  49 + dataIndex: 'consignee',
  50 + ellipsis: true,
  51 + hideInSearch: true,
  52 + },
  53 + {
  54 + title: '联系电话',
  55 + width: 120,
  56 + dataIndex: 'phoneNumber',
  57 + ellipsis: true,
  58 + hideInSearch: true,
  59 + },
  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,
  228 + },
  229 + });
  230 + if (res.result === RESPONSE_CODE.SUCCESS) {
  231 + message.success('删除成功');
  232 + action?.reload();
  233 + }
  234 + }}
  235 + okText="确认"
  236 + cancelText="取消"
  237 + >
  238 + <Button size={'small'} type="link" danger>
  239 + 删除
  240 + </Button>
  241 + </Popconfirm>,
  242 + ],
  243 + },
  244 + ];
201 return ( 245 return (
202 <> 246 <>
203 <ProTable 247 <ProTable
204 columns={columns} 248 columns={columns}
205 actionRef={actionRef} 249 actionRef={actionRef}
206 cardBordered 250 cardBordered
  251 + size={'small'}
207 request={async (params, sort, filter) => { 252 request={async (params, sort, filter) => {
208 console.log(sort, filter); 253 console.log(sort, filter);
209 const res = await postProcureReturnBillPage({ 254 const res = await postProcureReturnBillPage({
@@ -240,7 +285,7 @@ export default () =&gt; { @@ -240,7 +285,7 @@ export default () =&gt; {
240 duration: 0, 285 duration: 0,
241 }); 286 });
242 orderExport( 287 orderExport(
243 - '/api/admin/client/exportClients', 288 + '/api/procureReturnBill/export',
244 '客户信息.xlsx', 289 '客户信息.xlsx',
245 'POST', 290 'POST',
246 values, 291 values,
@@ -281,9 +326,9 @@ export default () =&gt; { @@ -281,9 +326,9 @@ export default () =&gt; {
281 toolBarRender={() => [ 326 toolBarRender={() => [
282 <AddDrawer 327 <AddDrawer
283 key="add" 328 key="add"
284 - reloadTable={() => {  
285 - actionRef.current?.reload();  
286 - }} 329 + data={null}
  330 + type="add"
  331 + reloadTable={reloadTable}
287 />, 332 />,
288 ]} 333 ]}
289 /> 334 />
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;
@@ -658,6 +668,7 @@ export interface ApiCreateProductRequest { @@ -658,6 +668,7 @@ export interface ApiCreateProductRequest {
658 } 668 }
659 669
660 export interface ApiOrderCustomersRequest { 670 export interface ApiOrderCustomersRequest {
  671 + createByName?: string;
661 /** @format int32 */ 672 /** @format int32 */
662 current?: number; 673 current?: number;
663 /** @format int32 */ 674 /** @format int32 */
@@ -958,6 +969,7 @@ export interface AuditDto { @@ -958,6 +969,7 @@ export interface AuditDto {
958 } 969 }
959 970
960 export interface AuditVO { 971 export interface AuditVO {
  972 + createByName?: string;
961 /** @format int32 */ 973 /** @format int32 */
962 current?: number; 974 current?: number;
963 /** @format int32 */ 975 /** @format int32 */
@@ -1036,6 +1048,7 @@ export interface CancelSendOrderDto { @@ -1036,6 +1048,7 @@ export interface CancelSendOrderDto {
1036 } 1048 }
1037 1049
1038 export interface CaptchaMessageVO { 1050 export interface CaptchaMessageVO {
  1051 + createByName?: string;
1039 /** @format int32 */ 1052 /** @format int32 */
1040 current?: number; 1053 current?: number;
1041 /** @format int32 */ 1054 /** @format int32 */
@@ -1290,6 +1303,7 @@ export interface CustomerSaveReq { @@ -1290,6 +1303,7 @@ export interface CustomerSaveReq {
1290 } 1303 }
1291 1304
1292 export interface DictionaryQueryVO { 1305 export interface DictionaryQueryVO {
  1306 + createByName?: string;
1293 /** @format int32 */ 1307 /** @format int32 */
1294 current?: number; 1308 current?: number;
1295 dictCode?: string; 1309 dictCode?: string;
@@ -1412,6 +1426,12 @@ export interface InvoiceDto { @@ -1412,6 +1426,12 @@ export interface InvoiceDto {
1412 * 收款时间 1426 * 收款时间
1413 * @format date-time 1427 * @format date-time
1414 */ 1428 */
  1429 + collectionDatetime?: string;
  1430 + /**
  1431 + * @description
  1432 + * 收款时间
  1433 + * @format date-time
  1434 + */
1415 collectionTime?: string; 1435 collectionTime?: string;
1416 /** 1436 /**
1417 * @description 1437 * @description
@@ -1457,6 +1477,11 @@ export interface InvoiceDto { @@ -1457,6 +1477,11 @@ export interface InvoiceDto {
1457 notes?: string; 1477 notes?: string;
1458 /** 1478 /**
1459 * @description 1479 * @description
  1480 + * 权限路径
  1481 + */
  1482 + path?: Array<string>;
  1483 + /**
  1484 + * @description
1460 * 收款单位 1485 * 收款单位
1461 */ 1486 */
1462 payee?: string; 1487 payee?: string;
@@ -1706,6 +1731,8 @@ export interface InvoiceRecordQueryRequest { @@ -1706,6 +1731,8 @@ export interface InvoiceRecordQueryRequest {
1706 * 联系人 1731 * 联系人
1707 */ 1732 */
1708 contactsLike?: string; 1733 contactsLike?: string;
  1734 + createByName?: string;
  1735 + createNameIn?: Array<string>;
1709 /** @format date-time */ 1736 /** @format date-time */
1710 createTimeGe?: string; 1737 createTimeGe?: string;
1711 /** @format date-time */ 1738 /** @format date-time */
@@ -2052,6 +2079,7 @@ export interface MeasureUnitListResRow { @@ -2052,6 +2079,7 @@ export interface MeasureUnitListResRow {
2052 } 2079 }
2053 2080
2054 export interface MessageQueryDTO { 2081 export interface MessageQueryDTO {
  2082 + createByName?: string;
2055 /** @format int32 */ 2083 /** @format int32 */
2056 current?: number; 2084 current?: number;
2057 /** @format int32 */ 2085 /** @format int32 */
@@ -2095,6 +2123,7 @@ export interface OrderAddVO { @@ -2095,6 +2123,7 @@ export interface OrderAddVO {
2095 export interface OrderAuditLogQueryVO { 2123 export interface OrderAuditLogQueryVO {
2096 /** @format int64 */ 2124 /** @format int64 */
2097 applyId?: number; 2125 applyId?: number;
  2126 + createByName?: string;
2098 /** @format int32 */ 2127 /** @format int32 */
2099 current?: number; 2128 current?: number;
2100 /** @format int32 */ 2129 /** @format int32 */
@@ -2139,6 +2168,7 @@ export interface OrderBaseFieldVO { @@ -2139,6 +2168,7 @@ export interface OrderBaseFieldVO {
2139 export interface OrderBaseInfoQueryVO { 2168 export interface OrderBaseInfoQueryVO {
2140 cnColor?: string; 2169 cnColor?: string;
2141 collection?: string; 2170 collection?: string;
  2171 + createByName?: string;
2142 /** @format int32 */ 2172 /** @format int32 */
2143 current?: number; 2173 current?: number;
2144 customerCode?: string; 2174 customerCode?: string;
@@ -2227,6 +2257,7 @@ export interface OrderFieldLockApplyQueryVO { @@ -2227,6 +2257,7 @@ export interface OrderFieldLockApplyQueryVO {
2227 applyUserId?: number; 2257 applyUserId?: number;
2228 /** @format int64 */ 2258 /** @format int64 */
2229 auditUserId?: number; 2259 auditUserId?: number;
  2260 + createByName?: string;
2230 /** @format int32 */ 2261 /** @format int32 */
2231 current?: number; 2262 current?: number;
2232 /** @format int32 */ 2263 /** @format int32 */
@@ -2296,6 +2327,7 @@ export interface OrderMainProDo { @@ -2296,6 +2327,7 @@ export interface OrderMainProDo {
2296 } 2327 }
2297 2328
2298 export interface OrderOptLogQueryVO { 2329 export interface OrderOptLogQueryVO {
  2330 + createByName?: string;
2299 /** @format int32 */ 2331 /** @format int32 */
2300 current?: number; 2332 current?: number;
2301 /** @format int32 */ 2333 /** @format int32 */
@@ -2559,6 +2591,11 @@ export interface ProcurePrintDto { @@ -2559,6 +2591,11 @@ export interface ProcurePrintDto {
2559 ids?: Array<number>; 2591 ids?: Array<number>;
2560 } 2592 }
2561 2593
  2594 +export interface ProcureReturnBillApprovalDto {
  2595 + ids?: Array<number>;
  2596 + transitionNotes?: string;
  2597 +}
  2598 +
2562 export interface ProcureReturnBillDto { 2599 export interface ProcureReturnBillDto {
2563 /** 2600 /**
2564 * @description 2601 * @description
@@ -2614,6 +2651,12 @@ export interface ProcureReturnBillDto { @@ -2614,6 +2651,12 @@ export interface ProcureReturnBillDto {
2614 /** 2651 /**
2615 * @description 2652 * @description
2616 * 发货仓库 2653 * 发货仓库
  2654 + * @format int32
  2655 + */
  2656 + sendStoreCode?: number;
  2657 + /**
  2658 + * @description
  2659 + * 发货仓库
2617 */ 2660 */
2618 sendStoreText?: string; 2661 sendStoreText?: string;
2619 /** 2662 /**
@@ -2627,6 +2670,7 @@ export interface ProcureReturnBillDto { @@ -2627,6 +2670,7 @@ export interface ProcureReturnBillDto {
2627 * @format int32 2670 * @format int32
2628 */ 2671 */
2629 statusCode?: number; 2672 statusCode?: number;
  2673 + statusNotes?: string;
2630 /** 2674 /**
2631 * @description 2675 * @description
2632 * 订单状态 2676 * 订单状态
@@ -2691,6 +2735,7 @@ export interface QueryBankStatementDto { @@ -2691,6 +2735,7 @@ export interface QueryBankStatementDto {
2691 * @format date 2735 * @format date
2692 */ 2736 */
2693 collectionDatetimeEnd?: string; 2737 collectionDatetimeEnd?: string;
  2738 + createByName?: string;
2694 /** @format int32 */ 2739 /** @format int32 */
2695 current?: number; 2740 current?: number;
2696 /** @format int32 */ 2741 /** @format int32 */
@@ -2727,6 +2772,7 @@ export interface QueryClientDto { @@ -2727,6 +2772,7 @@ export interface QueryClientDto {
2727 companyAddressLike?: string; 2772 companyAddressLike?: string;
2728 companyIds?: Array<number>; 2773 companyIds?: Array<number>;
2729 companyNameLike?: string; 2774 companyNameLike?: string;
  2775 + createByName?: string;
2730 createByUserIdIn?: Array<number>; 2776 createByUserIdIn?: Array<number>;
2731 /** @format date-time */ 2777 /** @format date-time */
2732 createTimeGe?: string; 2778 createTimeGe?: string;
@@ -2754,6 +2800,7 @@ export interface QueryCommunicationInfoDto { @@ -2754,6 +2800,7 @@ export interface QueryCommunicationInfoDto {
2754 /** @format int64 */ 2800 /** @format int64 */
2755 clientId?: number; 2801 clientId?: number;
2756 content?: string; 2802 content?: string;
  2803 + createByName?: string;
2757 /** @format int32 */ 2804 /** @format int32 */
2758 current?: number; 2805 current?: number;
2759 /** @format date-time */ 2806 /** @format date-time */
@@ -2812,6 +2859,7 @@ export interface QueryInvoiceDetailDto { @@ -2812,6 +2859,7 @@ export interface QueryInvoiceDetailDto {
2812 } 2859 }
2813 2860
2814 export interface QueryInvoiceProjectDto { 2861 export interface QueryInvoiceProjectDto {
  2862 + createByName?: string;
2815 /** @format int32 */ 2863 /** @format int32 */
2816 current?: number; 2864 current?: number;
2817 /** @format int32 */ 2865 /** @format int32 */
@@ -2831,6 +2879,8 @@ export interface QueryInvoiceRecordDto { @@ -2831,6 +2879,8 @@ export interface QueryInvoiceRecordDto {
2831 * 联系人 2879 * 联系人
2832 */ 2880 */
2833 contactsLike?: string; 2881 contactsLike?: string;
  2882 + createByName?: string;
  2883 + createNameIn?: Array<string>;
2834 /** @format date-time */ 2884 /** @format date-time */
2835 createTimeGe?: string; 2885 createTimeGe?: string;
2836 /** @format date-time */ 2886 /** @format date-time */
@@ -3025,6 +3075,7 @@ export interface QueryMainOrderDto { @@ -3025,6 +3075,7 @@ export interface QueryMainOrderDto {
3025 3075
3026 export interface QueryProcureReturnBillDto { 3076 export interface QueryProcureReturnBillDto {
3027 consigneeLike?: string; 3077 consigneeLike?: string;
  3078 + createByName?: string;
3028 createByNameLike?: string; 3079 createByNameLike?: string;
3029 /** @format date-time */ 3080 /** @format date-time */
3030 createTimeGe?: string; 3081 createTimeGe?: string;
@@ -3079,6 +3130,26 @@ export interface QueryReportFormsDto { @@ -3079,6 +3130,26 @@ export interface QueryReportFormsDto {
3079 statisticsMethod?: string; 3130 statisticsMethod?: string;
3080 } 3131 }
3081 3132
  3133 +export interface QueryUseOldInvoicingDto {
  3134 + createByName?: string;
  3135 + /** @format date-time */
  3136 + createTimeGe?: string;
  3137 + /** @format date-time */
  3138 + createTimeLe?: string;
  3139 + /** @format int32 */
  3140 + current?: number;
  3141 + /** @format int32 */
  3142 + end?: number;
  3143 + /** @format int64 */
  3144 + mainOrderId?: number;
  3145 + /** @format int32 */
  3146 + pageSize?: number;
  3147 + /** @format int32 */
  3148 + start?: number;
  3149 + /** @format int32 */
  3150 + total?: number;
  3151 +}
  3152 +
3082 export interface ReissueInvoiceDto { 3153 export interface ReissueInvoiceDto {
3083 /** @format int64 */ 3154 /** @format int64 */
3084 invoiceId?: number; 3155 invoiceId?: number;
@@ -3212,6 +3283,7 @@ export interface ResearchGroupListRequest { @@ -3212,6 +3283,7 @@ export interface ResearchGroupListRequest {
3212 * 公司名称 3283 * 公司名称
3213 */ 3284 */
3214 companyNameLike?: string; 3285 companyNameLike?: string;
  3286 + createByName?: string;
3215 /** @format int32 */ 3287 /** @format int32 */
3216 current?: number; 3288 current?: number;
3217 /** @format int32 */ 3289 /** @format int32 */
@@ -3622,6 +3694,7 @@ export interface SubOrder { @@ -3622,6 +3694,7 @@ export interface SubOrder {
3622 export interface SysLogQueryVO { 3694 export interface SysLogQueryVO {
3623 address?: string; 3695 address?: string;
3624 browser?: string; 3696 browser?: string;
  3697 + createByName?: string;
3625 /** @format int32 */ 3698 /** @format int32 */
3626 current?: number; 3699 current?: number;
3627 description?: string; 3700 description?: string;
@@ -3792,6 +3865,10 @@ export interface UpdatePwdVO { @@ -3792,6 +3865,10 @@ export interface UpdatePwdVO {
3792 userId?: number; 3865 userId?: number;
3793 } 3866 }
3794 3867
  3868 +export interface UseOldInvoicingDto {
  3869 + orderIdsText?: string;
  3870 +}
  3871 +
3795 export interface UserAddressListRequest { 3872 export interface UserAddressListRequest {
3796 keywords?: string; 3873 keywords?: string;
3797 /** @format int32 */ 3874 /** @format int32 */
@@ -3799,6 +3876,7 @@ export interface UserAddressListRequest { @@ -3799,6 +3876,7 @@ export interface UserAddressListRequest {
3799 } 3876 }
3800 3877
3801 export interface UserCenterInfoRequest { 3878 export interface UserCenterInfoRequest {
  3879 + createByName?: string;
3802 /** @format int32 */ 3880 /** @format int32 */
3803 current?: number; 3881 current?: number;
3804 /** @format int32 */ 3882 /** @format int32 */
@@ -3824,6 +3902,7 @@ export interface UserCenterInfoRequest { @@ -3824,6 +3902,7 @@ export interface UserCenterInfoRequest {
3824 } 3902 }
3825 3903
3826 export interface UserDetailRequest { 3904 export interface UserDetailRequest {
  3905 + createByName?: string;
3827 /** @format int32 */ 3906 /** @format int32 */
3828 current?: number; 3907 current?: number;
3829 /** @format int32 */ 3908 /** @format int32 */
@@ -3847,6 +3926,7 @@ export interface UserDetailRequest { @@ -3847,6 +3926,7 @@ export interface UserDetailRequest {
3847 } 3926 }
3848 3927
3849 export interface UserListRequest { 3928 export interface UserListRequest {
  3929 + createByName?: string;
3850 /** @format int32 */ 3930 /** @format int32 */
3851 current?: number; 3931 current?: number;
3852 /** 3932 /**
@@ -3996,26 +4076,50 @@ export interface InvoiceDetail { @@ -3996,26 +4076,50 @@ export interface InvoiceDetail {
3996 * @format double 4076 * @format double
3997 */ 4077 */
3998 price?: number; 4078 price?: number;
  4079 + /**
  4080 + * @description
  4081 + * 项目名称
  4082 + */
3999 projectName?: string; 4083 projectName?: string;
4000 - /** @format double */ 4084 + /**
  4085 + * @description
  4086 + * 数量
  4087 + * @format double
  4088 + */
4001 quantity?: number; 4089 quantity?: number;
4002 /** 4090 /**
4003 * @description 4091 * @description
4004 * 型号 4092 * 型号
4005 */ 4093 */
4006 specification?: string; 4094 specification?: string;
4007 - /** @format int64 */ 4095 + /**
  4096 + * @description
  4097 + * 关联子订单id
  4098 + * @format int64
  4099 + */
4008 subOrderId?: number; 4100 subOrderId?: number;
4009 - /** @format double */ 4101 + /**
  4102 + * @description
  4103 + * 税额
  4104 + * @format double
  4105 + */
4010 taxPrice?: number; 4106 taxPrice?: number;
4011 - /** @format double */ 4107 + /**
  4108 + * @description
  4109 + * 税率
  4110 + * @format double
  4111 + */
4012 taxRate?: number; 4112 taxRate?: number;
4013 /** 4113 /**
4014 * @description 4114 * @description
4015 - * 总价 4115 + * 总价(金额+税额)
4016 * @format double 4116 * @format double
4017 */ 4117 */
4018 totalPrice?: number; 4118 totalPrice?: number;
  4119 + /**
  4120 + * @description
  4121 + * 单位
  4122 + */
4019 unit?: string; 4123 unit?: string;
4020 } 4124 }
4021 4125
@@ -4190,6 +4294,7 @@ export interface SalesRechargePrepaymentRequest { @@ -4190,6 +4294,7 @@ export interface SalesRechargePrepaymentRequest {
4190 * 创建人员 4294 * 创建人员
4191 */ 4295 */
4192 createBy?: string; 4296 createBy?: string;
  4297 + createByName?: string;
4193 /** 4298 /**
4194 * @description 4299 * @description
4195 * 创建时间开始时间 4300 * 创建时间开始时间
src/services/request.ts
@@ -83,6 +83,7 @@ import type { @@ -83,6 +83,7 @@ import type {
83 ProcureConvertProcureDto, 83 ProcureConvertProcureDto,
84 ProcureOrderDto, 84 ProcureOrderDto,
85 ProcurePrintDto, 85 ProcurePrintDto,
  86 + ProcureReturnBillApprovalDto,
86 ProcureReturnBillDto, 87 ProcureReturnBillDto,
87 ProductInformationDto, 88 ProductInformationDto,
88 QueryAfterSalesInfoSnapshotDto, 89 QueryAfterSalesInfoSnapshotDto,
@@ -98,6 +99,7 @@ import type { @@ -98,6 +99,7 @@ import type {
98 QueryMainOrderDto, 99 QueryMainOrderDto,
99 QueryProcureReturnBillDto, 100 QueryProcureReturnBillDto,
100 QueryReportFormsDto, 101 QueryReportFormsDto,
  102 + QueryUseOldInvoicingDto,
101 ReissueInvoiceDto, 103 ReissueInvoiceDto,
102 ResearchGroupAddRequest, 104 ResearchGroupAddRequest,
103 ResearchGroupDeleteRequest, 105 ResearchGroupDeleteRequest,
@@ -129,6 +131,7 @@ import type { @@ -129,6 +131,7 @@ import type {
129 UpdateHirePurchaseDto, 131 UpdateHirePurchaseDto,
130 UpdatePwdVO, 132 UpdatePwdVO,
131 UploadPaymentReceiptDTO, 133 UploadPaymentReceiptDTO,
  134 + UseOldInvoicingDto,
132 UserAddressListRequest, 135 UserAddressListRequest,
133 UserAddressSaveRequest, 136 UserAddressSaveRequest,
134 UserCenterInfoRequest, 137 UserCenterInfoRequest,
@@ -3566,6 +3569,76 @@ export const patchError = /* #__PURE__ */ (() =&gt; { @@ -3566,6 +3569,76 @@ export const patchError = /* #__PURE__ */ (() =&gt; {
3566 return request; 3569 return request;
3567 })(); 3570 })();
3568 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 +
3569 /** @description request parameter type for postKingdeeRepCustomer */ 3642 /** @description request parameter type for postKingdeeRepCustomer */
3570 export interface PostKingdeeRepCustomerOption { 3643 export interface PostKingdeeRepCustomerOption {
3571 /** 3644 /**
@@ -4347,6 +4420,221 @@ export const postOfficialWebsiteUploadAliOss = /* #__PURE__ */ (() =&gt; { @@ -4347,6 +4420,221 @@ export const postOfficialWebsiteUploadAliOss = /* #__PURE__ */ (() =&gt; {
4347 return request; 4420 return request;
4348 })(); 4421 })();
4349 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 +
4350 /** @description request parameter type for postOrderErpApplyList */ 4638 /** @description request parameter type for postOrderErpApplyList */
4351 export interface PostOrderErpApplyListOption { 4639 export interface PostOrderErpApplyListOption {
4352 /** 4640 /**
@@ -10596,8 +10884,8 @@ export const postProcureReturnBillAdd = /* #__PURE__ */ (() =&gt; { @@ -10596,8 +10884,8 @@ export const postProcureReturnBillAdd = /* #__PURE__ */ (() =&gt; {
10596 return request; 10884 return request;
10597 })(); 10885 })();
10598 10886
10599 -/** @description request parameter type for postProcureReturnBillModify */  
10600 -export interface PostProcureReturnBillModifyOption { 10887 +/** @description request parameter type for postProcureReturnBillAddOrModify */
  10888 +export interface PostProcureReturnBillAddOrModifyOption {
10601 /** 10889 /**
10602 * @description 10890 * @description
10603 * dto 10891 * dto
@@ -10610,8 +10898,8 @@ export interface PostProcureReturnBillModifyOption { @@ -10610,8 +10898,8 @@ export interface PostProcureReturnBillModifyOption {
10610 }; 10898 };
10611 } 10899 }
10612 10900
10613 -/** @description response type for postProcureReturnBillModify */  
10614 -export interface PostProcureReturnBillModifyResponse { 10901 +/** @description response type for postProcureReturnBillAddOrModify */
  10902 +export interface PostProcureReturnBillAddOrModifyResponse {
10615 /** 10903 /**
10616 * @description 10904 * @description
10617 * OK 10905 * OK
@@ -10639,25 +10927,25 @@ export interface PostProcureReturnBillModifyResponse { @@ -10639,25 +10927,25 @@ export interface PostProcureReturnBillModifyResponse {
10639 404: any; 10927 404: any;
10640 } 10928 }
10641 10929
10642 -export type PostProcureReturnBillModifyResponseSuccess =  
10643 - PostProcureReturnBillModifyResponse[200]; 10930 +export type PostProcureReturnBillAddOrModifyResponseSuccess =
  10931 + PostProcureReturnBillAddOrModifyResponse[200];
10644 /** 10932 /**
10645 * @description 10933 * @description
10646 - * 修改 10934 + * 添加或修改
10647 * @tags procure-return-bill-controller 10935 * @tags procure-return-bill-controller
10648 * @produces * 10936 * @produces *
10649 * @consumes application/json 10937 * @consumes application/json
10650 */ 10938 */
10651 -export const postProcureReturnBillModify = /* #__PURE__ */ (() => { 10939 +export const postProcureReturnBillAddOrModify = /* #__PURE__ */ (() => {
10652 const method = 'post'; 10940 const method = 'post';
10653 - const url = '/procureReturnBill/modify'; 10941 + const url = '/procureReturnBill/addOrModify';
10654 function request( 10942 function request(
10655 - option: PostProcureReturnBillModifyOption,  
10656 - ): Promise<PostProcureReturnBillModifyResponseSuccess> { 10943 + option: PostProcureReturnBillAddOrModifyOption,
  10944 + ): Promise<PostProcureReturnBillAddOrModifyResponseSuccess> {
10657 return requester(request.url, { 10945 return requester(request.url, {
10658 method: request.method, 10946 method: request.method,
10659 ...option, 10947 ...option,
10660 - }) as unknown as Promise<PostProcureReturnBillModifyResponseSuccess>; 10948 + }) as unknown as Promise<PostProcureReturnBillAddOrModifyResponseSuccess>;
10661 } 10949 }
10662 10950
10663 /** http method */ 10951 /** http method */
@@ -10667,8 +10955,8 @@ export const postProcureReturnBillModify = /* #__PURE__ */ (() =&gt; { @@ -10667,8 +10955,8 @@ export const postProcureReturnBillModify = /* #__PURE__ */ (() =&gt; {
10667 return request; 10955 return request;
10668 })(); 10956 })();
10669 10957
10670 -/** @description request parameter type for postProcureReturnBillPage */  
10671 -export interface PostProcureReturnBillPageOption { 10958 +/** @description request parameter type for postProcureReturnBillAudit */
  10959 +export interface PostProcureReturnBillAuditOption {
10672 /** 10960 /**
10673 * @description 10961 * @description
10674 * dto 10962 * dto
@@ -10677,12 +10965,12 @@ export interface PostProcureReturnBillPageOption { @@ -10677,12 +10965,12 @@ export interface PostProcureReturnBillPageOption {
10677 /** 10965 /**
10678 @description 10966 @description
10679 dto */ 10967 dto */
10680 - dto: QueryProcureReturnBillDto; 10968 + dto: ProcureReturnBillApprovalDto;
10681 }; 10969 };
10682 } 10970 }
10683 10971
10684 -/** @description response type for postProcureReturnBillPage */  
10685 -export interface PostProcureReturnBillPageResponse { 10972 +/** @description response type for postProcureReturnBillAudit */
  10973 +export interface PostProcureReturnBillAuditResponse {
10686 /** 10974 /**
10687 * @description 10975 * @description
10688 * OK 10976 * OK
@@ -10710,25 +10998,25 @@ export interface PostProcureReturnBillPageResponse { @@ -10710,25 +10998,25 @@ export interface PostProcureReturnBillPageResponse {
10710 404: any; 10998 404: any;
10711 } 10999 }
10712 11000
10713 -export type PostProcureReturnBillPageResponseSuccess =  
10714 - PostProcureReturnBillPageResponse[200]; 11001 +export type PostProcureReturnBillAuditResponseSuccess =
  11002 + PostProcureReturnBillAuditResponse[200];
10715 /** 11003 /**
10716 * @description 11004 * @description
10717 - * 分页查询 11005 + * 审核
10718 * @tags procure-return-bill-controller 11006 * @tags procure-return-bill-controller
10719 * @produces * 11007 * @produces *
10720 * @consumes application/json 11008 * @consumes application/json
10721 */ 11009 */
10722 -export const postProcureReturnBillPage = /* #__PURE__ */ (() => { 11010 +export const postProcureReturnBillAudit = /* #__PURE__ */ (() => {
10723 const method = 'post'; 11011 const method = 'post';
10724 - const url = '/procureReturnBill/page'; 11012 + const url = '/procureReturnBill/audit';
10725 function request( 11013 function request(
10726 - option: PostProcureReturnBillPageOption,  
10727 - ): Promise<PostProcureReturnBillPageResponseSuccess> { 11014 + option: PostProcureReturnBillAuditOption,
  11015 + ): Promise<PostProcureReturnBillAuditResponseSuccess> {
10728 return requester(request.url, { 11016 return requester(request.url, {
10729 method: request.method, 11017 method: request.method,
10730 ...option, 11018 ...option,
10731 - }) as unknown as Promise<PostProcureReturnBillPageResponseSuccess>; 11019 + }) as unknown as Promise<PostProcureReturnBillAuditResponseSuccess>;
10732 } 11020 }
10733 11021
10734 /** http method */ 11022 /** http method */
@@ -10738,16 +11026,373 @@ export const postProcureReturnBillPage = /* #__PURE__ */ (() =&gt; { @@ -10738,16 +11026,373 @@ export const postProcureReturnBillPage = /* #__PURE__ */ (() =&gt; {
10738 return request; 11026 return request;
10739 })(); 11027 })();
10740 11028
10741 -/** @description request parameter type for postResearchGroupMemberRequestsAdd */  
10742 -export interface PostResearchGroupMemberRequestsAddOption { 11029 +/** @description request parameter type for postProcureReturnBillExport */
  11030 +export interface PostProcureReturnBillExportOption {
10743 /** 11031 /**
10744 * @description 11032 * @description
10745 - * request 11033 + * dto
10746 */ 11034 */
10747 body: { 11035 body: {
10748 /** 11036 /**
10749 @description 11037 @description
10750 - request */ 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 {
  11187 + /**
  11188 + * @description
  11189 + * OK
  11190 + */
  11191 + 200: ServerResult;
  11192 + /**
  11193 + * @description
  11194 + * Created
  11195 + */
  11196 + 201: any;
  11197 + /**
  11198 + * @description
  11199 + * Unauthorized
  11200 + */
  11201 + 401: any;
  11202 + /**
  11203 + * @description
  11204 + * Forbidden
  11205 + */
  11206 + 403: any;
  11207 + /**
  11208 + * @description
  11209 + * Not Found
  11210 + */
  11211 + 404: any;
  11212 +}
  11213 +
  11214 +export type PostProcureReturnBillPageResponseSuccess =
  11215 + PostProcureReturnBillPageResponse[200];
  11216 +/**
  11217 + * @description
  11218 + * 分页查询
  11219 + * @tags procure-return-bill-controller
  11220 + * @produces *
  11221 + * @consumes application/json
  11222 + */
  11223 +export const postProcureReturnBillPage = /* #__PURE__ */ (() => {
  11224 + const method = 'post';
  11225 + const url = '/procureReturnBill/page';
  11226 + function request(
  11227 + option: PostProcureReturnBillPageOption,
  11228 + ): Promise<PostProcureReturnBillPageResponseSuccess> {
  11229 + return requester(request.url, {
  11230 + method: request.method,
  11231 + ...option,
  11232 + }) as unknown as Promise<PostProcureReturnBillPageResponseSuccess>;
  11233 + }
  11234 +
  11235 + /** http method */
  11236 + request.method = method;
  11237 + /** request url */
  11238 + request.url = url;
  11239 + return request;
  11240 +})();
  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 +
  11386 +/** @description request parameter type for postResearchGroupMemberRequestsAdd */
  11387 +export interface PostResearchGroupMemberRequestsAddOption {
  11388 + /**
  11389 + * @description
  11390 + * request
  11391 + */
  11392 + body: {
  11393 + /**
  11394 + @description
  11395 + request */
10751 request: ResearchGroupMemberRequestAddRequest; 11396 request: ResearchGroupMemberRequestAddRequest;
10752 }; 11397 };
10753 } 11398 }
@@ -11573,6 +12218,77 @@ export const postResearchGroupsList = /* #__PURE__ */ (() =&gt; { @@ -11573,6 +12218,77 @@ export const postResearchGroupsList = /* #__PURE__ */ (() =&gt; {
11573 return request; 12218 return request;
11574 })(); 12219 })();
11575 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 +
11576 /** @description request parameter type for postServiceBankStatementDeleteBankStatement */ 12292 /** @description request parameter type for postServiceBankStatementDeleteBankStatement */
11577 export interface PostServiceBankStatementDeleteBankStatementOption { 12293 export interface PostServiceBankStatementDeleteBankStatementOption {
11578 /** 12294 /**
@@ -12819,8 +13535,8 @@ export const postServiceConstTradeStatus = /* #__PURE__ */ (() =&gt; { @@ -12819,8 +13535,8 @@ export const postServiceConstTradeStatus = /* #__PURE__ */ (() =&gt; {
12819 13535
12820 /** @description request parameter type for getServiceInvoiceListInvoiceProject */ 13536 /** @description request parameter type for getServiceInvoiceListInvoiceProject */
12821 export interface GetServiceInvoiceListInvoiceProjectOption { 13537 export interface GetServiceInvoiceListInvoiceProjectOption {
12822 - /** @format int32 */  
12823 query?: { 13538 query?: {
  13539 + createByName?: string;
12824 /** 13540 /**
12825 @format int32 */ 13541 @format int32 */
12826 current?: number; 13542 current?: number;
@@ -13938,6 +14654,71 @@ export const postServiceInvoiceImportInvoiceDetails = /* #__PURE__ */ (() =&gt; { @@ -13938,6 +14654,71 @@ export const postServiceInvoiceImportInvoiceDetails = /* #__PURE__ */ (() =&gt; {
13938 return request; 14654 return request;
13939 })(); 14655 })();
13940 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 +
13941 /** @description request parameter type for postServiceInvoiceInvoiceWriteOff */ 14722 /** @description request parameter type for postServiceInvoiceInvoiceWriteOff */
13942 export interface PostServiceInvoiceInvoiceWriteOffOption { 14723 export interface PostServiceInvoiceInvoiceWriteOffOption {
13943 /** 14724 /**