kts-component-invoice-operate 3.1.2 → 3.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/.dumi/theme/builtins/API.tsx +66 -66
  2. package/.editorconfig +16 -16
  3. package/.fatherrc.ts +4 -4
  4. package/.prettierignore +7 -7
  5. package/.prettierrc +11 -11
  6. package/.umirc.ts +8 -8
  7. package/README.md +5 -5
  8. package/dist/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IGood/index.d.ts +2 -2
  9. package/dist/Invoice/ui/GoodsList/hook/useColumns/autoFillFn/index.d.ts +1 -1
  10. package/dist/index.esm.js +2715 -3859
  11. package/dist/index.js +2715 -3859
  12. package/docs/index.md +5 -5
  13. package/docs-dist/umi.js +1 -1
  14. package/index.html +12 -12
  15. package/package.json +59 -59
  16. package/src/Invoice/InvoiceController/InvoiceControllerForm/index.ts +94 -94
  17. package/src/Invoice/InvoiceController/InvoiceControllerState/BuyerState/index.tsx +88 -88
  18. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/EndowCode/index.tsx +90 -90
  19. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IColumnsReplenish/index.ts +10 -10
  20. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IGood/index.ts +72 -72
  21. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ImportGoods/index.ts +80 -80
  22. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/LineAttributeType/index.ts +5 -5
  23. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ProductComparison/index.ts +9 -9
  24. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/index.ts +88 -88
  25. package/src/Invoice/InvoiceController/InvoiceControllerState/index.ts +42 -42
  26. package/src/Invoice/InvoiceController/fns/addGood.ts +11 -11
  27. package/src/Invoice/InvoiceController/fns/addGoodDiscount.ts +125 -125
  28. package/src/Invoice/InvoiceController/fns/delGood.ts +43 -43
  29. package/src/Invoice/InvoiceController/fns/getGoodsSearch.ts +23 -23
  30. package/src/Invoice/InvoiceController/fns/saveEditGood.ts +23 -23
  31. package/src/Invoice/InvoiceController/fns/setEditGood.ts +16 -16
  32. package/src/Invoice/InvoiceController/fns/setGoods.ts +10 -10
  33. package/src/Invoice/InvoiceController/fns/updateInvoiceNo.ts +8 -8
  34. package/src/Invoice/InvoiceController/index.ts +61 -61
  35. package/src/Invoice/_test/buyerNameSearch/index.tsx +41 -41
  36. package/src/Invoice/_test/deduction/index.tsx +935 -935
  37. package/src/Invoice/_test/draft/index.tsx +40 -40
  38. package/src/Invoice/_test/easiest/index.tsx +5 -5
  39. package/src/Invoice/_test/endowCode/index.tsx +1095 -1095
  40. package/src/Invoice/_test/goodsMenuExpand/index.tsx +32 -32
  41. package/src/Invoice/_test/importBuyer/index.tsx +74 -74
  42. package/src/Invoice/_test/importGoods/index.tsx +515 -515
  43. package/src/Invoice/_test/invoiceType/index.tsx +59 -59
  44. package/src/Invoice/_test/isInvoiceNo/index.tsx +12 -12
  45. package/src/Invoice/_test/replaceHead/index.tsx +22 -22
  46. package/src/Invoice/_test/retrieveData/index.tsx +22 -22
  47. package/src/Invoice/_test/seller/index.tsx +28 -28
  48. package/src/Invoice/_test/setDataSource/index.tsx +22 -22
  49. package/src/Invoice/_test/unit/index.tsx +19 -19
  50. package/src/Invoice/index.less +12 -12
  51. package/src/Invoice/index.md +53 -53
  52. package/src/Invoice/index.tsx +104 -104
  53. package/src/Invoice/tools/calculate/index.ts +97 -97
  54. package/src/Invoice/tools/coolingFn/index.ts +17 -17
  55. package/src/Invoice/tools/evaluate/index.ts +7 -7
  56. package/src/Invoice/tools/idGenerator/index.ts +2 -2
  57. package/src/Invoice/tools/itemName/index.ts +46 -46
  58. package/src/Invoice/tools/lazyFn/index.ts +19 -19
  59. package/src/Invoice/tools/strringFn/index.ts +40 -40
  60. package/src/Invoice/ui/AddComparisonDrawer/index.tsx +149 -149
  61. package/src/Invoice/ui/Buyer/index.less +219 -219
  62. package/src/Invoice/ui/Buyer/index.tsx +114 -114
  63. package/src/Invoice/ui/Buyer/ui/BuyerNameInput/index.tsx +166 -166
  64. package/src/Invoice/ui/Buyer/ui/ImportBuyerButton/index.tsx +21 -21
  65. package/src/Invoice/ui/EndowCodeDrawer/index.less +8 -8
  66. package/src/Invoice/ui/EndowCodeDrawer/index.tsx +441 -441
  67. package/src/Invoice/ui/GoodsList/hook/useColumns/autoFillFn/index.ts +490 -490
  68. package/src/Invoice/ui/GoodsList/hook/useColumns/index.tsx +603 -603
  69. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +9 -9
  70. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +34 -34
  71. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
  72. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
  73. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +76 -76
  74. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +35 -35
  75. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +34 -34
  76. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -13
  77. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +98 -98
  78. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
  79. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  80. package/src/Invoice/ui/GoodsList/hook/useDeduction/index.tsx +24 -24
  81. package/src/Invoice/ui/GoodsList/hook/useOnRow/index.tsx +39 -39
  82. package/src/Invoice/ui/GoodsList/hook/useRowSelection/index.tsx +111 -111
  83. package/src/Invoice/ui/GoodsList/hook/useToGenerateId/index.ts +8 -8
  84. package/src/Invoice/ui/GoodsList/hook/useWindowClick/index.tsx +23 -23
  85. package/src/Invoice/ui/GoodsList/index.less +170 -170
  86. package/src/Invoice/ui/GoodsList/index.tsx +177 -177
  87. package/src/Invoice/ui/GoodsList/ui/AddRowButton/index.tsx +61 -61
  88. package/src/Invoice/ui/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.less +21 -21
  89. package/src/Invoice/ui/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +244 -244
  90. package/src/Invoice/ui/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
  91. package/src/Invoice/ui/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +66 -66
  92. package/src/Invoice/ui/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +58 -58
  93. package/src/Invoice/ui/GoodsList/ui/BulkMenu/index.tsx +37 -37
  94. package/src/Invoice/ui/GoodsList/ui/DescribeSwitch/index.tsx +36 -36
  95. package/src/Invoice/ui/GoodsList/ui/Search/index.less +10 -10
  96. package/src/Invoice/ui/GoodsList/ui/Search/index.tsx +50 -50
  97. package/src/Invoice/ui/GoodsList/ui/Statistics/index.less +18 -18
  98. package/src/Invoice/ui/GoodsList/ui/Statistics/index.tsx +109 -109
  99. package/src/Invoice/ui/GoodsList/ui/TableRow/index.tsx +27 -27
  100. package/src/Invoice/ui/GoodsList/ui/TableVirtual/index.less +38 -38
  101. package/src/Invoice/ui/GoodsList/ui/TableVirtual/index.tsx +105 -105
  102. package/src/Invoice/ui/GoodsList/ui/TableVirtual.o/index.less +44 -44
  103. package/src/Invoice/ui/GoodsList/ui/TableVirtual.o/index.tsx +96 -96
  104. package/src/Invoice/ui/GoodsList/ui/TaxIncludedSwitch/index.tsx +30 -30
  105. package/src/Invoice/ui/ImportBuyerDrawer/index.tsx +75 -75
  106. package/src/Invoice/ui/ImportGoodsDrawer/index.tsx +174 -174
  107. package/src/Invoice/ui/InvoiceHeader/index.less +68 -68
  108. package/src/Invoice/ui/InvoiceHeader/index.tsx +246 -246
  109. package/src/Invoice/ui/Seller/index.less +113 -113
  110. package/src/Invoice/ui/Seller/index.tsx +98 -98
  111. package/src/Invoice/ui/Sign/index.less +14 -14
  112. package/src/Invoice/ui/Sign/index.tsx +71 -71
  113. package/src/index.ts +6 -6
  114. package/tsconfig.json +31 -31
  115. package/typings.d.ts +3 -3
  116. package/yarn.e.lock +14331 -14331
  117. package/yarn.o.lock +14800 -14800
