kts-component-invoice-operate 3.2.48 → 3.2.50

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 (200) hide show
  1. package/.dumi/theme/builtins/API.tsx +66 -66
  2. package/.editorconfig +16 -16
  3. package/.fatherrc.ts +4 -4
  4. package/.prettierignore +7 -7
  5. package/.prettierrc +11 -11
  6. package/.umirc.ts +8 -8
  7. package/README.md +5 -5
  8. package/dist/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemCodeInput/index.d.ts +0 -1
  9. package/dist/index.esm.js +5666 -7879
  10. package/dist/index.js +5666 -7879
  11. package/docs/index.md +5 -5
  12. package/docs-dist/static/arrowDown.a1cbf0d8.svg +2 -2
  13. package/docs-dist/static/arrowUp.4c482054.svg +2 -2
  14. package/docs-dist/static/fork.5431267d.svg +11 -11
  15. package/docs-dist/static/plus.44013ce3.svg +11 -11
  16. package/docs-dist/static/plus.4fd1af30.svg +11 -11
  17. package/index.html +12 -12
  18. package/package.json +60 -60
  19. package/src/Invoice/Invoice-digtal/_test/disabled/index.tsx +38 -38
  20. package/src/Invoice/Invoice-digtal/_test/easiest/index.tsx +16 -16
  21. package/src/Invoice/Invoice-digtal/_test/header/index.tsx +84 -84
  22. package/src/Invoice/Invoice-digtal/_test/importGoods/index.tsx +470 -470
  23. package/src/Invoice/Invoice-digtal/_test/importStakeholder/index.tsx +17 -17
  24. package/src/Invoice/Invoice-digtal/_test/lineCredit/index.tsx +20 -20
  25. package/src/Invoice/Invoice-digtal/_test/prefab/index.tsx +150 -150
  26. package/src/Invoice/Invoice-digtal/_test/readOnly/index.tsx +41 -41
  27. package/src/Invoice/Invoice-digtal/_test/stakeholder/index.tsx +12 -12
  28. package/src/Invoice/Invoice-digtal/_test/typeSelection/index.tsx +29 -29
  29. package/src/Invoice/Invoice-digtal/index.md +30 -30
  30. package/src/Invoice/InvoiceController/InvoiceControllerForm/index.ts +94 -94
  31. package/src/Invoice/InvoiceController/InvoiceControllerState/AutoComplete/index.ts +17 -17
  32. package/src/Invoice/InvoiceController/InvoiceControllerState/BuyerState/index.tsx +88 -88
  33. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/Drag/index.ts +12 -12
  34. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/EndowCode/index.tsx +93 -93
  35. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IColumnsReplenish/index.ts +10 -10
  36. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IGood/index.ts +75 -75
  37. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ImportGoods/index.ts +80 -80
  38. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/LineAttributeType/index.ts +5 -5
  39. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ProductComparison/index.ts +9 -9
  40. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/index.ts +107 -107
  41. package/src/Invoice/InvoiceController/InvoiceControllerState/Stakeholder/index.ts +10 -10
  42. package/src/Invoice/InvoiceController/InvoiceControllerState/index.ts +60 -60
  43. package/src/Invoice/InvoiceController/fns/addGood.ts +11 -11
  44. package/src/Invoice/InvoiceController/fns/addGoodDiscount.ts +125 -125
  45. package/src/Invoice/InvoiceController/fns/addGoodDiscountV2.ts +84 -84
  46. package/src/Invoice/InvoiceController/fns/delGood.ts +41 -41
  47. package/src/Invoice/InvoiceController/fns/getGoodsSearch.ts +26 -26
  48. package/src/Invoice/InvoiceController/fns/importGoodsDrawer.ts +67 -67
  49. package/src/Invoice/InvoiceController/fns/mergeDetails.ts +163 -163
  50. package/src/Invoice/InvoiceController/fns/mergeDiscount.ts +28 -28
  51. package/src/Invoice/InvoiceController/fns/saveEditGood.ts +24 -24
  52. package/src/Invoice/InvoiceController/fns/setEditGood.ts +16 -16
  53. package/src/Invoice/InvoiceController/fns/setGoods.ts +10 -10
  54. package/src/Invoice/InvoiceController/fns/updateInvoiceNo.ts +8 -8
  55. package/src/Invoice/InvoiceController/index.ts +77 -77
  56. package/src/Invoice/_test/buyerNameSearch/index.tsx +41 -41
  57. package/src/Invoice/_test/deduction/index.tsx +935 -935
  58. package/src/Invoice/_test/draft/index.tsx +40 -40
  59. package/src/Invoice/_test/easiest/index.tsx +5 -5
  60. package/src/Invoice/_test/endowCode/index.tsx +1099 -1099
  61. package/src/Invoice/_test/goodsMenuExpand/index.tsx +32 -32
  62. package/src/Invoice/_test/importBuyer/index.tsx +74 -74
  63. package/src/Invoice/_test/importGoods/index.tsx +515 -515
  64. package/src/Invoice/_test/invoiceType/index.tsx +59 -59
  65. package/src/Invoice/_test/isInvoiceNo/index.tsx +12 -12
  66. package/src/Invoice/_test/replaceHead/index.tsx +22 -22
  67. package/src/Invoice/_test/retrieveData/index.tsx +22 -22
  68. package/src/Invoice/_test/seller/index.tsx +28 -28
  69. package/src/Invoice/_test/setDataSource/index.tsx +73 -73
  70. package/src/Invoice/_test/unit/index.tsx +19 -19
  71. package/src/Invoice/index.less +29 -29
  72. package/src/Invoice/index.md +53 -53
  73. package/src/Invoice/index.tsx +165 -165
  74. package/src/Invoice/tools/calculate/index.ts +112 -112
  75. package/src/Invoice/tools/coolingFn/index.ts +17 -17
  76. package/src/Invoice/tools/evaluate/index.ts +7 -7
  77. package/src/Invoice/tools/idGenerator/index.ts +2 -2
  78. package/src/Invoice/tools/itemName/index.ts +55 -55
  79. package/src/Invoice/tools/lazyFn/index.ts +19 -19
  80. package/src/Invoice/tools/mounting/index.ts +13 -13
  81. package/src/Invoice/tools/strringFn/index.ts +40 -40
  82. package/src/Invoice/tools/useToGenerateId/index.ts +8 -8
  83. package/src/Invoice/ui/default/AddComparisonDrawer/index.tsx +149 -149
  84. package/src/Invoice/ui/default/Buyer/index.less +219 -219
  85. package/src/Invoice/ui/default/Buyer/index.tsx +114 -114
  86. package/src/Invoice/ui/default/Buyer/ui/BuyerNameInput/index.tsx +166 -166
  87. package/src/Invoice/ui/default/Buyer/ui/ImportBuyerButton/index.tsx +21 -21
  88. package/src/Invoice/ui/default/EndowCodeDrawer/index.less +8 -8
  89. package/src/Invoice/ui/default/EndowCodeDrawer/index.tsx +431 -431
  90. package/src/Invoice/ui/default/GoodsList/hook/useColumns/autoFillFn/index.ts +533 -533
  91. package/src/Invoice/ui/default/GoodsList/hook/useColumns/index.tsx +664 -665
  92. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/Drag/index.less +20 -20
  93. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/Drag/index.tsx +202 -202
  94. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemCodeInput/index.less +18 -18
  95. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemCodeInput/index.tsx +58 -56
  96. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +17 -17
  97. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +128 -128
  98. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
  99. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
  100. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +76 -76
  101. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -41
  102. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +34 -34
  103. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -13
  104. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +98 -98
  105. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
  106. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  107. package/src/Invoice/ui/default/GoodsList/hook/useDeduction/index.tsx +24 -24
  108. package/src/Invoice/ui/default/GoodsList/hook/useOnRow/index.tsx +39 -39
  109. package/src/Invoice/ui/default/GoodsList/hook/useRowSelection/index.tsx +111 -111
  110. package/src/Invoice/ui/default/GoodsList/hook/useWindowClick/index.tsx +23 -23
  111. package/src/Invoice/ui/default/GoodsList/index.less +177 -177
  112. package/src/Invoice/ui/default/GoodsList/index.tsx +191 -191
  113. package/src/Invoice/ui/default/GoodsList/ui/AddRowButton/index.tsx +65 -65
  114. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.less +21 -21
  115. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +244 -244
  116. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
  117. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +69 -69
  118. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +58 -58
  119. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useMergeDetails/index.tsx +37 -37
  120. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useMergeDiscount/index.tsx +36 -36
  121. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/index.tsx +37 -37
  122. package/src/Invoice/ui/default/GoodsList/ui/DescribeSwitch/index.tsx +36 -36
  123. package/src/Invoice/ui/default/GoodsList/ui/Search/index.less +10 -10
  124. package/src/Invoice/ui/default/GoodsList/ui/Search/index.tsx +52 -52
  125. package/src/Invoice/ui/default/GoodsList/ui/Statistics/index.less +18 -18
  126. package/src/Invoice/ui/default/GoodsList/ui/Statistics/index.tsx +109 -109
  127. package/src/Invoice/ui/default/GoodsList/ui/TableRow/index.less +13 -13
  128. package/src/Invoice/ui/default/GoodsList/ui/TableRow/index.tsx +46 -46
  129. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual/index.less +38 -38
  130. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual/index.tsx +108 -108
  131. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual.o/index.less +44 -44
  132. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual.o/index.tsx +96 -96
  133. package/src/Invoice/ui/default/GoodsList/ui/TaxIncludedSwitch/index.tsx +30 -30
  134. package/src/Invoice/ui/default/ImportBuyerDrawer/index.tsx +75 -75
  135. package/src/Invoice/ui/default/ImportGoodsDrawer/index.tsx +193 -193
  136. package/src/Invoice/ui/default/InvoiceHeader/index.less +68 -68
  137. package/src/Invoice/ui/default/InvoiceHeader/index.tsx +246 -246
  138. package/src/Invoice/ui/default/Seller/index.less +113 -113
  139. package/src/Invoice/ui/default/Seller/index.tsx +98 -98
  140. package/src/Invoice/ui/default/Sign/index.less +14 -14
  141. package/src/Invoice/ui/default/Sign/index.tsx +71 -71
  142. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/autoFillFn/index.ts +519 -519
  143. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/index.tsx +648 -648
  144. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/svg/plus.svg +11 -11
  145. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/Drag/index.less +20 -20
  146. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/Drag/index.tsx +186 -186
  147. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +9 -9
  148. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +50 -50
  149. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
  150. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
  151. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +76 -76
  152. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -41
  153. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +34 -34
  154. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -13
  155. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +98 -98
  156. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
  157. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  158. package/src/Invoice/ui/digtal/GoodsList/hook/useOnRow/index.tsx +39 -39
  159. package/src/Invoice/ui/digtal/GoodsList/hook/useRowSelection/index.tsx +121 -121
  160. package/src/Invoice/ui/digtal/GoodsList/hook/useWindowClick/index.tsx +23 -23
  161. package/src/Invoice/ui/digtal/GoodsList/index.less +56 -56
  162. package/src/Invoice/ui/digtal/GoodsList/index.tsx +180 -180
  163. package/src/Invoice/ui/digtal/GoodsList/ui/AddRowButton/index.tsx +65 -65
  164. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +341 -341
  165. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/svg/add.svg +11 -11
  166. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
  167. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +50 -50
  168. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEmptyRefill/index.tsx +35 -35
  169. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +82 -82
  170. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useReselectInvoiceType/index.tsx +57 -57
  171. package/src/Invoice/ui/digtal/GoodsList/ui/DescribeSwitch/index.tsx +36 -36
  172. package/src/Invoice/ui/digtal/GoodsList/ui/Search/index.less +11 -11
  173. package/src/Invoice/ui/digtal/GoodsList/ui/Search/index.tsx +50 -50
  174. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/index.less +53 -53
  175. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/index.tsx +99 -99
  176. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/svg/fork.svg +11 -11
  177. package/src/Invoice/ui/digtal/GoodsList/ui/TableRow/index.less +13 -13
  178. package/src/Invoice/ui/digtal/GoodsList/ui/TableRow/index.tsx +40 -40
  179. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.less +38 -38
  180. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.tsx +108 -108
  181. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual.o/index.less +44 -44
  182. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual.o/index.tsx +96 -96
  183. package/src/Invoice/ui/digtal/GoodsList/ui/TaxIncludedSwitch/index.tsx +30 -30
  184. package/src/Invoice/ui/digtal/InvoiceHeader/index.less +57 -57
  185. package/src/Invoice/ui/digtal/InvoiceHeader/index.tsx +77 -77
  186. package/src/Invoice/ui/digtal/Sign/index.less +48 -48
  187. package/src/Invoice/ui/digtal/Sign/index.tsx +89 -89
  188. package/src/Invoice/ui/digtal/Stakeholder/index.less +75 -75
  189. package/src/Invoice/ui/digtal/Stakeholder/index.tsx +388 -388
  190. package/src/Invoice/ui/digtal/Stakeholder/svg/arrowDown.svg +2 -2
  191. package/src/Invoice/ui/digtal/Stakeholder/svg/arrowUp.svg +2 -2
  192. package/src/Invoice/ui/digtal/Stakeholder/svg/plus.svg +11 -11
  193. package/src/InvoiceTypeModal/_test/easiest/index.tsx +31 -31
  194. package/src/InvoiceTypeModal/index.less +7 -7
  195. package/src/InvoiceTypeModal/index.md +5 -5
  196. package/src/InvoiceTypeModal/index.tsx +153 -153
  197. package/src/index.ts +9 -9
  198. package/tsconfig.json +31 -31
  199. package/typings.d.ts +3 -3
  200. package/yarn.e.lock +14331 -14331
