easy3wui 1.5.70-beta2 → 1.5.70-beta3

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.
@@ -13,7 +13,9 @@
13
13
  .e3wFormPageWrap .e3wFormItem .ant-form-item {
14
14
  margin-bottom: 8px;
15
15
  }
16
- .e3wFormPageWrap .inputNumberFormat {
16
+ .e3wFormPageWrap .inputNumberFormat,
17
+ .e3wFormPageWrap .inputAmount,
18
+ .e3wFormPageWrap .inputDigit {
17
19
  display: -ms-flexbox;
18
20
  display: flex;
19
21
  -ms-flex-direction: row;
@@ -22,20 +24,24 @@
22
24
  flex-wrap: nowrap;
23
25
  line-height: 32px;
24
26
  }
25
- .e3wFormPageWrap .inputNumberFormat .addonBtns {
27
+ .e3wFormPageWrap .inputNumberFormat .addonBtns,
28
+ .e3wFormPageWrap .inputAmount .addonBtns,
29
+ .e3wFormPageWrap .inputDigit .addonBtns {
26
30
  height: 32px;
27
31
  width: auto;
28
32
  border-left: none;
29
33
  border-right: 1px solid #d9d9d9;
30
34
  }
31
- .e3wFormPageWrap .inputNumberFormat .inputNumberBtns .e3wFootBtn {
35
+ .e3wFormPageWrap .inputNumberFormat .inputNumberBtns .e3wFootBtn,
36
+ .e3wFormPageWrap .inputAmount .inputNumberBtns .e3wFootBtn,
37
+ .e3wFormPageWrap .inputDigit .inputNumberBtns .e3wFootBtn {
32
38
  margin: 0;
33
39
  }
34
40
  input.ant-input-number-input {
35
41
  text-align: right;
36
42
  }
37
43
  input.ant-input-number-input:hover {
38
- padding-right: 22px;
44
+ padding-right: 33px;
39
45
  }
40
46
  .rightText {
41
47
  text-align: right;
package/assets/index.css CHANGED
@@ -2404,7 +2404,9 @@ s {
2404
2404
  .e3wFormPageWrap .e3wFormItem .ant-form-item {
2405
2405
  margin-bottom: 8px;
2406
2406
  }
2407
- .e3wFormPageWrap .inputNumberFormat {
2407
+ .e3wFormPageWrap .inputNumberFormat,
2408
+ .e3wFormPageWrap .inputAmount,
2409
+ .e3wFormPageWrap .inputDigit {
2408
2410
  display: -ms-flexbox;
2409
2411
  display: flex;
2410
2412
  -ms-flex-direction: row;
@@ -2413,20 +2415,24 @@ s {
2413
2415
  flex-wrap: nowrap;
2414
2416
  line-height: 32px;
2415
2417
  }
2416
- .e3wFormPageWrap .inputNumberFormat .addonBtns {
2418
+ .e3wFormPageWrap .inputNumberFormat .addonBtns,
2419
+ .e3wFormPageWrap .inputAmount .addonBtns,
2420
+ .e3wFormPageWrap .inputDigit .addonBtns {
2417
2421
  height: 32px;
2418
2422
  width: auto;
2419
2423
  border-left: none;
2420
2424
  border-right: 1px solid #d9d9d9;
2421
2425
  }
2422
- .e3wFormPageWrap .inputNumberFormat .inputNumberBtns .e3wFootBtn {
2426
+ .e3wFormPageWrap .inputNumberFormat .inputNumberBtns .e3wFootBtn,
2427
+ .e3wFormPageWrap .inputAmount .inputNumberBtns .e3wFootBtn,
2428
+ .e3wFormPageWrap .inputDigit .inputNumberBtns .e3wFootBtn {
2423
2429
  margin: 0;
2424
2430
  }
2425
2431
  input.ant-input-number-input {
2426
2432
  text-align: right;
2427
2433
  }
2428
2434
  input.ant-input-number-input:hover {
2429
- padding-right: 22px;
2435
+ padding-right: 33px;
2430
2436
  }
2431
2437
  .rightText {
2432
2438
  text-align: right;
@@ -2603,3 +2609,7 @@ input.ant-input-number-input:hover {
2603
2609
  border-style: solid;
2604
2610
  border-radius: 3px;
2605
2611
  }
2612
+ .easy3wTree .easy3wTreeSearch {
2613
+ width: calc(88%);
2614
+ margin: 0 6px;
2615
+ }
@@ -0,0 +1,4 @@
1
+ .easy3wTree .easy3wTreeSearch {
2
+ width: calc(88%);
3
+ margin: 0 6px;
4
+ }
@@ -404,6 +404,10 @@ var Easy3wFormPage = function (_Component) {
404
404
  // return this.inputNumberFormatHandler(itemNew);
405
405
  case 'numberInput':
406
406
  return _this.numberInputHandler(itemNew);
407
+ // case 'inputAmount':
408
+ // return this.inputAmountHandler(itemNew);
409
+ // case 'inputDigit':
410
+ // return this.inputDigitHandler(itemNew);
407
411
  case 'mention':
408
412
  return _this.mentionHandler(itemNew);
409
413
  case 'rate':
@@ -452,12 +456,35 @@ var Easy3wFormPage = function (_Component) {
452
456
 
453
457
  var value = item.value;
454
458
 
459
+ var _ref4 = cmptPros || {},
460
+ addonAfter = _ref4.addonAfter,
461
+ numeralFormat = _ref4.numeralFormat;
462
+ // numeralFormat 新组件(金额、数字)的格式化参数
463
+
464
+
455
465
  if (numberFormat) {
456
466
  return (0, _numeral2['default'])(value).format('0,0.00');
457
467
  }
458
468
  if (fieldType === 'numberInput' && value) {
459
469
  return (0, _numeral2['default'])(value).format('0,0.00');
460
470
  }
471
+ // if (fieldType === 'inputAmount' && value) { // 金额
472
+ // let strValue = numeral(value).format(numeralFormat || '0,0.00');
473
+ // if (allReadFlag || readFlag) {
474
+ // // strValue = `${strValue}${addonAfter}`;
475
+ // strValue = <span>{strValue}{addonAfter || ''}</span>;
476
+ // }
477
+ // return strValue;
478
+ // }
479
+ // if (fieldType === 'inputDigit' && value) { // 数字
480
+ // const { precision = 2 } = cmptPros || {};
481
+ // let strValue = numeral(value).format(numeralFormat || `0.${'0'.repeat(precision)}`);
482
+ // // let strValue = numeral(value).format('0.00');
483
+ // if (allReadFlag || readFlag) {
484
+ // strValue = <span>{strValue}{addonAfter || ''}</span>;
485
+ // }
486
+ // return strValue;
487
+ // }
461
488
  if (fieldType === 'braftEditor') {
462
489
  return _braftEditor2['default'].createEditorState(value);
463
490
  }
@@ -567,6 +594,12 @@ var Easy3wFormPage = function (_Component) {
567
594
  case 'textarea':
568
595
  strRMsg = '填写';
569
596
  break;
597
+ // case 'inputAmount': // 金额
598
+ // strRMsg = '填写';
599
+ // break;
600
+ // case 'inputDigit': // 数字
601
+ // strRMsg = '填写';
602
+ // break;
570
603
  case 'numberInput':
571
604
  strRMsg = '填写';
572
605
  break;
@@ -1010,18 +1043,18 @@ var Easy3wFormPage = function (_Component) {
1010
1043
 
1011
1044
  var threeRowItemFlag = false;
1012
1045
  for (var _iterator = rowItems, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
1013
- var _ref4;
1046
+ var _ref5;
1014
1047
 
1015
1048
  if (_isArray) {
1016
1049
  if (_i >= _iterator.length) break;
1017
- _ref4 = _iterator[_i++];
1050
+ _ref5 = _iterator[_i++];
1018
1051
  } else {
1019
1052
  _i = _iterator.next();
1020
1053
  if (_i.done) break;
1021
- _ref4 = _i.value;
1054
+ _ref5 = _i.value;
1022
1055
  }
1023
1056
 
1024
- var rItem = _ref4;
1057
+ var rItem = _ref5;
1025
1058
 
1026
1059
  if (rItem.cols.length === 3) {
1027
1060
  threeRowItemFlag = true;
@@ -1180,6 +1213,14 @@ var Easy3wFormPage = function (_Component) {
1180
1213
  var _up4 = _this.inputNumberHandler(colObj, formItemLayout, disableCheckFlag);
1181
1214
  return _up4;
1182
1215
  }
1216
+ if (fieldType === 'inputAmount') {
1217
+ var _up5 = _this.inputAmountHandler(colObj, formItemLayout, disableCheckFlag);
1218
+ return _up5;
1219
+ }
1220
+ if (fieldType === 'inputDigit') {
1221
+ var _up6 = _this.inputDigitHandler(colObj, formItemLayout, disableCheckFlag);
1222
+ return _up6;
1223
+ }
1183
1224
  var formItem = _this.getFormItem(colObj, itemValue, afterBtns, itemArea, formItemLayout, disableCheckFlag);
1184
1225
  return formItem;
1185
1226
  }, _this.getAllForms = function () {
@@ -1679,6 +1720,170 @@ var Easy3wFormPage = function (_Component) {
1679
1720
  )
1680
1721
  )
1681
1722
  );
1723
+ }, _this.inputAmountHandler = function (item, formItemLayout, disableCheckFlag) {
1724
+ var allReadFlag = _this.props.allReadFlag;
1725
+ var getFieldDecorator = _this.props.form.getFieldDecorator;
1726
+ var cmptPros = item.cmptPros,
1727
+ label = item.label,
1728
+ fieldId = item.fieldId,
1729
+ requiredMessage = item.requiredMessage,
1730
+ required = item.required,
1731
+ value = item.value,
1732
+ disableFlag = item.disableFlag,
1733
+ formItemProps = item.formItemProps,
1734
+ readFlag = item.readFlag,
1735
+ hideLabel = item.hideLabel;
1736
+
1737
+ var isApproval = document.body.innerHTML.includes('class="approval_flag_only"');
1738
+ var isDisableRuleFlag = required;
1739
+ if (readFlag === undefined) {
1740
+ if (disableFlag && isApproval && disableCheckFlag) {
1741
+ isDisableRuleFlag = required;
1742
+ } else if (disableFlag && isApproval) {
1743
+ isDisableRuleFlag = false;
1744
+ }
1745
+ }
1746
+ var addrules = [{ required: isDisableRuleFlag, message: requiredMessage || '\u8BF7\u586B\u5199' + label }];
1747
+ var addonAfter = cmptPros.addonAfter,
1748
+ rules = cmptPros.rules;
1749
+
1750
+ if (rules) {
1751
+ // const { rules } = cmptPros;
1752
+ addrules.push.apply(addrules, rules);
1753
+ }
1754
+ var afterBtns = _this.getAfterBtn(item);
1755
+ if (readFlag || allReadFlag) {
1756
+ return _react2['default'].createElement(
1757
+ FormItem,
1758
+ (0, _extends3['default'])({
1759
+ label: hideLabel ? null : label,
1760
+ required: required
1761
+ }, formItemLayout, formItemProps, {
1762
+ style: formItemStyle
1763
+ }),
1764
+ getFieldDecorator(fieldId + 'Easy3wView', {
1765
+ initialValue: 'easy3wView',
1766
+ rules: [{ required: isDisableRuleFlag, message: requiredMessage || '\u8BF7\u586B\u5199' + label }]
1767
+ })(_react2['default'].createElement(_input2['default'], { type: 'hidden' })),
1768
+ ('' + value).replace(/\B(?=(\d{3})+(?!\d))/g, ','),
1769
+ addonAfter,
1770
+ ' ',
1771
+ afterBtns
1772
+ );
1773
+ }
1774
+ return _react2['default'].createElement(
1775
+ FormItem,
1776
+ (0, _extends3['default'])({
1777
+ label: hideLabel ? null : label
1778
+ }, formItemLayout, formItemProps, {
1779
+ style: formItemStyle
1780
+ }),
1781
+ _react2['default'].createElement(
1782
+ 'div',
1783
+ { className: (0, _classnames2['default'])(['inputAmount']) },
1784
+ getFieldDecorator(fieldId, { rules: addrules, initialValue: value })(_react2['default'].createElement(_inputNumber2['default'], (0, _extends3['default'])({
1785
+ formatter: function formatter(val) {
1786
+ return ('' + val).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
1787
+ },
1788
+ parser: function parser(val) {
1789
+ return val.replace(/\$\s?|(,*)/g, '');
1790
+ },
1791
+ precision: 2,
1792
+ disabled: disableFlag
1793
+ // onChange={onChangeValue => this.props.form.setFieldsValue({ [item.fieldId]: onChangeValue })}
1794
+ }, cmptPros, {
1795
+ style: { flex: 1 }
1796
+ }))),
1797
+ addonAfter ? _react2['default'].createElement(
1798
+ 'div',
1799
+ { className: (0, _classnames2['default'])(['ant-input-group-addon', 'addonBtns']), style: { borderRadius: '0px 4px 4px 0px' } },
1800
+ addonAfter
1801
+ ) : null,
1802
+ _react2['default'].createElement(
1803
+ 'div',
1804
+ { className: (0, _classnames2['default'])(['inputNumberBtns']) },
1805
+ afterBtns
1806
+ )
1807
+ )
1808
+ );
1809
+ }, _this.inputDigitHandler = function (item, formItemLayout, disableCheckFlag) {
1810
+ var allReadFlag = _this.props.allReadFlag;
1811
+ var getFieldDecorator = _this.props.form.getFieldDecorator;
1812
+ var cmptPros = item.cmptPros,
1813
+ label = item.label,
1814
+ fieldId = item.fieldId,
1815
+ requiredMessage = item.requiredMessage,
1816
+ required = item.required,
1817
+ value = item.value,
1818
+ disableFlag = item.disableFlag,
1819
+ formItemProps = item.formItemProps,
1820
+ readFlag = item.readFlag,
1821
+ hideLabel = item.hideLabel;
1822
+
1823
+ var isApproval = document.body.innerHTML.includes('class="approval_flag_only"');
1824
+ var isDisableRuleFlag = required;
1825
+ if (readFlag === undefined) {
1826
+ if (disableFlag && isApproval && disableCheckFlag) {
1827
+ isDisableRuleFlag = required;
1828
+ } else if (disableFlag && isApproval) {
1829
+ isDisableRuleFlag = false;
1830
+ }
1831
+ }
1832
+ var addrules = [{ required: isDisableRuleFlag, message: requiredMessage || '\u8BF7\u586B\u5199' + label }];
1833
+ var addonAfter = cmptPros.addonAfter,
1834
+ rules = cmptPros.rules;
1835
+
1836
+ if (rules) {
1837
+ // const { rules } = cmptPros;
1838
+ addrules.push.apply(addrules, rules);
1839
+ }
1840
+ var afterBtns = _this.getAfterBtn(item);
1841
+ if (readFlag || allReadFlag) {
1842
+ return _react2['default'].createElement(
1843
+ FormItem,
1844
+ (0, _extends3['default'])({
1845
+ label: hideLabel ? null : label,
1846
+ required: required
1847
+ }, formItemLayout, formItemProps, {
1848
+ style: formItemStyle
1849
+ }),
1850
+ getFieldDecorator(fieldId + 'Easy3wView', {
1851
+ initialValue: 'easy3wView',
1852
+ rules: [{ required: isDisableRuleFlag, message: requiredMessage || '\u8BF7\u586B\u5199' + label }]
1853
+ })(_react2['default'].createElement(_input2['default'], { type: 'hidden' })),
1854
+ value,
1855
+ addonAfter,
1856
+ ' ',
1857
+ afterBtns
1858
+ );
1859
+ }
1860
+ return _react2['default'].createElement(
1861
+ FormItem,
1862
+ (0, _extends3['default'])({
1863
+ label: hideLabel ? null : label
1864
+ }, formItemLayout, formItemProps, {
1865
+ style: formItemStyle
1866
+ }),
1867
+ _react2['default'].createElement(
1868
+ 'div',
1869
+ { className: (0, _classnames2['default'])(['inputDigit']) },
1870
+ getFieldDecorator(fieldId, { rules: addrules, initialValue: value })(_react2['default'].createElement(_inputNumber2['default'], (0, _extends3['default'])({
1871
+ precision: 2 // 数值精度 2 保留两位小数 0 整数 可以通过cmptPros修改
1872
+ , style: { flex: 1 },
1873
+ disabled: disableFlag
1874
+ }, cmptPros))),
1875
+ addonAfter ? _react2['default'].createElement(
1876
+ 'div',
1877
+ { className: (0, _classnames2['default'])(['ant-input-group-addon', 'addonBtns']), style: { borderRadius: '0px 4px 4px 0px' } },
1878
+ addonAfter
1879
+ ) : null,
1880
+ _react2['default'].createElement(
1881
+ 'div',
1882
+ { className: (0, _classnames2['default'])(['inputNumberBtns']) },
1883
+ afterBtns
1884
+ )
1885
+ )
1886
+ );
1682
1887
  }, _this.numberInputHandler = function (item) {
1683
1888
  var cmptPros = item.cmptPros;
1684
1889
 
@@ -1769,14 +1974,24 @@ var Easy3wFormPage = function (_Component) {
1769
1974
 
1770
1975
  var templateArr = templateArray.map(function (obj) {
1771
1976
  var objArea = _this.getItemArea(obj);
1772
- if (obj.fieldType === 'inputNumber') {
1977
+ var fieldType = obj.fieldType;
1978
+
1979
+ if (fieldType === 'inputNumber') {
1773
1980
  objArea = _this.inputNumberHandler((0, _extends3['default'])({ hideLabel: true }, obj));
1774
1981
  // return up;
1775
1982
  }
1776
- if (obj.fieldType === 'inputNumberFormat') {
1983
+ if (fieldType === 'inputNumberFormat') {
1777
1984
  objArea = _this.inputNumberFormatHandler((0, _extends3['default'])({ hideLabel: true }, obj));
1778
1985
  // return up;
1779
1986
  }
1987
+ if (fieldType === 'inputAmount') {
1988
+ var up = _this.inputAmountHandler((0, _extends3['default'])({ hideLabel: true }, obj));
1989
+ return up;
1990
+ }
1991
+ if (fieldType === 'inputDigit') {
1992
+ var _up7 = _this.inputDigitHandler((0, _extends3['default'])({ hideLabel: true }, obj));
1993
+ return _up7;
1994
+ }
1780
1995
  var itemArea = _this.getStrTemplateItem(obj, objArea);
1781
1996
  return itemArea;
1782
1997
  });
@@ -1945,7 +2160,12 @@ var Easy3wFormPage = function (_Component) {
1945
2160
  /** inputNumber start */
1946
2161
 
1947
2162
  /** inputNumber end */
2163
+ // #region 金额
1948
2164
 
2165
+ // #endregion
2166
+ // #region 数字
2167
+
2168
+ // #endregion
1949
2169
  /** numberInput start */
1950
2170
  // numberInputHandler = (item) => {
1951
2171
  // return (
@@ -2570,18 +2790,18 @@ var Easy3wFormPageTight = function (_Component2) {
2570
2790
 
2571
2791
  var threeRowItemFlag = false;
2572
2792
  for (var _iterator2 = rowItems, _isArray2 = Array.isArray(_iterator2), _i3 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
2573
- var _ref5;
2793
+ var _ref6;
2574
2794
 
2575
2795
  if (_isArray2) {
2576
2796
  if (_i3 >= _iterator2.length) break;
2577
- _ref5 = _iterator2[_i3++];
2797
+ _ref6 = _iterator2[_i3++];
2578
2798
  } else {
2579
2799
  _i3 = _iterator2.next();
2580
2800
  if (_i3.done) break;
2581
- _ref5 = _i3.value;
2801
+ _ref6 = _i3.value;
2582
2802
  }
2583
2803
 
2584
- var rItem = _ref5;
2804
+ var rItem = _ref6;
2585
2805
 
2586
2806
  if (rItem.cols.length === 3) {
2587
2807
  threeRowItemFlag = true;
@@ -2725,28 +2945,28 @@ var Easy3wFormPageTight = function (_Component2) {
2725
2945
  return up;
2726
2946
  }
2727
2947
  if (fieldType === 'uploadB') {
2728
- var _up5 = _this2.getUploadBColItem(colObj, formItemLayout);
2729
- return _up5;
2948
+ var _up8 = _this2.getUploadBColItem(colObj, formItemLayout);
2949
+ return _up8;
2730
2950
  }
2731
2951
  if (fieldType === 'uploadM') {
2732
- var _up6 = _this2.getUploadMColItem(colObj, formItemLayout);
2733
- return _up6;
2952
+ var _up9 = _this2.getUploadMColItem(colObj, formItemLayout);
2953
+ return _up9;
2734
2954
  }
2735
2955
  if (fieldType === 'select') {
2736
- var _up7 = _this2.getSelectColItem(colObj, formItemLayout);
2737
- return _up7;
2956
+ var _up10 = _this2.getSelectColItem(colObj, formItemLayout);
2957
+ return _up10;
2738
2958
  }
2739
2959
  if (fieldType === 'radio') {
2740
- var _up8 = _this2.getRadioColItem(colObj, formItemLayout);
2741
- return _up8;
2960
+ var _up11 = _this2.getRadioColItem(colObj, formItemLayout);
2961
+ return _up11;
2742
2962
  }
2743
2963
  if (fieldType === 'checkBox') {
2744
- var _up9 = _this2.getCheckBoxColItem(colObj, formItemLayout);
2745
- return _up9;
2964
+ var _up12 = _this2.getCheckBoxColItem(colObj, formItemLayout);
2965
+ return _up12;
2746
2966
  }
2747
2967
  if (fieldType === 'inputNumberFormat') {
2748
- var _up10 = _this2.inputNumberFormatHandler(colObj, formItemLayout);
2749
- return _up10;
2968
+ var _up13 = _this2.inputNumberFormatHandler(colObj, formItemLayout);
2969
+ return _up13;
2750
2970
  }
2751
2971
  var formItem = _this2.getFormItem(colObj, itemValue, afterBtns, itemArea, formItemLayout);
2752
2972
  return formItem;
@@ -0,0 +1,317 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _extends2 = require('babel-runtime/helpers/extends');
6
+
7
+ var _extends3 = _interopRequireDefault(_extends2);
8
+
9
+ var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
10
+
11
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
12
+
13
+ var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
14
+
15
+ var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
16
+
17
+ var _inherits2 = require('babel-runtime/helpers/inherits');
18
+
19
+ var _inherits3 = _interopRequireDefault(_inherits2);
20
+
21
+ var _react = require('react');
22
+
23
+ var _react2 = _interopRequireDefault(_react);
24
+
25
+ var _classnames = require('classnames');
26
+
27
+ var _classnames2 = _interopRequireDefault(_classnames);
28
+
29
+ var _input = require('antd/lib/input');
30
+
31
+ var _input2 = _interopRequireDefault(_input);
32
+
33
+ require('antd/lib/input/style');
34
+
35
+ var _tree = require('antd/lib/tree');
36
+
37
+ var _tree2 = _interopRequireDefault(_tree);
38
+
39
+ require('antd/lib/tree/style');
40
+
41
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
42
+
43
+ var Search = _input2['default'].Search;
44
+ var TreeNode = _tree2['default'].TreeNode;
45
+
46
+ /**
47
+ * props参数
48
+ * arrData: 树数据源 必须 Array
49
+ * objTreeProps: 树配置参数 非必须 Object
50
+ * 另加属性:touchRenderNode, titleField = 'title', countField = 'count', keyField = 'key'
51
+ * touchRenderNode: 自定义渲染节点 非必须 Function 返回值:{ title, count, key, isLeaf, expanded, selected, loading }
52
+ * titleField: 节点标题字段 非必须 String 默认值:'title'
53
+ * countField: 节点计数字段 非必须 String 默认值:'count'
54
+ * keyField: 节点key字段 非必须 String 默认值:'key'
55
+ * objSearchProps: 搜索配置参数 非必须 Object
56
+ * 另加属性:searchFlag = true, onSearchCallback
57
+ * searchFlag: 是否开启搜索功能 非必须 Boolean 默认值:true
58
+ * onSearchCallback: 搜索回调函数 非必须 Function 返回值:(arrDataVisible, searchValue, expandedKeys)
59
+ * bidPureComponent: 绑定组件方法 非必须 Function
60
+ * intUpdateCount: 数据更新次数 必须 Number
61
+ */
62
+
63
+ var Easy3wTree = function (_Component) {
64
+ (0, _inherits3['default'])(Easy3wTree, _Component);
65
+
66
+ function Easy3wTree(props) {
67
+ (0, _classCallCheck3['default'])(this, Easy3wTree);
68
+
69
+ var _this = (0, _possibleConstructorReturn3['default'])(this, _Component.call(this, props));
70
+
71
+ _initialiseProps.call(_this);
72
+
73
+ var arrData = props.arrData,
74
+ bidPureComponent = props.bidPureComponent;
75
+
76
+ if (bidPureComponent && typeof bidPureComponent === 'function') {
77
+ bidPureComponent(_this);
78
+ }
79
+ var arrDefaultExpandedKeys = _this.touchGetDEK(arrData);
80
+ _this.state = {
81
+ // 两数量值,用于彻底更新树,树数据更新,重新渲染,使defaultExpandedKeys生效
82
+ treevisible: true, // 显示树
83
+ arrDefaultExpandedKeys: arrDefaultExpandedKeys, // 树默认展开节点
84
+ arrSearchExpandedKeys: [], // 查询时,树默认展开节点
85
+ arrDataVisible: arrData || [], // 树数据源-显示数据
86
+ selectedKeys: [] // 选中节点key
87
+ };
88
+ return _this;
89
+ }
90
+ // eslint-disable-next-line react/sort-comp
91
+
92
+ // 获取默认展开节点
93
+
94
+ // 更新state
95
+
96
+ // #region 树查询
97
+ // 清空输入框
98
+
99
+ // 获取输入框
100
+
101
+ // 树搜索
102
+
103
+ // 递归过滤树结构,并设置展开节点的 keys
104
+
105
+ // #endregion
106
+ // 节点点击事件
107
+
108
+ // 处理树组织
109
+
110
+
111
+ Easy3wTree.prototype.render = function render() {
112
+ var _this2 = this;
113
+
114
+ var _state = this.state,
115
+ arrDataVisible = _state.arrDataVisible,
116
+ selectedKeys = _state.selectedKeys,
117
+ treevisible = _state.treevisible,
118
+ arrDefaultExpandedKeys = _state.arrDefaultExpandedKeys,
119
+ arrSearchExpandedKeys = _state.arrSearchExpandedKeys;
120
+ var _props = this.props,
121
+ _props$objTreeProps = _props.objTreeProps,
122
+ objTreeProps = _props$objTreeProps === undefined ? {} : _props$objTreeProps,
123
+ _props$objSearchProps = _props.objSearchProps,
124
+ objSearchProps = _props$objSearchProps === undefined ? {} : _props$objSearchProps;
125
+ var _objSearchProps$searc = objSearchProps.searchFlag,
126
+ searchFlag = _objSearchProps$searc === undefined ? true : _objSearchProps$searc;
127
+
128
+ return _react2['default'].createElement(
129
+ 'div',
130
+ { className: (0, _classnames2['default'])('easy3wTree') },
131
+ searchFlag ? _react2['default'].createElement(Search, {
132
+ placeholder: '\u8BF7\u8F93\u5165\u67E5\u8BE2\u5185\u5BB9',
133
+ onChange: function onChange(e) {
134
+ return _this2.onSearch(e.target.value);
135
+ }
136
+ // style={{ width: 'calc(100% - 12px)', margin: '0 6px' }}
137
+ , ref: this.searchRef,
138
+ className: (0, _classnames2['default'])('easy3wTreeSearch')
139
+ }) : '',
140
+ treevisible ? _react2['default'].createElement(
141
+ _tree2['default'],
142
+ (0, _extends3['default'])({
143
+ defaultExpandedKeys: arrSearchExpandedKeys && arrSearchExpandedKeys.length > 0 ? arrSearchExpandedKeys : arrDefaultExpandedKeys // 树默认展开节点key Array
144
+ , selectedKeys: selectedKeys // 选中节点key Array
145
+ , showLine: true // 是否展示连接线
146
+ , showIcon: true // 是否展示 TreeNode title 前的图标,叶子节点图标:书页;非叶子节点图标:加减
147
+ // multiple 多选
148
+ , onSelect: this.onSelect // 节点点击事件
149
+ }, objTreeProps),
150
+ this.renderTreeNodes(arrDataVisible)
151
+ ) : ''
152
+ );
153
+ };
154
+
155
+ return Easy3wTree;
156
+ }(_react.Component);
157
+
158
+ var _initialiseProps = function _initialiseProps() {
159
+ var _this3 = this;
160
+
161
+ this.searchRef = _react2['default'].createRef();
162
+
163
+ this.componentDidUpdate = function (prevProps) {
164
+ var _props2 = _this3.props,
165
+ intUpdateCount = _props2.intUpdateCount,
166
+ arrData = _props2.arrData;
167
+
168
+ if (intUpdateCount !== prevProps.intUpdateCount) {
169
+ var arrDefaultExpandedKeys = _this3.touchGetDEK(arrData);
170
+ // eslint-disable-next-line react/no-did-update-set-state
171
+ _this3.setState({
172
+ arrDataVisible: arrData || [], // 树数据源-显示数据
173
+ arrDefaultExpandedKeys: arrDefaultExpandedKeys, // 树默认展开节点
174
+ treevisible: false // 隐藏树
175
+ }, function () {
176
+ _this3.setState({
177
+ treevisible: true // 显示树
178
+ });
179
+ });
180
+ }
181
+ };
182
+
183
+ this.touchGetDEK = function (arrData) {
184
+ var arrDefaultExpandedKeys = [];
185
+ if (arrData && arrData.length > 0) {
186
+ var item = arrData[0];
187
+ var _props$objTreeProps2 = _this3.props.objTreeProps,
188
+ objTreeProps = _props$objTreeProps2 === undefined ? {} : _props$objTreeProps2;
189
+ var _objTreeProps$keyFiel = objTreeProps.keyField,
190
+ keyField = _objTreeProps$keyFiel === undefined ? 'key' : _objTreeProps$keyFiel;
191
+
192
+ arrDefaultExpandedKeys = item[keyField] ? [item[keyField]] : [];
193
+ }
194
+ return arrDefaultExpandedKeys;
195
+ };
196
+
197
+ this.touchUpdateState = function (objState) {
198
+ _this3.setState(objState);
199
+ };
200
+
201
+ this.touchClearInput = function () {
202
+ if (_this3.searchRef.current) {
203
+ // 或者使用 antd 的方法
204
+ // this.searchRef.current.input.input.value = '';
205
+ _this3.searchRef.current.input.state.value = '';
206
+ _this3.onSearch('');
207
+ }
208
+ };
209
+
210
+ this.touchGetInput = function () {
211
+ if (_this3.searchRef.current) {
212
+ var value = _this3.searchRef.current.input.input.value;
213
+
214
+ return value;
215
+ }
216
+ return '';
217
+ };
218
+
219
+ this.onSearch = function (value) {
220
+ var _props3 = _this3.props,
221
+ arrData = _props3.arrData,
222
+ onSearchCallback = _props3.onSearchCallback;
223
+
224
+ var arrSearchExpandedKeys = [];
225
+ var arrDataVisible = [];
226
+ if (value) {
227
+ arrDataVisible = _this3.touchFilterTreeData(arrData, value, arrSearchExpandedKeys);
228
+ } else {
229
+ arrDataVisible = arrData;
230
+ }
231
+ if (onSearchCallback && typeof onSearchCallback === 'function') {
232
+ onSearchCallback(arrDataVisible, value, arrSearchExpandedKeys);
233
+ }
234
+ _this3.setState({
235
+ arrDataVisible: arrDataVisible, // 树数据源-显示数据
236
+ arrSearchExpandedKeys: arrSearchExpandedKeys, // 查询时,树默认展开节点
237
+ treevisible: false // 隐藏树
238
+ }, function () {
239
+ _this3.setState({
240
+ treevisible: true // 显示树
241
+ });
242
+ });
243
+ };
244
+
245
+ this.touchFilterTreeData = function (arrAllData, searchValue, expandedKeys) {
246
+ var _props$objTreeProps3 = _this3.props.objTreeProps,
247
+ objTreeProps = _props$objTreeProps3 === undefined ? {} : _props$objTreeProps3;
248
+ var _objTreeProps$titleFi = objTreeProps.titleField,
249
+ titleField = _objTreeProps$titleFi === undefined ? 'title' : _objTreeProps$titleFi,
250
+ _objTreeProps$keyFiel2 = objTreeProps.keyField,
251
+ keyField = _objTreeProps$keyFiel2 === undefined ? 'key' : _objTreeProps$keyFiel2;
252
+
253
+ var filteredData = arrAllData.map(function (item) {
254
+ // 递归过滤子节点
255
+ var children = item.children ? _this3.touchFilterTreeData(item.children, searchValue, expandedKeys) : [];
256
+ // 如果节点名字匹配,或者子节点匹配
257
+ if (item[titleField].includes(searchValue) || children.length > 0) {
258
+ expandedKeys.push(item[keyField]); // 记录展开的节点 key
259
+ return (0, _extends3['default'])({}, item, {
260
+ children: children // 返回匹配的子节点
261
+ });
262
+ }
263
+ return null;
264
+ }).filter(function (item) {
265
+ return item !== null;
266
+ }); // 过滤掉没有匹配的节点
267
+ return filteredData;
268
+ };
269
+
270
+ this.onSelect = function (selectedKeys, info) {
271
+ var _props$objTreeProps4 = _this3.props.objTreeProps,
272
+ objTreeProps = _props$objTreeProps4 === undefined ? {} : _props$objTreeProps4;
273
+ var onSelectCallback = objTreeProps.onSelectCallback;
274
+
275
+ if (onSelectCallback && typeof onSelectCallback === 'function') {
276
+ onSelectCallback(selectedKeys, info);
277
+ }
278
+ _this3.setState({
279
+ selectedKeys: selectedKeys // 选中节点key Array
280
+ });
281
+ };
282
+
283
+ this.renderTreeNodes = function (arrDataVisible) {
284
+ var _props$objTreeProps5 = _this3.props.objTreeProps,
285
+ objTreeProps = _props$objTreeProps5 === undefined ? {} : _props$objTreeProps5;
286
+ var touchRenderNode = objTreeProps.touchRenderNode,
287
+ _objTreeProps$titleFi2 = objTreeProps.titleField,
288
+ titleField = _objTreeProps$titleFi2 === undefined ? 'title' : _objTreeProps$titleFi2,
289
+ _objTreeProps$countFi = objTreeProps.countField,
290
+ countField = _objTreeProps$countFi === undefined ? 'count' : _objTreeProps$countFi,
291
+ _objTreeProps$keyFiel3 = objTreeProps.keyField,
292
+ keyField = _objTreeProps$keyFiel3 === undefined ? 'key' : _objTreeProps$keyFiel3;
293
+
294
+ return arrDataVisible.map(function (item) {
295
+ var children = item.children;
296
+
297
+ var title = item[titleField]; // 节点标题
298
+ var count = item[countField]; // 节点计数
299
+ var key = item[keyField]; // 节点key
300
+ var objItemNew = (0, _extends3['default'])({}, item);
301
+ if (touchRenderNode && typeof touchRenderNode === 'function') {
302
+ objItemNew = touchRenderNode(item);
303
+ }
304
+ return _react2['default'].createElement(
305
+ TreeNode,
306
+ (0, _extends3['default'])({
307
+ title: count ? title + '(' + count + ')' : title,
308
+ key: key
309
+ }, objItemNew),
310
+ children ? _this3.renderTreeNodes(children) : null
311
+ );
312
+ });
313
+ };
314
+ };
315
+
316
+ exports['default'] = Easy3wTree;
317
+ module.exports = exports['default'];
@@ -0,0 +1,6 @@
1
+ .easy3wTree {
2
+ .easy3wTreeSearch {
3
+ width: calc(100% - 12px);
4
+ margin: 0 6px;
5
+ }
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "easy3wui",
3
- "version": "1.5.70-beta2",
3
+ "version": "1.5.70-beta3",
4
4
  "description": "easy3wui components for react",
5
5
  "keywords": [
6
6
  "react",