@@ -1,167 +1,167 @@
1
-
2
- import React from 'react';
3
- import { Popover, Input, Divider, Spin, Empty } from 'kts-components-antd-x3';
4
- import Invoice from '../../../../';
5
- import { IBuyerInfo } from '../../../../InvoiceController/InvoiceControllerState/BuyerState';
6
-
7
- export interface IBuyerNameInputProps {
8
- value?: string;
9
- onChange?: (e: string) => void;
10
- }
11
-
12
- export default (props: IBuyerNameInputProps) => {
13
-
14
- /** 控制器 */
15
- const controller = Invoice.useInvoiceController();
16
-
17
- /** 组件模式 */
18
- const model = controller.useMemo(s => s.model, []);
19
-
20
- /** 是否显示 */
21
- const [visible, setVisible] = React.useState(false);
22
-
23
- /** 自动填充 */
24
- const autoContainer = controller.useMemo(s => s.buyerState.autoContainer, []);
25
-
26
- /** 自动填充数据 */
27
- const { dataSource, onBuyNameChange, loading } = useDataSource();
28
-
29
- /** 悬浮内容 */
30
- const content = React.useMemo(() => {
31
- return (
32
- <div className='kts-invoice-operate-buyer-name-content'>
33
- {
34
- loading
35
- ? (
36
- <div style={{ textAlign: 'center' }} >
37
- <Spin />
38
- </div>
39
- )
40
- : (
41
- <>
42
- <div className='kts-invoice-operate-buyer-name-content-block' style={{ padding: '14px 10px' }} >
43
- <label style={{ marginBottom: 10 }} >最近开具</label>
44
- <ul className='kts-invoice-operate-buyer-name-content-recently-issued' >
45
- {
46
- !dataSource.recent || dataSource.recent.length <= 0
47
- ? <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />
48
- : dataSource.recent?.map((e, i) => <li key={i} onClick={() => { onClickItem(e) }} style={{ marginBottom: interval(i, dataSource.recent?.length ?? 0) }} ><MyTag>{e.buyerName}</MyTag></li>)
49
- }
50
- </ul>
51
- </div>
52
- <Divider style={{ margin: "0 6px" }} />
53
- <div className='kts-invoice-operate-buyer-name-content-block' style={{ padding: '14px 10px 4px' }} >
54
- <label style={{ padding: '0 10px' }} >选择公司</label>
55
- <div style={{ maxHeight: 200, overflow: "auto" }} >
56
- {
57
- !dataSource.list || dataSource.list.length <= 0
58
- ? <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />
59
- : dataSource.list.map((e, i) => {
60
- return (
61
- <ul key={i} onClick={() => { onClickItem(e) }} className='kts-invoice-operate-buyer-name-content-select-company' >
62
- <li title={e.buyerName} >{e.buyerName}</li>
63
- <li title={e.buyerNo} >{e.buyerNo}</li>
64
- </ul>
65
- )
66
- })
67
- }
68
- </div>
69
- </div>
70
- </>
71
- )
72
- }
73
- </div>
74
- )
75
- }, [dataSource, loading])
76
-
77
- /** 点击了选择项 */
78
- const onClickItem = React.useCallback(async (e: IBuyerInfo) => {
79
- controller.formList.get('buyer')?.setFieldsValue(e);
80
- setVisible(false);
81
- }, [controller]);
82
-
83
- /** 输入框数据改变 */
84
- const onChangeInput = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {
85
- props.onChange && props.onChange(e.target.value);
86
- onBuyNameChange(e.target.value);
87
- }, [dataSource])
88
-
89
- React.useEffect(() => {
90
- visible && onBuyNameChange(props.value)
91
- }, [visible, props.value])
92
-
93
- if (model === 'prefab' || !autoContainer) {
94
- return (
95
- <Input
96
- size="small"
97
- autoComplete="off"
98
- value={props.value}
99
- readOnly={model === 'prefab'}
100
- onChange={e => { props.onChange && props.onChange(e.target.value) }}
101
- />
102
- )
103
- }
104
-
105
- return (
106
- <Popover
107
- onVisibleChange={setVisible}
108
- overlayClassName='kts-invoice-operate-buyer-name-popover'
109
- placement="bottomLeft"
110
- trigger="click"
111
- visible={visible}
112
- content={content}
113
- >
114
- <Input
115
- size="small"
116
- autoComplete="off"
117
- value={props.value}
118
- onChange={onChangeInput}
119
- />
120
- </Popover>
121
- );
122
- };
123
-
124
-
125
- /** 获取自动填充数据 */
126
- function useDataSource() {
127
- /** 控制器 */
128
- const controller = Invoice.useInvoiceController();
129
-
130
- const [loading, setLoading] = React.useState(false);
131
-
132
- const [dataSource, setDataSource] = React.useState<{ recent?: IBuyerInfo[], list?: IBuyerInfo[] }>({ recent: [], list: [] })
133
-
134
- const autoContainer = controller.useMemo(s => s.buyerState.autoContainer, []);
135
-
136
- const onBuyNameChange = React.useCallback(async (e?: string | undefined) => {
137
- if (!autoContainer) return;
138
- setLoading(true);
139
- setDataSource(await autoContainer.onBuyNameChange(e));
140
- setLoading(false);
141
- }, [autoContainer])
142
-
143
- return {
144
- /** 购买方变化 */
145
- onBuyNameChange,
146
-
147
- /** 获取自动填充数据 */
148
- dataSource,
149
-
150
- /** 加载中 */
151
- loading,
152
- }
153
- }
154
-
155
- function MyTag(props: any) {
156
- return (
157
- <span className='kts-invoice-operate-buyer-name-content-tag' title={props.children} >{props.children}</span>
158
- )
159
- }
160
-
161
- function interval(i: number, t: number) {
162
- if (t % 2 === 0) {
163
- return i > t - 3 ? 0 : 20;
164
- } else {
165
- return i > t - 2 ? 0 : 20;
166
- }
1
+
2
+ import React from 'react';
3
+ import { Popover, Input, Divider, Spin, Empty } from 'kts-components-antd-x3';
4
+ import Invoice from '../../../../';
5
+ import { IBuyerInfo } from '../../../../InvoiceController/InvoiceControllerState/BuyerState';
6
+
7
+ export interface IBuyerNameInputProps {
8
+ value?: string;
9
+ onChange?: (e: string) => void;
10
+ }
11
+
12
+ export default (props: IBuyerNameInputProps) => {
13
+
14
+ /** 控制器 */
15
+ const controller = Invoice.useInvoiceController();
16
+
17
+ /** 组件模式 */
18
+ const model = controller.useMemo(s => s.model, []);
19
+
20
+ /** 是否显示 */
21
+ const [visible, setVisible] = React.useState(false);
22
+
23
+ /** 自动填充 */
24
+ const autoContainer = controller.useMemo(s => s.buyerState.autoContainer, []);
25
+
26
+ /** 自动填充数据 */
27
+ const { dataSource, onBuyNameChange, loading } = useDataSource();
28
+
29
+ /** 悬浮内容 */
30
+ const content = React.useMemo(() => {
31
+ return (
32
+ <div className='kts-invoice-operate-buyer-name-content'>
33
+ {
34
+ loading
35
+ ? (
36
+ <div style={{ textAlign: 'center' }} >
37
+ <Spin />
38
+ </div>
39
+ )
40
+ : (
41
+ <>
42
+ <div className='kts-invoice-operate-buyer-name-content-block' style={{ padding: '14px 10px' }} >
43
+ <label style={{ marginBottom: 10 }} >最近开具</label>
44
+ <ul className='kts-invoice-operate-buyer-name-content-recently-issued' >
45
+ {
46
+ !dataSource.recent || dataSource.recent.length <= 0
47
+ ? <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />
48
+ : dataSource.recent?.map((e, i) => <li key={i} onClick={() => { onClickItem(e) }} style={{ marginBottom: interval(i, dataSource.recent?.length ?? 0) }} ><MyTag>{e.buyerName}</MyTag></li>)
49
+ }
50
+ </ul>
51
+ </div>
52
+ <Divider style={{ margin: "0 6px" }} />
53
+ <div className='kts-invoice-operate-buyer-name-content-block' style={{ padding: '14px 10px 4px' }} >
54
+ <label style={{ padding: '0 10px' }} >选择公司</label>
55
+ <div style={{ maxHeight: 200, overflow: "auto" }} >
56
+ {
57
+ !dataSource.list || dataSource.list.length <= 0
58
+ ? <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />
59
+ : dataSource.list.map((e, i) => {
60
+ return (
61
+ <ul key={i} onClick={() => { onClickItem(e) }} className='kts-invoice-operate-buyer-name-content-select-company' >
62
+ <li title={e.buyerName} >{e.buyerName}</li>
63
+ <li title={e.buyerNo} >{e.buyerNo}</li>
64
+ </ul>
65
+ )
66
+ })
67
+ }
68
+ </div>
69
+ </div>
70
+ </>
71
+ )
72
+ }
73
+ </div>
74
+ )
75
+ }, [dataSource, loading])
76
+
77
+ /** 点击了选择项 */
78
+ const onClickItem = React.useCallback(async (e: IBuyerInfo) => {
79
+ controller.formList.get('buyer')?.setFieldsValue(e);
80
+ setVisible(false);
81
+ }, [controller]);
82
+
83
+ /** 输入框数据改变 */
84
+ const onChangeInput = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {
85
+ props.onChange && props.onChange(e.target.value);
86
+ onBuyNameChange(e.target.value);
87
+ }, [dataSource])
88
+
89
+ React.useEffect(() => {
90
+ visible && onBuyNameChange(props.value)
91
+ }, [visible, props.value])
92
+
93
+ if (model === 'prefab' || !autoContainer) {
94
+ return (
95
+ <Input
96
+ size="small"
97
+ autoComplete="off"
98
+ value={props.value}
99
+ readOnly={model === 'prefab'}
100
+ onChange={e => { props.onChange && props.onChange(e.target.value) }}
101
+ />
102
+ )
103
+ }
104
+
105
+ return (
106
+ <Popover
107
+ onVisibleChange={setVisible}
108
+ overlayClassName='kts-invoice-operate-buyer-name-popover'
109
+ placement="bottomLeft"
110
+ trigger="click"
111
+ visible={visible}
112
+ content={content}
113
+ >
114
+ <Input
115
+ size="small"
116
+ autoComplete="off"
117
+ value={props.value}
118
+ onChange={onChangeInput}
119
+ />
120
+ </Popover>
121
+ );
122
+ };
123
+
124
+
125
+ /** 获取自动填充数据 */
126
+ function useDataSource() {
127
+ /** 控制器 */
128
+ const controller = Invoice.useInvoiceController();
129
+
130
+ const [loading, setLoading] = React.useState(false);
131
+
132
+ const [dataSource, setDataSource] = React.useState<{ recent?: IBuyerInfo[], list?: IBuyerInfo[] }>({ recent: [], list: [] })
133
+
134
+ const autoContainer = controller.useMemo(s => s.buyerState.autoContainer, []);
135
+
136
+ const onBuyNameChange = React.useCallback(async (e?: string | undefined) => {
137
+ if (!autoContainer) return;
138
+ setLoading(true);
139
+ setDataSource(await autoContainer.onBuyNameChange(e));
140
+ setLoading(false);
141
+ }, [autoContainer])
142
+
143
+ return {
144
+ /** 购买方变化 */
145
+ onBuyNameChange,
146
+
147
+ /** 获取自动填充数据 */
148
+ dataSource,
149
+
150
+ /** 加载中 */
151
+ loading,
152
+ }
153
+ }
154
+
155
+ function MyTag(props: any) {
156
+ return (
157
+ <span className='kts-invoice-operate-buyer-name-content-tag' title={props.children} >{props.children}</span>
158
+ )
159
+ }
160
+
161
+ function interval(i: number, t: number) {
162
+ if (t % 2 === 0) {
163
+ return i > t - 3 ? 0 : 20;
164
+ } else {
165
+ return i > t - 2 ? 0 : 20;
166
+ }
167
167
  }
