@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.
- package/es/BaseTable/index.js +5 -0
- package/es/BaseTable/index.less +0 -41
- package/es/Filter/index.js +41 -34
- package/es/Popup/index.d.ts +4 -4
- package/es/Popup/index.js +4 -5
- package/es/Section/index.less +6 -1
- package/es/SelectView/index.d.ts +50 -0
- package/es/SelectView/index.js +252 -0
- package/es/SelectView/index.less +59 -0
- package/es/SiderTree/index.js +1 -1
- package/es/SiderTree/index.less +4 -0
- package/es/index.d.ts +1 -0
- package/es/index.js +2 -1
- package/es/index.less +1 -0
- package/es/overrides.less +55 -0
- package/package.json +2 -2
package/es/BaseTable/index.js
CHANGED
package/es/BaseTable/index.less
CHANGED
|
@@ -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;
|
package/es/Filter/index.js
CHANGED
|
@@ -395,18 +395,24 @@ function Filter(props) {
|
|
|
395
395
|
};
|
|
396
396
|
};
|
|
397
397
|
|
|
398
|
-
var
|
|
399
|
-
|
|
400
|
-
|
|
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
|
-
|
|
407
|
-
var
|
|
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(
|
|
432
|
+
if (currRow.length > 0 && value > width) {
|
|
433
|
+
rows.push([]);
|
|
426
434
|
}
|
|
427
435
|
|
|
428
|
-
|
|
429
|
-
|
|
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
|
-
|
|
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(
|
|
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;
|
package/es/Popup/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
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:
|
|
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,
|
|
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:
|
|
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),
|
|
187
|
+
}, restProps), component({
|
|
189
188
|
value: value,
|
|
190
189
|
onChange: setValue
|
|
191
190
|
})));
|
package/es/Section/index.less
CHANGED
|
@@ -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
|
+
}
|
package/es/SiderTree/index.js
CHANGED
|
@@ -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")
|
package/es/SiderTree/index.less
CHANGED
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
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.
|
|
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": "
|
|
44
|
+
"gitHead": "88ff2516603aa23164d144c188959758a62377f6"
|
|
45
45
|
}
|