@cloud-app-dev/vidc 1.0.33 → 1.0.37
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/.umirc.ts +2 -2
- package/es/{WorkerFlow/api.d.ts → Api/index.d.ts} +4 -1
- package/es/{WorkerFlow/api.js → Api/index.js} +90 -0
- package/es/AppLayout/index.d.ts +2 -2
- package/es/DeviceList/index.css +3 -0
- package/es/DeviceList/index.d.ts +12 -11
- package/es/DeviceList/index.js +54 -110
- package/es/DeviceSelect/demo.d.ts +2 -0
- package/es/DeviceSelect/demo.js +22 -0
- package/es/DeviceSelect/index.css +6 -0
- package/es/DeviceSelect/index.d.ts +7 -0
- package/es/DeviceSelect/index.js +222 -0
- package/es/DynamicDeviceList/CheckExt.d.ts +8 -0
- package/es/DynamicDeviceList/CheckExt.js +36 -0
- package/es/DynamicDeviceList/Demo.js +1 -5
- package/es/DynamicDeviceList/index.css +20 -0
- package/es/DynamicDeviceList/index.d.ts +7 -4
- package/es/DynamicDeviceList/index.js +100 -49
- package/es/DynamicDeviceList/utils.d.ts +1 -2
- package/es/List/index.css +2 -2
- package/es/OrgTree/index.js +5 -5
- package/es/OrgUserTree/demo.d.ts +2 -0
- package/es/OrgUserTree/demo.js +20 -0
- package/es/OrgUserTree/index.css +31 -0
- package/es/OrgUserTree/index.d.ts +22 -0
- package/es/OrgUserTree/index.js +128 -0
- package/es/PlaceTree/demo.d.ts +2 -0
- package/es/PlaceTree/demo.js +20 -0
- package/es/PlaceTree/index.css +1 -0
- package/es/PlaceTree/index.d.ts +2 -2
- package/es/PlaceTree/index.js +27 -22
- package/es/{WorkerFlow/RefDrawer → RefDrawer}/index.d.ts +5 -1
- package/es/{WorkerFlow/RefDrawer → RefDrawer}/index.js +6 -17
- package/es/{WorkerFlow/RefModal → RefModal}/index.d.ts +5 -1
- package/es/{WorkerFlow/RefModal → RefModal}/index.js +6 -17
- package/es/TreeMode/demo.d.ts +2 -0
- package/es/TreeMode/demo.js +30 -0
- package/es/TreeMode/index.css +36 -0
- package/es/TreeMode/index.d.ts +21 -0
- package/es/TreeMode/index.js +190 -0
- package/es/TreeTitle/index.css +1 -0
- package/es/TreeTitle/index.d.ts +3 -2
- package/es/TreeTitle/index.js +4 -2
- package/es/UserSelect/index.css +16 -0
- package/es/UserSelect/index.d.ts +10 -0
- package/es/UserSelect/index.js +168 -0
- package/es/WorkerFlow/Form/Condition.js +1 -1
- package/es/WorkerFlow/Form/EmptyUserSet.js +1 -1
- package/es/WorkerFlow/Form/GroupList.d.ts +1 -1
- package/es/WorkerFlow/Form/GroupList.js +3 -1
- package/es/WorkerFlow/Form/GroupSelect.js +1 -1
- package/es/WorkerFlow/Form/GroupSelectModalContent.js +12 -11
- package/es/WorkerFlow/Form/LevelGroupSelect.js +1 -1
- package/es/WorkerFlow/Form/Notifier.js +2 -1
- package/es/WorkerFlow/Form/UserAndGroupSelect.js +1 -1
- package/es/WorkerFlow/Form/UserSelect.js +1 -1
- package/es/WorkerFlow/Form/UserSelectModalContent.js +26 -25
- package/es/WorkerFlow/index.css +1 -1
- package/es/WorkerFlow/index.js +2 -2
- package/es/WorkerFlow/utils.js +6 -2
- package/es/core.d.ts +91 -0
- package/es/index.d.ts +7 -0
- package/es/index.js +7 -0
- package/es/utils.d.ts +10 -0
- package/es/utils.js +54 -1
- package/package.json +5 -5
- package/tsconfig.json +0 -1
- package/es/DynamicDeviceList/interface.d.ts +0 -75
|
@@ -11,11 +11,7 @@ function App() {
|
|
|
11
11
|
height: 400,
|
|
12
12
|
width: 300
|
|
13
13
|
}
|
|
14
|
-
}, /*#__PURE__*/React.createElement(DynamicDeviceList,
|
|
15
|
-
onSelect: function onSelect(item) {
|
|
16
|
-
return console.log(item);
|
|
17
|
-
}
|
|
18
|
-
})));
|
|
14
|
+
}, /*#__PURE__*/React.createElement(DynamicDeviceList, null)));
|
|
19
15
|
}
|
|
20
16
|
|
|
21
17
|
export default App;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
.zenview-c-dynamic-device-list-layout {
|
|
2
2
|
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
3
4
|
width: 100%;
|
|
4
5
|
height: 100%;
|
|
5
6
|
}
|
|
6
7
|
.zenview-c-dynamic-device-list-layout .dynamic-list-item {
|
|
7
8
|
padding: 0 10px;
|
|
8
9
|
}
|
|
10
|
+
.zenview-c-dynamic-device-list-layout .lm-c-dynamiclist {
|
|
11
|
+
flex: 1;
|
|
12
|
+
}
|
|
9
13
|
.zenview-c-dynamic-device-list-layout .device-item-box {
|
|
10
14
|
height: 40px;
|
|
11
15
|
line-height: 40px;
|
|
@@ -29,3 +33,19 @@
|
|
|
29
33
|
text-overflow: ellipsis;
|
|
30
34
|
white-space: nowrap;
|
|
31
35
|
}
|
|
36
|
+
.zenview-c-dynamic-device-list-layout .c-check-list-checkext {
|
|
37
|
+
font-size: var(--fs-small);
|
|
38
|
+
padding: 5px 12px;
|
|
39
|
+
display: flex;
|
|
40
|
+
justify-content: space-between;
|
|
41
|
+
border-bottom: 1px solid var(--bd-color);
|
|
42
|
+
}
|
|
43
|
+
.zenview-c-dynamic-device-list-layout .c-check-list-checkext .select-group .anticon {
|
|
44
|
+
font-size: 16px;
|
|
45
|
+
cursor: pointer;
|
|
46
|
+
padding-right: 8px;
|
|
47
|
+
color: var(--icon);
|
|
48
|
+
}
|
|
49
|
+
.zenview-c-dynamic-device-list-layout .c-check-list-checkext .select-group .anticon:hover {
|
|
50
|
+
color: var(--primary);
|
|
51
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DeviceItemType } from '
|
|
1
|
+
import { DeviceItemType } from '../core';
|
|
2
2
|
import './index.less';
|
|
3
3
|
interface IDynamicDeviceListProps {
|
|
4
4
|
/**
|
|
@@ -8,11 +8,11 @@ interface IDynamicDeviceListProps {
|
|
|
8
8
|
/**
|
|
9
9
|
* @description 选中设备cid集合
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
checkedKeys?: string[];
|
|
12
12
|
/**
|
|
13
13
|
* @description 传入onSelect列表默认渲染为checkbox模式
|
|
14
14
|
*/
|
|
15
|
-
|
|
15
|
+
onChecked?: (ids: string[], list: DeviceItemType[], checked: boolean) => void;
|
|
16
16
|
/**
|
|
17
17
|
* @description 传入queryList需要的参数,例如业务树ID,场所id等,分页参数除外
|
|
18
18
|
*/
|
|
@@ -27,6 +27,9 @@ interface IDynamicDeviceListProps {
|
|
|
27
27
|
* @description 列表高度
|
|
28
28
|
*/
|
|
29
29
|
itemHeight?: number;
|
|
30
|
+
title?: string;
|
|
31
|
+
onKeywordChange?: (v: string) => void;
|
|
32
|
+
defaultCheckedIds?: string[];
|
|
30
33
|
}
|
|
31
|
-
declare function DynamicDeviceList({ onClick,
|
|
34
|
+
declare function DynamicDeviceList({ onClick, checkedKeys, defaultCheckedIds, onChecked, params, renderItem, itemHeight, title, onKeywordChange }: IDynamicDeviceListProps): JSX.Element;
|
|
32
35
|
export default DynamicDeviceList;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import _DynamicList from "@cloud-app-dev/basic-components/es/DynamicList";
|
|
2
1
|
import "antd/lib/checkbox/style";
|
|
3
2
|
import _Checkbox from "antd/lib/checkbox";
|
|
3
|
+
import _DynamicList from "@cloud-app-dev/basic-components/es/DynamicList";
|
|
4
4
|
|
|
5
5
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
6
6
|
|
|
@@ -26,6 +26,8 @@ import { __awaiter } from "tslib";
|
|
|
26
26
|
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
27
27
|
import { queryDeviceList } from './utils';
|
|
28
28
|
import DeviceIcon from '../DeviceIcon';
|
|
29
|
+
import TreeTitle from '../TreeTitle';
|
|
30
|
+
import CheckExt from './CheckExt';
|
|
29
31
|
import "./index.css";
|
|
30
32
|
var OFFSET = 0;
|
|
31
33
|
var LIMIT = 30;
|
|
@@ -34,25 +36,73 @@ function DynamicDeviceList(_ref) {
|
|
|
34
36
|
var _this = this;
|
|
35
37
|
|
|
36
38
|
var onClick = _ref.onClick,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
checkedKeys = _ref.checkedKeys,
|
|
40
|
+
defaultCheckedIds = _ref.defaultCheckedIds,
|
|
41
|
+
onChecked = _ref.onChecked,
|
|
40
42
|
params = _ref.params,
|
|
41
|
-
|
|
43
|
+
_renderItem = _ref.renderItem,
|
|
42
44
|
_ref$itemHeight = _ref.itemHeight,
|
|
43
|
-
itemHeight = _ref$itemHeight === void 0 ? 40 : _ref$itemHeight
|
|
45
|
+
itemHeight = _ref$itemHeight === void 0 ? 40 : _ref$itemHeight,
|
|
46
|
+
title = _ref.title,
|
|
47
|
+
onKeywordChange = _ref.onKeywordChange;
|
|
44
48
|
|
|
45
49
|
var _useState = useState({
|
|
46
50
|
offset: OFFSET,
|
|
47
51
|
limit: LIMIT,
|
|
48
52
|
list: [],
|
|
49
|
-
count: LIMIT
|
|
53
|
+
count: LIMIT,
|
|
54
|
+
checkedKeys: defaultCheckedIds || checkedKeys || []
|
|
50
55
|
}),
|
|
51
56
|
_useState2 = _slicedToArray(_useState, 2),
|
|
52
57
|
state = _useState2[0],
|
|
53
58
|
setState = _useState2[1];
|
|
54
59
|
|
|
55
60
|
var loadRef = useRef(false);
|
|
61
|
+
var listRef = useRef(null);
|
|
62
|
+
/**
|
|
63
|
+
* 列表选中处理
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
var onCheckedAction = useCallback(function (item) {
|
|
67
|
+
var ids = state.checkedKeys || [];
|
|
68
|
+
var id = item.cid;
|
|
69
|
+
var checked = !ids.includes(item.cid);
|
|
70
|
+
|
|
71
|
+
if (checked) {
|
|
72
|
+
ids.push(id);
|
|
73
|
+
} else {
|
|
74
|
+
ids = ids.filter(function (v) {
|
|
75
|
+
return v !== id;
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
setState(function (old) {
|
|
80
|
+
return Object.assign(Object.assign({}, old), {
|
|
81
|
+
checkedKeys: _toConsumableArray(ids)
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
onChecked && onChecked(ids, [item], checked);
|
|
85
|
+
}, // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
86
|
+
[state.checkedKeys]);
|
|
87
|
+
var onSelectAll = useCallback(function () {
|
|
88
|
+
var ids = state.list.map(function (v) {
|
|
89
|
+
return v.cid;
|
|
90
|
+
});
|
|
91
|
+
setState(function (old) {
|
|
92
|
+
return Object.assign(Object.assign({}, old), {
|
|
93
|
+
checkedKeys: ids
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
onChecked && onChecked(ids, state.list, true);
|
|
97
|
+
}, [state.list]);
|
|
98
|
+
var onCancelAll = useCallback(function () {
|
|
99
|
+
setState(function (old) {
|
|
100
|
+
return Object.assign(Object.assign({}, old), {
|
|
101
|
+
checkedKeys: []
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
onChecked && onChecked([], [], false);
|
|
105
|
+
}, []);
|
|
56
106
|
/**
|
|
57
107
|
* @desc 参数变化列表需要重新初始化
|
|
58
108
|
*/
|
|
@@ -67,14 +117,14 @@ function DynamicDeviceList(_ref) {
|
|
|
67
117
|
});
|
|
68
118
|
});
|
|
69
119
|
queryDeviceList(Object.assign({
|
|
70
|
-
offset:
|
|
120
|
+
offset: 0,
|
|
71
121
|
limit: LIMIT
|
|
72
122
|
}, data)).then(function (res) {
|
|
73
123
|
setState(function (old) {
|
|
74
124
|
return Object.assign(Object.assign({}, old), {
|
|
75
125
|
list: res.data || [],
|
|
76
126
|
count: res.totalCount,
|
|
77
|
-
offset:
|
|
127
|
+
offset: LIMIT,
|
|
78
128
|
limit: LIMIT
|
|
79
129
|
});
|
|
80
130
|
});
|
|
@@ -102,7 +152,7 @@ function DynamicDeviceList(_ref) {
|
|
|
102
152
|
return _context.abrupt("return", Promise.resolve());
|
|
103
153
|
|
|
104
154
|
case 2:
|
|
105
|
-
offset = state.offset
|
|
155
|
+
offset = state.offset;
|
|
106
156
|
_context.next = 5;
|
|
107
157
|
return queryDeviceList(Object.assign({
|
|
108
158
|
offset: offset,
|
|
@@ -111,7 +161,7 @@ function DynamicDeviceList(_ref) {
|
|
|
111
161
|
setState(function (old) {
|
|
112
162
|
return Object.assign(Object.assign({}, old), {
|
|
113
163
|
list: [].concat(_toConsumableArray(old.list), _toConsumableArray(res.data || [])),
|
|
114
|
-
offset: offset
|
|
164
|
+
offset: offset + LIMIT
|
|
115
165
|
});
|
|
116
166
|
});
|
|
117
167
|
}).catch(console.error);
|
|
@@ -124,49 +174,50 @@ function DynamicDeviceList(_ref) {
|
|
|
124
174
|
}, _callee);
|
|
125
175
|
}));
|
|
126
176
|
}, [state.offset, state.limit, params]);
|
|
127
|
-
/**
|
|
128
|
-
* @desc render列表函数
|
|
129
|
-
*/
|
|
130
|
-
|
|
131
|
-
var render = useCallback(function (item, index) {
|
|
132
|
-
if (renderItem) {
|
|
133
|
-
return renderItem(item, index);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
137
|
-
className: "device-item-box ".concat(selectKeys.includes(item.cid) ? 'device-item-selected' : '')
|
|
138
|
-
}, onSelect ? /*#__PURE__*/React.createElement(_Checkbox, {
|
|
139
|
-
className: "device-name device-checkbox-name",
|
|
140
|
-
checked: selectKeys.includes(item.cid),
|
|
141
|
-
value: item.cid,
|
|
142
|
-
onClick: function onClick() {
|
|
143
|
-
return onSelect(item);
|
|
144
|
-
}
|
|
145
|
-
}, /*#__PURE__*/React.createElement(DeviceIcon, {
|
|
146
|
-
type: item.deviceType,
|
|
147
|
-
status: item.deviceStatus
|
|
148
|
-
}), /*#__PURE__*/React.createElement("span", {
|
|
149
|
-
title: item.deviceName
|
|
150
|
-
}, item.deviceName)) : /*#__PURE__*/React.createElement("span", {
|
|
151
|
-
className: "device-name",
|
|
152
|
-
onClick: onClick ? function () {
|
|
153
|
-
return onClick(item);
|
|
154
|
-
} : undefined
|
|
155
|
-
}, /*#__PURE__*/React.createElement(DeviceIcon, {
|
|
156
|
-
type: item.deviceType,
|
|
157
|
-
status: item.deviceStatus
|
|
158
|
-
}), /*#__PURE__*/React.createElement("span", {
|
|
159
|
-
title: item.deviceName
|
|
160
|
-
}, item.deviceName)));
|
|
161
|
-
}, [selectKeys]);
|
|
162
177
|
return /*#__PURE__*/React.createElement("div", {
|
|
163
178
|
className: "zenview-c-dynamic-device-list-layout"
|
|
164
|
-
}, /*#__PURE__*/React.createElement(
|
|
179
|
+
}, /*#__PURE__*/React.createElement(TreeTitle, {
|
|
180
|
+
title: title,
|
|
181
|
+
onChange: onKeywordChange,
|
|
182
|
+
inputPlaceholder: "\u8BF7\u8F93\u5165\u8BBE\u5907\u540D\u79F0"
|
|
183
|
+
}), onChecked && /*#__PURE__*/React.createElement(CheckExt, {
|
|
184
|
+
count: state.count,
|
|
185
|
+
selectCount: state.checkedKeys.length,
|
|
186
|
+
onCancel: onCancelAll,
|
|
187
|
+
onCheck: onSelectAll
|
|
188
|
+
}), /*#__PURE__*/React.createElement(_DynamicList, {
|
|
165
189
|
list: state.list,
|
|
166
190
|
loadMore: loadNextPage,
|
|
167
191
|
rowCount: state.count,
|
|
168
|
-
renderItem:
|
|
169
|
-
|
|
192
|
+
renderItem: function renderItem(item, index) {
|
|
193
|
+
return _renderItem ? _renderItem(item, index) : /*#__PURE__*/React.createElement("div", {
|
|
194
|
+
className: "device-item-box ".concat(state.checkedKeys.includes(item.cid) ? 'device-item-selected' : '')
|
|
195
|
+
}, onChecked ? /*#__PURE__*/React.createElement(_Checkbox, {
|
|
196
|
+
className: "device-name device-checkbox-name",
|
|
197
|
+
checked: state.checkedKeys.includes(item.cid),
|
|
198
|
+
value: item.cid,
|
|
199
|
+
onClick: function onClick() {
|
|
200
|
+
return onCheckedAction(item);
|
|
201
|
+
}
|
|
202
|
+
}, /*#__PURE__*/React.createElement(DeviceIcon, {
|
|
203
|
+
type: item.deviceType,
|
|
204
|
+
status: item.deviceStatus
|
|
205
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
206
|
+
title: item.deviceName
|
|
207
|
+
}, item.deviceName)) : /*#__PURE__*/React.createElement("span", {
|
|
208
|
+
className: "device-name",
|
|
209
|
+
onClick: onClick ? function () {
|
|
210
|
+
return onClick(item);
|
|
211
|
+
} : undefined
|
|
212
|
+
}, /*#__PURE__*/React.createElement(DeviceIcon, {
|
|
213
|
+
type: item.deviceType,
|
|
214
|
+
status: item.deviceStatus
|
|
215
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
216
|
+
title: item.deviceName
|
|
217
|
+
}, item.deviceName)));
|
|
218
|
+
},
|
|
219
|
+
itemHeight: itemHeight,
|
|
220
|
+
ref: listRef
|
|
170
221
|
}));
|
|
171
222
|
}
|
|
172
223
|
|
package/es/List/index.css
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
.vidc-list-component
|
|
2
|
-
|
|
1
|
+
.vidc-list-component {
|
|
2
|
+
margin-left: -1px;
|
|
3
3
|
}
|
package/es/OrgTree/index.js
CHANGED
|
@@ -145,12 +145,12 @@ var OrgTree = /*#__PURE__*/function (_React$Component) {
|
|
|
145
145
|
selectedKeys: activeKey ? Array.isArray(activeKey) ? activeKey : [activeKey] : undefined,
|
|
146
146
|
expandedKeys: expandedKeys,
|
|
147
147
|
defaultExpandedKeys: treeData[0] ? [treeData[0].id] : undefined,
|
|
148
|
+
icon: function icon(node) {
|
|
149
|
+
return /*#__PURE__*/React.createElement(_IconFont, {
|
|
150
|
+
type: "".concat(node.id === treeData[0].id ? 'icon-S_Bar_Home' : 'icon-S_Photo_ListTree')
|
|
151
|
+
});
|
|
152
|
+
},
|
|
148
153
|
treeNodeProps: {
|
|
149
|
-
treeNodeIcon: function treeNodeIcon(node) {
|
|
150
|
-
return /*#__PURE__*/React.createElement(_IconFont, {
|
|
151
|
-
type: "".concat(node.id === treeData[0].id ? 'icon-S_Bar_Home' : 'icon-S_Photo_ListTree')
|
|
152
|
-
});
|
|
153
|
-
},
|
|
154
154
|
keyword: this.state.keyword,
|
|
155
155
|
suffix: this.renderSuffix,
|
|
156
156
|
treeNodeClass: treeNodeClass,
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import "antd/lib/config-provider/style";
|
|
2
|
+
import _ConfigProvider from "antd/lib/config-provider";
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import OrgTree from './index';
|
|
5
|
+
|
|
6
|
+
function App() {
|
|
7
|
+
return /*#__PURE__*/React.createElement(_ConfigProvider, {
|
|
8
|
+
prefixCls: "cloudapp"
|
|
9
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
10
|
+
style: {
|
|
11
|
+
padding: 20,
|
|
12
|
+
width: 300,
|
|
13
|
+
height: 400
|
|
14
|
+
}
|
|
15
|
+
}, /*#__PURE__*/React.createElement(OrgTree, {
|
|
16
|
+
title: "\u7EC4\u7EC7\u673A\u6784"
|
|
17
|
+
})));
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export default App;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
.bc-org-user-tree-layout {
|
|
2
|
+
height: 100%;
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-direction: column;
|
|
5
|
+
border: 1px solid var(--bd-color);
|
|
6
|
+
margin-left: -1px;
|
|
7
|
+
}
|
|
8
|
+
.bc-org-user-tree-layout .lm-c-tree-title-part {
|
|
9
|
+
border-bottom: 1px solid var(--bd-color);
|
|
10
|
+
background-color: var(--form-bg-light);
|
|
11
|
+
}
|
|
12
|
+
.bc-org-user-tree-layout > .lm-base-tree-component {
|
|
13
|
+
flex: 1;
|
|
14
|
+
overflow: auto;
|
|
15
|
+
}
|
|
16
|
+
.bc-org-user-tree-layout .cloudapp-tree {
|
|
17
|
+
height: 100%;
|
|
18
|
+
overflow: auto;
|
|
19
|
+
}
|
|
20
|
+
.bc-org-user-tree-layout .anticon {
|
|
21
|
+
font-size: var(--fs);
|
|
22
|
+
}
|
|
23
|
+
.bc-org-user-tree-layout .cloudapp-tree-title {
|
|
24
|
+
font-size: var(--fs-small);
|
|
25
|
+
flex: 1;
|
|
26
|
+
}
|
|
27
|
+
.bc-org-user-tree-layout .cloudapp-tree-title > span {
|
|
28
|
+
min-width: 100%;
|
|
29
|
+
display: inline-flex;
|
|
30
|
+
justify-content: space-between;
|
|
31
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { BaseTreeProps } from '@cloud-app-dev/basic-components/es/Tree';
|
|
3
|
+
import { OrgItemType } from '@cloud-app-dev/basic-components/es/Store/org';
|
|
4
|
+
import './index.less';
|
|
5
|
+
interface IOrgUserTreeProps extends BaseTreeProps {
|
|
6
|
+
expandedKeys?: Array<string>;
|
|
7
|
+
title?: React.ReactNode;
|
|
8
|
+
inputPlaceholder?: string;
|
|
9
|
+
renderHeader?: () => JSX.Element;
|
|
10
|
+
activeKey?: string[] | string;
|
|
11
|
+
treeData?: Array<OrgItemType>;
|
|
12
|
+
/**
|
|
13
|
+
* @description 树节点拓展渲染
|
|
14
|
+
*/
|
|
15
|
+
renderSuffix?: (item: OrgItemType) => JSX.Element;
|
|
16
|
+
/**
|
|
17
|
+
* @description 需要默认选中时触发 事件
|
|
18
|
+
*/
|
|
19
|
+
onDefailtSelect?: (id?: string) => void;
|
|
20
|
+
}
|
|
21
|
+
declare function OrgUserTree({ title, className, renderHeader, inputPlaceholder, activeKey, treeNodeProps, onDefailtSelect, ...props }: IOrgUserTreeProps): JSX.Element;
|
|
22
|
+
export default OrgUserTree;
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import _IconFont from "@cloud-app-dev/basic-components/es/IconFont";
|
|
2
|
+
import _Tree from "@cloud-app-dev/basic-components/es/Tree";
|
|
3
|
+
import _CBox from "@cloud-app-dev/basic-components/es/CBox";
|
|
4
|
+
import _useHttp2 from "@cloud-app-dev/basic-components/es/useHttp";
|
|
5
|
+
|
|
6
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
7
|
+
|
|
8
|
+
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."); }
|
|
9
|
+
|
|
10
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
11
|
+
|
|
12
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
13
|
+
|
|
14
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
15
|
+
|
|
16
|
+
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."); }
|
|
17
|
+
|
|
18
|
+
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); }
|
|
19
|
+
|
|
20
|
+
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; }
|
|
21
|
+
|
|
22
|
+
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; }
|
|
23
|
+
|
|
24
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
25
|
+
|
|
26
|
+
import { __rest } from "tslib";
|
|
27
|
+
import React, { useEffect, useMemo, useState } from 'react';
|
|
28
|
+
import api from '../Api';
|
|
29
|
+
import TreeTitle from '../TreeTitle';
|
|
30
|
+
import { treeHelper } from '@cloud-app-dev/utils';
|
|
31
|
+
import { getParentListById } from '../utils';
|
|
32
|
+
import "./index.css";
|
|
33
|
+
|
|
34
|
+
function OrgUserTree(_a) {
|
|
35
|
+
var title = _a.title,
|
|
36
|
+
className = _a.className,
|
|
37
|
+
renderHeader = _a.renderHeader,
|
|
38
|
+
inputPlaceholder = _a.inputPlaceholder,
|
|
39
|
+
activeKey = _a.activeKey,
|
|
40
|
+
treeNodeProps = _a.treeNodeProps,
|
|
41
|
+
onDefailtSelect = _a.onDefailtSelect,
|
|
42
|
+
props = __rest(_a, ["title", "className", "renderHeader", "inputPlaceholder", "activeKey", "treeNodeProps", "onDefailtSelect"]);
|
|
43
|
+
|
|
44
|
+
var _useState = useState({
|
|
45
|
+
keyword: undefined,
|
|
46
|
+
expandedKeys: undefined
|
|
47
|
+
}),
|
|
48
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
49
|
+
state = _useState2[0],
|
|
50
|
+
setState = _useState2[1];
|
|
51
|
+
|
|
52
|
+
var _useHttp = _useHttp2('QueryOrgList', function () {
|
|
53
|
+
return api.getOrgs();
|
|
54
|
+
}),
|
|
55
|
+
_useHttp$data = _useHttp.data,
|
|
56
|
+
orgList = _useHttp$data === void 0 ? [] : _useHttp$data;
|
|
57
|
+
|
|
58
|
+
var treeData = useMemo(function () {
|
|
59
|
+
return treeHelper.computTreeList(orgList);
|
|
60
|
+
}, [orgList]);
|
|
61
|
+
useEffect(function () {
|
|
62
|
+
var keys = [];
|
|
63
|
+
var orgs = orgList.filter(function (v) {
|
|
64
|
+
return v.organizationName.includes(state.keyword);
|
|
65
|
+
});
|
|
66
|
+
orgs.forEach(function (v) {
|
|
67
|
+
var ids = getParentListById(v.id, orgList).map(function (v) {
|
|
68
|
+
return v.id;
|
|
69
|
+
});
|
|
70
|
+
keys = [].concat(keys, ids);
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
var expandedKeys = _toConsumableArray(new Set(_toConsumableArray(keys)));
|
|
74
|
+
|
|
75
|
+
setState(function (old) {
|
|
76
|
+
var _a;
|
|
77
|
+
|
|
78
|
+
return Object.assign(Object.assign({}, old), {
|
|
79
|
+
expandedKeys: expandedKeys.length > 0 ? expandedKeys : [(_a = treeData[0]) === null || _a === void 0 ? void 0 : _a.id]
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}, [state.keyword, orgList, treeData]);
|
|
83
|
+
useEffect(function () {
|
|
84
|
+
var _a;
|
|
85
|
+
|
|
86
|
+
if (onDefailtSelect && ((_a = treeData[0]) === null || _a === void 0 ? void 0 : _a.id)) {
|
|
87
|
+
onDefailtSelect(treeData[0].id);
|
|
88
|
+
}
|
|
89
|
+
}, [treeData]);
|
|
90
|
+
return /*#__PURE__*/React.createElement(_CBox, {
|
|
91
|
+
className: "bc-org-user-tree-layout ".concat(className)
|
|
92
|
+
}, title ? /*#__PURE__*/React.createElement(TreeTitle, {
|
|
93
|
+
title: title,
|
|
94
|
+
inputPlaceholder: inputPlaceholder,
|
|
95
|
+
onChange: function onChange(val) {
|
|
96
|
+
return setState(function (old) {
|
|
97
|
+
return Object.assign(Object.assign({}, old), {
|
|
98
|
+
keyword: val
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}) : null, renderHeader && renderHeader(), orgList.length > 0 && /*#__PURE__*/React.createElement(_Tree, Object.assign({}, props, {
|
|
103
|
+
treeData: treeData,
|
|
104
|
+
onExpand: function onExpand(keys) {
|
|
105
|
+
return setState(function (old) {
|
|
106
|
+
return Object.assign(Object.assign({}, old), {
|
|
107
|
+
expandedKeys: keys
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
},
|
|
111
|
+
selectedKeys: activeKey ? Array.isArray(activeKey) ? activeKey : [activeKey] : undefined,
|
|
112
|
+
expandedKeys: state.expandedKeys,
|
|
113
|
+
defaultExpandedKeys: treeData[0] ? [treeData[0].id] : undefined,
|
|
114
|
+
icon: function icon(node) {
|
|
115
|
+
return /*#__PURE__*/React.createElement(_IconFont, {
|
|
116
|
+
type: "".concat(node.id === treeData[0].id ? 'icon-S_Bar_Home' : 'icon-S_Photo_ListTree')
|
|
117
|
+
});
|
|
118
|
+
},
|
|
119
|
+
treeNodeProps: {
|
|
120
|
+
keyword: state.keyword,
|
|
121
|
+
suffix: treeNodeProps === null || treeNodeProps === void 0 ? void 0 : treeNodeProps.suffix,
|
|
122
|
+
nameKey: 'organizationName',
|
|
123
|
+
key: 'id'
|
|
124
|
+
}
|
|
125
|
+
})));
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export default OrgUserTree;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import "antd/lib/config-provider/style";
|
|
2
|
+
import _ConfigProvider from "antd/lib/config-provider";
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import BsTree from './index';
|
|
5
|
+
|
|
6
|
+
function App() {
|
|
7
|
+
return /*#__PURE__*/React.createElement(_ConfigProvider, {
|
|
8
|
+
prefixCls: "cloudapp"
|
|
9
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
10
|
+
style: {
|
|
11
|
+
padding: 20,
|
|
12
|
+
width: 300,
|
|
13
|
+
height: 400
|
|
14
|
+
}
|
|
15
|
+
}, /*#__PURE__*/React.createElement(BsTree, {
|
|
16
|
+
title: "\u884C\u653F\u533A\u5212"
|
|
17
|
+
})));
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export default App;
|
package/es/PlaceTree/index.css
CHANGED
package/es/PlaceTree/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { BaseTreeProps } from '@cloud-app-dev/basic-components/es/Tree';
|
|
3
3
|
import { PlaceItemType } from '@cloud-app-dev/basic-components/es/Store/place';
|
|
4
4
|
import './index.less';
|
|
5
|
-
export interface IPlaceTreeProps
|
|
5
|
+
export interface IPlaceTreeProps extends BaseTreeProps {
|
|
6
6
|
className?: string;
|
|
7
7
|
inputPlaceholder?: string;
|
|
8
8
|
onKeywordChange?: (key: string) => void;
|
|
@@ -14,7 +14,7 @@ export interface IPlaceTreeProps<T> extends BaseTreeProps<T> {
|
|
|
14
14
|
renderSuffix?: (item: PlaceItemType) => JSX.Element;
|
|
15
15
|
showCount?: boolean;
|
|
16
16
|
}
|
|
17
|
-
declare function PlaceTree(
|
|
17
|
+
declare function PlaceTree(params: IPlaceTreeProps): JSX.Element;
|
|
18
18
|
declare namespace PlaceTree {
|
|
19
19
|
var defaultProps: {
|
|
20
20
|
title: string;
|
package/es/PlaceTree/index.js
CHANGED
|
@@ -25,25 +25,33 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
25
25
|
|
|
26
26
|
import { __rest } from "tslib";
|
|
27
27
|
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
28
|
-
import TreeTitle from '../TreeTitle';
|
|
29
28
|
import { treeHelper } from '@cloud-app-dev/utils';
|
|
29
|
+
import TreeTitle from '../TreeTitle';
|
|
30
30
|
import "./index.css";
|
|
31
31
|
|
|
32
|
-
function PlaceTree(
|
|
33
|
-
var
|
|
32
|
+
function PlaceTree(params) {
|
|
33
|
+
var _a = useMemo(function () {
|
|
34
|
+
return params;
|
|
35
|
+
}, [params]),
|
|
36
|
+
treeData = _a.treeData,
|
|
34
37
|
defaultExpandedKeys = _a.defaultExpandedKeys,
|
|
35
38
|
activeKey = _a.activeKey,
|
|
36
39
|
className = _a.className,
|
|
37
40
|
onKeywordChange = _a.onKeywordChange,
|
|
38
41
|
titleExt = _a.titleExt,
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
params1 = __rest(_a, ["treeData", "defaultExpandedKeys", "activeKey", "className", "onKeywordChange", "titleExt"]);
|
|
43
|
+
|
|
44
|
+
var _b = useMemo(function () {
|
|
45
|
+
return params1;
|
|
46
|
+
}, [params1]),
|
|
47
|
+
title = _b.title,
|
|
48
|
+
inputPlaceholder = _b.inputPlaceholder,
|
|
49
|
+
renderHeader = _b.renderHeader,
|
|
50
|
+
keyword = _b.keyword,
|
|
51
|
+
treeNodeProps = _b.treeNodeProps,
|
|
52
|
+
renderSuffix = _b.renderSuffix,
|
|
53
|
+
showCount = _b.showCount,
|
|
54
|
+
props = __rest(_b, ["title", "inputPlaceholder", "renderHeader", "keyword", "treeNodeProps", "renderSuffix", "showCount"]);
|
|
47
55
|
|
|
48
56
|
var _useState = useState({
|
|
49
57
|
expandedKeys: defaultExpandedKeys || undefined
|
|
@@ -60,9 +68,6 @@ function PlaceTree(_a) {
|
|
|
60
68
|
expandedKeys: expandedKeys
|
|
61
69
|
});
|
|
62
70
|
}, []);
|
|
63
|
-
var renderPlaceSuffixFn = useCallback(function (node) {
|
|
64
|
-
return renderPlaceSuffix(node, showCount, renderSuffix);
|
|
65
|
-
}, [showCount, renderSuffix]);
|
|
66
71
|
useEffect(function () {
|
|
67
72
|
if (state.expandedKeys) {
|
|
68
73
|
return;
|
|
@@ -131,18 +136,18 @@ function PlaceTree(_a) {
|
|
|
131
136
|
onExpand: onExpand,
|
|
132
137
|
selectedKeys: activeKey ? Array.isArray(activeKey) ? activeKey : [activeKey] : undefined,
|
|
133
138
|
expandedKeys: state.expandedKeys || [],
|
|
139
|
+
icon: function icon(node) {
|
|
140
|
+
return /*#__PURE__*/React.createElement(_IconFont, {
|
|
141
|
+
type: "".concat(node.level >= 5 ? 'icon-S_Place_Place' : title ? 'icon-S_Photo_ListTree' : 'icon-S_Bar_Add')
|
|
142
|
+
});
|
|
143
|
+
},
|
|
134
144
|
treeNodeProps: {
|
|
135
|
-
treeNodeIcon: function treeNodeIcon(node) {
|
|
136
|
-
return /*#__PURE__*/React.createElement(_IconFont, {
|
|
137
|
-
type: "".concat(node.level >= 5 ? 'icon-S_Place_Place' : title ? 'icon-S_Photo_ListTree' : 'icon-S_Bar_Add')
|
|
138
|
-
});
|
|
139
|
-
},
|
|
140
145
|
key: 'areaCode',
|
|
141
146
|
nameKey: 'areaName',
|
|
142
147
|
keyword: keyword,
|
|
143
|
-
suffix:
|
|
144
|
-
|
|
145
|
-
|
|
148
|
+
suffix: function suffix(node) {
|
|
149
|
+
return renderPlaceSuffix(node, showCount, renderSuffix);
|
|
150
|
+
},
|
|
146
151
|
RenderTreeTitle: treeNodeProps === null || treeNodeProps === void 0 ? void 0 : treeNodeProps.RenderTreeTitle
|
|
147
152
|
}
|
|
148
153
|
})));
|