@@ -1,21 +1,21 @@
1
- import React from 'react';
2
- import { Button } from 'kts-components-antd-x3';
3
- import Invoice from '../../../../';
4
-
5
- export default () => {
6
- const controller = Invoice.useInvoiceController();
7
-
8
- const onClick = React.useCallback(() => {
9
- controller.pipeline(async (s) => {
10
- s.buyerState.isVisibleDrawer = true;
11
- })();
12
- }, [controller]);
13
-
14
- return (
15
- <>
16
- {controller.getBuyerList && (
17
- <Button type="link" icon="plus-circle" onClick={onClick} />
18
- )}
19
- </>
20
- );
21
- };
1
+ import React from 'react';
2
+ import { Button } from 'kts-components-antd-x3';
3
+ import Invoice from '../../../../';
4
+
5
+ export default () => {
6
+ const controller = Invoice.useInvoiceController();
7
+
8
+ const onClick = React.useCallback(() => {
9
+ controller.pipeline(async (s) => {
10
+ s.buyerState.isVisibleDrawer = true;
11
+ })();
12
+ }, [controller]);
13
+
14
+ return (
15
+ <>
16
+ {controller.getBuyerList && (
17
+ <Button type="link" icon="plus-circle" onClick={onClick} />
18
+ )}
19
+ </>
20
+ );
21
+ };
@@ -1,8 +1,8 @@
1
- .kts-invoice-operate-goods-endow-code-button-list {
2
- display: flex;
3
- flex-direction: column;
4
-
5
- & > button {
6
- margin-bottom: 10px;
7
- }
8
- }
1
+ .kts-invoice-operate-goods-endow-code-button-list {
2
+ display: flex;
3
+ flex-direction: column;
4
+
5
+ & > button {
6
+ margin-bottom: 10px;
7
+ }
8
+ }