@teamix/pro 1.3.2 → 1.3.5
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/pro.css +1 -1
- package/dist/pro.js +13959 -2353
- package/dist/pro.min.css +1 -1
- package/dist/pro.min.js +1 -1
- package/dist/pro.min.js.LICENSE.txt +9 -0
- package/es/actions/dialog-form.js +8 -5
- package/es/actions/dialog.js +2 -4
- package/es/form/Components/LightFilter/index.d.ts +1 -0
- package/es/form/Components/LightFilter/index.js +9 -6
- package/es/form/Filter/LightFilter.js +13 -3
- package/es/form/Filter/SimpleFilter.js +1 -1
- package/es/form/Filter/index.js +44 -10
- package/es/form/ProForm/useFormDisplayValues.js +2 -2
- package/es/form/SchemaForm/adapterDecorator.js +1 -1
- package/es/form/SchemaForm/adapterType.js +2 -5
- package/es/form/SchemaForm/index.js +27 -12
- package/es/form/SchemaForm/initializeDataSource.d.ts +1 -0
- package/es/form/SchemaForm/initializeDataSource.js +7 -1
- package/es/form/SchemaForm/initializeSelectTable.d.ts +3 -0
- package/es/form/SchemaForm/initializeSelectTable.js +38 -0
- package/es/form/SchemaForm/reactions.d.ts +1 -1
- package/es/form/SchemaForm/reactions.js +20 -16
- package/es/form/docs/ActionResponse.d.ts +7 -0
- package/es/form/docs/ActionResponse.js +11 -0
- package/es/form/docs/ActionResponse.less +25 -0
- package/es/form/index.d.ts +1 -0
- package/es/form/typing.d.ts +6 -1
- package/es/form/utils.js +13 -4
- package/es/index.d.ts +4 -2
- package/es/index.js +5 -5
- package/es/info/components/ProInfoItem/index.js +6 -2
- package/es/info/components/ProInfoItem/index.scss +3 -0
- package/es/info/components/baseInfo/index.js +2 -1
- package/es/info/typing.d.ts +2 -0
- package/es/info/utils/index.d.ts +8 -0
- package/es/info/utils/index.js +28 -1
- package/es/page-header/index.d.ts +3 -1
- package/es/page-header/index.js +12 -3
- package/es/sidebar/components/sidebar-container/index.js +114 -9
- package/es/sidebar/components/sidebar-container/index.scss +53 -5
- package/es/sidebar/components/tree/index.d.ts +2 -0
- package/es/sidebar/components/tree/index.js +222 -76
- package/es/sidebar/components/tree/index.scss +10 -0
- package/es/sidebar/components/tree-node/componnets/HoverTooltip/index.d.ts +15 -0
- package/es/sidebar/components/tree-node/componnets/HoverTooltip/index.js +62 -0
- package/es/sidebar/components/tree-node/componnets/HoverTooltip/index.scss +7 -0
- package/es/sidebar/components/tree-node/componnets/IconAction/index.d.ts +12 -0
- package/es/sidebar/components/tree-node/componnets/IconAction/index.js +105 -0
- package/es/sidebar/components/tree-node/componnets/IconAction/index.scss +7 -0
- package/es/sidebar/components/tree-node/componnets/IconSwitch/index.d.ts +23 -0
- package/es/sidebar/components/tree-node/componnets/IconSwitch/index.js +73 -0
- package/es/sidebar/components/tree-node/componnets/IconSwitch/index.scss +7 -0
- package/es/sidebar/components/tree-node/index.d.ts +7 -0
- package/es/sidebar/components/tree-node/index.js +225 -0
- package/es/sidebar/components/tree-node/index.scss +58 -0
- package/es/sidebar/index.d.ts +2 -0
- package/es/sidebar/index.js +147 -12
- package/es/sidebar/index.scss +24 -1
- package/es/sidebar/typing.d.ts +83 -13
- package/es/sidebar/utils/action-ref.d.ts +3 -0
- package/es/sidebar/utils/action-ref.js +15 -0
- package/es/sidebar/utils/index.d.ts +71 -0
- package/es/sidebar/utils/index.js +228 -0
- package/es/table/components/ToolBar/index.scss +1 -1
- package/es/table/index.scss +10 -0
- package/lib/actions/dialog-form.js +8 -5
- package/lib/actions/dialog.js +1 -3
- package/lib/form/Components/LightFilter/index.d.ts +1 -0
- package/lib/form/Components/LightFilter/index.js +9 -6
- package/lib/form/Filter/LightFilter.js +13 -3
- package/lib/form/Filter/SimpleFilter.js +1 -1
- package/lib/form/Filter/index.js +44 -10
- package/lib/form/ProForm/useFormDisplayValues.js +1 -1
- package/lib/form/SchemaForm/adapterDecorator.js +1 -1
- package/lib/form/SchemaForm/adapterType.js +2 -5
- package/lib/form/SchemaForm/index.js +28 -11
- package/lib/form/SchemaForm/initializeDataSource.d.ts +1 -0
- package/lib/form/SchemaForm/initializeDataSource.js +7 -1
- package/lib/form/SchemaForm/initializeSelectTable.d.ts +3 -0
- package/lib/form/SchemaForm/initializeSelectTable.js +45 -0
- package/lib/form/SchemaForm/reactions.d.ts +1 -1
- package/lib/form/SchemaForm/reactions.js +20 -16
- package/lib/form/docs/ActionResponse.d.ts +7 -0
- package/lib/form/docs/ActionResponse.js +24 -0
- package/lib/form/docs/ActionResponse.less +25 -0
- package/lib/form/index.d.ts +1 -0
- package/lib/form/typing.d.ts +6 -1
- package/lib/form/utils.js +13 -4
- package/lib/index.d.ts +4 -2
- package/lib/index.js +22 -2
- package/lib/info/components/ProInfoItem/index.js +6 -2
- package/lib/info/components/ProInfoItem/index.scss +3 -0
- package/lib/info/components/baseInfo/index.js +1 -0
- package/lib/info/typing.d.ts +2 -0
- package/lib/info/utils/index.d.ts +8 -0
- package/lib/info/utils/index.js +32 -1
- package/lib/page-header/index.d.ts +3 -1
- package/lib/page-header/index.js +11 -2
- package/lib/sidebar/components/sidebar-container/index.js +120 -8
- package/lib/sidebar/components/sidebar-container/index.scss +53 -5
- package/lib/sidebar/components/tree/index.d.ts +2 -0
- package/lib/sidebar/components/tree/index.js +230 -76
- package/lib/sidebar/components/tree/index.scss +10 -0
- package/lib/sidebar/components/tree-node/componnets/HoverTooltip/index.d.ts +15 -0
- package/lib/sidebar/components/tree-node/componnets/HoverTooltip/index.js +80 -0
- package/lib/sidebar/components/tree-node/componnets/HoverTooltip/index.scss +7 -0
- package/lib/sidebar/components/tree-node/componnets/IconAction/index.d.ts +12 -0
- package/lib/sidebar/components/tree-node/componnets/IconAction/index.js +127 -0
- package/lib/sidebar/components/tree-node/componnets/IconAction/index.scss +7 -0
- package/lib/sidebar/components/tree-node/componnets/IconSwitch/index.d.ts +23 -0
- package/lib/sidebar/components/tree-node/componnets/IconSwitch/index.js +94 -0
- package/lib/sidebar/components/tree-node/componnets/IconSwitch/index.scss +7 -0
- package/lib/sidebar/components/tree-node/index.d.ts +7 -0
- package/lib/sidebar/components/tree-node/index.js +252 -0
- package/lib/sidebar/components/tree-node/index.scss +58 -0
- package/lib/sidebar/index.d.ts +2 -0
- package/lib/sidebar/index.js +173 -10
- package/lib/sidebar/index.scss +24 -1
- package/lib/sidebar/typing.d.ts +83 -13
- package/lib/sidebar/utils/action-ref.d.ts +3 -0
- package/lib/sidebar/utils/action-ref.js +22 -0
- package/lib/sidebar/utils/index.d.ts +71 -0
- package/lib/sidebar/utils/index.js +247 -0
- package/lib/table/components/ToolBar/index.scss +1 -1
- package/lib/table/index.scss +10 -0
- package/package.json +4 -4
package/es/sidebar/typing.d.ts
CHANGED
@@ -1,38 +1,66 @@
|
|
1
1
|
/// <reference types="react" />
|
2
2
|
import { MessageProps } from '@alifd/next/types/message';
|
3
3
|
import { TreeProps } from '@alifd/next/types/tree';
|
4
|
-
import {
|
4
|
+
import { CommonRequestConfig, ProTagItem } from '@teamix/utils';
|
5
|
+
import { ProActionConfig, ProCardProps, ProFieldProps, ProFieldRenderProps, ProFieldType } from '..';
|
5
6
|
/** ProSidebar 定义 */
|
6
7
|
export declare type ProSidebarProps = {
|
7
8
|
/** 数据源 */
|
8
9
|
dataSource?: ProSidebarDataSource;
|
10
|
+
/** 点击的节点 */
|
11
|
+
selectedKeys?: TreeProps['selectedKeys'];
|
12
|
+
/** 选中的节点 */
|
13
|
+
checkedKeys?: TreeProps['checkedKeys'];
|
9
14
|
/** 节点点击回调 */
|
10
15
|
onSelect?: TreeProps['onSelect'];
|
16
|
+
/** 节点选中回调 */
|
17
|
+
onCheck?: TreeProps['onCheck'];
|
11
18
|
/** 树配置 */
|
12
19
|
treeProps?: TreeProps;
|
13
20
|
/** 卡片配置 */
|
14
21
|
cardProps?: ProCardProps;
|
15
|
-
|
22
|
+
/** 显示数量 */
|
23
|
+
showExtraNumber?: boolean;
|
24
|
+
/** actionRef */
|
25
|
+
actionRef?: React.MutableRefObject<ProSidebarActionType | undefined>;
|
26
|
+
/** 渲染树节点之前的回调 dataSource 变动时调用 */
|
27
|
+
beforeRenderNode?: (item: ProSidebarDataSourceItem, level: number, dataSource: ProSidebarDataSource) => ProSidebarDataSourceItem;
|
28
|
+
/** 监听渲染树节点之前的事件 当节点状态改变、dataSource 变动时调用 */
|
29
|
+
onBeforeRenderNodeEvent?: (item: ProSidebarDataSourceItem, checkedKeys: TreeProps['checkedKeys'], selectedKeys: TreeProps['selectedKeys'], dataSource: ProSidebarDataSource) => ProSidebarDataSourceItem;
|
30
|
+
} & Omit<React.HTMLAttributes<HTMLElement>, 'onSelect'> & Omit<ProSidebarContainerProps, 'onSelect'> & ProSidebarRequestProps;
|
16
31
|
/** 数据源定义 */
|
17
32
|
export declare type ProSidebarDataSource = ProSidebarDataSourceItem[];
|
18
33
|
export declare type ProSidebarDataSourceItem = {
|
19
34
|
/** 展示值 */
|
20
|
-
label?:
|
35
|
+
label?: string;
|
21
36
|
/** 绑定值 */
|
22
37
|
value?: any;
|
23
|
-
/** icon */
|
24
|
-
icon?: React.ReactNode;
|
25
38
|
/** 标签 */
|
26
|
-
tag?:
|
39
|
+
tag?: ProTagItem;
|
27
40
|
/** 右侧操作、状态区 */
|
28
|
-
extra?:
|
41
|
+
extra?: ProSidebarExtraProps;
|
29
42
|
/** 子项 */
|
30
43
|
children?: ProSidebarDataSourceItem[];
|
44
|
+
/** label 类型 对应 ProFieldType */
|
45
|
+
valueType?: ProFieldType;
|
46
|
+
/** 渲染 label 的 render 对应 ProFieldRenderProps */
|
47
|
+
render?: ProFieldRenderProps;
|
48
|
+
/** ProField 的其他配置项 */
|
49
|
+
fieldProps?: ProFieldProps;
|
31
50
|
};
|
32
|
-
/**
|
33
|
-
export declare type
|
34
|
-
|
35
|
-
|
51
|
+
/** 单项 extra 配置项 */
|
52
|
+
export declare type ProSidebarExtraProps = React.ReactNode | (ProSidebarExtraPropsItem | React.ReactNode)[];
|
53
|
+
export declare type ProSidebarExtraPropsItem = {
|
54
|
+
/** 相应功能项 */
|
55
|
+
type: 'action' | 'iconSwitch' | 'iconAction' | 'custom';
|
56
|
+
/** action 相应配置 */
|
57
|
+
action: ProActionConfig;
|
58
|
+
/** 相应配置 */
|
59
|
+
props: any;
|
60
|
+
/** 是否 hover 显示 */
|
61
|
+
hover?: boolean;
|
62
|
+
/** 自定义渲染 仅在 custom 有效 */
|
63
|
+
trigger?: any;
|
36
64
|
};
|
37
65
|
/** sidebar 容器定义 */
|
38
66
|
export declare type ProSidebarContainerProps = {
|
@@ -53,12 +81,54 @@ export declare type ProSidebarContainerProps = {
|
|
53
81
|
customMessage?: React.ReactNode;
|
54
82
|
/** 消息通知区域的其他参数 */
|
55
83
|
messageProps?: MessageProps;
|
84
|
+
/** 滚动区域 仅在使用 ProPageContainer 时有效 */
|
85
|
+
scrollArea?: 'all' | 'tree';
|
86
|
+
/** 是否显示展开全部 */
|
87
|
+
showExpandAll?: boolean;
|
88
|
+
/** 是否显示展开层级 */
|
89
|
+
showExpandLevel?: boolean;
|
90
|
+
/** 展开全部变化回调 */
|
91
|
+
onExpandAllChange?: (state: boolean) => void;
|
92
|
+
/** 展开层级变化回调 */
|
93
|
+
onExpandLevelChange?: (state: number) => void;
|
94
|
+
/** 展开层级 层级 */
|
95
|
+
expandLevel?: number;
|
96
|
+
/** 列表 or tree */
|
97
|
+
isTree?: boolean;
|
56
98
|
} & ProCardProps;
|
57
99
|
/** ProSidebarTree 内容定义 */
|
58
100
|
export declare type ProSidebarTreeProps = {
|
59
101
|
dataSource?: ProSidebarDataSource;
|
60
102
|
/** 搜索过滤关键词 */
|
61
103
|
searchKey?: string;
|
62
|
-
/**
|
63
|
-
|
104
|
+
/** 显示数量 */
|
105
|
+
showExtraNumber?: ProSidebarProps['showExtraNumber'];
|
106
|
+
/** actionRef */
|
107
|
+
actionRef: React.MutableRefObject<ProSidebarActionType | undefined>;
|
108
|
+
/** 渲染树节点之前的回调 */
|
109
|
+
onBeforeRenderNodeEvent?: ProSidebarProps['onBeforeRenderNodeEvent'];
|
110
|
+
/** 渲染树节点之前的回调 dataSource 变动时调用 */
|
111
|
+
beforeRenderNode?: ProSidebarProps['beforeRenderNode'];
|
112
|
+
/** 展开全部 */
|
113
|
+
expandAll?: boolean;
|
114
|
+
/** 展开节点层级 */
|
115
|
+
expandLevel?: number;
|
116
|
+
/** dataSource 变化的回调 */
|
117
|
+
onDataSourceChange?: (dataSource: ProSidebarDataSource) => void;
|
64
118
|
} & TreeProps;
|
119
|
+
/** ProSidebarTreeNode 内容定义 */
|
120
|
+
export declare type ProSidebarTreeNodeProps = {
|
121
|
+
dataSource?: ProSidebarDataSource;
|
122
|
+
};
|
123
|
+
/** ProSidebar ActionRef 定义 */
|
124
|
+
export declare type ProSidebarActionType = {
|
125
|
+
/** 设置树节点 */
|
126
|
+
setTreeNode?: (treeNode: ProSidebarDataSourceItem) => void;
|
127
|
+
/** 刷新 */
|
128
|
+
refresh?: () => void;
|
129
|
+
};
|
130
|
+
/** ProSidebar 请求相关定义 */
|
131
|
+
export declare type ProSidebarRequestProps = {
|
132
|
+
/** 请求地址 */
|
133
|
+
url?: string;
|
134
|
+
} & Omit<CommonRequestConfig, 'url'>;
|
@@ -0,0 +1,15 @@
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
2
|
+
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
4
|
+
|
5
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
6
|
+
|
7
|
+
export function useActionType(ref, action) {
|
8
|
+
var _ref$current;
|
9
|
+
|
10
|
+
var oldActions = (_ref$current = ref.current) !== null && _ref$current !== void 0 ? _ref$current : {}; // 合并自定义事件
|
11
|
+
|
12
|
+
var userAction = _objectSpread(_objectSpread({}, oldActions), action);
|
13
|
+
|
14
|
+
ref.current = userAction;
|
15
|
+
}
|
@@ -0,0 +1,71 @@
|
|
1
|
+
/**
|
2
|
+
* 深度遍历节点
|
3
|
+
* @param data 数据
|
4
|
+
* @param func 处理方法
|
5
|
+
* @param aliasMap 标识
|
6
|
+
* @param level 深度
|
7
|
+
*/
|
8
|
+
export declare function loop<T>(data: T[], func: any, aliasMap?: {
|
9
|
+
children: string;
|
10
|
+
}, level?: number): void;
|
11
|
+
/**
|
12
|
+
* 深度遍历并查找节点(只保留二级路径)
|
13
|
+
* @param data 数据
|
14
|
+
* @param predicate 条件
|
15
|
+
* @param aliasMap 标识
|
16
|
+
* @returns
|
17
|
+
*/
|
18
|
+
export declare function findNodeWithoutPath<T>(data: any[], predicate: (node: T) => boolean, aliasMap?: {
|
19
|
+
children: string;
|
20
|
+
}): any;
|
21
|
+
/**
|
22
|
+
* 深度遍历并查找节点(保留全部路径)
|
23
|
+
* @param data 数据
|
24
|
+
* @param predicate 条件
|
25
|
+
* @param aliasMap 标识
|
26
|
+
* @returns
|
27
|
+
*/
|
28
|
+
export declare function findNodeWithPath<T>(data: T[], predicate: (node: T) => boolean, aliasMap?: {
|
29
|
+
children: string;
|
30
|
+
}): T[];
|
31
|
+
/**
|
32
|
+
* 获取树所有节点 key
|
33
|
+
* @param data 数据
|
34
|
+
* @param aliasMap 标识
|
35
|
+
* @returns
|
36
|
+
*/
|
37
|
+
export declare function getAllNodeKey<T>(data: T[], aliasMap?: {
|
38
|
+
key: string;
|
39
|
+
children: string;
|
40
|
+
}): any[];
|
41
|
+
/**
|
42
|
+
* 获取当前节点的层级
|
43
|
+
* @param data 数据
|
44
|
+
* @param value 需要获取层级的 key
|
45
|
+
* @param aliasMap 标识
|
46
|
+
* @returns
|
47
|
+
*/
|
48
|
+
export declare function getTreeNodeLevel(data: any[], value: any, aliasMap?: {
|
49
|
+
key: string;
|
50
|
+
children: string;
|
51
|
+
}): number;
|
52
|
+
/**
|
53
|
+
* 获取树的层级
|
54
|
+
* @param data 数据
|
55
|
+
* @param aliasMap 标识
|
56
|
+
* @returns
|
57
|
+
*/
|
58
|
+
export declare function getTreeLevel(data: any[], aliasMap?: {
|
59
|
+
children: string;
|
60
|
+
}): number;
|
61
|
+
/**
|
62
|
+
* 获取树层级对应的所有 key
|
63
|
+
* @param data
|
64
|
+
* @param level
|
65
|
+
* @param aliasMap
|
66
|
+
* @returns
|
67
|
+
*/
|
68
|
+
export declare function getTreeLevelKey(data: any[], level: number, aliasMap?: {
|
69
|
+
key: string;
|
70
|
+
children: string;
|
71
|
+
}): any[];
|
@@ -0,0 +1,228 @@
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
2
|
+
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
4
|
+
|
5
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
6
|
+
|
7
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
8
|
+
|
9
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
10
|
+
|
11
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
12
|
+
|
13
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
14
|
+
|
15
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
16
|
+
|
17
|
+
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); }
|
18
|
+
|
19
|
+
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; }
|
20
|
+
|
21
|
+
/**
|
22
|
+
* 深度遍历节点
|
23
|
+
* @param data 数据
|
24
|
+
* @param func 处理方法
|
25
|
+
* @param aliasMap 标识
|
26
|
+
* @param level 深度
|
27
|
+
*/
|
28
|
+
export function loop(data, func, aliasMap) {
|
29
|
+
var level = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
|
30
|
+
|
31
|
+
var _ref = aliasMap !== null && aliasMap !== void 0 ? aliasMap : {},
|
32
|
+
_ref$children = _ref.children,
|
33
|
+
children = _ref$children === void 0 ? 'children' : _ref$children;
|
34
|
+
|
35
|
+
if (data && data.length > 0) {
|
36
|
+
data.forEach(function (item) {
|
37
|
+
func(item, level, data);
|
38
|
+
|
39
|
+
if (Array.isArray(item[children])) {
|
40
|
+
loop(item[children], func, {
|
41
|
+
children: children
|
42
|
+
}, level + 1);
|
43
|
+
}
|
44
|
+
});
|
45
|
+
}
|
46
|
+
}
|
47
|
+
/**
|
48
|
+
* 深度遍历并查找节点(只保留二级路径)
|
49
|
+
* @param data 数据
|
50
|
+
* @param predicate 条件
|
51
|
+
* @param aliasMap 标识
|
52
|
+
* @returns
|
53
|
+
*/
|
54
|
+
|
55
|
+
export function findNodeWithoutPath(data, predicate, aliasMap) {
|
56
|
+
var _ref2 = aliasMap !== null && aliasMap !== void 0 ? aliasMap : {},
|
57
|
+
_ref2$children = _ref2.children,
|
58
|
+
children = _ref2$children === void 0 ? 'children' : _ref2$children; // 如果已经没有节点了,结束递归
|
59
|
+
|
60
|
+
|
61
|
+
if (!(data && data.length)) {
|
62
|
+
return [];
|
63
|
+
}
|
64
|
+
|
65
|
+
var newChildren = [];
|
66
|
+
|
67
|
+
var _iterator = _createForOfIteratorHelper(data),
|
68
|
+
_step;
|
69
|
+
|
70
|
+
try {
|
71
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
72
|
+
var node = _step.value;
|
73
|
+
|
74
|
+
if (predicate(node)) {
|
75
|
+
var _node$children;
|
76
|
+
|
77
|
+
// 如果节点符合条件,直接加入新的节点集
|
78
|
+
newChildren.push(node);
|
79
|
+
node.children = findNodeWithoutPath((_node$children = node[children]) !== null && _node$children !== void 0 ? _node$children : [], predicate);
|
80
|
+
} else {
|
81
|
+
var _node$children2;
|
82
|
+
|
83
|
+
// 如果当前节点不符合条件,递归过滤子节点,
|
84
|
+
// 把符合条件的子节点提升上来,并入新节点集
|
85
|
+
newChildren.push.apply(newChildren, _toConsumableArray(findNodeWithoutPath((_node$children2 = node[children]) !== null && _node$children2 !== void 0 ? _node$children2 : [], predicate)));
|
86
|
+
}
|
87
|
+
}
|
88
|
+
} catch (err) {
|
89
|
+
_iterator.e(err);
|
90
|
+
} finally {
|
91
|
+
_iterator.f();
|
92
|
+
}
|
93
|
+
|
94
|
+
return newChildren;
|
95
|
+
}
|
96
|
+
/**
|
97
|
+
* 深度遍历并查找节点(保留全部路径)
|
98
|
+
* @param data 数据
|
99
|
+
* @param predicate 条件
|
100
|
+
* @param aliasMap 标识
|
101
|
+
* @returns
|
102
|
+
*/
|
103
|
+
|
104
|
+
export function findNodeWithPath(data, predicate, aliasMap) {
|
105
|
+
var _ref3 = aliasMap !== null && aliasMap !== void 0 ? aliasMap : {},
|
106
|
+
_ref3$children = _ref3.children,
|
107
|
+
children = _ref3$children === void 0 ? 'children' : _ref3$children;
|
108
|
+
|
109
|
+
var getNodes = function getNodes(result, node) {
|
110
|
+
if (predicate(node)) {
|
111
|
+
result.push(node);
|
112
|
+
return result;
|
113
|
+
}
|
114
|
+
|
115
|
+
if (Array.isArray(node[children])) {
|
116
|
+
var nodes = node[children].reduce(getNodes, []);
|
117
|
+
|
118
|
+
if (nodes.length) {
|
119
|
+
result.push(_objectSpread(_objectSpread({}, node), {}, {
|
120
|
+
nodes: nodes
|
121
|
+
}));
|
122
|
+
}
|
123
|
+
}
|
124
|
+
|
125
|
+
return result;
|
126
|
+
};
|
127
|
+
|
128
|
+
return data.reduce(getNodes, []);
|
129
|
+
}
|
130
|
+
/**
|
131
|
+
* 获取树所有节点 key
|
132
|
+
* @param data 数据
|
133
|
+
* @param aliasMap 标识
|
134
|
+
* @returns
|
135
|
+
*/
|
136
|
+
|
137
|
+
export function getAllNodeKey(data, aliasMap) {
|
138
|
+
var _ref4 = aliasMap !== null && aliasMap !== void 0 ? aliasMap : {},
|
139
|
+
_ref4$key = _ref4.key,
|
140
|
+
key = _ref4$key === void 0 ? 'value' : _ref4$key,
|
141
|
+
_ref4$children = _ref4.children,
|
142
|
+
children = _ref4$children === void 0 ? 'children' : _ref4$children;
|
143
|
+
|
144
|
+
var keyList = [];
|
145
|
+
loop(data, function (node) {
|
146
|
+
keyList.push(node[key]);
|
147
|
+
}, {
|
148
|
+
children: children
|
149
|
+
});
|
150
|
+
return keyList;
|
151
|
+
}
|
152
|
+
/**
|
153
|
+
* 获取当前节点的层级
|
154
|
+
* @param data 数据
|
155
|
+
* @param value 需要获取层级的 key
|
156
|
+
* @param aliasMap 标识
|
157
|
+
* @returns
|
158
|
+
*/
|
159
|
+
|
160
|
+
export function getTreeNodeLevel(data, value, aliasMap) {
|
161
|
+
var _ref5 = aliasMap !== null && aliasMap !== void 0 ? aliasMap : {},
|
162
|
+
_ref5$key = _ref5.key,
|
163
|
+
key = _ref5$key === void 0 ? 'value' : _ref5$key,
|
164
|
+
_ref5$children = _ref5.children,
|
165
|
+
children = _ref5$children === void 0 ? 'children' : _ref5$children;
|
166
|
+
|
167
|
+
var result = 0;
|
168
|
+
loop(data, function (item, level) {
|
169
|
+
if (item[key] === value) {
|
170
|
+
result = level !== null && level !== void 0 ? level : 0;
|
171
|
+
}
|
172
|
+
}, {
|
173
|
+
children: children
|
174
|
+
});
|
175
|
+
return result;
|
176
|
+
}
|
177
|
+
/**
|
178
|
+
* 获取树的层级
|
179
|
+
* @param data 数据
|
180
|
+
* @param aliasMap 标识
|
181
|
+
* @returns
|
182
|
+
*/
|
183
|
+
|
184
|
+
export function getTreeLevel(data, aliasMap) {
|
185
|
+
var _ref6 = aliasMap !== null && aliasMap !== void 0 ? aliasMap : {},
|
186
|
+
_ref6$children = _ref6.children,
|
187
|
+
children = _ref6$children === void 0 ? 'children' : _ref6$children;
|
188
|
+
|
189
|
+
var result = 1;
|
190
|
+
loop(data, function (item, level) {
|
191
|
+
if (result < level) {
|
192
|
+
result = level;
|
193
|
+
}
|
194
|
+
|
195
|
+
if ('children' in item) {
|
196
|
+
result += 1;
|
197
|
+
}
|
198
|
+
}, {
|
199
|
+
children: children
|
200
|
+
});
|
201
|
+
return result;
|
202
|
+
}
|
203
|
+
/**
|
204
|
+
* 获取树层级对应的所有 key
|
205
|
+
* @param data
|
206
|
+
* @param level
|
207
|
+
* @param aliasMap
|
208
|
+
* @returns
|
209
|
+
*/
|
210
|
+
|
211
|
+
export function getTreeLevelKey(data, level, aliasMap) {
|
212
|
+
var _ref7 = aliasMap !== null && aliasMap !== void 0 ? aliasMap : {},
|
213
|
+
_ref7$key = _ref7.key,
|
214
|
+
key = _ref7$key === void 0 ? 'value' : _ref7$key,
|
215
|
+
_ref7$children = _ref7.children,
|
216
|
+
children = _ref7$children === void 0 ? 'children' : _ref7$children;
|
217
|
+
|
218
|
+
var result = []; // TODO 此处可做性能优化
|
219
|
+
|
220
|
+
loop(data, function (item, currentLevel) {
|
221
|
+
if (currentLevel + 1 <= level) {
|
222
|
+
result.push(item === null || item === void 0 ? void 0 : item[key]);
|
223
|
+
}
|
224
|
+
}, {
|
225
|
+
children: children
|
226
|
+
});
|
227
|
+
return result;
|
228
|
+
}
|
package/es/table/index.scss
CHANGED
@@ -124,4 +124,14 @@ $fullscreenPadding: 24px;
|
|
124
124
|
.next-form-preview.next-form-preview {
|
125
125
|
line-height: unset;
|
126
126
|
}
|
127
|
+
&-row {
|
128
|
+
.teamix-pro-field.teamix-pro-field-text .next-form-preview {
|
129
|
+
color: var(--table-row-color);
|
130
|
+
}
|
131
|
+
}
|
132
|
+
&-row.hovered {
|
133
|
+
.teamix-pro-field.teamix-pro-field-text .next-form-preview {
|
134
|
+
color: var(--table-row-hover-color);
|
135
|
+
}
|
136
|
+
}
|
127
137
|
}
|
@@ -23,7 +23,7 @@ var _dialog = _interopRequireDefault(require("./dialog"));
|
|
23
23
|
var _utils2 = require("./utils");
|
24
24
|
|
25
25
|
var _excluded = ["schema"],
|
26
|
-
_excluded2 = ["schema", "useFieldValuesForRequest", "initialValues", "initialRequest", "formProps", "size", "onFinish", "beforeRequest", "formRef"];
|
26
|
+
_excluded2 = ["schema", "useFieldValuesForRequest", "initialValues", "initialRequest", "formProps", "size", "onFinish", "beforeRequest", "formRef", "extendParams"];
|
27
27
|
|
28
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
29
29
|
|
@@ -168,6 +168,7 @@ function useDialogFormAction(action, context) {
|
|
168
168
|
_onFinish = action.onFinish,
|
169
169
|
propsBeforeRequest = action.beforeRequest,
|
170
170
|
propsFormRef = action.formRef,
|
171
|
+
propsExtendParams = action.extendParams,
|
171
172
|
others = _objectWithoutProperties(action, _excluded2);
|
172
173
|
|
173
174
|
var innerFormRef = /*#__PURE__*/(0, _react.createRef)();
|
@@ -188,10 +189,12 @@ function useDialogFormAction(action, context) {
|
|
188
189
|
formRef: propsFormRef
|
189
190
|
}, dialogFormProps));
|
190
191
|
},
|
191
|
-
extendParams: useFieldValuesForRequest ? '{{fields}}' :
|
192
|
+
extendParams: useFieldValuesForRequest ? ['{{fields}}', propsExtendParams] : propsExtendParams,
|
192
193
|
beforeRequest: function beforeRequest(context) {
|
193
194
|
return new Promise(function (resolve, reject) {
|
194
195
|
innerFormRef.current.validate().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
196
|
+
var _innerFormRef$current;
|
197
|
+
|
195
198
|
var beforeRequestContext, requestContext;
|
196
199
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
197
200
|
while (1) {
|
@@ -227,7 +230,7 @@ function useDialogFormAction(action, context) {
|
|
227
230
|
|
228
231
|
case 13:
|
229
232
|
requestContext = Object.assign({
|
230
|
-
fields: innerFormRef.current.values
|
233
|
+
fields: (_innerFormRef$current = innerFormRef.current) === null || _innerFormRef$current === void 0 ? void 0 : _innerFormRef$current.values
|
231
234
|
}, _typeof(beforeRequestContext) === 'object' ? beforeRequestContext : {});
|
232
235
|
resolve(requestContext);
|
233
236
|
|
@@ -243,9 +246,9 @@ function useDialogFormAction(action, context) {
|
|
243
246
|
});
|
244
247
|
},
|
245
248
|
onFinish: function onFinish() {
|
246
|
-
var _innerFormRef$
|
249
|
+
var _innerFormRef$current2;
|
247
250
|
|
248
|
-
_onFinish && _onFinish((_innerFormRef$
|
251
|
+
_onFinish && _onFinish((_innerFormRef$current2 = innerFormRef.current) === null || _innerFormRef$current2 === void 0 ? void 0 : _innerFormRef$current2.values);
|
249
252
|
}
|
250
253
|
}, others), context);
|
251
254
|
}
|
package/lib/actions/dialog.js
CHANGED
@@ -236,9 +236,7 @@ function useDialogAction(action, actionContext) {
|
|
236
236
|
var dialogContext = Object.assign({}, context, {
|
237
237
|
hide: hide
|
238
238
|
});
|
239
|
-
var dialogContent = Component ? /*#__PURE__*/_react.default.createElement(Component, _objectSpread({
|
240
|
-
key: (0, _utils.uuid)()
|
241
|
-
}, (0, _utils2.addContext)(componentProps, dialogContext))) : addContextForReactNode(content, dialogContext);
|
239
|
+
var dialogContent = Component ? /*#__PURE__*/_react.default.createElement(Component, _objectSpread({}, (0, _utils2.addContext)(componentProps, dialogContext))) : addContextForReactNode(content, dialogContext);
|
242
240
|
|
243
241
|
var quickShowProps = _objectSpread(_objectSpread((_objectSpread2 = {}, _defineProperty(_objectSpread2, "".concat(isPop ? 'onConfirm' : 'onOk'), onOk), _defineProperty(_objectSpread2, "title", addContextForReactNode(title, dialogContext)), _defineProperty(_objectSpread2, "content", /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, beforeContent && /*#__PURE__*/_react.default.createElement("div", {
|
244
242
|
className: "teamix-pro-dialog-before-content"
|
@@ -78,14 +78,16 @@ var useMain = function useMain(active) {
|
|
78
78
|
}; // 筛选项数据
|
79
79
|
|
80
80
|
|
81
|
-
var useFilterItems = function useFilterItems() {
|
81
|
+
var useFilterItems = function useFilterItems(filterValues) {
|
82
82
|
var schema = (0, _react2.useFieldSchema)();
|
83
83
|
var filterItems = [];
|
84
84
|
schema.mapProperties(function (schema, name) {
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
85
|
+
if (!filterValues || filterValues && filterValues.includes(schema.name)) {
|
86
|
+
filterItems.push({
|
87
|
+
label: schema.title,
|
88
|
+
value: schema.name
|
89
|
+
});
|
90
|
+
}
|
89
91
|
});
|
90
92
|
return filterItems;
|
91
93
|
}; // 是否输入框类型的组件
|
@@ -99,12 +101,13 @@ var isInputCategory = function isInputCategory(currentSchema) {
|
|
99
101
|
var LightFilter = (0, _react2.observer)(function (props) {
|
100
102
|
var _filterItems$, _main$;
|
101
103
|
|
102
|
-
var filterItems = useFilterItems();
|
103
104
|
var size = props.size,
|
104
105
|
defaultFilterValue = props.defaultFilterValue,
|
106
|
+
filterValues = props.filterValues,
|
105
107
|
onFilterChange = props.onFilterChange,
|
106
108
|
filterProps = props.filterProps,
|
107
109
|
buttonProps = props.buttonProps;
|
110
|
+
var filterItems = useFilterItems(filterValues);
|
108
111
|
|
109
112
|
var _useState = (0, _react.useState)(defaultFilterValue || ((_filterItems$ = filterItems[0]) === null || _filterItems$ === void 0 ? void 0 : _filterItems$.value)),
|
110
113
|
_useState2 = _slicedToArray(_useState, 2),
|
@@ -15,7 +15,7 @@ var _utils = require("@teamix/utils");
|
|
15
15
|
|
16
16
|
var _ProForm = _interopRequireDefault(require("../ProForm"));
|
17
17
|
|
18
|
-
var _excluded = ["form", "schema", "onSubmit", "onChange", "defaultFilterValue", "activeFilterValueRef"];
|
18
|
+
var _excluded = ["form", "schema", "onSubmit", "onChange", "defaultFilterValue", "filterValues", "activeFilterValueRef"];
|
19
19
|
|
20
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
21
21
|
|
@@ -44,6 +44,7 @@ var LightFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
44
44
|
onSubmit = props.onSubmit,
|
45
45
|
onChange = props.onChange,
|
46
46
|
defaultFilterValue = props.defaultFilterValue,
|
47
|
+
filterValues = props.filterValues,
|
47
48
|
activeFilterValueRef = props.activeFilterValueRef,
|
48
49
|
otherProps = _objectWithoutProperties(props, _excluded);
|
49
50
|
|
@@ -66,15 +67,24 @@ var LightFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
66
67
|
}, [form]); // 实际输出onFilter
|
67
68
|
|
68
69
|
var onFilter = (0, _react.useCallback)(function () {
|
70
|
+
var _Object$keys;
|
71
|
+
|
69
72
|
var key = filterValue.current;
|
70
|
-
var value = form.values[key];
|
71
|
-
|
73
|
+
var value = form.values[key]; // 删除旧值
|
74
|
+
|
75
|
+
(_Object$keys = Object.keys(form.values)) === null || _Object$keys === void 0 ? void 0 : _Object$keys.forEach(function (item) {
|
76
|
+
if (item !== key) {
|
77
|
+
form.setValuesIn(item, undefined);
|
78
|
+
}
|
79
|
+
});
|
80
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(_defineProperty({}, key, value), value, key);
|
72
81
|
}, [onChange]);
|
73
82
|
var LightSchema = (0, _react.useMemo)(function () {
|
74
83
|
return [{
|
75
84
|
component: 'LightFilter',
|
76
85
|
props: {
|
77
86
|
defaultFilterValue: defaultFilterValue,
|
87
|
+
filterValues: filterValues,
|
78
88
|
onFilterChange: onFilterChange,
|
79
89
|
buttonProps: {
|
80
90
|
onClick: onFilter
|
@@ -103,7 +103,7 @@ var SimpleFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
103
103
|
} else {
|
104
104
|
onChange === null || onChange === void 0 ? void 0 : onChange(values, name, value);
|
105
105
|
}
|
106
|
-
}, [searchName, searchValue.current]);
|
106
|
+
}, [onChange, searchName, searchValue.current]);
|
107
107
|
(0, _react.useEffect)(function () {
|
108
108
|
var _props$form$initialVa, _props$form$initialVa2;
|
109
109
|
|