kts-component-invoice-operate 3.2.213 → 4.0.1

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/README.md CHANGED
@@ -7,3 +7,7 @@
7
7
 
8
8
 
9
9
  node 16.20.2
10
+
11
+ version 4.0.1
12
+ 这个版本升级主要是为了支持途虎的特殊票种,但是标准版暂时不能升级,数据结构发生了变化,22升级会导致报错,
13
+ 这是一个不兼容的升级
package/dist/index.esm.js CHANGED
@@ -8,7 +8,7 @@ import { message as message$1, TableManual, Switch, AutoComplete as AutoComplete
8
8
  import classnames from 'classnames';
9
9
  import { Table } from 'kts-components-antd-x4-v4';
10
10
  import { render } from 'react-dom';
11
- import { DatePicker, Row as Row$1, Col as Col$1, Cascader, Input as Input$2, Select as Select$2 } from 'kts-components-antd-x4';
11
+ import { DatePicker, Row as Row$1, Col as Col$1, Input as Input$2, Cascader, Select as Select$2 } from 'kts-components-antd-x4';
12
12
  import { Input as Input$3, NumberPicker } from '@formily/antd-components';
13
13
  import { createAsyncFormActions, FormEffectHooks, SchemaForm, FormButtonGroup, SchemaMarkupField } from '@formily/antd';
14
14
 
@@ -14330,7 +14330,7 @@ var useColumns = (function (form) {
14330
14330
  style: {
14331
14331
  padding: '0 10px'
14332
14332
  }
14333
- }, isDutyFree(record) ? '免税' : "".concat(value, "%"));
14333
+ }, isDutyFree(record) ? '免税' : value === '' ? '' : "".concat(value, "%"));
14334
14334
  }
14335
14335
  }
14336
14336
  }, {
@@ -14354,7 +14354,7 @@ var useColumns = (function (form) {
14354
14354
  style: {
14355
14355
  padding: '0 10px'
14356
14356
  }
14357
- }, isDutyFree(record) ? '***' : value ? parseFloat(value).toFixed(2) : '');
14357
+ }, isDutyFree(record) ? '***' : value === '' ? '' : parseFloat(value).toFixed(2));
14358
14358
  }
14359
14359
  }
14360
14360
  }, {
@@ -19054,7 +19054,7 @@ var Statistics$1 = (function () {
19054
19054
  fontWeight: 'bold',
19055
19055
  marginLeft: 4
19056
19056
  }
19057
- }, lineAmountIncludeTax ? toStringChinese(lineAmountIncludeTax) : '')), /*#__PURE__*/React.createElement("div", {
19057
+ }, toStringChinese(lineAmountIncludeTax))), /*#__PURE__*/React.createElement("div", {
19058
19058
  style: {
19059
19059
  flex: 1
19060
19060
  }
@@ -19068,7 +19068,7 @@ var Statistics$1 = (function () {
19068
19068
  minWidth: 119,
19069
19069
  maxWidth: 300
19070
19070
  }
19071
- }, "\xA5", lineAmountIncludeTax ? parseFloat(lineAmountIncludeTax).toFixed(2) : '')));
19071
+ }, "\xA5", parseFloat(lineAmountIncludeTax).toFixed(2))));
19072
19072
  });
19073
19073
 
19074
19074
  var AddRowButton$1 = (function () {
@@ -22197,12 +22197,11 @@ var useColumns$1 = (function (form) {
22197
22197
  }
22198
22198
  })));
22199
22199
  } else {
22200
- console.log(value);
22201
22200
  return /*#__PURE__*/React.createElement("span", {
22202
22201
  style: {
22203
22202
  padding: '0 10px'
22204
22203
  }
22205
- }, value === '' ? '' : formatSearch$1(parseFloat(value).toFixed(2), searchValue));
22204
+ }, formatSearch$1(parseFloat(value).toFixed(2), searchValue));
22206
22205
  }
22207
22206
  }
22208
22207
  }, {
@@ -24286,7 +24285,7 @@ var Main$3 = decorator(Form.create())(function (props) {
24286
24285
  })), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Statistics$1, null)));
24287
24286
  });
24288
24287
 
24289
- var css_248z$r = ".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";
24288
+ var css_248z$r = ".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 .ktsAntX-row {\n border-bottom: 1px dashed #9F613E;\n}\n.kts-invoice-operate-real-estate-info-digtal .ktsAntX-row:last-child {\n border-bottom: none;\n}\n";
24290
24289
  styleInject(css_248z$r);
24291
24290
 
24292
24291
  var RangePicker = DatePicker.RangePicker;
@@ -24302,126 +24301,213 @@ var RealEstateInfo = decorator(Form.create())(function (props) {
24302
24301
  }, []);
24303
24302
  var readOnly = React.useMemo(function () {
24304
24303
  return model === 'readOnly';
24305
- }, [model]); // 注册 form
24304
+ }, [model]);
24305
+ var goodsList = controller.useMemo(function (s) {
24306
+ return s.goodsListState.goodsList;
24307
+ }, []);
24308
+ var indexRef = React.useRef([]);
24309
+ useEffect(function () {
24310
+ var dd = goodsList === null || goodsList === void 0 ? void 0 : goodsList.reduce(function (acc, cur) {
24311
+ if (cur.lineAttribute === 0) {
24312
+ acc.push(cur.$index);
24313
+ }
24314
+
24315
+ return acc;
24316
+ }, []);
24317
+ indexRef.current = dd;
24318
+ }, [goodsList, indexRef]); // 注册 form
24306
24319
 
24307
24320
  controller.useForm('realEstateInfo', form);
