kts-component-invoice-operate 3.1.19 → 3.2.0

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 (315) hide show
  1. package/.dumi/theme/builtins/API.tsx +66 -66
  2. package/.editorconfig +16 -16
  3. package/.fatherrc.ts +4 -4
  4. package/.prettierignore +7 -7
  5. package/.prettierrc +11 -11
  6. package/.umirc.ts +8 -8
  7. package/README.md +5 -5
  8. package/dist/Invoice/Invoice-digtal/_test/disabled/index.d.ts +4 -0
  9. package/dist/Invoice/Invoice-digtal/_test/easiest/index.d.ts +4 -0
  10. package/dist/Invoice/Invoice-digtal/_test/header/index.d.ts +4 -0
  11. package/dist/Invoice/Invoice-digtal/_test/readOnly/index.d.ts +4 -0
  12. package/dist/Invoice/Invoice-digtal/_test/stakeholder/index.d.ts +4 -0
  13. package/dist/Invoice/Invoice-digtal/_test/typeSelection/index.d.ts +4 -0
  14. package/dist/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/index.d.ts +4 -0
  15. package/dist/Invoice/InvoiceController/InvoiceControllerState/Stakeholder/index.d.ts +10 -0
  16. package/dist/Invoice/InvoiceController/InvoiceControllerState/index.d.ts +6 -0
  17. package/dist/Invoice/InvoiceController/fns/addGoodDiscount.d.ts +1 -1
  18. package/dist/Invoice/InvoiceController/fns/addGoodDiscountV2.d.ts +12 -0
  19. package/dist/Invoice/InvoiceController/fns/delGood.d.ts +1 -1
  20. package/dist/Invoice/InvoiceController/index.d.ts +2 -0
  21. package/dist/Invoice/index.d.ts +25 -12
  22. package/dist/Invoice/tools/mounting/index.d.ts +3 -0
  23. package/dist/Invoice/{ui/GoodsList/hook → tools}/useToGenerateId/index.d.ts +1 -1
  24. package/dist/Invoice/ui/{Buyer → default/Buyer}/index.d.ts +1 -1
  25. package/dist/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/autoFillFn/index.d.ts +2 -2
  26. package/dist/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.d.ts +0 -1
  27. package/dist/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.d.ts +1 -1
  28. package/dist/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/ui/RowMenu/hook/useDelItem/index.d.ts +1 -1
  29. package/dist/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.d.ts +1 -1
  30. package/dist/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/index.d.ts +7 -0
  31. package/dist/Invoice/ui/default/GoodsList/hook/useDeduction/index.d.ts +8 -0
  32. package/dist/Invoice/ui/{GoodsList → default/GoodsList}/hook/useOnRow/index.d.ts +1 -1
  33. package/dist/Invoice/ui/default/GoodsList/hook/useWindowClick/index.d.ts +8 -0
  34. package/dist/Invoice/ui/{Seller → default/Seller}/index.d.ts +1 -1
  35. package/dist/Invoice/ui/digtal/GoodsList/hook/useColumns/autoFillFn/index.d.ts +35 -0
  36. package/dist/Invoice/ui/digtal/GoodsList/hook/useColumns/index.d.ts +3 -0
  37. package/dist/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.d.ts +7 -0
  38. package/dist/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowEditButton/index.d.ts +6 -0
  39. package/dist/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.d.ts +4 -0
  40. package/dist/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.d.ts +7 -0
  41. package/dist/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.d.ts +7 -0
  42. package/dist/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.d.ts +7 -0
  43. package/dist/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.d.ts +7 -0
  44. package/dist/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowSaveButton/index.d.ts +6 -0
  45. package/dist/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/TitleText/index.d.ts +8 -0
  46. package/dist/Invoice/ui/digtal/GoodsList/hook/useOnRow/index.d.ts +8 -0
  47. package/dist/Invoice/ui/digtal/GoodsList/hook/useRowSelection/index.d.ts +8 -0
  48. package/dist/Invoice/ui/digtal/GoodsList/hook/useWindowClick/index.d.ts +8 -0
  49. package/dist/Invoice/ui/digtal/GoodsList/index.d.ts +17 -0
  50. package/dist/Invoice/ui/digtal/GoodsList/ui/AddRowButton/index.d.ts +3 -0
  51. package/dist/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.d.ts +5 -0
  52. package/dist/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.d.ts +5 -0
  53. package/dist/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.d.ts +6 -0
  54. package/dist/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEmptyRefill/index.d.ts +6 -0
  55. package/dist/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.d.ts +6 -0
  56. package/dist/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useReselectInvoiceType/index.d.ts +5 -0
  57. package/dist/Invoice/ui/digtal/GoodsList/ui/DescribeSwitch/index.d.ts +3 -0
  58. package/dist/Invoice/ui/digtal/GoodsList/ui/Search/index.d.ts +3 -0
  59. package/dist/Invoice/ui/digtal/GoodsList/ui/Statistics/index.d.ts +4 -0
  60. package/dist/Invoice/ui/digtal/GoodsList/ui/TableRow/index.d.ts +2 -0
  61. package/dist/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.d.ts +4 -0
  62. package/dist/Invoice/ui/digtal/GoodsList/ui/TableVirtual.o/index.d.ts +4 -0
  63. package/dist/Invoice/ui/digtal/GoodsList/ui/TaxIncludedSwitch/index.d.ts +3 -0
  64. package/dist/Invoice/ui/digtal/GoodsList.o/hook/useColumns/autoFillFn/index.d.ts +35 -0
  65. package/dist/Invoice/ui/digtal/GoodsList.o/hook/useColumns/index.d.ts +3 -0
  66. package/dist/Invoice/ui/digtal/GoodsList.o/hook/useColumns/ui/ItemNameInput/index.d.ts +7 -0
  67. package/dist/Invoice/ui/{GoodsList/hook/useColumns/ui/RowMenu → digtal/GoodsList.o/hook/useColumns/ui/RowEditButton}/index.d.ts +0 -1
  68. package/dist/Invoice/ui/digtal/GoodsList.o/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.d.ts +4 -0
  69. package/dist/Invoice/ui/digtal/GoodsList.o/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.d.ts +7 -0
  70. package/dist/Invoice/ui/digtal/GoodsList.o/hook/useColumns/ui/RowMenu/hook/useDelItem/index.d.ts +7 -0
  71. package/dist/Invoice/ui/digtal/GoodsList.o/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.d.ts +7 -0
  72. package/dist/Invoice/ui/digtal/GoodsList.o/hook/useColumns/ui/RowMenu/index.d.ts +7 -0
  73. package/dist/Invoice/ui/digtal/GoodsList.o/hook/useColumns/ui/RowSaveButton/index.d.ts +6 -0
  74. package/dist/Invoice/ui/digtal/GoodsList.o/hook/useColumns/ui/TitleText/index.d.ts +8 -0
  75. package/dist/Invoice/ui/digtal/GoodsList.o/hook/useOnRow/index.d.ts +8 -0
  76. package/dist/Invoice/ui/digtal/GoodsList.o/hook/useRowSelection/index.d.ts +8 -0
  77. package/dist/Invoice/ui/digtal/GoodsList.o/index.d.ts +20 -0
  78. package/dist/Invoice/ui/digtal/GoodsList.o/ui/AddRowButton/index.d.ts +3 -0
  79. package/dist/Invoice/ui/digtal/GoodsList.o/ui/TableRow/index.d.ts +2 -0
  80. package/dist/Invoice/ui/digtal/GoodsList.o/ui/TableVirtual/index.d.ts +4 -0
  81. package/dist/Invoice/ui/digtal/InvoiceHeader/index.d.ts +14 -0
  82. package/dist/Invoice/ui/digtal/Sign/index.d.ts +10 -0
  83. package/dist/Invoice/ui/digtal/Stakeholder/index.d.ts +7 -0
  84. package/dist/InvoiceTypeModal/_test/easiest/index.d.ts +3 -0
  85. package/dist/InvoiceTypeModal/index.d.ts +34 -0
  86. package/dist/index.d.ts +2 -0
  87. package/dist/index.esm.js +10107 -2821
  88. package/dist/index.js +10101 -2814
  89. package/docs/index.md +5 -5
  90. package/docs-dist/404.html +33 -33
  91. package/docs-dist/index.html +33 -33
  92. package/docs-dist/umi.css +19 -19
  93. package/index.html +12 -12
  94. package/package.json +60 -60
  95. package/src/Invoice/Invoice-digtal/_test/disabled/index.tsx +38 -0
  96. package/src/Invoice/Invoice-digtal/_test/easiest/index.tsx +5 -0
  97. package/src/Invoice/Invoice-digtal/_test/header/index.tsx +17 -0
  98. package/src/Invoice/Invoice-digtal/_test/readOnly/index.tsx +42 -0
  99. package/src/Invoice/Invoice-digtal/_test/stakeholder/index.tsx +12 -0
  100. package/src/Invoice/Invoice-digtal/_test/typeSelection/index.tsx +29 -0
  101. package/src/Invoice/Invoice-digtal/index.md +19 -0
  102. package/src/Invoice/InvoiceController/InvoiceControllerForm/index.ts +94 -94
  103. package/src/Invoice/InvoiceController/InvoiceControllerState/BuyerState/index.tsx +88 -88
  104. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/EndowCode/index.tsx +93 -93
  105. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IColumnsReplenish/index.ts +10 -10
  106. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IGood/index.ts +75 -75
  107. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ImportGoods/index.ts +80 -80
  108. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/LineAttributeType/index.ts +5 -5
  109. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ProductComparison/index.ts +9 -9
  110. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/index.ts +94 -88
  111. package/src/Invoice/InvoiceController/InvoiceControllerState/Stakeholder/index.ts +11 -0
  112. package/src/Invoice/InvoiceController/InvoiceControllerState/index.ts +56 -48
  113. package/src/Invoice/InvoiceController/fns/addGood.ts +11 -11
  114. package/src/Invoice/InvoiceController/fns/addGoodDiscount.ts +125 -125
  115. package/src/Invoice/InvoiceController/fns/addGoodDiscountV2.ts +84 -0
  116. package/src/Invoice/InvoiceController/fns/delGood.ts +41 -43
  117. package/src/Invoice/InvoiceController/fns/getGoodsSearch.ts +23 -23
  118. package/src/Invoice/InvoiceController/fns/saveEditGood.ts +24 -23
  119. package/src/Invoice/InvoiceController/fns/setEditGood.ts +16 -16
  120. package/src/Invoice/InvoiceController/fns/setGoods.ts +10 -10
  121. package/src/Invoice/InvoiceController/fns/updateInvoiceNo.ts +8 -8
  122. package/src/Invoice/InvoiceController/index.ts +65 -61
  123. package/src/Invoice/_test/buyerNameSearch/index.tsx +41 -41
  124. package/src/Invoice/_test/deduction/index.tsx +935 -935
  125. package/src/Invoice/_test/draft/index.tsx +40 -40
  126. package/src/Invoice/_test/easiest/index.tsx +5 -5
  127. package/src/Invoice/_test/endowCode/index.tsx +1095 -1095
  128. package/src/Invoice/_test/goodsMenuExpand/index.tsx +32 -32
  129. package/src/Invoice/_test/importBuyer/index.tsx +74 -74
  130. package/src/Invoice/_test/importGoods/index.tsx +515 -515
  131. package/src/Invoice/_test/invoiceType/index.tsx +59 -59
  132. package/src/Invoice/_test/isInvoiceNo/index.tsx +12 -12
  133. package/src/Invoice/_test/replaceHead/index.tsx +22 -22
  134. package/src/Invoice/_test/retrieveData/index.tsx +22 -22
  135. package/src/Invoice/_test/seller/index.tsx +28 -28
  136. package/src/Invoice/_test/setDataSource/index.tsx +22 -22
  137. package/src/Invoice/_test/unit/index.tsx +19 -19
  138. package/src/Invoice/index.less +30 -12
  139. package/src/Invoice/index.md +53 -53
  140. package/src/Invoice/index.tsx +164 -109
  141. package/src/Invoice/tools/calculate/index.ts +112 -112
  142. package/src/Invoice/tools/coolingFn/index.ts +17 -17
  143. package/src/Invoice/tools/evaluate/index.ts +7 -7
  144. package/src/Invoice/tools/idGenerator/index.ts +2 -2
  145. package/src/Invoice/tools/itemName/index.ts +55 -55
  146. package/src/Invoice/tools/lazyFn/index.ts +19 -19
  147. package/src/Invoice/tools/mounting/index.ts +14 -0
  148. package/src/Invoice/tools/strringFn/index.ts +40 -40
  149. package/src/Invoice/{ui/GoodsList/hook → tools}/useToGenerateId/index.ts +8 -8
  150. package/src/Invoice/ui/{AddComparisonDrawer → default/AddComparisonDrawer}/index.tsx +149 -149
  151. package/src/Invoice/ui/{Buyer → default/Buyer}/index.less +219 -219
  152. package/src/Invoice/ui/{Buyer → default/Buyer}/index.tsx +114 -114
  153. package/src/Invoice/ui/{Buyer → default/Buyer}/ui/BuyerNameInput/index.tsx +166 -166
  154. package/src/Invoice/ui/{Buyer → default/Buyer}/ui/ImportBuyerButton/index.tsx +21 -21
  155. package/src/Invoice/ui/{EndowCodeDrawer → default/EndowCodeDrawer}/index.less +8 -8
  156. package/src/Invoice/ui/{EndowCodeDrawer → default/EndowCodeDrawer}/index.tsx +431 -431
  157. package/src/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/autoFillFn/index.ts +519 -519
  158. package/src/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/index.tsx +620 -620
  159. package/src/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/ui/ItemNameInput/index.less +9 -9
  160. package/src/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/ui/ItemNameInput/index.tsx +19 -19
  161. package/src/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
  162. package/src/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
  163. package/src/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +76 -76
  164. package/src/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -35
  165. package/src/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +34 -34
  166. package/src/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/ui/RowMenu/index.less +13 -13
  167. package/src/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/ui/RowMenu/index.tsx +98 -98
  168. package/src/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
  169. package/src/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/ui/TitleText/index.tsx +20 -20
  170. package/src/Invoice/ui/default/GoodsList/hook/useDeduction/index.tsx +24 -0
  171. package/src/Invoice/ui/{GoodsList → default/GoodsList}/hook/useOnRow/index.tsx +39 -39
  172. package/src/Invoice/ui/{GoodsList → default/GoodsList}/hook/useRowSelection/index.tsx +111 -111
  173. package/src/Invoice/ui/default/GoodsList/hook/useWindowClick/index.tsx +23 -0
  174. package/src/Invoice/ui/{GoodsList → default/GoodsList}/index.less +177 -177
  175. package/src/Invoice/ui/{GoodsList → default/GoodsList}/index.tsx +177 -177
  176. package/src/Invoice/ui/{GoodsList → default/GoodsList}/ui/AddRowButton/index.tsx +65 -61
  177. package/src/Invoice/ui/{GoodsList → default/GoodsList}/ui/BulkMenu/hooks/useAddDiscountRowButton/index.less +21 -21
  178. package/src/Invoice/ui/{GoodsList → default/GoodsList}/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +244 -244
  179. package/src/Invoice/ui/{GoodsList → default/GoodsList}/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
  180. package/src/Invoice/ui/{GoodsList → default/GoodsList}/ui/BulkMenu/hooks/useDelRowButton/index.tsx +69 -66
  181. package/src/Invoice/ui/{GoodsList → default/GoodsList}/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +58 -58
  182. package/src/Invoice/ui/{GoodsList → default/GoodsList}/ui/BulkMenu/index.tsx +37 -37
  183. package/src/Invoice/ui/{GoodsList → default/GoodsList}/ui/DescribeSwitch/index.tsx +36 -36
  184. package/src/Invoice/ui/{GoodsList → default/GoodsList}/ui/Search/index.less +10 -10
  185. package/src/Invoice/ui/{GoodsList → default/GoodsList}/ui/Search/index.tsx +50 -50
  186. package/src/Invoice/ui/{GoodsList → default/GoodsList}/ui/Statistics/index.less +18 -18
  187. package/src/Invoice/ui/{GoodsList → default/GoodsList}/ui/Statistics/index.tsx +109 -109
  188. package/src/Invoice/ui/{GoodsList → default/GoodsList}/ui/TableRow/index.tsx +27 -27
  189. package/src/Invoice/ui/{GoodsList → default/GoodsList}/ui/TableVirtual/index.less +38 -38
  190. package/src/Invoice/ui/{GoodsList → default/GoodsList}/ui/TableVirtual/index.tsx +108 -108
  191. package/src/Invoice/ui/{GoodsList → default/GoodsList}/ui/TableVirtual.o/index.less +44 -44
  192. package/src/Invoice/ui/{GoodsList → default/GoodsList}/ui/TableVirtual.o/index.tsx +96 -96
  193. package/src/Invoice/ui/{GoodsList → default/GoodsList}/ui/TaxIncludedSwitch/index.tsx +30 -30
  194. package/src/Invoice/ui/{ImportBuyerDrawer → default/ImportBuyerDrawer}/index.tsx +75 -75
  195. package/src/Invoice/ui/{ImportGoodsDrawer → default/ImportGoodsDrawer}/index.tsx +170 -170
  196. package/src/Invoice/ui/{InvoiceHeader → default/InvoiceHeader}/index.less +68 -68
  197. package/src/Invoice/ui/{InvoiceHeader → default/InvoiceHeader}/index.tsx +246 -246
  198. package/src/Invoice/ui/{Seller → default/Seller}/index.less +113 -113
  199. package/src/Invoice/ui/{Seller → default/Seller}/index.tsx +98 -98
  200. package/src/Invoice/ui/{Sign → default/Sign}/index.less +14 -14
  201. package/src/Invoice/ui/{Sign → default/Sign}/index.tsx +71 -71
  202. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/autoFillFn/index.ts +520 -0
  203. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/index.tsx +623 -0
  204. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +10 -0
  205. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +19 -0
  206. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -0
  207. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -0
  208. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +76 -0
  209. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -0
  210. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +34 -0
  211. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -0
  212. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +98 -0
  213. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/spot.svg +1 -0
  214. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -0
  215. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -0
  216. package/src/Invoice/ui/digtal/GoodsList/hook/useOnRow/index.tsx +39 -0
  217. package/src/Invoice/ui/digtal/GoodsList/hook/useRowSelection/index.tsx +112 -0
  218. package/src/Invoice/ui/digtal/GoodsList/hook/useWindowClick/index.tsx +23 -0
  219. package/src/Invoice/ui/digtal/GoodsList/index.less +57 -0
  220. package/src/Invoice/ui/digtal/GoodsList/index.tsx +181 -0
  221. package/src/Invoice/ui/digtal/GoodsList/ui/AddRowButton/index.tsx +66 -0
  222. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +321 -0
  223. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/svg/add.svg +12 -0
  224. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -0
  225. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +50 -0
  226. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEmptyRefill/index.tsx +35 -0
  227. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +82 -0
  228. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useReselectInvoiceType/index.tsx +56 -0
  229. package/src/Invoice/ui/digtal/GoodsList/ui/DescribeSwitch/index.tsx +37 -0
  230. package/src/Invoice/ui/digtal/GoodsList/ui/Search/icon/magnifier.svg +1 -0
  231. package/src/Invoice/ui/digtal/GoodsList/ui/Search/index.less +12 -0
  232. package/src/Invoice/ui/digtal/GoodsList/ui/Search/index.tsx +50 -0
  233. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/index.less +54 -0
  234. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/index.tsx +99 -0
  235. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/svg/fork.svg +12 -0
  236. package/src/Invoice/ui/digtal/GoodsList/ui/TableRow/index.tsx +28 -0
  237. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.less +39 -0
  238. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.tsx +109 -0
  239. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual.o/index.less +44 -0
  240. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual.o/index.tsx +96 -0
  241. package/src/Invoice/ui/digtal/GoodsList/ui/TaxIncludedSwitch/index.tsx +31 -0
  242. package/src/Invoice/ui/digtal/GoodsList.o/hook/useColumns/autoFillFn/index.ts +520 -0
  243. package/src/Invoice/ui/digtal/GoodsList.o/hook/useColumns/index.tsx +624 -0
  244. package/src/Invoice/ui/digtal/GoodsList.o/hook/useColumns/ui/ItemNameInput/index.less +10 -0
  245. package/src/Invoice/ui/digtal/GoodsList.o/hook/useColumns/ui/ItemNameInput/index.tsx +19 -0
  246. package/src/Invoice/ui/digtal/GoodsList.o/hook/useColumns/ui/RowEditButton/index.tsx +30 -0
  247. package/src/Invoice/ui/digtal/GoodsList.o/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -0
  248. package/src/Invoice/ui/digtal/GoodsList.o/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +76 -0
  249. package/src/Invoice/ui/digtal/GoodsList.o/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -0
  250. package/src/Invoice/ui/digtal/GoodsList.o/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +34 -0
  251. package/src/Invoice/ui/digtal/GoodsList.o/hook/useColumns/ui/RowMenu/index.less +13 -0
  252. package/src/Invoice/ui/digtal/GoodsList.o/hook/useColumns/ui/RowMenu/index.tsx +98 -0
  253. package/src/Invoice/ui/digtal/GoodsList.o/hook/useColumns/ui/RowMenu/spot.svg +1 -0
  254. package/src/Invoice/ui/digtal/GoodsList.o/hook/useColumns/ui/RowSaveButton/index.tsx +14 -0
  255. package/src/Invoice/ui/digtal/GoodsList.o/hook/useColumns/ui/TitleText/index.tsx +20 -0
  256. package/src/Invoice/ui/{GoodsList → digtal/GoodsList.o}/hook/useDeduction/index.tsx +24 -24
  257. package/src/Invoice/ui/digtal/GoodsList.o/hook/useOnRow/index.tsx +39 -0
  258. package/src/Invoice/ui/digtal/GoodsList.o/hook/useRowSelection/index.tsx +112 -0
  259. package/src/Invoice/ui/{GoodsList → digtal/GoodsList.o}/hook/useWindowClick/index.tsx +23 -23
  260. package/src/Invoice/ui/digtal/GoodsList.o/index.less +7 -0
  261. package/src/Invoice/ui/digtal/GoodsList.o/index.tsx +132 -0
  262. package/src/Invoice/ui/digtal/GoodsList.o/ui/AddRowButton/index.tsx +66 -0
  263. package/src/Invoice/ui/digtal/GoodsList.o/ui/TableRow/index.tsx +28 -0
  264. package/src/Invoice/ui/digtal/GoodsList.o/ui/TableVirtual/index.less +43 -0
  265. package/src/Invoice/ui/digtal/GoodsList.o/ui/TableVirtual/index.tsx +109 -0
  266. package/src/Invoice/ui/digtal/InvoiceHeader/index.less +58 -0
  267. package/src/Invoice/ui/digtal/InvoiceHeader/index.tsx +77 -0
  268. package/src/Invoice/ui/digtal/Sign/index.less +49 -0
  269. package/src/Invoice/ui/digtal/Sign/index.tsx +90 -0
  270. package/src/Invoice/ui/digtal/Stakeholder/index.less +57 -0
  271. package/src/Invoice/ui/digtal/Stakeholder/index.tsx +237 -0
  272. package/src/Invoice/ui/digtal/Stakeholder/svg/arrowDown.svg +3 -0
  273. package/src/Invoice/ui/digtal/Stakeholder/svg/arrowUp.svg +3 -0
  274. package/src/InvoiceTypeModal/_test/easiest/index.tsx +32 -0
  275. package/src/InvoiceTypeModal/index.less +8 -0
  276. package/src/InvoiceTypeModal/index.md +6 -0
  277. package/src/InvoiceTypeModal/index.tsx +123 -0
  278. package/src/index.ts +9 -6
  279. package/tsconfig.json +31 -31
  280. package/typings.d.ts +3 -3
  281. package/yarn.e.lock +14331 -14331
  282. package/yarn.o.lock +14800 -14800
  283. /package/dist/Invoice/ui/{AddComparisonDrawer → default/AddComparisonDrawer}/index.d.ts +0 -0
  284. /package/dist/Invoice/ui/{Buyer → default/Buyer}/ui/BuyerNameInput/index.d.ts +0 -0
  285. /package/dist/Invoice/ui/{Buyer → default/Buyer}/ui/ImportBuyerButton/index.d.ts +0 -0
  286. /package/dist/Invoice/ui/{EndowCodeDrawer → default/EndowCodeDrawer}/index.d.ts +0 -0
  287. /package/dist/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/index.d.ts +0 -0
  288. /package/dist/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/ui/ItemNameInput/index.d.ts +0 -0
  289. /package/dist/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/ui/RowEditButton/index.d.ts +0 -0
  290. /package/dist/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/ui/RowSaveButton/index.d.ts +0 -0
  291. /package/dist/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/ui/TitleText/index.d.ts +0 -0
  292. /package/dist/Invoice/ui/{GoodsList → default/GoodsList}/hook/useRowSelection/index.d.ts +0 -0
  293. /package/dist/Invoice/ui/{GoodsList → default/GoodsList}/index.d.ts +0 -0
  294. /package/dist/Invoice/ui/{GoodsList → default/GoodsList}/ui/AddRowButton/index.d.ts +0 -0
  295. /package/dist/Invoice/ui/{GoodsList → default/GoodsList}/ui/BulkMenu/hooks/useAddDiscountRowButton/index.d.ts +0 -0
  296. /package/dist/Invoice/ui/{GoodsList → default/GoodsList}/ui/BulkMenu/hooks/useCommodityComparisonButton/index.d.ts +0 -0
  297. /package/dist/Invoice/ui/{GoodsList → default/GoodsList}/ui/BulkMenu/hooks/useDelRowButton/index.d.ts +0 -0
  298. /package/dist/Invoice/ui/{GoodsList → default/GoodsList}/ui/BulkMenu/hooks/useEndowCodeButton/index.d.ts +0 -0
  299. /package/dist/Invoice/ui/{GoodsList → default/GoodsList}/ui/BulkMenu/index.d.ts +0 -0
  300. /package/dist/Invoice/ui/{GoodsList → default/GoodsList}/ui/DescribeSwitch/index.d.ts +0 -0
  301. /package/dist/Invoice/ui/{GoodsList → default/GoodsList}/ui/Search/index.d.ts +0 -0
  302. /package/dist/Invoice/ui/{GoodsList → default/GoodsList}/ui/Statistics/index.d.ts +0 -0
  303. /package/dist/Invoice/ui/{GoodsList → default/GoodsList}/ui/TableRow/index.d.ts +0 -0
  304. /package/dist/Invoice/ui/{GoodsList → default/GoodsList}/ui/TableVirtual/index.d.ts +0 -0
  305. /package/dist/Invoice/ui/{GoodsList → default/GoodsList}/ui/TableVirtual.o/index.d.ts +0 -0
  306. /package/dist/Invoice/ui/{GoodsList → default/GoodsList}/ui/TaxIncludedSwitch/index.d.ts +0 -0
  307. /package/dist/Invoice/ui/{ImportBuyerDrawer → default/ImportBuyerDrawer}/index.d.ts +0 -0
  308. /package/dist/Invoice/ui/{ImportGoodsDrawer → default/ImportGoodsDrawer}/index.d.ts +0 -0
  309. /package/dist/Invoice/ui/{InvoiceHeader → default/InvoiceHeader}/index.d.ts +0 -0
  310. /package/dist/Invoice/ui/{Sign → default/Sign}/index.d.ts +0 -0
  311. /package/dist/Invoice/ui/{GoodsList → digtal/GoodsList.o}/hook/useDeduction/index.d.ts +0 -0
  312. /package/dist/Invoice/ui/{GoodsList → digtal/GoodsList.o}/hook/useWindowClick/index.d.ts +0 -0
  313. /package/src/Invoice/ui/{GoodsList → default/GoodsList}/hook/useColumns/ui/RowMenu/spot.svg +0 -0
  314. /package/src/Invoice/ui/{GoodsList → default/GoodsList}/ui/Search/icon/magnifier.svg +0 -0
  315. /package/src/Invoice/ui/{InvoiceHeader → default/InvoiceHeader}/auto.svg +0 -0
