@lemon-fe/components 0.1.12 → 0.1.15

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.
@@ -190,6 +190,11 @@ function BaseTable(props) {
190
190
  }
191
191
 
192
192
  memoHeight.current = height;
193
+
194
+ if (memoHeight.current === 0) {
195
+ return;
196
+ }
197
+
193
198
  setScrollY(calcScrollY() || undefined);
194
199
  };
195
200
 
@@ -2,47 +2,6 @@
2
2
  @font-size-base: 14px;
3
3
  @resize-indicator-color: #333;
4
4
 
5
- .ant-table-thead > tr > th {
6
- border-bottom: none;
7
-
8
- &::before {
9
- display: none;
10
- }
11
- }
12
-
13
- .ant-table-body {
14
- &::-webkit-scrollbar {
15
- width: 8px;
16
- height: 8px;
17
- }
18
-
19
- &::-webkit-scrollbar-thumb {
20
- background-color: #ddd;
21
- }
22
-
23
- &::-webkit-scrollbar-track {
24
- background-color: #fff;
25
- }
26
- }
27
-
28
- .ant-table-cell {
29
- .ant-checkbox-checked .ant-checkbox-inner::after {
30
- transition: none !important;
31
- }
32
-
33
- .ant-checkbox-inner {
34
- transition: none !important;
35
- }
36
-
37
- .ant-checkbox-checked::after {
38
- animation: none !important;
39
- }
40
- }
41
-
42
- .ant-table-pagination.ant-pagination {
43
- margin-bottom: 0;
44
- }
45
-
46
5
  .@{tablePrefixCls} {
47
6
  position: relative;
48
7
  box-sizing: border-box;
@@ -395,18 +395,24 @@ function Filter(props) {
395
395
  };
396
396
  };
397
397
 
