kts-component-invoice-operate 3.2.145 → 3.2.147

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 (211) 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/index.esm.js +715 -605
  9. package/dist/index.js +715 -605
  10. package/docs/index.md +5 -5
  11. package/docs-dist/static/I001.a774b052.svg +1 -0
  12. package/docs-dist/static/{arrowDown.a1cbf0d8.svg → arrowDown.22c7885c.svg} +2 -2
  13. package/docs-dist/static/{arrowUp.4c482054.svg → arrowUp.d707a3e4.svg} +2 -2
  14. package/docs-dist/static/{fork.5431267d.svg → fork.43eb4ffa.svg} +11 -11
  15. package/docs-dist/static/{plus.4fd1af30.svg → plus.0e60e9ea.svg} +11 -11
  16. package/docs-dist/static/{plus.44013ce3.svg → plus.384f41d9.svg} +11 -11
  17. package/docs-dist/umi.css +2 -3
  18. package/docs-dist/umi.js +1 -1
  19. package/index.html +12 -12
  20. package/package.json +61 -61
  21. package/src/Invoice/Invoice-digtal/_test/disabled/index.tsx +40 -39
  22. package/src/Invoice/Invoice-digtal/_test/easiest/index.tsx +16 -16
  23. package/src/Invoice/Invoice-digtal/_test/header/index.tsx +84 -84
  24. package/src/Invoice/Invoice-digtal/_test/importGoods/index.tsx +868 -868
  25. package/src/Invoice/Invoice-digtal/_test/importStakeholder/index.tsx +18 -18
  26. package/src/Invoice/Invoice-digtal/_test/lineCredit/index.tsx +19 -19
  27. package/src/Invoice/Invoice-digtal/_test/prefab/index.tsx +150 -150
  28. package/src/Invoice/Invoice-digtal/_test/readOnly/index.tsx +55 -42
  29. package/src/Invoice/Invoice-digtal/_test/realEstateInfo/index.tsx +11 -11
  30. package/src/Invoice/Invoice-digtal/_test/stakeholder/index.tsx +12 -12
  31. package/src/Invoice/Invoice-digtal/_test/typeSelection/index.tsx +29 -29
  32. package/src/Invoice/Invoice-digtal/index.md +34 -34
  33. package/src/Invoice/InvoiceController/InvoiceControllerForm/index.ts +95 -95
  34. package/src/Invoice/InvoiceController/InvoiceControllerState/AutoComplete/index.ts +20 -20
  35. package/src/Invoice/InvoiceController/InvoiceControllerState/BuyerState/index.tsx +88 -88
  36. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/Drag/index.ts +15 -15
  37. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/EndowCode/index.tsx +104 -104
  38. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IColumnsReplenish/index.ts +10 -10
  39. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IGood/index.ts +78 -78
  40. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ImportGoods/index.ts +81 -81
  41. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/LineAttributeType/index.ts +7 -7
  42. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ProductComparison/index.ts +9 -9
  43. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/index.ts +117 -117
  44. package/src/Invoice/InvoiceController/InvoiceControllerState/Stakeholder/index.ts +13 -13
  45. package/src/Invoice/InvoiceController/InvoiceControllerState/index.ts +65 -65
  46. package/src/Invoice/InvoiceController/fns/addGood.ts +11 -11
  47. package/src/Invoice/InvoiceController/fns/addGoodDiscount.ts +126 -126
  48. package/src/Invoice/InvoiceController/fns/addGoodDiscountV2.ts +86 -86
  49. package/src/Invoice/InvoiceController/fns/delGood.ts +41 -41
  50. package/src/Invoice/InvoiceController/fns/getGoodsSearch.ts +26 -26
  51. package/src/Invoice/InvoiceController/fns/importGoodsDrawer.ts +79 -79
  52. package/src/Invoice/InvoiceController/fns/itemBlur.ts +40 -40
  53. package/src/Invoice/InvoiceController/fns/mergeDetails.ts +201 -201
  54. package/src/Invoice/InvoiceController/fns/mergeDiscount.ts +35 -35
  55. package/src/Invoice/InvoiceController/fns/saveEditGood.ts +24 -24
  56. package/src/Invoice/InvoiceController/fns/setEditGood.ts +16 -16
  57. package/src/Invoice/InvoiceController/fns/setGoods.ts +10 -10
  58. package/src/Invoice/InvoiceController/fns/updateInvoiceNo.ts +8 -8
  59. package/src/Invoice/InvoiceController/index.ts +81 -81
  60. package/src/Invoice/_test/buyerNameSearch/index.tsx +42 -42
  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 +29 -29
  76. package/src/Invoice/index.md +53 -53
  77. package/src/Invoice/index.tsx +179 -179
  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 +550 -550
  96. package/src/Invoice/ui/default/GoodsList/hook/useColumns/autoFillFn/index.ts +632 -632
  97. package/src/Invoice/ui/default/GoodsList/hook/useColumns/index.tsx +691 -691
  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/ItemCodeInput/index.less +18 -18
  101. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemCodeInput/index.tsx +47 -47
  102. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +17 -17
  103. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +88 -88
  104. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
  105. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
  106. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +118 -118
  107. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -41
  108. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +25 -25
  109. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -13
  110. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +98 -98
  111. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
  112. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  113. package/src/Invoice/ui/default/GoodsList/hook/useDeduction/index.tsx +24 -24
  114. package/src/Invoice/ui/default/GoodsList/hook/useOnRow/index.tsx +39 -39
  115. package/src/Invoice/ui/default/GoodsList/hook/useRowSelection/index.tsx +114 -114
  116. package/src/Invoice/ui/default/GoodsList/hook/useWindowClick/index.tsx +23 -23
  117. package/src/Invoice/ui/default/GoodsList/index.less +179 -179
  118. package/src/Invoice/ui/default/GoodsList/index.tsx +205 -205
  119. package/src/Invoice/ui/default/GoodsList/ui/AddRowButton/index.tsx +65 -65
  120. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.less +21 -21
  121. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +244 -244
  122. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
  123. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +69 -69
  124. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +65 -65
  125. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useMergeDetails/index.tsx +91 -91
  126. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useMergeDiscount/index.tsx +36 -36
  127. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useSalesDiscount/index.tsx +109 -109
  128. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useSalesGifts/index.tsx +94 -94
  129. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/index.tsx +37 -37
  130. package/src/Invoice/ui/default/GoodsList/ui/DescribeSwitch/index.tsx +36 -36
  131. package/src/Invoice/ui/default/GoodsList/ui/Search/index.less +10 -10
  132. package/src/Invoice/ui/default/GoodsList/ui/Search/index.tsx +52 -52
  133. package/src/Invoice/ui/default/GoodsList/ui/Statistics/index.less +18 -18
  134. package/src/Invoice/ui/default/GoodsList/ui/Statistics/index.tsx +114 -114
  135. package/src/Invoice/ui/default/GoodsList/ui/TableRow/index.less +28 -28
  136. package/src/Invoice/ui/default/GoodsList/ui/TableRow/index.tsx +57 -57
  137. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual/index.less +38 -38
  138. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual/index.tsx +108 -108
  139. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual.o/index.less +44 -44
  140. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual.o/index.tsx +96 -96
  141. package/src/Invoice/ui/default/GoodsList/ui/TaxIncludedSwitch/index.tsx +31 -31
  142. package/src/Invoice/ui/default/ImportBuyerDrawer/index.tsx +75 -75
  143. package/src/Invoice/ui/default/ImportGoodsDrawer/index.tsx +198 -198
  144. package/src/Invoice/ui/default/InvoiceHeader/index.less +68 -68
  145. package/src/Invoice/ui/default/InvoiceHeader/index.tsx +246 -246
  146. package/src/Invoice/ui/default/Seller/index.less +113 -113
  147. package/src/Invoice/ui/default/Seller/index.tsx +98 -98
  148. package/src/Invoice/ui/default/Sign/index.less +14 -14
  149. package/src/Invoice/ui/default/Sign/index.tsx +71 -71
  150. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/autoFillFn/index.ts +624 -624
  151. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/index.tsx +654 -654
  152. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/svg/plus.svg +11 -11
  153. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/Drag/index.less +20 -20
  154. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/Drag/index.tsx +205 -205
  155. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +9 -9
  156. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +84 -84
  157. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
  158. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
  159. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +76 -76
  160. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -41
  161. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +34 -34
  162. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -13
  163. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +98 -98
  164. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
  165. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  166. package/src/Invoice/ui/digtal/GoodsList/hook/useOnRow/index.tsx +39 -39
  167. package/src/Invoice/ui/digtal/GoodsList/hook/useRowSelection/index.tsx +121 -121
  168. package/src/Invoice/ui/digtal/GoodsList/hook/useWindowClick/index.tsx +23 -23
  169. package/src/Invoice/ui/digtal/GoodsList/index.less +56 -56
  170. package/src/Invoice/ui/digtal/GoodsList/index.tsx +180 -180
  171. package/src/Invoice/ui/digtal/GoodsList/ui/AddRowButton/index.tsx +67 -65
  172. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +340 -340
  173. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/svg/add.svg +11 -11
  174. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
  175. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +50 -50
  176. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEmptyRefill/index.tsx +37 -37
  177. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +82 -82
  178. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useReselectInvoiceType/index.tsx +57 -57
  179. package/src/Invoice/ui/digtal/GoodsList/ui/DescribeSwitch/index.tsx +36 -36
  180. package/src/Invoice/ui/digtal/GoodsList/ui/Search/index.less +11 -11
  181. package/src/Invoice/ui/digtal/GoodsList/ui/Search/index.tsx +50 -50
  182. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/index.less +53 -53
  183. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/index.tsx +98 -98
  184. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/svg/fork.svg +11 -11
  185. package/src/Invoice/ui/digtal/GoodsList/ui/TableRow/index.less +28 -28
  186. package/src/Invoice/ui/digtal/GoodsList/ui/TableRow/index.tsx +53 -53
  187. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.less +38 -38
  188. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.tsx +108 -108
  189. package/src/Invoice/ui/digtal/GoodsList/ui/TaxIncludedSwitch/index.tsx +31 -31
  190. package/src/Invoice/ui/digtal/InvoiceHeader/index.less +57 -57
  191. package/src/Invoice/ui/digtal/InvoiceHeader/index.tsx +77 -77
  192. package/src/Invoice/ui/digtal/RealEstateInfo/index.less +14 -14
  193. package/src/Invoice/ui/digtal/RealEstateInfo/index.tsx +210 -137
  194. package/src/Invoice/ui/digtal/Sign/index.less +48 -48
  195. package/src/Invoice/ui/digtal/Sign/index.tsx +99 -99
  196. package/src/Invoice/ui/digtal/Stakeholder/index.less +99 -99
  197. package/src/Invoice/ui/digtal/Stakeholder/index.tsx +393 -393
  198. package/src/Invoice/ui/digtal/Stakeholder/svg/arrowDown.svg +2 -2
  199. package/src/Invoice/ui/digtal/Stakeholder/svg/arrowUp.svg +2 -2
  200. package/src/Invoice/ui/digtal/Stakeholder/svg/plus.svg +11 -11
  201. package/src/InvoiceTypeModal/_test/easiest/index.tsx +31 -31
  202. package/src/InvoiceTypeModal/index.less +7 -7
  203. package/src/InvoiceTypeModal/index.md +5 -5
  204. package/src/InvoiceTypeModal/index.tsx +153 -153
  205. package/src/TaxClassificationCodeModal/_test/easiest/index.tsx +177 -177
  206. package/src/TaxClassificationCodeModal/index.md +6 -6
  207. package/src/TaxClassificationCodeModal/index.tsx +74 -74
  208. package/src/index.ts +12 -12
  209. package/tsconfig.json +31 -31
  210. package/typings.d.ts +3 -3
  211. package/yarn.e.lock +14331 -14331