24321
+
24322
+ var getList = function getList() {
24323
+ var decrease = indexRef.current.length > goodsList.length;
24324
+
24325
+ if (decrease) {
24326
+ //已删行列表
24327
+ var diff = indexRef.current.filter(function (item) {
24328
+ return !goodsList.find(function (i) {
24329
+ return i.$index === item;
24330
+ });
24331
+ });
24332
+ var formData = form.getFieldValue('realEstateDataDto');
24333
+
24334
+ if (Array.isArray(formData) && diff.length > 0) {
24335
+ var newForm = formData === null || formData === void 0 ? void 0 : formData.filter(function (item) {
24336
+ return !diff.find(function (i) {
24337
+ return i === item.$index;
24338
+ });
24339
+ });
24340
+ form.setFieldsValue({
24341
+ realEstateDataDto: newForm
24342
+ });
24343
+ } else {
24344
+ form.setFieldsValue({
24345
+ realEstateDataDto: undefined
24346
+ });
24347
+ }
24348
+ }
24349
+
24350
+ return goodsList.map(function (item, index) {
24351
+ if (item.lineAttribute === 0) {
24352
+ return /*#__PURE__*/React.createElement(Row$1, {
24353
+ gutter: [17, 0]
24354
+ }, /*#__PURE__*/React.createElement(Col$1, {
24355
+ span: 6
24356
+ }, /*#__PURE__*/React.createElement(Form.Item, {
24357
+ style: {
24358
+ display: 'none'
24359
+ }
24360
+ }, getFieldDecorator("realEstateDataDto[".concat(index, "].$index"), {
24361
+ initialValue: item.$index
24362
+ })( /*#__PURE__*/React.createElement(Input$2, null))), /*#__PURE__*/React.createElement(Form.Item, {
24363
+ label: "\u4E0D\u52A8\u4EA7\u5730\u5740"
24364
+ }, getFieldDecorator("realEstateDataDto[".concat(index, "].realEstateAddress"), {
24365
+ rules: readOnly ? [] : [{
24366
+ required: true,
24367
+ message: '请选择不动产地址'
24368
+ }]
24369
+ })(readOnly ? /*#__PURE__*/React.createElement(MyArrString, null) : /*#__PURE__*/React.createElement(Cascader, {
24370
+ style: {
24371
+ width: '100%'
24372
+ },
24373
+ options: [{
24374
+ "name": "北京市"
24375
+ }] || props.realEstateAddressOptions,
24376
+ fieldNames: {
24377
+ label: 'name',
24378
+ value: 'name',
24379
+ children: 'children'
24380
+ } || props.realEstateAddressFieldNames,
24381
+ placeholder: "\u8BF7\u9009\u62E9\u7701\u5E02\u533A\u53BF"
24382
+ })))), /*#__PURE__*/React.createElement(Col$1, {
24383
+ span: 6
24384
+ }, /*#__PURE__*/React.createElement(Form.Item, {
24385
+ label: "\u8BE6\u7EC6\u5730\u5740"
24386
+ }, getFieldDecorator("realEstateDataDto[".concat(index, "].realEstateDetailedAddress"), {
24387
+ rules: readOnly ? [] : [{
24388
+ required: true,
24389
+ message: '请输入详细地址'
24390
+ }, {
24391
+ max: 120,
24392
+ message: '详细地址最多120个字符'
24393
+ }, {
24394
+ validator: function () {
24395
+ var _validator = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_, value, callback) {
24396
+ var pattern;
24397
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
24398
+ while (1) {
24399
+ switch (_context.prev = _context.next) {
24400
+ case 0:
24401
+ pattern = /街|路|村|乡|镇|道|巷|号/;
24402
+
24403
+ if (pattern.test(value)) {
24404
+ callback();
24405
+ } else {
24406
+ callback('地址必须包含“街”、“路”、“村”、“乡”、“镇”、“道”、“巷”、“号”等任意一个关键词');
24407
+ }
24408
+
24409
+ case 2:
24410
+ case "end":
24411
+ return _context.stop();
24412
+ }
24413
+ }
24414
+ }, _callee);
24415
+ }));
24416
+
24417
+ function validator(_x, _x2, _x3) {
24418
+ return _validator.apply(this, arguments);
24419
+ }
24420
+
24421
+ return validator;
24422
+ }()
24423
+ }]
24424
+ })(readOnly ? /*#__PURE__*/React.createElement(MyDiv$3, null) : /*#__PURE__*/React.createElement(Input$2, {
24425
+ autoComplete: 'off',
24426
+ placeholder: "\u8BF7\u8F93\u5165\u8BE6\u7EC6\u5730\u5740"
24427
+ })))), /*#__PURE__*/React.createElement(Col$1, {
24428
+ span: 6
24429
+ }, /*#__PURE__*/React.createElement(Form.Item, {
24430
+ label: "\u79DF\u8D41\u671F\u8D77\u6B62"
24431
+ }, getFieldDecorator("realEstateDataDto[".concat(index, "].leaseTerm"), {
24432
+ rules: readOnly ? [] : [{
24433
+ required: true,
24434
+ message: '请输入租赁期'
24435
+ }]
24436
+ })(readOnly ? /*#__PURE__*/React.createElement(MyArrMoment, null) : /*#__PURE__*/React.createElement(RangePicker, {
24437
+ style: {
24438
+ width: '100%'
24439
+ }
24440
+ })))), /*#__PURE__*/React.createElement(Col$1, {
24441
+ span: 6
24442
+ }, /*#__PURE__*/React.createElement(Form.Item, {
24443
+ label: "\u8DE8\u5730\uFF08\u5E02\uFF09\u6807\u5FD7"
24444
+ }, getFieldDecorator("realEstateDataDto[".concat(index, "].crossCitiesSign"), {
24445
+ rules: readOnly ? [] : [{
24446
+ required: true,
24447
+ message: '请选择跨地(市)标志'
24448
+ }]
24449
+ })(readOnly ? /*#__PURE__*/React.createElement(MyNY, null) : /*#__PURE__*/React.createElement(Select$2, {
24450
+ placeholder: "\u8BF7\u9009\u62E9",
24451
+ style: {
24452
+ width: '100%'
24453
+ }
24454
+ }, /*#__PURE__*/React.createElement(Select$2.Option, {
24455
+ value: 'Y'
24456
+ }, "\u662F"), /*#__PURE__*/React.createElement(Select$2.Option, {
24457
+ value: 'N'
24458
+ }, "\u5426"))))), /*#__PURE__*/React.createElement(Col$1, {
24459
+ span: 6
24460
+ }, /*#__PURE__*/React.createElement(Form.Item, {
24461
+ label: "\u4EA7\u6743\u8BC1\u4E66/\u4E0D\u52A8\u4EA7\u6743\u8BC1\u53F7"
24462
+ }, getFieldDecorator("realEstateDataDto[".concat(index, "].realEstateNumber"), {
24463
+ rules: readOnly ? [] : [{
24464
+ required: true,
24465
+ message: '请输入证书编号,若没有证书填写“无”'
24466
+ }, {
24467
+ max: 40,
24468
+ message: '证书编号最多40个字符'
24469
+ }]
24470
+ })(readOnly ? /*#__PURE__*/React.createElement(MyDiv$3, null) : /*#__PURE__*/React.createElement(Input$2, {
24471
+ autoComplete: 'off',
24472
+ placeholder: "\u8BF7\u8F93\u5165\u8BC1\u4E66\u7F16\u53F7\uFF0C\u82E5\u6CA1\u6709\u8BC1\u4E66\u586B\u5199\u201C\u65E0\u201D"
24473
+ })))), /*#__PURE__*/React.createElement(Col$1, {
24474
+ span: 6
24475
+ }, /*#__PURE__*/React.createElement(Form.Item, {
24476
+ label: "\u9762\u79EF\u5355\u4F4D"
24477
+ }, getFieldDecorator("realEstateDataDto[".concat(index, "].realEstateUnit"), {
24478
+ rules: readOnly ? [] : [{
24479
+ required: true,
24480
+ message: '请选择面积单位'
24481
+ }]
24482
+ })(readOnly ? /*#__PURE__*/React.createElement(MyDiv$3, null) : /*#__PURE__*/React.createElement(Select$2, {
24483
+ placeholder: "\u8BF7\u9009\u62E9",
24484
+ style: {
24485
+ width: '100%'
24486
+ }
24487
+ }, /*#__PURE__*/React.createElement(Select$2.Option, {
24488
+ value: "\u5E73\u65B9\u5343\u7C73"
24489
+ }, "\u5E73\u65B9\u5343\u7C73"), /*#__PURE__*/React.createElement(Select$2.Option, {
24490
+ value: "\u5E73\u65B9\u7C73"
24491
+ }, "\u5E73\u65B9\u7C73"), /*#__PURE__*/React.createElement(Select$2.Option, {
24492
+ value: "\u516C\u9877"
24493
+ }, "\u516C\u9877"), /*#__PURE__*/React.createElement(Select$2.Option, {
24494
+ value: "\u4EA9"
24495
+ }, "\u4EA9"), /*#__PURE__*/React.createElement(Select$2.Option, {
24496
+ value: "h\u33A1"
24497
+ }, "h\u33A1"), /*#__PURE__*/React.createElement(Select$2.Option, {
24498
+ value: "k\u33A1"
24499
+ }, "k\u33A1"), /*#__PURE__*/React.createElement(Select$2.Option, {
24500
+ value: "\u33A1"
24501
+ }, "\u33A1"))))));
24502
+ }
24503
+ });
24504
+ };
24505
+
24308
24506
  return /*#__PURE__*/React.createElement("div", {
24309
24507
  className: "kts-invoice-operate-real-estate-info-digtal"
24310
24508
  }, /*#__PURE__*/React.createElement("div", {
24311
24509
  className: 'real-estate-info-digtal-label'
24312
- }, "\u7279\u6B8A\u4FE1\u606F-\u4E0D\u52A8\u4EA7\u7ECF\u8425\u79DF\u8D41\u670D\u52A1"), /*#__PURE__*/React.createElement(Row$1, {
24313
- gutter: [17, 0]
24314
- }, /*#__PURE__*/React.createElement(Col$1, {
24315
- span: 6
24316
- }, /*#__PURE__*/React.createElement(Form.Item, {
24317
- label: "\u4E0D\u52A8\u4EA7\u5730\u5740"
24318
- }, getFieldDecorator('realEstateAddress', {
24319
- rules: readOnly ? [] : [{
24320
- required: true,
24321
- message: '请选择不动产地址'
24322
- }]
24323
- })(readOnly ? /*#__PURE__*/React.createElement(MyArrString, null) : /*#__PURE__*/React.createElement(Cascader, {
24324
- style: {
24325
- width: '100%'
24326
- },
24327
- options: props.realEstateAddressOptions,
24328
- fieldNames: props.realEstateAddressFieldNames,
24329
- placeholder: "\u8BF7\u9009\u62E9\u7701\u5E02\u533A\u53BF"
24330
- })))), /*#__PURE__*/React.createElement(Col$1, {
24331
- span: 6
24332
- }, /*#__PURE__*/React.createElement(Form.Item, {
24333
- label: "\u8BE6\u7EC6\u5730\u5740"
24334
- }, getFieldDecorator('realEstateDetailedAddress', {
24335
- rules: readOnly ? [] : [{
24336
- required: true,
24337
- message: '请输入详细地址'
24338
- }, {
24339
- max: 120,
24340
- message: '详细地址最多120个字符'
24341
- }, {
24342
- validator: function validator(_, value) {
24343
- var pattern = /街|路|村|乡|镇|道|巷|号/;
24344
- return pattern.test(value) ? Promise.resolve() : Promise.reject('地址必须包含“街”、“路”、“村”、“乡”、“镇”、“道”、“巷”、“号”等任意一个关键词');
24345
- }
24346
- }]
24347
- })(readOnly ? /*#__PURE__*/React.createElement(MyDiv$3, null) : /*#__PURE__*/React.createElement(Input$2, {
24348
- autoComplete: 'off',
24349
- placeholder: "\u8BF7\u8F93\u5165\u8BE6\u7EC6\u5730\u5740"
24350
- })))), /*#__PURE__*/React.createElement(Col$1, {
24351
- span: 6
24352
- }, /*#__PURE__*/React.createElement(Form.Item, {
24353
- label: "\u79DF\u8D41\u671F\u8D77\u6B62"
24354
- }, getFieldDecorator('leaseTerm', {
24355
- rules: readOnly ? [] : [{
24356
- required: true,
24357
- message: '请输入租赁期'
24358
- }]
24359
- })(readOnly ? /*#__PURE__*/React.createElement(MyArrMoment, null) : /*#__PURE__*/React.createElement(RangePicker, {
24360
- style: {
24361
- width: '100%'
24362
- }
24363
- })))), /*#__PURE__*/React.createElement(Col$1, {
24364
- span: 6
24365
- }, /*#__PURE__*/React.createElement(Form.Item, {
24366
- label: "\u8DE8\u5730\uFF08\u5E02\uFF09\u6807\u5FD7"
24367
- }, getFieldDecorator('crossCitiesSign', {
24368
- rules: readOnly ? [] : [{
24369
- required: true,
24370
- message: '请选择跨地(市)标志'
24371
- }]
24372
- })(readOnly ? /*#__PURE__*/React.createElement(MyNY, null) : /*#__PURE__*/React.createElement(Select$2, {
24373
- placeholder: "\u8BF7\u9009\u62E9",
24374
- style: {
24375
- width: '100%'
24376
- }
24377
- }, /*#__PURE__*/React.createElement(Select$2.Option, {
24378
- value: 'Y'
24379
- }, "\u662F"), /*#__PURE__*/React.createElement(Select$2.Option, {
24380
- value: 'N'
24381
- }, "\u5426"))))), /*#__PURE__*/React.createElement(Col$1, {
24382
- span: 6
24383
- }, /*#__PURE__*/React.createElement(Form.Item, {
24384
- label: "\u4EA7\u6743\u8BC1\u4E66/\u4E0D\u52A8\u4EA7\u6743\u8BC1\u53F7"
24385
- }, getFieldDecorator('realEstateNumber', {
24386
- rules: readOnly ? [] : [{
24387
- required: true,
24388
- message: '请输入证书编号,若没有证书填写“无”'
24389
- }, {
24390
- max: 40,
24391
- message: '证书编号最多40个字符'
24392
- }]
24393
- })(readOnly ? /*#__PURE__*/React.createElement(MyDiv$3, null) : /*#__PURE__*/React.createElement(Input$2, {
24394
- autoComplete: 'off',
24395
- placeholder: "\u8BF7\u8F93\u5165\u8BC1\u4E66\u7F16\u53F7\uFF0C\u82E5\u6CA1\u6709\u8BC1\u4E66\u586B\u5199\u201C\u65E0\u201D"
24396
- })))), /*#__PURE__*/React.createElement(Col$1, {
24397
- span: 6
24398
- }, /*#__PURE__*/React.createElement(Form.Item, {
24399
- label: "\u9762\u79EF\u5355\u4F4D"
24400
- }, getFieldDecorator('realEstateUnit', {
24401
- rules: readOnly ? [] : [{
24402
- required: true,
24403
- message: '请选择面积单位'
24404
- }]
24405
- })(readOnly ? /*#__PURE__*/React.createElement(MyDiv$3, null) : /*#__PURE__*/React.createElement(Select$2, {
24406
- placeholder: "\u8BF7\u9009\u62E9",
24407
- style: {
24408
- width: '100%'
24409
- }
24410
- }, /*#__PURE__*/React.createElement(Select$2.Option, {
24411
- value: "\u5E73\u65B9\u5343\u7C73"
24412
- }, "\u5E73\u65B9\u5343\u7C73"), /*#__PURE__*/React.createElement(Select$2.Option, {
24413
- value: "\u5E73\u65B9\u7C73"
24414
- }, "\u5E73\u65B9\u7C73"), /*#__PURE__*/React.createElement(Select$2.Option, {
24415
- value: "\u516C\u9877"
24416
- }, "\u516C\u9877"), /*#__PURE__*/React.createElement(Select$2.Option, {
24417
- value: "\u4EA9"
24418
- }, "\u4EA9"), /*#__PURE__*/React.createElement(Select$2.Option, {
24419
- value: "h\u33A1"
24420
- }, "h\u33A1"), /*#__PURE__*/React.createElement(Select$2.Option, {
24421
- value: "k\u33A1"
24422
- }, "k\u33A1"), /*#__PURE__*/React.createElement(Select$2.Option, {
24423
- value: "\u33A1"
24424
- }, "\u33A1")))))));
24510
+ }, "\u7279\u6B8A\u4FE1\u606F-\u4E0D\u52A8\u4EA7\u7ECF\u8425\u79DF\u8D41\u670D\u52A1"), getList());
24425
24511
  });