398
- var cols = useMemo(function () {
399
- if (!width || !collapsed) {
400
- return data;
398
+ var _useMemo = useMemo(function () {
399
+ var result = data.filter(function (item) {
400
+ if (activeKeys.has(item.key) && compMap.has(item.type)) {
401
+ return true;
402
+ }
403
+
404
+ return false;
405
+ });
406
+
407
+ if (!width) {
408
+ return [result, false];
401
409
  }
402
410
 
403
411
  var rows = [];
404
412
  var currRow = [];
405
413
  var value = 0;
406
- data.forEach(function (item) {
407
- var _compMap$get;
408
-
409
- var itemWidth = getColStyle(item.colSpan || ((_compMap$get = compMap.get(item.type)) === null || _compMap$get === void 0 ? void 0 : _compMap$get.colSpan)).width;
414
+ result.forEach(function (item) {
415
+ var itemWidth = getColStyle(item.colSpan || compMap.get(item.type).colSpan).width;
410
416
 
411
417
  if (value + itemWidth > width) {
412
418
  if (currRow.length > 0) {
@@ -420,18 +426,32 @@ function Filter(props) {
420
426
  value += itemWidth;
421
427
  }
422
428
  });
429
+ rows.push(currRow);
430
+ value += simple ? 180 : 220;
423
431
 
424
- if (currRow.length > 0) {
425
- rows.push(currRow);
432
+ if (currRow.length > 0 && value > width) {
433
+ rows.push([]);
426
434
  }
427
435
 
428
- if (rows.length <= 2) {
429
- return data;
436
+ var visible = rows.length > 2;
437
+
438
+ if (!collapsed || !visible) {
439
+ return [result, visible];
430
440
  }
431
441
 
432
- return [rows[0], rows[rows.length - 1]].flat();
433
- }, [data, width, collapsed]);
434
- var content = /*#__PURE__*/React.createElement("div", {
442
+ return [[rows[0], rows[rows.length - 1]].flat(), visible];
443
+ }, [data, width, collapsed, simple, activeKeys]),
444
+ _useMemo2 = _slicedToArray(_useMemo, 2),
445
+ cols = _useMemo2[0],
446
+ showCollapse = _useMemo2[1];
447
+
448
+ return /*#__PURE__*/React.createElement(ResizeObserver, {
449
+ onResize: function onResize(size) {
450
+ if (size.width) {
451
+ setWidth(size.width + 16);
452
+ }
453
+ }
454
+ }, /*#__PURE__*/React.createElement("div", {
435
455
  className: classNames(prefixCls, _defineProperty({}, "".concat(prefixCls, "-simple"), simple)),
436
456
  style: style
437
457
  }, /*#__PURE__*/React.createElement(Modal, {
@@ -471,13 +491,7 @@ function Filter(props) {
471
491
  }), /*#__PURE__*/React.createElement(FormLayout, {
472
492
  direction: "row"
473
493
  }, cols.map(function (item) {
474
- var visible = activeKeys.has(item.key);
475
494
  var target = compMap.get(item.type);
476
-
477
- if (!visible || !target) {
478
- return null;
479
- }
480
-
481
495
  return /*#__PURE__*/React.createElement("div", {
482
496
  style: getColStyle(item.colSpan || target.colSpan),
483
497
  key: item.key
@@ -493,7 +507,7 @@ function Filter(props) {
493
507
  }, /*#__PURE__*/React.createElement(Button, {
494
508
  type: "primary",
495
509
  htmlType: "submit"
496
- }, "\u67E5\u8BE2")), simple ? /*#__PURE__*/React.createElement(Button, {
510
+ }, "\u67E5\u8BE2")), /*#__PURE__*/React.createElement(Space, null, simple ? /*#__PURE__*/React.createElement(Button, {
497
511
  className: "".concat(prefixCls, "-btn"),
498
512
  onClick: handleReset
499
513
  }, /*#__PURE__*/React.createElement("svg", {
@@ -509,7 +523,7 @@ function Filter(props) {
509
523
  strokeLinejoin: "round",
510
524
  fill: "none",
511
525
  fillRule: "evenodd"
512
- }))) : /*#__PURE__*/React.createElement(Space, null, /*#__PURE__*/React.createElement(Dropdown, {
526
+ }))) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Dropdown, {
513
527
  actions: [{
514
528
  text: '重置',
515
529
  onClick: handleReset
@@ -556,7 +570,10 @@ function Filter(props) {
556
570
  setKeywords('');
557
571
  },
558
572
  icon: /*#__PURE__*/React.createElement(Icons.LookUp, null)
559
- })), /*#__PURE__*/React.createElement(Button, {
573
+ }))), /*#__PURE__*/React.createElement(Button, {
574
+ style: {
575
+ visibility: showCollapse ? 'visible' : 'hidden'
576
+ },
560
577
  className: "".concat(prefixCls, "-btn"),
561
578
  onClick: function onClick() {
562
579
  return setCollapsed(function (prev) {
@@ -568,17 +585,7 @@ function Filter(props) {
568
585
  transform: collapsed ? 'rotateX(180deg)' : undefined
569
586
  }
570
587
  })
571
- }))))));
572
-
573
- if (simple) {
574
- return content;
575
- }
576
-
577
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ResizeObserver, {
578
- onResize: function onResize(size) {
579
- return setWidth(size.width + 16);
580
- }
581
- }, content));
588
+ })))))));
582
589
  }
583
590
 
584
591
  Filter.setComponents = setComponents;
