kts-component-invoice-operate 3.2.144 → 3.2.146

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/index.esm.js CHANGED
@@ -22713,8 +22713,18 @@ var RangePicker = DatePicker.RangePicker;
22713
22713
  /** 特殊信息-不动产经营租赁服务 */
22714
22714
 
22715
22715
  var RealEstateInfo = decorator(Form.create())(function (props) {
22716
+ /** 控制器 */
22717
+ var controller = Invoice.useInvoiceController();
22716
22718
  var form = props.form;
22717
22719
  var getFieldDecorator = form.getFieldDecorator;
22720
+ var model = controller.useMemo(function (s) {
22721
+ return s.model;
22722
+ }, []);
22723
+ var readOnly = React.useMemo(function () {
22724
+ return model === 'readOnly';
22725
+ }, [model]); // 注册 form
22726
+
22727
+ controller.useForm('realEstateInfo', form);
22718
22728
  return /*#__PURE__*/React.createElement("div", {
22719
22729
  className: "kts-invoice-operate-real-estate-info-digtal"
22720
22730
  }, /*#__PURE__*/React.createElement("div", {
@@ -22726,11 +22736,11 @@ var RealEstateInfo = decorator(Form.create())(function (props) {
22726
22736
  }, /*#__PURE__*/React.createElement(Form.Item, {
22727
22737
  label: "\u4E0D\u52A8\u4EA7\u5730\u5740"
22728
22738
  }, getFieldDecorator('realEstateAddress', {
22729
- rules: [{
22739
+ rules: readOnly ? [] : [{
22730
22740
  required: true,
22731
22741
  message: '请选择不动产地址'
22732
22742
  }]
22733
- })( /*#__PURE__*/React.createElement(Cascader, {
22743
+ })(readOnly ? /*#__PURE__*/React.createElement(MyArrString, null) : /*#__PURE__*/React.createElement(Cascader, {
22734
22744
  style: {
22735
22745
  width: '100%'
22736
22746
  },
@@ -22742,7 +22752,7 @@ var RealEstateInfo = decorator(Form.create())(function (props) {
22742
22752
  }, /*#__PURE__*/React.createElement(Form.Item, {
22743
22753
  label: "\u8BE6\u7EC6\u5730\u5740"
22744
22754
  }, getFieldDecorator('realEstateDetailedAddress', {
22745
- rules: [{
22755
+ rules: readOnly ? [] : [{
22746
22756
  required: true,
22747
22757
  message: '请输入详细地址'
22748
22758
  }, {
@@ -22754,7 +22764,7 @@ var RealEstateInfo = decorator(Form.create())(function (props) {
22754
22764
  return pattern.test(value) ? Promise.resolve() : Promise.reject('地址必须包含“街”、“路”、“村”、“乡”、“镇”、“道”、“巷”、“号”等任意一个关键词');
22755
22765
  }
22756
22766
  }]
22757
- })( /*#__PURE__*/React.createElement(Input$2, {
22767
+ })(readOnly ? /*#__PURE__*/React.createElement(MyDiv$3, null) : /*#__PURE__*/React.createElement(Input$2, {
22758
22768
  autoComplete: 'off',
22759
22769
  placeholder: "\u8BF7\u8F93\u5165\u8BE6\u7EC6\u5730\u5740"
22760
22770
  })))), /*#__PURE__*/React.createElement(Col$1, {
@@ -22762,11 +22772,11 @@ var RealEstateInfo = decorator(Form.create())(function (props) {
22762
22772
  }, /*#__PURE__*/React.createElement(Form.Item, {
22763
22773
  label: "\u79DF\u8D41\u671F\u8D77\u6B62"
22764
22774
  }, getFieldDecorator('leaseTerm', {
22765
- rules: [{
22775
+ rules: readOnly ? [] : [{
22766
22776
  required: true,
22767
22777
  message: '请输入租赁期'
22768
22778
  }]
22769
- })( /*#__PURE__*/React.createElement(RangePicker, {
22779
+ })(readOnly ? /*#__PURE__*/React.createElement(MyArrMoment, null) : /*#__PURE__*/React.createElement(RangePicker, {
22770
22780
  style: {
22771
22781
  width: '100%'
22772
22782
  }
@@ -22775,11 +22785,11 @@ var RealEstateInfo = decorator(Form.create())(function (props) {
22775
22785
  }, /*#__PURE__*/React.createElement(Form.Item, {
22776
22786
  label: "\u8DE8\u5730\uFF08\u5E02\uFF09\u6807\u5FD7"
22777
22787
  }, getFieldDecorator('crossCitiesSign', {
22778
- rules: [{
22788
+ rules: readOnly ? [] : [{
22779
22789
  required: true,
22780
22790
  message: '请选择跨地(市)标志'
22781
22791
  }]
22782
- })( /*#__PURE__*/React.createElement(Select$2, {
22792
+ })(readOnly ? /*#__PURE__*/React.createElement(MyNY, null) : /*#__PURE__*/React.createElement(Select$2, {
22783
22793
  placeholder: "\u8BF7\u9009\u62E9",
22784
22794
  style: {
22785
22795
  width: '100%'
@@ -22793,14 +22803,14 @@ var RealEstateInfo = decorator(Form.create())(function (props) {
22793
22803
  }, /*#__PURE__*/React.createElement(Form.Item, {
22794
22804
  label: "\u4EA7\u6743\u8BC1\u4E66/\u4E0D\u52A8\u4EA7\u6743\u8BC1\u53F7"
22795
22805
  }, getFieldDecorator('realEstateNumber', {
22796
- rules: [{
22806
+ rules: readOnly ? [] : [{
22797
22807
  required: true,
22798
22808
  message: '请输入证书编号,若没有证书填写“无”'
22799
22809
  }, {
22800
22810
  max: 40,
22801
22811
  message: '证书编号最多40个字符'
22802
22812
  }]
22803
- })( /*#__PURE__*/React.createElement(Input$2, {
22813
+ })(readOnly ? /*#__PURE__*/React.createElement(MyDiv$3, null) : /*#__PURE__*/React.createElement(Input$2, {
22804
22814
  autoComplete: 'off',
22805
22815
  placeholder: "\u8BF7\u8F93\u5165\u8BC1\u4E66\u7F16\u53F7\uFF0C\u82E5\u6CA1\u6709\u8BC1\u4E66\u586B\u5199\u201C\u65E0\u201D"
22806
22816
  })))), /*#__PURE__*/React.createElement(Col$1, {
@@ -22808,11 +22818,11 @@ var RealEstateInfo = decorator(Form.create())(function (props) {
22808
22818
  }, /*#__PURE__*/React.createElement(Form.Item, {
22809
22819
  label: "\u9762\u79EF\u5355\u4F4D"
22810
22820
  }, getFieldDecorator('realEstateUnit', {
22811
- rules: [{
22821
+ rules: readOnly ? [] : [{
22812
22822
  required: true,
22813
22823
  message: '请选择面积单位'
22814
22824
  }]
22815
- })( /*#__PURE__*/React.createElement(Select$2, {
22825
+ })(readOnly ? /*#__PURE__*/React.createElement(MyDiv$3, null) : /*#__PURE__*/React.createElement(Select$2, {
22816
22826
  placeholder: "\u8BF7\u9009\u62E9",
22817
22827
  style: {
22818
22828
  width: '100%'
@@ -22849,6 +22859,108 @@ var RealEstateInfo = decorator(Form.create())(function (props) {
22849
22859
  }, "2")))))))));
22850
22860
  });
22851
22861
 
22862
+ var MyDiv$3 = /*#__PURE__*/function (_React$Component) {
22863
+ _inherits(MyDiv, _React$Component);
22864
+
22865
+ var _super = _createSuper(MyDiv);
22866
+
22867
+ function MyDiv() {
22868
+ _classCallCheck(this, MyDiv);
22869
+
22870
+ return _super.apply(this, arguments);
22871
+ }
22872
+
22873
+ _createClass(MyDiv, [{
22874
+ key: "render",
22875
+ value: function render() {
22876
+ return /*#__PURE__*/React.createElement("div", {
22877
+ style: this.props.style
22878
+ }, this.props.value);
22879
+ }
22880
+ }]);
22881
+
22882
+ return MyDiv;
22883
+ }(React.Component);
22884
+
22885
+ var MyArrString = /*#__PURE__*/function (_React$Component2) {
22886
+ _inherits(MyArrString, _React$Component2);
22887
+
22888
+ var _super2 = _createSuper(MyArrString);
22889
+
22890
+ function MyArrString() {
22891
+ _classCallCheck(this, MyArrString);
22892
+
22893
+ return _super2.apply(this, arguments);
22894
+ }
22895
+
22896
+ _createClass(MyArrString, [{
22897
+ key: "render",
22898
+ value: function render() {
22899
+ var _this$props$value;
22900
+
22901
+ return /*#__PURE__*/React.createElement("div", {
22902
+ style: this.props.style
22903
+ }, (_this$props$value = this.props.value) === null || _this$props$value === void 0 ? void 0 : _this$props$value.filter(function (e) {
22904
+ return !!e;
22905
+ }).join(','));
22906
+ }
22907
+ }]);
22908
+
22909
+ return MyArrString;
22910
+ }(React.Component);
22911
+
22912
+ var MyArrMoment = /*#__PURE__*/function (_React$Component3) {
22913
+ _inherits(MyArrMoment, _React$Component3);
22914
+
22915
+ var _super3 = _createSuper(MyArrMoment);
22916
+
22917
+ function MyArrMoment() {
22918
+ _classCallCheck(this, MyArrMoment);
22919
+
22920
+ return _super3.apply(this, arguments);
22921
+ }
22922
+
22923
+ _createClass(MyArrMoment, [{
22924
+ key: "render",
22925
+ value: function render() {
22926
+ var _this$props$value2;
22927
+
22928
+ return /*#__PURE__*/React.createElement("div", {
22929
+ style: this.props.style
22930
+ }, (_this$props$value2 = this.props.value) === null || _this$props$value2 === void 0 ? void 0 : _this$props$value2.map(function (e) {
22931
+ return hooks.isMoment(e) && e.format('YYYY-MM-DD');
22932
+ }).filter(function (e) {
22933
+ return !!e;
22934
+ }).join('~'));
22935
+ }
22936
+ }]);
22937
+
22938
+ return MyArrMoment;
22939
+ }(React.Component);
22940
+
22941
+ var MyNY = /*#__PURE__*/function (_React$Component4) {
22942
+ _inherits(MyNY, _React$Component4);
22943
+
22944
+ var _super4 = _createSuper(MyNY);
22945
+
22946
+ function MyNY() {
22947
+ _classCallCheck(this, MyNY);
22948
+
22949
+ return _super4.apply(this, arguments);
22950
+ }
22951
+
22952
+ _createClass(MyNY, [{
22953
+ key: "render",
22954
+ value: function render() {
22955
+ return /*#__PURE__*/React.createElement("div", {
22956
+ style: this.props.style
22957
+ }, this.props.value === 'Y' ? '是' : '否');
22958
+ }
22959
+ }]);
22960
+
22961
+ return MyNY;
22962
+ }(React.Component);
22963
+
22852
22964
  var ImportBuyerDrawer = (function () {
22853
22965
  var controller = Invoice.useInvoiceController();
22854
22966
  var visible = controller.useMemo(function (s) {
package/dist/index.js CHANGED
@@ -22723,8 +22723,18 @@ var RangePicker = ktsComponentsAntdX4.DatePicker.RangePicker;
22723
22723
  /** 特殊信息-不动产经营租赁服务 */
22724
22724
 
22725
22725
  var RealEstateInfo = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(function (props) {
22726
+ /** 控制器 */
22727
+ var controller = Invoice.useInvoiceController();
22726
22728
  var form = props.form;
22727
22729
  var getFieldDecorator = form.getFieldDecorator;
22730
+ var model = controller.useMemo(function (s) {
22731
+ return s.model;
22732
+ }, []);
22733
+ var readOnly = React__default['default'].useMemo(function () {
22734
+ return model === 'readOnly';
22735
+ }, [model]); // 注册 form
22736
+
22737
+ controller.useForm('realEstateInfo', form);
22728
22738
  return /*#__PURE__*/React__default['default'].createElement("div", {
22729
22739
  className: "kts-invoice-operate-real-estate-info-digtal"
22730
22740
  }, /*#__PURE__*/React__default['default'].createElement("div", {
@@ -22736,11 +22746,11 @@ var RealEstateInfo = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(f
22736
22746
  }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
22737
22747
  label: "\u4E0D\u52A8\u4EA7\u5730\u5740"
22738
22748
  }, getFieldDecorator('realEstateAddress', {
22739
- rules: [{
22749
+ rules: readOnly ? [] : [{
22740
22750
  required: true,
22741
22751
  message: '请选择不动产地址'
22742
22752
  }]
22743
- })( /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Cascader, {
22753
+ })(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyArrString, null) : /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Cascader, {
22744
22754
  style: {
22745
22755
  width: '100%'
22746
22756
  },
@@ -22752,7 +22762,7 @@ var RealEstateInfo = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(f
22752
22762
  }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
22753
22763
  label: "\u8BE6\u7EC6\u5730\u5740"
22754
22764
  }, getFieldDecorator('realEstateDetailedAddress', {
22755
- rules: [{
22765
+ rules: readOnly ? [] : [{
22756
22766
  required: true,
22757
22767
  message: '请输入详细地址'
22758
22768
  }, {
@@ -22764,7 +22774,7 @@ var RealEstateInfo = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(f
22764
22774
  return pattern.test(value) ? Promise.resolve() : Promise.reject('地址必须包含“街”、“路”、“村”、“乡”、“镇”、“道”、“巷”、“号”等任意一个关键词');
22765
22775
  }
22766
22776
  }]
22767
- })( /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Input, {
22777
+ })(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyDiv$3, null) : /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Input, {
22768
22778
  autoComplete: 'off',
22769
22779
  placeholder: "\u8BF7\u8F93\u5165\u8BE6\u7EC6\u5730\u5740"
22770
22780
  })))), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
@@ -22772,11 +22782,11 @@ var RealEstateInfo = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(f
22772
22782
  }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
22773
22783
  label: "\u79DF\u8D41\u671F\u8D77\u6B62"
22774
22784
  }, getFieldDecorator('leaseTerm', {
22775
- rules: [{
22785
+ rules: readOnly ? [] : [{
22776
22786
  required: true,
22777
22787
  message: '请输入租赁期'
22778
22788
  }]
22779
- })( /*#__PURE__*/React__default['default'].createElement(RangePicker, {
22789
+ })(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyArrMoment, null) : /*#__PURE__*/React__default['default'].createElement(RangePicker, {
22780
22790
  style: {
22781
22791
  width: '100%'
22782
22792
  }
@@ -22785,11 +22795,11 @@ var RealEstateInfo = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(f
22785
22795
  }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
22786
22796
  label: "\u8DE8\u5730\uFF08\u5E02\uFF09\u6807\u5FD7"
22787
22797
  }, getFieldDecorator('crossCitiesSign', {
22788
- rules: [{
22798
+ rules: readOnly ? [] : [{
22789
22799
  required: true,
22790
22800
  message: '请选择跨地(市)标志'
22791
22801
  }]
22792
- })( /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select, {
22802
+ })(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyNY, null) : /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select, {
22793
22803
  placeholder: "\u8BF7\u9009\u62E9",
22794
22804
  style: {
22795
22805
  width: '100%'
@@ -22803,14 +22813,14 @@ var RealEstateInfo = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(f
22803
22813
  }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
22804
22814
  label: "\u4EA7\u6743\u8BC1\u4E66/\u4E0D\u52A8\u4EA7\u6743\u8BC1\u53F7"
22805
22815
  }, getFieldDecorator('realEstateNumber', {
22806
- rules: [{
22816
+ rules: readOnly ? [] : [{
22807
22817
  required: true,
22808
22818
  message: '请输入证书编号,若没有证书填写“无”'
22809
22819
  }, {
22810
22820
  max: 40,
22811
22821
  message: '证书编号最多40个字符'
22812
22822
  }]
22813
- })( /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Input, {
22823
+ })(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyDiv$3, null) : /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Input, {
22814
22824
  autoComplete: 'off',
22815
22825
  placeholder: "\u8BF7\u8F93\u5165\u8BC1\u4E66\u7F16\u53F7\uFF0C\u82E5\u6CA1\u6709\u8BC1\u4E66\u586B\u5199\u201C\u65E0\u201D"
22816
22826
  })))), /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Col, {
@@ -22818,11 +22828,11 @@ var RealEstateInfo = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(f
22818
22828
  }, /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX3.Form.Item, {
22819
22829
  label: "\u9762\u79EF\u5355\u4F4D"
22820
22830
  }, getFieldDecorator('realEstateUnit', {
22821
- rules: [{
22831
+ rules: readOnly ? [] : [{
22822
22832
  required: true,
22823
22833
  message: '请选择面积单位'
22824
22834
  }]
22825
- })( /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select, {
22835
+ })(readOnly ? /*#__PURE__*/React__default['default'].createElement(MyDiv$3, null) : /*#__PURE__*/React__default['default'].createElement(ktsComponentsAntdX4.Select, {
22826
22836
  placeholder: "\u8BF7\u9009\u62E9",
22827
22837
  style: {
22828
22838
  width: '100%'
@@ -22859,6 +22869,108 @@ var RealEstateInfo = GreyReactBox.decorator(ktsComponentsAntdX3.Form.create())(f
22859
22869
  }, "2")))))))));
22860
22870
  });
22861
22871
 
22872
+ var MyDiv$3 = /*#__PURE__*/function (_React$Component) {
22873
+ _inherits(MyDiv, _React$Component);
22874
+
22875
+ var _super = _createSuper(MyDiv);
22876
+
22877
+ function MyDiv() {
22878
+ _classCallCheck(this, MyDiv);
22879
+
22880
+ return _super.apply(this, arguments);
22881
+ }
22882
+
22883
+ _createClass(MyDiv, [{
22884
+ key: "render",
22885
+ value: function render() {
22886
+ return /*#__PURE__*/React__default['default'].createElement("div", {
22887
+ style: this.props.style
22888
+ }, this.props.value);
22889
+ }
22890
+ }]);
22891
+
22892
+ return MyDiv;
22893
+ }(React__default['default'].Component);
22894
+
22895
+ var MyArrString = /*#__PURE__*/function (_React$Component2) {
22896
+ _inherits(MyArrString, _React$Component2);
22897
+
22898
+ var _super2 = _createSuper(MyArrString);
22899
+
22900
+ function MyArrString() {
22901
+ _classCallCheck(this, MyArrString);
22902
+
22903
+ return _super2.apply(this, arguments);
22904
+ }
22905
+
22906
+ _createClass(MyArrString, [{
22907
+ key: "render",
22908
+ value: function render() {
22909
+ var _this$props$value;
22910
+
22911
+ return /*#__PURE__*/React__default['default'].createElement("div", {
22912
+ style: this.props.style
22913
+ }, (_this$props$value = this.props.value) === null || _this$props$value === void 0 ? void 0 : _this$props$value.filter(function (e) {
22914
+ return !!e;
22915
+ }).join(','));
22916
+ }
22917
+ }]);
22918
+
22919
+ return MyArrString;
22920
+ }(React__default['default'].Component);
22921
+
22922
+ var MyArrMoment = /*#__PURE__*/function (_React$Component3) {
22923
+ _inherits(MyArrMoment, _React$Component3);
22924
+
22925
+ var _super3 = _createSuper(MyArrMoment);
22926
+
22927
+ function MyArrMoment() {
22928
+ _classCallCheck(this, MyArrMoment);
22929
+
22930
+ return _super3.apply(this, arguments);
22931
+ }
22932
+
22933
+ _createClass(MyArrMoment, [{
22934
+ key: "render",
22935
+ value: function render() {
22936
+ var _this$props$value2;
22937
+
22938
+ return /*#__PURE__*/React__default['default'].createElement("div", {
22939
+ style: this.props.style
22940
+ }, (_this$props$value2 = this.props.value) === null || _this$props$value2 === void 0 ? void 0 : _this$props$value2.map(function (e) {
22941
+ return hooks.isMoment(e) && e.format('YYYY-MM-DD');
22942
+ }).filter(function (e) {
22943
+ return !!e;
22944
+ }).join('~'));
22945
+ }
22946
+ }]);
22947
+
22948
+ return MyArrMoment;
22949
+ }(React__default['default'].Component);
22950
+
22951
+ var MyNY = /*#__PURE__*/function (_React$Component4) {
22952
+ _inherits(MyNY, _React$Component4);
22953
+
22954
+ var _super4 = _createSuper(MyNY);
22955
+
22956
+ function MyNY() {
22957
+ _classCallCheck(this, MyNY);
22958
+
22959
+ return _super4.apply(this, arguments);
22960
+ }
22961
+
22962
+ _createClass(MyNY, [{
22963
+ key: "render",
22964
+ value: function render() {
22965
+ return /*#__PURE__*/React__default['default'].createElement("div", {
22966
+ style: this.props.style
22967
+ }, this.props.value === 'Y' ? '是' : '否');
22968
+ }
22969
+ }]);
22970
+
22971
+ return MyNY;
22972
+ }(React__default['default'].Component);
22973
+
22862
22974
  var ImportBuyerDrawer = (function () {
22863
22975
  var controller = Invoice.useInvoiceController();
22864
22976
  var visible = controller.useMemo(function (s) {
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "kts-component-invoice-operate",
3
- "version": "3.2.144",
3
+ "version": "3.2.146",
4
4
  "scripts": {
5
- "dev": "dumi dev",
5
+ "dev": "dumi dev --max-old-space-size=6096",
6
6
  "start": "dumi dev",
7
7
  "docs:build": "dumi build",
8
8
  "docs:deploy": "gh-pages -d docs-dist",
@@ -15,6 +15,7 @@ export default () => {
15
15
  'buyerTaxId',
16
16
  'remark',
17
17
  'itemModelName',
18
+ 'unit',
18
19
  ]
19
20
  })
20
21
 
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import Invoice from '../../..';
3
3
  import 'antd/dist/antd.css';
4
+ import moment from 'moment';
4
5
 
5
6
  export default () => {
6
7
 
@@ -34,10 +35,22 @@ export default () => {
34
35
  remarks: '备注\n换行备注',
35
36
  drawer: '张自豪',
36
37
  })
38
+ await controller.formList.get('realEstateInfo')?.setFieldsValue({
39
+ realEstateAddress: ['北京市', '北京市', '东城区'],
40
+ realEstateDetailedAddress: '东城区东华门大街',
41
+ leaseTerm: [moment('2023-07-06'), moment('2023-07-06')],
42
+ crossCitiesSign: 'Y',
43
+ realEstateNumber: '123456789',
44
+ realEstateUnit: '平方米',
45
+ })
37
46
  })()
38
47
  }, [controller])
39
48
 
40
49
  return (
41
- <Invoice invoiceType='digtal' controller={controller} />
50
+ <Invoice
51
+ invoiceType='digtal'
52
+ controller={controller}
53
+ specialInfor={<Invoice.RealEstateInfo />}
54
+ />
42
55
  )
43
56
  };
@@ -23,7 +23,9 @@ export default () => {
23
23
  const goodMax = controller.useMemo(s => s.goodsListState.goodMax, []);
24
24
 
25
25
  /** 按钮是否禁用 */
26
- const disabled = React.useMemo(() => typeof goodMax === 'number' ? goodsNum >= goodMax : !!searchValue, [goodMax, goodsNum, searchValue])
26
+ const disabled = React.useMemo(() =>{
27
+ return typeof goodMax === 'number' ? goodsNum >= goodMax : !!searchValue
28
+ }, [goodMax, goodsNum, searchValue])
27
29
 
28
30
  const onClick = React.useCallback(async () => {
29
31
  await addGood(controller);
@@ -3,8 +3,10 @@ import React 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';
6
+ import Invoice from '../../..';
6
7
  import './index.less';
7
8
  import { Cascader, Col, DatePicker, Input, Row, Select } from "kts-components-antd-x4";
9
+ import moment from "moment";
8
10
 
9
11
  const { RangePicker } = DatePicker;
10
12
 
@@ -23,10 +25,20 @@ export interface RealEstateInfoProps {
23
25
  /** 特殊信息-不动产经营租赁服务 */
24
26
  export default decorator<RealEstateInfoProps, FormComponentProps & RealEstateInfoProps>(Form.create())(props => {
25
27
 
28
+ /** 控制器 */
29
+ const controller = Invoice.useInvoiceController();
30
+
26
31
  const { form } = props;
27
32
 
28
33
  const { getFieldDecorator } = form;
29
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
+
30
42
  return (
31
43
  <div className="kts-invoice-operate-real-estate-info-digtal">
32
44
  <div className='real-estate-info-digtal-label' >特殊信息-不动产经营租赁服务</div>
@@ -34,97 +46,166 @@ export default decorator<RealEstateInfoProps, FormComponentProps & RealEstateInf
34
46
  <Col span={6} >
35
47
  <Form.Item label='不动产地址' >
36
48
  {getFieldDecorator('realEstateAddress', {
37
- rules: [{ required: true, message: '请选择不动产地址' }]
49
+ rules: readOnly ? [] : [{ required: true, message: '请选择不动产地址' }]
38
50
  })(
39
- <Cascader
40
- style={{ width: '100%' }}
41
- options={props.realEstateAddressOptions}
42
- fieldNames={props.realEstateAddressFieldNames}
43
- placeholder="请选择省市区县"
44
- />
51
+ readOnly
52
+ ? (<MyArrString />)
53
+ : (
54
+ <Cascader
55
+ style={{ width: '100%' }}
56
+ options={props.realEstateAddressOptions}
57
+ fieldNames={props.realEstateAddressFieldNames}
58
+ placeholder="请选择省市区县"
59
+ />
60
+ )
45
61
  )}
46
62
  </Form.Item>
47
63
  </Col>
48
64
  <Col span={6} >
49
65
  <Form.Item label='详细地址' >
50
66
  {getFieldDecorator('realEstateDetailedAddress', {
51
- rules: [
67
+ rules: readOnly ? [] : [
52
68
  { required: true, message: '请输入详细地址' },
53
69
  { max: 120, message: '详细地址最多120个字符' },
54
- {
70
+ {
55
71
  validator: (_, value) => {
56
72
  const pattern = /街|路|村|乡|镇|道|巷|号/;
57
73
  return pattern.test(value) ? Promise.resolve() : Promise.reject('地址必须包含“街”、“路”、“村”、“乡”、“镇”、“道”、“巷”、“号”等任意一个关键词');
58
74
  }
59
75
  }
60
76
  ]
61
- })(<Input autoComplete='off' placeholder="请输入详细地址" />)}
77
+ })(
78
+ readOnly
79
+ ? <MyDiv />
80
+ : <Input autoComplete='off' placeholder="请输入详细地址" />
81
+ )}
62
82
  </Form.Item>
63
83
  </Col>
64
84
  <Col span={6} >
65
85
  <Form.Item label='租赁期起止' >
66
86
  {getFieldDecorator('leaseTerm', {
67
- rules: [{ required: true, message: '请输入租赁期' }]
68
- })(<RangePicker style={{ width: '100%' }} />)}
87
+ rules: readOnly ? [] : [{ required: true, message: '请输入租赁期' }]
88
+ })(
89
+ readOnly
90
+ ? <MyArrMoment />
91
+ : <RangePicker style={{ width: '100%' }} />
92
+ )}
69
93
  </Form.Item>
70
94
  </Col>
71
95
  <Col span={6} >
72
96
  <Form.Item label='跨地(市)标志' >
73
97
  {getFieldDecorator('crossCitiesSign', {
74
- rules: [
98
+ rules: readOnly ? [] : [
75
99
  { required: true, message: '请选择跨地(市)标志' }
76
100
  ]
77
101
  })(
78
- <Select placeholder='请选择' style={{ width: '100%' }} >
79
- <Select.Option value='Y'>是</Select.Option>
80
- <Select.Option value='N'>否</Select.Option>
81
- </Select>
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>
82
108
  )}
83
109
  </Form.Item>
84
110
  </Col>
85
111
  <Col span={6} >
86
112
  <Form.Item label='产权证书/不动产权证号' >
87
113
  {getFieldDecorator('realEstateNumber', {
88
- rules: [
114
+ rules: readOnly ? [] : [
89
115
  { required: true, message: '请输入证书编号,若没有证书填写“无”' },
90
116
  { max: 40, message: '证书编号最多40个字符' },
91
117
  ]
92
- })(<Input autoComplete='off' placeholder="请输入证书编号,若没有证书填写“无”" />)}
118
+ })(
119
+ readOnly
120
+ ? <MyDiv />
121
+ : <Input autoComplete='off' placeholder="请输入证书编号,若没有证书填写“无”" />
122
+ )}
93
123
  </Form.Item>
94
124
  </Col>
95
125
  <Col span={6} >
96
126
  <Form.Item label='面积单位' >
97
127
  {getFieldDecorator('realEstateUnit', {
98
- rules: [{ required: true, message: '请选择面积单位' }]
128
+ rules: readOnly ? [] : [{ required: true, message: '请选择面积单位' }]
99
129
  })(
100
- <Select placeholder='请选择' style={{ width: '100%' }} >
101
- <Select.Option value="平方千米">平方千米</Select.Option>
102
- <Select.Option value="平方米">平方米</Select.Option>
103
- <Select.Option value="公顷">公顷</Select.Option>
104
- <Select.Option value="">亩</Select.Option>
105
- <Select.Option value="Hm2">
106
- <span>
107
- <span>Hm</span>
108
- <span style={{ verticalAlign: 'super', fontSize: 'smaller' }} >2</span>
109
- </span>
110
- </Select.Option>
111
- <Select.Option value="Km2">
112
- <span>
113
- <span>Km</span>
114
- <span style={{ verticalAlign: 'super', fontSize: 'smaller' }} >2</span>
115
- </span>
116
- </Select.Option>
117
- <Select.Option value="m2">
118
- <span>
119
- <span>m</span>
120
- <span style={{ verticalAlign: 'super', fontSize: 'smaller' }} >2</span>
121
- </span>
122
- </Select.Option>
123
- </Select>
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>
124
156
  )}
125
157
  </Form.Item>
126
158
  </Col>
127
159
  </Row>
128
160
  </div>
129
161
  )
130
- })
162
+ })
163
+
164
+
165
+ class MyDiv extends React.Component<{ value?: string, style?: React.CSSProperties }> {
166
+ render(): React.ReactNode {
167
+ return (
168
+ <div style={this.props.style}>{this.props.value}</div>
169
+ )
170
+ }
171
+ }
172
+
173
+ class MyArrString extends React.Component<{ value?: string[], style?: React.CSSProperties }> {
174
+ render(): React.ReactNode {
175
+ return (
176
+ <div style={this.props.style}>
177
+ {
178
+ this.props.value?.filter(e => !!e)
179
+ .join(',')
180
+ }
181
+ </div>
182
+ )
183
+ }
184
+ }
185
+
186
+ class MyArrMoment extends React.Component<{ value?: moment.Moment[], style?: React.CSSProperties }> {
187
+ render(): React.ReactNode {
188
+ return (
189
+ <div style={this.props.style}>
190
+ {
191
+ this.props.value?.map(e => moment.isMoment(e) && e.format('YYYY-MM-DD'))
192
+ .filter(e => !!e)
193
+ .join('~')
194
+ }
195
+ </div>
196
+ )
197
+ }
198
+ }
199
+
200
+ class MyNY extends React.Component<{ value?: 'Y' | 'N', style?: React.CSSProperties }> {
201
+ render(): React.ReactNode {
202
+ return (
203
+ <div style={this.props.style}>
204
+ {
205
+ this.props.value === 'Y' ? '是' : '否'
206
+ }
207
+ </div>
208
+ )
209
+ }
210
+ }
211
+