@bit-sun/business-component 2.2.4 → 2.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/.editorconfig +16 -16
  2. package/.fatherrc.ts +5 -5
  3. package/.gitlab-ci.yml +179 -179
  4. package/.prettierignore +7 -7
  5. package/.prettierrc +11 -11
  6. package/.umirc.ts +74 -74
  7. package/README.md +27 -27
  8. package/dist/components/Business/BsSulaQueryTable/SearchItemSetting.d.ts +59 -0
  9. package/dist/index.esm.js +547 -28
  10. package/dist/index.js +547 -28
  11. package/dist/utils/enumConfig.d.ts +1 -0
  12. package/docs/index.md +21 -21
  13. package/lib/assets/drag.svg +17 -17
  14. package/lib/assets/exportFail.svg +37 -37
  15. package/lib/assets/exportProcessing.svg +28 -28
  16. package/lib/assets/exportSuccess.svg +34 -34
  17. package/lib/assets/label_icon_bottom.svg +25 -25
  18. package/lib/assets/upExport.svg +22 -22
  19. package/package.json +77 -77
  20. package/src/assets/32.svg +27 -27
  21. package/src/assets/addIcon.svg +17 -17
  22. package/src/assets/allfunc.svg +27 -27
  23. package/src/assets/arrowRight.svg +24 -24
  24. package/src/assets/btn-delete.svg +29 -29
  25. package/src/assets/btn-edit.svg +19 -19
  26. package/src/assets/btn-more.svg +17 -17
  27. package/src/assets/btn-submit.svg +19 -19
  28. package/src/assets/caidan.svg +11 -11
  29. package/src/assets/close.svg +26 -26
  30. package/src/assets/drag.svg +17 -17
  31. package/src/assets/exportFail.svg +37 -37
  32. package/src/assets/exportProcessing.svg +28 -28
  33. package/src/assets/exportSuccess.svg +34 -34
  34. package/src/assets/fixed-left-active.svg +11 -11
  35. package/src/assets/fixed-left.svg +15 -15
  36. package/src/assets/fixed-right-active.svg +11 -11
  37. package/src/assets/fixed-right.svg +15 -15
  38. package/src/assets/guanbi.svg +15 -15
  39. package/src/assets/icon-quanping.svg +15 -15
  40. package/src/assets/icon-shezhi.svg +17 -17
  41. package/src/assets/label_icon_bottom.svg +25 -25
  42. package/src/assets/list-no-img.svg +21 -21
  43. package/src/assets/morentouxiang-32.svg +23 -23
  44. package/src/assets/scanning.svg +24 -24
  45. package/src/assets/upExport.svg +22 -22
  46. package/src/components/Business/AddSelectBusiness/index.md +63 -63
  47. package/src/components/Business/AddSelectBusiness/index.tsx +344 -344
  48. package/src/components/Business/BsLayouts/Components/AllFunc/drawContent.tsx +111 -111
  49. package/src/components/Business/BsLayouts/Components/AllFunc/index.less +153 -153
  50. package/src/components/Business/BsLayouts/Components/AllFunc/index.tsx +70 -70
  51. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.less +90 -90
  52. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.tsx +37 -37
  53. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.tsx +242 -242
  54. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.tsx +384 -384
  55. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/DrawContent.tsx +285 -285
  56. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.tsx +74 -74
  57. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/drawContent.less +170 -170
  58. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.less +64 -64
  59. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.tsx +153 -153
  60. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.less +72 -72
  61. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.tsx +157 -157
  62. package/src/components/Business/BsLayouts/Components/RightContent/LoginModal.tsx +85 -85
  63. package/src/components/Business/BsLayouts/Components/RightContent/home.less +218 -218
  64. package/src/components/Business/BsLayouts/Components/RightContent/index.tsx +156 -156
  65. package/src/components/Business/BsLayouts/Components/SearchFunc/index.less +160 -160
  66. package/src/components/Business/BsLayouts/Components/SearchFunc/index.tsx +75 -75
  67. package/src/components/Business/BsLayouts/index.less +79 -79
  68. package/src/components/Business/BsLayouts/index.tsx +1479 -1479
  69. package/src/components/Business/BsLayouts/service.ts +10 -10
  70. package/src/components/Business/BsLayouts/utils.tsx +230 -230
  71. package/src/components/Business/BsSulaQueryTable/SearchItemSetting.tsx +538 -0
  72. package/src/components/Business/BsSulaQueryTable/index.less +219 -219
  73. package/src/components/Business/BsSulaQueryTable/index.tsx +529 -480
  74. package/src/components/Business/BsSulaQueryTable/setting.tsx +802 -802
  75. package/src/components/Business/BsSulaQueryTable/utils.less +65 -65
  76. package/src/components/Business/BsSulaQueryTable/utils.tsx +688 -688
  77. package/src/components/Business/CommodityEntry/index.md +70 -70
  78. package/src/components/Business/CommodityEntry/index.tsx +80 -80
  79. package/src/components/Business/CommonAlert/index.tsx +23 -23
  80. package/src/components/Business/CommonGuideWrapper/index.less +111 -111
  81. package/src/components/Business/CommonGuideWrapper/index.md +39 -39
  82. package/src/components/Business/CommonGuideWrapper/index.tsx +83 -83
  83. package/src/components/Business/DetailPageWrapper/index.less +79 -79
  84. package/src/components/Business/DetailPageWrapper/index.tsx +335 -335
  85. package/src/components/Business/DetailPageWrapper/utils.tsx +100 -100
  86. package/src/components/Business/HomePageWrapper/index.less +33 -33
  87. package/src/components/Business/HomePageWrapper/index.md +45 -45
  88. package/src/components/Business/HomePageWrapper/index.tsx +162 -162
  89. package/src/components/Business/JsonQueryTable/components/FieldsModifyModal.tsx +824 -824
  90. package/src/components/Business/JsonQueryTable/components/FieldsSettingsTable.tsx +201 -201
  91. package/src/components/Business/JsonQueryTable/components/Formula.tsx +205 -205
  92. package/src/components/Business/JsonQueryTable/components/MaintainOptions.tsx +127 -127
  93. package/src/components/Business/JsonQueryTable/configButton/index.js +20 -20
  94. package/src/components/Business/JsonQueryTable/configTree/component/compactArrayView.js +25 -25
  95. package/src/components/Business/JsonQueryTable/configTree/component/compactObjectView.js +30 -30
  96. package/src/components/Business/JsonQueryTable/configTree/index.js +82 -82
  97. package/src/components/Business/JsonQueryTable/configTree/index.less +44 -44
  98. package/src/components/Business/JsonQueryTable/configTree/parser/highlight.js +57 -57
  99. package/src/components/Business/JsonQueryTable/configTree/parser/index.js +124 -124
  100. package/src/components/Business/JsonQueryTable/configTree/render/iconRender.js +29 -29
  101. package/src/components/Business/JsonQueryTable/configTree/render/nameRender.js +22 -22
  102. package/src/components/Business/JsonQueryTable/configTree/treeNode.js +116 -116
  103. package/src/components/Business/JsonQueryTable/drawer/index.tsx +12 -12
  104. package/src/components/Business/JsonQueryTable/function.ts +62 -62
  105. package/src/components/Business/JsonQueryTable/index.less +16 -16
  106. package/src/components/Business/JsonQueryTable/index.md +328 -328
  107. package/src/components/Business/JsonQueryTable/index.tsx +320 -320
  108. package/src/components/Business/JsonQueryTable/jsonEditor/index.js +346 -346
  109. package/src/components/Business/JsonQueryTable/jsonEditor/index.less +22 -22
  110. package/src/components/Business/JsonQueryTable/jsonEditor/lint/basicType.js +147 -147
  111. package/src/components/Business/JsonQueryTable/jsonEditor/lint/index.js +389 -389
  112. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/actions.js +118 -118
  113. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/dependency.js +22 -22
  114. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/index.js +21 -21
  115. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/request.js +65 -65
  116. package/src/components/Business/JsonQueryTable/static.ts +356 -356
  117. package/src/components/Business/SearchSelect/BusinessUtils.ts +1586 -1586
  118. package/src/components/Business/SearchSelect/common.ts +53 -53
  119. package/src/components/Business/SearchSelect/index.md +1254 -1254
  120. package/src/components/Business/SearchSelect/index.tsx +51 -51
  121. package/src/components/Business/SearchSelect/utils.ts +100 -100
  122. package/src/components/Business/StateFlow/index.less +130 -130
  123. package/src/components/Business/StateFlow/index.md +60 -60
  124. package/src/components/Business/StateFlow/index.tsx +29 -29
  125. package/src/components/Business/TreeSearchSelect/index.md +126 -126
  126. package/src/components/Business/TreeSearchSelect/index.tsx +34 -34
  127. package/src/components/Business/TreeSearchSelect/utils.ts +60 -60
  128. package/src/components/Business/columnSettingTable/columnSetting.tsx +764 -764
  129. package/src/components/Business/columnSettingTable/index.less +247 -247
  130. package/src/components/Business/columnSettingTable/index.md +357 -357
  131. package/src/components/Business/columnSettingTable/index.tsx +232 -232
  132. package/src/components/Business/columnSettingTable/sulaSettingTable.tsx +240 -240
  133. package/src/components/Business/columnSettingTable/utils.tsx +68 -68
  134. package/src/components/Business/moreTreeTable/index.less +99 -99
  135. package/src/components/Business/moreTreeTable/index.md +508 -508
  136. package/src/components/Business/moreTreeTable/index.tsx +315 -315
  137. package/src/components/Business/moreTreeTable/utils.ts +126 -126
  138. package/src/components/Functional/AddSelect/index.less +367 -367
  139. package/src/components/Functional/AddSelect/index.md +155 -155
  140. package/src/components/Functional/AddSelect/index.tsx +1072 -1072
  141. package/src/components/Functional/BillEntry/index.less +371 -371
  142. package/src/components/Functional/BillEntry/index.md +39 -39
  143. package/src/components/Functional/BillEntry/index.tsx +766 -766
  144. package/src/components/Functional/DataImport/index.less +63 -63
  145. package/src/components/Functional/DataImport/index.md +44 -44
  146. package/src/components/Functional/DataImport/index.tsx +695 -695
  147. package/src/components/Functional/DataValidation/index.less +63 -63
  148. package/src/components/Functional/DataValidation/index.md +39 -39
  149. package/src/components/Functional/DataValidation/index.tsx +687 -687
  150. package/src/components/Functional/ExportFunctions/ExportIcon/index.md +37 -37
  151. package/src/components/Functional/ExportFunctions/ExportIcon/index.tsx +59 -59
  152. package/src/components/Functional/QueryMutipleInput/index.less +37 -37
  153. package/src/components/Functional/QueryMutipleInput/index.md +33 -33
  154. package/src/components/Functional/QueryMutipleInput/index.tsx +128 -128
  155. package/src/components/Functional/SearchSelect/index.less +115 -115
  156. package/src/components/Functional/SearchSelect/index.md +141 -141
  157. package/src/components/Functional/SearchSelect/index.tsx +813 -813
  158. package/src/components/Functional/SearchSelect/utils.ts +3 -3
  159. package/src/components/Functional/TreeSearchSelect/index.md +47 -47
  160. package/src/components/Functional/TreeSearchSelect/index.tsx +160 -160
  161. package/src/index.ts +34 -34
  162. package/src/plugin/TableColumnSetting/index.less +247 -247
  163. package/src/plugin/TableColumnSetting/index.md +50 -50
  164. package/src/plugin/TableColumnSetting/index.tsx +724 -724
  165. package/src/plugin/TableColumnSetting/utils.ts +19 -19
  166. package/src/styles/bsDefault.less +1906 -1906
  167. package/src/utils/CheckOneUser/index.md +39 -39
  168. package/src/utils/CheckOneUser/index.ts +51 -51
  169. package/src/utils/LocalstorageUtils.ts +33 -33
  170. package/src/utils/TableUtils.tsx +18 -18
  171. package/src/utils/checkUtils.ts +39 -39
  172. package/src/utils/enumConfig.ts +11 -10
  173. package/src/utils/getFormMode.js +12 -12
  174. package/src/utils/index.ts +2 -2
  175. package/src/utils/requestUtils.ts +33 -33
  176. package/src/utils/serialize.js +7 -7
  177. package/src/utils/utils.ts +183 -183
  178. package/tsconfig.json +29 -29
  179. package/typings.d.ts +4 -4