@@ -1,12 +1,12 @@
1
- import { ComponentType, ReactElement } from 'react';
2
- import { ModalProps } from 'antd/lib/modal';
1
+ import { ReactElement } from 'react';
2
+ import type { ModalProps } from 'antd/lib/modal';
3
3
  export interface PopupProps<ValueType> extends ModalProps {
4
4
  value?: ValueType;
5
5
  onChange?: (value?: ValueType) => void;
6
- component: ComponentType<{
6
+ component: (params: {
7
7
  value?: ValueType;
8
8
  onChange: (value: ValueType) => void;
9
- }>;
9
+ }) => ReactElement | null;
10
10
  formatLabel?: (value: ValueType) => string;
11
11
  beforeOk?: (value: ValueType) => ValueType | PromiseLike<ValueType>;
12
12
  children?: ReactElement;
package/es/Popup/index.js CHANGED
@@ -26,7 +26,7 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
26
26
 
27
27
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
28
28
 
29
- import React, { useState, createElement, cloneElement, useRef } from 'react';
29
+ import React, { useState, cloneElement, useRef } from 'react';
30
30
  import { Modal, Input, message } from 'antd';
31
31
  import { CloseCircleFilled } from '@ant-design/icons';
32
32
  import { PREFIX_CLS } from '../constants';
@@ -176,16 +176,15 @@ function Popup(props) {
176
176
  }, trigger), /*#__PURE__*/React.createElement(Modal, _objectSpread({
177
177
  destroyOnClose: true,
178
178
  visible: visible,
179
- width: 896,
179
+ width: 994,
180
180
  centered: true,
181
181
  onCancel: handleCancel,
182
182
  onOk: handleOk,
183
183
  bodyStyle: {
184
184
  height: '549px',
185
- padding: 0,
186
- backgroundColor: '#f9f9f9'
185
+ padding: 0
187
186
  }
188
- }, restProps), /*#__PURE__*/createElement(component, {
187
+ }, restProps), component({
189
188
  value: value,
190
189
  onChange: setValue
191
190
  })));
@@ -66,12 +66,17 @@
66
66
  & > .ant-tabs-content-holder {
67
67
  flex: 1;
68
68
 
69
- .ant-tabs-content {
69
+ & > .ant-tabs-content {
70
70
  height: 100%;
71
71
  }
72
72
  }
73
73
  }
74
74
 