24426
24512
 
24427
24513
  var MyDiv$3 = /*#__PURE__*/function (_React$Component) {
package/dist/index.js CHANGED
@@ -14340,7 +14340,7 @@ var useColumns = (function (form) {
14340
14340
  style: {
14341
14341
  padding: '0 10px'
14342
14342
  }
14343
- }, isDutyFree(record) ? '免税' : "".concat(value, "%"));
14343
+ }, isDutyFree(record) ? '免税' : value === '' ? '' : "".concat(value, "%"));
14344
14344
  }
14345
14345
  }
14346
14346
  }, {
@@ -14364,7 +14364,7 @@ var useColumns = (function (form) {
14364
14364
  style: {
14365
14365
  padding: '0 10px'
14366
14366
  }
14367
- }, isDutyFree(record) ? '***' : value ? parseFloat(value).toFixed(2) : '');
14367
+ }, isDutyFree(record) ? '***' : value === '' ? '' : parseFloat(value).toFixed(2));
14368
14368
  }
14369
14369
  }
14370
14370
  }, {
@@ -19064,7 +19064,7 @@ var Statistics$1 = (function () {
19064
19064
  fontWeight: 'bold',
19065
19065
  marginLeft: 4
19066
19066
  }
19067
- }, lineAmountIncludeTax ? toStringChinese(lineAmountIncludeTax) : '')), /*#__PURE__*/React__default['default'].createElement("div", {
19067
+ }, toStringChinese(lineAmountIncludeTax))), /*#__PURE__*/React__default['default'].createElement("div", {
19068
19068
  style: {
19069
19069
  flex: 1
19070
19070
  }
@@ -19078,7 +19078,7 @@ var Statistics$1 = (function () {
19078
19078
  minWidth: 119,
19079
19079
  maxWidth: 300
19080
19080
  }
19081
- }, "\xA5", lineAmountIncludeTax ? parseFloat(lineAmountIncludeTax).toFixed(2) : '')));
19081
+ }, "\xA5", parseFloat(lineAmountIncludeTax).toFixed(2))));
19082
19082
  });
