Commit 5d73e1d33adf3a54bfc76a4d94ee01d76f397eb1

Authored by zhongnanhuang
2 parents 1f86602e 77954e9c

Merge branch 'znh-small' into znh

src/pages/Order/components/FinancialDrawer.tsx
... ... @@ -4,17 +4,29 @@ import {
4 4 postServiceOrderEditOrder,
5 5 postServiceOrderInvoicing,
6 6 } from '@/services';
  7 +import { enumToSelect } from '@/utils';
7 8 import {
8 9 DrawerForm,
9 10 ProFormDatePicker,
  11 + ProFormSelect,
10 12 ProFormText,
11 13 ProFormTextArea,
12 14 } from '@ant-design/pro-components';
13 15 import { Form, message } from 'antd';
  16 +import { useEffect, useState } from 'react';
  17 +import { INVOCING_STATUS_OPTIONS_OLD } from '../constant';
14 18  
15   -export default ({ mainOrder, subOrders, isEdit, onClose }) => {
  19 +export default ({ mainOrder, subOrders, isEdit, isMainOrder, onClose }) => {
  20 + const [invoicingStatus, setInvoicingStatus] = useState('');
16 21 const subIds = subOrders.map((item) => item.id);
17 22 console.log(subOrders);
  23 + useEffect(() => {
  24 + // 在组件挂载或数据变化时,更新组件状态
  25 + if (mainOrder) {
  26 + setInvoicingStatus(subOrders[0].invoicingStatus);
  27 + }
  28 + }, [mainOrder]);
  29 +
18 30 const [form] = Form.useForm<{ name: string; company: string }>();
19 31 return (
20 32 <DrawerForm<{
... ... @@ -44,6 +56,8 @@ export default ({ mainOrder, subOrders, isEdit, onClose }) =&gt; {
44 56 subIds: subIds,
45 57 collectMoneyTime: form.getFieldValue('collectMoneyTime'),
46 58 invoicingNotes: form.getFieldValue('invoicingNotes'),
  59 + invoicingStatus: form.getFieldValue('invoicingStatus'),
  60 + mainorderOrSubOrderInvoicing: isMainOrder,
47 61 };
48 62 if (isEdit) {
49 63 res = await postServiceOrderEditOrder({ data: body });
... ... @@ -59,6 +73,21 @@ export default ({ mainOrder, subOrders, isEdit, onClose }) =&gt; {
59 73 return !val && onClose();
60 74 }}
61 75 >
  76 + {isMainOrder ? (
  77 + <ProFormSelect
  78 + placeholder="选择是否需要开票"
  79 + name="invoicingStatus"
  80 + width="lg"
  81 + label="是否需要开票"
  82 + options={enumToSelect(INVOCING_STATUS_OPTIONS_OLD)}
  83 + onChange={setInvoicingStatus}
  84 + // disabled={mainInfoDisbled}
  85 + rules={[{ required: true, message: '是否需要开票必填' }]}
  86 + />
  87 + ) : (
  88 + ''
  89 + )}
  90 +
62 91 <ProFormText
63 92 width="lg"
64 93 name="invoiceIdentificationNumber"
... ... @@ -80,20 +109,29 @@ export default ({ mainOrder, subOrders, isEdit, onClose }) =&gt; {
80 109 placeholder="请输入开户银行账号"
81 110 disabled
82 111 />
83   - <ProFormDatePicker
84   - width="lg"
85   - name="invoicingTime"
86   - label="开票时间"
87   - disabled={isEdit}
88   - rules={[{ required: !isEdit ? true : false, message: '这是必填项' }]}
89   - initialValue={subOrders[0].invoicingTime}
90   - />
91   - <ProFormDatePicker
92   - width="lg"
93   - name="collectMoneyTime"
94   - label="收款时间"
95   - initialValue={subOrders[0].collectMoneyTime}
96   - />
  112 +
  113 + {invoicingStatus !== 'UN_INVOICE'
  114 + ? [
  115 + <ProFormDatePicker
  116 + key="invoicingTime"
  117 + width="lg"
  118 + name="invoicingTime"
  119 + label="开票时间"
  120 + disabled={isEdit}
  121 + rules={[
  122 + { required: !isEdit ? true : false, message: '这是必填项' },
  123 + ]}
  124 + initialValue={subOrders[0].invoicingTime}
  125 + />,
  126 + <ProFormDatePicker
  127 + key="collectMoneyTime"
  128 + width="lg"
  129 + name="collectMoneyTime"
  130 + label="收款时间"
  131 + initialValue={subOrders[0].collectMoneyTime}
  132 + />,
  133 + ]
  134 + : ''}
97 135  
98 136 <ProFormTextArea
99 137 width="lg"
... ...
src/pages/Order/components/HistoryModal.tsx
... ... @@ -2,7 +2,11 @@ import { postServiceOrderQueryHistoryOrderRecord } from &#39;@/services&#39;;
2 2 import { enumValueToLabel, formatDateTime } from '@/utils';
3 3 import { Button, Col, Empty, Flex, Modal, Row, Spin } from 'antd';
4 4 import { useEffect, useState } from 'react';
5   -import { HISTORY_OPT_TYPE, ORDER_STATUS_OPTIONS } from '../constant';
  5 +import {
  6 + FINANCIAL_STATUS_OPTIONS,
  7 + HISTORY_OPT_TYPE,
  8 + ORDER_STATUS_OPTIONS,
  9 +} from '../constant';
6 10  
7 11 export default ({ subOrders, onClose }) => {
8 12 let subOrderIds = subOrders?.map((subOrder: any) => {
... ... @@ -88,7 +92,10 @@ export default ({ subOrders, onClose }) =&gt; {
88 92 history.status,
89 93 ORDER_STATUS_OPTIONS,
90 94 ) === undefined
91   - ? '已开票'
  95 + ? enumValueToLabel(
  96 + history.status,
  97 + FINANCIAL_STATUS_OPTIONS,
  98 + )
92 99 : enumValueToLabel(
93 100 history.status,
94 101 ORDER_STATUS_OPTIONS,
... ...
src/pages/Order/components/OrderDrawer.tsx
... ... @@ -27,6 +27,7 @@ import { cloneDeep } from &#39;lodash&#39;;
27 27 import { useEffect, useRef, useState } from 'react';
28 28 import {
29 29 INVOCING_STATUS_OPTIONS,
  30 + INVOCING_STATUS_OPTIONS_OLD,
30 31 PAYMENT_CHANNEL_OPTIONS,
31 32 PAYMENT_METHOD_OPTIONS,
32 33 PRODUCT_BELONG_DEPARTMENT_OPTIONS,
... ... @@ -44,6 +45,17 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
44 45 return orderOptType === type;
45 46 }
46 47  
  48 + /**
  49 + *
  50 + * @returns 获取开票选项
  51 + */
  52 + function getInvoicingSelect() {
  53 + if (optType('edit') || optType('copy')) {
  54 + return enumToSelect(INVOCING_STATUS_OPTIONS_OLD);
  55 + }
  56 + return enumToSelect(INVOCING_STATUS_OPTIONS);
  57 + }
  58 +
47 59 const fileList: any = [];
48 60  
49 61 useEffect(() => {
... ... @@ -77,6 +89,11 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
77 89 });
78 90 }
79 91  
  92 + //复制的时候,如果是不需要开票,要把开票信息清空
  93 + if (optType('copy') && data.invoicingStatus === 'UN_INVOICE') {
  94 + data.invoiceIdentificationNumber = undefined;
  95 + }
  96 +
80 97 if (subOrders !== undefined && subOrders.length > 0) {
81 98 data.list = subOrders;
82 99 }
... ... @@ -447,7 +464,7 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
447 464 name="invoicingStatus"
448 465 width="lg"
449 466 label="是否需要开票"
450   - options={enumToSelect(INVOCING_STATUS_OPTIONS)}
  467 + options={getInvoicingSelect()}
451 468 // disabled={mainInfoDisbled}
452 469 onChange={(_, option) => {
453 470 setInvoicingStatus(option.value);
... ...
src/pages/Order/constant.ts
... ... @@ -13,6 +13,7 @@ export const PAYMENT_METHOD_OPTIONS = {
13 13 CASH_ON_DELIVERY: '货到付款',
14 14 UNPAID: '未付款',
15 15 PLATFORM_SETTLEMENT: '平台结算',
  16 + WITHHOLDING_ADVANCE_DEPOSIT: '扣预存',
16 17 };
17 18  
18 19 export const PRODUCT_BELONG_DEPARTMENT_OPTIONS = {
... ... @@ -23,13 +24,19 @@ export const PRODUCT_BELONG_DEPARTMENT_OPTIONS = {
23 24 EXPERIMENTAL_CONSUMABLES: '实验耗材事业部门',
24 25 };
25 26  
26   -export const INVOCING_STATUS_OPTIONS = {
  27 +export const INVOCING_STATUS_OPTIONS_OLD = {
27 28 UN_INVOICE: '不需开票',
28 29 SPECIALLY_INVOICED: '专票',
29 30 COMMON_INVOICED: '普票',
30 31 INVOICED: '需要开票',
31 32 };
32 33  
  34 +export const INVOCING_STATUS_OPTIONS = {
  35 + UN_INVOICE: '不需开票',
  36 + SPECIALLY_INVOICED: '专票',
  37 + COMMON_INVOICED: '普票',
  38 +};
  39 +
33 40 export const INVOCING_STATUS = {
34 41 UN_INVOICE: '不需开票',
35 42 SPECIALLY_INVOICED: '专票',
... ... @@ -84,6 +91,11 @@ export const ORDER_STATUS_OPTIONS = {
84 91 CONFIRM_RECEIPT: '确认收货',
85 92 };
86 93  
  94 +export const FINANCIAL_STATUS_OPTIONS = {
  95 + INVOICING: '已开票',
  96 + UN_INVOICING: '取消开票',
  97 +};
  98 +
87 99 export const TAGS_COLOR = new Map<string, string>([
88 100 ['UN_INVOICE', 'success'],
89 101 ['INVOICED', 'processing'],
... ... @@ -153,6 +165,7 @@ export const HISTORY_OPT_TYPE = new Map&lt;string, string&gt;([
153 165 ['INVOICING', '财务开票'],
154 166 ['EDIT_ORDER', '财务编辑'],
155 167 ['MODIFY_SEN_INFORMATION', '发货信息编辑'],
  168 + ['UN_INVOICING', '财务取消开票'],
156 169 ]);
157 170  
158 171 export const MAIN_ORDER_COLUMNS = [
... ... @@ -266,7 +279,7 @@ export const MAIN_ORDER_COLUMNS = [
266 279 {
267 280 title: '创建日期',
268 281 dataIndex: 'createTime',
269   - valueType: 'dateRange',
  282 + valueType: 'dateTimeRange',
270 283 hideInTable: true,
271 284 search: {
272 285 transform: (value) => {
... ...
src/pages/Order/index.tsx
... ... @@ -441,6 +441,7 @@ const OrderPage = () =&gt; {
441 441 setIsFinalcialEdit(false);
442 442 setOrderRow(record);
443 443 setSelectedRows([optRecord]);
  444 + setIsMainOrder(false);
444 445 }}
445 446 >
446 447 开票
... ... @@ -615,6 +616,12 @@ const OrderPage = () =&gt; {
615 616 <span className="text-[#8C8C8C]">联系人:</span>
616 617 <span className="text-slate-700">
617 618 {record.institutionContactName + ' '}
  619 + </span>
  620 + </span>
  621 + <span>
  622 + <span className="text-[#8C8C8C]">收货人:</span>
  623 + <span className="text-slate-700">
  624 + {record.customerName + ' '}
618 625 <ContainerTwoTone
619 626 className="hover:curcor-pointer"
620 627 onClick={() => {
... ... @@ -782,10 +789,14 @@ const OrderPage = () =&gt; {
782 789 let selectedSubOrders = selectedRowObj[record.id];
783 790 setSelectedRows(selectedSubOrders);
784 791 if (selectedSubOrders === undefined) {
  792 + setIsMainOrder(true);
785 793 setSelectedRows(record.subOrderInformationLists);
  794 + } else {
  795 + setIsMainOrder(false);
786 796 }
787 797 setOrderRow(record);
788 798 setFinancialVisible(true);
  799 + setIsFinalcialEdit(false);
789 800 }}
790 801 >
791 802 开票
... ... @@ -1196,10 +1207,13 @@ const OrderPage = () =&gt; {
1196 1207 isEdit={isFinalcialEdit}
1197 1208 mainOrder={orderRow}
1198 1209 subOrders={selectedRows}
  1210 + isMainOrder={isMainOrder}
1199 1211 onClose={() => {
1200 1212 setFinancialVisible(false);
1201 1213 setOrderRow({});
1202 1214 refreshTable();
  1215 + setIsMainOrder(false);
  1216 + setIsFinalcialEdit(false);
1203 1217 }}
1204 1218 />
1205 1219 )}
... ...
src/pages/OrderReport/index.less 0 → 100644
  1 +.order-statictis-card .ant-pro-card-body {
  2 + padding-top: 0;
  3 +}
  4 +
  5 +.order-statictis-card {
  6 + height: 100%;
  7 +}
... ...