@@ -1,115 +1,115 @@
1
-
2
- import React from 'react';
3
- import { Checkbox } from 'kts-components-antd-x3';
4
- import { LineAttributeType } from '../../../../../InvoiceController';
5
- import Invoice from '../../../../..';
6
-
7
- export default () => {
8
-
9
- /** 控制器 */
10
- const controller = Invoice.useInvoiceController();
11
-
12
- /** 列表选中的货物索引列表 */
13
- const selectedRowKeys = controller.useMemo(s => s.goodsListState.selectedGoodIndex, []);
14
-
15
- /** 货物列表 */
16
- const goodsList = controller.useMemo(s => s.goodsListState.goodsList, []);
17
-
18
- /** 搜索条件 */
19
- const searchValue = controller.useMemo(s => s.goodsListState.searchValue, []);
20
-
21
- /** 是否全选 */
22
- // const isAll = controller.useMemo(s => s.goodsListState.goodsList.length > 0 && s.goodsListState.selectedGoodIndex.length === s.goodsListState.goodsList.length, [])
23
- const isAll = controller.useMemo(s => {
24
- if (s.goodsListState.selectedGoodIndex.length <= 0) return false;
25
- const seeGoodsIndex = controller.getGoodsSearch(s.goodsListState.goodsList, s.goodsListState.searchValue, s.goodsListState.isTaxIncluded).map(e => e.$index);
26
- const selectedGoodIndex = s.goodsListState.selectedGoodIndex.filter(e => seeGoodsIndex.some(t => e === t));
27
- return selectedGoodIndex.length === seeGoodsIndex.length
28
- }, [])
29
-
30
- const indeterminate = controller.useMemo(s => {
31
- const seeGoodsIndex = controller.getGoodsSearch(s.goodsListState.goodsList, s.goodsListState.searchValue, s.goodsListState.isTaxIncluded).map(e => e.$index);
32
- const selectedGoodIndex = s.goodsListState.selectedGoodIndex.filter(e => seeGoodsIndex.some(t => e === t));
33
- if (selectedGoodIndex.length === 0) return false;
34
- return selectedGoodIndex.length < seeGoodsIndex.length
35
- }, [])
36
-
37
- /** 点击了全选 */
38
- const onClickSelectAll = React.useCallback(async () => {
39
- if (isAll) {
40
- await controller.pipeline(async s => {
41
- const seeGoodsIndex = controller.getGoodsSearch(s.goodsListState.goodsList, s.goodsListState.searchValue, s.goodsListState.isTaxIncluded).map(e => e.$index)
42
-
43
- s.goodsListState.selectedGoodIndex = s.goodsListState.selectedGoodIndex.filter(e => !seeGoodsIndex.some(t => e === t));
44
- })()
45
- } else {
46
- await controller.pipeline(async s => {
47
- const seeGoodsIndex = controller.getGoodsSearch(s.goodsListState.goodsList, s.goodsListState.searchValue, s.goodsListState.isTaxIncluded).map(e => e.$index)
48
-
49
- s.goodsListState.selectedGoodIndex = [...s.goodsListState.selectedGoodIndex, ...seeGoodsIndex];
50
- s.goodsListState.selectedGoodIndex = Array.from(new Set(s.goodsListState.selectedGoodIndex));
51
- })()
52
- }
53
- await sortOut(true);
54
- }, [controller, isAll])
55
-
56
- const onSelect = React.useCallback(async (record, selected) => {
57
- if (selected) {
58
- await controller.pipeline(async s => {
59
- s.goodsListState.selectedGoodIndex = [...s.goodsListState.selectedGoodIndex, record.$index];
60
- s.goodsListState = { ...s.goodsListState };
61
- })()
62
- } else {
63
- await controller.pipeline(async s => {
64
- s.goodsListState.selectedGoodIndex = s.goodsListState.selectedGoodIndex.filter(e => e !== record.$index);
65
- s.goodsListState = { ...s.goodsListState };
66
- })()
67
- }
68
- await sortOut(selected);
69
- }, [controller])
70
-
71
- const columnTitle = React.useMemo(() => {
72
- return (
73
- <Checkbox
74
- onChange={onClickSelectAll}
75
- indeterminate={indeterminate}
76
- checked={isAll}
77
- ></Checkbox>
78
- )
79
- }, [goodsList, selectedRowKeys, onClickSelectAll, isAll, indeterminate])
80
-
81
- /** 选择了商品后 调整 折扣行 和 被折扣行 */
82
- const sortOut = React.useCallback(async (selected: boolean) => {
83
- await controller.wait();
84
- await controller.pipeline(async s => {
85
- s.goodsListState.selectedGoodIndex.forEach($index => {
86
- const goods = s.goodsListState.goodsMap.get($index);
87
-
88
-
89
- if (!goods || (goods.lineAttribute !== LineAttributeType.折扣行 && goods.lineAttribute !== LineAttributeType.被折扣行)) return;
90
-
91
- // 数组位置
92
- let t = s.goodsListState.goodsList.indexOf(goods);
93
- goods.lineAttribute === LineAttributeType.折扣行 ? t-- : t++;
94
- const i = s.goodsListState.goodsList[t].$index;
95
-
96
- if (selected) {
97
- if (s.goodsListState.selectedGoodIndex.indexOf(i) < 0) s.goodsListState.selectedGoodIndex = [...s.goodsListState.selectedGoodIndex, i];
98
- } else {
99
- if (s.goodsListState.selectedGoodIndex.indexOf(i) < 0) s.goodsListState.selectedGoodIndex = s.goodsListState.selectedGoodIndex.filter(e => e !== $index);
100
- }
101
- })
102
- })()
103
- }, [controller])
104
-
105
- React.useEffect(() => {
106
- sortOut(true);
107
- }, [sortOut, goodsList])
108
-
109
- return {
110
- columnWidth: 45,
111
- columnTitle,
112
- onSelect,
113
- selectedRowKeys,
114
- }
1
+
2
+ import React from 'react';
3
+ import { Checkbox } from 'kts-components-antd-x3';
4
+ import { LineAttributeType } from '../../../../../InvoiceController';
5
+ import Invoice from '../../../../..';
6
+
7
+ export default () => {
8
+
9
+ /** 控制器 */
10
+ const controller = Invoice.useInvoiceController();
11
+
12
+ /** 列表选中的货物索引列表 */
13
+ const selectedRowKeys = controller.useMemo(s => s.goodsListState.selectedGoodIndex, []);
14
+
15
+ /** 货物列表 */
16
+ const goodsList = controller.useMemo(s => s.goodsListState.goodsList, []);
17
+
18
+ /** 搜索条件 */
19
+ const searchValue = controller.useMemo(s => s.goodsListState.searchValue, []);
20
+
21
+ /** 是否全选 */
22
+ // const isAll = controller.useMemo(s => s.goodsListState.goodsList.length > 0 && s.goodsListState.selectedGoodIndex.length === s.goodsListState.goodsList.length, [])
23
+ const isAll = controller.useMemo(s => {
24
+ if (s.goodsListState.selectedGoodIndex.length <= 0) return false;
25
+ const seeGoodsIndex = controller.getGoodsSearch(s.goodsListState.goodsList, s.goodsListState.searchValue, s.goodsListState.isTaxIncluded).map(e => e.$index);
26
+ const selectedGoodIndex = s.goodsListState.selectedGoodIndex.filter(e => seeGoodsIndex.some(t => e === t));
27
+ return selectedGoodIndex.length === seeGoodsIndex.length
28
+ }, [])
29
+
30
+ const indeterminate = controller.useMemo(s => {
31
+ const seeGoodsIndex = controller.getGoodsSearch(s.goodsListState.goodsList, s.goodsListState.searchValue, s.goodsListState.isTaxIncluded).map(e => e.$index);
32
+ const selectedGoodIndex = s.goodsListState.selectedGoodIndex.filter(e => seeGoodsIndex.some(t => e === t));
33
+ if (selectedGoodIndex.length === 0) return false;
34
+ return selectedGoodIndex.length < seeGoodsIndex.length
35
+ }, [])
36
+
37
+ /** 点击了全选 */
38
+ const onClickSelectAll = React.useCallback(async () => {
39
+ if (isAll) {
40
+ await controller.pipeline(async s => {
41
+ const seeGoodsIndex = controller.getGoodsSearch(s.goodsListState.goodsList, s.goodsListState.searchValue, s.goodsListState.isTaxIncluded).map(e => e.$index)
42
+
43
+ s.goodsListState.selectedGoodIndex = s.goodsListState.selectedGoodIndex.filter(e => !seeGoodsIndex.some(t => e === t));
44
+ })()
45
+ } else {
46
+ await controller.pipeline(async s => {
47
+ const seeGoodsIndex = controller.getGoodsSearch(s.goodsListState.goodsList, s.goodsListState.searchValue, s.goodsListState.isTaxIncluded).map(e => e.$index)
48
+
49
+ s.goodsListState.selectedGoodIndex = [...s.goodsListState.selectedGoodIndex, ...seeGoodsIndex];
50
+ s.goodsListState.selectedGoodIndex = Array.from(new Set(s.goodsListState.selectedGoodIndex));
51
+ })()
52
+ }
53
+ await sortOut(true);
54
+ }, [controller, isAll])
55
+
56
+ const onSelect = React.useCallback(async (record, selected) => {
57
+ if (selected) {
58
+ await controller.pipeline(async s => {
59
+ s.goodsListState.selectedGoodIndex = [...s.goodsListState.selectedGoodIndex, record.$index];
60
+ s.goodsListState = { ...s.goodsListState };
61
+ })()
62
+ } else {
63
+ await controller.pipeline(async s => {
64
+ s.goodsListState.selectedGoodIndex = s.goodsListState.selectedGoodIndex.filter(e => e !== record.$index);
65
+ s.goodsListState = { ...s.goodsListState };
66
+ })()
67
+ }
68
+ await sortOut(selected);
69
+ }, [controller])
70
+
71
+ const columnTitle = React.useMemo(() => {
72
+ return (
73
+ <Checkbox
74
+ onChange={onClickSelectAll}
75
+ indeterminate={indeterminate}
76
+ checked={isAll}
77
+ ></Checkbox>
78
+ )
79
+ }, [goodsList, selectedRowKeys, onClickSelectAll, isAll, indeterminate])
80
+
81
+ /** 选择了商品后 调整 折扣行 和 被折扣行 */
82
+ const sortOut = React.useCallback(async (selected: boolean) => {
83
+ await controller.wait();
84
+ await controller.pipeline(async s => {
85
+ s.goodsListState.selectedGoodIndex.forEach($index => {
86
+ const goods = s.goodsListState.goodsMap.get($index);
87
+
88
+
89
+ if (!goods || (goods.lineAttribute !== LineAttributeType.折扣行 && goods.lineAttribute !== LineAttributeType.被折扣行)) return;
90
+
91
+ // 数组位置
92
+ let t = s.goodsListState.goodsList.indexOf(goods);
93
+ goods.lineAttribute === LineAttributeType.折扣行 ? t-- : t++;
94
+ const i = s.goodsListState.goodsList[t].$index;
95
+
96
+ if (selected) {
97
+ if (s.goodsListState.selectedGoodIndex.indexOf(i) < 0) s.goodsListState.selectedGoodIndex = [...s.goodsListState.selectedGoodIndex, i];
98
+ } else {
99
+ if (s.goodsListState.selectedGoodIndex.indexOf(i) < 0) s.goodsListState.selectedGoodIndex = s.goodsListState.selectedGoodIndex.filter(e => e !== $index);
100
+ }
101
+ })
102
+ })()
103
+ }, [controller])
104
+
105
+ React.useEffect(() => {
106
+ sortOut(true);
107
+ }, [sortOut, goodsList])
108
+
109
+ return {
110
+ columnWidth: 45,
111
+ columnTitle,
112
+ onSelect,
113
+ selectedRowKeys,
114
+ }
115
115
  }
@@ -1,23 +1,23 @@
1
-
2
- /**
3
- * 点击组件外部 保存正在编辑的货物
4
- */
5
-
6
- import React from "react";
7
- import { InvoiceController } from "../../../../../..";
8
-
9
- /**
10
- * 点击组件外部 保存正在编辑的货物
11
- */
12
- export default function useWindowClick(controller: InvoiceController) {
13
-
14
- /** 点击组件外部 保存正在编辑的货物 */
15
- React.useEffect(() => {
16
- const click = () => { setTimeout(controller.saveEditGood) };
17
-
18
- window.addEventListener('click', click);
19
- return () => {
20
- window.removeEventListener('click', click);
21
- };
22
- }, [controller]);
23
- }
1
+
2
+ /**
3
+ * 点击组件外部 保存正在编辑的货物
4
+ */
5
+
6
+ import React from "react";
7
+ import { InvoiceController } from "../../../../../..";
8
+
9
+ /**
10
+ * 点击组件外部 保存正在编辑的货物
11
+ */
12
+ export default function useWindowClick(controller: InvoiceController) {
13
+
14
+ /** 点击组件外部 保存正在编辑的货物 */
15
+ React.useEffect(() => {
16
+ const click = () => { setTimeout(controller.saveEditGood) };
17
+
18
+ window.addEventListener('click', click);
19
+ return () => {
20
+ window.removeEventListener('click', click);
21
+ };
22
+ }, [controller]);
23
+ }
@@ -1,179 +1,179 @@
1
- .kts-invoice-operate-goods-list {
2
-
3
- .kts-invoice-operate-goods-list-table-tax-rate {
4
- .ktsAnt3x-select-selection-selected-value {
5
- float: right;
6
- }
7
- }
8
-
9
- .kts-invoice-operate-goods-list-able {
10
- display : flex;
11
- padding : 10px;
12
- border-bottom: 1px solid #dcdcdc;
13
- }
14
-
15
- .kts-invoice-operate-goods-list-able-list {
16
- flex : 1;
17
- display : flex;
18
- gap : 10px;
19
- padding-right: 10px;
20
-
21
- button {
22
- padding-left : 10px;
23
- padding-right: 10px;
24
- border-radius: 12px;
25
- color : #0074ff;
26
- border : 1px solid #0074ff;
27
- height : 24px;
28
- line-height : 22px;
29
- cursor : pointer;
30
- font-size : 12px;
31
- }
32
-
33
- button[disabled] {
34
- color : rgba(0, 0, 0, 0.25);
35
- border: 1px solid;
36
- }
37
- }
38
-
39
- .kts-invoice-operate-goods-list-able-extend {
40
- flex : none;
41
- display: flex;
42
- gap : 5px;
43
- }
44
-
45
- .ktsAntX-table {
46
- .ktsAntX-table-row.kts-invoice-operate-goods-be-discount .ktsAntX-table-cell,
47
- .ktsAntX-table-row.kts-invoice-operate-goods-discount .ktsAntX-table-cell {
48
- background: #f5f5f5;
49
- }
50
- }
51
- }
52
-
53
- .kts-invoice-operate-goods-list-table.kts-invoice-operate-prefab {
54
- .ktsAnt3x-table-row {
55
- color : rgba(0, 0, 0, 0.25);
56
- background: #f5f5f5;
57
- }
58
- }
59
-
60
- // .kts-invoice-operate-goods-list-table {
61
- // border-bottom: 1px solid #dcdcdc;
62
-
63
- // .kts-invoice-operate-goods-be-discount,
64
- // .kts-invoice-operate-goods-discount {
65
- // background: #f5f5f5;
66
- // }
67
-
68
- // .kts-invoice-operate-goods-be-discount{
69
- // color: #D9001B;
70
- // }
71
-
72
- // .kts-invoice-operate-goods-list-able-list-itemName-import {
73
- // display: flex;
74
-
75
- // .ktsAnt3x-btn {
76
- // display : block;
77
- // line-height : 0;
78
- // width : auto;
79
- // padding-right: 5px;
80
- // }
81
- // }
82
-
83
- // .ktsAnt3x-form-item-children {
84
- // height : 30px;
85
- // display: block;
86
- // }
87
-
88
- // .ktsAnt3x-table-body {
89
- // height: 263px;
90
- // }
91
-
92
- // .ktsAnt3x-form-explain {
93
- // position: absolute;
94
- // right : 6px;
95
- // top : 6px;
96
- // }
97
-
98
- // table {
99
- // border-bottom: 1px solid #d9d9d9 !important;
100
- // }
101
-
102
- // table>.ktsAnt3x-table-tbody>tr>td {
103
- // padding: 0 !important;
104
-
105
- // .ktsAnt3x-form-explain {
106
- // display: none;
107
- // }
108
-
109
- // .ktsAnt3x-form-item {
110
- // padding: 0;
111
- // margin : 0;
112
-
113
- // .ktsAnt3x-form-item-control {
114
- // line-height: inherit;
115
- // }
116
- // }
117
-
118
- // .has-error .ktsAnt3x-select-selection,
119
- // .has-error .ktsAnt3x-input,
120
- // .has-error .ktsAnt3x-input:hover {
121
- // border-right-width : 1px !important;
122
- // border-top-width : 1px;
123
- // border-left-width : 1px;
124
- // border-bottom-width: 1px;
125
- // }
126
-
127
- // .ktsAnt3x-select-selection--single,
128
- // .ktsAnt3x-select-auto-complete.ktsAnt3x-select .ktsAnt3x-input:hover,
129
- // .ktsAnt3x-input {
130
- // height : 30px;
131
- // border-radius : 0;
132
- // border-right-width : 0 !important;
133
- // border-top-width : 0;
134
- // border-left-width : 0;
135
- // border-bottom-width: 0;
136
- // box-shadow : none;
137
- // }
138
- // }
139
- // }
140
-
141
- .kts-invoice-operate-goods-list-table-search-protrude {
142
- background : #ff0;
143
- color : #000;
144
- font-weight: bold;
145
- }
146
-
147
- .kts-invoice-operate-goods-table-virtual .ktsAntX-table .ktsAntX-table-tbody {
148
- .ktsAnt3x-form-item {
149
- margin: 0;
150
- }
151
-
152
- .ktsAnt3x-form-item-control {
153
- line-height: 1;
154
- }
155
-
156
- .ktsAnt3x-input:focus {
157
- box-shadow: none;
158
- }
159
-
160
- .ktsAnt3x-input,
161
- .ktsAnt3x-select-selection--single {
162
- border : none;
163
- border-radius: 0;
164
- }
165
-
166
- .ktsAnt3x-form-explain {
167
- display: none;
168
- }
169
-
170
- .ktsAntX-checkbox-wrapper .ktsAntX-checkbox-checked .ktsAntX-checkbox-inner::after {
171
- width : 5px;
172
- height: 10px;
173
- }
174
- }
175
- .kts-invoice-operate-goods-list-table {
176
- .ktsAnt3x-form-item-control.has-error {
177
- border: 1px solid #f00;
178
- }
179
- }
1
+ .kts-invoice-operate-goods-list {
2
+
3
+ .kts-invoice-operate-goods-list-table-tax-rate {
4
+ .ktsAnt3x-select-selection-selected-value {
5
+ float: right;
6
+ }
7
+ }
8
+
9
+ .kts-invoice-operate-goods-list-able {
10
+ display : flex;
11
+ padding : 10px;
12
+ border-bottom: 1px solid #dcdcdc;
13
+ }
14
+
15
+ .kts-invoice-operate-goods-list-able-list {
16
+ flex : 1;
17
+ display : flex;
18
+ gap : 10px;
19
+ padding-right: 10px;
20
+
21
+ button {
22
+ padding-left : 10px;
23
+ padding-right: 10px;
24
+ border-radius: 12px;
25
+ color : #0074ff;
26
+ border : 1px solid #0074ff;
27
+ height : 24px;
28
+ line-height : 22px;
29
+ cursor : pointer;
30
+ font-size : 12px;
31
+ }
32
+
33
+ button[disabled] {
34
+ color : rgba(0, 0, 0, 0.25);
35
+ border: 1px solid;
36
+ }
37
+ }
38
+
39
+ .kts-invoice-operate-goods-list-able-extend {
40
+ flex : none;
41
+ display: flex;
42
+ gap : 5px;
43
+ }
44
+
45
+ .ktsAntX-table {
46
+ .ktsAntX-table-row.kts-invoice-operate-goods-be-discount .ktsAntX-table-cell,
47
+ .ktsAntX-table-row.kts-invoice-operate-goods-discount .ktsAntX-table-cell {
48
+ background: #f5f5f5;
49
+ }
50
+ }
51
+ }
52
+
53
+ .kts-invoice-operate-goods-list-table.kts-invoice-operate-prefab {
54
+ .ktsAnt3x-table-row {
55
+ color : rgba(0, 0, 0, 0.25);
56
+ background: #f5f5f5;
57
+ }
58
+ }
59
+
60
+ // .kts-invoice-operate-goods-list-table {
61
+ // border-bottom: 1px solid #dcdcdc;
62
+
63
+ // .kts-invoice-operate-goods-be-discount,
64
+ // .kts-invoice-operate-goods-discount {
65
+ // background: #f5f5f5;
66
+ // }
67
+
68
+ // .kts-invoice-operate-goods-be-discount{
69
+ // color: #D9001B;
70
+ // }
71
+
72
+ // .kts-invoice-operate-goods-list-able-list-itemName-import {
73
+ // display: flex;
74
+
75
+ // .ktsAnt3x-btn {
76
+ // display : block;
77
+ // line-height : 0;
78
+ // width : auto;
79
+ // padding-right: 5px;
80
+ // }
81
+ // }
82
+
83
+ // .ktsAnt3x-form-item-children {
84
+ // height : 30px;
85
+ // display: block;
86
+ // }
87
+
88
+ // .ktsAnt3x-table-body {
89
+ // height: 263px;
90
+ // }
91
+
92
+ // .ktsAnt3x-form-explain {
93
+ // position: absolute;
94
+ // right : 6px;
95
+ // top : 6px;
96
+ // }
97
+
98
+ // table {
99
+ // border-bottom: 1px solid #d9d9d9 !important;
100
+ // }
101
+
102
+ // table>.ktsAnt3x-table-tbody>tr>td {
103
+ // padding: 0 !important;
104
+
105
+ // .ktsAnt3x-form-explain {
106
+ // display: none;
107
+ // }
108
+
109
+ // .ktsAnt3x-form-item {
110
+ // padding: 0;
111
+ // margin : 0;
112
+
113
+ // .ktsAnt3x-form-item-control {
114
+ // line-height: inherit;
115
+ // }
116
+ // }
117
+
118
+ // .has-error .ktsAnt3x-select-selection,
119
+ // .has-error .ktsAnt3x-input,
120
+ // .has-error .ktsAnt3x-input:hover {
121
+ // border-right-width : 1px !important;
122
+ // border-top-width : 1px;
123
+ // border-left-width : 1px;
124
+ // border-bottom-width: 1px;
125
+ // }
126
+
127
+ // .ktsAnt3x-select-selection--single,
128
+ // .ktsAnt3x-select-auto-complete.ktsAnt3x-select .ktsAnt3x-input:hover,
129
+ // .ktsAnt3x-input {
130
+ // height : 30px;
131
+ // border-radius : 0;
132
+ // border-right-width : 0 !important;
133
+ // border-top-width : 0;
134
+ // border-left-width : 0;
135
+ // border-bottom-width: 0;
136
+ // box-shadow : none;
137
+ // }
138
+ // }
139
+ // }
140
+
141
+ .kts-invoice-operate-goods-list-table-search-protrude {
142
+ background : #ff0;
143
+ color : #000;
144
+ font-weight: bold;
145
+ }
146
+
147
+ .kts-invoice-operate-goods-table-virtual .ktsAntX-table .ktsAntX-table-tbody {
148
+ .ktsAnt3x-form-item {
149
+ margin: 0;
150
+ }
151
+
152
+ .ktsAnt3x-form-item-control {
153
+ line-height: 1;
154
+ }
155
+
156
+ .ktsAnt3x-input:focus {
157
+ box-shadow: none;
158
+ }
159
+
160
+ .ktsAnt3x-input,
161
+ .ktsAnt3x-select-selection--single {
162
+ border : none;
163
+ border-radius: 0;
164
+ }
165
+
166
+ .ktsAnt3x-form-explain {
167
+ display: none;
168
+ }
169
+
170
+ .ktsAntX-checkbox-wrapper .ktsAntX-checkbox-checked .ktsAntX-checkbox-inner::after {
171
+ width : 5px;
172
+ height: 10px;
173
+ }
174
+ }
175
+ .kts-invoice-operate-goods-list-table {
176
+ .ktsAnt3x-form-item-control.has-error {
177
+ border: 1px solid #f00;
178
+ }
179
+ }