@@ -1,12 +1,12 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="16" height="15" viewBox="0 0 16 15">
2
- <g clip-path="url(#clip0_715_360)">
3
- <path d="M8 14.5312C4.11687 14.5312 0.96875 11.3831 0.96875 7.5C0.96875 3.61687 4.11687 0.46875 8 0.46875C11.8831 0.46875 15.0312 3.61687 15.0312 7.5C15.0312 11.3831 11.8831 14.5312 8 14.5312ZM8 13.5938C11.3656 13.5938 14.0938 10.8656 14.0938 7.5C14.0938 4.13438 11.3656 1.40625 8 1.40625C4.63438 1.40625 1.90625 4.13438 1.90625 7.5C1.90625 10.8656 4.63438 13.5938 8 13.5938Z"/>
4
- <path d="M4.25 7.96875C4.12568 7.96875 4.00645 7.91936 3.91854 7.83146C3.83064 7.74355 3.78125 7.62432 3.78125 7.5C3.78125 7.37568 3.83064 7.25645 3.91854 7.16854C4.00645 7.08064 4.12568 7.03125 4.25 7.03125H11.75C11.8743 7.03125 11.9935 7.08064 12.0815 7.16854C12.1694 7.25645 12.2188 7.37568 12.2188 7.5C12.2188 7.62432 12.1694 7.74355 12.0815 7.83146C11.9935 7.91936 11.8743 7.96875 11.75 7.96875H4.25Z"/>
5
- <path d="M7.53125 3.75C7.53125 3.62568 7.58064 3.50645 7.66854 3.41854C7.75645 3.33064 7.87568 3.28125 8 3.28125C8.12432 3.28125 8.24355 3.33064 8.33146 3.41854C8.41936 3.50645 8.46875 3.62568 8.46875 3.75V11.25C8.46875 11.3743 8.41936 11.4935 8.33146 11.5815C8.24355 11.6694 8.12432 11.7188 8 11.7188C7.87568 11.7188 7.75645 11.6694 7.66854 11.5815C7.58064 11.4935 7.53125 11.3743 7.53125 11.25V3.75Z"/>
6
- </g>
7
- <defs>
8
- <clipPath id="clip0_715_360">
9
- <rect width="15" height="15" transform="translate(0.5)"/>
10
- </clipPath>
11
- </defs>
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="15" viewBox="0 0 16 15">
2
+ <g clip-path="url(#clip0_715_360)">
3
+ <path d="M8 14.5312C4.11687 14.5312 0.96875 11.3831 0.96875 7.5C0.96875 3.61687 4.11687 0.46875 8 0.46875C11.8831 0.46875 15.0312 3.61687 15.0312 7.5C15.0312 11.3831 11.8831 14.5312 8 14.5312ZM8 13.5938C11.3656 13.5938 14.0938 10.8656 14.0938 7.5C14.0938 4.13438 11.3656 1.40625 8 1.40625C4.63438 1.40625 1.90625 4.13438 1.90625 7.5C1.90625 10.8656 4.63438 13.5938 8 13.5938Z"/>
4
+ <path d="M4.25 7.96875C4.12568 7.96875 4.00645 7.91936 3.91854 7.83146C3.83064 7.74355 3.78125 7.62432 3.78125 7.5C3.78125 7.37568 3.83064 7.25645 3.91854 7.16854C4.00645 7.08064 4.12568 7.03125 4.25 7.03125H11.75C11.8743 7.03125 11.9935 7.08064 12.0815 7.16854C12.1694 7.25645 12.2188 7.37568 12.2188 7.5C12.2188 7.62432 12.1694 7.74355 12.0815 7.83146C11.9935 7.91936 11.8743 7.96875 11.75 7.96875H4.25Z"/>
5
+ <path d="M7.53125 3.75C7.53125 3.62568 7.58064 3.50645 7.66854 3.41854C7.75645 3.33064 7.87568 3.28125 8 3.28125C8.12432 3.28125 8.24355 3.33064 8.33146 3.41854C8.41936 3.50645 8.46875 3.62568 8.46875 3.75V11.25C8.46875 11.3743 8.41936 11.4935 8.33146 11.5815C8.24355 11.6694 8.12432 11.7188 8 11.7188C7.87568 11.7188 7.75645 11.6694 7.66854 11.5815C7.58064 11.4935 7.53125 11.3743 7.53125 11.25V3.75Z"/>
6
+ </g>
7
+ <defs>
8
+ <clipPath id="clip0_715_360">
9
+ <rect width="15" height="15" transform="translate(0.5)"/>
10
+ </clipPath>
11
+ </defs>
12
12
  </svg>