19083
19083
 
19084
19084
  var AddRowButton$1 = (function () {
@@ -22207,12 +22207,11 @@ var useColumns$1 = (function (form) {
22207
22207
  }
22208
22208
  })));
22209
22209
  } else {
22210
- console.log(value);
22211
22210
  return /*#__PURE__*/React__default['default'].createElement("span", {
22212
22211
  style: {
22213
22212
  padding: '0 10px'
22214
22213
  }
22215
- }, value === '' ? '' : formatSearch$1(parseFloat(value).toFixed(2), searchValue));
22214
+ }, formatSearch$1(parseFloat(value).toFixed(2), searchValue));
22216
22215
  }
22217
22216
  }
22218
22217
  }, {
@@ -24296,7 +24295,7 @@ var Main$3 = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(function
24296
24295
  })), /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement(Statistics$1, null)));
24297
24296
  });
24298
24297
 
24299
- var css_248z$r = ".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";
24298
+ var css_248z$r = ".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 .ktsAntX-row {\n border-bottom: 1px dashed #9F613E;\n}\n.kts-invoice-operate-real-estate-info-digtal .ktsAntX-row:last-child {\n border-bottom: none;\n}\n";
24300
24299
  styleInject(css_248z$r);
24301
24300
 
24302
24301
  var RangePicker = ktsComponentsAntdX4.DatePicker.RangePicker;
@@ -24312,126 +24311,213 @@ var RealEstateInfo = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(f
24312
24311
  }, []);
24313
24312
  var readOnly = React__default['default'].useMemo(function () {
24314
24313
  return model === 'readOnly';
24315
- }, [model]); // 注册 form
24314
+ }, [model]);
24315
+ var goodsList = controller.useMemo(function (s) {
24316
+ return s.goodsListState.goodsList;
24317
+ }, []);
24318
+ var indexRef = React__default['default'].useRef([]);
24319
+ React.useEffect(function () {
24320
+ var dd = goodsList === null || goodsList === void 0 ? void 0 : goodsList.reduce(function (acc, cur) {
24321
+ if (cur.lineAttribute === 0) {
24322
+ acc.push(cur.$index);
24323
+ }
24324
+
24325
+ return acc;
24326
+ }, []);
24327
+ indexRef.current = dd;
24328
+ }, [goodsList, indexRef]); // 注册 form
24316
24329
 
24317
24330
  controller.useForm('realEstateInfo', form);
