kts-component-invoice-operate 3.2.216 → 3.2.217

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 (252) 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 +13 -9
  8. package/dist/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/index.d.ts +2 -0
  9. package/dist/Invoice/ui/digtal/GoodsList/index.d.ts +1 -0
  10. package/dist/Invoice/ui/digtal/GoodsList/ui/TaxIncludedSwitch/index.d.ts +4 -1
  11. package/dist/index.esm.js +242 -135
  12. package/dist/index.js +241 -134
  13. package/docs/index.md +5 -5
  14. package/docs-dist/404.html +33 -33
  15. package/docs-dist/index.html +33 -33
  16. package/docs-dist/static/arrowDown.a1cbf0d8.svg +2 -2
  17. package/docs-dist/static/arrowUp.4c482054.svg +2 -2
  18. package/docs-dist/static/fork.5431267d.svg +11 -11
  19. package/docs-dist/static/plus.44013ce3.svg +11 -11
  20. package/docs-dist/static/plus.4fd1af30.svg +11 -11
  21. package/docs-dist/umi.css +18 -18
  22. package/index.html +12 -12
  23. package/package.json +62 -62
  24. package/src/Invoice/Invoice-digtal/_test/architecture/index.tsx +21 -21
  25. package/src/Invoice/Invoice-digtal/_test/disabled/index.tsx +40 -40
  26. package/src/Invoice/Invoice-digtal/_test/easiest/index.tsx +182 -176
  27. package/src/Invoice/Invoice-digtal/_test/freight/index.tsx +14574 -14574
  28. package/src/Invoice/Invoice-digtal/_test/header/index.tsx +84 -84
  29. package/src/Invoice/Invoice-digtal/_test/importGoods/index.tsx +868 -868
  30. package/src/Invoice/Invoice-digtal/_test/importStakeholder/index.tsx +18 -18
  31. package/src/Invoice/Invoice-digtal/_test/lineCredit/index.tsx +19 -19
  32. package/src/Invoice/Invoice-digtal/_test/prefab/index.tsx +150 -150
  33. package/src/Invoice/Invoice-digtal/_test/readOnly/index.tsx +55 -55
  34. package/src/Invoice/Invoice-digtal/_test/realEstateInfo/index.tsx +27 -21
  35. package/src/Invoice/Invoice-digtal/_test/stakeholder/index.tsx +12 -12
  36. package/src/Invoice/Invoice-digtal/_test/typeSelection/index.tsx +29 -29
  37. package/src/Invoice/Invoice-digtal/index.md +44 -42
  38. package/src/Invoice/InvoiceController/InvoiceControllerForm/index.ts +105 -105
  39. package/src/Invoice/InvoiceController/InvoiceControllerState/AutoComplete/index.ts +26 -26
  40. package/src/Invoice/InvoiceController/InvoiceControllerState/BuyerState/index.tsx +88 -88
  41. package/src/Invoice/InvoiceController/InvoiceControllerState/FreightListState/IColumnsReplenish/index.ts +10 -10
  42. package/src/Invoice/InvoiceController/InvoiceControllerState/FreightListState/IGood/index.ts +33 -33
  43. package/src/Invoice/InvoiceController/InvoiceControllerState/FreightListState/ImportGoods/index.ts +81 -81
  44. package/src/Invoice/InvoiceController/InvoiceControllerState/FreightListState/index.ts +39 -39
  45. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/Drag/index.ts +15 -15
  46. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/EndowCode/index.tsx +104 -104
  47. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IColumnsReplenish/index.ts +10 -10
  48. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IGood/index.ts +87 -87
  49. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ImportGoods/index.ts +84 -84
  50. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/LineAttributeType/index.ts +7 -7
  51. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ProductComparison/index.ts +9 -9
  52. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/index.ts +134 -131
  53. package/src/Invoice/InvoiceController/InvoiceControllerState/Stakeholder/index.ts +13 -13
  54. package/src/Invoice/InvoiceController/InvoiceControllerState/index.ts +71 -71
  55. package/src/Invoice/InvoiceController/fns/addFreight.ts +11 -11
  56. package/src/Invoice/InvoiceController/fns/addGood.ts +11 -11
  57. package/src/Invoice/InvoiceController/fns/addGoodDiscount.ts +126 -126
  58. package/src/Invoice/InvoiceController/fns/addGoodDiscountV2.ts +86 -86
  59. package/src/Invoice/InvoiceController/fns/delFreight.ts +38 -38
  60. package/src/Invoice/InvoiceController/fns/delGood.ts +41 -41
  61. package/src/Invoice/InvoiceController/fns/getGoodsSearch.ts +26 -26
  62. package/src/Invoice/InvoiceController/fns/importGoodsDrawer.ts +79 -79
  63. package/src/Invoice/InvoiceController/fns/itemBlur.ts +40 -40
  64. package/src/Invoice/InvoiceController/fns/mergeDetails.ts +201 -201
  65. package/src/Invoice/InvoiceController/fns/mergeDiscount.ts +35 -35
  66. package/src/Invoice/InvoiceController/fns/saveEditFreight.ts +24 -24
  67. package/src/Invoice/InvoiceController/fns/saveEditGood.ts +24 -24
  68. package/src/Invoice/InvoiceController/fns/setEditFreight.ts +16 -16
  69. package/src/Invoice/InvoiceController/fns/setEditGood.ts +16 -16
  70. package/src/Invoice/InvoiceController/fns/setFreight.ts +10 -10
  71. package/src/Invoice/InvoiceController/fns/setGoods.ts +10 -10
  72. package/src/Invoice/InvoiceController/fns/updateInvoiceNo.ts +8 -8
  73. package/src/Invoice/InvoiceController/index.ts +106 -106
  74. package/src/Invoice/_test/buyerNameSearch/index.tsx +42 -42
  75. package/src/Invoice/_test/children/index.tsx +214 -214
  76. package/src/Invoice/_test/deduction/index.tsx +935 -935
  77. package/src/Invoice/_test/draft/index.tsx +40 -40
  78. package/src/Invoice/_test/easiest/index.tsx +5 -5
  79. package/src/Invoice/_test/endowCode/index.tsx +1158 -1158
  80. package/src/Invoice/_test/goodsMenuExpand/index.tsx +32 -32
  81. package/src/Invoice/_test/importBuyer/index.tsx +74 -74
  82. package/src/Invoice/_test/importGoods/index.tsx +1197 -1197
  83. package/src/Invoice/_test/invoiceType/index.tsx +59 -59
  84. package/src/Invoice/_test/isInvoiceNo/index.tsx +12 -12
  85. package/src/Invoice/_test/replaceHead/index.tsx +22 -22
  86. package/src/Invoice/_test/retrieveData/index.tsx +22 -22
  87. package/src/Invoice/_test/seller/index.tsx +28 -28
  88. package/src/Invoice/_test/setDataSource/index.tsx +73 -73
  89. package/src/Invoice/_test/unit/index.tsx +19 -19
  90. package/src/Invoice/index.less +31 -31
  91. package/src/Invoice/index.md +56 -56
  92. package/src/Invoice/index.tsx +197 -197
  93. package/src/Invoice/tools/calculate/index.ts +144 -144
  94. package/src/Invoice/tools/coolingFn/index.ts +17 -17
  95. package/src/Invoice/tools/evaluate/index.ts +7 -7
  96. package/src/Invoice/tools/idGenerator/index.ts +2 -2
  97. package/src/Invoice/tools/itemName/index.ts +55 -55
  98. package/src/Invoice/tools/lazyFn/index.ts +19 -19
  99. package/src/Invoice/tools/mounting/index.ts +13 -13
  100. package/src/Invoice/tools/strringFn/index.ts +40 -40
  101. package/src/Invoice/tools/useToGenerateId/index.ts +10 -10
  102. package/src/Invoice/tools/utils/index.ts +1 -1
  103. package/src/Invoice/tools/utils/money/index.ts +20 -20
  104. package/src/Invoice/ui/default/AddComparisonDrawer/index.tsx +149 -149
  105. package/src/Invoice/ui/default/Buyer/index.less +219 -219
  106. package/src/Invoice/ui/default/Buyer/index.tsx +114 -114
  107. package/src/Invoice/ui/default/Buyer/ui/BuyerNameInput/index.tsx +166 -166
  108. package/src/Invoice/ui/default/Buyer/ui/ImportBuyerButton/index.tsx +21 -21
  109. package/src/Invoice/ui/default/EndowCodeDrawer/index.less +8 -8
  110. package/src/Invoice/ui/default/EndowCodeDrawer/index.tsx +612 -612
  111. package/src/Invoice/ui/default/GoodsList/hook/useColumns/autoFillFn/index.ts +647 -647
  112. package/src/Invoice/ui/default/GoodsList/hook/useColumns/index.tsx +712 -712
  113. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/Drag/index.less +20 -20
  114. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/Drag/index.tsx +205 -205
  115. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/Expand/index.tsx +57 -57
  116. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemCodeInput/index.less +18 -18
  117. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemCodeInput/index.tsx +49 -49
  118. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +17 -17
  119. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +91 -91
  120. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
  121. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
  122. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +118 -118
  123. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/dist/index.js +32 -32
  124. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -41
  125. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +25 -25
  126. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -13
  127. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +99 -99
  128. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
  129. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  130. package/src/Invoice/ui/default/GoodsList/hook/useDeduction/index.tsx +24 -24
  131. package/src/Invoice/ui/default/GoodsList/hook/useOnRow/index.tsx +52 -52
  132. package/src/Invoice/ui/default/GoodsList/hook/useRowSelection/index.tsx +120 -120
  133. package/src/Invoice/ui/default/GoodsList/hook/useWindowClick/index.tsx +23 -23
  134. package/src/Invoice/ui/default/GoodsList/index.less +185 -185
  135. package/src/Invoice/ui/default/GoodsList/index.tsx +205 -205
  136. package/src/Invoice/ui/default/GoodsList/ui/AddRowButton/index.tsx +65 -65
  137. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.less +21 -21
  138. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +244 -244
  139. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
  140. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +69 -69
  141. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +65 -65
  142. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useMergeDetails/index.tsx +91 -91
  143. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useMergeDiscount/index.tsx +36 -36
  144. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useSalesDiscount/index.tsx +109 -109
  145. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useSalesGifts/index.tsx +94 -94
  146. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/index.tsx +37 -37
  147. package/src/Invoice/ui/default/GoodsList/ui/DescribeSwitch/index.tsx +36 -36
  148. package/src/Invoice/ui/default/GoodsList/ui/Search/index.less +10 -10
  149. package/src/Invoice/ui/default/GoodsList/ui/Search/index.tsx +52 -52
  150. package/src/Invoice/ui/default/GoodsList/ui/Statistics/index.less +18 -18
  151. package/src/Invoice/ui/default/GoodsList/ui/Statistics/index.tsx +114 -114
  152. package/src/Invoice/ui/default/GoodsList/ui/TableRow/index.less +40 -40
  153. package/src/Invoice/ui/default/GoodsList/ui/TableRow/index.tsx +71 -71
  154. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual/index.less +38 -38
  155. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual/index.tsx +130 -130
  156. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual.o/index.less +44 -44
  157. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual.o/index.tsx +96 -96
  158. package/src/Invoice/ui/default/GoodsList/ui/TaxIncludedSwitch/index.tsx +31 -31
  159. package/src/Invoice/ui/default/ImportBuyerDrawer/index.tsx +75 -75
  160. package/src/Invoice/ui/default/ImportGoodsDrawer/index.tsx +201 -201
  161. package/src/Invoice/ui/default/InvoiceHeader/index.less +68 -68
  162. package/src/Invoice/ui/default/InvoiceHeader/index.tsx +246 -246
  163. package/src/Invoice/ui/default/Seller/index.less +113 -113
  164. package/src/Invoice/ui/default/Seller/index.tsx +98 -98
  165. package/src/Invoice/ui/default/Sign/index.less +14 -14
  166. package/src/Invoice/ui/default/Sign/index.tsx +71 -71
  167. package/src/Invoice/ui/digtal/Architecture/index.less +18 -18
  168. package/src/Invoice/ui/digtal/Architecture/index.tsx +177 -177
  169. package/src/Invoice/ui/digtal/FreightList/hook/useColumns/dist/index.js +616 -616
  170. package/src/Invoice/ui/digtal/FreightList/hook/useColumns/index.tsx +246 -246
  171. package/src/Invoice/ui/digtal/FreightList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  172. package/src/Invoice/ui/digtal/FreightList/hook/useOnRow/index.tsx +37 -37
  173. package/src/Invoice/ui/digtal/FreightList/hook/useRowSelection/index.tsx +119 -119
  174. package/src/Invoice/ui/digtal/FreightList/hook/useWindowClick/index.tsx +23 -23
  175. package/src/Invoice/ui/digtal/FreightList/index.less +72 -72
  176. package/src/Invoice/ui/digtal/FreightList/index.tsx +129 -129
  177. package/src/Invoice/ui/digtal/FreightList/ui/AddRowButton/index.tsx +74 -74
  178. package/src/Invoice/ui/digtal/FreightList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +50 -50
  179. package/src/Invoice/ui/digtal/FreightList/ui/BulkMenu/hooks/useEmptyRefill/index.tsx +36 -36
  180. package/src/Invoice/ui/digtal/FreightList/ui/TableRow/index.less +28 -28
  181. package/src/Invoice/ui/digtal/FreightList/ui/TableRow/index.tsx +20 -20
  182. package/src/Invoice/ui/digtal/FreightList/ui/TableVirtual/index.less +38 -38
  183. package/src/Invoice/ui/digtal/FreightList/ui/TableVirtual/index.tsx +108 -108
  184. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/autoFillFn/index.ts +683 -683
  185. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/dist/index.js +616 -616
  186. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/index.tsx +712 -703
  187. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/svg/plus.svg +11 -11
  188. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/Drag/index.less +20 -20
  189. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/Drag/index.tsx +205 -205
  190. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +9 -9
  191. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +87 -87
  192. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
  193. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
  194. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +76 -76
  195. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -41
  196. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +34 -34
  197. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -13
  198. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +98 -98
  199. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
  200. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  201. package/src/Invoice/ui/digtal/GoodsList/hook/useOnRow/index.tsx +51 -51
  202. package/src/Invoice/ui/digtal/GoodsList/hook/useRowSelection/index.tsx +121 -121
  203. package/src/Invoice/ui/digtal/GoodsList/hook/useWindowClick/index.tsx +23 -23
  204. package/src/Invoice/ui/digtal/GoodsList/index.less +56 -56
  205. package/src/Invoice/ui/digtal/GoodsList/index.tsx +181 -179
  206. package/src/Invoice/ui/digtal/GoodsList/ui/AddRowButton/index.tsx +77 -77
  207. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +340 -340
  208. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/svg/add.svg +11 -11
  209. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
  210. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +50 -50
  211. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEmptyRefill/index.tsx +37 -37
  212. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +82 -82
  213. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useReselectInvoiceType/index.tsx +57 -57
  214. package/src/Invoice/ui/digtal/GoodsList/ui/DescribeSwitch/index.tsx +36 -36
  215. package/src/Invoice/ui/digtal/GoodsList/ui/Search/index.less +11 -11
  216. package/src/Invoice/ui/digtal/GoodsList/ui/Search/index.tsx +60 -60
  217. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/index.less +53 -53
  218. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/index.tsx +98 -98
  219. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/svg/fork.svg +11 -11
  220. package/src/Invoice/ui/digtal/GoodsList/ui/TableRow/index.less +28 -28
  221. package/src/Invoice/ui/digtal/GoodsList/ui/TableRow/index.tsx +52 -52
  222. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.less +38 -38
  223. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.tsx +108 -108
  224. package/src/Invoice/ui/digtal/GoodsList/ui/TaxIncludedSwitch/index.tsx +34 -31
  225. package/src/Invoice/ui/digtal/InvoiceHeader/index.less +57 -57
  226. package/src/Invoice/ui/digtal/InvoiceHeader/index.tsx +77 -77
  227. package/src/Invoice/ui/digtal/RealEstateInfo/index.less +21 -14
  228. package/src/Invoice/ui/digtal/RealEstateInfo/index.tsx +242 -192
  229. package/src/Invoice/ui/digtal/Sign/index.less +48 -48
  230. package/src/Invoice/ui/digtal/Sign/index.tsx +99 -99
  231. package/src/Invoice/ui/digtal/StakeFarmerholder/index.less +99 -99
  232. package/src/Invoice/ui/digtal/StakeFarmerholder/index.tsx +477 -477
  233. package/src/Invoice/ui/digtal/StakeFarmerholder/svg/arrowDown.svg +2 -2
  234. package/src/Invoice/ui/digtal/StakeFarmerholder/svg/arrowUp.svg +2 -2
  235. package/src/Invoice/ui/digtal/StakeFarmerholder/svg/plus.svg +11 -11
  236. package/src/Invoice/ui/digtal/Stakeholder/index.less +99 -99
  237. package/src/Invoice/ui/digtal/Stakeholder/index.tsx +435 -435
  238. package/src/Invoice/ui/digtal/Stakeholder/svg/arrowDown.svg +2 -2
  239. package/src/Invoice/ui/digtal/Stakeholder/svg/arrowUp.svg +2 -2
  240. package/src/Invoice/ui/digtal/Stakeholder/svg/plus.svg +11 -11
  241. package/src/InvoiceTypeModal/_test/easiest/index.tsx +31 -31
  242. package/src/InvoiceTypeModal/dist/index.js +92 -92
  243. package/src/InvoiceTypeModal/index.less +7 -7
  244. package/src/InvoiceTypeModal/index.md +5 -5
  245. package/src/InvoiceTypeModal/index.tsx +161 -161
  246. package/src/TaxClassificationCodeModal/_test/easiest/index.tsx +184 -184
  247. package/src/TaxClassificationCodeModal/index.less +17 -17
  248. package/src/TaxClassificationCodeModal/index.md +6 -6
  249. package/src/TaxClassificationCodeModal/index.tsx +152 -152
  250. package/src/index.ts +13 -13
  251. package/tsconfig.json +31 -31
  252. package/typings.d.ts +3 -3
