kts-component-invoice-operate 3.2.145 → 3.2.147

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/.dumi/theme/builtins/API.tsx +66 -66
  2. package/.editorconfig +16 -16
  3. package/.fatherrc.ts +4 -4
  4. package/.prettierignore +7 -7
  5. package/.prettierrc +11 -11
  6. package/.umirc.ts +8 -8
  7. package/README.md +9 -9
  8. package/dist/index.esm.js +715 -605
  9. package/dist/index.js +715 -605
  10. package/docs/index.md +5 -5
  11. package/docs-dist/static/I001.a774b052.svg +1 -0
  12. package/docs-dist/static/{arrowDown.a1cbf0d8.svg → arrowDown.22c7885c.svg} +2 -2
  13. package/docs-dist/static/{arrowUp.4c482054.svg → arrowUp.d707a3e4.svg} +2 -2
  14. package/docs-dist/static/{fork.5431267d.svg → fork.43eb4ffa.svg} +11 -11
  15. package/docs-dist/static/{plus.4fd1af30.svg → plus.0e60e9ea.svg} +11 -11
  16. package/docs-dist/static/{plus.44013ce3.svg → plus.384f41d9.svg} +11 -11
  17. package/docs-dist/umi.css +2 -3
  18. package/docs-dist/umi.js +1 -1
  19. package/index.html +12 -12
  20. package/package.json +61 -61
  21. package/src/Invoice/Invoice-digtal/_test/disabled/index.tsx +40 -39
  22. package/src/Invoice/Invoice-digtal/_test/easiest/index.tsx +16 -16
  23. package/src/Invoice/Invoice-digtal/_test/header/index.tsx +84 -84
  24. package/src/Invoice/Invoice-digtal/_test/importGoods/index.tsx +868 -868
  25. package/src/Invoice/Invoice-digtal/_test/importStakeholder/index.tsx +18 -18
  26. package/src/Invoice/Invoice-digtal/_test/lineCredit/index.tsx +19 -19
  27. package/src/Invoice/Invoice-digtal/_test/prefab/index.tsx +150 -150
  28. package/src/Invoice/Invoice-digtal/_test/readOnly/index.tsx +55 -42
  29. package/src/Invoice/Invoice-digtal/_test/realEstateInfo/index.tsx +11 -11
  30. package/src/Invoice/Invoice-digtal/_test/stakeholder/index.tsx +12 -12
  31. package/src/Invoice/Invoice-digtal/_test/typeSelection/index.tsx +29 -29
  32. package/src/Invoice/Invoice-digtal/index.md +34 -34
  33. package/src/Invoice/InvoiceController/InvoiceControllerForm/index.ts +95 -95
  34. package/src/Invoice/InvoiceController/InvoiceControllerState/AutoComplete/index.ts +20 -20
  35. package/src/Invoice/InvoiceController/InvoiceControllerState/BuyerState/index.tsx +88 -88
  36. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/Drag/index.ts +15 -15
  37. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/EndowCode/index.tsx +104 -104
  38. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IColumnsReplenish/index.ts +10 -10
  39. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IGood/index.ts +78 -78
  40. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ImportGoods/index.ts +81 -81
  41. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/LineAttributeType/index.ts +7 -7
  42. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ProductComparison/index.ts +9 -9
  43. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/index.ts +117 -117
  44. package/src/Invoice/InvoiceController/InvoiceControllerState/Stakeholder/index.ts +13 -13
  45. package/src/Invoice/InvoiceController/InvoiceControllerState/index.ts +65 -65
  46. package/src/Invoice/InvoiceController/fns/addGood.ts +11 -11
  47. package/src/Invoice/InvoiceController/fns/addGoodDiscount.ts +126 -126
  48. package/src/Invoice/InvoiceController/fns/addGoodDiscountV2.ts +86 -86
  49. package/src/Invoice/InvoiceController/fns/delGood.ts +41 -41
  50. package/src/Invoice/InvoiceController/fns/getGoodsSearch.ts +26 -26
  51. package/src/Invoice/InvoiceController/fns/importGoodsDrawer.ts +79 -79
  52. package/src/Invoice/InvoiceController/fns/itemBlur.ts +40 -40
  53. package/src/Invoice/InvoiceController/fns/mergeDetails.ts +201 -201
  54. package/src/Invoice/InvoiceController/fns/mergeDiscount.ts +35 -35
  55. package/src/Invoice/InvoiceController/fns/saveEditGood.ts +24 -24
  56. package/src/Invoice/InvoiceController/fns/setEditGood.ts +16 -16
  57. package/src/Invoice/InvoiceController/fns/setGoods.ts +10 -10
  58. package/src/Invoice/InvoiceController/fns/updateInvoiceNo.ts +8 -8
  59. package/src/Invoice/InvoiceController/index.ts +81 -81
  60. package/src/Invoice/_test/buyerNameSearch/index.tsx +42 -42
  61. package/src/Invoice/_test/deduction/index.tsx +935 -935
  62. package/src/Invoice/_test/draft/index.tsx +40 -40
  63. package/src/Invoice/_test/easiest/index.tsx +5 -5
  64. package/src/Invoice/_test/endowCode/index.tsx +1158 -1158
  65. package/src/Invoice/_test/goodsMenuExpand/index.tsx +32 -32
  66. package/src/Invoice/_test/importBuyer/index.tsx +74 -74
  67. package/src/Invoice/_test/importGoods/index.tsx +1197 -1197
  68. package/src/Invoice/_test/invoiceType/index.tsx +59 -59
  69. package/src/Invoice/_test/isInvoiceNo/index.tsx +12 -12
  70. package/src/Invoice/_test/replaceHead/index.tsx +22 -22
  71. package/src/Invoice/_test/retrieveData/index.tsx +22 -22
  72. package/src/Invoice/_test/seller/index.tsx +28 -28
  73. package/src/Invoice/_test/setDataSource/index.tsx +73 -73
  74. package/src/Invoice/_test/unit/index.tsx +19 -19
  75. package/src/Invoice/index.less +29 -29
  76. package/src/Invoice/index.md +53 -53
  77. package/src/Invoice/index.tsx +179 -179
  78. package/src/Invoice/tools/calculate/index.ts +132 -132
  79. package/src/Invoice/tools/coolingFn/index.ts +17 -17
  80. package/src/Invoice/tools/evaluate/index.ts +7 -7
  81. package/src/Invoice/tools/idGenerator/index.ts +2 -2
  82. package/src/Invoice/tools/itemName/index.ts +55 -55
  83. package/src/Invoice/tools/lazyFn/index.ts +19 -19
  84. package/src/Invoice/tools/mounting/index.ts +13 -13
  85. package/src/Invoice/tools/strringFn/index.ts +40 -40
  86. package/src/Invoice/tools/useToGenerateId/index.ts +8 -8
  87. package/src/Invoice/tools/utils/index.ts +1 -1
  88. package/src/Invoice/tools/utils/money/index.ts +20 -20
  89. package/src/Invoice/ui/default/AddComparisonDrawer/index.tsx +149 -149
  90. package/src/Invoice/ui/default/Buyer/index.less +219 -219
  91. package/src/Invoice/ui/default/Buyer/index.tsx +114 -114
  92. package/src/Invoice/ui/default/Buyer/ui/BuyerNameInput/index.tsx +166 -166
  93. package/src/Invoice/ui/default/Buyer/ui/ImportBuyerButton/index.tsx +21 -21
  94. package/src/Invoice/ui/default/EndowCodeDrawer/index.less +8 -8
  95. package/src/Invoice/ui/default/EndowCodeDrawer/index.tsx +550 -550
  96. package/src/Invoice/ui/default/GoodsList/hook/useColumns/autoFillFn/index.ts +632 -632
  97. package/src/Invoice/ui/default/GoodsList/hook/useColumns/index.tsx +691 -691
  98. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/Drag/index.less +20 -20
  99. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/Drag/index.tsx +205 -205
  100. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemCodeInput/index.less +18 -18
  101. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemCodeInput/index.tsx +47 -47
  102. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +17 -17
  103. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +88 -88
  104. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
  105. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
  106. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +118 -118
  107. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -41
  108. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +25 -25
  109. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -13
  110. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +98 -98
  111. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
  112. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  113. package/src/Invoice/ui/default/GoodsList/hook/useDeduction/index.tsx +24 -24
  114. package/src/Invoice/ui/default/GoodsList/hook/useOnRow/index.tsx +39 -39
  115. package/src/Invoice/ui/default/GoodsList/hook/useRowSelection/index.tsx +114 -114
  116. package/src/Invoice/ui/default/GoodsList/hook/useWindowClick/index.tsx +23 -23
  117. package/src/Invoice/ui/default/GoodsList/index.less +179 -179
  118. package/src/Invoice/ui/default/GoodsList/index.tsx +205 -205
  119. package/src/Invoice/ui/default/GoodsList/ui/AddRowButton/index.tsx +65 -65
  120. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.less +21 -21
  121. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +244 -244
  122. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
  123. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +69 -69
  124. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +65 -65
  125. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useMergeDetails/index.tsx +91 -91
  126. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useMergeDiscount/index.tsx +36 -36
  127. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useSalesDiscount/index.tsx +109 -109
  128. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useSalesGifts/index.tsx +94 -94
  129. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/index.tsx +37 -37
  130. package/src/Invoice/ui/default/GoodsList/ui/DescribeSwitch/index.tsx +36 -36
  131. package/src/Invoice/ui/default/GoodsList/ui/Search/index.less +10 -10
  132. package/src/Invoice/ui/default/GoodsList/ui/Search/index.tsx +52 -52
  133. package/src/Invoice/ui/default/GoodsList/ui/Statistics/index.less +18 -18
  134. package/src/Invoice/ui/default/GoodsList/ui/Statistics/index.tsx +114 -114
  135. package/src/Invoice/ui/default/GoodsList/ui/TableRow/index.less +28 -28
  136. package/src/Invoice/ui/default/GoodsList/ui/TableRow/index.tsx +57 -57
  137. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual/index.less +38 -38
  138. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual/index.tsx +108 -108
  139. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual.o/index.less +44 -44
  140. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual.o/index.tsx +96 -96
  141. package/src/Invoice/ui/default/GoodsList/ui/TaxIncludedSwitch/index.tsx +31 -31
  142. package/src/Invoice/ui/default/ImportBuyerDrawer/index.tsx +75 -75
  143. package/src/Invoice/ui/default/ImportGoodsDrawer/index.tsx +198 -198
  144. package/src/Invoice/ui/default/InvoiceHeader/index.less +68 -68
  145. package/src/Invoice/ui/default/InvoiceHeader/index.tsx +246 -246
  146. package/src/Invoice/ui/default/Seller/index.less +113 -113
  147. package/src/Invoice/ui/default/Seller/index.tsx +98 -98
  148. package/src/Invoice/ui/default/Sign/index.less +14 -14
  149. package/src/Invoice/ui/default/Sign/index.tsx +71 -71
  150. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/autoFillFn/index.ts +624 -624
  151. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/index.tsx +654 -654
  152. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/svg/plus.svg +11 -11
  153. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/Drag/index.less +20 -20
  154. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/Drag/index.tsx +205 -205
  155. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +9 -9
  156. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +84 -84
  157. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
  158. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
  159. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +76 -76
  160. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -41
  161. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +34 -34
  162. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -13
  163. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +98 -98
  164. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
  165. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  166. package/src/Invoice/ui/digtal/GoodsList/hook/useOnRow/index.tsx +39 -39
  167. package/src/Invoice/ui/digtal/GoodsList/hook/useRowSelection/index.tsx +121 -121
  168. package/src/Invoice/ui/digtal/GoodsList/hook/useWindowClick/index.tsx +23 -23
  169. package/src/Invoice/ui/digtal/GoodsList/index.less +56 -56
  170. package/src/Invoice/ui/digtal/GoodsList/index.tsx +180 -180
  171. package/src/Invoice/ui/digtal/GoodsList/ui/AddRowButton/index.tsx +67 -65
  172. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +340 -340
  173. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/svg/add.svg +11 -11
  174. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
  175. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +50 -50
  176. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEmptyRefill/index.tsx +37 -37
  177. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +82 -82
  178. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useReselectInvoiceType/index.tsx +57 -57
  179. package/src/Invoice/ui/digtal/GoodsList/ui/DescribeSwitch/index.tsx +36 -36
  180. package/src/Invoice/ui/digtal/GoodsList/ui/Search/index.less +11 -11
  181. package/src/Invoice/ui/digtal/GoodsList/ui/Search/index.tsx +50 -50
  182. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/index.less +53 -53
  183. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/index.tsx +98 -98
  184. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/svg/fork.svg +11 -11
  185. package/src/Invoice/ui/digtal/GoodsList/ui/TableRow/index.less +28 -28
  186. package/src/Invoice/ui/digtal/GoodsList/ui/TableRow/index.tsx +53 -53
  187. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.less +38 -38
  188. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.tsx +108 -108
  189. package/src/Invoice/ui/digtal/GoodsList/ui/TaxIncludedSwitch/index.tsx +31 -31
  190. package/src/Invoice/ui/digtal/InvoiceHeader/index.less +57 -57
  191. package/src/Invoice/ui/digtal/InvoiceHeader/index.tsx +77 -77
  192. package/src/Invoice/ui/digtal/RealEstateInfo/index.less +14 -14
  193. package/src/Invoice/ui/digtal/RealEstateInfo/index.tsx +210 -137
  194. package/src/Invoice/ui/digtal/Sign/index.less +48 -48
  195. package/src/Invoice/ui/digtal/Sign/index.tsx +99 -99
  196. package/src/Invoice/ui/digtal/Stakeholder/index.less +99 -99
  197. package/src/Invoice/ui/digtal/Stakeholder/index.tsx +393 -393
  198. package/src/Invoice/ui/digtal/Stakeholder/svg/arrowDown.svg +2 -2
  199. package/src/Invoice/ui/digtal/Stakeholder/svg/arrowUp.svg +2 -2
  200. package/src/Invoice/ui/digtal/Stakeholder/svg/plus.svg +11 -11
  201. package/src/InvoiceTypeModal/_test/easiest/index.tsx +31 -31
  202. package/src/InvoiceTypeModal/index.less +7 -7
  203. package/src/InvoiceTypeModal/index.md +5 -5
  204. package/src/InvoiceTypeModal/index.tsx +153 -153
  205. package/src/TaxClassificationCodeModal/_test/easiest/index.tsx +177 -177
  206. package/src/TaxClassificationCodeModal/index.md +6 -6
  207. package/src/TaxClassificationCodeModal/index.tsx +74 -74
  208. package/src/index.ts +12 -12
  209. package/tsconfig.json +31 -31
  210. package/typings.d.ts +3 -3
  211. package/yarn.e.lock +14331 -14331