@@ -1,21 +1,21 @@
1
- .kts-invoice-operate-goods-list-itemName-drag {
2
- cursor: all-scroll;
3
-
4
-
5
- }
6
-
7
- .kts-invoice-operate-goods-list-itemName-drag-div {
8
- z-index : 999;
9
- border : 1px solid #E6E6E6;
10
- width : 400px;
11
- height : 50px;
12
- display : flex;
13
- gap : 10px;
14
- align-items : center;
15
- position : fixed;
16
- padding : 0 20px;
17
- top : 100px;
18
- background : #fff;
19
- pointer-events: none;
20
- opacity : 0.4;
1
+ .kts-invoice-operate-goods-list-itemName-drag {
2
+ cursor: all-scroll;
3
+
4
+
5
+ }
6
+
7
+ .kts-invoice-operate-goods-list-itemName-drag-div {
8
+ z-index : 999;
9
+ border : 1px solid #E6E6E6;
10
+ width : 400px;
11
+ height : 50px;
12
+ display : flex;
13
+ gap : 10px;
14
+ align-items : center;
15
+ position : fixed;
16
+ padding : 0 20px;
17
+ top : 100px;
18
+ background : #fff;
19
+ pointer-events: none;
20
+ opacity : 0.4;
21
21
  }
@@ -1,187 +1,187 @@
1
-
2
- import React from "react";
3
- import Icon from '@ant-design/icons';
4
- import { ReactComponent as I001Svg } from './svg/I001.svg';
5
- import { Button } from "kts-components-antd-x3";
6
- import { IGood, Invoice } from '../../../../../../../..';
7
- import mounting from "../../../../../../../tools/mounting";
8
- import { LineAttributeType } from "../../../../../../../InvoiceController";
9
- import './index.less';
10
-
11
- export interface IDragProps {
12
- record: IGood
13
- }
14
-
15
- export default function Drag(props: IDragProps) {
16
-
17
- const { record } = props;
18
-
19
- const controller = Invoice.useInvoiceController();
20
-
21
- const editGood = controller.useMemo(s => s.goodsListState.editGood, []);
22
-
23
- const disabled = React.useMemo(() => !!editGood, [editGood]);
24
-
25
- const onMouseDown = React.useCallback(() => {
26
- if (!controller || !record) return;
27
- controller.run(async s => s.goodsListState.drag.current = record.$index);
28
-
29
- const rowList = window.document.querySelectorAll<HTMLDivElement>('.kts-invoice-operate-goods-list-digtal');
30
-
31
- const currentGood = controller.state.goodsListState.goodsList.filter(e => e.$index === record.$index)[0];
32
- mounting(<DragDiv {...currentGood} />)
33
-
34
- // 监听移动
35
- rowList.forEach(e => { e.addEventListener('mouseover', onMouseover) });
36
- function onMouseover(e: MouseEvent) {
37
- controller.run(async s => {
38
- const container = s.goodsListState.drag.container = getRow(e.target)?.dataset?.rowKey;
39
- if (!container) return;
40
-
41
- // 不可以插入自己
42
- if (container === s.goodsListState.drag.current) {
43
- s.goodsListState.drag.container = undefined;
44
- return;
45
- }
46
-
47
- const currentGood = s.goodsListState.drag.current && s.goodsListState.goodsMap.get(s.goodsListState.drag.current);
48
- if (!currentGood) return;
49
-
50
- const row = s.goodsListState.goodsMap.get(container);
51
- if (!row) return;
52
-
53
- // 折扣行 不可以插入 自己的被折扣行
54
- if (currentGood.lineAttribute === LineAttributeType.折扣行) {
55
- const currentIndex = s.goodsListState.goodsList.map(e => e.$index).indexOf(currentGood.$index)
56
- const containerIndex = s.goodsListState.goodsList.map(e => e.$index).indexOf(row.$index)
57
- if (currentIndex - 1 === containerIndex) {
58
- s.goodsListState.drag.container = undefined;
59
- return;
60
- }
61
- }
62
-
63
- // 被折扣行 不可以插入 自己的折扣行
64
- if (currentGood.lineAttribute === LineAttributeType.被折扣行) {
65
- const currentIndex = s.goodsListState.goodsList.map(e => e.$index).indexOf(currentGood.$index)
66
- const containerIndex = s.goodsListState.goodsList.map(e => e.$index).indexOf(row.$index)
67
- if (currentIndex + 1 === containerIndex) {
68
- s.goodsListState.drag.container = undefined;
69
- return;
70
- }
71
- }
72
-
73
- // 折扣行 拖动的 相当于 自己的 被折扣行
74
- if (row.lineAttribute === LineAttributeType.折扣行) {
75
- const t = s.goodsListState.goodsList.map(e => e.$index).indexOf(container) - 1;
76
- s.goodsListState.drag.container = s.goodsListState.goodsList[t].$index;
77
- }
78
- });
79
-
80
- const getRow = (t: any): any => {
81
- try {
82
- if (t.localName === 'tr') {
83
- return t;
84
- } else {
85
- return getRow(t.parentNode);
86
- }
87
- } catch (error) {
88
- return undefined
89
- }
90
- }
91
- }
92
-
93
- // 放开鼠标
94
- window.addEventListener('mouseup', onMouseup);
95
- function onMouseup() {
96
- insert();
97
- controller.run(async s => s.goodsListState.drag.current = undefined);
98
- window.removeEventListener('mouseup', onMouseup);
99
- rowList.forEach(e => { e.removeEventListener('mouseover', onMouseover) });
100
- // window.document.body.removeChild(rowDiv);
101
- }
102
-
103
- // 开始插入
104
- function insert() {
105
- mounting(<></>);
106
- controller.run(async s => {
107
- const { container, current } = s.goodsListState.drag;
108
- if (!container || !current) return;
109
- if (container !== current) {
110
- const goodsList = s.goodsListState.goodsList;
111
- const goodsMap = s.goodsListState.goodsMap;
112
- const currentGood = goodsList.filter(e => e.$index === current)[0];
113
- const currentIndex = goodsList.map(e => e.$index).indexOf(current);
114
-
115
- /** 需要移动的货品列表 */
116
- let moveGoods: string[] = [current];
117
- if (currentGood.lineAttribute === LineAttributeType.被折扣行) {
118
- moveGoods = [current, goodsList[currentIndex + 1].$index];
119
- } else if (currentGood.lineAttribute === LineAttributeType.折扣行) {
120
- moveGoods = [goodsList[currentIndex - 1].$index, current];
121
- }
122
-
123
- (() => {
124
- const g = s.goodsListState.goodsList.filter(e => moveGoods.indexOf(e.$index) < 0);
125
- const t = g.map(e => e.$index).indexOf(container);
126
- const m = moveGoods.map(e => goodsMap.get(e)).filter(e => !!e) as IGood[];
127
- s.goodsListState.goodsList = (g.splice.apply(g, [t, 0, ...m]), g);
128
- })()
129
-
130
- s.goodsListState.goodsMap = new Map();
131
- s.goodsListState.goodsList.forEach(e => { s.goodsListState.goodsMap.set(e.$index, e) });
132
- }
133
-
134
- s.goodsListState.drag.container = undefined;
135
- s.goodsListState.drag.current = undefined;
136
- })
137
- }
138
- }, [controller, record])
139
-
140
- return (
141
- <Button
142
- type='link'
143
- style={{ padding: 0 }}
144
- disabled={disabled}
145
- onMouseDown={onMouseDown}
146
- onClick={e => { e.stopPropagation() }}
147
- className={"kts-invoice-operate-goods-list-itemName-drag"}
148
- >
149
- <Icon component={I001Svg} />
150
- </Button>
151
- )
152
- }
153
-
154
- function DragDiv(props: IGood) {
155
-
156
- const [x, setX] = React.useState(0);
157
- const [y, setY] = React.useState(-110);
158
-
159
- const div = React.useMemo(() => window.document.querySelector(`[data-row-key="${props.$index}"]`), [props.$index])
160
-
161
- // 初始化位置
162
- React.useEffect(() => {
163
- if (!div) return;
164
- const rect = div.getBoundingClientRect();
165
- setX(rect.left + 135);
166
- setY(rect.top);
167
- }, [div])
168
-
169
- // 移动事件
170
- React.useEffect(() => {
171
-
172
- function onMousemove(e: MouseEvent) { setY(e.clientY - 25) };
173
-
174
- window.addEventListener('mousemove', onMousemove);
175
- return () => {
176
- window.removeEventListener('mousemove', onMousemove);
177
- }
178
- })
179
-
180
- return (
181
- <div className="kts-invoice-operate-goods-list-itemName-drag-div" style={{ top: y, left: x }} >
182
- <span>{props.itemName}</span>
183
- <span>{props.itemModelName}</span>
184
- <span>{props.unit}</span>
185
- </div>
186
- )
1
+
2
+ import React from "react";
3
+ import Icon from '@ant-design/icons';
4
+ import { ReactComponent as I001Svg } from './svg/I001.svg';
5
+ import { Button } from "kts-components-antd-x3";
6
+ import { IGood, Invoice } from '../../../../../../../..';
7
+ import mounting from "../../../../../../../tools/mounting";
8
+ import { LineAttributeType } from "../../../../../../../InvoiceController";
9
+ import './index.less';
10
+
11
+ export interface IDragProps {
12
+ record: IGood
13
+ }
14
+
15
+ export default function Drag(props: IDragProps) {
16
+
17
+ const { record } = props;
18
+
19
+ const controller = Invoice.useInvoiceController();
20
+
21
+ const editGood = controller.useMemo(s => s.goodsListState.editGood, []);
22
+
23
+ const disabled = React.useMemo(() => !!editGood, [editGood]);
24
+
25
+ const onMouseDown = React.useCallback(() => {
26
+ if (!controller || !record) return;
27
+ controller.run(async s => s.goodsListState.drag.current = record.$index);
28
+
29
+ const rowList = window.document.querySelectorAll<HTMLDivElement>('.kts-invoice-operate-goods-list-digtal');
30
+
31
+ const currentGood = controller.state.goodsListState.goodsList.filter(e => e.$index === record.$index)[0];
32
+ mounting(<DragDiv {...currentGood} />)
33
+
34
+ // 监听移动
35
+ rowList.forEach(e => { e.addEventListener('mouseover', onMouseover) });
36
+ function onMouseover(e: MouseEvent) {
37
+ controller.run(async s => {
38
+ const container = s.goodsListState.drag.container = getRow(e.target)?.dataset?.rowKey;
39
+ if (!container) return;
40
+
41
+ // 不可以插入自己
42
+ if (container === s.goodsListState.drag.current) {
43
+ s.goodsListState.drag.container = undefined;
44
+ return;
45
+ }
46
+
47
+ const currentGood = s.goodsListState.drag.current && s.goodsListState.goodsMap.get(s.goodsListState.drag.current);
48
+ if (!currentGood) return;
49
+
50
+ const row = s.goodsListState.goodsMap.get(container);
51
+ if (!row) return;
52
+
53
+ // 折扣行 不可以插入 自己的被折扣行
54
+ if (currentGood.lineAttribute === LineAttributeType.折扣行) {
55
+ const currentIndex = s.goodsListState.goodsList.map(e => e.$index).indexOf(currentGood.$index)
56
+ const containerIndex = s.goodsListState.goodsList.map(e => e.$index).indexOf(row.$index)
57
+ if (currentIndex - 1 === containerIndex) {
58
+ s.goodsListState.drag.container = undefined;
59
+ return;
60
+ }
61
+ }
62
+
63
+ // 被折扣行 不可以插入 自己的折扣行
64
+ if (currentGood.lineAttribute === LineAttributeType.被折扣行) {
65
+ const currentIndex = s.goodsListState.goodsList.map(e => e.$index).indexOf(currentGood.$index)
66
+ const containerIndex = s.goodsListState.goodsList.map(e => e.$index).indexOf(row.$index)
67
+ if (currentIndex + 1 === containerIndex) {
68
+ s.goodsListState.drag.container = undefined;
69
+ return;
70
+ }
71
+ }
72
+
73
+ // 折扣行 拖动的 相当于 自己的 被折扣行
74
+ if (row.lineAttribute === LineAttributeType.折扣行) {
75
+ const t = s.goodsListState.goodsList.map(e => e.$index).indexOf(container) - 1;
76
+ s.goodsListState.drag.container = s.goodsListState.goodsList[t].$index;
77
+ }
78
+ });
79
+
80
+ const getRow = (t: any): any => {
81
+ try {
82
+ if (t.localName === 'tr') {
83
+ return t;
84
+ } else {
85
+ return getRow(t.parentNode);
86
+ }
87
+ } catch (error) {
88
+ return undefined
89
+ }
90
+ }
91
+ }
92
+
93
+ // 放开鼠标
94
+ window.addEventListener('mouseup', onMouseup);
95
+ function onMouseup() {
96
+ insert();
97
+ controller.run(async s => s.goodsListState.drag.current = undefined);
98
+ window.removeEventListener('mouseup', onMouseup);
99
+ rowList.forEach(e => { e.removeEventListener('mouseover', onMouseover) });
100
+ // window.document.body.removeChild(rowDiv);
101
+ }
102
+
103
+ // 开始插入
104
+ function insert() {
105
+ mounting(<></>);
106
+ controller.run(async s => {
107
+ const { container, current } = s.goodsListState.drag;
108
+ if (!container || !current) return;
109
+ if (container !== current) {
110
+ const goodsList = s.goodsListState.goodsList;
111
+ const goodsMap = s.goodsListState.goodsMap;
112
+ const currentGood = goodsList.filter(e => e.$index === current)[0];
113
+ const currentIndex = goodsList.map(e => e.$index).indexOf(current);
114
+
115
+ /** 需要移动的货品列表 */
116
+ let moveGoods: string[] = [current];
117
+ if (currentGood.lineAttribute === LineAttributeType.被折扣行) {
118
+ moveGoods = [current, goodsList[currentIndex + 1].$index];
119
+ } else if (currentGood.lineAttribute === LineAttributeType.折扣行) {
120
+ moveGoods = [goodsList[currentIndex - 1].$index, current];
121
+ }
122
+
123
+ (() => {
124
+ const g = s.goodsListState.goodsList.filter(e => moveGoods.indexOf(e.$index) < 0);
125
+ const t = g.map(e => e.$index).indexOf(container);
126
+ const m = moveGoods.map(e => goodsMap.get(e)).filter(e => !!e) as IGood[];
127
+ s.goodsListState.goodsList = (g.splice.apply(g, [t, 0, ...m]), g);
128
+ })()
129
+
130
+ s.goodsListState.goodsMap = new Map();
131
+ s.goodsListState.goodsList.forEach(e => { s.goodsListState.goodsMap.set(e.$index, e) });
132
+ }
133
+
134
+ s.goodsListState.drag.container = undefined;
135
+ s.goodsListState.drag.current = undefined;
136
+ })
137
+ }
138
+ }, [controller, record])
139
+
140
+ return (
141
+ <Button
142
+ type='link'
143
+ style={{ padding: 0 }}
144
+ disabled={disabled}
145
+ onMouseDown={onMouseDown}
146
+ onClick={e => { e.stopPropagation() }}
147
+ className={"kts-invoice-operate-goods-list-itemName-drag"}
148
+ >
149
+ <Icon component={I001Svg} />
150
+ </Button>
151
+ )
152
+ }
153
+
154
+ function DragDiv(props: IGood) {
155
+
156
+ const [x, setX] = React.useState(0);
157
+ const [y, setY] = React.useState(-110);
158
+
159
+ const div = React.useMemo(() => window.document.querySelector(`[data-row-key="${props.$index}"]`), [props.$index])
160
+
161
+ // 初始化位置
162
+ React.useEffect(() => {
163
+ if (!div) return;
164
+ const rect = div.getBoundingClientRect();
165
+ setX(rect.left + 135);
166
+ setY(rect.top);
167
+ }, [div])
168
+
169
+ // 移动事件
170
+ React.useEffect(() => {
171
+
172
+ function onMousemove(e: MouseEvent) { setY(e.clientY - 25) };
173
+
174
+ window.addEventListener('mousemove', onMousemove);
175
+ return () => {
176
+ window.removeEventListener('mousemove', onMousemove);
177
+ }
178
+ })
179
+
180
+ return (
181
+ <div className="kts-invoice-operate-goods-list-itemName-drag-div" style={{ top: y, left: x }} >
182
+ <span>{props.itemName}</span>
183
+ <span>{props.itemModelName}</span>
184
+ <span>{props.unit}</span>
185
+ </div>
186
+ )
187
187
  }
@@ -1,10 +1,10 @@
1
- .kts-invoice-operate-goods-list-itemName-input {
2
- display : flex;
3
- flex : 1;
4
- padding-left: 0;
5
- height : 31px;
6
- }
7
-
8
- .has-error .kts-invoice-operate-goods-list-itemName-input{
9
- border: 1px solid #f5222d;
1
+ .kts-invoice-operate-goods-list-itemName-input {
2
+ display : flex;
3
+ flex : 1;
4
+ padding-left: 0;
5
+ height : 31px;
6
+ }
7
+
8
+ .has-error .kts-invoice-operate-goods-list-itemName-input{
9
+ border: 1px solid #f5222d;
10
10
  }
@@ -1,50 +1,50 @@
1
-
2
- import { AutoComplete, Input } from 'kts-xui';
3
- import React, { ChangeEvent } from 'react';
4
- import { IGood, Invoice } from '../../../../../../../..';
5
- import './index.less';
6
-
7
- export default function ItemNameInput(props: {
8
- onChange?: (e: ChangeEvent<HTMLInputElement>) => void,
9
- suffix?: React.ReactNode,
10
- value?: string,
11
- shorthand?: string
12
- }) {
13
-
14
- const controller = Invoice.useInvoiceController();
15
-
16
- const autoComplete = controller.useMemo(s => s.autoComplete, [])
17
-
18
- const [options, setOptions] = React.useState<IGood[]>([])
19
-
20
- const onChange = React.useCallback((e: ChangeEvent<HTMLInputElement>) => {
21
- const event = { ...e };
22
- props.onChange && props.onChange(event);
23
- }, [])
24
-
25
- const onChangeAutoComplete = React.useCallback(itemName => {
26
- const record = options.filter(e => e.itemName === itemName)[0] as any;
27
- if (!record) return;
28
- controller.importGoodsDrawer(record);
29
- }, [options, controller])
30
-
31
- const onSearch = React.useCallback(async (searchText: string) => {
32
- try {
33
- if (autoComplete.onItemNameSearch) {
34
- setOptions(await autoComplete.onItemNameSearch(searchText));
35
- }
36
- } catch (error) {
37
- setOptions([]);
38
- throw error;
39
- }
40
- }, [autoComplete.onItemNameSearch])
41
-
42
- return (
43
- <div className='kts-invoice-operate-goods-list-itemName-input'>
44
- {props.shorthand && <span style={{ alignSelf: 'center', fontSize: 12 }} >*{props.shorthand}*</span>}
45
- <AutoComplete onSearch={onSearch} value={props.value} options={options.map(e => ({ value: e.itemName }))} onSelect={onChangeAutoComplete} >
46
- <Input style={{ height: '100%' }} onChange={onChange} suffix={props.suffix} />
47
- </AutoComplete>
48
- </div>
49
- )
50
- }
1
+
2
+ import { AutoComplete, Input } from 'kts-xui';
3
+ import React, { ChangeEvent } from 'react';
4
+ import { IGood, Invoice } from '../../../../../../../..';
5
+ import './index.less';
6
+
7
+ export default function ItemNameInput(props: {
8
+ onChange?: (e: ChangeEvent<HTMLInputElement>) => void,
9
+ suffix?: React.ReactNode,
10
+ value?: string,
11
+ shorthand?: string
12
+ }) {
13
+
14
+ const controller = Invoice.useInvoiceController();
15
+
16
+ const autoComplete = controller.useMemo(s => s.autoComplete, [])
17
+
18
+ const [options, setOptions] = React.useState<IGood[]>([])
19
+
20
+ const onChange = React.useCallback((e: ChangeEvent<HTMLInputElement>) => {
21
+ const event = { ...e };
22
+ props.onChange && props.onChange(event);
23
+ }, [])
24
+
25
+ const onChangeAutoComplete = React.useCallback(itemName => {
26
+ const record = options.filter(e => e.itemName === itemName)[0] as any;
27
+ if (!record) return;
28
+ controller.importGoodsDrawer(record);
29
+ }, [options, controller])
30
+
31
+ const onSearch = React.useCallback(async (searchText: string) => {
32
+ try {
33
+ if (autoComplete.onItemNameSearch) {
34
+ setOptions(await autoComplete.onItemNameSearch(searchText));
35
+ }
36
+ } catch (error) {
37
+ setOptions([]);
38
+ throw error;
39
+ }
40
+ }, [autoComplete.onItemNameSearch])
41
+
42
+ return (
43
+ <div className='kts-invoice-operate-goods-list-itemName-input'>
44
+ {props.shorthand && <span style={{ alignSelf: 'center', fontSize: 12 }} >*{props.shorthand}*</span>}
45
+ <AutoComplete onSearch={onSearch} value={props.value} options={options.map(e => ({ value: e.itemName }))} onSelect={onChangeAutoComplete} >
46
+ <Input style={{ height: '100%' }} onChange={onChange} suffix={props.suffix} />
47
+ </AutoComplete>
48
+ </div>
49
+ )
50
+ }
@@ -1,30 +1,30 @@
1
- import React from 'react';
2
- import { Button, message } from 'kts-components-antd-x3';
3
- import Invoice from '../../../../../../';
4
- import { IGood } from '../../../../../../InvoiceController';
5
- import LineAttributeType from '../../../../../../InvoiceController/InvoiceControllerState/GoodsListState/LineAttributeType';
6
-
7
- export default (props: { goods: IGood }) => {
8
- const { goods } = props;
9
-
10
- const controller = Invoice.useInvoiceController();
11
-
12
- const editGood = controller.useMemo((s) => s.goodsListState.editGood, []);
13
-
14
- const onClick = React.useCallback(() => {
15
- if (editGood) {
16
- message.error({
17
- content: '你正在编辑一个货物',
18
- key: '你正在编辑一个货物',
19
- });
20
- return;
21
- }
22
- controller.setEditGood(goods);
23
- }, [controller, goods, editGood]);
24
-
25
- if (goods.lineAttribute !== LineAttributeType.正常) {
26
- return <></>;
27
- } else {
28
- return <Button type="link" icon="edit" onClick={onClick} />;
29
- }
30
- };
1
+ import React from 'react';
2
+ import { Button, message } from 'kts-components-antd-x3';
3
+ import Invoice from '../../../../../../';
4
+ import { IGood } from '../../../../../../InvoiceController';
5
+ import LineAttributeType from '../../../../../../InvoiceController/InvoiceControllerState/GoodsListState/LineAttributeType';
6
+
7
+ export default (props: { goods: IGood }) => {
8
+ const { goods } = props;
9
+
10
+ const controller = Invoice.useInvoiceController();
11
+
12
+ const editGood = controller.useMemo((s) => s.goodsListState.editGood, []);
13
+
14
+ const onClick = React.useCallback(() => {
15
+ if (editGood) {
16
+ message.error({
17
+ content: '你正在编辑一个货物',
18
+ key: '你正在编辑一个货物',
19
+ });
20
+ return;
21
+ }
22
+ controller.setEditGood(goods);
23
+ }, [controller, goods, editGood]);
24
+
25
+ if (goods.lineAttribute !== LineAttributeType.正常) {
26
+ return <></>;
27
+ } else {
28
+ return <Button type="link" icon="edit" onClick={onClick} />;
29
+ }
30
+ };