Commit b65804494e6e506376019cd3f98f8e06cb8f4172
fix: 弹窗跳转一次
Showing
9 changed files
with
330 additions
and
142 deletions
Too many changes to show.
To preserve performance only 9 of 10 files are displayed.
src/pages/Invoice/Invoice/components/AddBankStatementModal.tsx
... | ... | @@ -14,11 +14,21 @@ export default ({ getRows, onFinish }) => { |
14 | 14 | dataIndex: 'id', |
15 | 15 | }, |
16 | 16 | { |
17 | + title: '编号', | |
18 | + hideInTable: true, | |
19 | + dataIndex: 'id', | |
20 | + }, | |
21 | + { | |
17 | 22 | title: '流水号', |
18 | 23 | hideInSearch: true, |
19 | 24 | dataIndex: 'serialNumber', |
20 | 25 | }, |
21 | 26 | { |
27 | + title: '流水号', | |
28 | + hideInTable: true, | |
29 | + dataIndex: 'serialNumber', | |
30 | + }, | |
31 | + { | |
22 | 32 | title: '收款时间', |
23 | 33 | dataIndex: 'collectionDatetime', |
24 | 34 | hideInSearch: true, |
... | ... | @@ -26,7 +36,7 @@ export default ({ getRows, onFinish }) => { |
26 | 36 | }, |
27 | 37 | { |
28 | 38 | title: '收款方', |
29 | - hideInTable: true, | |
39 | + hideInSearch: true, | |
30 | 40 | dataIndex: 'payeeText', |
31 | 41 | }, |
32 | 42 | { | ... | ... |
src/pages/Invoice/Invoice/components/InvoiceVerificationModal.tsx
... | ... | @@ -20,7 +20,6 @@ export default ({ invoiceId, setVisible, onClose }) => { |
20 | 20 | const [bankChooseModalVisible, setBankChooseModalVisible] = useState(false); |
21 | 21 | const [invoiceInfo, setInvoiceInfo] = useState({}); |
22 | 22 | const [relationOrderIds, setRelationOrderIds] = useState([]); |
23 | - const [setRelationBankStatements] = useState([]); | |
24 | 23 | const actionRef = useRef<ActionType>(); |
25 | 24 | |
26 | 25 | const loadInvoiceData = async () => { |
... | ... | @@ -31,7 +30,6 @@ export default ({ invoiceId, setVisible, onClose }) => { |
31 | 30 | setInvoiceInfo(res.data); |
32 | 31 | setRelationOrderIds(res.data.mainOrderIds); |
33 | 32 | console.log('bs:' + res.data.bankStatementDtos); |
34 | - setRelationBankStatements(res.data.bankStatementDtos); | |
35 | 33 | } |
36 | 34 | }; |
37 | 35 | |
... | ... | @@ -117,6 +115,18 @@ export default ({ invoiceId, setVisible, onClose }) => { |
117 | 115 | }, |
118 | 116 | { |
119 | 117 | key: '11', |
118 | + label: '订单类型', | |
119 | + children: invoiceInfo?.orderTypeText, | |
120 | + span: 12, | |
121 | + }, | |
122 | + { | |
123 | + key: '12', | |
124 | + label: '绑定流水号', | |
125 | + children: invoiceInfo?.serialNumbersTextByOrder, | |
126 | + span: 12, | |
127 | + }, | |
128 | + { | |
129 | + key: '13', | |
120 | 130 | label: '备注', |
121 | 131 | children: invoiceInfo?.notes, |
122 | 132 | span: 24, | ... | ... |
src/pages/Invoice/Invoice/components/invoiceWriteOffModal.tsx
... | ... | @@ -30,24 +30,29 @@ export default ({ getData, triggerButton, readOnly }) => { |
30 | 30 | { |
31 | 31 | title: '发票号码', |
32 | 32 | dataIndex: 'invoiceNumber', |
33 | + ellipsis: true, | |
33 | 34 | }, |
34 | 35 | { |
35 | 36 | title: '收款方', |
36 | 37 | dataIndex: 'payeeText', |
38 | + ellipsis: true, | |
37 | 39 | }, |
38 | 40 | { |
39 | 41 | title: '付款方', |
40 | 42 | dataIndex: 'purchaser', |
43 | + ellipsis: true, | |
41 | 44 | }, |
42 | 45 | { |
43 | 46 | title: '金额', |
44 | 47 | dataIndex: 'money', |
45 | 48 | valueType: 'money', |
49 | + ellipsis: true, | |
46 | 50 | }, |
47 | 51 | { |
48 | 52 | title: '日期', |
49 | 53 | dataIndex: 'invoicingTime', |
50 | 54 | valueType: 'date', |
55 | + ellipsis: true, | |
51 | 56 | }, |
52 | 57 | ]; |
53 | 58 | if (!readOnly) { |
... | ... | @@ -84,49 +89,52 @@ export default ({ getData, triggerButton, readOnly }) => { |
84 | 89 | { |
85 | 90 | title: '流水号', |
86 | 91 | dataIndex: 'serialNumber', |
92 | + ellipsis: true, | |
87 | 93 | }, |
88 | 94 | { |
89 | 95 | title: '收款方', |
90 | 96 | dataIndex: 'payeeText', |
97 | + ellipsis: true, | |
91 | 98 | }, |
92 | 99 | { |
93 | 100 | title: '付款方', |
94 | 101 | dataIndex: 'payer', |
102 | + ellipsis: true, | |
95 | 103 | }, |
96 | 104 | { |
97 | 105 | title: '金额', |
98 | 106 | dataIndex: 'amount', |
99 | 107 | valueType: 'money', |
108 | + ellipsis: true, | |
100 | 109 | }, |
101 | 110 | { |
102 | 111 | title: '日期', |
103 | 112 | dataIndex: 'collectionDatetime', |
104 | 113 | valueType: 'date', |
114 | + ellipsis: true, | |
105 | 115 | }, |
106 | 116 | ]; |
107 | - if (!readOnly) { | |
108 | - columns.push({ | |
109 | - title: '操作', | |
110 | - valueType: 'option', | |
111 | - width: 200, | |
112 | - render: (text, record) => [ | |
113 | - <a | |
114 | - key="delete" | |
115 | - onClick={() => { | |
116 | - const tableDataSource = | |
117 | - formRef.current?.getFieldValue('bankStatements'); | |
118 | - console.log(JSON.stringify(tableDataSource)); | |
119 | - formRef.current?.setFieldValue( | |
120 | - 'bankStatements', | |
121 | - tableDataSource.filter((item) => item.id !== record.id), | |
122 | - ); | |
123 | - }} | |
124 | - > | |
125 | - 删除 | |
126 | - </a>, | |
127 | - ], | |
128 | - }); | |
129 | - } | |
117 | + columns.push({ | |
118 | + title: '操作', | |
119 | + valueType: 'option', | |
120 | + width: 200, | |
121 | + render: (text, record) => [ | |
122 | + <a | |
123 | + key="delete" | |
124 | + onClick={() => { | |
125 | + const tableDataSource = | |
126 | + formRef.current?.getFieldValue('bankStatements'); | |
127 | + console.log(JSON.stringify(tableDataSource)); | |
128 | + formRef.current?.setFieldValue( | |
129 | + 'bankStatements', | |
130 | + tableDataSource.filter((item) => item.id !== record.id), | |
131 | + ); | |
132 | + }} | |
133 | + > | |
134 | + 删除 | |
135 | + </a>, | |
136 | + ], | |
137 | + }); | |
130 | 138 | return columns; |
131 | 139 | }; |
132 | 140 | |
... | ... | @@ -155,9 +163,9 @@ export default ({ getData, triggerButton, readOnly }) => { |
155 | 163 | return getData(); |
156 | 164 | }} |
157 | 165 | /*initialValues={{ |
158 | - invoiceWriteOffId:invoiceWriteOffId, | |
159 | - invoices:originInvoices, | |
160 | - }}*/ | |
166 | + invoiceWriteOffId:invoiceWriteOffId, | |
167 | + invoices:originInvoices, | |
168 | + }}*/ | |
161 | 169 | > |
162 | 170 | <ProFormText name={'invoiceWriteOffId'} hidden={true}></ProFormText> |
163 | 171 | |
... | ... | @@ -295,30 +303,27 @@ export default ({ getData, triggerButton, readOnly }) => { |
295 | 303 | recordCreatorProps={false} |
296 | 304 | toolBarRender={() => [ |
297 | 305 | <> |
298 | - {!readOnly && ( | |
299 | - <AddBankStatementModal | |
300 | - getRows={() => formRef.current?.getFieldValue('bankStatements')} | |
301 | - onFinish={(datas) => { | |
302 | - const bankStatements = | |
303 | - formRef.current?.getFieldValue('bankStatements'); | |
304 | - // 添加非空判断,并处理为空的情况 | |
305 | - const mergedBankStatements = | |
306 | - bankStatements && Array.isArray(bankStatements) | |
307 | - ? bankStatements | |
308 | - : []; | |
309 | - const mergedDatas = | |
310 | - datas && Array.isArray(datas) ? datas : []; | |
311 | - let res = [...mergedBankStatements, ...mergedDatas]; | |
312 | - //对res 进行去重处理,根据id去重 | |
313 | - const resMap = new Map(); | |
314 | - res.forEach((item) => { | |
315 | - resMap.set(item.id, item); | |
316 | - }); | |
317 | - res = Array.from(resMap.values()); | |
318 | - formRef.current?.setFieldValue('bankStatements', res); | |
319 | - }} | |
320 | - /> | |
321 | - )} | |
306 | + <AddBankStatementModal | |
307 | + getRows={() => formRef.current?.getFieldValue('bankStatements')} | |
308 | + onFinish={(datas) => { | |
309 | + const bankStatements = | |
310 | + formRef.current?.getFieldValue('bankStatements'); | |
311 | + // 添加非空判断,并处理为空的情况 | |
312 | + const mergedBankStatements = | |
313 | + bankStatements && Array.isArray(bankStatements) | |
314 | + ? bankStatements | |
315 | + : []; | |
316 | + const mergedDatas = datas && Array.isArray(datas) ? datas : []; | |
317 | + let res = [...mergedBankStatements, ...mergedDatas]; | |
318 | + //对res 进行去重处理,根据id去重 | |
319 | + const resMap = new Map(); | |
320 | + res.forEach((item) => { | |
321 | + resMap.set(item.id, item); | |
322 | + }); | |
323 | + res = Array.from(resMap.values()); | |
324 | + formRef.current?.setFieldValue('bankStatements', res); | |
325 | + }} | |
326 | + /> | |
322 | 327 | </>, |
323 | 328 | ]} |
324 | 329 | columns={getBankStatementColumns()} | ... | ... |
src/pages/Invoice/Invoice/index.tsx
... | ... | @@ -11,6 +11,7 @@ import { |
11 | 11 | postServiceInvoiceGetWriteOffRecord, |
12 | 12 | postServiceInvoiceQueryInvoice, |
13 | 13 | } from '@/services'; |
14 | +import { orderExport } from '@/services/order'; | |
14 | 15 | import { enumValueToLabel, formatDateTime } from '@/utils'; |
15 | 16 | import { formatDate } from '@/utils/time'; |
16 | 17 | import { ActionType, ProTable } from '@ant-design/pro-components'; |
... | ... | @@ -23,6 +24,7 @@ const InvoiceRecord = () => { |
23 | 24 | const [invoiceVerificationVisible, setInvoiceVerificationVisible] = |
24 | 25 | useState(false); |
25 | 26 | const [invoiceId, setInvoiceId] = useState(undefined); |
27 | + const [messageApi, contextHolder] = message.useMessage(); | |
26 | 28 | const reloadInvoiceTable = () => { |
27 | 29 | invoiceActionRef.current?.reload(); |
28 | 30 | }; |
... | ... | @@ -216,6 +218,31 @@ const InvoiceRecord = () => { |
216 | 218 | rowKey="id" |
217 | 219 | search={{ |
218 | 220 | labelWidth: 'auto', |
221 | + optionRender: (searchConfig, formProps, dom) => [ | |
222 | + ...dom.reverse(), | |
223 | + <Button | |
224 | + key="out" | |
225 | + onClick={() => { | |
226 | + const values = searchConfig?.form?.getFieldsValue(); | |
227 | + messageApi.open({ | |
228 | + type: 'loading', | |
229 | + content: '导出中...', | |
230 | + duration: 0, | |
231 | + }); | |
232 | + orderExport( | |
233 | + '/api/service/invoice/exportInvoices', | |
234 | + '发票.xlsx', | |
235 | + 'POST', | |
236 | + values, | |
237 | + () => { | |
238 | + messageApi.destroy(); | |
239 | + }, | |
240 | + ); | |
241 | + }} | |
242 | + > | |
243 | + 导出 | |
244 | + </Button>, | |
245 | + ], | |
219 | 246 | }} |
220 | 247 | options={{ |
221 | 248 | setting: { |
... | ... | @@ -265,6 +292,7 @@ const InvoiceRecord = () => { |
265 | 292 | ) : ( |
266 | 293 | '' |
267 | 294 | )} |
295 | + {contextHolder} | |
268 | 296 | </div> |
269 | 297 | ); |
270 | 298 | }; | ... | ... |
src/pages/Invoice/InvoiceVerification/index.tsx
1 | 1 | import ButtonConfirm from '@/components/ButtomConfirm'; |
2 | 2 | import EllipsisDiv from '@/components/Div/EllipsisDiv'; |
3 | 3 | import { RESPONSE_CODE } from '@/constants/enum'; |
4 | +import InvoiceWriteOffModal from '@/pages/Invoice/Invoice/components/invoiceWriteOffModal'; | |
4 | 5 | import BankImportModal from '@/pages/Invoice/InvoiceVerification/components/BankImportModal'; |
5 | 6 | import InvoiceRecordDetailModal from '@/pages/Invoice/InvoiceVerification/components/InvoiceRecordDetailModal'; |
6 | 7 | import InvoiceVerificationModal from '@/pages/Invoice/InvoiceVerification/components/InvoiceVerificationModal'; |
... | ... | @@ -13,7 +14,9 @@ import { |
13 | 14 | postServiceBankStatementDeleteBankStatement, |
14 | 15 | postServiceBankStatementEditBankStatement, |
15 | 16 | postServiceBankStatementQueryBankStatement, |
17 | + postServiceInvoiceGetWriteOffRecord, | |
16 | 18 | } from '@/services'; |
19 | +import { orderExport } from '@/services/order'; | |
17 | 20 | import { enumValueToLabel, formatDateTime } from '@/utils'; |
18 | 21 | import { formatDate } from '@/utils/time'; |
19 | 22 | import { PlusOutlined } from '@ant-design/icons'; |
... | ... | @@ -27,6 +30,7 @@ const InvoiceRecord = () => { |
27 | 30 | const [bankImportModalVisible, setBankImportModalVisible] = useState(false); |
28 | 31 | const [invoiceVerificationVisible, setInvoiceVerificationVisible] = |
29 | 32 | useState(false); |
33 | + const [messageApi, contextHolder] = message.useMessage(); | |
30 | 34 | const [invoiceId] = useState(undefined); |
31 | 35 | const [invoiceRecordDetailVisible, setInvoiceRecordDetailVisible] = |
32 | 36 | useState(false); |
... | ... | @@ -133,6 +137,28 @@ const InvoiceRecord = () => { |
133 | 137 | ); |
134 | 138 | } |
135 | 139 | |
140 | + if (record.writeOffId !== null) { | |
141 | + btns.push( | |
142 | + <InvoiceWriteOffModal | |
143 | + getData={async () => { | |
144 | + console.log(record.writeOffId); | |
145 | + const res = await postServiceInvoiceGetWriteOffRecord({ | |
146 | + data: { id: record.writeOffId }, | |
147 | + }); | |
148 | + const data = res.data; | |
149 | + return { | |
150 | + invoiceWriteOffId: data.id, | |
151 | + invoices: data.invoiceDtos, | |
152 | + bankStatements: data.bankStatementDtos, | |
153 | + }; | |
154 | + }} | |
155 | + key="writeOff" | |
156 | + triggerButton={<Button type="link">核销记录</Button>} | |
157 | + readOnly={true} | |
158 | + />, | |
159 | + ); | |
160 | + } | |
161 | + | |
136 | 162 | if (record.paths?.includes('deleteBankStatement')) { |
137 | 163 | btns.push( |
138 | 164 | <ButtonConfirm |
... | ... | @@ -202,6 +228,31 @@ const InvoiceRecord = () => { |
202 | 228 | rowKey="id" |
203 | 229 | search={{ |
204 | 230 | labelWidth: 'auto', |
231 | + optionRender: (searchConfig, formProps, dom) => [ | |
232 | + ...dom.reverse(), | |
233 | + <Button | |
234 | + key="out" | |
235 | + onClick={() => { | |
236 | + const values = searchConfig?.form?.getFieldsValue(); | |
237 | + messageApi.open({ | |
238 | + type: 'loading', | |
239 | + content: '导出中...', | |
240 | + duration: 0, | |
241 | + }); | |
242 | + orderExport( | |
243 | + '/api/service/invoice/exportBankStatements', | |
244 | + '银行流水.xlsx', | |
245 | + 'POST', | |
246 | + values, | |
247 | + () => { | |
248 | + messageApi.destroy(); | |
249 | + }, | |
250 | + ); | |
251 | + }} | |
252 | + > | |
253 | + 导出 | |
254 | + </Button>, | |
255 | + ], | |
205 | 256 | }} |
206 | 257 | options={{ |
207 | 258 | setting: { |
... | ... | @@ -260,6 +311,7 @@ const InvoiceRecord = () => { |
260 | 311 | ) : ( |
261 | 312 | '' |
262 | 313 | )} |
314 | + {contextHolder} | |
263 | 315 | </div> |
264 | 316 | ); |
265 | 317 | }; | ... | ... |
src/pages/Invoice/constant.tsx
... | ... | @@ -78,6 +78,43 @@ export const INVOICE_COLUMNS = [ |
78 | 78 | hideInTable: true, |
79 | 79 | }, |
80 | 80 | { |
81 | + title: '订单状态', | |
82 | + dataIndex: 'orderTypeText', | |
83 | + valueType: 'text', | |
84 | + width: 180, | |
85 | + }, | |
86 | + { | |
87 | + title: '绑定流水号', | |
88 | + dataIndex: 'serialNumbersTextByOrder', | |
89 | + | |
90 | + valueType: 'text', | |
91 | + width: 180, | |
92 | + }, | |
93 | + { | |
94 | + title: '是否预付款', | |
95 | + dataIndex: 'orderIsPrePay', | |
96 | + valueType: 'select', | |
97 | + valueEnum: { | |
98 | + true: { | |
99 | + text: '是', | |
100 | + status: true, | |
101 | + }, | |
102 | + false: { | |
103 | + text: '否', | |
104 | + status: false, | |
105 | + }, | |
106 | + }, | |
107 | + hideInTable: true, | |
108 | + width: 180, | |
109 | + }, | |
110 | + { | |
111 | + title: '绑定流水号', | |
112 | + dataIndex: 'serialNumberLike', | |
113 | + hideInTable: true, | |
114 | + valueType: 'text', | |
115 | + width: 180, | |
116 | + }, | |
117 | + { | |
81 | 118 | title: '购买方', |
82 | 119 | dataIndex: 'purchaser', |
83 | 120 | valueType: 'text', | ... | ... |
src/pages/Order/Order/index.tsx
... | ... | @@ -214,7 +214,7 @@ const OrderPage = () => { |
214 | 214 | const [ids, setIds] = useState([]); |
215 | 215 | const [recordOptNode, setRecordOptNode] = useState(null); |
216 | 216 | const roleCode = userInfo?.roleSmallVO?.code; |
217 | - // const navigate = useNavigate(); | |
217 | + const roles = userInfo?.roles; | |
218 | 218 | const canMergeInvoicing = useMemo(() => { |
219 | 219 | if (subOrderSelectedMap.size === 0) { |
220 | 220 | return false; |
... | ... | @@ -228,6 +228,7 @@ const OrderPage = () => { |
228 | 228 | .every((subItem) => subItem.paths.includes('applyInvoicing_old')); |
229 | 229 | }, [selectedSubOrderKeys]); |
230 | 230 | |
231 | + console.log(JSON.stringify(userInfo)); | |
231 | 232 | const triggerRecordOptNode = async (id) => { |
232 | 233 | const res = await postServiceOrderGetCurrentOptNode({ |
233 | 234 | query: { |
... | ... | @@ -2096,8 +2097,9 @@ const OrderPage = () => { |
2096 | 2097 | title="已和客户确认发票??" |
2097 | 2098 | text="确认发票" |
2098 | 2099 | onConfirm={async () => { |
2100 | + let body = { ids: [optRecord.id] }; | |
2099 | 2101 | const data = await postServiceOrderConfirmInvoice({ |
2100 | - data: [optRecord.id], | |
2102 | + data: body, | |
2101 | 2103 | }); |
2102 | 2104 | if (data.result === RESPONSE_CODE.SUCCESS) { |
2103 | 2105 | message.success(data.message); |
... | ... | @@ -2108,7 +2110,6 @@ const OrderPage = () => { |
2108 | 2110 | ) : ( |
2109 | 2111 | '' |
2110 | 2112 | )} |
2111 | - | |
2112 | 2113 | {optRecord.paths?.includes('orderCancel') ? ( |
2113 | 2114 | <ButtonConfirm |
2114 | 2115 | className="p-0" |
... | ... | @@ -3889,12 +3890,15 @@ const OrderPage = () => { |
3889 | 3890 | title="已和客户确认发票?" |
3890 | 3891 | text="确认发票" |
3891 | 3892 | onConfirm={async () => { |
3892 | - const data = await postServiceOrderConfirmInvoice({ | |
3893 | - data: [ | |
3893 | + let body = { | |
3894 | + ids: [ | |
3894 | 3895 | ...record.subOrderInformationLists.map( |
3895 | 3896 | (subOrder) => subOrder.id, |
3896 | 3897 | ), |
3897 | 3898 | ], |
3899 | + }; | |
3900 | + const data = await postServiceOrderConfirmInvoice({ | |
3901 | + data: body, | |
3898 | 3902 | }); |
3899 | 3903 | if (data.result === RESPONSE_CODE.SUCCESS) { |
3900 | 3904 | message.success(data.message); |
... | ... | @@ -4042,7 +4046,7 @@ const OrderPage = () => { |
4042 | 4046 | /** |
4043 | 4047 | * 采购的订单状态筛选内容 |
4044 | 4048 | */ |
4045 | - if (roleCode === 'procure' && item.dataIndex === 'orderStatus') { | |
4049 | + if (roles.includes('PROCURE') && item.dataIndex === 'orderStatus') { | |
4046 | 4050 | item.valueEnum = enumToProTableEnumValue( |
4047 | 4051 | PROCURE_PRIMARY_ORDER_STATUS_OPTIONS, |
4048 | 4052 | ); |
... | ... | @@ -4054,7 +4058,12 @@ const OrderPage = () => { |
4054 | 4058 | /** |
4055 | 4059 | * 采购可以筛选供应商备注 |
4056 | 4060 | */ |
4057 | - if ((roleCode === 'procure' || roleCode === 'admin') && !isSupplier()) { | |
4061 | + if ( | |
4062 | + (roleCode === 'procure' || | |
4063 | + roles.includes('PROCURE') || | |
4064 | + roleCode === 'admin') && | |
4065 | + !isSupplier() | |
4066 | + ) { | |
4058 | 4067 | mainOrdersColumns.push({ |
4059 | 4068 | title: '供应商备注', |
4060 | 4069 | width: 120, |
... | ... | @@ -4067,7 +4076,12 @@ const OrderPage = () => { |
4067 | 4076 | /** |
4068 | 4077 | * 采购可以筛选其他采购 |
4069 | 4078 | */ |
4070 | - if ((roleCode === 'procure' || roleCode === 'admin') && !isSupplier()) { | |
4079 | + if ( | |
4080 | + (roleCode === 'procure' || | |
4081 | + roles.includes('PROCURE') || | |
4082 | + roleCode === 'admin') && | |
4083 | + !isSupplier() | |
4084 | + ) { | |
4071 | 4085 | mainOrdersColumns.push({ |
4072 | 4086 | title: '采购名称', |
4073 | 4087 | width: 120, |
... | ... | @@ -4087,7 +4101,12 @@ const OrderPage = () => { |
4087 | 4101 | /** |
4088 | 4102 | * 排除采购 |
4089 | 4103 | */ |
4090 | - if ((roleCode === 'procure' || roleCode === 'admin') && !isSupplier()) { | |
4104 | + if ( | |
4105 | + (roleCode === 'procure' || | |
4106 | + roles.includes('PROCURE') || | |
4107 | + roleCode === 'admin') && | |
4108 | + !isSupplier() | |
4109 | + ) { | |
4091 | 4110 | mainOrdersColumns.push({ |
4092 | 4111 | title: '采购排除', |
4093 | 4112 | width: 120, |
... | ... | @@ -4122,7 +4141,11 @@ const OrderPage = () => { |
4122 | 4141 | } |
4123 | 4142 | |
4124 | 4143 | //判断是否是采购,是的话新增一个筛选条件 |
4125 | - if (roleCode === 'procure' || roleCode === 'admin') { | |
4144 | + if ( | |
4145 | + roleCode === 'procure' || | |
4146 | + roles.includes('PROCURE') || | |
4147 | + roleCode === 'admin' | |
4148 | + ) { | |
4126 | 4149 | mainOrdersColumns.push({ |
4127 | 4150 | title: isSupplier() ? '下单状态' : '采购下单状态', |
4128 | 4151 | dataIndex: 'procureOrderStatus', |
... | ... | @@ -4151,7 +4174,7 @@ const OrderPage = () => { |
4151 | 4174 | } |
4152 | 4175 | |
4153 | 4176 | //采购可以筛选出需要处理的订单 |
4154 | - if (roleCode === 'procure' && !isSupplier()) { | |
4177 | + if (roles.includes('PROCURE') && !isSupplier()) { | |
4155 | 4178 | radios.push(<Radio value={60}>其他采购</Radio>); |
4156 | 4179 | radios.push(<Radio value={10}>待处理</Radio>); |
4157 | 4180 | } |
... | ... | @@ -4335,7 +4358,7 @@ const OrderPage = () => { |
4335 | 4358 | key="out" |
4336 | 4359 | onClick={() => { |
4337 | 4360 | setIsMainOrder(true); |
4338 | - if (roleCode === 'procure') { | |
4361 | + if (roles.includes('PROCURE')) { | |
4339 | 4362 | setProcureCheckModalVisible(true); |
4340 | 4363 | } |
4341 | 4364 | ... | ... |
src/pages/ResearchGroup/components/ResearchGroupAddModal.tsx
... | ... | @@ -267,9 +267,15 @@ export default ({ setVisible, researchGroupId, onClose }) => { |
267 | 267 | let uidIdMap = new Map( |
268 | 268 | accounts.map((item: any) => [item.accountId, item.id]), |
269 | 269 | ); |
270 | - let res = await postCanrdApiUserList({ | |
271 | - data: { uids: accountIds, phones: phones }, | |
272 | - }); | |
270 | + let data = {}; | |
271 | + if (accountIds.length > 0) { | |
272 | + data = { ...data, uids: accountIds }; | |
273 | + } | |
274 | + if (phones.length > 0) { | |
275 | + data = { ...data, phones: phones }; | |
276 | + } | |
277 | + | |
278 | + let res = await postCanrdApiUserList({ data }); | |
273 | 279 | if (res && res.result === RESPONSE_CODE.SUCCESS) { |
274 | 280 | let accountList = res?.data?.data; |
275 | 281 | console.log(accountList); | ... | ... |
src/services/definition.ts
... | ... | @@ -3,82 +3,82 @@ |
3 | 3 | /** Do not modify manually. |
4 | 4 | content is generated automatically by `ts-gear`. */ |
5 | 5 | export type ModelAndViewStatus = |
6 | - | "100 CONTINUE" | |
7 | - | "101 SWITCHING_PROTOCOLS" | |
8 | - | "102 PROCESSING" | |
9 | - | "103 CHECKPOINT" | |
10 | - | "200 OK" | |
11 | - | "201 CREATED" | |
12 | - | "202 ACCEPTED" | |
13 | - | "203 NON_AUTHORITATIVE_INFORMATION" | |
14 | - | "204 NO_CONTENT" | |
15 | - | "205 RESET_CONTENT" | |
16 | - | "206 PARTIAL_CONTENT" | |
17 | - | "207 MULTI_STATUS" | |
18 | - | "208 ALREADY_REPORTED" | |
19 | - | "226 IM_USED" | |
20 | - | "300 MULTIPLE_CHOICES" | |
21 | - | "301 MOVED_PERMANENTLY" | |
22 | - | "302 FOUND" | |
23 | - | "302 MOVED_TEMPORARILY" | |
24 | - | "303 SEE_OTHER" | |
25 | - | "304 NOT_MODIFIED" | |
26 | - | "305 USE_PROXY" | |
27 | - | "307 TEMPORARY_REDIRECT" | |
28 | - | "308 PERMANENT_REDIRECT" | |
29 | - | "400 BAD_REQUEST" | |
30 | - | "401 UNAUTHORIZED" | |
31 | - | "402 PAYMENT_REQUIRED" | |
32 | - | "403 FORBIDDEN" | |
33 | - | "404 NOT_FOUND" | |
34 | - | "405 METHOD_NOT_ALLOWED" | |
35 | - | "406 NOT_ACCEPTABLE" | |
36 | - | "407 PROXY_AUTHENTICATION_REQUIRED" | |
37 | - | "408 REQUEST_TIMEOUT" | |
38 | - | "409 CONFLICT" | |
39 | - | "410 GONE" | |
40 | - | "411 LENGTH_REQUIRED" | |
41 | - | "412 PRECONDITION_FAILED" | |
42 | - | "413 PAYLOAD_TOO_LARGE" | |
43 | - | "413 REQUEST_ENTITY_TOO_LARGE" | |
44 | - | "414 URI_TOO_LONG" | |
45 | - | "414 REQUEST_URI_TOO_LONG" | |
46 | - | "415 UNSUPPORTED_MEDIA_TYPE" | |
47 | - | "416 REQUESTED_RANGE_NOT_SATISFIABLE" | |
48 | - | "417 EXPECTATION_FAILED" | |
49 | - | "418 I_AM_A_TEAPOT" | |
50 | - | "419 INSUFFICIENT_SPACE_ON_RESOURCE" | |
51 | - | "420 METHOD_FAILURE" | |
52 | - | "421 DESTINATION_LOCKED" | |
53 | - | "422 UNPROCESSABLE_ENTITY" | |
54 | - | "423 LOCKED" | |
55 | - | "424 FAILED_DEPENDENCY" | |
56 | - | "425 TOO_EARLY" | |
57 | - | "426 UPGRADE_REQUIRED" | |
58 | - | "428 PRECONDITION_REQUIRED" | |
59 | - | "429 TOO_MANY_REQUESTS" | |
60 | - | "431 REQUEST_HEADER_FIELDS_TOO_LARGE" | |
61 | - | "451 UNAVAILABLE_FOR_LEGAL_REASONS" | |
62 | - | "500 INTERNAL_SERVER_ERROR" | |
63 | - | "501 NOT_IMPLEMENTED" | |
64 | - | "502 BAD_GATEWAY" | |
65 | - | "503 SERVICE_UNAVAILABLE" | |
66 | - | "504 GATEWAY_TIMEOUT" | |
67 | - | "505 HTTP_VERSION_NOT_SUPPORTED" | |
68 | - | "506 VARIANT_ALSO_NEGOTIATES" | |
69 | - | "507 INSUFFICIENT_STORAGE" | |
70 | - | "508 LOOP_DETECTED" | |
71 | - | "509 BANDWIDTH_LIMIT_EXCEEDED" | |
72 | - | "510 NOT_EXTENDED" | |
73 | - | "511 NETWORK_AUTHENTICATION_REQUIRED"; | |
6 | + | '100 CONTINUE' | |
7 | + | '101 SWITCHING_PROTOCOLS' | |
8 | + | '102 PROCESSING' | |
9 | + | '103 CHECKPOINT' | |
10 | + | '200 OK' | |
11 | + | '201 CREATED' | |
12 | + | '202 ACCEPTED' | |
13 | + | '203 NON_AUTHORITATIVE_INFORMATION' | |
14 | + | '204 NO_CONTENT' | |
15 | + | '205 RESET_CONTENT' | |
16 | + | '206 PARTIAL_CONTENT' | |
17 | + | '207 MULTI_STATUS' | |
18 | + | '208 ALREADY_REPORTED' | |
19 | + | '226 IM_USED' | |
20 | + | '300 MULTIPLE_CHOICES' | |
21 | + | '301 MOVED_PERMANENTLY' | |
22 | + | '302 FOUND' | |
23 | + | '302 MOVED_TEMPORARILY' | |
24 | + | '303 SEE_OTHER' | |
25 | + | '304 NOT_MODIFIED' | |
26 | + | '305 USE_PROXY' | |
27 | + | '307 TEMPORARY_REDIRECT' | |
28 | + | '308 PERMANENT_REDIRECT' | |
29 | + | '400 BAD_REQUEST' | |
30 | + | '401 UNAUTHORIZED' | |
31 | + | '402 PAYMENT_REQUIRED' | |
32 | + | '403 FORBIDDEN' | |
33 | + | '404 NOT_FOUND' | |
34 | + | '405 METHOD_NOT_ALLOWED' | |
35 | + | '406 NOT_ACCEPTABLE' | |
36 | + | '407 PROXY_AUTHENTICATION_REQUIRED' | |
37 | + | '408 REQUEST_TIMEOUT' | |
38 | + | '409 CONFLICT' | |
39 | + | '410 GONE' | |
40 | + | '411 LENGTH_REQUIRED' | |
41 | + | '412 PRECONDITION_FAILED' | |
42 | + | '413 PAYLOAD_TOO_LARGE' | |
43 | + | '413 REQUEST_ENTITY_TOO_LARGE' | |
44 | + | '414 URI_TOO_LONG' | |
45 | + | '414 REQUEST_URI_TOO_LONG' | |
46 | + | '415 UNSUPPORTED_MEDIA_TYPE' | |
47 | + | '416 REQUESTED_RANGE_NOT_SATISFIABLE' | |
48 | + | '417 EXPECTATION_FAILED' | |
49 | + | '418 I_AM_A_TEAPOT' | |
50 | + | '419 INSUFFICIENT_SPACE_ON_RESOURCE' | |
51 | + | '420 METHOD_FAILURE' | |
52 | + | '421 DESTINATION_LOCKED' | |
53 | + | '422 UNPROCESSABLE_ENTITY' | |
54 | + | '423 LOCKED' | |
55 | + | '424 FAILED_DEPENDENCY' | |
56 | + | '425 TOO_EARLY' | |
57 | + | '426 UPGRADE_REQUIRED' | |
58 | + | '428 PRECONDITION_REQUIRED' | |
59 | + | '429 TOO_MANY_REQUESTS' | |
60 | + | '431 REQUEST_HEADER_FIELDS_TOO_LARGE' | |
61 | + | '451 UNAVAILABLE_FOR_LEGAL_REASONS' | |
62 | + | '500 INTERNAL_SERVER_ERROR' | |
63 | + | '501 NOT_IMPLEMENTED' | |
64 | + | '502 BAD_GATEWAY' | |
65 | + | '503 SERVICE_UNAVAILABLE' | |
66 | + | '504 GATEWAY_TIMEOUT' | |
67 | + | '505 HTTP_VERSION_NOT_SUPPORTED' | |
68 | + | '506 VARIANT_ALSO_NEGOTIATES' | |
69 | + | '507 INSUFFICIENT_STORAGE' | |
70 | + | '508 LOOP_DETECTED' | |
71 | + | '509 BANDWIDTH_LIMIT_EXCEEDED' | |
72 | + | '510 NOT_EXTENDED' | |
73 | + | '511 NETWORK_AUTHENTICATION_REQUIRED'; | |
74 | 74 | export type ProcureReturnBillDtoSendStore = |
75 | - | "DALANG_WAREHOUSE" | |
76 | - | "HOUJIE_WAREHOUSE"; | |
75 | + | 'DALANG_WAREHOUSE' | |
76 | + | 'HOUJIE_WAREHOUSE'; | |
77 | 77 | export type ProcureReturnBillDtoStatus = |
78 | - | "AUDIT_NOTPASS" | |
79 | - | "WAIT_SEND" | |
80 | - | "SENDED" | |
81 | - | "WAIT_AUDIT"; | |
78 | + | 'AUDIT_NOTPASS' | |
79 | + | 'WAIT_SEND' | |
80 | + | 'SENDED' | |
81 | + | 'WAIT_AUDIT'; | |
82 | 82 | export interface AdminAuthRoleVO { |
83 | 83 | menuIds?: Array<number>; |
84 | 84 | /** @format int64 */ |
... | ... | @@ -1465,11 +1465,20 @@ export interface InvoiceDto { |
1465 | 1465 | invoiceStatus?: string; |
1466 | 1466 | /** |
1467 | 1467 | * @description |
1468 | + * 发票类型 | |
1469 | + */ | |
1470 | + invoiceStatusText?: string; | |
1471 | + /** | |
1472 | + * @description | |
1468 | 1473 | * 开票日期 |
1469 | 1474 | * @format date-time |
1470 | 1475 | */ |
1471 | 1476 | invoicingTime?: string; |
1472 | 1477 | invoicingType?: string; |
1478 | + /** | |
1479 | + * @description | |
1480 | + * 开具类型 | |
1481 | + */ | |
1473 | 1482 | invoicingTypeText?: string; |
1474 | 1483 | logicDelete?: boolean; |
1475 | 1484 | /** |
... | ... | @@ -1501,6 +1510,11 @@ export interface InvoiceDto { |
1501 | 1510 | payeeText?: string; |
1502 | 1511 | /** |
1503 | 1512 | * @description |
1513 | + * 收款单位 | |
1514 | + */ | |
1515 | + payeeText?: string; | |
1516 | + /** | |
1517 | + * @description | |
1504 | 1518 | * 购买方 |
1505 | 1519 | */ |
1506 | 1520 | purchaser?: string; |
... | ... | @@ -3693,6 +3707,9 @@ export interface SubOrder { |
3693 | 3707 | id?: number; |
3694 | 3708 | image?: string; |
3695 | 3709 | invoiceApplyUsername?: string; |
3710 | + invoiceConfirmStatus?: string; | |
3711 | + /** @format date-time */ | |
3712 | + invoiceConfirmStatusDatetime?: string; | |
3696 | 3713 | invoiceInformation?: string; |
3697 | 3714 | /** @format int64 */ |
3698 | 3715 | invoiceRecordId?: number; | ... | ... |