kts-component-invoice-operate 3.2.164 → 3.2.166

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 (218) 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 +9 -9
  8. package/dist/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/EndowCode/index.d.ts +4 -4
  9. package/dist/TaxClassificationCodeModal/index.d.ts +4 -0
  10. package/dist/index.esm.js +798 -699
  11. package/dist/index.js +797 -698
  12. package/docs/index.md +5 -5
  13. package/docs-dist/static/arrowDown.a1cbf0d8.svg +2 -2
  14. package/docs-dist/static/arrowUp.4c482054.svg +2 -2
  15. package/docs-dist/static/fork.5431267d.svg +11 -11
  16. package/docs-dist/static/plus.44013ce3.svg +11 -11
  17. package/docs-dist/static/plus.4fd1af30.svg +11 -11
  18. package/index.html +12 -12
  19. package/package.json +61 -61
  20. package/src/Invoice/Invoice-digtal/_test/disabled/index.tsx +40 -40
  21. package/src/Invoice/Invoice-digtal/_test/easiest/index.tsx +17 -17
  22. package/src/Invoice/Invoice-digtal/_test/header/index.tsx +84 -84
  23. package/src/Invoice/Invoice-digtal/_test/importGoods/index.tsx +868 -868
  24. package/src/Invoice/Invoice-digtal/_test/importStakeholder/index.tsx +18 -18
  25. package/src/Invoice/Invoice-digtal/_test/lineCredit/index.tsx +19 -19
  26. package/src/Invoice/Invoice-digtal/_test/prefab/index.tsx +150 -150
  27. package/src/Invoice/Invoice-digtal/_test/readOnly/index.tsx +55 -55
  28. package/src/Invoice/Invoice-digtal/_test/realEstateInfo/index.tsx +21 -21
  29. package/src/Invoice/Invoice-digtal/_test/stakeholder/index.tsx +12 -12
  30. package/src/Invoice/Invoice-digtal/_test/typeSelection/index.tsx +29 -29
  31. package/src/Invoice/Invoice-digtal/index.md +34 -34
  32. package/src/Invoice/InvoiceController/InvoiceControllerForm/index.ts +95 -95
  33. package/src/Invoice/InvoiceController/InvoiceControllerState/AutoComplete/index.ts +26 -26
  34. package/src/Invoice/InvoiceController/InvoiceControllerState/BuyerState/index.tsx +88 -88
  35. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/Drag/index.ts +15 -15
  36. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/EndowCode/index.tsx +104 -104
  37. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IColumnsReplenish/index.ts +10 -10
  38. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IGood/index.ts +87 -87
  39. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ImportGoods/index.ts +81 -81
  40. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/LineAttributeType/index.ts +7 -7
  41. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ProductComparison/index.ts +9 -9
  42. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/index.ts +131 -131
  43. package/src/Invoice/InvoiceController/InvoiceControllerState/Stakeholder/index.ts +13 -13
  44. package/src/Invoice/InvoiceController/InvoiceControllerState/index.ts +65 -65
  45. package/src/Invoice/InvoiceController/fns/addGood.ts +11 -11
  46. package/src/Invoice/InvoiceController/fns/addGoodDiscount.ts +126 -126
  47. package/src/Invoice/InvoiceController/fns/addGoodDiscountV2.ts +86 -86
  48. package/src/Invoice/InvoiceController/fns/delGood.ts +41 -41
  49. package/src/Invoice/InvoiceController/fns/getGoodsSearch.ts +26 -26
  50. package/src/Invoice/InvoiceController/fns/importGoodsDrawer.ts +79 -79
  51. package/src/Invoice/InvoiceController/fns/itemBlur.ts +40 -40
  52. package/src/Invoice/InvoiceController/fns/mergeDetails.ts +201 -201
  53. package/src/Invoice/InvoiceController/fns/mergeDiscount.ts +35 -35
  54. package/src/Invoice/InvoiceController/fns/saveEditGood.ts +24 -24
  55. package/src/Invoice/InvoiceController/fns/setEditGood.ts +16 -16
  56. package/src/Invoice/InvoiceController/fns/setGoods.ts +10 -10
  57. package/src/Invoice/InvoiceController/fns/updateInvoiceNo.ts +8 -8
  58. package/src/Invoice/InvoiceController/index.ts +87 -87
  59. package/src/Invoice/_test/buyerNameSearch/index.tsx +42 -42
  60. package/src/Invoice/_test/children/index.tsx +214 -214
  61. package/src/Invoice/_test/deduction/index.tsx +935 -935
  62. package/src/Invoice/_test/draft/index.tsx +40 -40
  63. package/src/Invoice/_test/easiest/index.tsx +5 -5
  64. package/src/Invoice/_test/endowCode/index.tsx +1158 -1158
  65. package/src/Invoice/_test/goodsMenuExpand/index.tsx +32 -32
  66. package/src/Invoice/_test/importBuyer/index.tsx +74 -74
  67. package/src/Invoice/_test/importGoods/index.tsx +1197 -1197
  68. package/src/Invoice/_test/invoiceType/index.tsx +59 -59
  69. package/src/Invoice/_test/isInvoiceNo/index.tsx +12 -12
  70. package/src/Invoice/_test/replaceHead/index.tsx +22 -22
  71. package/src/Invoice/_test/retrieveData/index.tsx +22 -22
  72. package/src/Invoice/_test/seller/index.tsx +28 -28
  73. package/src/Invoice/_test/setDataSource/index.tsx +73 -73
  74. package/src/Invoice/_test/unit/index.tsx +19 -19
  75. package/src/Invoice/index.less +31 -31
  76. package/src/Invoice/index.md +56 -56
  77. package/src/Invoice/index.tsx +183 -183
  78. package/src/Invoice/tools/calculate/index.ts +132 -132
  79. package/src/Invoice/tools/coolingFn/index.ts +17 -17
  80. package/src/Invoice/tools/evaluate/index.ts +7 -7
  81. package/src/Invoice/tools/idGenerator/index.ts +2 -2
  82. package/src/Invoice/tools/itemName/index.ts +55 -55
  83. package/src/Invoice/tools/lazyFn/index.ts +19 -19
  84. package/src/Invoice/tools/mounting/index.ts +13 -13
  85. package/src/Invoice/tools/strringFn/index.ts +40 -40
  86. package/src/Invoice/tools/useToGenerateId/index.ts +8 -8
  87. package/src/Invoice/tools/utils/index.ts +1 -1
  88. package/src/Invoice/tools/utils/money/index.ts +20 -20
  89. package/src/Invoice/ui/default/AddComparisonDrawer/index.tsx +149 -149
  90. package/src/Invoice/ui/default/Buyer/index.less +219 -219
  91. package/src/Invoice/ui/default/Buyer/index.tsx +114 -114
  92. package/src/Invoice/ui/default/Buyer/ui/BuyerNameInput/index.tsx +166 -166
  93. package/src/Invoice/ui/default/Buyer/ui/ImportBuyerButton/index.tsx +21 -21
  94. package/src/Invoice/ui/default/EndowCodeDrawer/index.less +8 -8
  95. package/src/Invoice/ui/default/EndowCodeDrawer/index.tsx +592 -586
  96. package/src/Invoice/ui/default/GoodsList/hook/useColumns/autoFillFn/index.ts +647 -647
  97. package/src/Invoice/ui/default/GoodsList/hook/useColumns/index.tsx +711 -711
  98. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/Drag/index.less +20 -20
  99. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/Drag/index.tsx +205 -205
  100. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/Expand/index.tsx +57 -57
  101. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemCodeInput/index.less +18 -18
  102. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemCodeInput/index.tsx +49 -49
  103. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +17 -17
  104. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +91 -91
  105. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
  106. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
  107. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +118 -118
  108. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -41
  109. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +25 -25
  110. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -13
  111. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +99 -99
  112. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
  113. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  114. package/src/Invoice/ui/default/GoodsList/hook/useDeduction/index.tsx +24 -24
  115. package/src/Invoice/ui/default/GoodsList/hook/useOnRow/index.tsx +52 -52
  116. package/src/Invoice/ui/default/GoodsList/hook/useRowSelection/index.tsx +120 -120
  117. package/src/Invoice/ui/default/GoodsList/hook/useWindowClick/index.tsx +23 -23
  118. package/src/Invoice/ui/default/GoodsList/index.less +185 -185
  119. package/src/Invoice/ui/default/GoodsList/index.tsx +205 -205
  120. package/src/Invoice/ui/default/GoodsList/ui/AddRowButton/index.tsx +65 -65
  121. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.less +21 -21
  122. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +244 -244
  123. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
  124. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +69 -69
  125. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +65 -65
  126. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useMergeDetails/index.tsx +91 -91
  127. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useMergeDiscount/index.tsx +36 -36
  128. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useSalesDiscount/index.tsx +109 -109
  129. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useSalesGifts/index.tsx +94 -94
  130. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/index.tsx +37 -37
  131. package/src/Invoice/ui/default/GoodsList/ui/DescribeSwitch/index.tsx +36 -36
  132. package/src/Invoice/ui/default/GoodsList/ui/Search/index.less +10 -10
  133. package/src/Invoice/ui/default/GoodsList/ui/Search/index.tsx +52 -52
  134. package/src/Invoice/ui/default/GoodsList/ui/Statistics/index.less +18 -18
  135. package/src/Invoice/ui/default/GoodsList/ui/Statistics/index.tsx +114 -114
  136. package/src/Invoice/ui/default/GoodsList/ui/TableRow/index.less +40 -40
  137. package/src/Invoice/ui/default/GoodsList/ui/TableRow/index.tsx +71 -71
  138. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual/index.less +38 -38
  139. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual/index.tsx +130 -130
  140. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual.o/index.less +44 -44
  141. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual.o/index.tsx +96 -96
  142. package/src/Invoice/ui/default/GoodsList/ui/TaxIncludedSwitch/index.tsx +31 -31
  143. package/src/Invoice/ui/default/ImportBuyerDrawer/index.tsx +75 -75
  144. package/src/Invoice/ui/default/ImportGoodsDrawer/index.tsx +198 -198
  145. package/src/Invoice/ui/default/InvoiceHeader/index.less +68 -68
  146. package/src/Invoice/ui/default/InvoiceHeader/index.tsx +246 -246
  147. package/src/Invoice/ui/default/Seller/index.less +113 -113
  148. package/src/Invoice/ui/default/Seller/index.tsx +98 -98
  149. package/src/Invoice/ui/default/Sign/index.less +14 -14
  150. package/src/Invoice/ui/default/Sign/index.tsx +71 -71
  151. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/autoFillFn/index.ts +639 -639
  152. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/index.tsx +660 -660
  153. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/svg/plus.svg +11 -11
  154. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/Drag/index.less +20 -20
  155. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/Drag/index.tsx +205 -205
  156. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +9 -9
  157. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +87 -87
  158. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
  159. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
  160. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +76 -76
  161. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -41
  162. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +34 -34
  163. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -13
  164. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +98 -98
  165. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
  166. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  167. package/src/Invoice/ui/digtal/GoodsList/hook/useOnRow/index.tsx +51 -51
  168. package/src/Invoice/ui/digtal/GoodsList/hook/useRowSelection/index.tsx +121 -121
  169. package/src/Invoice/ui/digtal/GoodsList/hook/useWindowClick/index.tsx +23 -23
  170. package/src/Invoice/ui/digtal/GoodsList/index.less +56 -56
  171. package/src/Invoice/ui/digtal/GoodsList/index.tsx +180 -180
  172. package/src/Invoice/ui/digtal/GoodsList/ui/AddRowButton/index.tsx +67 -67
  173. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +340 -340
  174. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/svg/add.svg +11 -11
  175. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
  176. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +50 -50
  177. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEmptyRefill/index.tsx +37 -37
  178. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +82 -82
  179. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useReselectInvoiceType/index.tsx +57 -57
  180. package/src/Invoice/ui/digtal/GoodsList/ui/DescribeSwitch/index.tsx +36 -36
  181. package/src/Invoice/ui/digtal/GoodsList/ui/Search/index.less +11 -11
  182. package/src/Invoice/ui/digtal/GoodsList/ui/Search/index.tsx +50 -50
  183. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/index.less +53 -53
  184. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/index.tsx +98 -98
  185. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/svg/fork.svg +11 -11
  186. package/src/Invoice/ui/digtal/GoodsList/ui/TableRow/index.less +28 -28
  187. package/src/Invoice/ui/digtal/GoodsList/ui/TableRow/index.tsx +53 -53
  188. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.less +38 -38
  189. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.tsx +108 -108
  190. package/src/Invoice/ui/digtal/GoodsList/ui/TaxIncludedSwitch/index.tsx +31 -31
  191. package/src/Invoice/ui/digtal/InvoiceHeader/index.less +57 -57
  192. package/src/Invoice/ui/digtal/InvoiceHeader/index.tsx +77 -77
  193. package/src/Invoice/ui/digtal/RealEstateInfo/index.less +14 -14
  194. package/src/Invoice/ui/digtal/RealEstateInfo/index.tsx +192 -192
  195. package/src/Invoice/ui/digtal/Sign/index.less +48 -48
  196. package/src/Invoice/ui/digtal/Sign/index.tsx +99 -99
  197. package/src/Invoice/ui/digtal/StakeFarmerholder/index.less +99 -99
  198. package/src/Invoice/ui/digtal/StakeFarmerholder/index.tsx +436 -436
  199. package/src/Invoice/ui/digtal/StakeFarmerholder/svg/arrowDown.svg +2 -2
  200. package/src/Invoice/ui/digtal/StakeFarmerholder/svg/arrowUp.svg +2 -2
  201. package/src/Invoice/ui/digtal/StakeFarmerholder/svg/plus.svg +11 -11
  202. package/src/Invoice/ui/digtal/Stakeholder/index.less +99 -99
  203. package/src/Invoice/ui/digtal/Stakeholder/index.tsx +396 -396
  204. package/src/Invoice/ui/digtal/Stakeholder/svg/arrowDown.svg +2 -2
  205. package/src/Invoice/ui/digtal/Stakeholder/svg/arrowUp.svg +2 -2
  206. package/src/Invoice/ui/digtal/Stakeholder/svg/plus.svg +11 -11
  207. package/src/InvoiceTypeModal/_test/easiest/index.tsx +31 -31
  208. package/src/InvoiceTypeModal/index.less +7 -7
  209. package/src/InvoiceTypeModal/index.md +5 -5
  210. package/src/InvoiceTypeModal/index.tsx +161 -161
  211. package/src/TaxClassificationCodeModal/_test/easiest/index.tsx +184 -177
  212. package/src/TaxClassificationCodeModal/index.less +5 -0
  213. package/src/TaxClassificationCodeModal/index.md +6 -6
  214. package/src/TaxClassificationCodeModal/index.tsx +141 -74
  215. package/src/index.ts +12 -12
  216. package/tsconfig.json +31 -31
  217. package/typings.d.ts +3 -3
  218. package/yarn.e.lock +0 -14331
