kts-component-invoice-operate 3.1.12 → 3.1.13

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 (115) 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/ui/GoodsList/hook/useColumns/autoFillFn/index.d.ts +2 -0
  9. package/dist/index.esm.js +2754 -3920
  10. package/dist/index.js +2754 -3920
  11. package/docs/index.md +5 -5
  12. package/index.html +12 -12
  13. package/package.json +59 -59
  14. package/src/Invoice/InvoiceController/InvoiceControllerForm/index.ts +94 -94
  15. package/src/Invoice/InvoiceController/InvoiceControllerState/BuyerState/index.tsx +88 -88
  16. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/EndowCode/index.tsx +93 -93
  17. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IColumnsReplenish/index.ts +10 -10
  18. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IGood/index.ts +72 -72
  19. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ImportGoods/index.ts +80 -80
  20. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/LineAttributeType/index.ts +5 -5
  21. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ProductComparison/index.ts +9 -9
  22. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/index.ts +88 -88
  23. package/src/Invoice/InvoiceController/InvoiceControllerState/index.ts +48 -48
  24. package/src/Invoice/InvoiceController/fns/addGood.ts +11 -11
  25. package/src/Invoice/InvoiceController/fns/addGoodDiscount.ts +125 -125
  26. package/src/Invoice/InvoiceController/fns/delGood.ts +43 -43
  27. package/src/Invoice/InvoiceController/fns/getGoodsSearch.ts +23 -23
  28. package/src/Invoice/InvoiceController/fns/saveEditGood.ts +23 -23
  29. package/src/Invoice/InvoiceController/fns/setEditGood.ts +16 -16
  30. package/src/Invoice/InvoiceController/fns/setGoods.ts +10 -10
  31. package/src/Invoice/InvoiceController/fns/updateInvoiceNo.ts +8 -8
  32. package/src/Invoice/InvoiceController/index.ts +61 -61
  33. package/src/Invoice/_test/buyerNameSearch/index.tsx +41 -41
  34. package/src/Invoice/_test/deduction/index.tsx +935 -935
  35. package/src/Invoice/_test/draft/index.tsx +40 -40
  36. package/src/Invoice/_test/easiest/index.tsx +5 -5
  37. package/src/Invoice/_test/endowCode/index.tsx +1095 -1095
  38. package/src/Invoice/_test/goodsMenuExpand/index.tsx +32 -32
  39. package/src/Invoice/_test/importBuyer/index.tsx +74 -74
  40. package/src/Invoice/_test/importGoods/index.tsx +515 -515
  41. package/src/Invoice/_test/invoiceType/index.tsx +59 -59
  42. package/src/Invoice/_test/isInvoiceNo/index.tsx +12 -12
  43. package/src/Invoice/_test/replaceHead/index.tsx +22 -22
  44. package/src/Invoice/_test/retrieveData/index.tsx +22 -22
  45. package/src/Invoice/_test/seller/index.tsx +28 -28
  46. package/src/Invoice/_test/setDataSource/index.tsx +22 -22
  47. package/src/Invoice/_test/unit/index.tsx +19 -19
  48. package/src/Invoice/index.less +12 -12
  49. package/src/Invoice/index.md +53 -53
  50. package/src/Invoice/index.tsx +104 -104
  51. package/src/Invoice/tools/calculate/index.ts +97 -97
  52. package/src/Invoice/tools/coolingFn/index.ts +17 -17
  53. package/src/Invoice/tools/evaluate/index.ts +7 -7
  54. package/src/Invoice/tools/idGenerator/index.ts +2 -2
  55. package/src/Invoice/tools/itemName/index.ts +46 -46
  56. package/src/Invoice/tools/lazyFn/index.ts +19 -19
  57. package/src/Invoice/tools/strringFn/index.ts +40 -40
  58. package/src/Invoice/ui/AddComparisonDrawer/index.tsx +149 -149
  59. package/src/Invoice/ui/Buyer/index.less +219 -219
  60. package/src/Invoice/ui/Buyer/index.tsx +114 -114
  61. package/src/Invoice/ui/Buyer/ui/BuyerNameInput/index.tsx +166 -166
  62. package/src/Invoice/ui/Buyer/ui/ImportBuyerButton/index.tsx +21 -21
  63. package/src/Invoice/ui/EndowCodeDrawer/index.less +8 -8
  64. package/src/Invoice/ui/EndowCodeDrawer/index.tsx +445 -445
  65. package/src/Invoice/ui/GoodsList/hook/useColumns/autoFillFn/index.ts +513 -496
  66. package/src/Invoice/ui/GoodsList/hook/useColumns/index.tsx +618 -606
  67. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +9 -9
  68. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +34 -34
  69. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
  70. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
  71. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +76 -76
  72. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +35 -35
  73. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +34 -34
  74. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -13
  75. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +98 -98
  76. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
  77. package/src/Invoice/ui/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  78. package/src/Invoice/ui/GoodsList/hook/useDeduction/index.tsx +24 -24
  79. package/src/Invoice/ui/GoodsList/hook/useOnRow/index.tsx +39 -39
  80. package/src/Invoice/ui/GoodsList/hook/useRowSelection/index.tsx +111 -111
  81. package/src/Invoice/ui/GoodsList/hook/useToGenerateId/index.ts +8 -8
  82. package/src/Invoice/ui/GoodsList/hook/useWindowClick/index.tsx +23 -23
  83. package/src/Invoice/ui/GoodsList/index.less +177 -177
  84. package/src/Invoice/ui/GoodsList/index.tsx +177 -177
  85. package/src/Invoice/ui/GoodsList/ui/AddRowButton/index.tsx +61 -61
  86. package/src/Invoice/ui/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.less +21 -21
  87. package/src/Invoice/ui/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +244 -244
  88. package/src/Invoice/ui/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
  89. package/src/Invoice/ui/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +66 -66
  90. package/src/Invoice/ui/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +58 -58
  91. package/src/Invoice/ui/GoodsList/ui/BulkMenu/index.tsx +37 -37
  92. package/src/Invoice/ui/GoodsList/ui/DescribeSwitch/index.tsx +36 -36
  93. package/src/Invoice/ui/GoodsList/ui/Search/index.less +10 -10
  94. package/src/Invoice/ui/GoodsList/ui/Search/index.tsx +50 -50
  95. package/src/Invoice/ui/GoodsList/ui/Statistics/index.less +18 -18
  96. package/src/Invoice/ui/GoodsList/ui/Statistics/index.tsx +109 -109
  97. package/src/Invoice/ui/GoodsList/ui/TableRow/index.tsx +29 -29
  98. package/src/Invoice/ui/GoodsList/ui/TableVirtual/index.less +38 -38
  99. package/src/Invoice/ui/GoodsList/ui/TableVirtual/index.tsx +105 -105
  100. package/src/Invoice/ui/GoodsList/ui/TableVirtual.o/index.less +44 -44
  101. package/src/Invoice/ui/GoodsList/ui/TableVirtual.o/index.tsx +96 -96
  102. package/src/Invoice/ui/GoodsList/ui/TaxIncludedSwitch/index.tsx +30 -30
  103. package/src/Invoice/ui/ImportBuyerDrawer/index.tsx +75 -75
  104. package/src/Invoice/ui/ImportGoodsDrawer/index.tsx +174 -174
  105. package/src/Invoice/ui/InvoiceHeader/index.less +68 -68
  106. package/src/Invoice/ui/InvoiceHeader/index.tsx +246 -246
  107. package/src/Invoice/ui/Seller/index.less +113 -113
  108. package/src/Invoice/ui/Seller/index.tsx +98 -98
  109. package/src/Invoice/ui/Sign/index.less +14 -14
  110. package/src/Invoice/ui/Sign/index.tsx +71 -71
  111. package/src/index.ts +6 -6
  112. package/tsconfig.json +31 -31
  113. package/typings.d.ts +3 -3
  114. package/yarn.e.lock +14331 -14331
  115. 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
+ }