@zgfe/business-lib 1.0.25-userGroupFix.0 → 1.0.25
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/cycleTime/demo/disable.d.ts +2 -0
- package/es/cycleTime/demo/disable.js +17 -0
- package/es/cycleTime/index.d.ts +1 -0
- package/es/cycleTime/index.js +12 -5
- package/es/cycleTime/month.d.ts +1 -0
- package/es/cycleTime/month.js +6 -3
- package/es/cycleTime/styles/month.less +12 -0
- package/es/select/demo/multiple.js +3 -2
- package/es/select/handle.js +4 -3
- package/es/select/styles/handle.less +36 -27
- package/es/userCondition/conditions/styles/eventCondition.less +1 -1
- package/es/userCondition/conditions/styles/tagsCondition.less +1 -1
- package/es/userCondition/conditions/tagsCondition.js +26 -13
- package/es/userCondition/conditions/textDesc.js +27 -6
- package/es/userCondition/demo/index.js +5 -228
- package/es/userCondition/demo/mockData.d.ts +85 -0
- package/es/userCondition/demo/mockData.js +546 -0
- package/es/userCondition/types.d.ts +21 -3
- package/es/userCondition/util.d.ts +23 -1
- package/es/userCondition/util.js +39 -5
- package/es/userTagsSelector/cascaderOverlay.js +132 -42
- package/es/userTagsSelector/demo/index.js +12 -5
- package/es/userTagsSelector/groups/groupOption.js +3 -2
- package/es/userTagsSelector/groups/index.js +18 -11
- package/es/userTagsSelector/groups/styles/option.less +6 -1
- package/es/userTagsSelector/index.js +17 -3
- package/es/userTagsSelector/multipleCheckPanel/checkOption.js +2 -1
- package/es/userTagsSelector/multipleCheckPanel/index.js +7 -16
- package/es/userTagsSelector/styles/cascaderOverlay.less +9 -4
- package/es/userTagsSelector/types.d.ts +1 -10
- package/es/userTagsSelector/util.d.ts +1 -1
- package/es/userTagsSelector/util.js +6 -2
- package/package.json +2 -2
package/es/userCondition/util.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
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
|
+
|
|
1
7
|
export function buildCondition(type) {
|
|
2
8
|
switch (type) {
|
|
3
9
|
case 'add':
|
|
@@ -99,17 +105,45 @@ export function findPropAndEnv(name, list) {
|
|
|
99
105
|
|
|
100
106
|
return null;
|
|
101
107
|
}
|
|
102
|
-
export function
|
|
103
|
-
return function (
|
|
108
|
+
export function buildSelectLayer(data) {
|
|
109
|
+
return function (layerLabelId) {
|
|
104
110
|
var i = -1;
|
|
105
111
|
var j = data.findIndex(function (item) {
|
|
106
|
-
i = item.
|
|
107
|
-
return
|
|
112
|
+
i = item.layers.findIndex(function (layer) {
|
|
113
|
+
return layer.layerLabelId === layerLabelId;
|
|
108
114
|
});
|
|
109
115
|
if (i < 0) return false;
|
|
110
116
|
return true;
|
|
111
117
|
});
|
|
112
118
|
if (j < 0) return null;
|
|
113
|
-
return
|
|
119
|
+
return [{
|
|
120
|
+
labelGroup: data[j].labelGroup
|
|
121
|
+
}, {
|
|
122
|
+
id: data[j].id,
|
|
123
|
+
labelName: data[j].labelName
|
|
124
|
+
}, {
|
|
125
|
+
layerLabelId: data[j].layers[i].layerLabelId,
|
|
126
|
+
layerLabelName: data[j].layers[i].layerLabelName
|
|
127
|
+
}];
|
|
114
128
|
};
|
|
129
|
+
}
|
|
130
|
+
export function buildTagsGroup(list) {
|
|
131
|
+
var groupOrder = ['基本标签', '活跃标签', '行为标签', '预测标签', '其它标签'];
|
|
132
|
+
var groupsMap = {};
|
|
133
|
+
var options = [];
|
|
134
|
+
list.forEach(function (label) {
|
|
135
|
+
if (Object.hasOwn(groupsMap, label.labelGroup)) {
|
|
136
|
+
groupsMap[label.labelGroup].children.push(_objectSpread({}, label));
|
|
137
|
+
} else {
|
|
138
|
+
var group = {
|
|
139
|
+
labelGroup: label.labelGroup,
|
|
140
|
+
children: [_objectSpread({}, label)]
|
|
141
|
+
};
|
|
142
|
+
groupsMap[label.labelGroup] = group;
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
groupOrder.map(function (group) {
|
|
146
|
+
groupsMap[group] && options.push(groupsMap[group]);
|
|
147
|
+
});
|
|
148
|
+
return options;
|
|
115
149
|
}
|
|
@@ -1,3 +1,7 @@
|
|
|
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
|
+
|
|
1
5
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
2
6
|
|
|
3
7
|
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."); }
|
|
@@ -6,6 +10,8 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
|
|
|
6
10
|
|
|
7
11
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
8
12
|
|
|
13
|
+
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; }
|
|
14
|
+
|
|
9
15
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
10
16
|
|
|
11
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,49 +24,77 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
18
24
|
|
|
19
25
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
20
26
|
|
|
21
|
-
import React from 'react';
|
|
27
|
+
import React, { useRef } from 'react';
|
|
22
28
|
import { useState } from 'react';
|
|
23
29
|
import { classPrefix } from '.';
|
|
24
30
|
import './styles/cascaderOverlay.less';
|
|
25
31
|
import Groups from './groups/index';
|
|
26
32
|
import MultipleCheckPanel from './multipleCheckPanel';
|
|
27
|
-
import { getFieldFactory } from './util';
|
|
33
|
+
import { filterFactory, getFieldFactory } from './util';
|
|
28
34
|
import _ from 'lodash';
|
|
35
|
+
import Search from './components/search';
|
|
29
36
|
|
|
30
37
|
var CascaderOverlay = function CascaderOverlay(props) {
|
|
31
|
-
var
|
|
32
|
-
currentValue = props.currentValue,
|
|
38
|
+
var currentValue = props.currentValue,
|
|
33
39
|
labelFields = props.labelFields,
|
|
34
40
|
keyFields = props.keyFields,
|
|
35
41
|
valueFields = props.valueFields,
|
|
36
42
|
childFields = props.childFields;
|
|
43
|
+
var timer = useRef(null);
|
|
37
44
|
|
|
38
|
-
var _useState = useState(
|
|
39
|
-
var initPath = [];
|
|
40
|
-
var curr = data[0];
|
|
41
|
-
var getChildField = getFieldFactory(childFields);
|
|
42
|
-
|
|
43
|
-
while (curr) {
|
|
44
|
-
initPath.push(curr);
|
|
45
|
-
curr = curr[getChildField()];
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
initPath.pop();
|
|
49
|
-
return initPath;
|
|
50
|
-
}),
|
|
45
|
+
var _useState = useState(props.data || []),
|
|
51
46
|
_useState2 = _slicedToArray(_useState, 2),
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
data = _useState2[0],
|
|
48
|
+
setData = _useState2[1];
|
|
49
|
+
|
|
50
|
+
var _useState3 = useState(initPath(data)),
|
|
51
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
52
|
+
currentPath = _useState4[0],
|
|
53
|
+
setCurrentPath = _useState4[1];
|
|
54
|
+
|
|
55
|
+
var _useState5 = useState(''),
|
|
56
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
57
|
+
highlightText = _useState6[0],
|
|
58
|
+
setHighlightText = _useState6[1];
|
|
59
|
+
|
|
60
|
+
function initPath(data) {
|
|
61
|
+
return function () {
|
|
62
|
+
var path = [];
|
|
63
|
+
var curr = data[0];
|
|
64
|
+
var getChildField = getFieldFactory(childFields);
|
|
65
|
+
|
|
66
|
+
while (curr) {
|
|
67
|
+
path.push(curr);
|
|
68
|
+
var childField = getChildField();
|
|
69
|
+
|
|
70
|
+
if (_.isArray(curr[childField])) {
|
|
71
|
+
curr = curr[childField].length ? curr[childField][0] : null;
|
|
72
|
+
} else {
|
|
73
|
+
curr = curr[childField];
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
path.pop();
|
|
78
|
+
return path;
|
|
79
|
+
};
|
|
80
|
+
}
|
|
54
81
|
|
|
55
82
|
function onActive(data, level) {
|
|
56
83
|
var currIndex = level;
|
|
57
84
|
var getChildField = getFieldFactory(childFields.slice(currIndex).length ? childFields.slice(currIndex) : childFields.slice(-1));
|
|
58
85
|
var curr = data;
|
|
59
|
-
var newPath = currentPath.slice();
|
|
86
|
+
var newPath = currentPath.slice(0, level + 1);
|
|
60
87
|
|
|
61
88
|
while (curr) {
|
|
62
89
|
newPath[currIndex] = curr;
|
|
63
|
-
|
|
90
|
+
var childField = getChildField();
|
|
91
|
+
|
|
92
|
+
if (_.isArray(curr[childField])) {
|
|
93
|
+
curr = curr[childField].length ? curr[childField][0] : null;
|
|
94
|
+
} else {
|
|
95
|
+
curr = curr[childField];
|
|
96
|
+
}
|
|
97
|
+
|
|
64
98
|
currIndex++;
|
|
65
99
|
}
|
|
66
100
|
|
|
@@ -70,8 +104,13 @@ var CascaderOverlay = function CascaderOverlay(props) {
|
|
|
70
104
|
|
|
71
105
|
function onCheck(data) {
|
|
72
106
|
var getVabelField = getFieldFactory(valueFields);
|
|
107
|
+
var getLabelField = getFieldFactory(labelFields);
|
|
73
108
|
var newValue = currentPath.map(function (item) {
|
|
74
|
-
|
|
109
|
+
var _ref;
|
|
110
|
+
|
|
111
|
+
var labelField = getLabelField();
|
|
112
|
+
var valueField = getVabelField();
|
|
113
|
+
return _ref = {}, _defineProperty(_ref, labelField, item[labelField]), _defineProperty(_ref, valueField, item[valueField]), _ref;
|
|
75
114
|
}).concat(data);
|
|
76
115
|
props.onChange([].concat(_toConsumableArray(currentValue), [newValue]));
|
|
77
116
|
}
|
|
@@ -85,30 +124,81 @@ var CascaderOverlay = function CascaderOverlay(props) {
|
|
|
85
124
|
props.onChange(newValues);
|
|
86
125
|
}
|
|
87
126
|
|
|
127
|
+
function onSearch(val) {
|
|
128
|
+
timer.current && clearTimeout(timer.current);
|
|
129
|
+
timer.current = setTimeout(function () {
|
|
130
|
+
var _labelFields$, _props$data;
|
|
131
|
+
|
|
132
|
+
var res = [];
|
|
133
|
+
var filter = filterFactory((_labelFields$ = labelFields[1]) !== null && _labelFields$ !== void 0 ? _labelFields$ : labelFields[0], val);
|
|
134
|
+
(_props$data = props.data) === null || _props$data === void 0 ? void 0 : _props$data.forEach(function (item) {
|
|
135
|
+
var searchList = item[childFields[0]].filter(filter);
|
|
136
|
+
|
|
137
|
+
if (searchList.length) {
|
|
138
|
+
res.push(_objectSpread(_objectSpread({}, item), {}, _defineProperty({}, childFields[0], item[childFields[0]].filter(filter))));
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
setData(res);
|
|
142
|
+
setCurrentPath(initPath(res));
|
|
143
|
+
setHighlightText(val);
|
|
144
|
+
}, 300);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function render() {
|
|
148
|
+
if (!data.length) return /*#__PURE__*/React.createElement("div", {
|
|
149
|
+
style: {
|
|
150
|
+
padding: 8,
|
|
151
|
+
width: 596
|
|
152
|
+
}
|
|
153
|
+
}, "\u6682\u65E0\u6570\u636E");
|
|
154
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
155
|
+
className: "".concat(classPrefix, "-overlay-groups")
|
|
156
|
+
}, /*#__PURE__*/React.createElement(Groups, {
|
|
157
|
+
key: 0,
|
|
158
|
+
currentValue: currentValue,
|
|
159
|
+
valueField: valueFields[0],
|
|
160
|
+
keyField: keyFields[0],
|
|
161
|
+
childField: childFields[0],
|
|
162
|
+
labelField: labelFields[0],
|
|
163
|
+
data: data,
|
|
164
|
+
onActive: onActive,
|
|
165
|
+
level: 0
|
|
166
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
167
|
+
className: "".concat(classPrefix, "-overlay-groups")
|
|
168
|
+
}, /*#__PURE__*/React.createElement(Groups, {
|
|
169
|
+
currentValue: currentValue,
|
|
170
|
+
valueField: valueFields[1],
|
|
171
|
+
keyField: keyFields[1],
|
|
172
|
+
childField: childFields[1],
|
|
173
|
+
labelField: labelFields[1],
|
|
174
|
+
data: currentPath[0] ? currentPath[0][childFields[0]] : [],
|
|
175
|
+
onActive: onActive,
|
|
176
|
+
highlightText: highlightText,
|
|
177
|
+
level: 1
|
|
178
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
179
|
+
className: "".concat(classPrefix, "-overlay-selections")
|
|
180
|
+
}, /*#__PURE__*/React.createElement(MultipleCheckPanel, {
|
|
181
|
+
valueField: valueFields[2],
|
|
182
|
+
onCheck: onCheck,
|
|
183
|
+
onUncheck: onUncheck,
|
|
184
|
+
currentValue: currentValue,
|
|
185
|
+
level: 2,
|
|
186
|
+
labelField: labelFields[2],
|
|
187
|
+
data: currentPath[1] ? currentPath[1][childFields[1]] : []
|
|
188
|
+
})));
|
|
189
|
+
}
|
|
190
|
+
|
|
88
191
|
return /*#__PURE__*/React.createElement("div", {
|
|
89
192
|
className: "".concat(classPrefix, "-overlay")
|
|
90
193
|
}, /*#__PURE__*/React.createElement("div", {
|
|
91
|
-
className: "".concat(classPrefix, "-overlay-
|
|
92
|
-
}, /*#__PURE__*/React.createElement(
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
childField: childFields[0],
|
|
97
|
-
labelField: labelFields[0],
|
|
98
|
-
data: data,
|
|
99
|
-
onActive: onActive,
|
|
100
|
-
level: 0
|
|
194
|
+
className: "".concat(classPrefix, "-overlay-search")
|
|
195
|
+
}, /*#__PURE__*/React.createElement(Search, {
|
|
196
|
+
show: true,
|
|
197
|
+
onChange: onSearch,
|
|
198
|
+
placeholder: "\u641C\u7D22\u6807\u7B7E\u540D\u79F0"
|
|
101
199
|
})), /*#__PURE__*/React.createElement("div", {
|
|
102
|
-
className: "".concat(classPrefix, "-overlay-
|
|
103
|
-
},
|
|
104
|
-
valueField: valueFields[1],
|
|
105
|
-
onCheck: onCheck,
|
|
106
|
-
onUncheck: onUncheck,
|
|
107
|
-
currentValue: currentValue,
|
|
108
|
-
level: 1,
|
|
109
|
-
labelField: labelFields[1],
|
|
110
|
-
data: currentPath[0][childFields[0]]
|
|
111
|
-
})));
|
|
200
|
+
className: "".concat(classPrefix, "-overlay-panel")
|
|
201
|
+
}, render()));
|
|
112
202
|
};
|
|
113
203
|
|
|
114
204
|
export default CascaderOverlay;
|
|
@@ -22,7 +22,14 @@ data.forEach(function (item) {
|
|
|
22
22
|
var id = Math.random();
|
|
23
23
|
var tag = {
|
|
24
24
|
id: id,
|
|
25
|
-
labelName: '标签' + id + id + id + id
|
|
25
|
+
labelName: '标签' + id + id + id + id,
|
|
26
|
+
layers: Array(5 * Math.random() >> 0).fill(1).map(function (_item, i) {
|
|
27
|
+
var layer = {
|
|
28
|
+
layerLabelId: Math.random(),
|
|
29
|
+
layerLabelName: '分层' + i
|
|
30
|
+
};
|
|
31
|
+
return layer;
|
|
32
|
+
})
|
|
26
33
|
};
|
|
27
34
|
|
|
28
35
|
if (id < 0.6 && defaultValue.length < 20) {
|
|
@@ -38,11 +45,11 @@ export default (function () {
|
|
|
38
45
|
}
|
|
39
46
|
|
|
40
47
|
return /*#__PURE__*/React.createElement(BizUserTagsSelect, {
|
|
41
|
-
childFields: ['children'],
|
|
48
|
+
childFields: ['children', 'layers'],
|
|
42
49
|
data: data,
|
|
43
|
-
keyFields: ['labelGroup', 'id'],
|
|
44
|
-
labelFields: ['labelGroup', 'labelName'],
|
|
45
|
-
valueFields: ['labelGroup', '
|
|
50
|
+
keyFields: ['labelGroup', 'id', 'id'],
|
|
51
|
+
labelFields: ['labelGroup', 'labelName', 'layerLabelName'],
|
|
52
|
+
valueFields: ['labelGroup', 'labelName', 'id'],
|
|
46
53
|
onChange: onChange
|
|
47
54
|
});
|
|
48
55
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { forwardRef } from 'react';
|
|
2
2
|
import { Badge } from 'antd';
|
|
3
3
|
import { classPrefix } from '..';
|
|
4
|
-
import theme from '../../assets/theme.js';
|
|
4
|
+
import { theme } from '../../assets/theme.js';
|
|
5
5
|
import './styles/option.less';
|
|
6
6
|
import { util } from '../../utils';
|
|
7
7
|
var GroupOption = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
@@ -30,7 +30,8 @@ var GroupOption = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
30
30
|
return _onClick(value);
|
|
31
31
|
},
|
|
32
32
|
className: ["".concat(classPrefix, "-group-option"), actived ? 'active' : '', checked ? 'checked' : ''].join(' '),
|
|
33
|
-
ref: ref
|
|
33
|
+
ref: ref,
|
|
34
|
+
title: label
|
|
34
35
|
}, /*#__PURE__*/React.createElement("div", {
|
|
35
36
|
className: "".concat(classPrefix, "-group-option-label")
|
|
36
37
|
}, renderLabel()), /*#__PURE__*/React.createElement("div", {
|
|
@@ -10,7 +10,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
10
10
|
|
|
11
11
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
12
|
|
|
13
|
-
import React, { useMemo } from 'react';
|
|
13
|
+
import React, { useEffect, useMemo } from 'react';
|
|
14
14
|
import VirtualList from 'rc-virtual-list';
|
|
15
15
|
import { classPrefix } from '../';
|
|
16
16
|
import GroupOption from './groupOption';
|
|
@@ -33,11 +33,21 @@ var Groups = function Groups(props) {
|
|
|
33
33
|
searchValue = _useState2[0],
|
|
34
34
|
setSearchValue = _useState2[1];
|
|
35
35
|
|
|
36
|
-
var _useState3 = useState(data[0][valueField]),
|
|
36
|
+
var _useState3 = useState(data.length ? data[0][valueField] : null),
|
|
37
37
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
38
38
|
active = _useState4[0],
|
|
39
39
|
setActive = _useState4[1];
|
|
40
40
|
|
|
41
|
+
var searchFilter = useMemo(function () {
|
|
42
|
+
return filterFactory(labelField, searchValue);
|
|
43
|
+
}, [labelField, searchValue]);
|
|
44
|
+
var isChecked = useMemo(function () {
|
|
45
|
+
return isCheckedFactory(currentValue, level);
|
|
46
|
+
}, [currentValue, level]);
|
|
47
|
+
useEffect(function () {
|
|
48
|
+
if (data.length) setActive(data[0][valueField]);
|
|
49
|
+
}, [data]);
|
|
50
|
+
|
|
41
51
|
function _onClick(i) {
|
|
42
52
|
setActive(data[i][valueField]);
|
|
43
53
|
props.onActive(data[i], level);
|
|
@@ -47,12 +57,6 @@ var Groups = function Groups(props) {
|
|
|
47
57
|
setSearchValue(val);
|
|
48
58
|
}
|
|
49
59
|
|
|
50
|
-
var searchFilter = useMemo(function () {
|
|
51
|
-
return filterFactory(labelField, searchValue);
|
|
52
|
-
}, [labelField, searchValue]);
|
|
53
|
-
var isChecked = useMemo(function () {
|
|
54
|
-
return isCheckedFactory(currentValue, level);
|
|
55
|
-
}, [currentValue, level]);
|
|
56
60
|
if (!data.length) return /*#__PURE__*/React.createElement("span", null, "\u6682\u65E0\u6570\u636E");
|
|
57
61
|
return /*#__PURE__*/React.createElement("div", {
|
|
58
62
|
className: "".concat(classPrefix, "-groups-panel")
|
|
@@ -61,19 +65,22 @@ var Groups = function Groups(props) {
|
|
|
61
65
|
onChange: onSearch
|
|
62
66
|
}), /*#__PURE__*/React.createElement(VirtualList, {
|
|
63
67
|
data: searchable ? data.filter(searchFilter) : data,
|
|
64
|
-
height:
|
|
68
|
+
height: 360,
|
|
69
|
+
itemHeight: 48,
|
|
65
70
|
itemKey: keyField
|
|
66
71
|
}, function (item, index) {
|
|
72
|
+
var _props$highlightText;
|
|
73
|
+
|
|
67
74
|
return /*#__PURE__*/React.createElement(GroupOption, {
|
|
68
75
|
onClick: function onClick() {
|
|
69
76
|
return _onClick(index);
|
|
70
77
|
},
|
|
71
78
|
actived: item[valueField] === active,
|
|
72
|
-
checked: isChecked(item
|
|
79
|
+
checked: isChecked(item, valueField),
|
|
73
80
|
count: item[childField].length,
|
|
74
81
|
label: item[labelField],
|
|
75
82
|
value: item[valueField],
|
|
76
|
-
highlightText: searchValue
|
|
83
|
+
highlightText: (_props$highlightText = props.highlightText) !== null && _props$highlightText !== void 0 ? _props$highlightText : searchValue
|
|
77
84
|
});
|
|
78
85
|
}));
|
|
79
86
|
};
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
&.active {
|
|
40
|
-
color: #fff;
|
|
40
|
+
color: #fff !important;
|
|
41
41
|
background: @primary-color;
|
|
42
42
|
.biz-user-tags-selector-group-option-count {
|
|
43
43
|
.ant-badge-count {
|
|
@@ -45,6 +45,11 @@
|
|
|
45
45
|
background: @primary-color;
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
+
.biz-user-tags-selector-group-option-label {
|
|
49
|
+
* {
|
|
50
|
+
color: #fff !important;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
48
53
|
}
|
|
49
54
|
}
|
|
50
55
|
}
|
|
@@ -1,3 +1,9 @@
|
|
|
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
|
+
|
|
1
7
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
8
|
|
|
3
9
|
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."); }
|
|
@@ -40,7 +46,14 @@ var UserTagsSelect = function UserTagsSelect(props) {
|
|
|
40
46
|
|
|
41
47
|
var handleValue = useMemo(function () {
|
|
42
48
|
return currentValue.map(function (item) {
|
|
43
|
-
|
|
49
|
+
var last = item[item.length - 1];
|
|
50
|
+
var pre = item[item.length - 2];
|
|
51
|
+
|
|
52
|
+
var res = _objectSpread(_objectSpread({}, last), {}, {
|
|
53
|
+
handleText: "".concat(pre[labelFields[labelFields.length - 2]], "\uFF1A").concat(last[labelFields[labelFields.length - 1]])
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
return res;
|
|
44
57
|
});
|
|
45
58
|
}, [currentValue]);
|
|
46
59
|
|
|
@@ -51,7 +64,8 @@ var UserTagsSelect = function UserTagsSelect(props) {
|
|
|
51
64
|
function onDelete(data) {
|
|
52
65
|
var current = currentValue.slice();
|
|
53
66
|
var index = current.findIndex(function (item) {
|
|
54
|
-
|
|
67
|
+
var keyField = keyFields[keyFields.length - 1];
|
|
68
|
+
return _.isEqual(item.slice().pop()[keyField], data[keyField]);
|
|
55
69
|
});
|
|
56
70
|
current.splice(index, 1);
|
|
57
71
|
props.onChange && props.onChange(current);
|
|
@@ -97,7 +111,7 @@ var UserTagsSelect = function UserTagsSelect(props) {
|
|
|
97
111
|
}, /*#__PURE__*/React.createElement(SelectHandle, {
|
|
98
112
|
border: false,
|
|
99
113
|
value: handleValue,
|
|
100
|
-
labelField:
|
|
114
|
+
labelField: "handleText",
|
|
101
115
|
multiple: true,
|
|
102
116
|
size: "middle",
|
|
103
117
|
placeholder: "\u9009\u62E9\u6807\u7B7E",
|
|
@@ -33,7 +33,8 @@ var CheckOption = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
33
33
|
|
|
34
34
|
return /*#__PURE__*/React.createElement("div", {
|
|
35
35
|
ref: ref,
|
|
36
|
-
className: ["".concat(classPrefix, "-check-option"), disabled ? "".concat(classPrefix, "-check-option-disabled") : ''].join(' ')
|
|
36
|
+
className: ["".concat(classPrefix, "-check-option"), disabled ? "".concat(classPrefix, "-check-option-disabled") : ''].join(' '),
|
|
37
|
+
title: label
|
|
37
38
|
}, /*#__PURE__*/React.createElement(Checkbox, {
|
|
38
39
|
onChange: onChange,
|
|
39
40
|
disabled: disabled,
|
|
@@ -13,7 +13,6 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
13
13
|
import React, { useMemo, useState } from 'react';
|
|
14
14
|
import { classPrefix } from '..';
|
|
15
15
|
import VirtualList from 'rc-virtual-list';
|
|
16
|
-
import Search from '../components/search';
|
|
17
16
|
import CheckOption from './checkOption';
|
|
18
17
|
import { filterFactory, isCheckedFactory } from '../util';
|
|
19
18
|
|
|
@@ -21,16 +20,12 @@ var MultipleCheckPanel = function MultipleCheckPanel(props) {
|
|
|
21
20
|
var data = props.data,
|
|
22
21
|
labelField = props.labelField,
|
|
23
22
|
level = props.level,
|
|
24
|
-
currentValue = props.currentValue
|
|
23
|
+
currentValue = props.currentValue,
|
|
24
|
+
valueField = props.valueField;
|
|
25
25
|
|
|
26
26
|
var _useState = useState(''),
|
|
27
|
-
_useState2 = _slicedToArray(_useState,
|
|
28
|
-
searchValue = _useState2[0]
|
|
29
|
-
setSearchValue = _useState2[1];
|
|
30
|
-
|
|
31
|
-
function onSearch(val) {
|
|
32
|
-
setSearchValue(val);
|
|
33
|
-
}
|
|
27
|
+
_useState2 = _slicedToArray(_useState, 1),
|
|
28
|
+
searchValue = _useState2[0];
|
|
34
29
|
|
|
35
30
|
var searchFilter = useMemo(function () {
|
|
36
31
|
return filterFactory(labelField, searchValue);
|
|
@@ -50,17 +45,13 @@ var MultipleCheckPanel = function MultipleCheckPanel(props) {
|
|
|
50
45
|
if (!data.length) return /*#__PURE__*/React.createElement("span", null, "\u6682\u65E0\u6570\u636E");
|
|
51
46
|
return /*#__PURE__*/React.createElement("div", {
|
|
52
47
|
className: "".concat(classPrefix, "-check-panel")
|
|
53
|
-
}, /*#__PURE__*/React.createElement(
|
|
54
|
-
show: true,
|
|
55
|
-
onChange: onSearch,
|
|
56
|
-
placeholder: "\u641C\u7D22\u6807\u7B7E\u540D\u79F0"
|
|
57
|
-
}), /*#__PURE__*/React.createElement(VirtualList, {
|
|
48
|
+
}, /*#__PURE__*/React.createElement(VirtualList, {
|
|
58
49
|
data: data.filter(searchFilter),
|
|
59
50
|
itemHeight: 48,
|
|
60
51
|
itemKey: labelField,
|
|
61
|
-
height:
|
|
52
|
+
height: 360
|
|
62
53
|
}, function (item, index) {
|
|
63
|
-
var checked = isChecked(item);
|
|
54
|
+
var checked = isChecked(item, valueField);
|
|
64
55
|
return /*#__PURE__*/React.createElement(CheckOption, {
|
|
65
56
|
checked: checked,
|
|
66
57
|
highlightText: searchValue,
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
@import '../../assets/styles/inner.less';
|
|
2
2
|
.biz-user-tags-selector {
|
|
3
3
|
&-overlay {
|
|
4
|
-
display: flex;
|
|
5
|
-
width: 651px;
|
|
6
4
|
max-height: 425px;
|
|
7
5
|
background-color: #fff;
|
|
8
6
|
border-radius: @border-radius-normal;
|
|
9
7
|
box-shadow: @box-shadow-base;
|
|
8
|
+
&-search {
|
|
9
|
+
height: 48px;
|
|
10
|
+
padding: @margin-xs @margin-xs 0;
|
|
11
|
+
}
|
|
12
|
+
&-panel {
|
|
13
|
+
display: flex;
|
|
14
|
+
}
|
|
10
15
|
&-groups {
|
|
11
|
-
width:
|
|
16
|
+
width: 204px;
|
|
12
17
|
padding: @margin-xs;
|
|
13
18
|
border-right: 1px solid @border-color-base;
|
|
14
19
|
}
|
|
15
20
|
&-selections {
|
|
16
|
-
|
|
21
|
+
width: 204px;
|
|
17
22
|
min-width: 0;
|
|
18
23
|
padding: @padding-xs;
|
|
19
24
|
}
|
|
@@ -29,6 +29,7 @@ export declare namespace UserTagsSelectorTypes {
|
|
|
29
29
|
searchable?: boolean;
|
|
30
30
|
level: number;
|
|
31
31
|
currentValue: any[];
|
|
32
|
+
highlightText?: string;
|
|
32
33
|
}
|
|
33
34
|
interface GroupOption {
|
|
34
35
|
actived: boolean;
|
|
@@ -55,13 +56,3 @@ export declare namespace UserTagsSelectorTypes {
|
|
|
55
56
|
disabled: boolean;
|
|
56
57
|
}
|
|
57
58
|
}
|
|
58
|
-
export interface TagI {
|
|
59
|
-
appId: number;
|
|
60
|
-
createTime: string;
|
|
61
|
-
updateTime: string;
|
|
62
|
-
del: number;
|
|
63
|
-
labelGroup: string;
|
|
64
|
-
labelId: number;
|
|
65
|
-
labelName: string;
|
|
66
|
-
labelStatus: number;
|
|
67
|
-
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare function curry(fn: Function): (...arg1: any[]) => (...arg2: any[]) => any;
|
|
2
2
|
export declare function filterFactory(labelField: string, searchValue: string): (item: any) => boolean;
|
|
3
|
-
export declare function isCheckedFactory(currentValue: any[], level: number): (
|
|
3
|
+
export declare function isCheckedFactory(currentValue: any[], level: number): (option: any, valueFiled: string) => boolean;
|
|
4
4
|
export declare function getFieldFactory(fields: string[]): () => string;
|
|
@@ -22,9 +22,13 @@ export function filterFactory(labelField, searchValue) {
|
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
export function isCheckedFactory(currentValue, level) {
|
|
25
|
-
return function (
|
|
25
|
+
return function (option, valueFiled) {
|
|
26
26
|
return currentValue.some(function (value) {
|
|
27
|
-
|
|
27
|
+
if (value[level][valueFiled] !== undefined) {
|
|
28
|
+
return value[level][valueFiled] === option[valueFiled];
|
|
29
|
+
} else {
|
|
30
|
+
return value[level] === option[valueFiled];
|
|
31
|
+
}
|
|
28
32
|
});
|
|
29
33
|
};
|
|
30
34
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zgfe/business-lib",
|
|
3
|
-
"version": "1.0.25
|
|
3
|
+
"version": "1.0.25",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"start": "dumi dev",
|
|
6
6
|
"docs:build": "dumi build",
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"react": "^16.12.0 || ^17.0.0",
|
|
59
59
|
"yorkie": "^2.0.0"
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "6bdaae4bcfed41d119805192cad8610711297f9d"
|
|
62
62
|
}
|