@@ -1,244 +1,244 @@
1
- /**
2
- * 折扣率 含税金额 不含税金额
3
- *
4
- * 含税折扣额 = 含税金额 * 折扣率
5
- * 不含税扣额 = 含税折扣额 / (1+税率)
6
- * 折扣税额 = 含税折扣额 - 不含税扣额
7
- */
8
-
9
- import React from 'react';
10
- import { Button, Drawer, Form, message, Input, Typography, Menu } from 'kts-components-antd-x3';
11
- import { FormComponentProps } from 'kts-components-antd-x3/lib/form';
12
- import { all, create } from 'mathjs';
13
- import { decorator } from 'grey-react-box';
14
- import Invoice from '../../../../../../..';
15
- import lazyFn from '../../../../../../../tools/lazyFn';
16
- import LineAttributeType from '../../../../../../../InvoiceController/InvoiceControllerState/GoodsListState/LineAttributeType';
17
- import evaluate from '../../../../../../../../Invoice/tools/evaluate';
18
- import './index.less';
19
-
20
- const { Text } = Typography;
21
- const { chain } = create(all, { number: 'BigNumber', precision: 20 }) as any;
22
-
23
- export default () => {
24
- /** 控制器 */
25
- const controller = Invoice.useInvoiceController();
26
-
27
- const model = controller.useMemo(s => s.model, []);
28
-
29
- /** 是否能添加折扣行 */
30
- const isAddDiscount = controller.useMemo(s => s.goodsListState.isAddDiscount, []);
31
-
32
- /** 是否开启抽屉 */
33
- const visible = controller.useMemo(s => s.goodsListState.discountGoodIndex.length > 0, []);
34
-
35
- /** 是否禁用 按钮 */
36
- const disabled = controller.useMemo((s) => {
37
- if (s.goodsListState.selectedGoodIndex.length <= 0) {
38
- return true;
39
- }
40
-
41
- return s.goodsListState.selectedGoodIndex.some((e) => {
42
- const good = s.goodsListState.goodsMap.get(e);
43
- if (!good) return true;
44
- return good.lineAttribute !== LineAttributeType.正常;
45
- });
46
- }, []);
47
-
48
- /** 关闭抽屉 */
49
- const onClose = React.useCallback(() => {
50
- controller.pipeline(async (s) => {
51
- s.goodsListState.discountGoodIndex = [];
52
- })();
53
- }, []);
54
-
55
- /** 点击了 添加折扣行 按钮 */
56
- const onClick = React.useCallback(async () => {
57
- await controller.saveEditGood();
58
- await controller.wait();
59
- await controller.pipeline(async (s) => {
60
-
61
- let isOk = s.goodsListState.editGood && s.goodsListState.selectedGoodIndex.indexOf(s.goodsListState.editGood.$index) >= 0;
62
- if (isOk) {
63
- message.error({ content: '不能给编辑状态的行增加折扣!', key: '不能给编辑状态的行增加折扣!' });
64
- return;
65
- }
66
-
67
- isOk = s.goodsListState.selectedGoodIndex.some($index => {
68
- const good = s.goodsListState.goodsMap.get($index);
69
- return !good || (good.taxRate === 0 && s.goodsListState.endowCode.isTaxFreeTypeNeeded && !good.taxFreeType)
70
- })
71
- if (isOk) {
72
- message.error({ content: '零税率需要设置免税类型,请在赋码中设置!', key: '零税率需要设置免税类型,请在赋码中设置!' });
73
- return;
74
- }
75
-
76
- isOk = s.goodsListState.selectedGoodIndex.some($index => {
77
- const good = s.goodsListState.goodsMap.get($index);
78
- return `${good?.lineAmountIncludeTax}` === '0'
79
- })
80
- if (isOk) {
81
- message.error({ content: '金额为0不能添加折扣行', key: '金额为0不能添加折扣行' });
82
- return;
83
- }
84
-
85
- s.goodsListState.discountGoodIndex = s.goodsListState.selectedGoodIndex.slice();
86
- })();
87
- }, [controller]);
88
-
89
- const menuItem = React.useMemo(() => {
90
- return model === 'prefab' ? <></> : isAddDiscount !== false ? (
91
- <Menu.Item key="0" onClick={onClick} disabled={disabled}>
92
- 添加折扣行
93
- </Menu.Item>
94
- ) : undefined
95
- }, [isAddDiscount, disabled, onClick])
96
-
97
- const drawer = React.useMemo(() => {
98
- return (
99
- <Drawer
100
- className="kts-invoice-operate-goods-list-add-discount-row"
101
- width={540}
102
- title="添加折扣行"
103
- placement="right"
104
- destroyOnClose={true}
105
- onClose={onClose}
106
- visible={visible}
107
- >
108
- <DrawerBody />
109
- </Drawer>
110
- )
111
- }, [visible, onClose])
112
-
113
- return { menuItem, drawer }
114
- };
115
-
116
- const DrawerBody = decorator<{}, FormComponentProps>(Form.create())((props) => {
117
- const { form } = props;
118
-
119
- const { getFieldDecorator } = form;
120
-
121
- const controller = Invoice.useInvoiceController();
122
-
123
- /** 选中的货物索引列表 */
124
- const discountGoodIndex = controller.useMemo(s => s.goodsListState.discountGoodIndex, []);
125
-
126
- /** 金额合计 */
127
- const lineAmountSum = controller.useMemo((s) => {
128
- let sum = chain(0);
129
- if (s.goodsListState.isTaxIncluded) {
130
- s.goodsListState.discountGoodIndex.forEach((e) => {
131
- const goods = s.goodsListState.goodsMap.get(e);
132
- sum = sum.add(goods?.lineAmountIncludeTax || 0);
133
- });
134
- } else {
135
- s.goodsListState.discountGoodIndex.forEach((e) => {
136
- const goods = s.goodsListState.goodsMap.get(e);
137
- sum = sum.add(goods?.lineAmountExcludeTax || 0);
138
- });
139
- }
140
- return sum.done();
141
- }, []);
142
-
143
- /** 关闭抽屉 */
144
- const onClose = React.useCallback(() => {
145
- controller.pipeline(async (s) => { s.goodsListState.discountGoodIndex = [] })();
146
- }, []);
147
-
148
- /** 点击了保存 */
149
- const onClickSave = React.useCallback(() => {
150
- form.validateFields((err, values) => {
151
- if (err) return;
152
- const discolineAmountunt = parseFloat(parseFloat(values.discolineAmountunt).toFixed(2));
153
- const discount = parseFloat(parseFloat(values.discount).toFixed(4));
154
- const indexList = discountGoodIndex;
155
- controller.pipeline(async s => { s.goodsListState.discountGoodIndex = []; })();
156
- controller.addGoodDiscount({ indexList, discount, discolineAmountunt });
157
- });
158
- }, [controller, form, discountGoodIndex]);
159
-
160
- /** 折扣率变化 */
161
- const onChangeDiscount = React.useCallback(
162
- lazyFn((e: React.ChangeEvent<HTMLInputElement>) => {
163
- form.validateFields((err, values) => {
164
- if (err && err.discount) return;
165
- const discolineAmountunt = evaluate(`${lineAmountSum} * (${values.discount}/100)`).toFixed(2);
166
- form.setFieldsValue({ discolineAmountunt });
167
- });
168
- }, 300),
169
- [form, lineAmountSum],
170
- );
171
-
172
- /** 折扣变化 */
173
- const onChangeDiscolineAmountunt = React.useCallback(
174
- lazyFn((e: React.ChangeEvent<HTMLInputElement>) => {
175
- form.validateFields((err, values) => {
176
- if (err && err.discolineAmountunt) return;
177
- const discolineAmountunt = parseFloat(values.discolineAmountunt).toFixed(2);
178
- const discount = evaluate(`(${discolineAmountunt} / ${lineAmountSum}) * 100`).toFixed(4);
179
- form.setFieldsValue({ discount });
180
- });
181
- }, 300),
182
- [form, lineAmountSum],
183
- );
184
-
185
- return (
186
- <>
187
- <div className="add-discount-row-body">
188
- <p>
189
- 当前选择<Text type="danger">{discountGoodIndex.length}</Text>
190
- 行被折扣商品行,金额合计¥
191
- <Text type="danger">{lineAmountSum.toFixed(2)}</Text>
192
- </p>
193
- <Form.Item label="折扣率:">
194
- {getFieldDecorator('discount', {
195
- rules: [
196
- { required: true, message: '请输入折扣金额' },
197
- { pattern: /^[+-]?(0|([1-9]\d*))(\.\d+)?$/, message: '请输入数字' },
198
- {
199
- validator: (_, value: string, callback) => {
200
- if (!value) { callback(); return; }
201
- if (!value.match(/^[+-]?(0|([1-9]\d*))(\.\d+)?$/)?.length) { callback(); return; }
202
- if (parseFloat(value) > 100 || parseFloat(value) < 0) { callback('请输入大于0小于100的数字'); }
203
- callback();
204
- },
205
- },
206
- ],
207
- })(
208
- <Input
209
- placeholder="请输入大于0小于100的数字"
210
- suffix="%"
211
- onChange={onChangeDiscount}
212
- />,
213
- )}
214
- </Form.Item>
215
- <Form.Item label="折扣金额:">
216
- {getFieldDecorator('discolineAmountunt', {
217
- rules: [
218
- { required: true, message: '请输入折扣金额' },
219
- { pattern: /^[+-]?(0|([1-9]\d*))(\.\d+)?$/, message: '请输入数字' },
220
- {
221
- validator: (_, value: string, callback) => {
222
- if (!value) { callback(); return; }
223
- if (!value.match(/^[+-]?(0|([1-9]\d*))(\.\d+)?$/)?.length) { callback(); return; }
224
- if (parseFloat(value) > lineAmountSum || parseFloat(value) <= 0) { callback('请输入大于0小于金额合计的数字'); }
225
- callback();
226
- },
227
- },
228
- ],
229
- })(
230
- <Input
231
- placeholder="请输入大于0小于金额合计的数字"
232
- suffix="¥"
233
- onChange={onChangeDiscolineAmountunt}
234
- />,
235
- )}
236
- </Form.Item>
237
- </div>
238
- <div className="add-discount-row-footer">
239
- <Button block style={{ marginBottom: 12 }} onClick={onClose}>取消</Button>
240
- <Button type="primary" block onClick={onClickSave}>保存</Button>
241
- </div>
242
- </>
243
- );
244
- });
1
+ /**
2
+ * 折扣率 含税金额 不含税金额
3
+ *
4
+ * 含税折扣额 = 含税金额 * 折扣率
5
+ * 不含税扣额 = 含税折扣额 / (1+税率)
6
+ * 折扣税额 = 含税折扣额 - 不含税扣额
7
+ */
8
+
9
+ import React from 'react';
10
+ import { Button, Drawer, Form, message, Input, Typography, Menu } from 'kts-components-antd-x3';
11
+ import { FormComponentProps } from 'kts-components-antd-x3/lib/form';
12
+ import { all, create } from 'mathjs';
13
+ import { decorator } from 'grey-react-box';
14
+ import Invoice from '../../../../../../..';
15
+ import lazyFn from '../../../../../../../tools/lazyFn';
16
+ import LineAttributeType from '../../../../../../../InvoiceController/InvoiceControllerState/GoodsListState/LineAttributeType';
17
+ import evaluate from '../../../../../../../../Invoice/tools/evaluate';
18
+ import './index.less';
19
+
20
+ const { Text } = Typography;
21
+ const { chain } = create(all, { number: 'BigNumber', precision: 20 }) as any;
22
+
23
+ export default () => {
24
+ /** 控制器 */
25
+ const controller = Invoice.useInvoiceController();
26
+
27
+ const model = controller.useMemo(s => s.model, []);
28
+
29
+ /** 是否能添加折扣行 */
30
+ const isAddDiscount = controller.useMemo(s => s.goodsListState.isAddDiscount, []);
31
+
32
+ /** 是否开启抽屉 */
33
+ const visible = controller.useMemo(s => s.goodsListState.discountGoodIndex.length > 0, []);
34
+
35
+ /** 是否禁用 按钮 */
36
+ const disabled = controller.useMemo((s) => {
37
+ if (s.goodsListState.selectedGoodIndex.length <= 0) {
38
+ return true;
39
+ }
40
+
41
+ return s.goodsListState.selectedGoodIndex.some((e) => {
42
+ const good = s.goodsListState.goodsMap.get(e);
43
+ if (!good) return true;
44
+ return good.lineAttribute !== LineAttributeType.正常;
45
+ });
46
+ }, []);
47
+
48
+ /** 关闭抽屉 */
49
+ const onClose = React.useCallback(() => {
50
+ controller.pipeline(async (s) => {
51
+ s.goodsListState.discountGoodIndex = [];
52
+ })();
53
+ }, []);
54
+
55
+ /** 点击了 添加折扣行 按钮 */
56
+ const onClick = React.useCallback(async () => {
57
+ await controller.saveEditGood();
58
+ await controller.wait();
59
+ await controller.pipeline(async (s) => {
60
+
61
+ let isOk = s.goodsListState.editGood && s.goodsListState.selectedGoodIndex.indexOf(s.goodsListState.editGood.$index) >= 0;
62
+ if (isOk) {
63
+ message.error({ content: '不能给编辑状态的行增加折扣!', key: '不能给编辑状态的行增加折扣!' });
64
+ return;
65
+ }
66
+
67
+ isOk = s.goodsListState.selectedGoodIndex.some($index => {
68
+ const good = s.goodsListState.goodsMap.get($index);
69
+ return !good || (good.taxRate === 0 && s.goodsListState.endowCode.isTaxFreeTypeNeeded && !good.taxFreeType)
70
+ })
71
+ if (isOk) {
72
+ message.error({ content: '零税率需要设置免税类型,请在赋码中设置!', key: '零税率需要设置免税类型,请在赋码中设置!' });
73
+ return;
74
+ }
75
+
76
+ isOk = s.goodsListState.selectedGoodIndex.some($index => {
77
+ const good = s.goodsListState.goodsMap.get($index);
78
+ return `${good?.lineAmountIncludeTax}` === '0'
79
+ })
80
+ if (isOk) {
81
+ message.error({ content: '金额为0不能添加折扣行', key: '金额为0不能添加折扣行' });
82
+ return;
83
+ }
84
+
85
+ s.goodsListState.discountGoodIndex = s.goodsListState.selectedGoodIndex.slice();
86
+ })();
87
+ }, [controller]);
88
+
89
+ const menuItem = React.useMemo(() => {
90
+ return model === 'prefab' ? <></> : isAddDiscount !== false ? (
91
+ <Menu.Item key="0" onClick={onClick} disabled={disabled}>
92
+ 添加折扣行
93
+ </Menu.Item>
94
+ ) : undefined
95
+ }, [isAddDiscount, disabled, onClick])
96
+
97
+ const drawer = React.useMemo(() => {
98
+ return (
99
+ <Drawer
100
+ className="kts-invoice-operate-goods-list-add-discount-row"
101
+ width={540}
102
+ title="添加折扣行"
103
+ placement="right"
104
+ destroyOnClose={true}
105
+ onClose={onClose}
106
+ visible={visible}
107
+ >
108
+ <DrawerBody />
109
+ </Drawer>
110
+ )
111
+ }, [visible, onClose])
112
+
113
+ return { menuItem, drawer }
114
+ };
115
+
116
+ const DrawerBody = decorator<{}, FormComponentProps>(Form.create())((props) => {
117
+ const { form } = props;
118
+
119
+ const { getFieldDecorator } = form;
120
+
121
+ const controller = Invoice.useInvoiceController();
122
+
123
+ /** 选中的货物索引列表 */
124
+ const discountGoodIndex = controller.useMemo(s => s.goodsListState.discountGoodIndex, []);
125
+
126
+ /** 金额合计 */
127
+ const lineAmountSum = controller.useMemo((s) => {
128
+ let sum = chain(0);
129
+ if (s.goodsListState.isTaxIncluded) {
130
+ s.goodsListState.discountGoodIndex.forEach((e) => {
131
+ const goods = s.goodsListState.goodsMap.get(e);
132
+ sum = sum.add(goods?.lineAmountIncludeTax || 0);
133
+ });
134
+ } else {
135
+ s.goodsListState.discountGoodIndex.forEach((e) => {
136
+ const goods = s.goodsListState.goodsMap.get(e);
137
+ sum = sum.add(goods?.lineAmountExcludeTax || 0);
138
+ });
139
+ }
140
+ return sum.done();
141
+ }, []);
142
+
143
+ /** 关闭抽屉 */
144
+ const onClose = React.useCallback(() => {
145
+ controller.pipeline(async (s) => { s.goodsListState.discountGoodIndex = [] })();
146
+ }, []);
147
+
148
+ /** 点击了保存 */
149
+ const onClickSave = React.useCallback(() => {
150
+ form.validateFields((err, values) => {
151
+ if (err) return;
152
+ const discolineAmountunt = parseFloat(parseFloat(values.discolineAmountunt).toFixed(2));
153
+ const discount = parseFloat(parseFloat(values.discount).toFixed(4));
154
+ const indexList = discountGoodIndex;
155
+ controller.pipeline(async s => { s.goodsListState.discountGoodIndex = []; })();
156
+ controller.addGoodDiscount({ indexList, discount, discolineAmountunt });
157
+ });
158
+ }, [controller, form, discountGoodIndex]);
159
+
160
+ /** 折扣率变化 */
161
+ const onChangeDiscount = React.useCallback(
162
+ lazyFn((e: React.ChangeEvent<HTMLInputElement>) => {
163
+ form.validateFields((err, values) => {
164
+ if (err && err.discount) return;
165
+ const discolineAmountunt = evaluate(`${lineAmountSum} * (${values.discount}/100)`).toFixed(2);
166
+ form.setFieldsValue({ discolineAmountunt });
167
+ });
168
+ }, 300),
169
+ [form, lineAmountSum],
170
+ );
171
+
172
+ /** 折扣变化 */
173
+ const onChangeDiscolineAmountunt = React.useCallback(
174
+ lazyFn((e: React.ChangeEvent<HTMLInputElement>) => {
175
+ form.validateFields((err, values) => {
176
+ if (err && err.discolineAmountunt) return;
177
+ const discolineAmountunt = parseFloat(values.discolineAmountunt).toFixed(2);
178
+ const discount = evaluate(`(${discolineAmountunt} / ${lineAmountSum}) * 100`).toFixed(4);
179
+ form.setFieldsValue({ discount });
180
+ });
181
+ }, 300),
182
+ [form, lineAmountSum],
183
+ );
184
+
185
+ return (
186
+ <>
187
+ <div className="add-discount-row-body">
188
+ <p>
189
+ 当前选择<Text type="danger">{discountGoodIndex.length}</Text>
190
+ 行被折扣商品行,金额合计¥
191
+ <Text type="danger">{lineAmountSum.toFixed(2)}</Text>
192
+ </p>
193
+ <Form.Item label="折扣率:">
194
+ {getFieldDecorator('discount', {
195
+ rules: [
196
+ { required: true, message: '请输入折扣金额' },
197
+ { pattern: /^[+-]?(0|([1-9]\d*))(\.\d+)?$/, message: '请输入数字' },
198
+ {
199
+ validator: (_, value: string, callback) => {
200
+ if (!value) { callback(); return; }
201
+ if (!value.match(/^[+-]?(0|([1-9]\d*))(\.\d+)?$/)?.length) { callback(); return; }
202
+ if (parseFloat(value) > 100 || parseFloat(value) < 0) { callback('请输入大于0小于100的数字'); }
203
+ callback();
204
+ },
205
+ },
206
+ ],
207
+ })(
208
+ <Input
209
+ placeholder="请输入大于0小于100的数字"
210
+ suffix="%"
211
+ onChange={onChangeDiscount}
212
+ />,
213
+ )}
214
+ </Form.Item>
215
+ <Form.Item label="折扣金额:">
216
+ {getFieldDecorator('discolineAmountunt', {
217
+ rules: [
218
+ { required: true, message: '请输入折扣金额' },
219
+ { pattern: /^[+-]?(0|([1-9]\d*))(\.\d+)?$/, message: '请输入数字' },
220
+ {
221
+ validator: (_, value: string, callback) => {
222
+ if (!value) { callback(); return; }
223
+ if (!value.match(/^[+-]?(0|([1-9]\d*))(\.\d+)?$/)?.length) { callback(); return; }
224
+ if (parseFloat(value) > lineAmountSum || parseFloat(value) <= 0) { callback('请输入大于0小于金额合计的数字'); }
225
+ callback();
226
+ },
227
+ },
228
+ ],
229
+ })(
230
+ <Input
231
+ placeholder="请输入大于0小于金额合计的数字"
232
+ suffix="¥"
233
+ onChange={onChangeDiscolineAmountunt}
234
+ />,
235
+ )}
236
+ </Form.Item>
237
+ </div>
238
+ <div className="add-discount-row-footer">
239
+ <Button block style={{ marginBottom: 12 }} onClick={onClose}>取消</Button>
240
+ <Button type="primary" block onClick={onClickSave}>保存</Button>
241
+ </div>
242
+ </>
243
+ );
244
+ });
@@ -1,75 +1,75 @@
1
- import React from 'react';
2
- import { Menu, message } from 'kts-components-antd-x3';
3
- import coolingFn from '../../../../../../tools/coolingFn'
4
- import { getSN, setShorthand } from '../../../../../../tools/itemName'
5
- import { Invoice, IGood } from '../../../../../../../';
6
-
7
- export default () => {
8
-
9
- const controller = Invoice.useInvoiceController();
10
-
11
- const { onComply } = controller.useMemo(s => s.goodsListState.productComparison, [])
12
-
13
- /** 是否禁用 */
14
- const disabled = controller.useMemo(s => s.goodsListState.selectedGoodIndex.length <= 0, []);
15
-
16
- /** 点击了 */
17
- const onClick = React.useCallback(async () => {
18
- await controller.saveEditGood();
19
- await controller.wait();
20
- await controller.run(async s => {
21
-
22
- // 不能给正在编辑的货物对照
23
- if (s.goodsListState.editGood && s.goodsListState.selectedGoodIndex.indexOf(s.goodsListState.editGood.$index) >= 0) {
24
- coolingFn('不能给正在编辑的货物执行商品对照', 3000, () => { message.error('不能给正在编辑的货物执行商品对照') });
25
- return;
26
- }
27
-
28
- if (!s.goodsListState?.productComparison?.onComply) return;
29
-
30
- const goods = s.goodsListState.selectedGoodIndex.map(e => {
31
- const t = s.goodsListState.goodsMap.get(e);
32
- if (!t) return undefined;
33
-
34
- return {
35
- ...t,
36
- itemName: getSN(t.itemName)?.full,
37
- itemNameSelf: getSN(t.itemNameSelf)?.full,
38
- } as IGood
39
- }).filter(e => !!e) as IGood[]
40
-
41
-
42
- // 比对后的商品
43
- const newGoods = await s.goodsListState.productComparison.onComply(goods);
44
-
45
- newGoods.forEach(e => {
46
- const vt = s.goodsListState.goodsMap.get(e.$index);
47
- if (!vt) return undefined;
48
-
49
- vt.itemName = e.itemName ? setShorthand(e.itemName, getSN(vt.itemName)?.shorthand) : vt.itemName;
50
- vt.itemNameSelf = e.itemNameSelf ? setShorthand(e.itemNameSelf, getSN(vt.itemNameSelf)?.shorthand) : vt.itemNameSelf;
51
-
52
- vt.itemModelName = e.itemModelName ? e.itemModelName : vt.itemModelName;
53
- vt.itemModelNameSelf = e.itemModelNameSelf ? e.itemModelNameSelf : vt.itemModelNameSelf;
54
-
55
- vt.itemCode = e.itemCode ? e.itemCode : vt.itemCode;
56
- vt.itemCodeSelf = e.itemCodeSelf ? e.itemCodeSelf : vt.itemCodeSelf;
57
- })
58
- })
59
- }, [])
60
-
61
-
62
- const menuItem = React.useMemo(() => {
63
-
64
- // 没用 执行商品对照 的方法 不显示按钮
65
- if (!onComply) return <></>;
66
-
67
- return (
68
- <Menu.Item key="3" disabled={disabled} onClick={onClick} >
69
- 商品映射
70
- </Menu.Item>
71
- );
72
- }, [disabled, onClick, onComply])
73
-
74
- return { menuItem }
75
- };
1
+ import React from 'react';
2
+ import { Menu, message } from 'kts-components-antd-x3';
3
+ import coolingFn from '../../../../../../tools/coolingFn'
4
+ import { getSN, setShorthand } from '../../../../../../tools/itemName'
5
+ import { Invoice, IGood } from '../../../../../../../';
6
+
7
+ export default () => {
8
+
9
+ const controller = Invoice.useInvoiceController();
10
+
11
+ const { onComply } = controller.useMemo(s => s.goodsListState.productComparison, [])
12
+
13
+ /** 是否禁用 */
14
+ const disabled = controller.useMemo(s => s.goodsListState.selectedGoodIndex.length <= 0, []);
15
+
16
+ /** 点击了 */
17
+ const onClick = React.useCallback(async () => {
18
+ await controller.saveEditGood();
19
+ await controller.wait();
20
+ await controller.run(async s => {
21
+
22
+ // 不能给正在编辑的货物对照
23
+ if (s.goodsListState.editGood && s.goodsListState.selectedGoodIndex.indexOf(s.goodsListState.editGood.$index) >= 0) {
24
+ coolingFn('不能给正在编辑的货物执行商品对照', 3000, () => { message.error('不能给正在编辑的货物执行商品对照') });
25
+ return;
26
+ }
27
+
28
+ if (!s.goodsListState?.productComparison?.onComply) return;
29
+
30
+ const goods = s.goodsListState.selectedGoodIndex.map(e => {
31
+ const t = s.goodsListState.goodsMap.get(e);
32
+ if (!t) return undefined;
33
+
34
+ return {
35
+ ...t,
36
+ itemName: getSN(t.itemName)?.full,
37
+ itemNameSelf: getSN(t.itemNameSelf)?.full,
38
+ } as IGood
39
+ }).filter(e => !!e) as IGood[]
40
+
41
+
42
+ // 比对后的商品
43
+ const newGoods = await s.goodsListState.productComparison.onComply(goods);
44
+
45
+ newGoods.forEach(e => {
46
+ const vt = s.goodsListState.goodsMap.get(e.$index);
47
+ if (!vt) return undefined;
48
+
49
+ vt.itemName = e.itemName ? setShorthand(e.itemName, getSN(vt.itemName)?.shorthand) : vt.itemName;
50
+ vt.itemNameSelf = e.itemNameSelf ? setShorthand(e.itemNameSelf, getSN(vt.itemNameSelf)?.shorthand) : vt.itemNameSelf;
51
+
52
+ vt.itemModelName = e.itemModelName ? e.itemModelName : vt.itemModelName;
53
+ vt.itemModelNameSelf = e.itemModelNameSelf ? e.itemModelNameSelf : vt.itemModelNameSelf;
54
+
55
+ vt.itemCode = e.itemCode ? e.itemCode : vt.itemCode;
56
+ vt.itemCodeSelf = e.itemCodeSelf ? e.itemCodeSelf : vt.itemCodeSelf;
57
+ })
58
+ })
59
+ }, [])
60
+
61
+
62
+ const menuItem = React.useMemo(() => {
63
+
64
+ // 没用 执行商品对照 的方法 不显示按钮
65
+ if (!onComply) return <></>;
66
+
67
+ return (
68
+ <Menu.Item key="3" disabled={disabled} onClick={onClick} >
69
+ 商品映射
70
+ </Menu.Item>
71
+ );
72
+ }, [disabled, onClick, onComply])
73
+
74
+ return { menuItem }
75
+ };