@baishuyun/ui-business 6.1.0 → 6.2.0
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/dist/BubbleChart/{AutoGridEChart-CJVgpqeo.js → AutoGridEChart-VA8BTIj4.js} +2 -2
- package/dist/BubbleChart/{BubbleChart-CavI9Qnb.js → BubbleChart-CGLJJHYy.js} +23 -14
- package/dist/BubbleChart/index.js +2 -2
- package/dist/ConfigProvider/index.js +1 -1
- package/dist/DeptsMemberSelector/CorpDeptMemberList-CStcWBzB.js +102 -0
- package/dist/DeptsMemberSelector/CorpDeptTree-B4EEUTqQ.js +51 -0
- package/dist/DeptsMemberSelector/CorpFlatList-Cn8-KRFi.js +86 -0
- package/dist/DeptsMemberSelector/CorpLabelTree-iQ_7Ux_J.js +212 -0
- package/dist/DeptsMemberSelector/{Department-lQJcetBA.js → Department-DXD3xoiS.js} +15 -14
- package/dist/DeptsMemberSelector/DeptsMemberSelector-DXpd9aCn.js +1935 -0
- package/dist/DeptsMemberSelector/DeptsUser-DO-SQexg.js +1317 -0
- package/dist/DeptsMemberSelector/EnterpriseLabelList-BtB8AjXO.js +85 -0
- package/dist/DeptsMemberSelector/{Member-K4kgwY7b.js → Member-BrNFIHZy.js} +234 -238
- package/dist/DeptsMemberSelector/OrganizationPanel-hray3UWA.js +671 -0
- package/dist/DeptsMemberSelector/{RelationShipList-DkF9XivU.js → RelationShipList-DcgaMOyr.js} +1 -1
- package/dist/DeptsMemberSelector/TagIcon-CYklI9Ar.js +259 -0
- package/dist/DeptsMemberSelector/filterLabelCorpFlatNodes-BrRZqDkm.js +36 -0
- package/dist/DeptsMemberSelector/index.js +20 -11
- package/dist/DeptsMemberSelector/services/contact/{selector.service-BUQcY5DZ.js → selector.service-CQopqiTw.js} +86 -60
- package/dist/DeptsMemberSelector/subcomponents/Entity/Department/index.js +8 -4
- package/dist/DeptsMemberSelector/subcomponents/Entity/DeptsUser/index.js +15 -6
- package/dist/DeptsMemberSelector/subcomponents/Entity/Member/index.js +7 -4
- package/dist/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpDeptPanel/CorpDeptMemberList/index.d.ts +4 -0
- package/dist/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpDeptPanel/CorpDeptMemberList/index.js +5 -0
- package/dist/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpDeptPanel/CorpDeptTree/index.d.ts +4 -0
- package/dist/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpDeptPanel/CorpDeptTree/index.js +6 -0
- package/dist/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpPanel/CorpFlatList/index.d.ts +4 -0
- package/dist/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpPanel/CorpFlatList/index.js +5 -0
- package/dist/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpPanel/CorpLabelTree/index.d.ts +4 -0
- package/dist/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpPanel/CorpLabelTree/index.js +9 -0
- package/dist/DeptsMemberSelector/subcomponents/Panels/DeptUsersEnterpriseLabelPanel/EnterpriseLabelList/index.d.ts +4 -0
- package/dist/DeptsMemberSelector/subcomponents/Panels/DeptUsersEnterpriseLabelPanel/EnterpriseLabelList/index.js +5 -0
- package/dist/DeptsMemberSelector/subcomponents/Panels/MemberRelationShipPanel/RelationShipList/index.js +2 -2
- package/dist/DeptsMemberSelector/{useDeptsMemberSelector-CHK0U3R4.js → useDeptsMemberSelector-B6XZHqd5.js} +11 -3
- package/dist/DeptsMemberSelector/useFilteredMemberList-BE7jRCME.js +807 -0
- package/dist/DeptsMemberSelector/useOutsiderGroupPanelState-BULTXv3n.js +205 -0
- package/dist/DeptsMemberSelector/useTreeExpandedKeys-oLUTUYkP.js +45 -0
- package/dist/DeptsMemberSelector/utils/index.js +1 -1
- package/dist/DeptsMemberSelector/{utils-BVfGpRu5.js → utils-Bb473LZ3.js} +21 -19
- package/dist/Scatterplot/{Scatterplot-D4GhWpFa.js → Scatterplot-R66_f3TZ.js} +6 -4
- package/dist/Scatterplot/index.js +2 -2
- package/dist/components/DeptsMemberSelector/context/DeptsMemberContext.d.ts +5 -2
- package/dist/components/DeptsMemberSelector/hooks/useDeptsMemberSelector.d.ts +1 -1
- package/dist/components/DeptsMemberSelector/hooks/useFilteredMemberList.d.ts +6 -0
- package/dist/components/DeptsMemberSelector/hooks/useTabListScrollOffset.d.ts +18 -0
- package/dist/components/DeptsMemberSelector/hooks/useTreeExpandedKeys.d.ts +9 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Entity/DeptsUser/DeptUsersSearch/DeptUsersSearch.d.ts +5 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Entity/DeptsUser/DeptUsersSearch/useDeptUsersSearchData.d.ts +19 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Entity/Member/MemberSearch/TreeNodeTitle.d.ts +7 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpDeptPanel/CorpDeptMemberList/index.d.ts +6 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpDeptPanel/CorpDeptTree/index.d.ts +6 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpDeptPanel/DeptUsersCorpDeptPanel.d.ts +2 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpDeptPanel/buildCorpDeptTreeData.d.ts +7 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpDeptPanel/types.d.ts +45 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpDeptPanel/useCorpDeptPanelData.d.ts +17 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpPanel/CorpFlatList/index.d.ts +12 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpPanel/CorpLabelTree/index.d.ts +2 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpPanel/DeptUsersCorpPanel.d.ts +2 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpPanel/alignDockCorpSelectedKeys.d.ts +27 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpPanel/buildCorpLabelTreeData.d.ts +18 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpPanel/useCorpLabelTreePanelData.d.ts +11 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersCorpPanel/useCorpPanelData.d.ts +11 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersEnterpriseLabelPanel/DeptUsersEnterpriseLabelPanel.d.ts +2 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersEnterpriseLabelPanel/EnterpriseLabelList/index.d.ts +11 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersEnterpriseLabelPanel/types.d.ts +5 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersEnterpriseLabelPanel/useDeptUsersEnterpriseLabelPanelData.d.ts +10 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersPositionPanel/useDeptUsersPositionPanelData.d.ts +8 -8
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersRolePanel/InternalRolePickTree.d.ts +21 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersRolePanel/useDeptUsersRolePanelData.d.ts +14 -11
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/MemberPanel/useMemberPagedList.d.ts +40 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/MemberPanel/useMemberPanelData.d.ts +88 -3
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/OrganizationPanel/DeptScope/DeptScopeOptions.d.ts +13 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/OrganizationPanel/DeptScope/DeptScopePanel.d.ts +8 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/OrganizationPanel/DeptScope/useDeptScopePanelData.d.ts +41 -0
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/PositionPanel/usePositionPanelData.d.ts +1 -1
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/RolePanel/useRolePanelData.d.ts +1 -1
- package/dist/components/DeptsMemberSelector/subcomponents/SelectionArea/PreviewSelectedItems/PreviewSelectedItems.d.ts +1 -5
- package/dist/components/DeptsMemberSelector/testUtils/domMeasureMocks.d.ts +7 -0
- package/dist/components/DeptsMemberSelector/types/selector.d.ts +62 -3
- package/dist/components/DeptsMemberSelector/utils/constants.d.ts +36 -3
- package/dist/components/DeptsMemberSelector/utils/corpList.d.ts +13 -0
- package/dist/components/DeptsMemberSelector/utils/departmentIdentity.d.ts +14 -0
- package/dist/components/DeptsMemberSelector/utils/deptUsersCorpDeptSearchGroup.d.ts +31 -0
- package/dist/components/DeptsMemberSelector/utils/deptUsersCorpSearchGroup.d.ts +23 -0
- package/dist/components/DeptsMemberSelector/utils/deptUsersDockCacheKeys.d.ts +16 -0
- package/dist/components/DeptsMemberSelector/utils/deptUsersEnterpriseLabelSearchGroup.d.ts +22 -0
- package/dist/components/DeptsMemberSelector/utils/deptUsersOrgDepartmentsData.d.ts +30 -0
- package/dist/components/DeptsMemberSelector/utils/deptUsersOrganizationSearchGroup.d.ts +25 -0
- package/dist/components/DeptsMemberSelector/utils/deptUsersRelationSearchGroup.d.ts +4 -16
- package/dist/components/DeptsMemberSelector/utils/deptUsersRoleModel.d.ts +43 -0
- package/dist/components/DeptsMemberSelector/utils/deptUsersRoleSearchGroup.d.ts +24 -0
- package/dist/components/DeptsMemberSelector/utils/deptUsersSearchDimensions.d.ts +30 -0
- package/dist/components/DeptsMemberSelector/utils/domMeasure.d.ts +14 -0
- package/dist/components/DeptsMemberSelector/utils/entityItemType.d.ts +5 -2
- package/dist/components/DeptsMemberSelector/utils/filterLabelCorpFlatNodes.d.ts +56 -0
- package/dist/components/DeptsMemberSelector/utils/flattenDockUserList.d.ts +7 -0
- package/dist/components/DeptsMemberSelector/utils/flowCreator.d.ts +17 -2
- package/dist/components/DeptsMemberSelector/utils/index.d.ts +5 -1
- package/dist/components/DeptsMemberSelector/utils/memberSearchTreeTitle.d.ts +9 -0
- package/dist/components/DeptsMemberSelector/utils/resolveDeptUsersExternalMembers.d.ts +7 -0
- package/dist/components/DeptsMemberSelector/utils/resolveDeptUsersOrganizationEntryVisibility.d.ts +19 -0
- package/dist/components/DeptsMemberSelector/utils/resolveDockCorpId.d.ts +15 -0
- package/dist/components/DeptsMemberSelector/{subcomponents/Panels/OrganizationPanel/utils → utils}/treeExpandedKeys.d.ts +8 -3
- package/dist/components/DeptsMemberSelector/utils/useDeptUsersOrgDepartmentsPrefetch.d.ts +16 -0
- package/dist/index.css +1 -1
- package/dist/index.js +22 -13
- package/dist/lang/en-US.json.d.ts +13 -1
- package/dist/lang/zh-CN.json.d.ts +13 -1
- package/dist/lang/zh-TW.json.d.ts +13 -1
- package/dist/services/contact/selector.service.d.ts +43 -2
- package/dist/vendors/useLocale.js +251 -0
- package/package.json +3 -3
- package/dist/DeptsMemberSelector/DeptsMemberSelector-DmwD1Ls_.js +0 -1336
- package/dist/DeptsMemberSelector/DeptsUser-wWfkuBDp.js +0 -974
- package/dist/DeptsMemberSelector/MemberPanel-Cm1Hv-GV.js +0 -698
- package/dist/DeptsMemberSelector/OrganizationPanel-2QDNfFtJ.js +0 -401
- package/dist/DeptsMemberSelector/useOutsiderGroupPanelState-d2EiLVaV.js +0 -648
- package/dist/components/DeptsMemberSelector/subcomponents/Panels/OrganizationPanel/utils/useOrganizationTreeExpandedKeys.d.ts +0 -9
- package/dist/components/DeptsMemberSelector/utils/deptUsersSearchVisibility.d.ts +0 -30
- /package/dist/ConfigProvider/{ConfigProvider-CU5Z39Ex.js → ConfigProvider-51iupuCp.js} +0 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CorpLabelTreeNode } from './buildCorpLabelTreeData';
|
|
2
|
+
export declare const useCorpLabelTreePanelData: () => {
|
|
3
|
+
treeData: CorpLabelTreeNode[];
|
|
4
|
+
loading: boolean;
|
|
5
|
+
selectedCorpIds: (string | number)[];
|
|
6
|
+
selectionExpandKeys: (string | number)[];
|
|
7
|
+
containerHeight: number;
|
|
8
|
+
isSingleSelect: boolean | undefined;
|
|
9
|
+
handleSelect: (_key: number | string, node?: CorpLabelTreeNode) => void;
|
|
10
|
+
handleDeselect: (corpId: number | string) => void;
|
|
11
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CorpListItem } from '../../../types/selector';
|
|
2
|
+
export declare const useCorpPanelData: () => {
|
|
3
|
+
corpList: CorpListItem[];
|
|
4
|
+
selectedIds: any[];
|
|
5
|
+
selectedId: any;
|
|
6
|
+
corpsLoading: boolean;
|
|
7
|
+
isSingleSelect: boolean | undefined;
|
|
8
|
+
respectNoEdit: boolean;
|
|
9
|
+
handleSelectCorp: (values: Array<string | number>) => void;
|
|
10
|
+
handleCorpToggle: (item: CorpListItem) => void;
|
|
11
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { EnterpriseLabelListItem } from '../types';
|
|
2
|
+
declare const EnterpriseLabelList: React.FC<{
|
|
3
|
+
labelList?: EnterpriseLabelListItem[];
|
|
4
|
+
selectedIds?: Array<string | number>;
|
|
5
|
+
selectedId?: string | number;
|
|
6
|
+
loading?: boolean;
|
|
7
|
+
isSingleSelect?: boolean;
|
|
8
|
+
onChange?: (values: (string | number)[]) => void;
|
|
9
|
+
onToggle?: (item: EnterpriseLabelListItem) => void;
|
|
10
|
+
}>;
|
|
11
|
+
export default EnterpriseLabelList;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { EnterpriseLabelListItem } from './types';
|
|
2
|
+
export declare const useDeptUsersEnterpriseLabelPanelData: () => {
|
|
3
|
+
labelList: EnterpriseLabelListItem[];
|
|
4
|
+
selectedIds: any[];
|
|
5
|
+
selectedId: any;
|
|
6
|
+
labelsLoading: boolean;
|
|
7
|
+
isSingleSelect: boolean | undefined;
|
|
8
|
+
handleSelectLabel: (values: Array<string | number>) => void;
|
|
9
|
+
handleLabelToggle: (item: EnterpriseLabelListItem) => void;
|
|
10
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ENTITY_ITEM_TYPE } from '../../../utils/entityItemType';
|
|
2
|
-
|
|
2
|
+
import { DeptRangeMode } from '../../../types/selector';
|
|
3
3
|
type PositionSourceItem = string | {
|
|
4
4
|
_id?: string;
|
|
5
5
|
id?: string;
|
|
@@ -18,17 +18,17 @@ type DeptUsersPositionItem = {
|
|
|
18
18
|
rawId?: string;
|
|
19
19
|
deptId: string;
|
|
20
20
|
deptName: string;
|
|
21
|
-
mode:
|
|
21
|
+
mode: DeptRangeMode;
|
|
22
22
|
};
|
|
23
23
|
declare const POSITION_MODE_OPTIONS: Array<{
|
|
24
|
-
key:
|
|
24
|
+
key: DeptRangeMode;
|
|
25
25
|
label: string;
|
|
26
26
|
}>;
|
|
27
27
|
declare const normalizePositionItems: ({ sourceItems, deptId, deptName, mode, }: {
|
|
28
28
|
sourceItems: PositionSourceItem[];
|
|
29
29
|
deptId: string;
|
|
30
30
|
deptName: string;
|
|
31
|
-
mode:
|
|
31
|
+
mode: DeptRangeMode;
|
|
32
32
|
}) => DeptUsersPositionItem[];
|
|
33
33
|
declare const useDeptUsersPositionPanelData: () => {
|
|
34
34
|
containerHeight: number;
|
|
@@ -36,10 +36,10 @@ declare const useDeptUsersPositionPanelData: () => {
|
|
|
36
36
|
defaultExpandedKeys: any[];
|
|
37
37
|
canShowModeOptions: boolean;
|
|
38
38
|
selectedDeptId: string;
|
|
39
|
-
selectedMode:
|
|
40
|
-
setSelectedMode: import('react').Dispatch<import('react').SetStateAction<
|
|
39
|
+
selectedMode: DeptRangeMode;
|
|
40
|
+
setSelectedMode: import('react').Dispatch<import('react').SetStateAction<DeptRangeMode>>;
|
|
41
41
|
modeOptions: {
|
|
42
|
-
key:
|
|
42
|
+
key: DeptRangeMode;
|
|
43
43
|
label: string;
|
|
44
44
|
}[];
|
|
45
45
|
positionList: DeptUsersPositionItem[];
|
|
@@ -51,4 +51,4 @@ declare const useDeptUsersPositionPanelData: () => {
|
|
|
51
51
|
handleSelectDepartment: (deptId: string | number, node?: any) => void;
|
|
52
52
|
handlePositionToggle: (item: DeptUsersPositionItem, checked: boolean) => void;
|
|
53
53
|
};
|
|
54
|
-
export { POSITION_MODE_OPTIONS, normalizePositionItems, useDeptUsersPositionPanelData, type DeptUsersPositionItem,
|
|
54
|
+
export { POSITION_MODE_OPTIONS, normalizePositionItems, useDeptUsersPositionPanelData, type DeptUsersPositionItem, };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { TreeNodeDefine } from '@baishuyun/ui-base/components/Tree';
|
|
2
|
+
import { InternalRolePickNode, RoleSourceItem } from './useDeptUsersRolePanelData';
|
|
3
|
+
type InternalRolePickTreeProps = {
|
|
4
|
+
loading: boolean;
|
|
5
|
+
treeData: InternalRolePickNode[];
|
|
6
|
+
selectedKeys: Array<string | number>;
|
|
7
|
+
expandedKeys: Array<string | number>;
|
|
8
|
+
onExpand: (keys: Array<string | number>) => void;
|
|
9
|
+
onSelect: (key: string | number, node?: TreeNodeDefine) => void;
|
|
10
|
+
onDeselect: (key: string | number) => void;
|
|
11
|
+
isSingleSelect?: boolean;
|
|
12
|
+
isRoleGroupNode: (node?: RoleSourceItem | null) => boolean;
|
|
13
|
+
scrollHeight: number;
|
|
14
|
+
emptyText: string;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* roleChildEnable:true 下的内部角色可勾选树:分组节点 checkable:false(点击仅展开),叶子可勾选。
|
|
18
|
+
* 对标 CorpLabelTree,使用 Tree 自身的 checkable 控制,不再需要右栏范围选项。
|
|
19
|
+
*/
|
|
20
|
+
declare const InternalRolePickTree: ({ loading, treeData, selectedKeys, expandedKeys, onExpand, onSelect, onDeselect, isSingleSelect, isRoleGroupNode, scrollHeight, emptyText, }: InternalRolePickTreeProps) => import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export default InternalRolePickTree;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { InternalRolePickNode, RoleSourceItem } from '../../../utils/deptUsersRoleModel';
|
|
2
|
+
import { TreeNodeDefine } from '@baishuyun/ui-base/components/Tree';
|
|
1
3
|
type RoleEntryKey = 'internal' | 'external';
|
|
2
4
|
type MenuItem = {
|
|
3
5
|
key: RoleEntryKey;
|
|
@@ -8,18 +10,12 @@ type DeptUsersRoleSelectionItem = {
|
|
|
8
10
|
_id: string;
|
|
9
11
|
name: string;
|
|
10
12
|
type: 'role' | 'rolegroup' | 'dockrole';
|
|
13
|
+
/** member.role / role.add 业务 id;_id 为选择器 ObjectId */
|
|
14
|
+
role_id?: string | number;
|
|
11
15
|
};
|
|
12
16
|
type DeptUsersRoleOptionItem = DeptUsersRoleSelectionItem & {
|
|
13
17
|
label: string;
|
|
14
18
|
};
|
|
15
|
-
type RoleSourceItem = {
|
|
16
|
-
role_id: string | number;
|
|
17
|
-
name: string;
|
|
18
|
-
type?: string | number;
|
|
19
|
-
parent?: string | number;
|
|
20
|
-
children?: RoleSourceItem[];
|
|
21
|
-
[key: string]: any;
|
|
22
|
-
};
|
|
23
19
|
declare const useDeptUsersRolePanelData: () => {
|
|
24
20
|
containerHeight: number;
|
|
25
21
|
menuItems: MenuItem[];
|
|
@@ -27,15 +23,22 @@ declare const useDeptUsersRolePanelData: () => {
|
|
|
27
23
|
setActiveKey: import('react').Dispatch<import('react').SetStateAction<RoleEntryKey | undefined>>;
|
|
28
24
|
internalRoleTree: RoleSourceItem[];
|
|
29
25
|
externalRoleList: DeptUsersRoleOptionItem[];
|
|
30
|
-
|
|
26
|
+
selectedStoredId: string | undefined;
|
|
31
27
|
selectedIds: any[];
|
|
32
28
|
selectedId: any;
|
|
33
29
|
currentOptions: DeptUsersRoleOptionItem[];
|
|
34
30
|
loading: boolean;
|
|
35
31
|
isSingleSelect: boolean | undefined;
|
|
36
|
-
|
|
32
|
+
isRoleChildOnly: boolean;
|
|
33
|
+
internalRolePickTree: InternalRolePickNode[];
|
|
34
|
+
selectedPickRoleIds: any[];
|
|
35
|
+
pickExpandedKeys: (string | number)[];
|
|
36
|
+
onPickExpand: import('react').Dispatch<import('react').SetStateAction<(string | number)[] | null>>;
|
|
37
|
+
handleSelectInternalRole: (storedId: string | number) => void;
|
|
37
38
|
handleRoleToggle: (item: DeptUsersRoleSelectionItem, checked: boolean) => void;
|
|
39
|
+
handlePickRoleSelect: (_key: string | number, node?: TreeNodeDefine) => void;
|
|
40
|
+
handlePickRoleDeselect: (storedId: string | number) => void;
|
|
38
41
|
isRoleGroupNode: (role?: RoleSourceItem | null) => boolean;
|
|
39
42
|
};
|
|
40
43
|
export { useDeptUsersRolePanelData };
|
|
41
|
-
export type { DeptUsersRoleSelectionItem, DeptUsersRoleOptionItem, RoleSourceItem };
|
|
44
|
+
export type { DeptUsersRoleSelectionItem, DeptUsersRoleOptionItem, RoleSourceItem, InternalRolePickNode, };
|
package/dist/components/DeptsMemberSelector/subcomponents/Panels/MemberPanel/useMemberPagedList.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { MemberPanelRequestGuard, SelectorType } from '../../../types/selector';
|
|
2
|
+
export type MemberPagedListParams = {
|
|
3
|
+
/** 与父组件 key 对齐;同实例内变化时走 ahooks reload(测试 harness) */
|
|
4
|
+
memberQueryKey: string;
|
|
5
|
+
type: SelectorType;
|
|
6
|
+
activeKey: string;
|
|
7
|
+
selectKey: string | symbol;
|
|
8
|
+
uniqueAllKey: symbol;
|
|
9
|
+
externalActiveTab: string;
|
|
10
|
+
currentCorpId?: string;
|
|
11
|
+
requestContext: any;
|
|
12
|
+
limits: any;
|
|
13
|
+
memberSearchLimit: any;
|
|
14
|
+
isMemberLimitMode: boolean;
|
|
15
|
+
shouldUsePagedMembers: boolean;
|
|
16
|
+
isInternalDisabled: boolean;
|
|
17
|
+
isDockDisabled: boolean;
|
|
18
|
+
memberPanelRequestGuard: MemberPanelRequestGuard;
|
|
19
|
+
excludedMemberIdSet?: ReadonlySet<string>;
|
|
20
|
+
currentUsers?: any;
|
|
21
|
+
onUsersFirstPage?: (usersLen: number) => void;
|
|
22
|
+
onMemberLimitResult?: (result: {
|
|
23
|
+
users?: any[];
|
|
24
|
+
dock_user_list?: any[];
|
|
25
|
+
mappedRoles?: any[];
|
|
26
|
+
mappedDockRoles?: any[];
|
|
27
|
+
}) => void;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* 成员第三栏分页列表。须由父组件用 key={memberQueryKey} 挂载,
|
|
31
|
+
* 以便 Tab/筛选切换时卸载重建,避免 ahooks useInfiniteScroll 跨 query 复用 finalData。
|
|
32
|
+
*/
|
|
33
|
+
declare const useMemberPagedList: (params: MemberPagedListParams) => {
|
|
34
|
+
userList: any[];
|
|
35
|
+
scrollRef: import('react').RefObject<HTMLDivElement>;
|
|
36
|
+
memberLoading: boolean;
|
|
37
|
+
memberLoadingMore: boolean;
|
|
38
|
+
memberData: any;
|
|
39
|
+
};
|
|
40
|
+
export { useMemberPagedList };
|
package/dist/components/DeptsMemberSelector/subcomponents/Panels/MemberPanel/useMemberPanelData.d.ts
CHANGED
|
@@ -3,7 +3,11 @@ type MenuItem = {
|
|
|
3
3
|
label: string;
|
|
4
4
|
visible: boolean;
|
|
5
5
|
};
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* 成员面板壳层:侧栏、部门树、activeKey。
|
|
8
|
+
* 第三栏分页列表由 useMemberPagedList 承担,UI 侧须用 key={memberQueryKey} 挂载以重置 ahooks 状态。
|
|
9
|
+
*/
|
|
10
|
+
declare const useMemberPanelShell: () => {
|
|
7
11
|
containerHeight: number;
|
|
8
12
|
menuItems: MenuItem[];
|
|
9
13
|
activeKey: string;
|
|
@@ -18,12 +22,93 @@ declare const useMemberPanelData: () => {
|
|
|
18
22
|
external: any[];
|
|
19
23
|
};
|
|
20
24
|
currentTreeData: any[];
|
|
25
|
+
loading: boolean;
|
|
26
|
+
showUnavailableOverlay: boolean;
|
|
27
|
+
showTree: boolean;
|
|
28
|
+
memberQueryKey: string;
|
|
29
|
+
pagedListParams: {
|
|
30
|
+
memberQueryKey: string;
|
|
31
|
+
type: import('../../../types/selector').SelectorType;
|
|
32
|
+
activeKey: string;
|
|
33
|
+
selectKey: string | symbol;
|
|
34
|
+
uniqueAllKey: symbol;
|
|
35
|
+
externalActiveTab: string;
|
|
36
|
+
currentCorpId: string | undefined;
|
|
37
|
+
requestContext: import('../../../types/selector').RequestContext;
|
|
38
|
+
limits: import('../../../types/selector').SelectorLimits;
|
|
39
|
+
memberSearchLimit: import('../../../types/selector').MemberSearchLimit | undefined;
|
|
40
|
+
isMemberLimitMode: boolean;
|
|
41
|
+
shouldUsePagedMembers: boolean;
|
|
42
|
+
isInternalDisabled: boolean;
|
|
43
|
+
isDockDisabled: boolean;
|
|
44
|
+
memberPanelRequestGuard: import('../../../types/selector').MemberPanelRequestGuard;
|
|
45
|
+
excludedMemberIdSet: ReadonlySet<string> | undefined;
|
|
46
|
+
currentUsers: Record<string, unknown>[] | undefined;
|
|
47
|
+
onUsersFirstPage: (usersLen: number) => void;
|
|
48
|
+
onMemberLimitResult: (result: {
|
|
49
|
+
users?: any[];
|
|
50
|
+
dock_user_list?: any[];
|
|
51
|
+
mappedRoles?: any[];
|
|
52
|
+
mappedDockRoles?: any[];
|
|
53
|
+
}) => void;
|
|
54
|
+
};
|
|
55
|
+
shouldUsePagedMembers: boolean;
|
|
56
|
+
isMemberLimitMode: boolean;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* 测试 / 兼容入口:壳层 + 分页列表同实例组合。
|
|
60
|
+
* 生产 UI 请用 useMemberPanelShell + key={memberQueryKey} 的列表子组件,避免跨 Tab 复用 ahooks finalData。
|
|
61
|
+
*/
|
|
62
|
+
declare const useMemberPanelData: () => {
|
|
21
63
|
userList: any[];
|
|
22
64
|
scrollRef: import('react').RefObject<HTMLDivElement>;
|
|
23
|
-
loading: boolean;
|
|
24
65
|
memberLoading: boolean;
|
|
25
66
|
memberLoadingMore: boolean;
|
|
67
|
+
containerHeight: number;
|
|
68
|
+
menuItems: MenuItem[];
|
|
69
|
+
activeKey: string;
|
|
70
|
+
setActiveKey: (nextKey: string) => void;
|
|
71
|
+
selectKey: string | symbol;
|
|
72
|
+
setSelectKey: import('react').Dispatch<import('react').SetStateAction<string | symbol>>;
|
|
73
|
+
uniqueAllKey: symbol;
|
|
74
|
+
externalActiveTab: string;
|
|
75
|
+
handleExternalActiveTabChange: (tab: string) => void;
|
|
76
|
+
treeData: {
|
|
77
|
+
internal: any[];
|
|
78
|
+
external: any[];
|
|
79
|
+
};
|
|
80
|
+
currentTreeData: any[];
|
|
81
|
+
loading: boolean;
|
|
26
82
|
showUnavailableOverlay: boolean;
|
|
27
83
|
showTree: boolean;
|
|
84
|
+
memberQueryKey: string;
|
|
85
|
+
pagedListParams: {
|
|
86
|
+
memberQueryKey: string;
|
|
87
|
+
type: import('../../../types/selector').SelectorType;
|
|
88
|
+
activeKey: string;
|
|
89
|
+
selectKey: string | symbol;
|
|
90
|
+
uniqueAllKey: symbol;
|
|
91
|
+
externalActiveTab: string;
|
|
92
|
+
currentCorpId: string | undefined;
|
|
93
|
+
requestContext: import('../../../types/selector').RequestContext;
|
|
94
|
+
limits: import('../../../types/selector').SelectorLimits;
|
|
95
|
+
memberSearchLimit: import('../../../types/selector').MemberSearchLimit | undefined;
|
|
96
|
+
isMemberLimitMode: boolean;
|
|
97
|
+
shouldUsePagedMembers: boolean;
|
|
98
|
+
isInternalDisabled: boolean;
|
|
99
|
+
isDockDisabled: boolean;
|
|
100
|
+
memberPanelRequestGuard: import('../../../types/selector').MemberPanelRequestGuard;
|
|
101
|
+
excludedMemberIdSet: ReadonlySet<string> | undefined;
|
|
102
|
+
currentUsers: Record<string, unknown>[] | undefined;
|
|
103
|
+
onUsersFirstPage: (usersLen: number) => void;
|
|
104
|
+
onMemberLimitResult: (result: {
|
|
105
|
+
users?: any[];
|
|
106
|
+
dock_user_list?: any[];
|
|
107
|
+
mappedRoles?: any[];
|
|
108
|
+
mappedDockRoles?: any[];
|
|
109
|
+
}) => void;
|
|
110
|
+
};
|
|
111
|
+
shouldUsePagedMembers: boolean;
|
|
112
|
+
isMemberLimitMode: boolean;
|
|
28
113
|
};
|
|
29
|
-
export { useMemberPanelData };
|
|
114
|
+
export { useMemberPanelData, useMemberPanelShell };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DeptScopeOptionItem } from './useDeptScopePanelData';
|
|
2
|
+
type DeptScopeOptionsProps = {
|
|
3
|
+
items: DeptScopeOptionItem[];
|
|
4
|
+
selectedScopeIds: Array<string | number>;
|
|
5
|
+
isSingleSelect?: boolean;
|
|
6
|
+
onToggle: (item: DeptScopeOptionItem, checked: boolean) => void;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* deptChildEnable:true 右栏范围选项列表。
|
|
10
|
+
* 渲染逻辑镜像 DeptUsersRolePanel 的 renderOptions:单选 Radio.Group、多选 Checkbox 列表。
|
|
11
|
+
*/
|
|
12
|
+
declare const DeptScopeOptions: ({ items, selectedScopeIds, isSingleSelect, onToggle, }: DeptScopeOptionsProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export default DeptScopeOptions;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ENTITY_ITEM_TYPE } from '../../../../utils/entityItemType';
|
|
2
|
+
import { LocaleKeys } from '../../../../../../hooks/useLocale';
|
|
3
|
+
import { DeptRangeMode } from '../../../../types/selector';
|
|
4
|
+
type DeptScopeOptionItem = {
|
|
5
|
+
/** 选择器稳定标识:`${deptId}-dept` / `${deptId}-deptSub` */
|
|
6
|
+
_id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
/** canonical type:统一 departments,与组织架构树直选项一致 */
|
|
9
|
+
type: typeof ENTITY_ITEM_TYPE.DEPARTMENTS;
|
|
10
|
+
/** 右栏展示文案 */
|
|
11
|
+
label: string;
|
|
12
|
+
/** 锚点部门 _id(去掉后缀的原始部门 id) */
|
|
13
|
+
deptId: string;
|
|
14
|
+
/** 范围模式 */
|
|
15
|
+
mode: DeptRangeMode;
|
|
16
|
+
};
|
|
17
|
+
/** 判断一个 selector item _id 是否为 deptChildEnable 模式产出的范围项。 */
|
|
18
|
+
declare const isDeptScopeId: (id: string | number | undefined) => boolean;
|
|
19
|
+
/**
|
|
20
|
+
* 根据锚点部门构建右栏两项固定范围选项。
|
|
21
|
+
* 始终返回两项,不随锚点是否有子节点变化(与角色面板 buildCurrentOptions 对叶子只返回一项的语义不同)。
|
|
22
|
+
*/
|
|
23
|
+
declare const buildDeptScopeOptions: (dept: {
|
|
24
|
+
_id: string;
|
|
25
|
+
name: string;
|
|
26
|
+
} | undefined, t: (key: LocaleKeys) => string) => DeptScopeOptionItem[];
|
|
27
|
+
declare const useDeptScopePanelData: () => {
|
|
28
|
+
containerHeight: number;
|
|
29
|
+
loading: boolean;
|
|
30
|
+
internalTreeData: any[];
|
|
31
|
+
selectedDeptId: string;
|
|
32
|
+
currentDeptOptions: DeptScopeOptionItem[];
|
|
33
|
+
selectedScopeIds: any[];
|
|
34
|
+
isSingleSelect: boolean | undefined;
|
|
35
|
+
expandedKeys: (string | number)[];
|
|
36
|
+
onExpand: import('react').Dispatch<import('react').SetStateAction<(string | number)[] | null>>;
|
|
37
|
+
handleSelectAnchorDept: (deptId: string | number) => void;
|
|
38
|
+
handleDeptScopeToggle: (item: DeptScopeOptionItem, checked: boolean) => void;
|
|
39
|
+
};
|
|
40
|
+
export { useDeptScopePanelData, buildDeptScopeOptions, isDeptScopeId };
|
|
41
|
+
export type { DeptScopeOptionItem };
|
|
@@ -14,7 +14,7 @@ declare const usePositionPanelData: () => {
|
|
|
14
14
|
positionList: PositionItem[];
|
|
15
15
|
activePositionIndex: number | undefined;
|
|
16
16
|
setActivePositionIndex: import('react').Dispatch<import('react').SetStateAction<number | undefined>>;
|
|
17
|
-
memberList:
|
|
17
|
+
memberList: Record<string, unknown>[];
|
|
18
18
|
jobLoading: boolean;
|
|
19
19
|
memberLoading: boolean;
|
|
20
20
|
};
|
package/dist/components/DeptsMemberSelector/subcomponents/Panels/RolePanel/useRolePanelData.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ declare const useRolePanelData: () => {
|
|
|
11
11
|
roleId: string | undefined;
|
|
12
12
|
setRoleId: import('react').Dispatch<import('react').SetStateAction<string | undefined>>;
|
|
13
13
|
roleTreeList: any[];
|
|
14
|
-
userList:
|
|
14
|
+
userList: Record<string, unknown>[];
|
|
15
15
|
loading: boolean;
|
|
16
16
|
memberLoading: boolean;
|
|
17
17
|
};
|
|
@@ -5,9 +5,5 @@ interface PreviewSelectedItemsProps {
|
|
|
5
5
|
hiddenCount?: number;
|
|
6
6
|
previewCount?: number;
|
|
7
7
|
}
|
|
8
|
-
|
|
9
|
-
measureRef: HTMLUListElement | null;
|
|
10
|
-
ellipsisButtonRef: HTMLLIElement | null;
|
|
11
|
-
}
|
|
12
|
-
declare const PreviewSelectedItems: import('react').ForwardRefExoticComponent<PreviewSelectedItemsProps & import('react').RefAttributes<PreviewSelectedItemsRef>>;
|
|
8
|
+
declare const PreviewSelectedItems: React.FC<PreviewSelectedItemsProps>;
|
|
13
9
|
export default PreviewSelectedItems;
|
|
@@ -199,8 +199,10 @@ type EntitySelectorProps = {
|
|
|
199
199
|
hasDeptDock?: boolean;
|
|
200
200
|
/**
|
|
201
201
|
* @description 是否多选。仅在 type === 'deptusers' 时生效。
|
|
202
|
-
* 为 false 时整个 deptusers
|
|
203
|
-
*
|
|
202
|
+
* 为 false 时整个 deptusers 弹窗切换为单选模式:组织架构/成员/职位/角色/外部联系人,
|
|
203
|
+
* 以及「企业」「企业标签」「对接人」面板,均改为单选(radio + 选择即替换),
|
|
204
|
+
* 并隐藏底部「清空」与成员列表「全选」。
|
|
205
|
+
* 「企业」「企业标签」「对接人」不单独配置选择模式,统一跟随本字段,避免 browse/search 分裂。
|
|
204
206
|
* @default true
|
|
205
207
|
*/
|
|
206
208
|
multiple?: boolean;
|
|
@@ -209,6 +211,13 @@ type EntitySelectorProps = {
|
|
|
209
211
|
* 与 currentUsers 中任意一项身份重合时隐藏「流程发起人」Tab。
|
|
210
212
|
*/
|
|
211
213
|
flowCreator?: FlowCreator;
|
|
214
|
+
/**
|
|
215
|
+
* @description 成员黑名单 id 列表。仅 type === 'deptusers' 生效。
|
|
216
|
+
* 列表项的 `_id` / `id` / `dock_userid` 任一命中则不展示。
|
|
217
|
+
* 只过滤成员浏览/搜索列表,不隐藏 Tab,不影响已选回显与部门/职位/角色/企业等非成员实体。
|
|
218
|
+
* @default []
|
|
219
|
+
*/
|
|
220
|
+
excludedMemberIds?: string[];
|
|
212
221
|
};
|
|
213
222
|
/**
|
|
214
223
|
* @description transfer 模式流程发起人,由调用方传入的固定结构。
|
|
@@ -226,6 +235,30 @@ type FlowCreator = {
|
|
|
226
235
|
nickname: string;
|
|
227
236
|
status: number;
|
|
228
237
|
};
|
|
238
|
+
type CorpPanelMode = 'listAll' | 'labelCorpTree';
|
|
239
|
+
/**
|
|
240
|
+
* 「当前部门 / 当前部门及子部门」范围模式。
|
|
241
|
+
* 用于 deptChildEnable 部门范围选项、职位面板的部门范围模式等。
|
|
242
|
+
*/
|
|
243
|
+
type DeptRangeMode = 'current' | 'currentSub';
|
|
244
|
+
type CorpListItem = {
|
|
245
|
+
_id: string;
|
|
246
|
+
name: string;
|
|
247
|
+
label_id?: string;
|
|
248
|
+
noedit?: boolean;
|
|
249
|
+
};
|
|
250
|
+
type CorpPanelConfig = {
|
|
251
|
+
/** 默认 listAll */
|
|
252
|
+
mode?: CorpPanelMode;
|
|
253
|
+
/**
|
|
254
|
+
* 是否根据接口返回的 noedit 禁用不可编辑企业。
|
|
255
|
+
* - 未传 / false:忽略 noedit,全部企业可勾选(默认)
|
|
256
|
+
* - true:noedit===true 的企业展示但禁用,已选保留回显
|
|
257
|
+
* 仅 mode === 'listAll' 时生效(企业 flat 列表 + deptusers 全局搜索企业分组)。
|
|
258
|
+
* @default false
|
|
259
|
+
*/
|
|
260
|
+
respectNoEdit?: boolean;
|
|
261
|
+
};
|
|
229
262
|
/**
|
|
230
263
|
* @description deptusers 模式面板可见性开关。默认全 true(兼容现状),显式传 false 隐藏对应面板。
|
|
231
264
|
*/
|
|
@@ -238,8 +271,34 @@ type DeptUsersPanelConfig = {
|
|
|
238
271
|
positionEnable?: boolean;
|
|
239
272
|
/** 成员关系面板 */
|
|
240
273
|
relationEnable?: boolean;
|
|
274
|
+
/** 企业标签面板 */
|
|
275
|
+
corpCoopLabelEnable?: boolean;
|
|
276
|
+
/** 企业面板(corp Tab) */
|
|
277
|
+
corpEnable?: boolean;
|
|
278
|
+
corpPanel?: CorpPanelConfig;
|
|
279
|
+
/** 对接人面板(corpDept Tab):左 label_corp 树 + 右对接人列表,默认 false */
|
|
280
|
+
corpDeptEnable?: boolean;
|
|
241
281
|
/** 角色面板 */
|
|
242
282
|
roleEnable?: boolean;
|
|
283
|
+
/**
|
|
284
|
+
* 内部角色是否仅允许选择叶子节点(具体角色)。
|
|
285
|
+
* true:分组节点点击仅展开,叶子可勾选;布局降为 1–2 栏。
|
|
286
|
+
* false:可选角色分组范围 + 具体角色(树 + 范围选项,默认,兼容现状)。
|
|
287
|
+
* 仅 roleEnable 为 true 时生效;互联角色不受影响。
|
|
288
|
+
* @default false
|
|
289
|
+
*/
|
|
290
|
+
roleChildEnable?: boolean;
|
|
291
|
+
/**
|
|
292
|
+
* 组织架构面板「部门范围选择」模式。
|
|
293
|
+
* true:组织架构 Tab 降为两栏——左栏内部组织树(导航锚点,不可勾选),
|
|
294
|
+
* 右栏固定两项「当前部门」「当前部门和子部门」,选中值 type 统一 'departments',
|
|
295
|
+
* _id 用 `${deptId}-dept` / `${deptId}-deptSub` 区分;强制只走内部数据、隐藏内部/外部切换。
|
|
296
|
+
* false(默认):组织架构 Tab 保持现状(可直接勾选的内部/外部组织树)。
|
|
297
|
+
* 注意:语义与 roleChildEnable 相反(roleChildEnable:true 去掉范围选项,本字段:true 增加范围选项)。
|
|
298
|
+
* 仅 organizationEnable 为 true 时生效。
|
|
299
|
+
* @default false
|
|
300
|
+
*/
|
|
301
|
+
deptChildEnable?: boolean;
|
|
243
302
|
/** 外部联系人面板 */
|
|
244
303
|
externalContactEnable?: boolean;
|
|
245
304
|
/** 外部联系人分组(外部联系人面板内的分组列表) */
|
|
@@ -248,4 +307,4 @@ type DeptUsersPanelConfig = {
|
|
|
248
307
|
outsiderMemberEnable?: boolean;
|
|
249
308
|
};
|
|
250
309
|
export { DEPARTMENT_PANEL_REQUEST_GUARD_REASON, MEMBER_PANEL_REQUEST_GUARD_REASON };
|
|
251
|
-
export type { SelectorType, RequestContext, MemberSearchLimit, SelectorLimits, DepartmentSelectableRange, CurrentContext, WidgetLimit, WidgetDepartmentArrayLimit, WidgetAttr, DeptRelyLimitContext, OnRequestRelyLimit, MemberPanelRequestGuardReason, MemberPanelRequestGuard, DepartmentPanelRequestGuardReason, DepartmentPanelRequestGuard, MemberPanelVisibility, EntitySelectorProps, FlowCreator, DeptUsersPanelConfig, };
|
|
310
|
+
export type { SelectorType, RequestContext, MemberSearchLimit, SelectorLimits, DepartmentSelectableRange, CurrentContext, WidgetLimit, WidgetDepartmentArrayLimit, WidgetAttr, DeptRelyLimitContext, OnRequestRelyLimit, MemberPanelRequestGuardReason, MemberPanelRequestGuard, DepartmentPanelRequestGuardReason, DepartmentPanelRequestGuard, MemberPanelVisibility, EntitySelectorProps, FlowCreator, DeptUsersPanelConfig, CorpPanelMode, DeptRangeMode, CorpListItem, CorpPanelConfig, };
|
|
@@ -28,8 +28,41 @@ declare const ELLIPSIS_BUTTON_WIDTH = 110;
|
|
|
28
28
|
declare const TWO_LINE_HEIGHT = 68;
|
|
29
29
|
declare const MIN_LINE_HEIGHT = 30;
|
|
30
30
|
declare const GAP_WIDTH = 8;
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
/** scroll-gutter padding(10+10) + body border(1+1),与 SelectionArea.module.scss 对齐 */
|
|
32
|
+
declare const SELECTION_AREA_CHROME_HEIGHT = 22;
|
|
33
|
+
declare const getSelectionAreaCollapsedWrapperHeight: (contentHeight: number) => number;
|
|
34
|
+
declare const PLACEHOLDER_HEIGHT: number;
|
|
35
|
+
/** SelectionArea 展开/收起统一动画参数;根节点通过 getSelectionAreaCssVariables 注入 CSS 变量供 SCSS 使用 */
|
|
36
|
+
declare const SELECTION_AREA_ANIMATION: {
|
|
37
|
+
durationMs: number;
|
|
38
|
+
durationSec: number;
|
|
39
|
+
ease: readonly [0.4, 0, 0.2, 1];
|
|
40
|
+
easeCss: string;
|
|
41
|
+
};
|
|
42
|
+
declare const SELECTION_AREA_TRANSITION: {
|
|
43
|
+
duration: number;
|
|
44
|
+
ease: readonly [0.4, 0, 0.2, 1];
|
|
45
|
+
};
|
|
46
|
+
declare const SELECTION_AREA_TAG_MOTION: {
|
|
47
|
+
initial: {
|
|
48
|
+
opacity: number;
|
|
49
|
+
y: number;
|
|
50
|
+
};
|
|
51
|
+
animate: {
|
|
52
|
+
opacity: number;
|
|
53
|
+
y: number;
|
|
54
|
+
};
|
|
55
|
+
exit: {
|
|
56
|
+
opacity: number;
|
|
57
|
+
y: number;
|
|
58
|
+
};
|
|
59
|
+
transition: {
|
|
60
|
+
duration: number;
|
|
61
|
+
ease: readonly [0.4, 0, 0.2, 1];
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
declare const getSelectionAreaCssVariables: () => Record<string, string>;
|
|
65
|
+
export { ELLIPSIS_BUTTON_WIDTH, TWO_LINE_HEIGHT, MIN_LINE_HEIGHT, GAP_WIDTH, SELECTION_AREA_CHROME_HEIGHT, PLACEHOLDER_HEIGHT, SELECTION_AREA_ANIMATION, SELECTION_AREA_TRANSITION, SELECTION_AREA_TAG_MOTION, getSelectionAreaCollapsedWrapperHeight, getSelectionAreaCssVariables, };
|
|
33
66
|
export { Entity };
|
|
34
67
|
/**
|
|
35
68
|
* @deprecated 选中项图标已改为 type 驱动。onChange/onConfirm 仍会双写 iconType 以兼容旧消费方。
|
|
@@ -40,7 +73,7 @@ declare const IconType: {
|
|
|
40
73
|
readonly MEMBER: "member";
|
|
41
74
|
/** 部门(内部/对接部门,TagIcon 部门图标) */
|
|
42
75
|
readonly DEPARTMENT: "department";
|
|
43
|
-
/**
|
|
76
|
+
/** 职位 */
|
|
44
77
|
readonly POSITION: "position";
|
|
45
78
|
/** 角色(含角色组/对接角色) */
|
|
46
79
|
readonly ROLE: "role";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CorpListItem } from '../types/selector';
|
|
2
|
+
declare const isCorpNoEdit: (item: Pick<CorpListItem, "noedit">) => boolean;
|
|
3
|
+
/**
|
|
4
|
+
* 根据 respectNoEdit 开关判断企业项是否应被禁用。
|
|
5
|
+
* respectNoEdit=false(默认)时一律返回 false,忽略接口 noedit 字段。
|
|
6
|
+
*/
|
|
7
|
+
declare const resolveCorpItemDisabled: (item: Pick<CorpListItem, "noedit">, respectNoEdit: boolean) => boolean;
|
|
8
|
+
/**
|
|
9
|
+
* 取可编辑企业子集(供交互层使用,不用于展示层)。
|
|
10
|
+
* respectNoEdit=false(默认)时返回完整 list,不做过滤。
|
|
11
|
+
*/
|
|
12
|
+
declare const getEditableCorpList: (list?: CorpListItem[], respectNoEdit?: boolean) => CorpListItem[];
|
|
13
|
+
export { isCorpNoEdit, resolveCorpItemDisabled, getEditableCorpList };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 部门标识 / 名称抽取与「首个可选部门」查找。
|
|
3
|
+
* 后端保证 department._id 为 string,无需 String() 转换。
|
|
4
|
+
*/
|
|
5
|
+
export declare const getDepartmentId: (department?: {
|
|
6
|
+
_id?: string | null;
|
|
7
|
+
} | null) => string;
|
|
8
|
+
export declare const getDepartmentName: (department?: {
|
|
9
|
+
name?: unknown;
|
|
10
|
+
}) => string;
|
|
11
|
+
export declare const findFirstSelectableDepartment: <T extends {
|
|
12
|
+
_id?: string | null;
|
|
13
|
+
name?: unknown;
|
|
14
|
+
}>(departments: T[]) => T | undefined;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ENTITY_ITEM_TYPE } from './entityItemType';
|
|
3
|
+
import { RequestContext } from '../types/selector';
|
|
4
|
+
type CorpDeptSearchGroup = {
|
|
5
|
+
title: string;
|
|
6
|
+
value: string;
|
|
7
|
+
children: Array<{
|
|
8
|
+
_id: string | number;
|
|
9
|
+
value: string | number;
|
|
10
|
+
name: string;
|
|
11
|
+
type: typeof ENTITY_ITEM_TYPE.USER;
|
|
12
|
+
owner_corpid: string;
|
|
13
|
+
title: ReactNode;
|
|
14
|
+
}>;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* 对接人 Tab 全局搜索分组:走 department/member/list + filter 服务端搜索,
|
|
18
|
+
* 忽略 users,将 dock_user_list 各分组 userList 合并为对接人结果。
|
|
19
|
+
* owner_corpid 取值:API 返回优先,否则回退分组 dockCorpid。
|
|
20
|
+
*/
|
|
21
|
+
declare function useDeptUsersCorpDeptSearchGroup({ enabled, requestContext, hasDock, wd, groupTitle, }: {
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
requestContext: RequestContext;
|
|
24
|
+
hasDock?: boolean;
|
|
25
|
+
wd?: string;
|
|
26
|
+
groupTitle: string;
|
|
27
|
+
}): {
|
|
28
|
+
searchGroup: CorpDeptSearchGroup | null;
|
|
29
|
+
loading: boolean;
|
|
30
|
+
};
|
|
31
|
+
export { useDeptUsersCorpDeptSearchGroup };
|