24331
+
24332
+ var getList = function getList() {
24333
+ var decrease = indexRef.current.length > goodsList.length;
24334
+
24335
+ if (decrease) {
24336
+ //已删行列表
24337
+ var diff = indexRef.current.filter(function (item) {
24338
+ return !goodsList.find(function (i) {
24339
+ return i.$index === item;
24340
+ });
24341
+ });
24342
+ var formData = form.getFieldValue('realEstateDataDto');
24343
+
24344
+ if (Array.isArray(formData) && diff.length > 0) {
24345
+ var newForm = formData === null || formData === void 0 ? void 0 : formData.filter(function (item) {
24346
+ return !diff.find(function (i) {
24347
+ return i === item.$index;
24348
+ });
24349
+ });
24350
+ form.setFieldsValue({
24351
+ realEstateDataDto: newForm
24352
+ });
24353
+ } else {
24354
+ form.setFieldsValue({
24355
+ realEstateDataDto: undefined
24356
+ });
24357
+ }
24358
+ }
24359
+
24360
+ return goodsList.map(function (item, index) {
24361
+ if (item.lineAttribute === 0) {
24362
+ return /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Row, {
24363
+ gutter: [17, 0]
24364
+ }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
24365
+ span: 6
24366
+ }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
24367
+ style: {
24368
+ display: 'none'
24369
+ }
24370
+ }, getFieldDecorator("realEstateDataDto[".concat(index, "].$index"), {
24371
+ initialValue: item.$index
24372
+ })( /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Input, null))), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
24373
+ label: "\u4E0D\u52A8\u4EA7\u5730\u5740"
24374
+ }, getFieldDecorator("realEstateDataDto[".concat(index, "].realEstateAddress"), {
24375
+ rules: readOnly ? [] : [{
24376
+ required: true,
24377
+ message: '请选择不动产地址'
24378
+ }]
24379
+ })(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyArrString, null) : /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Cascader, {
24380
+ style: {
24381
+ width: '100%'
24382
+ },
24383
+ options: [{
24384
+ "name": "北京市"
24385
+ }] || props.realEstateAddressOptions,
24386
+ fieldNames: {
24387
+ label: 'name',
24388
+ value: 'name',
24389
+ children: 'children'
24390
+ } || props.realEstateAddressFieldNames,
24391
+ placeholder: "\u8BF7\u9009\u62E9\u7701\u5E02\u533A\u53BF"
24392
+ })))), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
24393
+ span: 6
24394
+ }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
24395
+ label: "\u8BE6\u7EC6\u5730\u5740"
24396
+ }, getFieldDecorator("realEstateDataDto[".concat(index, "].realEstateDetailedAddress"), {
24397
+ rules: readOnly ? [] : [{
24398
+ required: true,
24399
+ message: '请输入详细地址'
24400
+ }, {
24401
+ max: 120,
24402
+ message: '详细地址最多120个字符'
24403
+ }, {
24404
+ validator: function () {
24405
+ var _validator = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_, value, callback) {
24406
+ var pattern;
24407
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
24408
+ while (1) {
24409
+ switch (_context.prev = _context.next) {
24410
+ case 0:
24411
+ pattern = /街|路|村|乡|镇|道|巷|号/;
24412
+
24413
+ if (pattern.test(value)) {
24414
+ callback();
24415
+ } else {
24416
+ callback('地址必须包含“街”、“路”、“村”、“乡”、“镇”、“道”、“巷”、“号”等任意一个关键词');
24417
+ }
24418
+
24419
+ case 2:
24420
+ case "end":
24421
+ return _context.stop();
24422
+ }
24423
+ }
24424
+ }, _callee);
24425
+ }));
24426
+
24427
+ function validator(_x, _x2, _x3) {
24428
+ return _validator.apply(this, arguments);
24429
+ }
24430
+
24431
+ return validator;
24432
+ }()
24433
+ }]
24434
+ })(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyDiv$3, null) : /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Input, {
24435
+ autoComplete: 'off',
24436
+ placeholder: "\u8BF7\u8F93\u5165\u8BE6\u7EC6\u5730\u5740"
24437
+ })))), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
24438
+ span: 6
24439
+ }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
24440
+ label: "\u79DF\u8D41\u671F\u8D77\u6B62"
24441
+ }, getFieldDecorator("realEstateDataDto[".concat(index, "].leaseTerm"), {
24442
+ rules: readOnly ? [] : [{
24443
+ required: true,
24444
+ message: '请输入租赁期'
24445
+ }]
24446
+ })(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyArrMoment, null) : /*#__PURE__*/React__default['default'].createElement(RangePicker, {
24447
+ style: {
24448
+ width: '100%'
24449
+ }
24450
+ })))), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
24451
+ span: 6
24452
+ }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
24453
+ label: "\u8DE8\u5730\uFF08\u5E02\uFF09\u6807\u5FD7"
24454
+ }, getFieldDecorator("realEstateDataDto[".concat(index, "].crossCitiesSign"), {
24455
+ rules: readOnly ? [] : [{
24456
+ required: true,
24457
+ message: '请选择跨地(市)标志'
24458
+ }]
24459
+ })(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyNY, null) : /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select, {
24460
+ placeholder: "\u8BF7\u9009\u62E9",
24461
+ style: {
24462
+ width: '100%'
24463
+ }
24464
+ }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select.Option, {
24465
+ value: 'Y'
24466
+ }, "\u662F"), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select.Option, {
24467
+ value: 'N'
24468
+ }, "\u5426"))))), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
24469
+ span: 6
24470
+ }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
24471
+ label: "\u4EA7\u6743\u8BC1\u4E66/\u4E0D\u52A8\u4EA7\u6743\u8BC1\u53F7"
24472
+ }, getFieldDecorator("realEstateDataDto[".concat(index, "].realEstateNumber"), {
24473
+ rules: readOnly ? [] : [{
24474
+ required: true,
24475
+ message: '请输入证书编号,若没有证书填写“无”'
24476
+ }, {
24477
+ max: 40,
24478
+ message: '证书编号最多40个字符'
24479
+ }]
24480
+ })(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyDiv$3, null) : /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Input, {
24481
+ autoComplete: 'off',
24482
+ placeholder: "\u8BF7\u8F93\u5165\u8BC1\u4E66\u7F16\u53F7\uFF0C\u82E5\u6CA1\u6709\u8BC1\u4E66\u586B\u5199\u201C\u65E0\u201D"
24483
+ })))), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
24484
+ span: 6
24485
+ }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
24486
+ label: "\u9762\u79EF\u5355\u4F4D"
24487
+ }, getFieldDecorator("realEstateDataDto[".concat(index, "].realEstateUnit"), {
24488
+ rules: readOnly ? [] : [{
24489
+ required: true,
24490
+ message: '请选择面积单位'
24491
+ }]
24492
+ })(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyDiv$3, null) : /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select, {
24493
+ placeholder: "\u8BF7\u9009\u62E9",
24494
+ style: {
24495
+ width: '100%'
24496
+ }
24497
+ }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select.Option, {
24498
+ value: "\u5E73\u65B9\u5343\u7C73"
24499
+ }, "\u5E73\u65B9\u5343\u7C73"), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select.Option, {
24500
+ value: "\u5E73\u65B9\u7C73"
24501
+ }, "\u5E73\u65B9\u7C73"), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select.Option, {
24502
+ value: "\u516C\u9877"
24503
+ }, "\u516C\u9877"), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select.Option, {
24504
+ value: "\u4EA9"
24505
+ }, "\u4EA9"), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select.Option, {
24506
+ value: "h\u33A1"
24507
+ }, "h\u33A1"), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select.Option, {
24508
+ value: "k\u33A1"
24509
+ }, "k\u33A1"), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select.Option, {
24510
+ value: "\u33A1"
24511
+ }, "\u33A1"))))));
24512
+ }
24513
+ });
24514
+ };
24515
+
24318
24516
  return /*#__PURE__*/React__default['default'].createElement("div", {
24319
24517
  className: "kts-invoice-operate-real-estate-info-digtal"
24320
24518
  }, /*#__PURE__*/React__default['default'].createElement("div", {
24321
24519
  className: 'real-estate-info-digtal-label'
24322
- }, "\u7279\u6B8A\u4FE1\u606F-\u4E0D\u52A8\u4EA7\u7ECF\u8425\u79DF\u8D41\u670D\u52A1"), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Row, {
24323
- gutter: [17, 0]
24324
- }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
24325
- span: 6
24326
- }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
24327
- label: "\u4E0D\u52A8\u4EA7\u5730\u5740"
24328
- }, getFieldDecorator('realEstateAddress', {
24329
- rules: readOnly ? [] : [{
24330
- required: true,
24331
- message: '请选择不动产地址'
24332
- }]
24333
- })(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyArrString, null) : /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Cascader, {
24334
- style: {
24335
- width: '100%'
24336
- },
24337
- options: props.realEstateAddressOptions,
24338
- fieldNames: props.realEstateAddressFieldNames,
24339
- placeholder: "\u8BF7\u9009\u62E9\u7701\u5E02\u533A\u53BF"
24340
- })))), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
24341
- span: 6
24342
- }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
24343
- label: "\u8BE6\u7EC6\u5730\u5740"
24344
- }, getFieldDecorator('realEstateDetailedAddress', {
24345
- rules: readOnly ? [] : [{
24346
- required: true,
24347
- message: '请输入详细地址'
24348
- }, {
24349
- max: 120,
24350
- message: '详细地址最多120个字符'
24351
- }, {
24352
- validator: function validator(_, value) {
24353
- var pattern = /街|路|村|乡|镇|道|巷|号/;
24354
- return pattern.test(value) ? Promise.resolve() : Promise.reject('地址必须包含“街”、“路”、“村”、“乡”、“镇”、“道”、“巷”、“号”等任意一个关键词');
24355
- }
24356
- }]
24357
- })(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyDiv$3, null) : /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Input, {
24358
- autoComplete: 'off',
24359
- placeholder: "\u8BF7\u8F93\u5165\u8BE6\u7EC6\u5730\u5740"
24360
- })))), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
24361
- span: 6
24362
- }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
24363
- label: "\u79DF\u8D41\u671F\u8D77\u6B62"
24364
- }, getFieldDecorator('leaseTerm', {
24365
- rules: readOnly ? [] : [{
24366
- required: true,
24367
- message: '请输入租赁期'
24368
- }]
24369
- })(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyArrMoment, null) : /*#__PURE__*/React__default['default'].createElement(RangePicker, {
24370
- style: {
24371
- width: '100%'
24372
- }
24373
- })))), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
24374
- span: 6
24375
- }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
24376
- label: "\u8DE8\u5730\uFF08\u5E02\uFF09\u6807\u5FD7"
24377
- }, getFieldDecorator('crossCitiesSign', {
24378
- rules: readOnly ? [] : [{
24379
- required: true,
24380
- message: '请选择跨地(市)标志'
24381
- }]
24382
- })(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyNY, null) : /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select, {
24383
- placeholder: "\u8BF7\u9009\u62E9",
24384
- style: {
24385
- width: '100%'
24386
- }
24387
- }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select.Option, {
24388
- value: 'Y'
24389
- }, "\u662F"), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select.Option, {
24390
- value: 'N'
24391
- }, "\u5426"))))), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
24392
- span: 6
24393
- }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
24394
- label: "\u4EA7\u6743\u8BC1\u4E66/\u4E0D\u52A8\u4EA7\u6743\u8BC1\u53F7"
24395
- }, getFieldDecorator('realEstateNumber', {
24396
- rules: readOnly ? [] : [{
24397
- required: true,
24398
- message: '请输入证书编号,若没有证书填写“无”'
24399
- }, {
24400
- max: 40,
24401
- message: '证书编号最多40个字符'
24402
- }]
24403
- })(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyDiv$3, null) : /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Input, {
24404
- autoComplete: 'off',
24405
- placeholder: "\u8BF7\u8F93\u5165\u8BC1\u4E66\u7F16\u53F7\uFF0C\u82E5\u6CA1\u6709\u8BC1\u4E66\u586B\u5199\u201C\u65E0\u201D"
24406
- })))), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
24407
- span: 6
24408
- }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
24409
- label: "\u9762\u79EF\u5355\u4F4D"
24410
- }, getFieldDecorator('realEstateUnit', {
24411
- rules: readOnly ? [] : [{
24412
- required: true,
24413
- message: '请选择面积单位'
24414
- }]
24415
- })(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyDiv$3, null) : /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select, {
24416
- placeholder: "\u8BF7\u9009\u62E9",
24417
- style: {
24418
- width: '100%'
24419
- }
24420
- }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select.Option, {
24421
- value: "\u5E73\u65B9\u5343\u7C73"
24422
- }, "\u5E73\u65B9\u5343\u7C73"), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select.Option, {
24423
- value: "\u5E73\u65B9\u7C73"
24424
- }, "\u5E73\u65B9\u7C73"), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select.Option, {
24425
- value: "\u516C\u9877"
24426
- }, "\u516C\u9877"), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select.Option, {
24427
- value: "\u4EA9"
24428
- }, "\u4EA9"), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select.Option, {
24429
- value: "h\u33A1"
24430
- }, "h\u33A1"), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select.Option, {
24431
- value: "k\u33A1"
24432
- }, "k\u33A1"), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select.Option, {
24433
- value: "\u33A1"
24434
- }, "\u33A1")))))));
24520
+ }, "\u7279\u6B8A\u4FE1\u606F-\u4E0D\u52A8\u4EA7\u7ECF\u8425\u79DF\u8D41\u670D\u52A1"), getList());
24435
24521
  });