package/dist/index.esm.js CHANGED
@@ -32,7 +32,8 @@ var ENUM = {
32
32
  LIMIT_MENU_DATA: 'limitedMenuData',
33
33
  USER_INFO: 'userInfo',
34
34
  DICT_CODES: 'dicData',
35
- CHILD_APP_BACK: 'child_app_back' //标记子应用goback事件
35
+ CHILD_APP_BACK: 'child_app_back',
36
+ SEARCH_FIELDS_CONDITION: 'searchFieldsCondition' //表格搜索项信息缓存
36
37
  }
37
38
  };
38
39
 
@@ -16946,22 +16947,496 @@ var SortableTable$1 = /*#__PURE__*/function (_React$Component) {
16946
16947
  row: this.DraggableBodyRow
16947
16948
  }
16948
16949
  }
16949
- }))))), /*#__PURE__*/React.createElement("img", {
16950
- width: 32,
16950
+ }))))), /*#__PURE__*/React.createElement("div", {
16951
16951
  onClick: this.showModal,
16952
- src: shezhi
16953
- }));
16952
+ style: {
16953
+ fontSize: 14
16954
+ }
16955
+ }, "\u5217\u8BBE\u7F6E"));
16954
16956
  }
16955
16957
  }]);
16956
16958
  return SortableTable;
