kts-component-invoice-operate 3.2.221 → 3.2.223
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.
- package/dist/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IGood/index.d.ts +1 -0
- package/dist/index.esm.js +334 -37
- package/dist/index.js +334 -37
- package/package.json +1 -1
- package/src/Invoice/Invoice-digtal/_test/realEstateInfo/index.tsx +47 -0
- package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IGood/index.ts +2 -0
- package/src/Invoice/InvoiceController/fns/saveEditGood.ts +2 -2
- package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/index.tsx +18 -13
- package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.tsx +11 -6
- package/src/Invoice/ui/digtal/RealEstateInfo/index.tsx +239 -36
- package/src/Invoice/ui/digtal/StakeFarmerholder/index.tsx +29 -15
- package/src/Invoice/ui/digtal/Stakeholder/index.tsx +22 -4
package/dist/index.js
CHANGED
|
@@ -2005,7 +2005,7 @@ var saveEditGood = /*#__PURE__*/(function () {
|
|
|
2005
2005
|
switch (_context.prev = _context.next) {
|
|
2006
2006
|
case 0:
|
|
2007
2007
|
editGood = state.goodsListState.editGood;
|
|
2008
|
-
form = state.goodsListState.form;
|
|
2008
|
+
form = state.goodsListState.form; // const isValidateGood = state.goodsListState.isValidateGood
|
|
2009
2009
|
|
|
2010
2010
|
if (!(!editGood || !form || state.goodsListState.importGoods.isVisibleDrawer || state.calculatingField)) {
|
|
2011
2011
|
_context.next = 4;
|
|
@@ -17650,7 +17650,7 @@ var Stakeholder$1 = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(fu
|
|
|
17650
17650
|
placeholder: "\u8BF7\u8F93\u5165\u7EDF\u4E00\u793E\u4F1A\u4FE1\u7528\u4EE3\u7801/\u7EB3\u7A0E\u4EBA\u8BC6\u522B\u53F7",
|
|
17651
17651
|
autoComplete: "off"
|
|
17652
17652
|
})))), /*#__PURE__*/React__default['default'].createElement(ktsXui.Col, {
|
|
17653
|
-
span: 10 +
|
|
17653
|
+
span: 10 + leqispanW,
|
|
17654
17654
|
style: {
|
|
17655
17655
|
display: isExpand ? undefined : 'none'
|
|
17656
17656
|
}
|
|
@@ -17667,7 +17667,7 @@ var Stakeholder$1 = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(fu
|
|
|
17667
17667
|
placeholder: "\u8BF7\u8F93\u5165\u8D2D\u4E70\u65B9\u5730\u5740",
|
|
17668
17668
|
autoComplete: "off"
|
|
17669
17669
|
})))), /*#__PURE__*/React__default['default'].createElement(ktsXui.Col, {
|
|
17670
|
-
span: 10 +
|
|
17670
|
+
span: 10 + leqispanW,
|
|
17671
17671
|
style: {
|
|
17672
17672
|
display: isExpand ? undefined : 'none'
|
|
17673
17673
|
}
|
|
@@ -17681,7 +17681,22 @@ var Stakeholder$1 = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(fu
|
|
|
17681
17681
|
readOnly: isReadOnly('buyerPhone'),
|
|
17682
17682
|
placeholder: "\u8BF7\u8F93\u5165\u7535\u8BDD",
|
|
17683
17683
|
autoComplete: "off"
|
|
17684
|
-
})))), /*#__PURE__*/React__default['default'].createElement(ktsXui.Col, {
|
|
17684
|
+
})))), props.leqi && /*#__PURE__*/React__default['default'].createElement(ktsXui.Col, {
|
|
17685
|
+
span: 4,
|
|
17686
|
+
style: {
|
|
17687
|
+
display: isExpand ? undefined : 'none'
|
|
17688
|
+
}
|
|
17689
|
+
}, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
|
|
17690
|
+
colon: false
|
|
17691
|
+
}, getFieldDecorator('buyerAddressPhoneFlag', {
|
|
17692
|
+
valuePropName: 'checked'
|
|
17693
|
+
})( /*#__PURE__*/React__default['default'].createElement(ktsXui.Checkbox, {
|
|
17694
|
+
onChange: props === null || props === void 0 ? void 0 : props.invoiceMarkCallback,
|
|
17695
|
+
disabled: isReadOnly('buyerAddressPhoneFlag'),
|
|
17696
|
+
style: {
|
|
17697
|
+
whiteSpace: 'nowrap'
|
|
17698
|
+
}
|
|
17699
|
+
}, "\u662F\u5426\u5C55\u793A")))), /*#__PURE__*/React__default['default'].createElement(ktsXui.Col, {
|
|
17685
17700
|
span: 10 + leqispanW,
|
|
17686
17701
|
style: {
|
|
17687
17702
|
display: isExpand ? undefined : 'none'
|
|
@@ -17773,7 +17788,7 @@ var Stakeholder$1 = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(fu
|
|
|
17773
17788
|
placeholder: "\u8BF7\u8F93\u5165\u7EDF\u4E00\u793E\u4F1A\u4FE1\u7528\u4EE3\u7801/\u7EB3\u7A0E\u4EBA\u8BC6\u522B\u53F7",
|
|
17774
17789
|
autoComplete: "off"
|
|
17775
17790
|
})))), /*#__PURE__*/React__default['default'].createElement(ktsXui.Col, {
|
|
17776
|
-
span: 10 +
|
|
17791
|
+
span: 10 + leqispanW,
|
|
17777
17792
|
style: {
|
|
17778
17793
|
display: isExpand ? undefined : 'none'
|
|
17779
17794
|
}
|
|
@@ -17790,7 +17805,7 @@ var Stakeholder$1 = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(fu
|
|
|
17790
17805
|
placeholder: "\u8BF7\u8F93\u5165\u9500\u552E\u65B9\u5730\u5740",
|
|
17791
17806
|
autoComplete: "off"
|
|
17792
17807
|
})))), /*#__PURE__*/React__default['default'].createElement(ktsXui.Col, {
|
|
17793
|
-
span: 10 +
|
|
17808
|
+
span: 10 + leqispanW,
|
|
17794
17809
|
style: {
|
|
17795
17810
|
display: isExpand ? undefined : 'none'
|
|
17796
17811
|
}
|
|
@@ -17804,7 +17819,22 @@ var Stakeholder$1 = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(fu
|
|
|
17804
17819
|
readOnly: isReadOnly('sellerPhone'),
|
|
17805
17820
|
placeholder: "\u8BF7\u8F93\u5165\u7535\u8BDD",
|
|
17806
17821
|
autoComplete: "off"
|
|
17807
|
-
})))), /*#__PURE__*/React__default['default'].createElement(ktsXui.Col, {
|
|
17822
|
+
})))), props.leqi && /*#__PURE__*/React__default['default'].createElement(ktsXui.Col, {
|
|
17823
|
+
span: 4,
|
|
17824
|
+
style: {
|
|
17825
|
+
display: isExpand ? undefined : 'none'
|
|
17826
|
+
}
|
|
17827
|
+
}, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
|
|
17828
|
+
colon: false
|
|
17829
|
+
}, getFieldDecorator('sellerAddressPhoneFlag', {
|
|
17830
|
+
valuePropName: 'checked'
|
|
17831
|
+
})( /*#__PURE__*/React__default['default'].createElement(ktsXui.Checkbox, {
|
|
17832
|
+
onChange: props === null || props === void 0 ? void 0 : props.invoiceMarkCallback,
|
|
17833
|
+
disabled: isReadOnly('sellerAddressPhoneFlag'),
|
|
17834
|
+
style: {
|
|
17835
|
+
whiteSpace: 'nowrap'
|
|
17836
|
+
}
|
|
17837
|
+
}, "\u662F\u5426\u5C55\u793A")))), /*#__PURE__*/React__default['default'].createElement(ktsXui.Col, {
|
|
17808
17838
|
span: 10 + leqispanW,
|
|
17809
17839
|
style: {
|
|
17810
17840
|
display: isExpand ? undefined : 'none'
|
|
@@ -18291,7 +18321,7 @@ var StakeFarmerholder = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create()
|
|
|
18291
18321
|
placeholder: "\u8BF7\u8F93\u5165\u7EDF\u4E00\u793E\u4F1A\u4FE1\u7528\u4EE3\u7801/\u7EB3\u7A0E\u4EBA\u8BC6\u522B\u53F7",
|
|
18292
18322
|
autoComplete: "off"
|
|
18293
18323
|
})))), /*#__PURE__*/React__default['default'].createElement(ktsXui.Col, {
|
|
18294
|
-
span: 10 +
|
|
18324
|
+
span: 10 + leqispanW,
|
|
18295
18325
|
style: {
|
|
18296
18326
|
display: isExpand ? undefined : 'none'
|
|
18297
18327
|
}
|
|
@@ -18308,7 +18338,7 @@ var StakeFarmerholder = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create()
|
|
|
18308
18338
|
placeholder: "\u8BF7\u8F93\u5165\u9500\u552E\u65B9\u5730\u5740",
|
|
18309
18339
|
autoComplete: "off"
|
|
18310
18340
|
})))), /*#__PURE__*/React__default['default'].createElement(ktsXui.Col, {
|
|
18311
|
-
span: 10 +
|
|
18341
|
+
span: 10 + leqispanW,
|
|
18312
18342
|
style: {
|
|
18313
18343
|
display: isExpand ? undefined : 'none'
|
|
18314
18344
|
}
|
|
@@ -18336,7 +18366,22 @@ var StakeFarmerholder = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create()
|
|
|
18336
18366
|
readOnly: isReadOnly('sellerBank'),
|
|
18337
18367
|
placeholder: "\u8BF7\u8F93\u5165\u9500\u552E\u65B9\u5F00\u6237\u94F6\u884C",
|
|
18338
18368
|
autoComplete: "off"
|
|
18339
|
-
})))), /*#__PURE__*/React__default['default'].createElement(ktsXui.Col, {
|
|
18369
|
+
})))), props.leqi && /*#__PURE__*/React__default['default'].createElement(ktsXui.Col, {
|
|
18370
|
+
span: 4,
|
|
18371
|
+
style: {
|
|
18372
|
+
display: isExpand ? undefined : 'none'
|
|
18373
|
+
}
|
|
18374
|
+
}, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
|
|
18375
|
+
colon: false
|
|
18376
|
+
}, getFieldDecorator('sellerAddressPhoneFlag', {
|
|
18377
|
+
valuePropName: 'checked'
|
|
18378
|
+
})( /*#__PURE__*/React__default['default'].createElement(ktsXui.Checkbox, {
|
|
18379
|
+
onChange: props === null || props === void 0 ? void 0 : props.invoiceMarkCallback,
|
|
18380
|
+
disabled: isReadOnly('sellerAddressPhoneFlag'),
|
|
18381
|
+
style: {
|
|
18382
|
+
whiteSpace: 'nowrap'
|
|
18383
|
+
}
|
|
18384
|
+
}, "\u662F\u5426\u5C55\u793A")))), /*#__PURE__*/React__default['default'].createElement(ktsXui.Col, {
|
|
18340
18385
|
span: 10 + leqispanW,
|
|
18341
18386
|
style: {
|
|
18342
18387
|
display: isExpand ? undefined : 'none'
|
|
@@ -18431,7 +18476,7 @@ var StakeFarmerholder = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create()
|
|
|
18431
18476
|
placeholder: "\u8BF7\u8F93\u5165\u7EDF\u4E00\u793E\u4F1A\u4FE1\u7528\u4EE3\u7801/\u7EB3\u7A0E\u4EBA\u8BC6\u522B\u53F7",
|
|
18432
18477
|
autoComplete: "off"
|
|
18433
18478
|
})))), /*#__PURE__*/React__default['default'].createElement(ktsXui.Col, {
|
|
18434
|
-
span: 10 +
|
|
18479
|
+
span: 10 + leqispanW,
|
|
18435
18480
|
style: {
|
|
18436
18481
|
display: isExpand ? undefined : 'none'
|
|
18437
18482
|
}
|
|
@@ -18448,7 +18493,7 @@ var StakeFarmerholder = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create()
|
|
|
18448
18493
|
placeholder: "\u8BF7\u8F93\u5165\u8D2D\u4E70\u65B9\u5730\u5740",
|
|
18449
18494
|
autoComplete: "off"
|
|
18450
18495
|
})))), /*#__PURE__*/React__default['default'].createElement(ktsXui.Col, {
|
|
18451
|
-
span: 10 +
|
|
18496
|
+
span: 10 + leqispanW,
|
|
18452
18497
|
style: {
|
|
18453
18498
|
display: isExpand ? undefined : 'none'
|
|
18454
18499
|
}
|
|
@@ -18481,6 +18526,20 @@ var StakeFarmerholder = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create()
|
|
|
18481
18526
|
style: {
|
|
18482
18527
|
display: isExpand ? undefined : 'none'
|
|
18483
18528
|
}
|
|
18529
|
+
}, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
|
|
18530
|
+
label: "\u8D2D\u4E70\u65B9\u5F00\u6237\u94F6\u884C",
|
|
18531
|
+
colon: false
|
|
18532
|
+
}, getFieldDecorator('buyerBank', {
|
|
18533
|
+
rules: getRules('buyerBank', RULES$1.bankName('购买方开户银行'))
|
|
18534
|
+
})( /*#__PURE__*/React__default['default'].createElement(MyInput$2, {
|
|
18535
|
+
readOnly: isReadOnly('buyerBank'),
|
|
18536
|
+
placeholder: "\u8BF7\u8F93\u5165\u8D2D\u4E70\u65B9\u5F00\u6237\u94F6\u884C",
|
|
18537
|
+
autoComplete: "off"
|
|
18538
|
+
})))), /*#__PURE__*/React__default['default'].createElement(ktsXui.Col, {
|
|
18539
|
+
span: 10 + leqispanW,
|
|
18540
|
+
style: {
|
|
18541
|
+
display: isExpand ? undefined : 'none'
|
|
18542
|
+
}
|
|
18484
18543
|
}, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
|
|
18485
18544
|
label: "\u94F6\u884C\u8D26\u53F7",
|
|
18486
18545
|
colon: false
|
|
@@ -18855,7 +18914,7 @@ var css_248z$j = ".kts-invoice-operate-goods-table-virtual .ktsAntX-table-body {
|
|
|
18855
18914
|
styleInject(css_248z$j);
|
|
18856
18915
|
|
|
18857
18916
|
function TableVirtual$1 (props) {
|
|
18858
|
-
var _props$
|
|
18917
|
+
var _props$dataSource4, _props$dataSource5;
|
|
18859
18918
|
|
|
18860
18919
|
var _React$useState = React__default['default'].useState(null),
|
|
18861
18920
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -18897,8 +18956,10 @@ function TableVirtual$1 (props) {
|
|
|
18897
18956
|
}, [self, tableBody]); // 设置占位dom的搞
|
|
18898
18957
|
|
|
18899
18958
|
var placeholderHeight = React__default['default'].useMemo(function () {
|
|
18900
|
-
|
|
18901
|
-
|
|
18959
|
+
var _props$dataSource = props.dataSource,
|
|
18960
|
+
dataSource = _props$dataSource === void 0 ? [] : _props$dataSource;
|
|
18961
|
+
if (!self || !rowHeight || !dataSource || !placeholder) return;
|
|
18962
|
+
var placeholderHeight = rowHeight * dataSource.length;
|
|
18902
18963
|
placeholder.style.height = "".concat(placeholderHeight, "px");
|
|
18903
18964
|
return placeholderHeight;
|
|
18904
18965
|
}, [self, rowHeight, props.dataSource, placeholder]);
|
|
@@ -18910,12 +18971,12 @@ function TableVirtual$1 (props) {
|
|
|
18910
18971
|
}, [tableBody, rowHeight, placeholderHeight]); // 计算渲染的行
|
|
18911
18972
|
|
|
18912
18973
|
var dataSource = React__default['default'].useMemo(function () {
|
|
18913
|
-
var _props$
|
|
18974
|
+
var _props$dataSource2;
|
|
18914
18975
|
|
|
18915
18976
|
if (!props.dataSource) return [];
|
|
18916
18977
|
if (props.dataSource.length < 10) return props.dataSource;
|
|
18917
18978
|
if (!rowSize) return [props.dataSource[0]];
|
|
18918
|
-
return (_props$
|
|
18979
|
+
return (_props$dataSource2 = props.dataSource) === null || _props$dataSource2 === void 0 ? void 0 : _props$dataSource2.slice(pointer, pointer + 2 * rowSize);
|
|
18919
18980
|
}, [props.dataSource, pointer, rowSize]); // 监听滚动
|
|
18920
18981
|
|
|
18921
18982
|
React__default['default'].useEffect(function () {
|
|
@@ -18934,17 +18995,24 @@ function TableVirtual$1 (props) {
|
|
|
18934
18995
|
}, [self, placeholder, props.dataSource, rowHeight, rowSize]); // 移动列表
|
|
18935
18996
|
|
|
18936
18997
|
React__default['default'].useEffect(function () {
|
|
18998
|
+
var _props$dataSource3;
|
|
18999
|
+
|
|
18937
19000
|
if (!self) return;
|
|
18938
19001
|
var table = self.querySelector('.ktsAntX-table .ktsAntX-table-body>table');
|
|
18939
19002
|
if (!table) return;
|
|
18940
|
-
|
|
18941
|
-
|
|
19003
|
+
|
|
19004
|
+
if ((((_props$dataSource3 = props.dataSource) === null || _props$dataSource3 === void 0 ? void 0 : _props$dataSource3.length) || 0) < 10) {
|
|
19005
|
+
table.style.top = '0px';
|
|
19006
|
+
} else {
|
|
19007
|
+
table.style.top = "".concat(pointer * rowHeight, "px");
|
|
19008
|
+
}
|
|
19009
|
+
}, [pointer, self, rowHeight, (_props$dataSource4 = props.dataSource) === null || _props$dataSource4 === void 0 ? void 0 : _props$dataSource4.length]);
|
|
18942
19010
|
React__default['default'].useEffect(function () {
|
|
18943
19011
|
if (!self) return;
|
|
18944
19012
|
var cont = self.querySelector('.kts-invoice-operate-goods-table-virtual .ktsAntX-table-body');
|
|
18945
19013
|
if (!cont) return;
|
|
18946
19014
|
cont.scrollTop = 0;
|
|
18947
|
-
}, [(_props$
|
|
19015
|
+
}, [(_props$dataSource5 = props.dataSource) === null || _props$dataSource5 === void 0 ? void 0 : _props$dataSource5.length]);
|
|
18948
19016
|
return /*#__PURE__*/React__default['default'].createElement("span", {
|
|
18949
19017
|
className: "kts-invoice-operate-goods-table-virtual",
|
|
18950
19018
|
ref: function ref(e) {
|
|
@@ -21936,24 +22004,34 @@ var useColumns$1 = (function (form) {
|
|
|
21936
22004
|
while (1) {
|
|
21937
22005
|
switch (_context6.prev = _context6.next) {
|
|
21938
22006
|
case 0:
|
|
21939
|
-
|
|
22007
|
+
if (!isValidateGood) {
|
|
22008
|
+
_context6.next = 10;
|
|
22009
|
+
break;
|
|
22010
|
+
}
|
|
22011
|
+
|
|
22012
|
+
_context6.next = 3;
|
|
21940
22013
|
return controller.wait();
|
|
21941
22014
|
|
|
21942
|
-
case
|
|
22015
|
+
case 3:
|
|
21943
22016
|
isvalue = !!value || value === 0;
|
|
21944
22017
|
isPrice = !!getFieldValue(isTaxIncluded ? 'priceIncludeTax' : 'priceExcludeTax') || getFieldValue(isTaxIncluded ? 'priceIncludeTax' : 'priceExcludeTax') === 0;
|
|
21945
22018
|
|
|
21946
22019
|
if (!(isvalue || isPrice === isvalue)) {
|
|
21947
|
-
_context6.next =
|
|
22020
|
+
_context6.next = 7;
|
|
21948
22021
|
break;
|
|
21949
22022
|
}
|
|
21950
22023
|
|
|
21951
22024
|
return _context6.abrupt("return");
|
|
21952
22025
|
|
|
21953
|
-
case
|
|
22026
|
+
case 7:
|
|
21954
22027
|
callback('请输入数量');
|
|
22028
|
+
_context6.next = 11;
|
|
22029
|
+
break;
|
|
21955
22030
|
|
|
21956
|
-
case
|
|
22031
|
+
case 10:
|
|
22032
|
+
callback();
|
|
22033
|
+
|
|
22034
|
+
case 11:
|
|
21957
22035
|
case "end":
|
|
21958
22036
|
return _context6.stop();
|
|
21959
22037
|
}
|
|
@@ -22242,7 +22320,7 @@ var useColumns$1 = (function (form) {
|
|
|
22242
22320
|
style: {
|
|
22243
22321
|
padding: '0 10px'
|
|
22244
22322
|
}
|
|
22245
|
-
}, formatSearch$1(parseFloat(value).toFixed(2), searchValue));
|
|
22323
|
+
}, value && formatSearch$1(parseFloat(value).toFixed(2), searchValue));
|
|
22246
22324
|
}
|
|
22247
22325
|
}
|
|
22248
22326
|
}, {
|
|
@@ -22305,7 +22383,7 @@ var useColumns$1 = (function (form) {
|
|
|
22305
22383
|
style: {
|
|
22306
22384
|
padding: '0 10px'
|
|
22307
22385
|
}
|
|
22308
|
-
}, formatSearch$1(parseFloat(value).toFixed(2), searchValue));
|
|
22386
|
+
}, value && formatSearch$1(parseFloat(value).toFixed(2), searchValue));
|
|
22309
22387
|
}
|
|
22310
22388
|
}
|
|
22311
22389
|
}, {
|
|
@@ -22348,7 +22426,7 @@ var useColumns$1 = (function (form) {
|
|
|
22348
22426
|
}, e, "%");
|
|
22349
22427
|
}))));
|
|
22350
22428
|
} else {
|
|
22351
|
-
if (value || value === '0') {
|
|
22429
|
+
if (value || value === '0' || value === 0) {
|
|
22352
22430
|
return /*#__PURE__*/React__default['default'].createElement("span", {
|
|
22353
22431
|
style: {
|
|
22354
22432
|
padding: '0 10px'
|
|
@@ -22417,7 +22495,7 @@ var useColumns$1 = (function (form) {
|
|
|
22417
22495
|
style: {
|
|
22418
22496
|
padding: '0 10px'
|
|
22419
22497
|
}
|
|
22420
|
-
}, isDutyFree$1(record) ? '***' : parseFloat(value).toFixed(2));
|
|
22498
|
+
}, isDutyFree$1(record) ? '***' : value && parseFloat(value).toFixed(2));
|
|
22421
22499
|
}
|
|
22422
22500
|
}
|
|
22423
22501
|
}] // 含税不含税
|
|
@@ -24414,6 +24492,19 @@ var RealEstateInfo = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(f
|
|
|
24414
24492
|
}, [model]);
|
|
24415
24493
|
var goodsList = controller.useMemo(function (s) {
|
|
24416
24494
|
return s.goodsListState.goodsList;
|
|
24495
|
+
}, []); //outcome-104 任务 https://wiki.dev.kingxunlian.com/pages/viewpage.action?pageId=180355189
|
|
24496
|
+
//商品和服务税收分类合并编码为“3040502020200000000”时,视为停车费业务,针对停车费业务,蓝字发票增加以下判断:
|
|
24497
|
+
// 单位必须为“平方米”;
|
|
24498
|
+
// 项目名称必须为“车辆停放服务”;
|
|
24499
|
+
// 车牌号必填,最多支持填写3个车牌号;除该场景车牌号必须为空;
|
|
24500
|
+
// 租赁期起止格式必须为“yyyy-MM-dd HH:mm(租赁期起)”+“空格”+“yyyy-MM-dd HH:mm(租赁期止)。
|
|
24501
|
+
|
|
24502
|
+
var isParkFee = React__default['default'].useCallback(function (taxClassificationCode) {
|
|
24503
|
+
if (taxClassificationCode === '3040502020200000000') {
|
|
24504
|
+
return false;
|
|
24505
|
+
} else {
|
|
24506
|
+
return true;
|
|
24507
|
+
}
|
|
24417
24508
|
}, []);
|
|
24418
24509
|
var indexRef = React__default['default'].useRef([]);
|
|
24419
24510
|
React.useEffect(function () {
|
|
@@ -24457,11 +24548,11 @@ var RealEstateInfo = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(f
|
|
|
24457
24548
|
}
|
|
24458
24549
|
}
|
|
24459
24550
|
|
|
24460
|
-
console.log('goodsList', goodsList);
|
|
24461
24551
|
return goodsList.filter(function (item) {
|
|
24462
24552
|
return item.lineAttribute !== 1;
|
|
24463
24553
|
}).map(function (item, index) {
|
|
24464
24554
|
if (item.lineAttribute !== 1) {
|
|
24555
|
+
var isParkFeeItem = isParkFee(item.taxClassificationCode);
|
|
24465
24556
|
return /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Row, {
|
|
24466
24557
|
gutter: [17, 0]
|
|
24467
24558
|
}, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
|
|
@@ -24531,7 +24622,7 @@ var RealEstateInfo = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(f
|
|
|
24531
24622
|
})(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyDiv$3, null) : /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Input, {
|
|
24532
24623
|
autoComplete: 'off',
|
|
24533
24624
|
placeholder: "\u8BF7\u8F93\u5165\u8BE6\u7EC6\u5730\u5740"
|
|
24534
|
-
})))), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
|
|
24625
|
+
})))), !isParkFeeItem && /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
|
|
24535
24626
|
span: 6
|
|
24536
24627
|
}, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
|
|
24537
24628
|
label: "\u79DF\u8D41\u671F\u8D77\u6B62"
|
|
@@ -24544,6 +24635,23 @@ var RealEstateInfo = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(f
|
|
|
24544
24635
|
style: {
|
|
24545
24636
|
width: '100%'
|
|
24546
24637
|
}
|
|
24638
|
+
})))), isParkFeeItem && /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
|
|
24639
|
+
span: 6
|
|
24640
|
+
}, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
|
|
24641
|
+
label: "\u79DF\u8D41\u671F\u8D77\u6B62"
|
|
24642
|
+
}, getFieldDecorator("realEstateDataDto[".concat(index, "].leaseTerm"), {
|
|
24643
|
+
rules: readOnly ? [] : [{
|
|
24644
|
+
required: true,
|
|
24645
|
+
message: '请输入租赁期'
|
|
24646
|
+
}]
|
|
24647
|
+
})(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyArrMomentTime, null) : /*#__PURE__*/React__default['default'].createElement(RangePicker, {
|
|
24648
|
+
style: {
|
|
24649
|
+
width: '100%'
|
|
24650
|
+
},
|
|
24651
|
+
showTime: {
|
|
24652
|
+
format: 'HH:mm'
|
|
24653
|
+
},
|
|
24654
|
+
format: "YYYY-MM-DD HH:mm"
|
|
24547
24655
|
})))), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
|
|
24548
24656
|
span: 6
|
|
24549
24657
|
}, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
|
|
@@ -24577,7 +24685,7 @@ var RealEstateInfo = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(f
|
|
|
24577
24685
|
})(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyDiv$3, null) : /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Input, {
|
|
24578
24686
|
autoComplete: 'off',
|
|
24579
24687
|
placeholder: "\u8BF7\u8F93\u5165\u8BC1\u4E66\u7F16\u53F7\uFF0C\u82E5\u6CA1\u6709\u8BC1\u4E66\u586B\u5199\u201C\u65E0\u201D"
|
|
24580
|
-
})))), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
|
|
24688
|
+
})))), !isParkFeeItem && /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
|
|
24581
24689
|
span: 6
|
|
24582
24690
|
}, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
|
|
24583
24691
|
label: "\u9762\u79EF\u5355\u4F4D"
|
|
@@ -24605,7 +24713,38 @@ var RealEstateInfo = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(f
|
|
|
24605
24713
|
value: "k\u33A1"
|
|
24606
24714
|
}, "k\u33A1"), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select.Option, {
|
|
24607
24715
|
value: "\u33A1"
|
|
24608
|
-
}, "\u33A1")))))
|
|
24716
|
+
}, "\u33A1"))))), isParkFeeItem && /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
|
|
24717
|
+
span: 6
|
|
24718
|
+
}, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
|
|
24719
|
+
label: "\u9762\u79EF\u5355\u4F4D"
|
|
24720
|
+
}, getFieldDecorator("realEstateDataDto[".concat(index, "].realEstateUnit"), {
|
|
24721
|
+
rules: readOnly ? [] : [{
|
|
24722
|
+
required: true,
|
|
24723
|
+
message: '请选择面积单位'
|
|
24724
|
+
}]
|
|
24725
|
+
})(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyDiv$3, null) : /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select, {
|
|
24726
|
+
placeholder: "\u8BF7\u9009\u62E9",
|
|
24727
|
+
style: {
|
|
24728
|
+
width: '100%'
|
|
24729
|
+
}
|
|
24730
|
+
}, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select.Option, {
|
|
24731
|
+
value: "\u5E73\u65B9\u7C73"
|
|
24732
|
+
}, "\u5E73\u65B9\u7C73"))))), isParkFeeItem && /*#__PURE__*/React__default['default'].createElement(LicensePlateNumber, {
|
|
24733
|
+
form: form,
|
|
24734
|
+
index: index,
|
|
24735
|
+
cd: item.cd
|
|
24736
|
+
}) // <Col span={6} >
|
|
24737
|
+
// <Form.Item label='车牌号' >
|
|
24738
|
+
// {getFieldDecorator(`realEstateDataDto[${index}].licensePlateNumber`, {
|
|
24739
|
+
// rules: readOnly ? [] : [{ required: true, message: '请选择面积单位' }]
|
|
24740
|
+
// })(
|
|
24741
|
+
// readOnly
|
|
24742
|
+
// ? <MyDiv />
|
|
24743
|
+
// : <LicensePlateNumber form={form}/>
|
|
24744
|
+
// )}
|
|
24745
|
+
// </Form.Item>
|
|
24746
|
+
// </Col>
|
|
24747
|
+
);
|
|
24609
24748
|
}
|
|
24610
24749
|
});
|
|
24611
24750
|
};
|
|
@@ -24697,15 +24836,45 @@ var MyArrMoment = /*#__PURE__*/function (_React$Component3) {
|
|
|
24697
24836
|
return MyArrMoment;
|
|
24698
24837
|
}(React__default['default'].Component);
|
|
24699
24838
|
|
|
24700
|
-
var
|
|
24701
|
-
_inherits(
|
|
24839
|
+
var MyArrMomentTime = /*#__PURE__*/function (_React$Component4) {
|
|
24840
|
+
_inherits(MyArrMomentTime, _React$Component4);
|
|
24702
24841
|
|
|
24703
|
-
var _super4 = _createSuper(
|
|
24842
|
+
var _super4 = _createSuper(MyArrMomentTime);
|
|
24843
|
+
|
|
24844
|
+
function MyArrMomentTime() {
|
|
24845
|
+
_classCallCheck(this, MyArrMomentTime);
|
|
24846
|
+
|
|
24847
|
+
return _super4.apply(this, arguments);
|
|
24848
|
+
}
|
|
24849
|
+
|
|
24850
|
+
_createClass(MyArrMomentTime, [{
|
|
24851
|
+
key: "render",
|
|
24852
|
+
value: function render() {
|
|
24853
|
+
var _this$props$value3 = this.props.value,
|
|
24854
|
+
value = _this$props$value3 === void 0 ? [] : _this$props$value3;
|
|
24855
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
24856
|
+
style: this.props.style
|
|
24857
|
+
}, /*#__PURE__*/React__default['default'].createElement("span", null, hooks.isMoment(value[0]) && value[0].format('YYYY-MM-DD HH:mm')), /*#__PURE__*/React__default['default'].createElement("span", {
|
|
24858
|
+
style: {
|
|
24859
|
+
color: '#9F603D',
|
|
24860
|
+
fontWeight: 600
|
|
24861
|
+
}
|
|
24862
|
+
}, " - "), /*#__PURE__*/React__default['default'].createElement("span", null, hooks.isMoment(value[1]) && value[1].format('YYYY-MM-DD HH:mm')));
|
|
24863
|
+
}
|
|
24864
|
+
}]);
|
|
24865
|
+
|
|
24866
|
+
return MyArrMomentTime;
|
|
24867
|
+
}(React__default['default'].Component);
|
|
24868
|
+
|
|
24869
|
+
var MyNY = /*#__PURE__*/function (_React$Component5) {
|
|
24870
|
+
_inherits(MyNY, _React$Component5);
|
|
24871
|
+
|
|
24872
|
+
var _super5 = _createSuper(MyNY);
|
|
24704
24873
|
|
|
24705
24874
|
function MyNY() {
|
|
24706
24875
|
_classCallCheck(this, MyNY);
|
|
24707
24876
|
|
|
24708
|
-
return
|
|
24877
|
+
return _super5.apply(this, arguments);
|
|
24709
24878
|
}
|
|
24710
24879
|
|
|
24711
24880
|
_createClass(MyNY, [{
|
|
@@ -24720,6 +24889,134 @@ var MyNY = /*#__PURE__*/function (_React$Component4) {
|
|
|
24720
24889
|
return MyNY;
|
|
24721
24890
|
}(React__default['default'].Component);
|
|
24722
24891
|
|
|
24892
|
+
var LicensePlateNumber = function LicensePlateNumber(props) {
|
|
24893
|
+
var _formData$props$index2;
|
|
24894
|
+
|
|
24895
|
+
var form = props.form;
|
|
24896
|
+
var getFieldDecorator = form.getFieldDecorator;
|
|
24897
|
+
var licenceLimit = 3; // 最多支持填写3个车牌号
|
|
24898
|
+
|
|
24899
|
+
var formData = form.getFieldValue('realEstateDataDto');
|
|
24900
|
+
|
|
24901
|
+
var _React$useState = React__default['default'].useState(new Array(props.cd || 1).fill('')),
|
|
24902
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
24903
|
+
value = _React$useState2[0],
|
|
24904
|
+
setVal = _React$useState2[1];
|
|
24905
|
+
|
|
24906
|
+
var cd = React__default['default'].useMemo(function () {
|
|
24907
|
+
var _formData$props$index;
|
|
24908
|
+
|
|
24909
|
+
return (_formData$props$index = formData[props.index]) === null || _formData$props$index === void 0 ? void 0 : _formData$props$index.cd;
|
|
24910
|
+
}, [(_formData$props$index2 = formData[props.index]) === null || _formData$props$index2 === void 0 ? void 0 : _formData$props$index2.cd]); // useEffect(() => {
|
|
24911
|
+
// if (cd) {
|
|
24912
|
+
// const dd = value.concat(new Array(cd.length-1).fill(''))
|
|
24913
|
+
// setVal(dd);
|
|
24914
|
+
// }
|
|
24915
|
+
// }, [cd])
|
|
24916
|
+
|
|
24917
|
+
var onAdd = function onAdd() {
|
|
24918
|
+
if (value.length < licenceLimit) {
|
|
24919
|
+
setVal([].concat(_toConsumableArray(value), ['']));
|
|
24920
|
+
}
|
|
24921
|
+
}; // 删除车牌号
|
|
24922
|
+
|
|
24923
|
+
|
|
24924
|
+
var onDelete = function onDelete() {
|
|
24925
|
+
if (value.length > 0) {
|
|
24926
|
+
var dd = value.slice(0, -1);
|
|
24927
|
+
setVal(dd);
|
|
24928
|
+
}
|
|
24929
|
+
};
|
|
24930
|
+
|
|
24931
|
+
console.log(value.length);
|
|
24932
|
+
return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, value.length > 0 && value.map(function (item, key) {
|
|
24933
|
+
return /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
|
|
24934
|
+
span: 6
|
|
24935
|
+
}, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
|
|
24936
|
+
label: "\u8F66\u724C\u53F7",
|
|
24937
|
+
key: key
|
|
24938
|
+
}, getFieldDecorator("realEstateDataDto[".concat(props.index, "].cphList[").concat(key, "]"), {
|
|
24939
|
+
rules: [{
|
|
24940
|
+
required: true,
|
|
24941
|
+
message: '请输入车牌号'
|
|
24942
|
+
}]
|
|
24943
|
+
})( /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Input, {
|
|
24944
|
+
style: {
|
|
24945
|
+
width: '100%'
|
|
24946
|
+
},
|
|
24947
|
+
autoComplete: 'off',
|
|
24948
|
+
placeholder: "\u8BF7\u8F93\u5165\u8F66\u724C\u53F7"
|
|
24949
|
+
}))));
|
|
24950
|
+
}), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
|
|
24951
|
+
span: 6
|
|
24952
|
+
}, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, null, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
24953
|
+
style: {
|
|
24954
|
+
color: 'white'
|
|
24955
|
+
}
|
|
24956
|
+
}, "1"), /*#__PURE__*/React__default['default'].createElement("a", {
|
|
24957
|
+
style: {
|
|
24958
|
+
marginRight: 10
|
|
24959
|
+
},
|
|
24960
|
+
onClick: onAdd
|
|
24961
|
+
}, "\u6DFB\u52A0\u8F66\u724C\u53F7"), value.length > 1 && /*#__PURE__*/React__default['default'].createElement("a", {
|
|
24962
|
+
onClick: onDelete
|
|
24963
|
+
}, "\u5220\u9664"))));
|
|
24964
|
+
}; // const LicensePlateNumber: React.FC<PriceInputProps> = (props) => {
|
|
24965
|
+
// const { form } = props;
|
|
24966
|
+
// const { getFieldDecorator } = form;
|
|
24967
|
+
// const licenceLimit = 3; // 最多支持填写3个车牌号
|
|
24968
|
+
// // const { value = [] } = this.props;
|
|
24969
|
+
// const [value, setVal] = React.useState(props.value || ['']);
|
|
24970
|
+
// // const newArr = value.filter(e => !!e);
|
|
24971
|
+
// const newArrLength = value.length;
|
|
24972
|
+
// console.log(value, newArrLength)
|
|
24973
|
+
// // 新增车牌号
|
|
24974
|
+
// const onAdd = () => {
|
|
24975
|
+
// if (newArrLength < licenceLimit) {
|
|
24976
|
+
// setVal([...value, '']);
|
|
24977
|
+
// props.onChange?.([...value, ''])
|
|
24978
|
+
// }
|
|
24979
|
+
// }
|
|
24980
|
+
// // 删除车牌号
|
|
24981
|
+
// const onDelete = () => {
|
|
24982
|
+
// if (newArrLength > 0) {
|
|
24983
|
+
// const dd = value.slice(0, -1)
|
|
24984
|
+
// setVal(dd);
|
|
24985
|
+
// props.onChange?.(dd)
|
|
24986
|
+
// }
|
|
24987
|
+
// }
|
|
24988
|
+
// const onInputChange = (e: React.ChangeEvent<HTMLInputElement>, index: number) => {
|
|
24989
|
+
// console.log(e.target.value);
|
|
24990
|
+
// const dd = value.map((item, i) => {
|
|
24991
|
+
// if (i === index) {
|
|
24992
|
+
// return e.target.value
|
|
24993
|
+
// }
|
|
24994
|
+
// return item
|
|
24995
|
+
// })
|
|
24996
|
+
// setVal(dd);
|
|
24997
|
+
// props.onChange?.(dd)
|
|
24998
|
+
// }
|
|
24999
|
+
// return (
|
|
25000
|
+
// <>
|
|
25001
|
+
// {newArrLength > 0 && value.map((item, index) => {
|
|
25002
|
+
// return
|
|
25003
|
+
// <Form.Item label='车牌号' >
|
|
25004
|
+
// {getFieldDecorator(`realEstateDataDto[${index}].licensePlateNumber`, {
|
|
25005
|
+
// rules: [{ required: true, }]
|
|
25006
|
+
// })(
|
|
25007
|
+
// <Input onChange={(e) => { onInputChange(e, index) }} key={index} style={{ width: '100%' }} autoComplete='off' placeholder="请输入车牌号" />
|
|
25008
|
+
// )}
|
|
25009
|
+
// </Form.Item>
|
|
25010
|
+
// // <Col span={6} >
|
|
25011
|
+
// // <Input onChange={(e) => { onInputChange(e, index) }} key={index} style={{ width: '100%' }} autoComplete='off' placeholder="请输入车牌号" />
|
|
25012
|
+
// // </Col>
|
|
25013
|
+
// })}
|
|
25014
|
+
// <Button type="link" onClick={onAdd}>添加车牌号</Button>
|
|
25015
|
+
// {newArrLength > 1 && <Button type="link" onClick={onDelete}>删除</Button>}
|
|
25016
|
+
// </>
|
|
25017
|
+
// )
|
|
25018
|
+
// }
|
|
25019
|
+
|
|
24723
25020
|
var css_248z$s = ".kts-invoice-operate-real-estate-info-digtal {\n padding: 20px;\n border-bottom: 2px solid #9F613E;\n border-left: 2px solid #9F613E;\n border-right: 2px solid #9F613E;\n}\n.kts-invoice-operate-real-estate-info-digtal .real-estate-info-digtal-label {\n color: #9F613E;\n font-weight: bold;\n}\n.kts-invoice-operate-real-estate-info-digtal .ktsAnt3x-row.ktsAnt3x-form-item {\n margin-bottom: 0;\n}\n.kts-invoice-operate-real-estate-info-digtal .break-word {\n word-break: break-word;\n}\n";
|
|
24724
25021
|
styleInject(css_248z$s);
|
|
24725
25022
|
|
package/package.json
CHANGED
|
@@ -9,6 +9,53 @@ export default () => {
|
|
|
9
9
|
|
|
10
10
|
React.useEffect(() => {
|
|
11
11
|
controller.run(async s => {
|
|
12
|
+
controller.state.goodsListState.goodsList = [{
|
|
13
|
+
"taxRate": 3,
|
|
14
|
+
"lineAttribute": 0,
|
|
15
|
+
"$index": "88a5549b-ede2-488a-962b-26dc1d5e4e3a",
|
|
16
|
+
"serialNo": 1,
|
|
17
|
+
"itemName": "车辆停放服务",
|
|
18
|
+
"lineAmountIncludeTax": 6,
|
|
19
|
+
"taxAmount": 0.17,
|
|
20
|
+
"lineAmountExcludeTax": 5.83,
|
|
21
|
+
cd:3,
|
|
22
|
+
},{
|
|
23
|
+
"taxRate": 3,
|
|
24
|
+
"lineAttribute": 0,
|
|
25
|
+
"$index": "88a5549b-ede2-488a-962b-26dc1d5e4e31",
|
|
26
|
+
"serialNo": 1,
|
|
27
|
+
"itemName": "车辆停放服务",
|
|
28
|
+
"lineAmountIncludeTax": 6,
|
|
29
|
+
"taxAmount": 0.17,
|
|
30
|
+
"lineAmountExcludeTax": 5.83,
|
|
31
|
+
cd:2
|
|
32
|
+
}]
|
|
33
|
+
window.setTimeout(() => {
|
|
34
|
+
controller.formList.get('realEstateInfo')?.setFieldsValue({
|
|
35
|
+
realEstateDataDto: [
|
|
36
|
+
{
|
|
37
|
+
"$index": "88a5549b-ede2-488a-962b-26dc1d5e4e3a",
|
|
38
|
+
realEstateAddress: ['北京市', '北京市', '东城区'],
|
|
39
|
+
realEstateDetailedAddress: '东城区东华门大街',
|
|
40
|
+
leaseTerm: [moment('2023-07-06 10:43'), moment('2023-07-06 10:59')],
|
|
41
|
+
crossCitiesSign: 'Y',
|
|
42
|
+
realEstateNumber: '123456789',
|
|
43
|
+
realEstateUnit: '平方米',
|
|
44
|
+
cphList:['京b22132','渝a12345','渝a1x212'],
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"$index": "88a5549b-ede2-488a-962b-26dc1d5e4e31",
|
|
48
|
+
realEstateAddress: ['北京市', '北京市', '东城区'],
|
|
49
|
+
realEstateDetailedAddress: '东城区东华门大街',
|
|
50
|
+
leaseTerm: [moment('2023-07-06 10:43'), moment('2023-07-06 10:59')],
|
|
51
|
+
crossCitiesSign: 'Y',
|
|
52
|
+
realEstateNumber: '123456789',
|
|
53
|
+
realEstateUnit: '平方米',
|
|
54
|
+
cphList:['渝b22132','陕a12345',],
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
})
|
|
58
|
+
}, 1000)
|
|
12
59
|
})
|
|
13
60
|
}, [])
|
|
14
61
|
const onSave = async () => {
|