@@ -0,0 +1,50 @@
1
+ import React from 'react';
2
+ import Invoice from '../../../../../../..';
3
+ import { Button, Menu } from 'kts-xui';
4
+
5
+ export default () => {
6
+
7
+ const controller = Invoice.useInvoiceController();
8
+
9
+ const model = controller.useMemo(s => s.model, []);
10
+
11
+ const isRemRow = controller.useMemo(s => s.goodsListState.isRemRow, []);
12
+
13
+ /** 是否禁用 */
14
+ const disabled = controller.useMemo((s) => {
15
+ if (s.goodsListState.selectedGoodIndex.length <= 0) return true;
16
+ return false;
17
+ }, []);
18
+
19
+ /** 点击了删除 */
20
+ const onClick = React.useCallback(async () => {
21
+ const selectedGoodIndex = controller.state.goodsListState.selectedGoodIndex.slice();
22
+ for (let i = 0; i < selectedGoodIndex.length; i++) {
23
+ await controller.delGood(selectedGoodIndex[i]);
24
+ }
25
+ await controller.run(async s => { s.goodsListState.selectedGoodIndex = [] });
26
+ }, [])
27
+
28
+ const menuItem = React.useMemo(() => {
29
+
30
+ if (model === 'prefab') return <></>;
31
+ if (model === 'readOnly') return <></>;
32
+
33
+ return (
34
+ <Menu.Item key="1" onClick={onClick} disabled={disabled}> 删除行 </Menu.Item>
35
+ )
36
+ }, [model, onClick, disabled])
37
+
38
+ const button = React.useMemo(() => {
39
+
40
+ if (isRemRow === false) return <></>;
41
+ if (model === 'prefab') return <></>;
42
+ if (model === 'readOnly') return <></>;
43
+
44
+ return (
45
+ <Button size='small' onClick={onClick} disabled={disabled} >删除</Button>
46
+ )
47
+ }, [model, onClick, disabled])
48
+
49
+ return { button, menuItem };
50
+ };
@@ -0,0 +1,35 @@
1
+
2
+ import Invoice from '../../../../../../..';
3
+ import { Button, Popconfirm } from "kts-xui"
4
+ import React from "react"
5
+
6
+ /** 清空重填 */
7
+ export default () => {
8
+
9
+ const controller = Invoice.useInvoiceController();
10
+
11
+ const model = controller.useMemo(s => s.model, []);
12
+
13
+ const confirm = React.useCallback(() => {
14
+ controller.run(async s => {
15
+ s.goodsListState.goodsList = [];
16
+ s.goodsListState.goodsMap = new Map();
17
+ })
18
+ }, [controller])
19
+
20
+ const button = React.useMemo(() => {
21
+ if (model === 'readOnly') return <></>;
22
+ return (
23
+ <Popconfirm
24
+ title="将要清空所有项目信息,是否继续"
25
+ onConfirm={confirm}
26
+ okText="确定"
27
+ cancelText="取消"
28
+ >
29
+ <Button size='small' >清空重填</Button>
30
+ </Popconfirm>
31
+ )
32
+ }, [model, confirm])
33
+
34
+ return { button }
35
+ }
@@ -0,0 +1,82 @@
1
+ import React from 'react';
2
+ import Invoice from '../../../../../../..';
3
+ import { message, Menu, Button } from 'kts-xui';
4
+ import coolingFn from '../../../../../../../tools/coolingFn';
5
+ import { IGood, 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) => s.goodsListState.selectedGoodIndex.length <= 0, []);
15
+
16
+ const onClick = React.useCallback(async () => {
17
+ await controller.saveEditGood();
18
+ await controller.wait();
19
+ await controller.pipeline(async s => {
20
+
21
+ // 不能给正在编辑的货物赋码
22
+ let mv = '不能给正在编辑的货物赋码';
23
+ if (s.goodsListState.editGood && s.goodsListState.selectedGoodIndex.indexOf(s.goodsListState.editGood.$index) >= 0) {
24
+ coolingFn(mv, 3000, () => { message.error(mv) });
25
+ return;
26
+ }
27
+
28
+ // 税率不一样不能批量赋码
29
+ mv = '商品税率不一致不能操作批量赋码';
30
+ if (s.goodsListState.selectedGoodIndex.map(e => s.goodsListState.goodsMap.get(e)).some((e, _, arr) => e?.taxRate !== arr[0]?.taxRate)) {
31
+ coolingFn(mv, 3000, () => { message.error(mv) });
32
+ return;
33
+ }
34
+
35
+ // 校验 折扣行和被折扣行是否同时勾选
36
+ mv = '请同时勾选“折扣行与被折扣行”';
37
+ if (verifyDiscountLine(s.goodsListState.selectedGoodIndex.map(e => s.goodsListState.goodsMap.get(e) as IGood).filter(e => !!e))) {
38
+ coolingFn(mv, 3000, () => { message.error(mv) });
39
+ return;
40
+ }
41
+
42
+ // 设置赋码
43
+ s.goodsListState.endowCode.endowcodeGoodIndex = s.goodsListState.selectedGoodIndex;
44
+ })();
45
+ }, [controller]);
46
+
47
+ const menuItem = React.useMemo(() => {
48
+ if (model === 'readOnly') return <></>;
49
+ return (
50
+ <Menu.Item key="2" onClick={onClick} disabled={disabled}>
51
+ 批量赋码
52
+ </Menu.Item>
53
+ )
54
+ }, [onClick, disabled, model])
55
+
56
+ const button = React.useMemo(() => {
57
+ if (model === 'readOnly') return <></>;
58
+ return (
59
+ <Button onClick={onClick} disabled={disabled} size='small'>
60
+ 赋码
61
+ </Button>
62
+ )
63
+ }, [onClick, disabled, model])
64
+
65
+ return { menuItem, button };
66
+ };
67
+
68
+ /**
69
+ * 校验 折扣行和被折扣行是否同时勾选
70
+ * */
71
+ function verifyDiscountLine(selectedGood: IGood[]) {
72
+ selectedGood = selectedGood.sort((a, b) => (a.serialNo || 0) - (b.serialNo || 0));
73
+ for (let i = 0; i < selectedGood.length; i++) {
74
+ const good = selectedGood[i];
75
+ if (good.lineAttribute === LineAttributeType.折扣行)
76
+ return true;
77
+
78
+ if (good.lineAttribute === LineAttributeType.被折扣行 && selectedGood[++i].lineAttribute === LineAttributeType.折扣行)
79
+ continue;
80
+ }
81
+ return false;
82
+ }
@@ -0,0 +1,56 @@
1
+
2
+
3
+ import { Button } from "kts-xui";
4
+ import React from "react";
5
+ import Invoice from '../../../../../../..';
6
+ import InvoiceTypeModal from "../../../../../../../../InvoiceTypeModal";
7
+ import { e } from "mathjs";
8
+
9
+ export default () => {
10
+
11
+ const controller = Invoice.useInvoiceController();
12
+
13
+ const model = controller.useMemo(s => s.model, [])
14
+
15
+ const typeModalProps = controller.useMemo(s => s.typeModalProps, []);
16
+
17
+ const [open, setOpen] = React.useState(false);
18
+
19
+ const onOpen = React.useCallback(() => { setOpen(true) }, [])
20
+
21
+ const onClose = React.useCallback(() => { setOpen(false) }, [])
22
+
23
+ const onOk = React.useCallback(e => {
24
+ try {
25
+ typeModalProps?.onOk && typeModalProps.onOk(e);
26
+ } catch (error) {
27
+ console.error(error);
28
+ }
29
+ onClose();
30
+ }, [onClose, typeModalProps?.onOk]);
31
+
32
+ const isEnable = React.useMemo(()=>{
33
+ if (model === 'readOnly') return false;
34
+ return true;
35
+ }, [model])
36
+
37
+ const button = React.useMemo(() => {
38
+ if (isEnable === false) return <></>;
39
+ return (
40
+ <>
41
+ <Button size='small' onClick={onOpen} >重选发票类型</Button>
42
+ <InvoiceTypeModal
43
+ {...typeModalProps}
44
+ open={open}
45
+ onCancel={onClose}
46
+ onOk={onOk}
47
+ />
48
+ </>
49
+ )
50
+ }, [open, onClose, onOpen, typeModalProps, isEnable])
51
+
52
+ return {
53
+ button,
54
+ }
55
+ }
56
+
@@ -0,0 +1,37 @@
1
+
2
+ import React from 'react';
3
+ import { Switch, Icon, Tooltip } from 'kts-components-antd-x3';
4
+ import Invoice from '../../../../..';
5
+
6
+ export default () => {
7
+
8
+ const controller = Invoice.useInvoiceController();
9
+
10
+ const productComparison = controller.useMemo(s => s.goodsListState.productComparison, [])
11
+
12
+ const isMyShow = controller.useMemo(s => s.goodsListState.isMyShow, []);
13
+
14
+ const onChange = React.useCallback(e => {
15
+ controller.run(async s => s.goodsListState.isMyShow = !s.goodsListState.isMyShow)
16
+ }, [])
17
+
18
+ if (!productComparison.onComply) return <></>;
19
+
20
+ return (
21
+ <span>
22
+ <label style={{ marginRight: 2 }} >
23
+ <Tooltip title="蓝色代表我方商品描述,黑色代表对方的商品描述。">
24
+ <Icon style={{ marginRight: 3 }} type="info-circle" />
25
+ </Tooltip>
26
+ 使用哪方商品描述:
27
+ </label>
28
+ <Switch
29
+ checked={isMyShow}
30
+ checkedChildren="我方"
31
+ unCheckedChildren="对方"
32
+ defaultChecked
33
+ onChange={onChange}
34
+ />
35
+ </span>
36
+ )
37
+ }
@@ -0,0 +1 @@
1
+ <svg t="1656901778998" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9253" width="200" height="200"><path d="M985.781333 918.594133 820.773333 765.5264c27.3728-32.973867 49.6544-69.5776 66.436267-109.258667 22.933333-54.218667 34.561067-111.7952 34.561067-171.1296 0-59.333333-11.627733-116.910933-34.561067-171.1296-22.142933-52.354133-53.837867-99.365333-94.200533-139.729067S705.633067 102.222933 653.28 80.08c-54.218667-22.933333-111.7952-34.561067-171.1296-34.561067S365.240533 57.147733 311.021867 80.08c-52.354133 22.142933-99.365333 53.8368-139.729067 94.200533s-72.0576 87.374933-94.200533 139.729067c-22.932267 54.218667-34.56 111.7952-34.56 171.1296 0 59.3344 11.627733 116.910933 34.56 171.1296 22.144 52.354133 53.837867 99.365333 94.200533 139.729067s87.374933 72.0576 139.729067 94.200533c54.218667 22.932267 111.7952 34.56 171.1296 34.56s116.910933-11.627733 171.1296-34.56c45.352533-19.181867 86.686933-45.543467 123.172267-78.487467L942.256 965.514667c6.16 5.714133 13.966933 8.539733 21.755733 8.539733 8.593067 0 17.163733-3.441067 23.467733-10.237867C999.4976 950.8608 998.738133 930.612267 985.781333 918.594133zM482.151467 860.7584c-207.117867 0-375.620267-168.5024-375.620267-375.620267 0-207.1168 168.5024-375.6192 375.620267-375.6192S857.770667 278.021333 857.770667 485.138133C857.770667 692.256 689.268267 860.7584 482.151467 860.7584z" p-id="9254"></path></svg>
@@ -0,0 +1,12 @@
1
+ .kts-invoice-operate-goods-list-able {
2
+ .kts-invoice-operate-goods-list-search {
3
+ width: 350px;
4
+ border-radius: 999px;
5
+
6
+ input {
7
+ border-radius: 999px;
8
+ border-color : #b8b8b8;
9
+ font-size : 12px;
10
+ }
11
+ }
12
+ }
@@ -0,0 +1,50 @@
1
+
2
+ import React from "react";
3
+ import { Icon } from "kts-components-antd-x3";
4
+ import { Input, message } from "kts-xui";
5
+ import { ReactComponent as MagnifierSvg } from './icon/magnifier.svg';
6
+ import Invoice from '../../../../..';
7
+ import './index.less';
8
+
9
+ export default function Search() {
10
+
11
+ const controller = Invoice.useInvoiceController();
12
+
13
+ const [value, setValue] = React.useState('');
14
+
15
+ const readOnly = controller.useMemo(s => !!s.goodsListState.editGood, [])
16
+
17
+ /** 是否含税 */
18
+ const isTaxIncluded = controller.useMemo(s => s.goodsListState.isTaxIncluded, [])
19
+
20
+ const onClick = React.useCallback(async () => {
21
+ await controller.saveEditGood();
22
+ await controller.wait();
23
+ if (controller.state.goodsListState.editGood) {
24
+ message.error({
25
+ content: '你正在编辑一个货物',
26
+ key: '你正在编辑一个货物',
27
+ });
28
+ return;
29
+ }
30
+ }, [])
31
+
32
+ React.useEffect(() => {
33
+ controller.run(async s => {
34
+ s.goodsListState.searchValue = value.trim();
35
+ })
36
+ }, [value, controller])
37
+
38
+ return (
39
+ <Input
40
+ readOnly={readOnly}
41
+ value={value}
42
+ className="kts-invoice-operate-goods-list-search"
43
+ placeholder={`请您输入项目名称、规格型号、金额(${isTaxIncluded ? '含税' : '不含税'})搜索`}
44
+ prefix={<Icon component={MagnifierSvg} style={{ color: "#b8b8b8" }} />}
45
+ onChange={e => { setValue(e.target.value); }}
46
+ onClick={onClick}
47
+ />
48
+ )
49
+ }
50
+
@@ -0,0 +1,54 @@
1
+ // .kts-invoice-operate-goods-list-statistics {
2
+ // // background: #fafafa;
3
+ // overflow-y: scroll;
4
+
5
+ // .kts-invoice-operate-goods-list-statistics-row {
6
+ // height : 30px;
7
+ // line-height : 30px;
8
+ // border-bottom: 2px solid #e8e8e8;
9
+ // display : flex;
10
+
11
+ // &>div {
12
+ // border-right: 2px solid #e8e8e8;
13
+
14
+ // label {
15
+ // padding: 0 10px;
16
+ // }
17
+ // }
18
+ // }
19
+ // }
20
+
21
+ .kts-invoice-operate-goods-list-statistics-digtal {
22
+
23
+ overflow-y: scroll;
24
+
25
+ /* 设置滚动条滑块颜色 */
26
+ &::-webkit-scrollbar-track {
27
+ background-color: #f1f1f1;
28
+ }
29
+
30
+ .statistics-digtal-total-tax,
31
+ .statistics-digtal-total {
32
+ height : 42px;
33
+ display : flex;
34
+ align-items: center;
35
+
36
+ &>div:first-child {
37
+ width : 225px;
38
+ color : #9F613E;
39
+ font-family : PingFang SC;
40
+ height : 100%;
41
+ display : flex;
42
+ align-items : center;
43
+ justify-content: center;
44
+ }
45
+ }
46
+
47
+ .statistics-digtal-total-tax {
48
+ border-top: 2px solid #9F613E;
49
+
50
+ &>div:first-child {
51
+ border-right: 2px solid #9F613E;
52
+ }
53
+ }
54
+ }
@@ -0,0 +1,99 @@
1
+ import React from 'react';
2
+ import Icon from '@ant-design/icons';
3
+ import { } from 'kts-components-antd-x3';
4
+ import { ReactComponent as ForkSvg } from './svg/fork.svg';
5
+ import { chain, bignumber } from 'mathjs';
6
+ import Invoice from '../../../../..';
7
+ import './index.less';
8
+
9
+ const nzhcn = require('nzh').cn;
10
+
11
+ export default () => {
12
+ const controller = Invoice.useInvoiceController();
13
+
14
+ /** 是否不含税) */
15
+ const isTaxIncluded = controller.useMemo(s => s.goodsListState.isTaxIncluded, []);
16
+
17
+ /** 金额(含税) */
18
+ const lineAmountIncludeTax = controller.useMemo((s) => {
19
+ if (typeof s.goodsListState.amountIncludeTax === 'number') {
20
+ return s.goodsListState.amountIncludeTax
21
+ }
22
+
23
+ let sum = chain(bignumber(0));
24
+ const editGood = s.goodsListState.editGood; // 正在编辑的货物
25
+ const err = s.goodsListState.form?.getFieldsError() ?? {};
26
+
27
+ s.goodsListState.goodsList.forEach((e) => {
28
+ if (e.$index === editGood?.$index) {
29
+ if (!err.lineAmountIncludeTax) {
30
+ sum = sum.add(bignumber(editGood.lineAmountIncludeTax || 0));
31
+ }
32
+ } else {
33
+ sum = sum.add(bignumber(e.lineAmountIncludeTax || 0));
34
+ }
35
+ });
36
+ return sum.done().toNumber();
37
+ }, []);
38
+
39
+ /** 金额(不含税) */
40
+ const lineAmountExcludeTax = controller.useMemo((s) => {
41
+ if (typeof s.goodsListState.amountExcludeTax === 'number') {
42
+ return s.goodsListState.amountExcludeTax
43
+ }
44
+
45
+ let sum = chain(bignumber(0));
46
+ const editGood = s.goodsListState.editGood; // 正在编辑的货物
47
+ const err = s.goodsListState.form?.getFieldsError() ?? {};
48
+
49
+ s.goodsListState.goodsList.forEach((e) => {
50
+ if (e.$index === editGood?.$index) {
51
+ if (!err.lineAmountExcludeTax) {
52
+ sum = sum.add(bignumber(editGood.lineAmountExcludeTax || 0));
53
+ }
54
+ } else {
55
+ sum = sum.add(bignumber(e.lineAmountExcludeTax || 0));
56
+ }
57
+ });
58
+ return sum.done().toNumber();
59
+ }, []);
60
+
61
+ /** 税额 */
62
+ const taxAmount = controller.useMemo((s) => {
63
+ if (typeof s.goodsListState.amountTax === 'number') {
64
+ return s.goodsListState.amountTax;
65
+ }
66
+
67
+ let sum = chain(bignumber(0));
68
+ const editGood = s.goodsListState.editGood; // 正在编辑的货物
69
+ s.goodsListState.goodsList.forEach((e) => {
70
+ if (e.$index === editGood?.$index) {
71
+ sum = sum.add(bignumber(editGood.taxAmount || 0));
72
+ } else {
73
+ sum = sum.add(bignumber(e.taxAmount || 0));
74
+ }
75
+ });
76
+ return sum.done().toNumber();
77
+ }, []);
78
+
79
+ return (
80
+ <div className='kts-invoice-operate-goods-list-statistics-digtal' >
81
+ <div className='statistics-digtal-total' >
82
+ <div>合计</div>
83
+ <div style={{ flex: 1 }} />
84
+ <div style={{ width: 119, textAlign: 'right', paddingRight: 15 }} >¥{parseFloat(isTaxIncluded ? lineAmountIncludeTax : lineAmountExcludeTax).toFixed(2)}</div>
85
+ <div style={{ width: 119, textAlign: 'right', paddingRight: 15 }} >¥{parseFloat(taxAmount).toFixed(2)}</div>
86
+ </div>
87
+ <div className='statistics-digtal-total-tax' >
88
+ <div>价税合计(大写)</div>
89
+ <div style={{ paddingLeft: 30 }} >
90
+ <Icon component={ForkSvg} />
91
+ <span style={{ fontWeight: 'bold', marginLeft: 4 }} >{nzhcn.toMoney(lineAmountIncludeTax, { outSymbol: false })}</span>
92
+ </div>
93
+ <div style={{ flex: 1 }} />
94
+ <div style={{ width: 90, color: '#9F613E' }} >(小写)</div>
95
+ <div style={{ width: 119 }} >¥{parseFloat(lineAmountIncludeTax).toFixed(2)}</div>
96
+ </div>
97
+ </div >
98
+ );
99
+ };
@@ -0,0 +1,12 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
2
+ <g clip-path="url(#clip0_695_1221)">
3
+ <path d="M7.99978 0.888916C4.08867 0.888916 0.888672 4.08892 0.888672 8.00003C0.888672 11.9111 4.08867 15.1111 7.99978 15.1111C11.9109 15.1111 15.1109 11.9111 15.1109 8.00003C15.1109 4.08892 11.9109 0.888916 7.99978 0.888916ZM7.99978 14.2222C4.53312 14.2222 1.77756 11.4667 1.77756 8.00003C1.77756 4.53336 4.53312 1.7778 7.99978 1.7778C11.4664 1.7778 14.222 4.53336 14.222 8.00003C14.222 11.4667 11.4664 14.2222 7.99978 14.2222Z" fill="#333333"/>
4
+ <path d="M10.7019 11.3288L4.72949 5.35818L5.35794 4.72974L11.3295 10.7004L10.7019 11.3288Z" fill="#333333"/>
5
+ <path d="M4.66895 10.7023L10.6396 4.73071L11.2681 5.35916L5.29739 11.3307L4.66895 10.7023Z" fill="#333333"/>
6
+ </g>
7
+ <defs>
8
+ <clipPath id="clip0_695_1221">
9
+ <rect width="16" height="16" fill="white"/>
10
+ </clipPath>
11
+ </defs>
12
+ </svg>
@@ -0,0 +1,28 @@
1
+ import React from "react";
2
+ import Invoice from '../../../../..';
3
+ import { LineAttributeType } from '../../../../../InvoiceController'
4
+ import classnames from 'classnames'
5
+
6
+ export default function TableRow(props: any) {
7
+
8
+ const controller = Invoice.useInvoiceController();
9
+
10
+ const goodsMap = controller.useMemo(s => s.goodsListState.goodsMap, [])
11
+
12
+ const discount = React.useMemo(() => {
13
+ const i = goodsMap.get(props['data-row-key']);
14
+ if (!i) return undefined;
15
+
16
+ if (i.lineAttribute === LineAttributeType.折扣行) {
17
+ return 'kts-invoice-operate-goods-be-discount'
18
+ } else if (i.lineAttribute === LineAttributeType.被折扣行) {
19
+ return 'kts-invoice-operate-goods-discount'
20
+ } else {
21
+ return undefined;
22
+ }
23
+ }, [props['data-row-key'], goodsMap])
24
+
25
+ return (
26
+ <tr {...props} className={classnames(props.className, discount)} />
27
+ )
28
+ }
@@ -0,0 +1,39 @@
1
+ .kts-invoice-operate-goods-table-virtual {
2
+
3
+ .ktsAntX-table-body {
4
+ height: 280px;
5
+ }
6
+
7
+ .ktsAntX-table.ktsAntX-table-bordered>.ktsAntX-table-container>.ktsAntX-table-header>table>thead>tr>th {
8
+ padding : 0 10px;
9
+ height : 32px;
10
+ background: #f4f4f4;
11
+ }
12
+
13
+ .ktsAntX-table.ktsAntX-table-bordered>.ktsAntX-table-container>.ktsAntX-table-body>table>tbody>tr>td {
14
+ padding: 0;
15
+ height : 32px;
16
+ }
17
+
18
+ .ktsAntX-table .ktsAntX-table-body {
19
+ position: relative;
20
+ }
21
+
22
+ .ktsAntX-table .ktsAntX-table-body>table {
23
+ position: absolute;
24
+ left : 0;
25
+ top : 0;
26
+ }
27
+
28
+ .ktsAntX-table .ktsAntX-table-tbody {
29
+ position: relative;
30
+ }
31
+
32
+ .ktsAntX-checkbox-wrapper .ktsAntX-checkbox-inner {
33
+ width : 16px;
34
+ height : 16px;
35
+ border : 1px solid #d9d9d9;
36
+ border-radius: 2px;
37
+ top : 1px;
38
+ }
39
+ }
@@ -0,0 +1,109 @@
1
+
2
+ import React from "react";
3
+ import { TableManual, TableProps } from "kts-xui";
4
+ import { Table } from 'kts-components-antd-x4-v4';
5
+ import './index.less';
6
+
7
+ export default function <T extends object = any>(props: TableProps<T>) {
8
+
9
+ const [self, setSelf] = React.useState<HTMLSpanElement | null>(null);
10
+
11
+ const tableBody = React.useMemo(() => {
12
+ if (!self) return;
13
+ return self.querySelector('.ktsAntX-table-body') as HTMLDivElement;
14
+ }, [self]);
15
+
16
+ /** 显示指针 */
17
+ const [pointer, setPointer] = React.useState(0);
18
+
19
+ /** 行高 */
20
+ const rowHeight = React.useMemo(() => {
21
+ if (!self) return 50;
22
+
23
+ const td = self.querySelector('.ktsAntX-table-tbody .ktsAntX-table-row');
24
+ if (!td) return 50;
25
+
26
+ return td.clientHeight;
27
+ }, [self, props.dataSource]);
28
+
29
+ /** 间隔容器 */
30
+ const placeholder = React.useMemo(() => {
31
+ if (!self || !tableBody) return;
32
+ let placeholder = tableBody.querySelector('.table-virtual-placeholder') as HTMLDivElement;
33
+ if (!placeholder) {
34
+ placeholder = document.createElement('div');
35
+ placeholder.className = 'table-virtual-placeholder';
36
+ tableBody.appendChild(placeholder);
37
+ }
38
+ return placeholder;
39
+ }, [self, tableBody]);
40
+
41
+ // 设置占位dom的搞
42
+ const placeholderHeight = React.useMemo(() => {
43
+ if (!self || !rowHeight || !props.dataSource || !placeholder) return;
44
+ const placeholderHeight = rowHeight * props.dataSource.length;
45
+ placeholder.style.height = `${placeholderHeight}px`;
46
+ return placeholderHeight;
47
+ }, [self, rowHeight, props.dataSource, placeholder]);
48
+
49
+ /** 可以容纳的行数 */
50
+ const rowSize = React.useMemo(() => {
51
+ if (!tableBody! || !rowHeight) return 0;
52
+ return Math.ceil(tableBody.clientHeight / rowHeight);
53
+ }, [tableBody, rowHeight, placeholderHeight]);
54
+
55
+ // 计算渲染的行
56
+ const dataSource = React.useMemo(() => {
57
+ if (!props.dataSource) return [];
58
+ if (props.dataSource.length < 10) return props.dataSource;
59
+
60
+ if (!rowSize) return [props.dataSource[0]];
61
+ return props.dataSource?.slice(pointer, pointer + 2 * rowSize);
62
+ }, [props.dataSource, pointer, rowSize]);
63
+
64
+ // 监听滚动
65
+ React.useEffect(() => {
66
+ if (!self || !placeholder || !props.dataSource || !rowHeight || !tableBody)
67
+ return;
68
+
69
+ const onScroll = () => {
70
+ if (!props.dataSource || !tableBody) return;
71
+ setPointer(Math.floor((props.dataSource.length - rowSize) * (tableBody.scrollTop / (placeholder.clientHeight - tableBody.clientHeight))));
72
+ };
73
+ onScroll();
74
+
75
+ tableBody.addEventListener('scroll', onScroll);
76
+ return () => {
77
+ tableBody.removeEventListener('scroll', onScroll);
78
+ };
79
+ }, [self, placeholder, props.dataSource, rowHeight, rowSize]);
80
+
81
+ // 移动列表
82
+ React.useEffect(() => {
83
+ if (!self) return;
84
+
85
+ const table = self.querySelector('.ktsAntX-table .ktsAntX-table-body>table') as HTMLDivElement;
86
+ if (!table) return;
87
+
88
+ table.style.top = `${pointer * rowHeight}px`;
89
+ }, [pointer, self, rowHeight]);
90
+
91
+ React.useEffect(() => {
92
+ if (!self) return;
93
+ const cont = self.querySelector('.kts-invoice-operate-goods-table-virtual .ktsAntX-table-body');
94
+ if (!cont) return;
95
+
96
+ cont.scrollTop = 0;
97
+ }, [props.dataSource?.length])
98
+
99
+ return (
100
+ <span className="kts-invoice-operate-goods-table-virtual" ref={(e) => { setSelf(e) }} >
101
+ <TableManual
102
+ {...props}
103
+ dataSource={dataSource}
104
+ // 新版本Table会有输入框无法连续输入的问题,先兼容老版本
105
+ tableComponent={Table as any}
106
+ />
107
+ </span>
108
+ )
109
+ }