16957
16959
  }(React.Component);
16958
16960
 
16959
- var _excluded$d = ["onResize", "width"];
16961
+ var _excluded$d = ["className", "style"];
16962
+ var DragHandle$3 = SortableHandle(function () {
16963
+ return /*#__PURE__*/React.createElement("img", {
16964
+ src: drag
16965
+ });
16966
+ });
16967
+ var SortableItem$3 = SortableElement(function (props) {
16968
+ return /*#__PURE__*/React.createElement("tr", _objectSpread2({}, props));
16969
+ });
16970
+ var SortableBody$3 = SortableContainer(function (props) {
16971
+ return /*#__PURE__*/React.createElement("tbody", _objectSpread2({}, props));
16972
+ });
16973
+ var SearchItemTable = /*#__PURE__*/function (_React$Component) {
16974
+ _inherits(SearchItemTable, _React$Component);
16975
+ var _super = _createSuper(SearchItemTable);
16976
+ function SearchItemTable() {
16977
+ var _this;
16978
+ _classCallCheck(this, SearchItemTable);
16979
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
16980
+ args[_key] = arguments[_key];
16981
+ }
16982
+ _this = _super.call.apply(_super, [this].concat(args));
16983
+ _this.state = {
16984
+ dataSource: [],
16985
+ columns: [],
16986
+ sortDataSource: [],
16987
+ setVisible: false,
16988
+ searchDataSource: false,
16989
+ onSearchSort: false,
16990
+ isDefaultValue: false,
16991
+ defaultValue: [],
16992
+ bsTableCode: '' //设置table 列的标识
16993
+ };
16994
+ _this.patchUserSearchFieldsConfig = function (config) {
16995
+ var that = _assertThisInitialized(_this);
16996
+ var configvalue = config ? config.map(function (item) {
16997
+ return {
16998
+ name: item.name,
16999
+ hidden: item.hidden
17000
+ };
17001
+ }) : '';
17002
+ axios({
17003
+ url: '/user/appConfig/saveQueryCriteria',
17004
+ method: 'POST',
17005
+ data: {
17006
+ code: that.state.bsTableCode,
17007
+ detail: configvalue ? JSON.stringify(configvalue) : ''
17008
+ }
17009
+ }).then(function (res) {
17010
+ var _res$data;
17011
+ if ((res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.status) === '0') {
17012
+ _this.patchConfigToLocalstorage(configvalue);
17013
+ } else {
17014
+ message.error('保存搜索项自定义失败,请稍后尝试');
17015
+ }
17016
+ });
17017
+ };
17018
+ _this.getConfigFromlocalstorage = function () {
17019
+ var config = localStorage.getItem(ENUM.BROWSER_CACHE.SEARCH_FIELDS_CONDITION) || '[]';
17020
+ var configArray = JSON.parse(config);
17021
+ var configSetting = configArray.filter(function (item) {
17022
+ return item.code === _this.state.bsTableCode;
17023
+ });
17024
+ if (configSetting.length && configSetting[0].detail) {
17025
+ return JSON.parse(configSetting[0].detail);
17026
+ }
17027
+ return [];
17028
+ };
17029
+ _this.patchConfigToLocalstorage = function (configvalue) {
17030
+ var setShowSearchFields = _this.props.setShowSearchFields;
17031
+ var _this$state = _this.state,
17032
+ sortDataSource = _this$state.sortDataSource,
17033
+ bsTableCode = _this$state.bsTableCode;
17034
+ var config = localStorage.getItem(ENUM.BROWSER_CACHE.SEARCH_FIELDS_CONDITION) || '[]';
17035
+ var configArray = JSON.parse(config);
17036
+ var currentSetting = configArray.filter(function (item) {
17037
+ return item.code === bsTableCode;
17038
+ });
17039
+ if (currentSetting.length) {
17040
+ currentSetting[0].detail = JSON.stringify(configvalue);
17041
+ } else {
17042
+ configArray.push({
17043
+ "code": bsTableCode,
17044
+ "detail": JSON.stringify(configvalue)
17045
+ });
17046
+ }
17047
+ localStorage.setItem(ENUM.BROWSER_CACHE.SEARCH_FIELDS_CONDITION, JSON.stringify(configArray));
17048
+ _this.setState({
17049
+ visible: false
17050
+ });
17051
+ setShowSearchFields(_toConsumableArray(sortDataSource));
17052
+ };
17053
+ _this.setInitValue = function () {
17054
+ var _this$props = _this.props,
17055
+ _this$props$datasourc = _this$props.datasource,
17056
+ datasource = _this$props$datasourc === void 0 ? [] : _this$props$datasourc,
17057
+ _this$props$showSearc = _this$props.showSearchFields,
17058
+ showSearchFields = _this$props$showSearc === void 0 ? [] : _this$props$showSearc;
17059
+ var config = _this.getConfigFromlocalstorage();
17060
+ _this.setState({
17061
+ isDefaultValue: true,
17062
+ dataSource: datasource.map(function (item) {
17063
+ var innerItem = config.filter(function (inneritem) {
17064
+ var innerKey = Array.isArray(inneritem.name) ? JSON.stringify(inneritem.name) : inneritem.name;
17065
+ var itemKey = Array.isArray(item.name) ? JSON.stringify(item.name) : item.name;
17066
+ return innerKey && innerKey === itemKey;
17067
+ });
17068
+ return _objectSpread2(_objectSpread2({}, item), {}, {
17069
+ hidden: config.length && !innerItem.length
17070
+ });
17071
+ }),
17072
+ defaultValue: datasource.map(function (item) {
17073
+ var innerItem = config.filter(function (inneritem) {
17074
+ var innerKey = Array.isArray(inneritem.name) ? JSON.stringify(inneritem.name) : inneritem.name;
17075
+ var itemKey = Array.isArray(item.name) ? JSON.stringify(item.name) : item.name;
17076
+ return innerKey && innerKey === itemKey;
17077
+ });
17078
+ return _objectSpread2(_objectSpread2({}, item), {}, {
17079
+ hidden: config.length && !innerItem.length
17080
+ });
17081
+ }),
17082
+ sortDataSource: _toConsumableArray(showSearchFields)
17083
+ });
17084
+ };
17085
+ _this.columns = [{
17086
+ title: '搜索字段名称',
17087
+ dataIndex: 'label',
17088
+ className: 'drag-visible',
17089
+ width: 100
17090
+ }, {
17091
+ title: '删除',
17092
+ dataIndex: 'title1',
17093
+ render: function render(text, record) {
17094
+ return /*#__PURE__*/React.createElement("span", {
17095
+ onClick: function onClick() {
17096
+ _this.setState({
17097
+ sortDataSource: _this.state.sortDataSource.filter(function (item) {
17098
+ return item.label !== record.label;
17099
+ }),
17100
+ isDefaultValue: false,
17101
+ dataSource: _toConsumableArray(_this.state.dataSource.map(function (item) {
17102
+ if (item.label === record.label) {
17103
+ return _objectSpread2(_objectSpread2({}, item), {}, {
17104
+ hidden: true
17105
+ });
17106
+ }
17107
+ return item;
17108
+ }))
17109
+ });
17110
+ }
17111
+ }, /*#__PURE__*/React.createElement("img", {
17112
+ src: close
17113
+ }));
17114
+ }
17115
+ }, {
17116
+ title: 'Sort',
17117
+ dataIndex: 'sort',
17118
+ className: 'drag-visible',
17119
+ render: function render() {
17120
+ return /*#__PURE__*/React.createElement(DragHandle$3, null);
17121
+ }
17122
+ }];
17123
+ _this.showModal = function () {
17124
+ _this.setState({
17125
+ visible: true
17126
+ });
17127
+ _this.setInitValue();
17128
+ };
17129
+ _this.handleOk = function (e) {
17130
+ var _this$state2 = _this.state,
17131
+ sortDataSource = _this$state2.sortDataSource,
17132
+ isDefaultValue = _this$state2.isDefaultValue,
17133
+ defaultValue = _this$state2.defaultValue;
17134
+ if (!sortDataSource.length) {
17135
+ message.warning('至少选择一个搜索项!');
17136
+ return;
17137
+ }
17138
+ _this.patchUserSearchFieldsConfig(sortDataSource);
17139
+ };
17140
+ _this.handleCancel = function (e) {
17141
+ console.log(e);
17142
+ _this.setState({
17143
+ visible: false
17144
+ });
17145
+ };
17146
+ _this.handleTableHeadHidden = function (title) {
17147
+ var _this$state3 = _this.state,
17148
+ sortDataSource = _this$state3.sortDataSource,
17149
+ dataSource = _this$state3.dataSource;
17150
+ _this.setState({
17151
+ sortDataSource: sortDataSource.filter(function (item) {
17152
+ return item.title !== title;
17153
+ }),
17154
+ dataSource: _toConsumableArray(dataSource.map(function (item) {
17155
+ if (item.title === title) {
17156
+ return _objectSpread2(_objectSpread2({}, item), {}, {
17157
+ hidden: true
17158
+ });
17159
+ }
17160
+ return item;
17161
+ }))
17162
+ }, function () {
17163
+ _this.handleOk();
17164
+ });
17165
+ };
17166
+ _this.onSortEnd = function (_ref) {
17167
+ var oldIndex = _ref.oldIndex,
17168
+ newIndex = _ref.newIndex;
17169
+ var sortDataSource = _this.state.sortDataSource;
17170
+ if (oldIndex !== newIndex) {
17171
+ var newData = arrayMoveImmutable([].concat(sortDataSource), oldIndex, newIndex).filter(function (el) {
17172
+ return !!el;
17173
+ });
17174
+ _this.setState({
17175
+ sortDataSource: _toConsumableArray(newData),
17176
+ isDefaultValue: false
17177
+ });
17178
+ }
17179
+ };
17180
+ _this.DraggableContainer = function (props) {
17181
+ return /*#__PURE__*/React.createElement(SortableBody$3, _objectSpread2({
17182
+ useDragHandle: true,
17183
+ disableAutoscroll: true,
17184
+ helperClass: "row-dragging",
17185
+ onSortEnd: _this.onSortEnd
17186
+ }, props));
17187
+ };
17188
+ _this.DraggableBodyRow = function (_ref2) {
17189
+ var className = _ref2.className,
17190
+ style = _ref2.style,
17191
+ restProps = _objectWithoutProperties(_ref2, _excluded$d);
17192
+ var sortDataSource = _this.state.sortDataSource;
17193
+ var index = sortDataSource.findIndex(function (x) {
17194
+ return x.name === restProps['data-row-key'];
17195
+ });
17196
+ return /*#__PURE__*/React.createElement(SortableItem$3, _objectSpread2({
17197
+ index: index
17198
+ }, restProps));
17199
+ };
17200
+ _this.onChange = function (e, label) {
17201
+ var _this$state4 = _this.state,
17202
+ sortDataSource = _this$state4.sortDataSource,
17203
+ dataSource = _this$state4.dataSource;
17204
+ if (!e.target.checked) {
17205
+ _this.setState({
17206
+ sortDataSource: sortDataSource.filter(function (item) {
17207
+ return item.label !== label;
17208
+ }),
17209
+ isDefaultValue: false,
17210
+ dataSource: _toConsumableArray(dataSource.map(function (item) {
17211
+ if (item.label === label) {
17212
+ return _objectSpread2(_objectSpread2({}, item), {}, {
17213
+ hidden: true
17214
+ });
17215
+ }
17216
+ return item;
17217
+ }))
17218
+ });
17219
+ } else {
17220
+ var newSortData = [].concat(_toConsumableArray(sortDataSource), _toConsumableArray(dataSource.filter(function (item) {
17221
+ return item.label === label;
17222
+ }).map(function (source) {
17223
+ return _objectSpread2(_objectSpread2({}, source), {}, {
17224
+ hidden: false
17225
+ });
17226
+ })));
17227
+ _this.setState({
17228
+ sortDataSource: _toConsumableArray(newSortData),
17229
+ isDefaultValue: false,
17230
+ dataSource: _toConsumableArray(dataSource.map(function (item) {
17231
+ if (item.label === label) {
17232
+ return _objectSpread2(_objectSpread2({}, item), {}, {
17233
+ hidden: false
17234
+ });
17235
+ }
17236
+ return item;
17237
+ }))
17238
+ });
17239
+ }
17240
+ };
17241
+ _this.handleReset = function () {
17242
+ _this.setInitValue(true);
17243
+ };
17244
+ _this.onSearch = function (e) {
17245
+ _this.setState({
17246
+ searchDataSource: e.target.value
17247
+ });
17248
+ };
17249
+ _this.onSearchSort = function (e) {
17250
+ _this.setState({
17251
+ onSearchSort: e.target.value
17252
+ });
17253
+ };
17254
+ return _this;
17255
+ }
17256
+ _createClass(SearchItemTable, [{
17257
+ key: "componentDidMount",
17258
+ value: function componentDidMount() {
17259
+ var _this$props2 = this.props,
17260
+ datasource = _this$props2.datasource,
17261
+ showSearchFields = _this$props2.showSearchFields,
17262
+ bsTableCode = _this$props2.bsTableCode;
17263
+ var config = this.getConfigFromlocalstorage();
17264
+ this.setState({
17265
+ dataSource: datasource.map(function (item) {
17266
+ var innerItem = config.filter(function (inneritem) {
17267
+ var innerKey = Array.isArray(inneritem.name) ? JSON.stringify(inneritem.name) : inneritem.name;
17268
+ var itemKey = Array.isArray(item.name) ? JSON.stringify(item.name) : item.name;
17269
+ return innerKey && innerKey === itemKey;
17270
+ });
17271
+ return _objectSpread2(_objectSpread2({}, item), {}, {
17272
+ hidden: config.length && !innerItem.length
17273
+ });
17274
+ }),
17275
+ defaultValue: datasource.map(function (item) {
17276
+ var innerItem = config.filter(function (inneritem) {
17277
+ var innerKey = Array.isArray(inneritem.name) ? JSON.stringify(inneritem.name) : inneritem.name;
17278
+ var itemKey = Array.isArray(item.name) ? JSON.stringify(item.name) : item.name;
17279
+ return innerKey && innerKey === itemKey;
17280
+ });
17281
+ return _objectSpread2(_objectSpread2({}, item), {}, {
17282
+ hidden: config.length && !innerItem.length
17283
+ });
17284
+ }),
17285
+ sortDataSource: datasource.filter(function (item) {
17286
+ return !item.hidden;
17287
+ }).map(function (item) {
17288
+ return _objectSpread2({}, item);
17289
+ }),
17290
+ bsTableCode: bsTableCode
17291
+ });
17292
+ }
17293
+ }, {
17294
+ key: "render",
17295
+ value: function render() {
17296
+ var _this2 = this;
17297
+ var _this$state5 = this.state,
17298
+ _this$state5$dataSour = _this$state5.dataSource,
17299
+ dataSource = _this$state5$dataSour === void 0 ? [] : _this$state5$dataSour,
17300
+ searchDataSource = _this$state5.searchDataSource,
17301
+ sortDataSource = _this$state5.sortDataSource,
17302
+ visible = _this$state5.visible,
17303
+ onSearchSort = _this$state5.onSearchSort;
17304
+ var newSearchSource = dataSource.filter(function (item) {
17305
+ var _item$label;
17306
+ return (item === null || item === void 0 ? void 0 : (_item$label = item.label) === null || _item$label === void 0 ? void 0 : _item$label.indexOf(searchDataSource || '')) > -1;
17307
+ });
17308
+ return /*#__PURE__*/React.createElement("div", {
17309
+ className: 'sort_table_wrapper'
17310
+ }, visible && /*#__PURE__*/React.createElement(Modal, {
17311
+ title: "\u8BBE\u7F6E\u641C\u7D22\u9879\u5185\u5BB9",
17312
+ wrapClassName: 'sort_table_wrapper',
17313
+ width: 820,
17314
+ visible: visible,
17315
+ onOk: this.handleOk,
17316
+ onCancel: this.handleCancel,
17317
+ footer: [/*#__PURE__*/React.createElement(Button, {
17318
+ key: "back",
17319
+ onClick: this.handleReset
17320
+ }, "\u6062\u590D\u9ED8\u8BA4"), /*#__PURE__*/React.createElement(Button, {
17321
+ key: "submit",
17322
+ onClick: this.handleCancel
17323
+ }, "\u53D6\u6D88"), /*#__PURE__*/React.createElement(Button, {
17324
+ key: "submit",
17325
+ type: "primary",
17326
+ onClick: this.handleOk
17327
+ }, "\u786E\u8BA4")]
17328
+ }, /*#__PURE__*/React.createElement("div", {
17329
+ className: 'sort_table'
17330
+ }, /*#__PURE__*/React.createElement("div", {
17331
+ className: 'sort_table_column_wrapper'
17332
+ }, /*#__PURE__*/React.createElement("span", {
17333
+ className: 'sort_table_column_count'
17334
+ }, "\u53EF\u9009\u5B57\u6BB5 ", /*#__PURE__*/React.createElement("span", null, "\uFF08\u5171", dataSource.length, "\u4E2A\uFF09")), /*#__PURE__*/React.createElement("div", {
17335
+ className: 'sort_table_column'
17336
+ }, /*#__PURE__*/React.createElement(Input, {
17337
+ prefix: /*#__PURE__*/React.createElement(SearchOutlined, {
17338
+ className: "site-form-item-icon"
17339
+ }),
17340
+ placeholder: "\u641C\u7D22",
17341
+ allowClear: true,
17342
+ onChange: this.onSearch,
17343
+ style: {
17344
+ width: 540
17345
+ }
17346
+ }), /*#__PURE__*/React.createElement("div", null, !searchDataSource && /*#__PURE__*/React.createElement(Checkbox, {
17347
+ checked: !dataSource.some(function (item) {
17348
+ if (item.hidden) return true;
17349
+ return false;
17350
+ }),
17351
+ onClick: function onClick(e) {
17352
+ _this2.setState({
17353
+ isDefaultValue: false,
17354
+ dataSource: _toConsumableArray(dataSource.map(function (item) {
17355
+ return _objectSpread2(_objectSpread2({}, item), {}, {
17356
+ hidden: !e.target.checked
17357
+ });
17358
+ })),
17359
+ sortDataSource: e.target.checked ? _toConsumableArray(dataSource.map(function (item) {
17360
+ return _objectSpread2(_objectSpread2({}, item), {}, {
17361
+ hidden: false
17362
+ });
17363
+ })) : []
17364
+ });
17365
+ }
17366
+ }, "\u5168\u9009")), /*#__PURE__*/React.createElement("div", {
17367
+ className: 'sort_table_column_all'
17368
+ }, searchDataSource ? newSearchSource.map(function (item) {
17369
+ return /*#__PURE__*/React.createElement(Checkbox, {
17370
+ checked: !item.hidden,
17371
+ onChange: function onChange(e) {
17372
+ _this2.onChange(e, item.label);
17373
+ }
17374
+ }, item.label);
17375
+ }) : dataSource.map(function (item) {
17376
+ return /*#__PURE__*/React.createElement(Checkbox, {
17377
+ checked: !item.hidden,
17378
+ onChange: function onChange(e) {
17379
+ _this2.onChange(e, item.label);
17380
+ }
17381
+ }, item.label);
17382
+ }), !!newSearchSource.length && /*#__PURE__*/React.createElement("span", {
17383
+ style: {
17384
+ width: '144px'
17385
+ }
17386
+ }), !newSearchSource.length && /*#__PURE__*/React.createElement("div", {
17387
+ className: 'sort_table_column_all_empty'
17388
+ }, "\u672A\u67E5\u8BE2\u5230\u7ED3\u679C")))), /*#__PURE__*/React.createElement("div", {
17389
+ className: 'sort_table_content_wrapper'
17390
+ }, /*#__PURE__*/React.createElement("span", {
17391
+ className: 'sort_table_content_count'
17392
+ }, "\u5DF2\u9009\u5B57\u6BB5 ", /*#__PURE__*/React.createElement("span", null, "\uFF08\u5171", sortDataSource.length, "\u4E2A\uFF09")), /*#__PURE__*/React.createElement("div", {
17393
+ className: 'sort_table_content'
17394
+ }, /*#__PURE__*/React.createElement("span", {
17395
+ style: {
17396
+ paddingLeft: '10px'
17397
+ }
17398
+ }, /*#__PURE__*/React.createElement(Input, {
17399
+ prefix: /*#__PURE__*/React.createElement(SearchOutlined, {
17400
+ className: "site-form-item-icon"
17401
+ }),
17402
+ placeholder: "\u641C\u7D22",
17403
+ allowClear: true,
17404
+ onChange: this.onSearchSort,
17405
+ style: {
17406
+ width: 190
17407
+ }
17408
+ })), /*#__PURE__*/React.createElement(Table, {
17409
+ pagination: false,
17410
+ showHeader: false,
17411
+ dataSource: onSearchSort ? sortDataSource.filter(function (item) {
17412
+ var _item$label2;
17413
+ return (item === null || item === void 0 ? void 0 : (_item$label2 = item.label) === null || _item$label2 === void 0 ? void 0 : _item$label2.indexOf(onSearchSort)) > -1;
17414
+ }) : sortDataSource,
17415
+ columns: this.columns,
17416
+ rowKey: "name",
17417
+ components: {
17418
+ body: {
17419
+ wrapper: this.DraggableContainer,
17420
+ row: this.DraggableBodyRow
17421
+ }
17422
+ }
17423
+ }))))), /*#__PURE__*/React.createElement("div", {
17424
+ onClick: this.showModal,
17425
+ style: {
17426
+ fontSize: 14
17427
+ }
17428
+ }, "\u641C\u7D22\u9879\u8BBE\u7F6E"));
17429
+ }
17430
+ }]);
17431
+ return SearchItemTable;
17432
+ }(React.Component);
17433
+
17434
+ var _excluded$e = ["onResize", "width"];
16960
17435
  var MemoQueryTable = /*#__PURE__*/React.memo(QueryTable);