24436
24522
 
24437
24523
  var MyDiv$3 = /*#__PURE__*/function (_React$Component) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kts-component-invoice-operate",
3
- "version": "3.2.213",
3
+ "version": "4.0.1",
4
4
  "scripts": {
5
5
  "dev": "dumi dev --max-old-space-size=6096",
6
6
  "start": "dumi dev",
@@ -122,14 +122,16 @@ export default () => {
122
122
  }
123
123
  React.useEffect(() => {
124
124
  controller.run(async s => {
125
- s.stakeholder.enables = ['taxAmount'];
126
- s.priceIntegerDigit = 25;
127
- s.calculatingDigits = 25;
125
+ s.goodsListState.isRecalculateWhenSwitchTax = true;
128
126
  s.goodsListState.isTaxIncluded = false;
129
- s.goodsListState.amountExcludeTax = parseFloat(data?.invoiceAmount) || undefined;
130
- s.goodsListState.amountIncludeTax = parseFloat(data?.totalAmount) || undefined;
131
- s.goodsListState.amountTax = parseFloat(data?.taxAmount) || undefined;
132
- s.goodsListState.goodsList = data?.detailList?.map(e => sToCi(e)) ?? [];
127
+ // s.stakeholder.enables = ['taxAmount'];
128
+ // s.priceIntegerDigit = 25;
129
+ // s.calculatingDigits = 25;
130
+ // s.goodsListState.isTaxIncluded = false;
131
+ // s.goodsListState.amountExcludeTax = parseFloat(data?.invoiceAmount) || undefined;
132
+ // s.goodsListState.amountIncludeTax = parseFloat(data?.totalAmount) || undefined;
133
+ // s.goodsListState.amountTax = parseFloat(data?.taxAmount) || undefined;
134
+ // s.goodsListState.goodsList = data?.detailList?.map(e => sToCi(e)) ?? [];
133
135
  })
134
136
  }, [controller])
135
137
  return (
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import Invoice from '../../..';
3
3
  import moment from 'moment';
4
4
  import 'antd/dist/antd.css';
5
-
5
+ import { Button } from 'kts-components-antd-x3';
6
6
  export default () => {
7
7
 
8
8
  const controller = React.useMemo(() => new Invoice.InvoiceController(), []);
@@ -11,12 +11,18 @@ export default () => {
11
11
  controller.run(async s => {
12
12
  })
13
13
  }, [])
14
-
14
+ const onSave =async ()=>{
15
+ const formValues = await controller.validateFields();
16
+ console.log(formValues)
17
+ }
15
18
  return (
19
+ <>
20
+ <Button onClick={onSave}>输出表单内容</Button>
16
21
  <Invoice
17
22
  invoiceType='digtal'
18
23
  controller={controller}
19
24
  specialInfor={<Invoice.RealEstateInfo />}
20
25
  />
26
+ </>
21
27
  )
22
28
  };
@@ -1,10 +1,13 @@
1
1
  # 数电
2
2
 
3
- ## 简单用法
4
- <code src="./_test/easiest/index.tsx"></code>
3
+ <!-- ## 简单用法
4
+ <code src="./_test/easiest/index.tsx"></code> -->
5
5
 
6
- ## 建筑服务
7
- <code src="./_test/architecture/index.tsx"></code>
6
+ ## 不动产经营租赁服务
7
+ <code src="./_test/realEstateInfo/index.tsx"></code>
8
+
9
+ <!-- ## 建筑服务
10
+ <code src="./_test/architecture/index.tsx"></code> -->
8
11
 
9
12
  <!-- ## 只读模式
10
13
  <code src="./_test/readOnly/index.tsx"></code> -->
@@ -33,10 +36,9 @@
33
36
  ## 查看当前可用授信额度
34
37
  <code src="./_test/lineCredit/index.tsx"></code>
35
38
 
36
- ## 不动产经营租赁服务
37
- <code src="./_test/realEstateInfo/index.tsx"></code>
39
+
38
40
 
39
41
  -->
40
42
 
41
- ## 货物运输服务
42
- <code src="./_test/freight/index.tsx"></code>
43
+ <!-- ## 货物运输服务
44
+ <code src="./_test/freight/index.tsx"></code> -->
@@ -484,7 +484,7 @@ export default (form: WrappedFormUtils) => {
484
484
  </Form.Item>
485
485
  );
486
486
  } else {
487
-
487
+
488
488
  return <span style={{ padding: '0 10px' }}>{value === '' ? '' : formatSearch(parseFloat(value).toFixed(2), searchValue)}</span>;
489
489
  }