@@ -1,77 +1,77 @@
1
-
2
- import React from "react";
3
- import { Form } from 'kts-components-antd-x3';
4
- import { FormComponentProps } from 'kts-components-antd-x3/lib/form';
5
- import { decorator } from "grey-react-box";
6
- import Invoice from "../../../../Invoice";
7
- import './index.less'
8
-
9
-
10
- export interface IInvoiceHeader {
11
- /** 标题 */
12
- title?: string;
13
-
14
- /** 标记文字 */
15
- defaultTag?: string;
16
-
17
- /** 默认 发票号码 */
18
- defaultNo?: string;
19
-
20
- /** 默认 开票日期 */
21
- defaultInvoicingDate?: string;
22
- }
23
-
24
- export default decorator<IInvoiceHeader, IInvoiceHeader & FormComponentProps>(Form.create())(props => {
25
-
26
- const { form } = props;
27
-
28
- /** 控制器 */
29
- const controller = Invoice.useInvoiceController();
30
-
31
- const title = React.useMemo(() => {
32
- if (props.title) {
33
- return props.title
34
- }
35
- return '电子发票(增值税专用发票)'
36
- }, [props.title])
37
-
38
- controller.useForm('invoiceHeader', form);
39
-
40
- return (
41
- <div className="kts-invoice-operate-invoice-digtal-header" >
42
- <div className="digtal-header-title" >{title}</div>
43
- {form.getFieldDecorator('tag', { initialValue: props.defaultTag })(<Tag />)}
44
- <div className="digtal-header-fields" >
45
- {form.getFieldDecorator('no', { initialValue: props.defaultNo })(<Field title="发票号码:" />)}
46
- {form.getFieldDecorator('invoicingDate', { initialValue: props.defaultInvoicingDate })(<Field title="开票日期:" />)}
47
- </div>
48
- </div>
49
- )
50
- })
51
-
52
- /** 字段 */
53
- class Field extends React.Component<{ title: string, value?: string }>{
54
- render(): React.ReactNode {
55
- const { title, value } = this.props;
56
- if (value) {
57
- return (
58
- <div className="digtal-header-field" >
59
- <div className="digtal-header-field-title" >{title}</div>
60
- <div className="digtal-header-field-value" >{value}</div>
61
- </div>
62
- )
63
- } else {
64
- return <></>
65
- }
66
- }
67
- }
68
-
69
- class Tag extends React.Component<{ value?: string }>{
70
- render(): React.ReactNode {
71
- return (
72
- this.props.value
73
- ? <div className="digtal-header-tag" >{this.props.value}</div>
74
- : <></>
75
- )
76
- }
77
- }
1
+
2
+ import React from "react";
3
+ import { Form } from 'kts-components-antd-x3';
4
+ import { FormComponentProps } from 'kts-components-antd-x3/lib/form';
5
+ import { decorator } from "grey-react-box";
6
+ import Invoice from "../../../../Invoice";
7
+ import './index.less'
8
+
9
+
10
+ export interface IInvoiceHeader {
11
+ /** 标题 */
12
+ title?: string;
13
+
14
+ /** 标记文字 */
15
+ defaultTag?: string;
16
+
17
+ /** 默认 发票号码 */
18
+ defaultNo?: string;
19
+
20
+ /** 默认 开票日期 */
21
+ defaultInvoicingDate?: string;
22
+ }
23
+
24
+ export default decorator<IInvoiceHeader, IInvoiceHeader & FormComponentProps>(Form.create())(props => {
25
+
26
+ const { form } = props;
27
+
28
+ /** 控制器 */
29
+ const controller = Invoice.useInvoiceController();
30
+
31
+ const title = React.useMemo(() => {
32
+ if (props.title) {
33
+ return props.title
34
+ }
35
+ return '电子发票(增值税专用发票)'
36
+ }, [props.title])
37
+
38
+ controller.useForm('invoiceHeader', form);
39
+
40
+ return (
41
+ <div className="kts-invoice-operate-invoice-digtal-header" >
42
+ <div className="digtal-header-title" >{title}</div>
43
+ {form.getFieldDecorator('tag', { initialValue: props.defaultTag })(<Tag />)}
44
+ <div className="digtal-header-fields" >
45
+ {form.getFieldDecorator('no', { initialValue: props.defaultNo })(<Field title="发票号码:" />)}
46
+ {form.getFieldDecorator('invoicingDate', { initialValue: props.defaultInvoicingDate })(<Field title="开票日期:" />)}
47
+ </div>
48
+ </div>
49
+ )
50
+ })
51
+
52
+ /** 字段 */
53
+ class Field extends React.Component<{ title: string, value?: string }>{
54
+ render(): React.ReactNode {
55
+ const { title, value } = this.props;
56
+ if (value) {
57
+ return (
58
+ <div className="digtal-header-field" >
59
+ <div className="digtal-header-field-title" >{title}</div>
60
+ <div className="digtal-header-field-value" >{value}</div>
61
+ </div>
62
+ )
63
+ } else {
64
+ return <></>
65
+ }
66
+ }
67
+ }
68
+
69
+ class Tag extends React.Component<{ value?: string }>{
70
+ render(): React.ReactNode {
71
+ return (
72
+ this.props.value
73
+ ? <div className="digtal-header-tag" >{this.props.value}</div>
74
+ : <></>
75
+ )
76
+ }
77
+ }
@@ -1,15 +1,15 @@
1
- .kts-invoice-operate-real-estate-info-digtal {
2
- padding : 20px;
3
- border-bottom: 2px solid #9F613E;
4
- border-left : 2px solid #9F613E;
5
- border-right : 2px solid #9F613E;
6
-
7
- .real-estate-info-digtal-label {
8
- color : #9F613E;
9
- font-weight: bold;
10
- }
11
-
12
- .ktsAnt3x-row.ktsAnt3x-form-item {
13
- margin-bottom: 0;
14
- }
1
+ .kts-invoice-operate-real-estate-info-digtal {
2
+ padding : 20px;
3
+ border-bottom: 2px solid #9F613E;
4
+ border-left : 2px solid #9F613E;
5
+ border-right : 2px solid #9F613E;
6
+
7
+ .real-estate-info-digtal-label {
8
+ color : #9F613E;
9
+ font-weight: bold;
10
+ }
11
+
12
+ .ktsAnt3x-row.ktsAnt3x-form-item {
13
+ margin-bottom: 0;
14
+ }
15
15
  }
@@ -1,137 +1,210 @@
1
-
2
- import React from "react";
3
- import { decorator } from 'grey-react-box';
4
- import { Form } 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 { Cascader, Col, DatePicker, Input, Row, Select } from "kts-components-antd-x4";
9
-
10
- const { RangePicker } = DatePicker;
11
-
12
- export interface RealEstateInfoProps {
13
- /**
14
- * 不动产地址数据
15
- */
16
- realEstateAddressOptions?: any[];
17
-
18
- /**
19
- * 不动产地址数据字段名
20
- */
21
- realEstateAddressFieldNames?: any;
22
- }
23
-
24
- /** 特殊信息-不动产经营租赁服务 */
25
- export default decorator<RealEstateInfoProps, FormComponentProps & RealEstateInfoProps>(Form.create())(props => {
26
-
27
- /** 控制器 */
28
- const controller = Invoice.useInvoiceController();
29
-
30
- const { form } = props;
31
-
32
- const { getFieldDecorator } = form;
33
-
34
- // 注册 form
35
- controller.useForm('realEstateInfo', form);
36
-
37
- return (
38
- <div className="kts-invoice-operate-real-estate-info-digtal">
39
- <div className='real-estate-info-digtal-label' >特殊信息-不动产经营租赁服务</div>
40
- <Row gutter={[17, 0]}>
41
- <Col span={6} >
42
- <Form.Item label='不动产地址' >
43
- {getFieldDecorator('realEstateAddress', {
44
- rules: [{ required: true, message: '请选择不动产地址' }]
45
- })(
46
- <Cascader
47
- style={{ width: '100%' }}
48
- options={props.realEstateAddressOptions}
49
- fieldNames={props.realEstateAddressFieldNames}
50
- placeholder="请选择省市区县"
51
- />
52
- )}
53
- </Form.Item>
54
- </Col>
55
- <Col span={6} >
56
- <Form.Item label='详细地址' >
57
- {getFieldDecorator('realEstateDetailedAddress', {
58
- rules: [
59
- { required: true, message: '请输入详细地址' },
60
- { max: 120, message: '详细地址最多120个字符' },
61
- {
62
- validator: (_, value) => {
63
- const pattern = /街|路|村|乡|镇|道|巷|号/;
64
- return pattern.test(value) ? Promise.resolve() : Promise.reject('地址必须包含“街”、“路”、“村”、“乡”、“镇”、“道”、“巷”、“号”等任意一个关键词');
65
- }
66
- }
67
- ]
68
- })(<Input autoComplete='off' placeholder="请输入详细地址" />)}
69
- </Form.Item>
70
- </Col>
71
- <Col span={6} >
72
- <Form.Item label='租赁期起止' >
73
- {getFieldDecorator('leaseTerm', {
74
- rules: [{ required: true, message: '请输入租赁期' }]
75
- })(<RangePicker style={{ width: '100%' }} />)}
76
- </Form.Item>
77
- </Col>
78
- <Col span={6} >
79
- <Form.Item label='跨地(市)标志' >
80
- {getFieldDecorator('crossCitiesSign', {
81
- rules: [
82
- { required: true, message: '请选择跨地(市)标志' }
83
- ]
84
- })(
85
- <Select placeholder='请选择' style={{ width: '100%' }} >
86
- <Select.Option value='Y'>是</Select.Option>
87
- <Select.Option value='N'>否</Select.Option>
88
- </Select>
89
- )}
90
- </Form.Item>
91
- </Col>
92
- <Col span={6} >
93
- <Form.Item label='产权证书/不动产权证号' >
94
- {getFieldDecorator('realEstateNumber', {
95
- rules: [
96
- { required: true, message: '请输入证书编号,若没有证书填写“无”' },
97
- { max: 40, message: '证书编号最多40个字符' },
98
- ]
99
- })(<Input autoComplete='off' placeholder="请输入证书编号,若没有证书填写“无”" />)}
100
- </Form.Item>
101
- </Col>
102
- <Col span={6} >
103
- <Form.Item label='面积单位' >
104
- {getFieldDecorator('realEstateUnit', {
105
- rules: [{ required: true, message: '请选择面积单位' }]
106
- })(
107
- <Select placeholder='请选择' style={{ width: '100%' }} >
108
- <Select.Option value="平方千米">平方千米</Select.Option>
109
- <Select.Option value="平方米">平方米</Select.Option>
110
- <Select.Option value="公顷">公顷</Select.Option>
111
- <Select.Option value="亩">亩</Select.Option>
112
- <Select.Option value="Hm2">
113
- <span>
114
- <span>Hm</span>
115
- <span style={{ verticalAlign: 'super', fontSize: 'smaller' }} >2</span>
116
- </span>
117
- </Select.Option>
118
- <Select.Option value="Km2">
119
- <span>
120
- <span>Km</span>
121
- <span style={{ verticalAlign: 'super', fontSize: 'smaller' }} >2</span>
122
- </span>
123
- </Select.Option>
124
- <Select.Option value="m2">
125
- <span>
126
- <span>m</span>
127
- <span style={{ verticalAlign: 'super', fontSize: 'smaller' }} >2</span>
128
- </span>
129
- </Select.Option>
130
- </Select>
131
- )}
132
- </Form.Item>
133
- </Col>
134
- </Row>
135
- </div>
136
- )
137
- })
1
+
2
+ import React from "react";
3
+ import { decorator } from 'grey-react-box';
4
+ import { Form } 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 { 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
+ // 注册 form
40
+ controller.useForm('realEstateInfo', form);
41
+
42
+ return (
43
+ <div className="kts-invoice-operate-real-estate-info-digtal">
44
+ <div className='real-estate-info-digtal-label' >特殊信息-不动产经营租赁服务</div>
45
+ <Row gutter={[17, 0]}>
46
+ <Col span={6} >
47
+ <Form.Item label='不动产地址' >
48
+ {getFieldDecorator('realEstateAddress', {
49
+ rules: readOnly ? [] : [{ required: true, message: '请选择不动产地址' }]
50
+ })(
51
+ readOnly
52
+ ? (<MyArrString />)
53
+ : (
54
+ <Cascader
55
+ style={{ width: '100%' }}
56
+ options={props.realEstateAddressOptions}
57
+ fieldNames={props.realEstateAddressFieldNames}
58
+ placeholder="请选择省市区县"
59
+ />
60
+ )
61
+ )}
62
+ </Form.Item>
63
+ </Col>
64
+ <Col span={6} >
65
+ <Form.Item label='详细地址' >
66
+ {getFieldDecorator('realEstateDetailedAddress', {
67
+ rules: readOnly ? [] : [
68
+ { required: true, message: '请输入详细地址' },
69
+ { max: 120, message: '详细地址最多120个字符' },
70
+ {
71
+ validator: (_, value) => {
72
+ const pattern = /街|路|村|乡|镇|道|巷|号/;
73
+ return pattern.test(value) ? Promise.resolve() : Promise.reject('地址必须包含“街”、“路”、“村”、“乡”、“镇”、“道”、“巷”、“号”等任意一个关键词');
74
+ }
75
+ }
76
+ ]
77
+ })(
78
+ readOnly
79
+ ? <MyDiv />
80
+ : <Input autoComplete='off' placeholder="请输入详细地址" />
81
+ )}
82
+ </Form.Item>
83
+ </Col>
84
+ <Col span={6} >
85
+ <Form.Item label='租赁期起止' >
86
+ {getFieldDecorator('leaseTerm', {
87
+ rules: readOnly ? [] : [{ required: true, message: '请输入租赁期' }]
88
+ })(
89
+ readOnly
90
+ ? <MyArrMoment />
91
+ : <RangePicker style={{ width: '100%' }} />
92
+ )}
93
+ </Form.Item>
94
+ </Col>
95
+ <Col span={6} >
96
+ <Form.Item label='跨地(市)标志' >
97
+ {getFieldDecorator('crossCitiesSign', {
98
+ rules: readOnly ? [] : [
99
+ { required: true, message: '请选择跨地(市)标志' }
100
+ ]
101
+ })(
102
+ readOnly
103
+ ? <MyNY />
104
+ : <Select placeholder='请选择' style={{ width: '100%' }} >
105
+ <Select.Option value='Y'>是</Select.Option>
106
+ <Select.Option value='N'>否</Select.Option>
107
+ </Select>
108
+ )}
109
+ </Form.Item>
110
+ </Col>
111
+ <Col span={6} >
112
+ <Form.Item label='产权证书/不动产权证号' >
113
+ {getFieldDecorator('realEstateNumber', {
114
+ rules: readOnly ? [] : [
115
+ { required: true, message: '请输入证书编号,若没有证书填写“无”' },
116
+ { max: 40, message: '证书编号最多40个字符' },
117
+ ]
118
+ })(
119
+ readOnly
120
+ ? <MyDiv />
121
+ : <Input autoComplete='off' placeholder="请输入证书编号,若没有证书填写“无”" />
122
+ )}
123
+ </Form.Item>
124
+ </Col>
125
+ <Col span={6} >
126
+ <Form.Item label='面积单位' >
127
+ {getFieldDecorator('realEstateUnit', {
128
+ rules: readOnly ? [] : [{ required: true, message: '请选择面积单位' }]
129
+ })(
130
+ readOnly
131
+ ? <MyDiv />
132
+ : <Select placeholder='请选择' style={{ width: '100%' }} >
133
+ <Select.Option value="平方千米">平方千米</Select.Option>
134
+ <Select.Option value="平方米">平方米</Select.Option>
135
+ <Select.Option value="公顷">公顷</Select.Option>
136
+ <Select.Option value="亩">亩</Select.Option>
137
+ <Select.Option value="Hm2">
138
+ <span>
139
+ <span>Hm</span>
140
+ <span style={{ verticalAlign: 'super', fontSize: 'smaller' }} >2</span>
141
+ </span>
142
+ </Select.Option>
143
+ <Select.Option value="Km2">
144
+ <span>
145
+ <span>Km</span>
146
+ <span style={{ verticalAlign: 'super', fontSize: 'smaller' }} >2</span>
147
+ </span>
148
+ </Select.Option>
149
+ <Select.Option value="m2">
150
+ <span>
151
+ <span>m</span>
152
+ <span style={{ verticalAlign: 'super', fontSize: 'smaller' }} >2</span>
153
+ </span>
154
+ </Select.Option>
155
+ </Select>
156
+ )}
157
+ </Form.Item>
158
+ </Col>
159
+ </Row>
160
+ </div>
161
+ )
162
+ })
163
+
164
+ class MyDiv extends React.Component<{ value?: string, style?: React.CSSProperties }> {
165
+ render(): React.ReactNode {
166
+ return (
167
+ <div style={this.props.style}>{this.props.value}</div>
168
+ )
169
+ }
170
+ }
171
+
172
+ class MyArrString extends React.Component<{ value?: string[], style?: React.CSSProperties }> {
173
+ render(): React.ReactNode {
174
+ return (
175
+ <div style={this.props.style}>
176
+ {
177
+ this.props.value?.filter(e => !!e)
178
+ .join(',')
179
+ }
180
+ </div>
181
+ )
182
+ }
183
+ }
184
+
185
+ class MyArrMoment extends React.Component<{ value?: moment.Moment[], style?: React.CSSProperties }> {
186
+ render(): React.ReactNode {
187
+ return (
188
+ <div style={this.props.style}>
189
+ {
190
+ this.props.value?.map(e => moment.isMoment(e) && e.format('YYYY-MM-DD'))
191
+ .filter(e => !!e)
192
+ .join(' - ')
193
+ }
194
+ </div>
195
+ )
196
+ }
197
+ }
198
+
199
+ class MyNY extends React.Component<{ value?: 'Y' | 'N', style?: React.CSSProperties }> {
200
+ render(): React.ReactNode {
201
+ return (
202
+ <div style={this.props.style}>
203
+ {
204
+ this.props.value === 'Y' ? '是' : '否'
205
+ }
206
+ </div>
207
+ )
208
+ }
209
+ }
210
+
@@ -1,49 +1,49 @@
1
- .kts-invoice-operate-sign-digtal {
2
- padding : 20px 20px 0;
3
- border-bottom: 2px solid #9F613E;
4
- border-left : 2px solid #9F613E;
5
- border-right : 2px solid #9F613E;
6
-
7
- .sign-digtal-label {
8
- color : #9F613E;
9
- font-weight: bold;
10
- }
11
- }
12
-
13
- .kts-invoice-operate-sign-digtal-readOnly {
14
- .sign-digtal-readOnly-cont {
15
- border-bottom: 2px solid #9F613E;
16
- border-left : 2px solid #9F613E;
17
- border-right : 2px solid #9F613E;
18
- display : flex;
19
-
20
- &>div:nth-child(even) {
21
- flex : 1;
22
- display : flex;
23
- flex-direction: column;
24
- padding : 10px;
25
- min-height : 189px;
26
- }
27
-
28
- &>div:nth-child(odd) {
29
- flex : none;
30
- text-align : center;
31
- color : #9F613E;
32
- display : flex;
33
- flex-direction : column;
34
- justify-content: center;
35
- justify-items : center;
36
- padding : 0 4px;
37
- border-right : 2px solid #9F613E;
38
- }
39
- }
40
-
41
- .digtal-readOnly-form {
42
- padding-left: 30px;
43
-
44
- .ktsAnt3x-form-item-label label {
45
- color : #9F613E;
46
- font-weight: bold;
47
- }
48
- }
1
+ .kts-invoice-operate-sign-digtal {
2
+ padding : 20px 20px 0;
3
+ border-bottom: 2px solid #9F613E;
4
+ border-left : 2px solid #9F613E;
5
+ border-right : 2px solid #9F613E;
6
+
7
+ .sign-digtal-label {
8
+ color : #9F613E;
9
+ font-weight: bold;
10
+ }
11
+ }
12
+
13
+ .kts-invoice-operate-sign-digtal-readOnly {
14
+ .sign-digtal-readOnly-cont {
15
+ border-bottom: 2px solid #9F613E;
16
+ border-left : 2px solid #9F613E;
17
+ border-right : 2px solid #9F613E;
18
+ display : flex;
19
+
20
+ &>div:nth-child(even) {
21
+ flex : 1;
22
+ display : flex;
23
+ flex-direction: column;
24
+ padding : 10px;
25
+ min-height : 189px;
26
+ }
27
+
28
+ &>div:nth-child(odd) {
29
+ flex : none;
30
+ text-align : center;
31
+ color : #9F613E;
32
+ display : flex;
33
+ flex-direction : column;
34
+ justify-content: center;
35
+ justify-items : center;
36
+ padding : 0 4px;
37
+ border-right : 2px solid #9F613E;
38
+ }
39
+ }
40
+
41
+ .digtal-readOnly-form {
42
+ padding-left: 30px;
43
+
44
+ .ktsAnt3x-form-item-label label {
45
+ color : #9F613E;
46
+ font-weight: bold;
47
+ }
48
+ }
49
49
  }