kts-component-invoice-operate 3.2.244 → 3.2.246

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 (278) 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/BRANCH.md +5 -0
  8. package/README.md +12 -12
  9. package/branch/3.2.x +1 -0
  10. package/dist/Invoice/ui/default/GoodsList/hook/useColumns/autoFillFn/index.d.ts +2 -0
  11. package/dist/Invoice/ui/digtal/StakeFarmerholder/index.d.ts +2 -0
  12. package/dist/index.esm.js +126 -7
  13. package/dist/index.js +126 -7
  14. package/docs/index.md +5 -5
  15. package/docs-dist/404.html +33 -33
  16. package/docs-dist/index.html +33 -33
  17. package/docs-dist/static/arrowDown.a1cbf0d8.svg +2 -2
  18. package/docs-dist/static/arrowUp.4c482054.svg +2 -2
  19. package/docs-dist/static/fork.5431267d.svg +11 -11
  20. package/docs-dist/static/plus.44013ce3.svg +11 -11
  21. package/docs-dist/static/plus.4fd1af30.svg +11 -11
  22. package/docs-dist/umi.css +18 -18
  23. package/index.html +12 -12
  24. package/package.json +62 -62
  25. package/src/Invoice/Invoice-digtal/_test/architecture/index.tsx +21 -21
  26. package/src/Invoice/Invoice-digtal/_test/disabled/index.tsx +40 -40
  27. package/src/Invoice/Invoice-digtal/_test/easiest/index.tsx +214 -214
  28. package/src/Invoice/Invoice-digtal/_test/freight/index.tsx +14580 -14580
  29. package/src/Invoice/Invoice-digtal/_test/header/index.tsx +84 -84
  30. package/src/Invoice/Invoice-digtal/_test/importGoods/index.tsx +868 -868
  31. package/src/Invoice/Invoice-digtal/_test/importStakeholder/index.tsx +18 -18
  32. package/src/Invoice/Invoice-digtal/_test/lineCredit/index.tsx +19 -19
  33. package/src/Invoice/Invoice-digtal/_test/pay/index.tsx +14636 -14636
  34. package/src/Invoice/Invoice-digtal/_test/prefab/index.tsx +150 -150
  35. package/src/Invoice/Invoice-digtal/_test/readOnly/index.tsx +55 -55
  36. package/src/Invoice/Invoice-digtal/_test/realEstateInfo/index.tsx +83 -83
  37. package/src/Invoice/Invoice-digtal/_test/stakeholder/index.tsx +12 -12
  38. package/src/Invoice/Invoice-digtal/_test/typeSelection/index.tsx +29 -29
  39. package/src/Invoice/Invoice-digtal/index.md +44 -44
  40. package/src/Invoice/InvoiceController/InvoiceControllerForm/index.ts +116 -116
  41. package/src/Invoice/InvoiceController/InvoiceControllerState/AutoComplete/index.ts +26 -26
  42. package/src/Invoice/InvoiceController/InvoiceControllerState/BuyerState/index.tsx +88 -88
  43. package/src/Invoice/InvoiceController/InvoiceControllerState/FreightListState/IColumnsReplenish/index.ts +10 -10
  44. package/src/Invoice/InvoiceController/InvoiceControllerState/FreightListState/IGood/index.ts +33 -33
  45. package/src/Invoice/InvoiceController/InvoiceControllerState/FreightListState/ImportGoods/index.ts +81 -81
  46. package/src/Invoice/InvoiceController/InvoiceControllerState/FreightListState/index.ts +39 -39
  47. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/Drag/index.ts +15 -15
  48. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/EndowCode/index.tsx +104 -104
  49. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IColumnsReplenish/index.ts +10 -10
  50. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IGood/index.ts +91 -90
  51. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ImportGoods/index.ts +84 -84
  52. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/LineAttributeType/index.ts +7 -7
  53. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ProductComparison/index.ts +9 -9
  54. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/index.ts +134 -134
  55. package/src/Invoice/InvoiceController/InvoiceControllerState/PayListState/IColumnsReplenish/index.ts +10 -10
  56. package/src/Invoice/InvoiceController/InvoiceControllerState/PayListState/IGood/index.ts +35 -35
  57. package/src/Invoice/InvoiceController/InvoiceControllerState/PayListState/ImportGoods/index.ts +81 -81
  58. package/src/Invoice/InvoiceController/InvoiceControllerState/PayListState/index.ts +39 -39
  59. package/src/Invoice/InvoiceController/InvoiceControllerState/Stakeholder/index.ts +13 -13
  60. package/src/Invoice/InvoiceController/InvoiceControllerState/index.ts +76 -76
  61. package/src/Invoice/InvoiceController/fns/addFreight.ts +11 -11
  62. package/src/Invoice/InvoiceController/fns/addGood.ts +11 -11
  63. package/src/Invoice/InvoiceController/fns/addGoodDiscount.ts +126 -126
  64. package/src/Invoice/InvoiceController/fns/addGoodDiscountV2.ts +86 -86
  65. package/src/Invoice/InvoiceController/fns/addPay.ts +11 -11
  66. package/src/Invoice/InvoiceController/fns/delFreight.ts +38 -38
  67. package/src/Invoice/InvoiceController/fns/delGood.ts +41 -41
  68. package/src/Invoice/InvoiceController/fns/delPay.ts +38 -38
  69. package/src/Invoice/InvoiceController/fns/getGoodsSearch.ts +26 -26
  70. package/src/Invoice/InvoiceController/fns/importGoodsDrawer.ts +79 -79
  71. package/src/Invoice/InvoiceController/fns/itemBlur.ts +40 -40
  72. package/src/Invoice/InvoiceController/fns/mergeDetails.ts +201 -201
  73. package/src/Invoice/InvoiceController/fns/mergeDiscount.ts +35 -35
  74. package/src/Invoice/InvoiceController/fns/saveEditFreight.ts +24 -24
  75. package/src/Invoice/InvoiceController/fns/saveEditGood.ts +24 -24
  76. package/src/Invoice/InvoiceController/fns/saveEditPay.ts +23 -23
  77. package/src/Invoice/InvoiceController/fns/setEditFreight.ts +16 -16
  78. package/src/Invoice/InvoiceController/fns/setEditGood.ts +16 -16
  79. package/src/Invoice/InvoiceController/fns/setEditPay.ts +16 -16
  80. package/src/Invoice/InvoiceController/fns/setFreight.ts +10 -10
  81. package/src/Invoice/InvoiceController/fns/setGoods.ts +10 -10
  82. package/src/Invoice/InvoiceController/fns/setPay.ts +10 -10
  83. package/src/Invoice/InvoiceController/fns/updateInvoiceNo.ts +8 -8
  84. package/src/Invoice/InvoiceController/index.ts +127 -127
  85. package/src/Invoice/_test/buyerNameSearch/index.tsx +42 -42
  86. package/src/Invoice/_test/children/index.tsx +214 -214
  87. package/src/Invoice/_test/deduction/index.tsx +956 -957
  88. package/src/Invoice/_test/draft/index.tsx +40 -40
  89. package/src/Invoice/_test/easiest/index.tsx +5 -5
  90. package/src/Invoice/_test/endowCode/index.tsx +1158 -1158
  91. package/src/Invoice/_test/goodsMenuExpand/index.tsx +32 -32
  92. package/src/Invoice/_test/importBuyer/index.tsx +74 -74
  93. package/src/Invoice/_test/importGoods/index.tsx +1197 -1197
  94. package/src/Invoice/_test/invoiceType/index.tsx +59 -59
  95. package/src/Invoice/_test/isInvoiceNo/index.tsx +12 -12
  96. package/src/Invoice/_test/replaceHead/index.tsx +22 -22
  97. package/src/Invoice/_test/retrieveData/index.tsx +22 -22
  98. package/src/Invoice/_test/seller/index.tsx +28 -28
  99. package/src/Invoice/_test/setDataSource/index.tsx +73 -73
  100. package/src/Invoice/_test/unit/index.tsx +19 -19
  101. package/src/Invoice/index.less +31 -31
  102. package/src/Invoice/index.md +56 -56
  103. package/src/Invoice/index.tsx +200 -200
  104. package/src/Invoice/tools/calculate/index.ts +144 -144
  105. package/src/Invoice/tools/coolingFn/index.ts +17 -17
  106. package/src/Invoice/tools/evaluate/index.ts +7 -7
  107. package/src/Invoice/tools/idGenerator/index.ts +2 -2
  108. package/src/Invoice/tools/itemName/index.ts +55 -55
  109. package/src/Invoice/tools/lazyFn/index.ts +19 -19
  110. package/src/Invoice/tools/mounting/index.ts +13 -13
  111. package/src/Invoice/tools/strringFn/index.ts +40 -40
  112. package/src/Invoice/tools/useToGenerateId/index.ts +12 -12
  113. package/src/Invoice/tools/utils/index.ts +1 -1
  114. package/src/Invoice/tools/utils/money/index.ts +20 -20
  115. package/src/Invoice/ui/default/AddComparisonDrawer/index.tsx +149 -149
  116. package/src/Invoice/ui/default/Buyer/index.less +219 -219
  117. package/src/Invoice/ui/default/Buyer/index.tsx +114 -114
  118. package/src/Invoice/ui/default/Buyer/ui/BuyerNameInput/index.tsx +166 -166
  119. package/src/Invoice/ui/default/Buyer/ui/ImportBuyerButton/index.tsx +21 -21
  120. package/src/Invoice/ui/default/EndowCodeDrawer/index.less +8 -8
  121. package/src/Invoice/ui/default/EndowCodeDrawer/index.tsx +612 -612
  122. package/src/Invoice/ui/default/GoodsList/hook/useColumns/autoFillFn/index.ts +681 -647
  123. package/src/Invoice/ui/default/GoodsList/hook/useColumns/index.tsx +769 -719
  124. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/Drag/index.less +20 -20
  125. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/Drag/index.tsx +205 -205
  126. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/Expand/index.tsx +57 -57
  127. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemCodeInput/index.less +18 -18
  128. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemCodeInput/index.tsx +49 -49
  129. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +17 -17
  130. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +91 -91
  131. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
  132. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
  133. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +118 -118
  134. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/dist/index.js +32 -32
  135. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -41
  136. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +25 -25
  137. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -13
  138. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +99 -99
  139. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
  140. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  141. package/src/Invoice/ui/default/GoodsList/hook/useDeduction/index.tsx +24 -24
  142. package/src/Invoice/ui/default/GoodsList/hook/useOnRow/index.tsx +52 -52
  143. package/src/Invoice/ui/default/GoodsList/hook/useRowSelection/index.tsx +120 -120
  144. package/src/Invoice/ui/default/GoodsList/hook/useWindowClick/index.tsx +23 -23
  145. package/src/Invoice/ui/default/GoodsList/index.less +185 -185
  146. package/src/Invoice/ui/default/GoodsList/index.tsx +207 -207
  147. package/src/Invoice/ui/default/GoodsList/ui/AddRowButton/index.tsx +72 -72
  148. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.less +21 -21
  149. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +244 -244
  150. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
  151. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +69 -69
  152. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +65 -65
  153. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useMergeDetails/index.tsx +91 -91
  154. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useMergeDiscount/index.tsx +36 -36
  155. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useSalesDiscount/index.tsx +109 -109
  156. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useSalesGifts/index.tsx +94 -94
  157. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/index.tsx +37 -37
  158. package/src/Invoice/ui/default/GoodsList/ui/DescribeSwitch/index.tsx +36 -36
  159. package/src/Invoice/ui/default/GoodsList/ui/Search/index.less +10 -10
  160. package/src/Invoice/ui/default/GoodsList/ui/Search/index.tsx +52 -52
  161. package/src/Invoice/ui/default/GoodsList/ui/Statistics/index.less +18 -18
  162. package/src/Invoice/ui/default/GoodsList/ui/Statistics/index.tsx +114 -114
  163. package/src/Invoice/ui/default/GoodsList/ui/TableRow/index.less +40 -40
  164. package/src/Invoice/ui/default/GoodsList/ui/TableRow/index.tsx +71 -71
  165. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual/index.less +38 -38
  166. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual/index.tsx +130 -130
  167. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual.o/index.less +44 -44
  168. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual.o/index.tsx +96 -96
  169. package/src/Invoice/ui/default/GoodsList/ui/TaxIncludedSwitch/index.tsx +31 -31
  170. package/src/Invoice/ui/default/ImportBuyerDrawer/index.tsx +75 -75
  171. package/src/Invoice/ui/default/ImportGoodsDrawer/index.tsx +201 -201
  172. package/src/Invoice/ui/default/InvoiceHeader/index.less +68 -68
  173. package/src/Invoice/ui/default/InvoiceHeader/index.tsx +246 -246
  174. package/src/Invoice/ui/default/Seller/index.less +113 -113
  175. package/src/Invoice/ui/default/Seller/index.tsx +98 -98
  176. package/src/Invoice/ui/default/Sign/index.less +14 -14
  177. package/src/Invoice/ui/default/Sign/index.tsx +71 -71
  178. package/src/Invoice/ui/digtal/Architecture/index.less +18 -18
  179. package/src/Invoice/ui/digtal/Architecture/index.tsx +177 -177
  180. package/src/Invoice/ui/digtal/FreightList/hook/useColumns/dist/index.js +616 -616
  181. package/src/Invoice/ui/digtal/FreightList/hook/useColumns/index.tsx +246 -246
  182. package/src/Invoice/ui/digtal/FreightList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  183. package/src/Invoice/ui/digtal/FreightList/hook/useOnRow/index.tsx +37 -37
  184. package/src/Invoice/ui/digtal/FreightList/hook/useRowSelection/index.tsx +119 -119
  185. package/src/Invoice/ui/digtal/FreightList/hook/useWindowClick/index.tsx +23 -23
  186. package/src/Invoice/ui/digtal/FreightList/index.less +72 -72
  187. package/src/Invoice/ui/digtal/FreightList/index.tsx +129 -129
  188. package/src/Invoice/ui/digtal/FreightList/ui/AddRowButton/index.tsx +74 -74
  189. package/src/Invoice/ui/digtal/FreightList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +50 -50
  190. package/src/Invoice/ui/digtal/FreightList/ui/BulkMenu/hooks/useEmptyRefill/index.tsx +36 -36
  191. package/src/Invoice/ui/digtal/FreightList/ui/TableRow/index.less +28 -28
  192. package/src/Invoice/ui/digtal/FreightList/ui/TableRow/index.tsx +20 -20
  193. package/src/Invoice/ui/digtal/FreightList/ui/TableVirtual/index.less +38 -38
  194. package/src/Invoice/ui/digtal/FreightList/ui/TableVirtual/index.tsx +108 -108
  195. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/autoFillFn/index.ts +683 -683
  196. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/dist/index.js +616 -616
  197. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/index.tsx +723 -724
  198. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/svg/plus.svg +11 -11
  199. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/Drag/index.less +20 -20
  200. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/Drag/index.tsx +205 -205
  201. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +9 -9
  202. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +87 -87
  203. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
  204. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
  205. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +76 -76
  206. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -41
  207. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +34 -34
  208. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -13
  209. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +98 -98
  210. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
  211. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  212. package/src/Invoice/ui/digtal/GoodsList/hook/useOnRow/index.tsx +51 -51
  213. package/src/Invoice/ui/digtal/GoodsList/hook/useRowSelection/index.tsx +121 -121
  214. package/src/Invoice/ui/digtal/GoodsList/hook/useWindowClick/index.tsx +23 -23
  215. package/src/Invoice/ui/digtal/GoodsList/index.less +56 -56
  216. package/src/Invoice/ui/digtal/GoodsList/index.tsx +181 -181
  217. package/src/Invoice/ui/digtal/GoodsList/ui/AddRowButton/index.tsx +87 -87
  218. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +340 -340
  219. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/svg/add.svg +11 -11
  220. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
  221. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +50 -50
  222. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEmptyRefill/index.tsx +37 -37
  223. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +82 -82
  224. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useReselectInvoiceType/index.tsx +57 -57
  225. package/src/Invoice/ui/digtal/GoodsList/ui/DescribeSwitch/index.tsx +36 -36
  226. package/src/Invoice/ui/digtal/GoodsList/ui/Search/index.less +11 -11
  227. package/src/Invoice/ui/digtal/GoodsList/ui/Search/index.tsx +60 -60
  228. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/index.less +53 -53
  229. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/index.tsx +98 -98
  230. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/svg/fork.svg +11 -11
  231. package/src/Invoice/ui/digtal/GoodsList/ui/TableRow/index.less +28 -28
  232. package/src/Invoice/ui/digtal/GoodsList/ui/TableRow/index.tsx +52 -52
  233. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.less +38 -38
  234. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.tsx +113 -113
  235. package/src/Invoice/ui/digtal/GoodsList/ui/TaxIncludedSwitch/index.tsx +34 -34
  236. package/src/Invoice/ui/digtal/InvoiceHeader/index.less +57 -57
  237. package/src/Invoice/ui/digtal/InvoiceHeader/index.tsx +77 -77
  238. package/src/Invoice/ui/digtal/PayList/hook/useColumns/dist/index.js +616 -616
  239. package/src/Invoice/ui/digtal/PayList/hook/useColumns/index.tsx +168 -168
  240. package/src/Invoice/ui/digtal/PayList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  241. package/src/Invoice/ui/digtal/PayList/hook/useOnRow/index.tsx +37 -37
  242. package/src/Invoice/ui/digtal/PayList/hook/useRowSelection/index.tsx +119 -119
  243. package/src/Invoice/ui/digtal/PayList/hook/useWindowClick/index.tsx +19 -19
  244. package/src/Invoice/ui/digtal/PayList/index.less +72 -72
  245. package/src/Invoice/ui/digtal/PayList/index.tsx +132 -132
  246. package/src/Invoice/ui/digtal/PayList/ui/AddRowButton/index.tsx +74 -74
  247. package/src/Invoice/ui/digtal/PayList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +50 -50
  248. package/src/Invoice/ui/digtal/PayList/ui/BulkMenu/hooks/useEmptyRefill/index.tsx +36 -36
  249. package/src/Invoice/ui/digtal/PayList/ui/TableRow/index.less +28 -28
  250. package/src/Invoice/ui/digtal/PayList/ui/TableRow/index.tsx +20 -20
  251. package/src/Invoice/ui/digtal/PayList/ui/TableVirtual/index.less +38 -38
  252. package/src/Invoice/ui/digtal/PayList/ui/TableVirtual/index.tsx +108 -108
  253. package/src/Invoice/ui/digtal/RealEstateInfo/index.less +21 -21
  254. package/src/Invoice/ui/digtal/RealEstateInfo/index.tsx +451 -451
  255. package/src/Invoice/ui/digtal/Sign/index.less +48 -48
  256. package/src/Invoice/ui/digtal/Sign/index.tsx +99 -99
  257. package/src/Invoice/ui/digtal/StakeFarmerholder/index.less +99 -99
  258. package/src/Invoice/ui/digtal/StakeFarmerholder/index.tsx +1102 -1096
  259. package/src/Invoice/ui/digtal/StakeFarmerholder/svg/arrowDown.svg +2 -2
  260. package/src/Invoice/ui/digtal/StakeFarmerholder/svg/arrowUp.svg +2 -2
  261. package/src/Invoice/ui/digtal/StakeFarmerholder/svg/plus.svg +11 -11
  262. package/src/Invoice/ui/digtal/Stakeholder/index.less +99 -99
  263. package/src/Invoice/ui/digtal/Stakeholder/index.tsx +453 -453
  264. package/src/Invoice/ui/digtal/Stakeholder/svg/arrowDown.svg +2 -2
  265. package/src/Invoice/ui/digtal/Stakeholder/svg/arrowUp.svg +2 -2
  266. package/src/Invoice/ui/digtal/Stakeholder/svg/plus.svg +11 -11
  267. package/src/InvoiceTypeModal/_test/easiest/index.tsx +31 -31
  268. package/src/InvoiceTypeModal/dist/index.js +92 -92
  269. package/src/InvoiceTypeModal/index.less +7 -7
  270. package/src/InvoiceTypeModal/index.md +5 -5
  271. package/src/InvoiceTypeModal/index.tsx +161 -161
  272. package/src/TaxClassificationCodeModal/_test/easiest/index.tsx +184 -184
  273. package/src/TaxClassificationCodeModal/index.less +17 -17
  274. package/src/TaxClassificationCodeModal/index.md +6 -6
  275. package/src/TaxClassificationCodeModal/index.tsx +152 -152
  276. package/src/index.ts +13 -13
  277. package/tsconfig.json +31 -31
  278. package/typings.d.ts +3 -3