16961
17436
  var ResizeableTitle$2 = function ResizeableTitle(props) {
16962
17437
  var onResize = props.onResize,
16963
17438
  width = props.width,
16964
- restProps = _objectWithoutProperties(props, _excluded$d);
17439
+ restProps = _objectWithoutProperties(props, _excluded$e);
16965
17440
  if (!width) {
16966
17441
  return /*#__PURE__*/React.createElement("th", _objectSpread2({}, restProps));
16967
17442
  }
@@ -17006,14 +17481,18 @@ var BsSulaQueryTable = (function (props) {
17006
17481
  var _useState11 = useState([]),
17007
17482
  _useState12 = _slicedToArray(_useState11, 2),
17008
17483
  showColumn = _useState12[0],
17009
- setShowColumns = _useState12[1];
17484
+ setShowColumns = _useState12[1]; // 列字段
17485
+ var _useState13 = useState([]),
17486
+ _useState14 = _slicedToArray(_useState13, 2),
17487
+ showSearchFields = _useState14[0],
17488
+ setShowSearchFields = _useState14[1]; //搜索项字段
17010
17489
  var _props$isPage = props.isPage,
17011
17490
  pagination = props.pagination,
17012
17491
  tableCode = props.tableCode;
17013
- var _useState13 = useState('100vh'),
17014
- _useState14 = _slicedToArray(_useState13, 2),
17015
- height = _useState14[0],
17016
- setHeight = _useState14[1];
17492
+ var _useState15 = useState('100vh'),
17493
+ _useState16 = _slicedToArray(_useState15, 2),
17494
+ height = _useState16[0],
17495
+ setHeight = _useState16[1];
17017
17496
  var sortTableRef = useRef(null);
17018
17497
  var bsTableCode = tableCode || window.location.hash; //设置列字段的唯一标识
17019
17498
  // 获取table高度
@@ -17033,8 +17512,8 @@ var BsSulaQueryTable = (function (props) {
17033
17512
  if (isFull == undefined) isFull = false;
17034
17513
  return isFull;
17035
17514
  }
17036
- var getConfigFromlocalstorage = function getConfigFromlocalstorage() {
17037
- var config = localStorage.getItem(ENUM.BROWSER_CACHE.COLUMN_CONDITION) || '[]';
17515
+ var getConfigFromlocalstorage = function getConfigFromlocalstorage(type) {
17516
+ var config = localStorage.getItem(type) || '[]';
17038
17517
  var configArray = JSON.parse(config);
17039
17518
  var configSetting = configArray.filter(function (item) {
17040
17519
  return item.code === bsTableCode;
@@ -17090,7 +17569,7 @@ var BsSulaQueryTable = (function (props) {
17090
17569
  columns: _toConsumableArray(props.columns)
17091
17570
  }));
17092
17571
  var columns = props.columns;
17093
- var columnConfig = getConfigFromlocalstorage();
17572
+ var columnConfig = getConfigFromlocalstorage(ENUM.BROWSER_CACHE.COLUMN_CONDITION);
17094
17573
  var showColumns = columnConfig.length ? columnConfig.map(function (item) {
17095
17574
  var inner = columns.filter(function (inneritem) {
17096
17575
  var innerKey = Array.isArray(inneritem.key || inneritem.dataIndex) ? JSON.stringify(inneritem.key || inneritem.dataIndex) : inneritem.key || inneritem.dataIndex;
@@ -17114,10 +17593,26 @@ var BsSulaQueryTable = (function (props) {
17114
17593
  });
17115
17594
  setShowColumns(_toConsumableArray(showColumns));
17116
17595
  };
17596
+ var setInitialSearchFieldsInfo = function setInitialSearchFieldsInfo() {
17597
+ //获取搜索字段的缓存配置
17598
+ var _props$fields = props.fields,
17599
+ fields = _props$fields === void 0 ? [] : _props$fields;
17600
+ var searchFieldsConfig = getConfigFromlocalstorage(ENUM.BROWSER_CACHE.SEARCH_FIELDS_CONDITION);
17601
+ var showSearchFields = searchFieldsConfig.length ? searchFieldsConfig.map(function (item) {
17602
+ var inner = fields.filter(function (inneritem) {
17603
+ var innerKey = Array.isArray(inneritem.name) ? JSON.stringify(inneritem.name) : inneritem.name;
17604
+ var itemKey = Array.isArray(item.name) ? JSON.stringify(item.name) : item.name;
17605
+ return innerKey && innerKey === itemKey;
17606
+ })[0];
17607
+ return _objectSpread2(_objectSpread2({}, inner), item);
17608
+ }) : fields;
17609
+ setShowSearchFields(_toConsumableArray(showSearchFields));
17610
+ };
17117
17611
  //组件初始挂载
17118
17612
  useEffect(function () {
17119
17613
  getTableHeight();
17120
17614
  setInitialTableInfo();
17615
+ setInitialSearchFieldsInfo();
17121
17616
  window.addEventListener('resize', function (e) {
17122
17617
  watchWinResize();
17123
17618
  });
@@ -17134,6 +17629,17 @@ var BsSulaQueryTable = (function (props) {
17134
17629
  JSON.stringify(newKeys) !== JSON.stringify(oldKeys) && setInitialTableInfo();
17135
17630
  }
17136
17631
  }, [props === null || props === void 0 ? void 0 : props.columns]);
17632
+ useEffect(function () {
17633
+ if ((props === null || props === void 0 ? void 0 : props.fields) && (value === null || value === void 0 ? void 0 : value.fields)) {
17634
+ var newKeys = props.fields.map(function (d) {
17635
+ return Array.isArray(d.name) ? JSON.stringify(d.name) : d.name;
17636
+ });
17637
+ var oldKeys = value.fields.map(function (d) {
17638
+ return Array.isArray(d.name) ? JSON.stringify(d.name) : d.name;
17639
+ });
17640
+ JSON.stringify(newKeys) !== JSON.stringify(oldKeys) && setInitialSearchFieldsInfo();
17641
+ }
17642
+ }, [props === null || props === void 0 ? void 0 : props.fields]);
17137
17643
  useEffect(function () {
17138
17644
  setInitialTableInfo();
17139
17645
  }, [props === null || props === void 0 ? void 0 : props.refreshColumns]);
@@ -17245,16 +17751,28 @@ var BsSulaQueryTable = (function (props) {
17245
17751
  actionsRender = [].concat(_toConsumableArray(actionsRender), [{
17246
17752
  type: 'text',
17247
17753
  props: {
17248
- children: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Tooltip, {
17249
- title: "\u5217\u8BBE\u7F6E"
17754
+ children: /*#__PURE__*/React.createElement("span", {
17755
+ className: "ant-dropdown-link"
17756
+ }, /*#__PURE__*/React.createElement(Dropdown, {
17757
+ overlay: /*#__PURE__*/React.createElement(Menu, null, /*#__PURE__*/React.createElement(Menu.Item, null, /*#__PURE__*/React.createElement(SortableTable$1, {
17758
+ ref: sortTableRef,
17759
+ setShowColumns: setShowColumns,
17760
+ showColumn: showColumn,
17761
+ datasource: (value === null || value === void 0 ? void 0 : value.columns) || [],
17762
+ bsTableCode: bsTableCode
17763
+ })), /*#__PURE__*/React.createElement(Menu.Item, null, /*#__PURE__*/React.createElement(SearchItemTable, {
17764
+ ref: sortTableRef,
17765
+ setShowSearchFields: setShowSearchFields,
17766
+ showSearchFields: showSearchFields,
17767
+ datasource: (value === null || value === void 0 ? void 0 : value.fields) || [],
17768
+ bsTableCode: bsTableCode
17769
+ }))),
17770
+ placement: "bottom"
17250
17771
  }, /*#__PURE__*/React.createElement("span", {
17251
17772
  className: "ant-dropdown-link"
17252
- }, /*#__PURE__*/React.createElement(SortableTable$1, {
17253
- ref: sortTableRef,
17254
- setShowColumns: setShowColumns,
17255
- showColumn: showColumn,
17256
- datasource: (value === null || value === void 0 ? void 0 : value.columns) || [],
17257
- bsTableCode: bsTableCode
17773
+ }, /*#__PURE__*/React.createElement("img", {
17774
+ width: 32,
17775
+ src: shezhi
17258
17776
  }))))
17259
17777
  }
17260
17778
  }, {
@@ -17338,6 +17856,7 @@ var BsSulaQueryTable = (function (props) {
17338
17856
  }, handleTimeValue()), {}, {
17339
17857
  tableProps: setTableProps(),
17340
17858
  columns: _toConsumableArray(showColumn),
17859
+ fields: _toConsumableArray(showSearchFields),
17341
17860
  ref: props.forwardedRef || refs,
17342
17861
  isFullScreen: isFullScreen
17343
17862
  });
@@ -17360,7 +17879,7 @@ var BsSulaQueryTable = (function (props) {
17360
17879
  summary: props.summary,
17361
17880
  statusMapping: props.statusMapping
17362
17881
  });
17363
- }, [value, checkedList, showColumn, props.statusMapping]);
17882
+ }, [value, checkedList, showColumn, props.statusMapping, showSearchFields]);
17364
17883
  return /*#__PURE__*/React.createElement(MemoQueryTable, _objectSpread2({}, memoConfig));
17365
17884
  });
17366
17885
 
@@ -19433,7 +19952,7 @@ var CustomerMenuHeader = function CustomerMenuHeader(_ref) {
19433
19952
  var css_248z$m = ".customer_menu_content {\n color: #b1bad4;\n background: #141620;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 18px;\n height: 40px;\n border-bottom: 1px solid #3d4047;\n}\n.customer_menu_content .ant-btn-link {\n color: #b1bad4 !important;\n font-size: 16px;\n height: 36px;\n}\n.menu_item {\n line-height: 30px;\n height: 30px;\n color: rgba(44, 47, 46);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.link_style:hover {\n background-color: #e4e7ed;\n cursor: pointer;\n color: #1890ff;\n}\n.sub_menu_content {\n box-shadow: 2px 0px 4px 0px rgba(185, 185, 185, 0.5);\n position: fixed;\n top: 50px;\n left: 140px;\n width: 200px;\n height: 100%;\n background-color: #fff;\n padding-top: 10px;\n z-index: 9999;\n}\n.tab_left_operate {\n display: flex;\n height: 28px;\n align-items: center;\n}\n.tab_left_operate > div {\n width: 28px;\n font-size: 12px;\n color: #2C2F2ECC;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid #E4E4E4;\n background-color: #fff;\n cursor: pointer;\n}\n.tab_left_operate > div:last-child {\n box-shadow: 2px -2px 4px 0px rgba(185, 185, 185, 0.9);\n z-index: 99;\n}\n.tab_right_operate {\n height: 28px;\n width: 28px;\n font-size: 12px;\n color: #2C2F2ECC;\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid #E4E4E4;\n background-color: #fff;\n box-shadow: -2px -2px 4px 0px rgba(185, 185, 185, 0.9);\n z-index: 99;\n cursor: pointer;\n position: relative;\n}\n";
19434
19953
  styleInject(css_248z$m);
19435
19954
 
19436
- var _excluded$e = ["route"];
19955
+ var _excluded$f = ["route"];
19437
19956
  var TabPane = Tabs.TabPane;
19438
19957
  var UN_LISTTEN_DRP;
19439
19958
  var routerArray = [];
@@ -20231,7 +20750,7 @@ var BasicLayout = /*#__PURE__*/function (_React$PureComponent) {
20231
20750
  }); // 添加数据大屏
20232
20751
  var _this$props3 = this.props,
20233
20752
  route = _this$props3.route,
20234
- restPrpos = _objectWithoutProperties(_this$props3, _excluded$e);
20753
+ restPrpos = _objectWithoutProperties(_this$props3, _excluded$f);
20235
20754
  var exist = route.routes.find(function (route) {
20236
20755
  return route.path === '/homePage/data-show';
20237
20756
  });
@@ -21027,10 +21546,10 @@ var index$6 = /*#__PURE__*/forwardRef(function (props, ref) {
21027
21546
  }))))));
21028
21547
  });
21029
21548
 
21030
- var _excluded$f = ["children"];
21549
+ var _excluded$g = ["children"];
21031
21550
  var Drawer = (function (props) {
21032
21551
  var children = props.children,
21033
- restProps = _objectWithoutProperties(props, _excluded$f);
21552
+ restProps = _objectWithoutProperties(props, _excluded$g);
21034
21553
  return /*#__PURE__*/React.createElement(Drawer$1, _objectSpread2({
21035
21554
  mask: true,
21036
21555
  closable: false,