@@ -1,69 +1,69 @@
1
- import React from 'react';
2
- import Invoice from '../../../../../../..';
3
- import LineAttributeType from '../../../../../../../InvoiceController/InvoiceControllerState/GoodsListState/LineAttributeType';
4
- import { Button, Menu } from 'kts-components-antd-x3';
5
-
6
- export default () => {
7
-
8
- const controller = Invoice.useInvoiceController();
9
-
10
- const model = controller.useMemo(s => s.model, []);
11
-
12
- const isRemRow = controller.useMemo(s => s.goodsListState.isRemRow, []);
13
-
14
- /** 是否禁用 */
15
- const disabled = controller.useMemo((s) => {
16
- if (s.goodsListState.selectedGoodIndex.length <= 0) return true;
17
-
18
- return s.goodsListState.selectedGoodIndex.some((e) => {
19
- const good = s.goodsListState.goodsMap.get(e);
20
- if (!good) return true;
21
- return good.lineAttribute === LineAttributeType.折扣行;
22
- });
23
- }, []);
24
-
25
- const onClick = React.useCallback(() => {
26
- controller.pipeline(async (s) => {
27
- const goodsList = s.goodsListState.goodsList.filter(
28
- (e) => s.goodsListState.selectedGoodIndex.indexOf(e.$index) < 0,
29
- );
30
- if (s.goodsListState.editGood) {
31
- if (
32
- s.goodsListState.selectedGoodIndex.indexOf(
33
- s.goodsListState.editGood.$index,
34
- ) >= 0
35
- ) {
36
- controller.setEditGood();
37
- }
38
- }
39
- s.goodsListState = {
40
- ...s.goodsListState,
41
- goodsList,
42
- selectedGoodIndex: [],
43
- };
44
- })();
45
- }, [controller]);
46
-
47
- const menuItem = React.useMemo(() => {
48
-
49
- if (model === 'prefab') return <></>;
50
- if (model === 'readOnly') return <></>;
51
-
52
- return (
53
- <Menu.Item key="1" onClick={onClick} disabled={disabled}> 删除行 </Menu.Item>
54
- )
55
- }, [model, onClick, disabled])
56
-
57
- const button = React.useMemo(() => {
58
-
59
- if (isRemRow === false) return <></>;
60
- if (model === 'prefab') return <></>;
61
- if (model === 'readOnly') return <></>;
62
-
63
- return (
64
- <Button onClick={onClick} disabled={disabled} >批量删除</Button>
65
- )
66
- }, [model, onClick, disabled, isRemRow])
67
-
68
- return { button, menuItem };
69
- };
1
+ import React from 'react';
2
+ import Invoice from '../../../../../../..';
3
+ import LineAttributeType from '../../../../../../../InvoiceController/InvoiceControllerState/GoodsListState/LineAttributeType';
4
+ import { Button, Menu } from 'kts-components-antd-x3';
5
+
6
+ export default () => {
7
+
8
+ const controller = Invoice.useInvoiceController();
9
+
10
+ const model = controller.useMemo(s => s.model, []);
11
+
12
+ const isRemRow = controller.useMemo(s => s.goodsListState.isRemRow, []);
13
+
14
+ /** 是否禁用 */
15
+ const disabled = controller.useMemo((s) => {
16
+ if (s.goodsListState.selectedGoodIndex.length <= 0) return true;
17
+
18
+ return s.goodsListState.selectedGoodIndex.some((e) => {
19
+ const good = s.goodsListState.goodsMap.get(e);
20
+ if (!good) return true;
21
+ return good.lineAttribute === LineAttributeType.折扣行;
22
+ });
23
+ }, []);
24
+
25
+ const onClick = React.useCallback(() => {
26
+ controller.pipeline(async (s) => {
27
+ const goodsList = s.goodsListState.goodsList.filter(
28
+ (e) => s.goodsListState.selectedGoodIndex.indexOf(e.$index) < 0,
29
+ );
30
+ if (s.goodsListState.editGood) {
31
+ if (
32
+ s.goodsListState.selectedGoodIndex.indexOf(
33
+ s.goodsListState.editGood.$index,
34
+ ) >= 0
35
+ ) {
36
+ controller.setEditGood();
37
+ }
38
+ }
39
+ s.goodsListState = {
40
+ ...s.goodsListState,
41
+ goodsList,
42
+ selectedGoodIndex: [],
43
+ };
44
+ })();
45
+ }, [controller]);
46
+
47
+ const menuItem = React.useMemo(() => {
48
+
49
+ if (model === 'prefab') return <></>;
50
+ if (model === 'readOnly') return <></>;
51
+
52
+ return (
53
+ <Menu.Item key="1" onClick={onClick} disabled={disabled}> 删除行 </Menu.Item>
54
+ )
55
+ }, [model, onClick, disabled])
56
+
57
+ const button = React.useMemo(() => {
58
+
59
+ if (isRemRow === false) return <></>;
60
+ if (model === 'prefab') return <></>;
61
+ if (model === 'readOnly') return <></>;
62
+
63
+ return (
64
+ <Button onClick={onClick} disabled={disabled} >批量删除</Button>
65
+ )
66
+ }, [model, onClick, disabled, isRemRow])
67
+
68
+ return { button, menuItem };
69
+ };
@@ -1,65 +1,65 @@
1
- import React from 'react';
2
- import Invoice from '../../../../../../..';
3
- import { message, Menu, Button } from 'kts-components-antd-x3';
4
- import coolingFn from '../../../../../../../tools/coolingFn';
5
- import { LineAttributeType } from '../../../../../../../InvoiceController';
6
-
7
- export default () => {
8
-
9
- const controller = Invoice.useInvoiceController();
10
-
11
- const model = controller.useMemo(s => s.model, []);
12
-
13
- /** 是否禁用 */
14
- const disabled = controller.useMemo((s) => {
15
- if (s.goodsListState.selectedGoodIndex.length <= 0) return true;
16
- }, []);
17
-
18
- const onClick = React.useCallback(async () => {
19
- await controller.saveEditGood();
20
- await controller.wait();
21
- await controller.pipeline(async (s) => {
22
-
23
- // 不能给正在编辑的货物赋码
24
- if (s.goodsListState.editGood && s.goodsListState.selectedGoodIndex.indexOf(s.goodsListState.editGood.$index) >= 0) {
25
- coolingFn('不能给正在编辑的货物赋码', 3000, () => { message.error('不能给正在编辑的货物赋码') });
26
- return;
27
- }
28
-
29
- // 税率不一样不能批量赋码
30
- if (s.goodsListState.selectedGoodIndex.map(e => s.goodsListState.goodsMap.get(e)).some((e, _, arr) => e?.taxRate !== arr[0]?.taxRate)) {
31
- coolingFn('商品税率不一致不能操作批量赋码', 3000, () => { message.error('商品税率不一致不能操作批量赋码') });
32
- return;
33
- }
34
-
35
- // 折让行 不能赋码
36
- if (s.goodsListState.selectedGoodIndex.map(e => s.goodsListState.goodsMap.get(e)).every(e => e?.lineAttribute !== LineAttributeType.折让行) === false) {
37
- coolingFn('折让行不能赋码', 3000, () => { message.error('折让行不能赋码') });
38
- return;
39
- }
40
-
41
- // 设置赋码
42
- s.goodsListState.endowCode.endowcodeGoodIndex = s.goodsListState.selectedGoodIndex;
43
- })();
44
- }, [controller]);
45
-
46
- const menuItem = React.useMemo(() => {
47
- if (model === 'readOnly') return <></>;
48
- return (
49
- <Menu.Item key="2" onClick={onClick} disabled={disabled}>
50
- 批量赋码
51
- </Menu.Item>
52
- )
53
- }, [onClick, disabled, model])
54
-
55
- const button = React.useMemo(() => {
56
- if (model === 'readOnly') return <></>;
57
- return (
58
- <Button onClick={onClick} disabled={disabled}>
59
- 批量赋码
60
- </Button>
61
- )
62
- }, [onClick, disabled, model])
63
-
64
- return { menuItem, button };
65
- };
1
+ import React from 'react';
2
+ import Invoice from '../../../../../../..';
3
+ import { message, Menu, Button } from 'kts-components-antd-x3';
4
+ import coolingFn from '../../../../../../../tools/coolingFn';
5
+ import { LineAttributeType } from '../../../../../../../InvoiceController';
6
+
7
+ export default () => {
8
+
9
+ const controller = Invoice.useInvoiceController();
10
+
11
+ const model = controller.useMemo(s => s.model, []);
12
+
13
+ /** 是否禁用 */
14
+ const disabled = controller.useMemo((s) => {
15
+ if (s.goodsListState.selectedGoodIndex.length <= 0) return true;
16
+ }, []);
17
+
18
+ const onClick = React.useCallback(async () => {
19
+ await controller.saveEditGood();
20
+ await controller.wait();
21
+ await controller.pipeline(async (s) => {
22
+
23
+ // 不能给正在编辑的货物赋码
24
+ if (s.goodsListState.editGood && s.goodsListState.selectedGoodIndex.indexOf(s.goodsListState.editGood.$index) >= 0) {
25
+ coolingFn('不能给正在编辑的货物赋码', 3000, () => { message.error('不能给正在编辑的货物赋码') });
26
+ return;
27
+ }
28
+
29
+ // 税率不一样不能批量赋码
30
+ if (s.goodsListState.selectedGoodIndex.map(e => s.goodsListState.goodsMap.get(e)).some((e, _, arr) => e?.taxRate !== arr[0]?.taxRate)) {
31
+ coolingFn('商品税率不一致不能操作批量赋码', 3000, () => { message.error('商品税率不一致不能操作批量赋码') });
32
+ return;
33
+ }
34
+
35
+ // 折让行 不能赋码
36
+ if (s.goodsListState.selectedGoodIndex.map(e => s.goodsListState.goodsMap.get(e)).every(e => e?.lineAttribute !== LineAttributeType.折让行) === false) {
37
+ coolingFn('折让行不能赋码', 3000, () => { message.error('折让行不能赋码') });
38
+ return;
39
+ }
40
+
41
+ // 设置赋码
42
+ s.goodsListState.endowCode.endowcodeGoodIndex = s.goodsListState.selectedGoodIndex;
43
+ })();
44
+ }, [controller]);
45
+
46
+ const menuItem = React.useMemo(() => {
47
+ if (model === 'readOnly') return <></>;
48
+ return (
49
+ <Menu.Item key="2" onClick={onClick} disabled={disabled}>
50
+ 批量赋码
51
+ </Menu.Item>
52
+ )
53
+ }, [onClick, disabled, model])
54
+
55
+ const button = React.useMemo(() => {
56
+ if (model === 'readOnly') return <></>;
57
+ return (
58
+ <Button onClick={onClick} disabled={disabled}>
59
+ 批量赋码
60
+ </Button>
61
+ )
62
+ }, [onClick, disabled, model])
63
+
64
+ return { menuItem, button };
65
+ };
@@ -1,92 +1,92 @@
1
-
2
- import React from "react"
3
- import { Button } from "kts-components-antd-x3"
4
- import Invoice from '../../../../../../..'
5
- import { Dropdown, MenuProps } from "kts-xui";
6
- import { IGood, LineAttributeType } from "../../../../../../../InvoiceController";
7
-
8
- /** 全单合并明细 */
9
- export default function useMergeDetails() {
10
-
11
- const controller = Invoice.useInvoiceController();
12
-
13
- const selectedGoodIndex = controller.useMemo(s => s.goodsListState.selectedGoodIndex, []);
14
-
15
- const isMergeDetails = controller.useMemo(s => s.goodsListState.isMergeDetails, []);
16
-
17
- const onClickManual = React.useCallback(async () => {
18
- await controller.saveEditGood();
19
- await controller.wait();
20
- await controller.mergeDetails(controller.state.goodsListState.selectedGoodIndex);
21
- }, [controller])
22
-
23
- const onClickAuto = React.useCallback(async () => {
24
- await controller.saveEditGood();
25
- await controller.wait();
26
- const goodsList = controller.state.goodsListState.goodsList;
27
- const isTaxIncluded = controller.state.goodsListState.isTaxIncluded;
28
- const group = groupBy(goodsList, isTaxIncluded);
29
- for (let i = 0; i < group.length; i++) {
30
- const selectedGoodIndex = group[i].map(e => e.$index);
31
- await controller.mergeDetails(selectedGoodIndex);
32
- }
33
- }, [])
34
-
35
- const items: MenuProps['items'] = React.useMemo(() => {
36
- return [
37
- {
38
- key: '0',
39
- label: '处理全部行',
40
- onClick: onClickAuto,
41
- }, {
42
- key: '1',
43
- label: '处理选中行',
44
- disabled: selectedGoodIndex.length <= 1,
45
- onClick: onClickManual,
46
- },
47
- ];
48
- }, [selectedGoodIndex, onClickManual, onClickAuto])
49
-
50
- const button = React.useMemo(() => {
51
- if (!isMergeDetails) return <></>;
52
- return (
53
- <Dropdown menu={{ items }} trigger={['click']} >
54
- <Button>
55
- 合并明细
56
- </Button>
57
- </Dropdown>
58
- )
59
- }, [selectedGoodIndex.length, isMergeDetails])
60
-
61
- return {
62
- /** 按钮 */
63
- button,
64
- }
65
- }
66
-
67
- // 根据"商品编码"" 和 "单价" 分组
68
- function groupBy(arr: IGood[], isTaxIncluded: boolean): IGood[][] {
69
- const grouped: any = {};
70
- for (let i = 0; i < arr.length; i++) {
71
- const item = arr[i];
72
- if (!item.itemCode) continue;
73
-
74
- const key = (() => {
75
- if (isTaxIncluded) {
76
- return `${item.itemCode}${Math.floor((item.priceIncludeTax || 0) * 100) / 100}`;
77
- } else {
78
- return `${item.itemCode}${Math.floor((item.priceExcludeTax || 0) * 100) / 100}`;
79
- }
80
- })()
81
-
82
- if (!grouped[key]) {
83
- grouped[key] = [];
84
- }
85
-
86
- grouped[key].push(item);
87
- if (item.lineAttribute === LineAttributeType.被折扣行) {
88
- grouped[key].push(arr[i + 1]); i++;
89
- }
90
- }
91
- return Object.values(grouped);
1
+
2
+ import React from "react"
3
+ import { Button } from "kts-components-antd-x3"
4
+ import Invoice from '../../../../../../..'
5
+ import { Dropdown, MenuProps } from "kts-xui";
6
+ import { IGood, LineAttributeType } from "../../../../../../../InvoiceController";
7
+
8
+ /** 全单合并明细 */
9
+ export default function useMergeDetails() {
10
+
11
+ const controller = Invoice.useInvoiceController();
12
+
13
+ const selectedGoodIndex = controller.useMemo(s => s.goodsListState.selectedGoodIndex, []);
14
+
15
+ const isMergeDetails = controller.useMemo(s => s.goodsListState.isMergeDetails, []);
16
+
17
+ const onClickManual = React.useCallback(async () => {
18
+ await controller.saveEditGood();
19
+ await controller.wait();
20
+ await controller.mergeDetails(controller.state.goodsListState.selectedGoodIndex);
21
+ }, [controller])
22
+
23
+ const onClickAuto = React.useCallback(async () => {
24
+ await controller.saveEditGood();
25
+ await controller.wait();
26
+ const goodsList = controller.state.goodsListState.goodsList;
27
+ const isTaxIncluded = controller.state.goodsListState.isTaxIncluded;
28
+ const group = groupBy(goodsList, isTaxIncluded);
29
+ for (let i = 0; i < group.length; i++) {
30
+ const selectedGoodIndex = group[i].map(e => e.$index);
31
+ await controller.mergeDetails(selectedGoodIndex);
32
+ }
33
+ }, [])
34
+
35
+ const items: MenuProps['items'] = React.useMemo(() => {
36
+ return [
37
+ {
38
+ key: '0',
39
+ label: '处理全部行',
40
+ onClick: onClickAuto,
41
+ }, {
42
+ key: '1',
43
+ label: '处理选中行',
44
+ disabled: selectedGoodIndex.length <= 1,
45
+ onClick: onClickManual,
46
+ },
47
+ ];
48
+ }, [selectedGoodIndex, onClickManual, onClickAuto])
49
+
50
+ const button = React.useMemo(() => {
51
+ if (!isMergeDetails) return <></>;
52
+ return (
53
+ <Dropdown menu={{ items }} trigger={['click']} >
54
+ <Button>
55
+ 合并明细
56
+ </Button>
57
+ </Dropdown>
58
+ )
59
+ }, [selectedGoodIndex.length, isMergeDetails])
60
+
61
+ return {
62
+ /** 按钮 */
63
+ button,
64
+ }
65
+ }
66
+
67
+ // 根据"商品编码"" 和 "单价" 分组
68
+ function groupBy(arr: IGood[], isTaxIncluded: boolean): IGood[][] {
69
+ const grouped: any = {};
70
+ for (let i = 0; i < arr.length; i++) {
71
+ const item = arr[i];
72
+ if (!item.itemCode) continue;
73
+
74
+ const key = (() => {
75
+ if (isTaxIncluded) {
76
+ return `${item.itemCode}${Math.floor((item.priceIncludeTax || 0) * 100) / 100}`;
77
+ } else {
78
+ return `${item.itemCode}${Math.floor((item.priceExcludeTax || 0) * 100) / 100}`;
79
+ }
80
+ })()
81
+
82
+ if (!grouped[key]) {
83
+ grouped[key] = [];
84
+ }
85
+
86
+ grouped[key].push(item);
87
+ if (item.lineAttribute === LineAttributeType.被折扣行) {
88
+ grouped[key].push(arr[i + 1]); i++;
89
+ }
90
+ }
91
+ return Object.values(grouped);
92
92
  }
@@ -1,37 +1,37 @@
1
-
2
- import React from "react"
3
- import { Button } from "kts-components-antd-x3"
4
- import Invoice from '../../../../../../..'
5
-
6
- /** 全单合并折扣 */
7
- export default function useMergeDiscount() {
8
-
9
- const controller = Invoice.useInvoiceController();
10
-
11
- const goodsList = controller.useMemo(s => s.goodsListState.goodsList, []);
12
-
13
- const isMergeDiscount = controller.useMemo(s => s.goodsListState.isMergeDiscount, []);
14
-
15
- const onClick = React.useCallback(async () => {
16
- await controller.saveEditGood();
17
- await controller.wait();
18
- await controller.mergeDiscount();
19
- }, [controller])
20
-
21
- const button = React.useMemo(() => {
22
- if (!isMergeDiscount) return <></>;
23
- return (
24
- <Button
25
- onClick={onClick}
26
- disabled={goodsList.length <= 1}
27
- >
28
- 合并折扣
29
- </Button>
30
- )
31
- }, [goodsList.length])
32
-
33
- return {
34
- /** 按钮 */
35
- button,
36
- }
1
+
2
+ import React from "react"
3
+ import { Button } from "kts-components-antd-x3"
4
+ import Invoice from '../../../../../../..'
5
+
6
+ /** 全单合并折扣 */
7
+ export default function useMergeDiscount() {
8
+
9
+ const controller = Invoice.useInvoiceController();
10
+
11
+ const goodsList = controller.useMemo(s => s.goodsListState.goodsList, []);
12
+
13
+ const isMergeDiscount = controller.useMemo(s => s.goodsListState.isMergeDiscount, []);
14
+
15
+ const onClick = React.useCallback(async () => {
16
+ await controller.saveEditGood();
17
+ await controller.wait();
18
+ await controller.mergeDiscount();
19
+ }, [controller])
20
+
21
+ const button = React.useMemo(() => {
22
+ if (!isMergeDiscount) return <></>;
23
+ return (
24
+ <Button
25
+ onClick={onClick}
26
+ disabled={goodsList.length <= 1}
27
+ >
28
+ 合并折扣
29
+ </Button>
30
+ )
31
+ }, [goodsList.length])
32
+
33
+ return {
34
+ /** 按钮 */
35
+ button,
36
+ }
37
37
  }