490
490
  },
@@ -530,7 +530,7 @@ export default (form: WrappedFormUtils) => {
530
530
  </Form.Item>
531
531
  );
532
532
  } else {
533
- return <span style={{ padding: '0 10px' }}>{isDutyFree(record) ? '免税' : `${value}%`}</span>;
533
+ return <span style={{ padding: '0 10px' }}>{isDutyFree(record) ? '免税' : value === '' ? '' : `${value}%`}</span>;
534
534
  }
535
535
  },
536
536
  },
@@ -547,7 +547,7 @@ export default (form: WrappedFormUtils) => {
547
547
  rules: getReplenishRules('taxAmount'),
548
548
  })(<MyDiv loading={isCipher(changeField, 'taxAmount')} />);
549
549
  } else {
550
- return <span style={{ padding: '0 10px' }}>{isDutyFree(record) ? '***' : value ? parseFloat(value).toFixed(2) : ''}</span>;
550
+ return <span style={{ padding: '0 10px' }}>{isDutyFree(record) ? '***' : value === '' ? '' : parseFloat(value).toFixed(2)}</span>;
551
551
  }
552
552
  },
553
553
  },
@@ -453,8 +453,7 @@ export default (form: WrappedFormUtils) => {
453
453
  </Form.Item>
454
454
  );
455
455
  } else {
456
- console.log(value)
457
- return <span style={{ padding: '0 10px' }}>{value === '' ? '' :formatSearch(parseFloat(value).toFixed(2), searchValue)}</span>;
456
+ return <span style={{ padding: '0 10px' }}>{formatSearch(parseFloat(value).toFixed(2), searchValue)}</span>;
458
457
  }
459
458
  },
460
459
  },
@@ -87,11 +87,11 @@ export default () => {
87
87
  <div>价税合计(大写)</div>
88
88
  <div style={{ paddingLeft: 30 }} >
89
89
  <Icon style={{fontSize: 16}} component={ForkSvg} />
90
- <span style={{ fontWeight: 'bold', marginLeft: 4 }} >{lineAmountIncludeTax?Money.toStringChinese(lineAmountIncludeTax):''}</span>
90
+ <span style={{ fontWeight: 'bold', marginLeft: 4 }} >{Money.toStringChinese(lineAmountIncludeTax)}</span>
91
91
  </div>
92
92
  <div style={{ flex: 1 }} />
93
93
  <div style={{ width: 90, color: '#9F613E' }} >(小写)</div>
94
- <div style={{ minWidth: 119, maxWidth: 300 }} >¥{lineAmountIncludeTax?parseFloat(lineAmountIncludeTax).toFixed(2):''}</div>
94
+ <div style={{ minWidth: 119, maxWidth: 300 }} >¥{parseFloat(lineAmountIncludeTax).toFixed(2)}</div>
95
95
  </div>
96
96
  </div >
97
97
  );
@@ -12,4 +12,11 @@
12
12
  .ktsAnt3x-row.ktsAnt3x-form-item {
13
13
  margin-bottom: 0;
14
14
  }
15
+ .ktsAntX-row{
16
+ border-bottom: 1px dashed #9F613E;
17
+ &:last-child {
18
+ border-bottom: none;
19
+ }
20
+ }
21
+
15
22
  }
@@ -1,5 +1,5 @@
1
1
 
2
- import React from "react";
2
+ import React, { useEffect } from "react";
3
3
  import { decorator } from 'grey-react-box';
4
4
  import { Form } from 'kts-components-antd-x3';
5
5
  import { FormComponentProps } from 'kts-components-antd-x3/lib/form';
@@ -36,110 +36,164 @@ export default decorator<RealEstateInfoProps, FormComponentProps & RealEstateInf
36
36
 
37
37
  const readOnly = React.useMemo(() => model === 'readOnly', [model]);
38
38
 
39
+ const goodsList = controller.useMemo(s => s.goodsListState.goodsList, []);
40
+ const indexRef = React.useRef<any>([]);
41
+ useEffect(() => {
42
+ const dd = goodsList?.reduce((acc: any, cur: any) => {
43
+ if (cur.lineAttribute === 0) {
44
+ acc.push(cur.$index)
45
+ }
46
+ return acc
47
+ }, [])
48
+ indexRef.current = dd;
49
+ }, [goodsList, indexRef])
39
50
  // 注册 form
40
51
  controller.useForm('realEstateInfo', form);