@@ -1,451 +1,451 @@
1
-
2
- import React, { useEffect } from "react";
3
- import { decorator } from 'grey-react-box';
4
- import { Form, message } from 'kts-components-antd-x3';
5
- import { FormComponentProps } from 'kts-components-antd-x3/lib/form';
6
- import Invoice from '../../..';
7
- import './index.less';
8
- import { Button, Cascader, Col, DatePicker, Input, Row, Select } from "kts-components-antd-x4";
9
- import moment from "moment";
10
-
11
- const { RangePicker } = DatePicker;
12
-
13
- export interface RealEstateInfoProps {
14
- /**
15
- * 不动产地址数据
16
- */
17
- realEstateAddressOptions?: any[];
18
-
19
- /**
20
- * 不动产地址数据字段名
21
- */
22
- realEstateAddressFieldNames?: any;
23
- }
24
-
25
- /** 特殊信息-不动产经营租赁服务 */
26
- export default decorator<RealEstateInfoProps, FormComponentProps & RealEstateInfoProps>(Form.create())(props => {
27
-
28
- /** 控制器 */
29
- const controller = Invoice.useInvoiceController();
30
-
31
- const { form } = props;
32
-
33
- const { getFieldDecorator } = form;
34
-
35
- const model = controller.useMemo(s => s.model, []);
36
-
37
- const readOnly = React.useMemo(() => model === 'readOnly', [model]);
38
-
39
- const goodsList = controller.useMemo(s => s.goodsListState.goodsList, []);
40
- //outcome-104 任务 https://wiki.dev.kingxunlian.com/pages/viewpage.action?pageId=180355189
41
- //商品和服务税收分类合并编码为“3040502020200000000”时,视为停车费业务,针对停车费业务,蓝字发票增加以下判断:
42
- // 单位必须为“平方米”;
43
- // 项目名称必须为“车辆停放服务”;
44
- // 车牌号必填,最多支持填写3个车牌号;除该场景车牌号必须为空;
45
- // 租赁期起止格式必须为“yyyy-MM-dd HH:mm(租赁期起)”+“空格”+“yyyy-MM-dd HH:mm(租赁期止)。
46
- const isParkFee = React.useCallback((taxClassificationCode?: string) => {
47
- if (taxClassificationCode === '3040502020200000000') {
48
- return true
49
- } else {
50
- return false;
51
- }
52
- }, [])
53
-
54
- const indexRef = React.useRef<any>([]);
55
- useEffect(() => {
56
- const dd = goodsList?.reduce((acc: any, cur: any) => {
57
- if (cur.lineAttribute !== 1) {
58
- acc.push(cur.$index)
59
- }
60
- return acc
61
- }, [])
62
- indexRef.current = dd;
63
- }, [goodsList, indexRef])
64
- // 注册 form
65
-
66
- controller.useForm('realEstateInfo', form);
67
- const getList = () => {
68
- const decrease = indexRef.current.length > goodsList.length
69
- if (decrease) {
70
- //已删行列表
71
- const diff = indexRef.current.filter((item: any) => !goodsList.find(i => i.$index === item));
72
-
73
- const formData: any[] = form.getFieldValue('realEstateDataDto');
74
- if (Array.isArray(formData) && diff.length > 0) {
75
-
76
- const newForm = formData?.filter(item => !diff.find((i: any) => i === item.$index));
77
-
78
- form.setFieldsValue({
79
- realEstateDataDto: newForm
80
- });
81
- } else {
82
- form.setFieldsValue({
83
- realEstateDataDto: undefined
84
- });
85
- }
86
- }
87
- return goodsList.filter(item => item.lineAttribute !== 1).map((item, index) => {
88
- if (item.lineAttribute !== 1) {
89
- const isParkFeeItem = isParkFee(item.taxClassificationCode)
90
- return <Row gutter={[17, 0]} >
91
- <Col span={6} >
92
- <Form.Item style={{ display: 'none' }}>
93
- {getFieldDecorator(`realEstateDataDto[${index}].$index`, {
94
- initialValue: item.$index,
95
- })(
96
- <Input />
97
- )}
98
- </Form.Item>
99
- <Form.Item label='不动产地址'>
100
- {getFieldDecorator(`realEstateDataDto[${index}].realEstateAddress`, {
101
- rules: readOnly ? [] : [{ required: true, message: '请选择不动产地址' }]
102
- })(
103
- readOnly
104
- ? (<MyArrString />)
105
- : (<Cascader
106
- style={{ width: '100%' }}
107
- options={props.realEstateAddressOptions}
108
- fieldNames={props.realEstateAddressFieldNames}
109
- placeholder="请选择省市区县"
110
- />)
111
- )}
112
- </Form.Item>
113
- </Col>
114
- <Col span={6} >
115
- <Form.Item label='详细地址' >
116
- {getFieldDecorator(`realEstateDataDto[${index}].realEstateDetailedAddress`, {
117
- rules: readOnly ? [] : [
118
- { required: true, message: '请输入详细地址' },
119
- { max: 120, message: '详细地址最多120个字符' },
120
- {
121
- validator: async (_, value, callback) => {
122
- const pattern = /街|路|村|乡|镇|道|巷|号/;
123
- if (pattern.test(value)) {
124
- callback()
125
- } else {
126
- callback('地址必须包含“街”、“路”、“村”、“乡”、“镇”、“道”、“巷”、“号”等任意一个关键词')
127
- }
128
- }
129
- }
130
- ]
131
- })(
132
- readOnly
133
- ? <MyDiv />
134
- : <Input autoComplete='off' placeholder="请输入详细地址" />
135
- )}
136
- </Form.Item>
137
- </Col>
138
- {!isParkFeeItem &&
139
- <Col span={6} >
140
- <Form.Item label='租赁期起止' >
141
- {getFieldDecorator(`realEstateDataDto[${index}].leaseTerm`, {
142
- rules: readOnly ? [] : [{ required: true, message: '请输入租赁期' }]
143
- })(
144
- readOnly
145
- ? <MyArrMoment />
146
- : <RangePicker style={{ width: '100%' }} />
147
- )}
148
- </Form.Item>
149
- </Col>}
150
- {isParkFeeItem &&
151
- <Col span={6} >
152
- <Form.Item label='租赁期起止' >
153
- {getFieldDecorator(`realEstateDataDto[${index}].leaseTerm`, {
154
- rules: readOnly ? [] : [{ required: true, message: '请输入租赁期' }]
155
- })(
156
- readOnly
157
- ? <MyArrMomentTime />
158
- : <RangePicker style={{ width: '100%' }} showTime={{ format: 'HH:mm' }} format="YYYY-MM-DD HH:mm" />
159
- )}
160
- </Form.Item>
161
- </Col>
162
- }
163
- <Col span={6} >
164
- <Form.Item label='跨地(市)标志' >
165
- {getFieldDecorator(`realEstateDataDto[${index}].crossCitiesSign`, {
166
- rules: readOnly ? [] : [
167
- { required: true, message: '请选择跨地(市)标志' }
168
- ]
169
- })(
170
- readOnly
171
- ? <MyNY />
172
- : <Select placeholder='请选择' style={{ width: '100%' }} >
173
- <Select.Option value='Y'>是</Select.Option>
174
- <Select.Option value='N'>否</Select.Option>
175
- </Select>
176
- )}
177
- </Form.Item>
178
- </Col>
179
- <Col span={6} >
180
- <Form.Item label='产权证书/不动产权证号' >
181
- {getFieldDecorator(`realEstateDataDto[${index}].realEstateNumber`, {
182
- rules: readOnly ? [] : [
183
- { required: true, message: '请输入证书编号,若没有证书填写“无”' },
184
- { max: 40, message: '证书编号最多40个字符' },
185
- ]
186
- })(
187
- readOnly
188
- ? <MyDiv />
189
- : <Input autoComplete='off' placeholder="请输入证书编号,若没有证书填写“无”" />
190
- )}
191
- </Form.Item>
192
- </Col>
193
- {!isParkFeeItem &&
194
- <Col span={6} >
195
- <Form.Item label='面积单位' >
196
- {getFieldDecorator(`realEstateDataDto[${index}].realEstateUnit`, {
197
- rules: readOnly ? [] : [{ required: true, message: '请选择面积单位' }]
198
- })(
199
- readOnly
200
- ? <MyDiv />
201
- : <Select placeholder='请选择' style={{ width: '100%' }} >
202
- <Select.Option value="平方千米">平方千米</Select.Option>
203
- <Select.Option value="平方米">平方米</Select.Option>
204
- <Select.Option value="公顷">公顷</Select.Option>
205
- <Select.Option value="亩">亩</Select.Option>
206
- <Select.Option value="h㎡">h㎡</Select.Option>
207
- <Select.Option value="k㎡">k㎡</Select.Option>
208
- <Select.Option value="㎡">㎡</Select.Option>
209
- </Select>
210
- )}
211
- </Form.Item>
212
- </Col>
213
- }
214
- {isParkFeeItem &&
215
- <Col span={6} >
216
- <Form.Item label='面积单位' >
217
- {getFieldDecorator(`realEstateDataDto[${index}].realEstateUnit`, {
218
- rules: readOnly ? [] : [{ required: true, message: '请选择面积单位' }]
219
- })(
220
- readOnly
221
- ? <MyDiv />
222
- : <Select placeholder='请选择' style={{ width: '100%' }} >
223
- <Select.Option value="平方米">平方米</Select.Option>
224
- </Select>
225
- )}
226
- </Form.Item>
227
- </Col>
228
- }
229
- {isParkFeeItem &&
230
- <LicensePlateNumber form={form} index={index} cd={item.cd} readOnly={readOnly} />
231
- // <Col span={6} >
232
- // <Form.Item label='车牌号' >
233
- // {getFieldDecorator(`realEstateDataDto[${index}].licensePlateNumber`, {
234
- // rules: readOnly ? [] : [{ required: true, message: '请选择面积单位' }]
235
- // })(
236
- // readOnly
237
- // ? <MyDiv />
238
- // : <LicensePlateNumber form={form}/>
239
- // )}
240
- // </Form.Item>
241
- // </Col>
242
- }
243
- </Row>
244
- }
245
- })
246
- }
247
- return (
248
- <div className="kts-invoice-operate-real-estate-info-digtal">
249
- <div className='real-estate-info-digtal-label' >特定信息-不动产经营租赁服务</div>
250
- {getList()}
251
-
252
- </div>
253
- )
254
- })
255
-
256
- class MyDiv extends React.Component<{ value?: string, style?: React.CSSProperties }> {
257
- render(): React.ReactNode {
258
- return (
259
- <div style={this.props.style}>{this.props.value}</div>
260
- )
261
- }
262
- }
263
-
264
- class MyArrString extends React.Component<{ value?: string[], style?: React.CSSProperties }> {
265
- render(): React.ReactNode {
266
- return (
267
- <div style={this.props.style}>
268
- {
269
- this.props.value?.filter(e => !!e)
270
- .join(',')
271
- }
272
- </div>
273
- )
274
- }
275
- }
276
-
277
- class MyArrMoment extends React.Component<{ value?: moment.Moment[], style?: React.CSSProperties }> {
278
- render(): React.ReactNode {
279
- const { value = [] } = this.props
280
- return (
281
- <div style={this.props.style}>
282
- <span>{moment.isMoment(value[0]) && value[0].format('YYYY-MM-DD')}</span>
283
- <span style={{ color: '#9F603D', fontWeight: 600 }} > - </span>
284
- <span>{moment.isMoment(value[1]) && value[1].format('YYYY-MM-DD')}</span>
285
- </div>
286
- )
287
- }
288
- }
289
- class MyArrMomentTime extends React.Component<{ value?: moment.Moment[], style?: React.CSSProperties }> {
290
- render(): React.ReactNode {
291
- const { value = [] } = this.props
292
- return (
293
- <div style={this.props.style}>
294
- <span>{moment.isMoment(value[0]) && value[0].format('YYYY-MM-DD HH:mm')}</span>
295
- <span style={{ color: '#9F603D', fontWeight: 600 }} > - </span>
296
- <span>{moment.isMoment(value[1]) && value[1].format('YYYY-MM-DD HH:mm')}</span>
297
- </div>
298
- )
299
- }
300
- }
301
- class MyNY extends React.Component<{ value?: 'Y' | 'N', style?: React.CSSProperties }> {
302
- render(): React.ReactNode {
303
- return (
304
- <div style={this.props.style}>
305
- {
306
- this.props.value === 'Y' ? '是' : '否'
307
- }
308
- </div>
309
- )
310
- }
311
- }
312
- interface PriceInputProps {
313
- // value?: string[];
314
- // style?: React.CSSProperties
315
- // onChange?: (value: string[]) => void;
316
- form: any,
317
- index: number
318
- cd?: number
319
- readOnly: boolean
320
- }
321
- const LicensePlateNumber: React.FC<PriceInputProps> = (props) => {
322
-
323
- const { form, readOnly } = props;
324
-
325
- const { getFieldDecorator } = form;
326
- const licenceLimit = 3; // 最多支持填写3个车牌号
327
- const formData: any[] = form.getFieldValue('realEstateDataDto');
328
- const [value, setVal] = React.useState(new Array(props.cd || 1).fill(''));
329
- const cd = React.useMemo(() => formData[props.index]?.cd, [formData[props.index]?.cd])
330
- // useEffect(() => {
331
- // if (cd) {
332
- // const dd = value.concat(new Array(cd.length-1).fill(''))
333
- // setVal(dd);
334
- // }
335
- // }, [cd])
336
- const onAdd = () => {
337
- if (value.length < licenceLimit) {
338
- setVal([...value, '']);
339
- }else{
340
- message.warn('最多支持填写3个车牌号')
341
- }
342
- }
343
- // 删除车牌号
344
- const onDelete = () => {
345
- if (value.length > 0) {
346
- const dd = value.slice(0, -1)
347
- setVal(dd);
348
- }
349
- }
350
-
351
- return <>
352
- {
353
- value.length > 0 && value.map((item: string[], key: number) => {
354
-
355
- return <Col span={6} ><Form.Item label='车牌号' key={key}>
356
- {getFieldDecorator(`realEstateDataDto[${props.index}].cphList[${key}]`, {
357
- rules: readOnly ? [] : [{ required: true, message: '请输入车牌号,最多20位' }]
358
- })(
359
- readOnly
360
- ? <MyDiv /> :
361
- <Input style={{ width: '100%' }} maxLength={20} autoComplete='off' placeholder="请输入车牌号" />
362
- )}
363
- </Form.Item>
364
- </Col>
365
- })
366
-
367
-
368
- }
369
- {/* <Col span={6} style={{ display: 'none' }}><Form.Item label='长度' >
370
- {getFieldDecorator(`realEstateDataDto[${props.index}].cd`, {
371
-
372
- })(
373
- <Select />
374
- )}
375
- </Form.Item>
376
- </Col> */}
377
- {!readOnly &&
378
- <Col span={6} >
379
- <Form.Item >
380
- <div style={{ color: 'white' }}>1</div>
381
- <a style={{ marginRight: 10 }} onClick={onAdd}>添加车牌号</a>
382
- {value.length > 1 && <a onClick={onDelete}>删除</a>}
383
- </Form.Item>
384
- </Col>
385
- }
386
- </>
387
- }
388
-
389
-
390
- // const LicensePlateNumber: React.FC<PriceInputProps> = (props) => {
391
-
392
- // const { form } = props;
393
-
394
- // const { getFieldDecorator } = form;
395
- // const licenceLimit = 3; // 最多支持填写3个车牌号
396
- // // const { value = [] } = this.props;
397
- // const [value, setVal] = React.useState(props.value || ['']);
398
- // // const newArr = value.filter(e => !!e);
399
- // const newArrLength = value.length;
400
- // console.log(value, newArrLength)
401
- // // 新增车牌号
402
- // const onAdd = () => {
403
- // if (newArrLength < licenceLimit) {
404
- // setVal([...value, '']);
405
- // props.onChange?.([...value, ''])
406
- // }
407
- // }
408
- // // 删除车牌号
409
- // const onDelete = () => {
410
- // if (newArrLength > 0) {
411
- // const dd = value.slice(0, -1)
412
- // setVal(dd);
413
- // props.onChange?.(dd)
414
- // }
415
- // }
416
- // const onInputChange = (e: React.ChangeEvent<HTMLInputElement>, index: number) => {
417
- // console.log(e.target.value);
418
- // const dd = value.map((item, i) => {
419
- // if (i === index) {
420
- // return e.target.value
421
- // }
422
- // return item
423
- // })
424
- // setVal(dd);
425
- // props.onChange?.(dd)
426
-
427
-
428
- // }
429
- // return (
430
-
431
- // <>
432
- // {newArrLength > 0 && value.map((item, index) => {
433
- // return
434
- // <Form.Item label='车牌号' >
435
- // {getFieldDecorator(`realEstateDataDto[${index}].licensePlateNumber`, {
436
- // rules: [{ required: true, }]
437
- // })(
438
- // <Input onChange={(e) => { onInputChange(e, index) }} key={index} style={{ width: '100%' }} autoComplete='off' placeholder="请输入车牌号" />
439
- // )}
440
- // </Form.Item>
441
- // // <Col span={6} >
442
- // // <Input onChange={(e) => { onInputChange(e, index) }} key={index} style={{ width: '100%' }} autoComplete='off' placeholder="请输入车牌号" />
443
- // // </Col>
444
- // })}
445
-
446
- // <Button type="link" onClick={onAdd}>添加车牌号</Button>
447
- // {newArrLength > 1 && <Button type="link" onClick={onDelete}>删除</Button>}
448
- // </>
449
-
450
- // )
451
- // }
1
+
2
+ import React, { useEffect } from "react";
3
+ import { decorator } from 'grey-react-box';
4
+ import { Form, message } from 'kts-components-antd-x3';
5
+ import { FormComponentProps } from 'kts-components-antd-x3/lib/form';
6
+ import Invoice from '../../..';
7
+ import './index.less';
8
+ import { Button, Cascader, Col, DatePicker, Input, Row, Select } from "kts-components-antd-x4";
9
+ import moment from "moment";
10
+
11
+ const { RangePicker } = DatePicker;
12
+
13
+ export interface RealEstateInfoProps {
14
+ /**
15
+ * 不动产地址数据
16
+ */
17
+ realEstateAddressOptions?: any[];
18
+
19
+ /**
20
+ * 不动产地址数据字段名
21
+ */
22
+ realEstateAddressFieldNames?: any;
23
+ }
24
+
25
+ /** 特殊信息-不动产经营租赁服务 */
26
+ export default decorator<RealEstateInfoProps, FormComponentProps & RealEstateInfoProps>(Form.create())(props => {
27
+
28
+ /** 控制器 */
29
+ const controller = Invoice.useInvoiceController();
30
+
31
+ const { form } = props;
32
+
33
+ const { getFieldDecorator } = form;
34
+
35
+ const model = controller.useMemo(s => s.model, []);
36
+
37
+ const readOnly = React.useMemo(() => model === 'readOnly', [model]);
38
+
39
+ const goodsList = controller.useMemo(s => s.goodsListState.goodsList, []);
40
+ //outcome-104 任务 https://wiki.dev.kingxunlian.com/pages/viewpage.action?pageId=180355189
41
+ //商品和服务税收分类合并编码为“3040502020200000000”时,视为停车费业务,针对停车费业务,蓝字发票增加以下判断:
42
+ // 单位必须为“平方米”;
43
+ // 项目名称必须为“车辆停放服务”;
44
+ // 车牌号必填,最多支持填写3个车牌号;除该场景车牌号必须为空;
45
+ // 租赁期起止格式必须为“yyyy-MM-dd HH:mm(租赁期起)”+“空格”+“yyyy-MM-dd HH:mm(租赁期止)。
46
+ const isParkFee = React.useCallback((taxClassificationCode?: string) => {
47
+ if (taxClassificationCode === '3040502020200000000') {
48
+ return true
49
+ } else {
50
+ return false;
51
+ }
52
+ }, [])
53
+
54
+ const indexRef = React.useRef<any>([]);
55
+ useEffect(() => {
56
+ const dd = goodsList?.reduce((acc: any, cur: any) => {
57
+ if (cur.lineAttribute !== 1) {
58
+ acc.push(cur.$index)
59
+ }
60
+ return acc
61
+ }, [])
62
+ indexRef.current = dd;
63
+ }, [goodsList, indexRef])
64
+ // 注册 form
65
+
66
+ controller.useForm('realEstateInfo', form);
67
+ const getList = () => {
68
+ const decrease = indexRef.current.length > goodsList.length
69
+ if (decrease) {
70
+ //已删行列表
71
+ const diff = indexRef.current.filter((item: any) => !goodsList.find(i => i.$index === item));
72
+
73
+ const formData: any[] = form.getFieldValue('realEstateDataDto');
74
+ if (Array.isArray(formData) && diff.length > 0) {
75
+
76
+ const newForm = formData?.filter(item => !diff.find((i: any) => i === item.$index));
77
+
78
+ form.setFieldsValue({
79
+ realEstateDataDto: newForm
80
+ });
81
+ } else {
82
+ form.setFieldsValue({
83
+ realEstateDataDto: undefined
84
+ });
85
+ }
86
+ }
87
+ return goodsList.filter(item => item.lineAttribute !== 1).map((item, index) => {
88
+ if (item.lineAttribute !== 1) {
89
+ const isParkFeeItem = isParkFee(item.taxClassificationCode)
90
+ return <Row gutter={[17, 0]} >
91
+ <Col span={6} >
92
+ <Form.Item style={{ display: 'none' }}>
93
+ {getFieldDecorator(`realEstateDataDto[${index}].$index`, {
94
+ initialValue: item.$index,
95
+ })(
96
+ <Input />
97
+ )}
98
+ </Form.Item>
99
+ <Form.Item label='不动产地址'>
100
+ {getFieldDecorator(`realEstateDataDto[${index}].realEstateAddress`, {
101
+ rules: readOnly ? [] : [{ required: true, message: '请选择不动产地址' }]
102
+ })(
103
+ readOnly
104
+ ? (<MyArrString />)
105
+ : (<Cascader
106
+ style={{ width: '100%' }}
107
+ options={props.realEstateAddressOptions}
108
+ fieldNames={props.realEstateAddressFieldNames}
109
+ placeholder="请选择省市区县"
110
+ />)
111
+ )}
112
+ </Form.Item>
113
+ </Col>
114
+ <Col span={6} >
115
+ <Form.Item label='详细地址' >
116
+ {getFieldDecorator(`realEstateDataDto[${index}].realEstateDetailedAddress`, {
117
+ rules: readOnly ? [] : [
118
+ { required: true, message: '请输入详细地址' },
119
+ { max: 120, message: '详细地址最多120个字符' },
120
+ {
121
+ validator: async (_, value, callback) => {
122
+ const pattern = /街|路|村|乡|镇|道|巷|号/;
123
+ if (pattern.test(value)) {
124
+ callback()
125
+ } else {
126
+ callback('地址必须包含“街”、“路”、“村”、“乡”、“镇”、“道”、“巷”、“号”等任意一个关键词')
127
+ }
128
+ }
129
+ }
130
+ ]
131
+ })(
132
+ readOnly
133
+ ? <MyDiv />
134
+ : <Input autoComplete='off' placeholder="请输入详细地址" />
135
+ )}
136
+ </Form.Item>
137
+ </Col>
138
+ {!isParkFeeItem &&
139
+ <Col span={6} >
140
+ <Form.Item label='租赁期起止' >
141
+ {getFieldDecorator(`realEstateDataDto[${index}].leaseTerm`, {
142
+ rules: readOnly ? [] : [{ required: true, message: '请输入租赁期' }]
143
+ })(
144
+ readOnly
145
+ ? <MyArrMoment />
146
+ : <RangePicker style={{ width: '100%' }} />
147
+ )}
148
+ </Form.Item>
149
+ </Col>}
150
+ {isParkFeeItem &&
151
+ <Col span={6} >
152
+ <Form.Item label='租赁期起止' >
153
+ {getFieldDecorator(`realEstateDataDto[${index}].leaseTerm`, {
154
+ rules: readOnly ? [] : [{ required: true, message: '请输入租赁期' }]
155
+ })(
156
+ readOnly
157
+ ? <MyArrMomentTime />
158
+ : <RangePicker style={{ width: '100%' }} showTime={{ format: 'HH:mm' }} format="YYYY-MM-DD HH:mm" />
159
+ )}
160
+ </Form.Item>
161
+ </Col>
162
+ }
163
+ <Col span={6} >
164
+ <Form.Item label='跨地(市)标志' >
165
+ {getFieldDecorator(`realEstateDataDto[${index}].crossCitiesSign`, {
166
+ rules: readOnly ? [] : [
167
+ { required: true, message: '请选择跨地(市)标志' }
168
+ ]
169
+ })(
170
+ readOnly
171
+ ? <MyNY />
172
+ : <Select placeholder='请选择' style={{ width: '100%' }} >
173
+ <Select.Option value='Y'>是</Select.Option>
174
+ <Select.Option value='N'>否</Select.Option>
175
+ </Select>
176
+ )}
177
+ </Form.Item>
178
+ </Col>
179
+ <Col span={6} >
180
+ <Form.Item label='产权证书/不动产权证号' >
181
+ {getFieldDecorator(`realEstateDataDto[${index}].realEstateNumber`, {
182
+ rules: readOnly ? [] : [
183
+ { required: true, message: '请输入证书编号,若没有证书填写“无”' },
184
+ { max: 40, message: '证书编号最多40个字符' },
185
+ ]
186
+ })(
187
+ readOnly
188
+ ? <MyDiv />
189
+ : <Input autoComplete='off' placeholder="请输入证书编号,若没有证书填写“无”" />
190
+ )}
191
+ </Form.Item>
192
+ </Col>
193
+ {!isParkFeeItem &&
194
+ <Col span={6} >
195
+ <Form.Item label='面积单位' >
196
+ {getFieldDecorator(`realEstateDataDto[${index}].realEstateUnit`, {
197
+ rules: readOnly ? [] : [{ required: true, message: '请选择面积单位' }]
198
+ })(
199
+ readOnly
200
+ ? <MyDiv />
201
+ : <Select placeholder='请选择' style={{ width: '100%' }} >
202
+ <Select.Option value="平方千米">平方千米</Select.Option>
203
+ <Select.Option value="平方米">平方米</Select.Option>
204
+ <Select.Option value="公顷">公顷</Select.Option>
205
+ <Select.Option value="亩">亩</Select.Option>
206
+ <Select.Option value="h㎡">h㎡</Select.Option>
207
+ <Select.Option value="k㎡">k㎡</Select.Option>
208
+ <Select.Option value="㎡">㎡</Select.Option>
209
+ </Select>
210
+ )}
211
+ </Form.Item>
212
+ </Col>
213
+ }
214
+ {isParkFeeItem &&
215
+ <Col span={6} >
216
+ <Form.Item label='面积单位' >
217
+ {getFieldDecorator(`realEstateDataDto[${index}].realEstateUnit`, {
218
+ rules: readOnly ? [] : [{ required: true, message: '请选择面积单位' }]
219
+ })(
220
+ readOnly
221
+ ? <MyDiv />
222
+ : <Select placeholder='请选择' style={{ width: '100%' }} >
223
+ <Select.Option value="平方米">平方米</Select.Option>
224
+ </Select>
225
+ )}
226
+ </Form.Item>
227
+ </Col>
228
+ }
229
+ {isParkFeeItem &&
230
+ <LicensePlateNumber form={form} index={index} cd={item.cd} readOnly={readOnly} />
231
+ // <Col span={6} >
232
+ // <Form.Item label='车牌号' >
233
+ // {getFieldDecorator(`realEstateDataDto[${index}].licensePlateNumber`, {
234
+ // rules: readOnly ? [] : [{ required: true, message: '请选择面积单位' }]
235
+ // })(
236
+ // readOnly
237
+ // ? <MyDiv />
238
+ // : <LicensePlateNumber form={form}/>
239
+ // )}
240
+ // </Form.Item>
241
+ // </Col>
242
+ }
243
+ </Row>
244
+ }
245
+ })
246
+ }
247
+ return (
248
+ <div className="kts-invoice-operate-real-estate-info-digtal">
249
+ <div className='real-estate-info-digtal-label' >特定信息-不动产经营租赁服务</div>
250
+ {getList()}
251
+
252
+ </div>
253
+ )
254
+ })
255
+
256
+ class MyDiv extends React.Component<{ value?: string, style?: React.CSSProperties }> {
257
+ render(): React.ReactNode {
258
+ return (
259
+ <div style={this.props.style}>{this.props.value}</div>
260
+ )
261
+ }
262
+ }
263
+
264
+ class MyArrString extends React.Component<{ value?: string[], style?: React.CSSProperties }> {
265
+ render(): React.ReactNode {
266
+ return (
267
+ <div style={this.props.style}>
268
+ {
269
+ this.props.value?.filter(e => !!e)
270
+ .join(',')
271
+ }
272
+ </div>
273
+ )
274
+ }
275
+ }
276
+
277
+ class MyArrMoment extends React.Component<{ value?: moment.Moment[], style?: React.CSSProperties }> {
278
+ render(): React.ReactNode {
279
+ const { value = [] } = this.props
280
+ return (
281
+ <div style={this.props.style}>
282
+ <span>{moment.isMoment(value[0]) && value[0].format('YYYY-MM-DD')}</span>
283
+ <span style={{ color: '#9F603D', fontWeight: 600 }} > - </span>
284
+ <span>{moment.isMoment(value[1]) && value[1].format('YYYY-MM-DD')}</span>
285
+ </div>
286
+ )
287
+ }
288
+ }
289
+ class MyArrMomentTime extends React.Component<{ value?: moment.Moment[], style?: React.CSSProperties }> {
290
+ render(): React.ReactNode {
291
+ const { value = [] } = this.props
292
+ return (
293
+ <div style={this.props.style}>
294
+ <span>{moment.isMoment(value[0]) && value[0].format('YYYY-MM-DD HH:mm')}</span>
295
+ <span style={{ color: '#9F603D', fontWeight: 600 }} > - </span>
296
+ <span>{moment.isMoment(value[1]) && value[1].format('YYYY-MM-DD HH:mm')}</span>
297
+ </div>
298
+ )
299
+ }
300
+ }
301
+ class MyNY extends React.Component<{ value?: 'Y' | 'N', style?: React.CSSProperties }> {
302
+ render(): React.ReactNode {
303
+ return (
304
+ <div style={this.props.style}>
305
+ {
306
+ this.props.value === 'Y' ? '是' : '否'
307
+ }
308
+ </div>
309
+ )
310
+ }
311
+ }
312
+ interface PriceInputProps {
313
+ // value?: string[];
314
+ // style?: React.CSSProperties
315
+ // onChange?: (value: string[]) => void;
316
+ form: any,
317
+ index: number
318
+ cd?: number
319
+ readOnly: boolean
320
+ }
321
+ const LicensePlateNumber: React.FC<PriceInputProps> = (props) => {
322
+
323
+ const { form, readOnly } = props;
324
+
325
+ const { getFieldDecorator } = form;
326
+ const licenceLimit = 3; // 最多支持填写3个车牌号
327
+ const formData: any[] = form.getFieldValue('realEstateDataDto');
328
+ const [value, setVal] = React.useState(new Array(props.cd || 1).fill(''));
329
+ const cd = React.useMemo(() => formData[props.index]?.cd, [formData[props.index]?.cd])
330
+ // useEffect(() => {
331
+ // if (cd) {
332
+ // const dd = value.concat(new Array(cd.length-1).fill(''))
333
+ // setVal(dd);
334
+ // }
335
+ // }, [cd])
336
+ const onAdd = () => {
337
+ if (value.length < licenceLimit) {
338
+ setVal([...value, '']);
339
+ }else{
340
+ message.warn('最多支持填写3个车牌号')
341
+ }
342
+ }
343
+ // 删除车牌号
344
+ const onDelete = () => {
345
+ if (value.length > 0) {
346
+ const dd = value.slice(0, -1)
347
+ setVal(dd);
348
+ }
349
+ }
350
+
351
+ return <>
352
+ {
353
+ value.length > 0 && value.map((item: string[], key: number) => {
354
+
355
+ return <Col span={6} ><Form.Item label='车牌号' key={key}>
356
+ {getFieldDecorator(`realEstateDataDto[${props.index}].cphList[${key}]`, {
357
+ rules: readOnly ? [] : [{ required: true, message: '请输入车牌号,最多20位' }]
358
+ })(
359
+ readOnly
360
+ ? <MyDiv /> :
361
+ <Input style={{ width: '100%' }} maxLength={20} autoComplete='off' placeholder="请输入车牌号" />
362
+ )}
363
+ </Form.Item>
364
+ </Col>
365
+ })
366
+
367
+
368
+ }
369
+ {/* <Col span={6} style={{ display: 'none' }}><Form.Item label='长度' >
370
+ {getFieldDecorator(`realEstateDataDto[${props.index}].cd`, {
371
+
372
+ })(
373
+ <Select />
374
+ )}
375
+ </Form.Item>
376
+ </Col> */}
377
+ {!readOnly &&
378
+ <Col span={6} >
379
+ <Form.Item >
380
+ <div style={{ color: 'white' }}>1</div>
381
+ <a style={{ marginRight: 10 }} onClick={onAdd}>添加车牌号</a>
382
+ {value.length > 1 && <a onClick={onDelete}>删除</a>}
383
+ </Form.Item>
384
+ </Col>
385
+ }
386
+ </>
387
+ }
388
+
389
+
390
+ // const LicensePlateNumber: React.FC<PriceInputProps> = (props) => {
391
+
392
+ // const { form } = props;
393
+
394
+ // const { getFieldDecorator } = form;
395
+ // const licenceLimit = 3; // 最多支持填写3个车牌号
396
+ // // const { value = [] } = this.props;
397
+ // const [value, setVal] = React.useState(props.value || ['']);
398
+ // // const newArr = value.filter(e => !!e);
399
+ // const newArrLength = value.length;
400
+ // console.log(value, newArrLength)
401
+ // // 新增车牌号
402
+ // const onAdd = () => {
403
+ // if (newArrLength < licenceLimit) {
404
+ // setVal([...value, '']);
405
+ // props.onChange?.([...value, ''])
406
+ // }
407
+ // }
408
+ // // 删除车牌号
409
+ // const onDelete = () => {
410
+ // if (newArrLength > 0) {
411
+ // const dd = value.slice(0, -1)
412
+ // setVal(dd);
413
+ // props.onChange?.(dd)
414
+ // }
415
+ // }
416
+ // const onInputChange = (e: React.ChangeEvent<HTMLInputElement>, index: number) => {
417
+ // console.log(e.target.value);
418
+ // const dd = value.map((item, i) => {
419
+ // if (i === index) {
420
+ // return e.target.value
421
+ // }
422
+ // return item
423
+ // })
424
+ // setVal(dd);
425
+ // props.onChange?.(dd)
426
+
427
+
428
+ // }
429
+ // return (
430
+
431
+ // <>
432
+ // {newArrLength > 0 && value.map((item, index) => {
433
+ // return
434
+ // <Form.Item label='车牌号' >
435
+ // {getFieldDecorator(`realEstateDataDto[${index}].licensePlateNumber`, {
436
+ // rules: [{ required: true, }]
437
+ // })(
438
+ // <Input onChange={(e) => { onInputChange(e, index) }} key={index} style={{ width: '100%' }} autoComplete='off' placeholder="请输入车牌号" />
439
+ // )}
440
+ // </Form.Item>
441
+ // // <Col span={6} >
442
+ // // <Input onChange={(e) => { onInputChange(e, index) }} key={index} style={{ width: '100%' }} autoComplete='off' placeholder="请输入车牌号" />
443
+ // // </Col>
444
+ // })}
445
+
446
+ // <Button type="link" onClick={onAdd}>添加车牌号</Button>
447
+ // {newArrLength > 1 && <Button type="link" onClick={onDelete}>删除</Button>}
448
+ // </>
449
+
450
+ // )
451
+ // }