75
+ &-flex > .ant-tabs,
76
+ &-table > .ant-tabs {
77
+ min-height: 0;
78
+ }
79
+
75
80
  &-tab {
76
81
  display: inline-flex;
77
82
  align-self: flex-start;
@@ -0,0 +1,50 @@
1
+ import { CSSProperties, Key, ReactElement } from 'react';
2
+ import type { FilterItemType } from '../Filter/typings';
3
+ import type { ColumnType } from '../BaseTable/typings';
4
+ interface Props<RecordType, ParamsType> {
5
+ value?: RecordType[];
6
+ onChange?: (value: RecordType[]) => void;
7
+ /**
8
+ * @description 是否多选
9
+ */
10
+ multiple?: boolean;
11
+ /**
12
+ * @description 选择列表列设置
13
+ */
14
+ columns: ColumnType<RecordType>[];
15
+ /**
16
+ * @description 已选择列表列设置
17
+ */
18
+ selectedColumns?: ColumnType<RecordType>[];
19
+ /**
20
+ * @description 请求方法
21
+ */
22
+ fetch?: (query: {
23
+ current: number;
24
+ pageSize: number;
25
+ params: ParamsType;
26
+ }) => Promise<{
27
+ total: number;
28
+ data: RecordType[];
29
+ }>;
30
+ /**
31
+ * @description 数据源
32
+ */
33
+ dataSource?: RecordType[];
34
+ rowKey: string | ((item: RecordType) => Key);
35
+ /**
36
+ * @description 筛选器设置
37
+ */
38
+ filter?: {
39
+ defaultValue?: ParamsType;
40
+ onValuesChange?: (changedValues: Partial<ParamsType>, allValues: ParamsType) => void;
41
+ data: FilterItemType[];
42
+ sider?: (props: {
43
+ value: ParamsType;
44
+ onChange: (value: Partial<ParamsType>) => void;
45
+ style?: CSSProperties;
46
+ }) => ReactElement;
47
+ };
48
+ }
49
+ export default function SelectView<RecordType, ParamsType extends Record<string, any>>(props: Props<RecordType, ParamsType>): JSX.Element;
50
+ export {};
@@ -0,0 +1,252 @@
1
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
+
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+
5
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+
7
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
8
+
9
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
+
11
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
12
+
13
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
14
+
15
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
16
+
17
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
18
+
19
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
20
+
21
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
22
+
23
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
24
+
25
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
26
+
27
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
28
+ import { Tabs, Button } from 'antd';
29
+ import { get } from 'lodash';
30
+ import Filter from '../Filter';
31
+ import Table from '../Table';
32
+ import { PREFIX_CLS } from '../constants';
33
+ export default function SelectView(props) {
34
+ var value = props.value,
35
+ onChange = props.onChange,
36
+ columns = props.columns,
37
+ _props$selectedColumn = props.selectedColumns,
38
+ selectedColumns = _props$selectedColumn === void 0 ? columns : _props$selectedColumn,
39
+ fetch = props.fetch,
40
+ _props$multiple = props.multiple,
41
+ multiple = _props$multiple === void 0 ? true : _props$multiple,
42
+ rowKey = props.rowKey,
43
+ filter = props.filter,
44
+ dataSource = props.dataSource;
45
+ var prefixCls = "".concat(PREFIX_CLS, "-select-view");
46
+
47
+ var _useState = useState(value || []),
48
+ _useState2 = _slicedToArray(_useState, 2),
49
+ data = _useState2[0],
50
+ setData = _useState2[1];
51
+
52
+ var _useState3 = useState(data),
53
+ _useState4 = _slicedToArray(_useState3, 2),
54
+ selected = _useState4[0],
55
+ setSelected = _useState4[1];
56
+
57
+ var _useState5 = useState((filter === null || filter === void 0 ? void 0 : filter.defaultValue) || {}),
58
+ _useState6 = _slicedToArray(_useState5, 2),
59
+ params = _useState6[0],
60
+ setParams = _useState6[1];
61
+
62
+ var list = useRef(null);
63
+
64
+ var _useState7 = useState('list'),
65
+ _useState8 = _slicedToArray(_useState7, 2),
66
+ tabFlag = _useState8[0],
67
+ setTabFlag = _useState8[1];
68
+
69
+ useEffect(function () {
70
+ var _list$current;
71
+
72
+ (_list$current = list.current) === null || _list$current === void 0 ? void 0 : _list$current.fetch();
73
+ }, [params]);
74
+ useEffect(function () {
75
+ setData(value || []);
76
+ }, [value]);
77
+
78
+ var getRowKey = function getRowKey(item) {
79
+ if (typeof rowKey === 'function') {
80
+ return rowKey(item);
81
+ }
82
+
83
+ return get(item, rowKey);
84
+ };
85
+
86
+ var request = fetch ? function (_ref) {
87
+ var current = _ref.current,
88
+ pageSize = _ref.pageSize;
89
+ return fetch({
90
+ current: current,
91
+ pageSize: pageSize,
92
+ params: params
93
+ });
94
+ } : undefined;
95
+
96
+ var handleClear = function handleClear() {
97
+ var empty = [];
98
+ setSelected(empty);
99
+ setData(empty);
100
+ onChange === null || onChange === void 0 ? void 0 : onChange(empty);
101
+ };
102
+
103
+ var handleChangeData = function handleChangeData(keys, rows) {
104
+ var keySet = new Set(keys);
105
+ var newRows = [].concat(_toConsumableArray(data), _toConsumableArray(rows)).filter(function (item) {
106
+ var curKey = getRowKey(item);
107
+
108
+ if (keySet.has(curKey)) {
109
+ keySet.delete(curKey);
110
+ return true;
111
+ }
112
+
113
+ return false;
114
+ });
115
+ setSelected(newRows);
116
+ setData(newRows);
117
+ onChange === null || onChange === void 0 ? void 0 : onChange(newRows);
118
+ };
119
+
120
+ var handleChangeParams = useCallback(function (mParams) {
121
+ setParams(function (prev) {
122
+ return _objectSpread(_objectSpread({}, prev), mParams);
123
+ });
124
+ }, []);
125
+
126
+ var handleValuesChange = function handleValuesChange(changedValues, allValues) {
127
+ var _filter$onValuesChang;
128
+
129
+ filter === null || filter === void 0 ? void 0 : (_filter$onValuesChang = filter.onValuesChange) === null || _filter$onValuesChang === void 0 ? void 0 : _filter$onValuesChang.call(filter, changedValues, allValues);
130
+ };
131
+
132
+ var headerNode = null;
133
+ var siderNode = null;
134
+
135
+ if (filter) {
136
+ if (filter.data) {
137
+ headerNode = /*#__PURE__*/React.createElement(Filter, {
138
+ simple: true,
139
+ data: filter.data,
140
+ defaultValue: filter.defaultValue,
141
+ onChange: handleChangeParams,
142
+ onValuesChange: handleValuesChange
143
+ });
144
+ }
145
+
146
+ if (filter.sider) {
147
+ siderNode = filter.sider({
148
+ value: params,
149
+ onChange: handleChangeParams
150
+ });
151
+ }
152
+ }
153
+
154
+ var dataKeys = useMemo(function () {
155
+ return data.map(getRowKey);
156
+ }, [data, rowKey]);
157
+ var selectedKeys = useMemo(function () {
158
+ return selected.map(getRowKey);
159
+ }, [rowKey, selected]);
160
+ var selectTable = /*#__PURE__*/React.createElement("div", {
161
+ className: "".concat(prefixCls, "-layout")
162
+ }, siderNode !== null && /*#__PURE__*/React.createElement("div", {
163
+ className: "".concat(prefixCls, "-sider")
164
+ }, siderNode), /*#__PURE__*/React.createElement("div", {
165
+ className: "".concat(prefixCls, "-main")
166
+ }, headerNode !== null && /*#__PURE__*/React.createElement("div", {
167
+ className: "".concat(prefixCls, "-head")
168
+ }, headerNode), /*#__PURE__*/React.createElement("div", {
169
+ className: "".concat(prefixCls, "-body")
170
+ }, /*#__PURE__*/React.createElement(Table, {
171
+ actionRef: list,
172
+ rowKey: rowKey,
173
+ rowSelection: {
174
+ type: multiple ? 'checkbox' : 'radio',
175
+ preserveSelectedRowKeys: true,
176
+ selectedRowKeys: dataKeys,
177
+ onChange: function onChange(keys, rows) {
178
+ return handleChangeData(keys, rows);
179
+ }
180
+ },
181
+ onRow: function onRow(row) {
182
+ return {
183
+ onClick: function onClick() {
184
+ var key = getRowKey(row);
185
+
186
+ var keys = _toConsumableArray(dataKeys);
187
+
188
+ var index = keys.findIndex(function (item) {
189
+ return item === key;
190
+ });
191
+
192
+ if (index > 0) {
193
+ keys.splice(index, 1);
194
+ } else {
195
+ keys.push(key);
196
+ }
197
+
198
+ handleChangeData(keys, [row]);
199
+ }
200
+ };
201
+ },
202
+ dataSource: dataSource,
203
+ columns: columns,
204
+ fetch: request
205
+ }))));
206
+ var content;
207
+
208
+ if (!multiple) {
209
+ content = selectTable;
210
+ } else {
211
+ content = /*#__PURE__*/React.createElement(Tabs, {
212
+ size: "small",
213
+ tabBarGutter: 20,
214
+ onChange: function onChange(key) {
215
+ setTabFlag(key);
216
+ },
217
+ tabBarExtraContent: {
218
+ right: tabFlag === 'selected' ? /*#__PURE__*/React.createElement(Button, {
219
+ type: "link",
220
+ onClick: handleClear
221
+ }, "\u6E05\u7A7A") : null
222
+ }
223
+ }, /*#__PURE__*/React.createElement(Tabs.TabPane, {
224
+ tab: "\u5217\u8868",
225
+ key: "list"
226
+ }, selectTable), /*#__PURE__*/React.createElement(Tabs.TabPane, {
227
+ tab: "\u5DF2\u9009\u62E9(".concat(data.length, ")"),
228
+ key: "selected"
229
+ }, /*#__PURE__*/React.createElement("div", {
230
+ className: "".concat(prefixCls, "-layout")
231
+ }, /*#__PURE__*/React.createElement("div", {
232
+ className: "".concat(prefixCls, "-main")
233
+ }, /*#__PURE__*/React.createElement("div", {
234
+ className: "".concat(prefixCls, "-body")
235
+ }, /*#__PURE__*/React.createElement(Table, {
236
+ dataSource: data,
237
+ columns: selectedColumns,
238
+ rowSelection: {
239
+ preserveSelectedRowKeys: true,
240
+ selectedRowKeys: selectedKeys,
241
+ onChange: function onChange(_, rows) {
242
+ return setSelected(rows);
243
+ }
244
+ },
245
+ rowKey: rowKey
246
+ }))))));
247
+ }
248
+
249
+ return /*#__PURE__*/React.createElement("div", {
250
+ className: prefixCls
251
+ }, content);
252
+ }
@@ -0,0 +1,59 @@
1
+ .@{prefixCls}-select-view {
2
+ height: 100%;
3
+
4
+ & > .ant-tabs {
5
+ height: 100%;
6
+
7
+ & > .ant-tabs-nav {
8
+ margin-bottom: 0;
9
+
10
+ & > .ant-tabs-nav-wrap {
11
+ padding: 0 16px;
12
+
13
+ .ant-tabs-tab {
14
+ padding: 13px 0;
15
+ }
16
+ }
17
+ }
18
+
19
+ & > .ant-tabs-content-holder {
20
+ flex: 1;
21
+ min-height: 0;
22
+
23
+ & > .ant-tabs-content {
24
+ height: 100%;
25
+
26
+ & > .ant-tabs-tabpane {
27
+ height: 100%;
28
+ }
29
+ }
30
+ }
31
+ }
32
+
33
+ &-layout {
34
+ display: flex;
35
+ height: 100%;
36
+ }
37
+
38
+ &-sider {
39
+ width: 228px;
40
+ overflow: auto;
41
+ border-right: 1px solid #e5e5e5;
42
+ }
43
+
44
+ &-main {
45
+ display: flex;
46
+ flex: 1;
47
+ flex-direction: column;
48
+ padding: 16px;
49
+ }
50
+
51
+ &-head + &-body {
52
+ margin-top: 16px;
53
+ }
54
+
55
+ &-body {
56
+ flex: 1;
57
+ min-height: 0;
58
+ }
59
+ }
@@ -156,7 +156,7 @@ export default function SiderTree(props) {
156
156
 
157
157
  return /*#__PURE__*/React.createElement("div", {
158
158
  className: "".concat(prefixCls, "-wrapper")
159
- }, /*#__PURE__*/React.createElement("div", {
159
+ }, !!mHeader && /*#__PURE__*/React.createElement("div", {
160
160
  className: "".concat(prefixCls, "-header")
161
161
  }, mHeader), /*#__PURE__*/React.createElement("div", {
162
162
  className: "".concat(prefixCls, "-body")
@@ -130,6 +130,10 @@
130
130
  width: 13px;
131
131
  height: 13px;
132
132
  }
133
+
134
+ &-noop {
135
+ display: none;
136
+ }
133
137
  }
134
138
 
135
139
  &-node-content-wrapper {
package/es/index.d.ts CHANGED
@@ -28,3 +28,4 @@ export type { FormTableColumnType, FormTableProps, FormTableRef } from './FormTa
28
28
  export { default as TabBar } from './TabBar';
29
29
  export { default as SymbolIcon } from './SymbolIcon';
30
30
  export { default as Dropdown } from './Dropdown';
31
+ export { default as SelectView } from './SelectView';
package/es/index.js CHANGED
@@ -22,4 +22,5 @@ export { default as FormInline } from './FormInline';
22
22
  export { default as FormTable } from './FormTable';
23
23
  export { default as TabBar } from './TabBar';
24
24
  export { default as SymbolIcon } from './SymbolIcon';
25
- export { default as Dropdown } from './Dropdown';
25
+ export { default as Dropdown } from './Dropdown';
26
+ export { default as SelectView } from './SelectView';
package/es/index.less CHANGED
@@ -23,3 +23,4 @@
23
23
  @import './TabBar/index.less';
24
24
  @import './SymbolIcon/index.less';
25
25
  @import './Dropdown/index.less';
26
+ @import './SelectView/index.less';
package/es/overrides.less CHANGED
@@ -4,6 +4,11 @@ a[title='站长统计'] {
4
4
 
5
5
  @blue-base: #2357df;
6
6
 
7
+ ::selection {
8
+ color: inherit;
9
+ background: #d3ddf9;
10
+ }
11
+
7
12
  /** basic */
8
13
 
9
14
  @height-base: 32px;
@@ -18,6 +23,48 @@ a[title='站长统计'] {
18
23
  @table-padding-vertical: 14px;
19
24
  @table-border-color: #e1e1e1;
20
25
  @table-border-radius-base: 4px;
26
+ @table-row-hover-bg: #eee;
27
+
28
+ .ant-table-thead > tr > th {
29
+ border-bottom: none;
30
+
31
+ &::before {
32
+ display: none;
33
+ }
34
+ }
35
+
36
+ .ant-table-body {
37
+ &::-webkit-scrollbar {
38
+ width: 8px;
39
+ height: 8px;
40
+ }
41
+
42
+ &::-webkit-scrollbar-thumb {
43
+ background-color: #ddd;
44
+ }
45
+
46
+ &::-webkit-scrollbar-track {
47
+ background-color: #fff;
48
+ }
49
+ }
50
+
51
+ .ant-table-cell {
52
+ .ant-checkbox-checked .ant-checkbox-inner::after {
53
+ transition: none !important;
54
+ }
55
+
56
+ .ant-checkbox-inner {
57
+ transition: none !important;
58
+ }
59
+
60
+ .ant-checkbox-checked::after {
61
+ animation: none !important;
62
+ }
63
+ }
64
+
65
+ .ant-table-pagination.ant-pagination {
66
+ margin-bottom: 0;
67
+ }
21
68
 
22
69
  /** button */
23
70
 
@@ -29,6 +76,10 @@ a[title='站长统计'] {
29
76
  border-radius: 8px;
30
77
  }
31
78
 
79
+ .ant-modal-header {
80
+ border-radius: 8px 8px 0 0;
81
+ }
82
+
32
83
  .ant-modal-confirm {
33
84
  .ant-modal-body {
34
85
  padding: 0;
@@ -104,6 +155,10 @@ a[title='站长统计'] {
104
155
  }
105
156
  }
106
157
 
158
+ .ant-pagination-options .ant-select.ant-select-in-form-item {
159
+ width: auto;
160
+ }
161
+
107
162
  /** select */
108
163
 
109
164
  .ant-select-arrow {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lemon-fe/components",
3
- "version": "0.1.12",
3
+ "version": "0.1.15",
4
4
  "description": "> TODO: description",
5
5
  "author": "鲁盛杰 <lusj@cnlemon.net>",
6
6
  "homepage": "",
@@ -41,5 +41,5 @@
41
41
  "react": "^17.0.2",
42
42
  "react-dom": "^17.0.2"
43
43
  },
44
- "gitHead": "3c09112f79dd6f85972bb14b0204eac1cfb3671b"
44
+ "gitHead": "88ff2516603aa23164d144c188959758a62377f6"
45
45
  }