41
-
52
+ const getList = () => {
53
+ const decrease = indexRef.current.length > goodsList.length
54
+ if (decrease) {
55
+ //已删行列表
56
+ const diff = indexRef.current.filter((item: any) => !goodsList.find(i => i.$index === item));
57
+
58
+ const formData: any[] = form.getFieldValue('realEstateDataDto');
59
+ if (Array.isArray(formData) && diff.length > 0) {
60
+
61
+ const newForm = formData?.filter(item => !diff.find((i: any) => i === item.$index));
62
+
63
+ form.setFieldsValue({
64
+ realEstateDataDto: newForm
65
+ });
66
+ } else {
67
+ form.setFieldsValue({
68
+ realEstateDataDto: undefined
69
+ });
70
+ }
71
+ }
72
+ return goodsList.map((item, index) => {
73
+ if (item.lineAttribute === 0) {
74
+ return <Row gutter={[17, 0]} >
75
+ <Col span={6} >
76
+ <Form.Item style={{ display: 'none' }}>
77
+ {getFieldDecorator(`realEstateDataDto[${index}].$index`, {
78
+ initialValue: item.$index,
79
+ })(
80
+ <Input />
81
+ )}
82
+ </Form.Item>
83
+ <Form.Item label='不动产地址'>
84
+ {getFieldDecorator(`realEstateDataDto[${index}].realEstateAddress`, {
85
+ rules: readOnly ? [] : [{ required: true, message: '请选择不动产地址' }]
86
+ })(
87
+ readOnly
88
+ ? (<MyArrString />)
89
+ : (<Cascader
90
+ style={{ width: '100%' }}
91
+ options={[{
92
+ "name": "北京市",
93
+ }] || props.realEstateAddressOptions}
94
+ fieldNames={{
95
+ label: 'name',
96
+ value: 'name',
97
+ children: 'children'
98
+ } || props.realEstateAddressFieldNames}
99
+ placeholder="请选择省市区县"
100
+ />)
101
+ )}
102
+ </Form.Item>
103
+ </Col>
104
+ <Col span={6} >
105
+ <Form.Item label='详细地址' >
106
+ {getFieldDecorator(`realEstateDataDto[${index}].realEstateDetailedAddress`, {
107
+ rules: readOnly ? [] : [
108
+ { required: true, message: '请输入详细地址' },
109
+ { max: 120, message: '详细地址最多120个字符' },
110
+ {
111
+ validator: async (_, value, callback) => {
112
+ const pattern = /街|路|村|乡|镇|道|巷|号/;
113
+ if (pattern.test(value)) {
114
+ callback()
115
+ } else {
116
+ callback('地址必须包含“街”、“路”、“村”、“乡”、“镇”、“道”、“巷”、“号”等任意一个关键词')
117
+ }
118
+ }
119
+ }
120
+ ]
121
+ })(
122
+ readOnly
123
+ ? <MyDiv />
124
+ : <Input autoComplete='off' placeholder="请输入详细地址" />
125
+ )}
126
+ </Form.Item>
127
+ </Col>
128
+ <Col span={6} >
129
+ <Form.Item label='租赁期起止' >
130
+ {getFieldDecorator(`realEstateDataDto[${index}].leaseTerm`, {
131
+ rules: readOnly ? [] : [{ required: true, message: '请输入租赁期' }]
132
+ })(
133
+ readOnly
134
+ ? <MyArrMoment />
135
+ : <RangePicker style={{ width: '100%' }} />
136
+ )}
137
+ </Form.Item>
138
+ </Col>
139
+ <Col span={6} >
140
+ <Form.Item label='跨地(市)标志' >
141
+ {getFieldDecorator(`realEstateDataDto[${index}].crossCitiesSign`, {
142
+ rules: readOnly ? [] : [
143
+ { required: true, message: '请选择跨地(市)标志' }
144
+ ]
145
+ })(
146
+ readOnly
147
+ ? <MyNY />
148
+ : <Select placeholder='请选择' style={{ width: '100%' }} >
149
+ <Select.Option value='Y'>是</Select.Option>
150
+ <Select.Option value='N'>否</Select.Option>
151
+ </Select>
152
+ )}
153
+ </Form.Item>
154
+ </Col>
155
+ <Col span={6} >
156
+ <Form.Item label='产权证书/不动产权证号' >
157
+ {getFieldDecorator(`realEstateDataDto[${index}].realEstateNumber`, {
158
+ rules: readOnly ? [] : [
159
+ { required: true, message: '请输入证书编号,若没有证书填写“无”' },
160
+ { max: 40, message: '证书编号最多40个字符' },
161
+ ]
162
+ })(
163
+ readOnly
164
+ ? <MyDiv />
165
+ : <Input autoComplete='off' placeholder="请输入证书编号,若没有证书填写“无”" />
166
+ )}
167
+ </Form.Item>
168
+ </Col>
169
+ <Col span={6} >
170
+ <Form.Item label='面积单位' >
171
+ {getFieldDecorator(`realEstateDataDto[${index}].realEstateUnit`, {
172
+ rules: readOnly ? [] : [{ required: true, message: '请选择面积单位' }]
173
+ })(
174
+ readOnly
175
+ ? <MyDiv />
176
+ : <Select placeholder='请选择' style={{ width: '100%' }} >
177
+ <Select.Option value="平方千米">平方千米</Select.Option>
178
+ <Select.Option value="平方米">平方米</Select.Option>
179
+ <Select.Option value="公顷">公顷</Select.Option>
180
+ <Select.Option value="亩">亩</Select.Option>
181
+ <Select.Option value="h㎡">h㎡</Select.Option>
182
+ <Select.Option value="k㎡">k㎡</Select.Option>
183
+ <Select.Option value="㎡">㎡</Select.Option>
184
+ </Select>
185
+ )}
186
+ </Form.Item>
187
+ </Col>
188
+ </Row>
189
+ }
190
+ })
191
+ }
42
192
  return (
43
193
  <div className="kts-invoice-operate-real-estate-info-digtal">
44
194
  <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
- : (<Cascader
54
- style={{ width: '100%' }}
55
- options={props.realEstateAddressOptions}
56
- fieldNames={props.realEstateAddressFieldNames}
57
- placeholder="请选择省市区县"
58
- />)
59
- )}
60
- </Form.Item>
61
- </Col>
62
- <Col span={6} >
63
- <Form.Item label='详细地址' >
64
- {getFieldDecorator('realEstateDetailedAddress', {
65
- rules: readOnly ? [] : [
66
- { required: true, message: '请输入详细地址' },
67
- { max: 120, message: '详细地址最多120个字符' },
68
- {
69
- validator: (_, value) => {
70
- const pattern = /街|路|村|乡|镇|道|巷|号/;
71
- return pattern.test(value) ? Promise.resolve() : Promise.reject('地址必须包含“街”、“路”、“村”、“乡”、“镇”、“道”、“巷”、“号”等任意一个关键词');
72
- }
73
- }
74
- ]
75
- })(
76
- readOnly
77
- ? <MyDiv />
78
- : <Input autoComplete='off' placeholder="请输入详细地址" />
79
- )}
80
- </Form.Item>
81
- </Col>
82
- <Col span={6} >
83
- <Form.Item label='租赁期起止' >
84
- {getFieldDecorator('leaseTerm', {
85
- rules: readOnly ? [] : [{ required: true, message: '请输入租赁期' }]
86
- })(
87
- readOnly
88
- ? <MyArrMoment />
89
- : <RangePicker style={{ width: '100%' }} />
90
- )}
91
- </Form.Item>
92
- </Col>
93
- <Col span={6} >
94
- <Form.Item label='跨地(市)标志' >
95
- {getFieldDecorator('crossCitiesSign', {
96
- rules: readOnly ? [] : [
97
- { required: true, message: '请选择跨地(市)标志' }
98
- ]
99
- })(
100
- readOnly
101
- ? <MyNY />
102
- : <Select placeholder='请选择' style={{ width: '100%' }} >
103
- <Select.Option value='Y'>是</Select.Option>
104
- <Select.Option value='N'>否</Select.Option>
105
- </Select>
106
- )}
107
- </Form.Item>
108
- </Col>
109
- <Col span={6} >
110
- <Form.Item label='产权证书/不动产权证号' >
111
- {getFieldDecorator('realEstateNumber', {
112
- rules: readOnly ? [] : [
113
- { required: true, message: '请输入证书编号,若没有证书填写“无”' },
114
- { max: 40, message: '证书编号最多40个字符' },
115
- ]
116
- })(
117
- readOnly
118
- ? <MyDiv />
119
- : <Input autoComplete='off' placeholder="请输入证书编号,若没有证书填写“无”" />
120
- )}
121
- </Form.Item>
122
- </Col>
123
- <Col span={6} >
124
- <Form.Item label='面积单位' >
125
- {getFieldDecorator('realEstateUnit', {
126
- rules: readOnly ? [] : [{ required: true, message: '请选择面积单位' }]
127
- })(
128
- readOnly
129
- ? <MyDiv />
130
- : <Select placeholder='请选择' style={{ width: '100%' }} >
131
- <Select.Option value="平方千米">平方千米</Select.Option>
132
- <Select.Option value="平方米">平方米</Select.Option>
133
- <Select.Option value="公顷">公顷</Select.Option>
134
- <Select.Option value="亩">亩</Select.Option>
135
- <Select.Option value="h㎡">h㎡</Select.Option>
136
- <Select.Option value="k㎡">k㎡</Select.Option>
137
- <Select.Option value="㎡">㎡</Select.Option>
138
- </Select>
139
- )}
140
- </Form.Item>
141
- </Col>
142
- </Row>
195
+ {getList()}
196
+
143
197
  </div>
144
198
  )
145
199
  })