@teamix/pro 1.2.20 → 1.2.24
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 +2138 -568
- package/dist/pro.min.css +1 -1
- package/dist/pro.min.js +1 -1
- package/es/actions/dialog.js +13 -23
- package/es/actions/index.d.ts +10 -0
- package/es/actions/index.js +11 -16
- package/es/form/Components/LightFilter/componentMap.js +2 -1
- package/es/form/Components/LightFilter/index.js +15 -3
- package/es/form/Components/SelectTable/index.d.ts +24 -0
- package/es/form/Components/SelectTable/index.js +135 -0
- package/es/form/Components/SelectTable/index.scss +28 -0
- package/es/form/Components/SelectTable/table.d.ts +6 -0
- package/es/form/Components/SelectTable/table.js +64 -0
- package/es/form/Filter/AdvancedFilter.js +1 -0
- package/es/form/Filter/index2.js +8 -8
- package/es/form/ProForm/index.js +5 -4
- package/es/form/ProForm/index.scss +37 -6
- package/es/form/ProForm/useFormDisplayValues.js +4 -2
- package/es/form/SchemaForm/index.js +16 -10
- package/es/form/SchemaForm/initializeDataSource.d.ts +2 -2
- package/es/form/SchemaForm/initializeDataSource.js +4 -9
- package/es/form/SchemaForm/initializeRequest.d.ts +2 -2
- package/es/form/SchemaForm/initializeRequest.js +4 -10
- package/es/form/SchemaForm/initializeRules.d.ts +7 -1
- package/es/form/SchemaForm/initializeRules.js +9 -13
- package/es/form/SchemaForm/reactions.d.ts +5 -5
- package/es/form/SchemaForm/reactions.js +27 -29
- package/es/form/global.scss +1 -0
- package/es/form/typing.d.ts +10 -1
- package/es/form/utils.d.ts +8 -7
- package/es/form/utils.js +5 -4
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/table/components/Filter/index.js +1 -0
- package/es/table/components/Layout/index.js +22 -12
- package/es/table/components/Pagination/index.d.ts +5 -1
- package/es/table/components/Pagination/index.js +179 -17
- package/es/table/components/Pagination/index.scss +55 -0
- package/es/table/components/ToolBar/FilterColumnIcon.js +24 -3
- package/es/table/components/ToolBar/index.scss +9 -4
- package/es/table/index.js +79 -26
- package/es/table/index.scss +5 -5
- package/es/table/typing.d.ts +9 -9
- package/es/table/utils/columnRender.js +2 -1
- package/es/table/utils/index.d.ts +7 -0
- package/es/table/utils/index.js +38 -4
- package/lib/actions/dialog.js +12 -22
- package/lib/actions/index.d.ts +10 -0
- package/lib/actions/index.js +11 -16
- package/lib/form/Components/LightFilter/componentMap.js +2 -1
- package/lib/form/Components/LightFilter/index.js +14 -3
- package/lib/form/Components/SelectTable/index.d.ts +24 -0
- package/lib/form/Components/SelectTable/index.js +157 -0
- package/lib/form/Components/SelectTable/index.scss +28 -0
- package/lib/form/Components/SelectTable/table.d.ts +6 -0
- package/lib/form/Components/SelectTable/table.js +76 -0
- package/lib/form/Filter/AdvancedFilter.js +1 -0
- package/lib/form/Filter/index2.js +9 -8
- package/lib/form/ProForm/index.js +5 -5
- package/lib/form/ProForm/index.scss +37 -6
- package/lib/form/ProForm/useFormDisplayValues.js +3 -1
- package/lib/form/SchemaForm/index.js +16 -9
- package/lib/form/SchemaForm/initializeDataSource.d.ts +2 -2
- package/lib/form/SchemaForm/initializeDataSource.js +4 -11
- package/lib/form/SchemaForm/initializeRequest.d.ts +2 -2
- package/lib/form/SchemaForm/initializeRequest.js +4 -11
- package/lib/form/SchemaForm/initializeRules.d.ts +7 -1
- package/lib/form/SchemaForm/initializeRules.js +9 -16
- package/lib/form/SchemaForm/reactions.d.ts +5 -5
- package/lib/form/SchemaForm/reactions.js +29 -31
- package/lib/form/global.scss +1 -0
- package/lib/form/typing.d.ts +10 -1
- package/lib/form/utils.d.ts +8 -7
- package/lib/form/utils.js +6 -5
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/table/components/Layout/index.js +21 -11
- package/lib/table/components/Pagination/index.d.ts +5 -1
- package/lib/table/components/Pagination/index.js +186 -17
- package/lib/table/components/Pagination/index.scss +55 -0
- package/lib/table/components/ToolBar/FilterColumnIcon.js +23 -2
- package/lib/table/components/ToolBar/index.scss +9 -4
- package/lib/table/index.js +79 -24
- package/lib/table/index.scss +5 -5
- package/lib/table/typing.d.ts +9 -9
- package/lib/table/utils/columnRender.js +2 -1
- package/lib/table/utils/index.d.ts +7 -0
- package/lib/table/utils/index.js +46 -4
- package/package.json +1 -1
package/es/table/typing.d.ts
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
*/
|
4
4
|
import { ColumnProps, TableProps } from '@alicloudfe/components/types/table';
|
5
5
|
import { ProFieldType, ProFieldRenderProps, ProFieldDataSourceItem } from '../field';
|
6
|
-
import {
|
6
|
+
import { QueryFilterProps } from '../form';
|
7
7
|
import { ProActionGroupProps, ProActionButtonProps } from '../actions';
|
8
8
|
import { PaginationProps } from '@alicloudfe/components/types/pagination';
|
9
9
|
import { HeaderProps as ProTableHeaderProps } from '@teamix/utils';
|
@@ -12,7 +12,7 @@ import React from 'react';
|
|
12
12
|
import type { Form as FormType } from '@formily/core';
|
13
13
|
declare type IFieldRenderProps = keyof ProFieldRenderProps;
|
14
14
|
/** 列record函数 */
|
15
|
-
declare type ProTableCellFunProp = (value: any, index: number, record: any) => any;
|
15
|
+
declare type ProTableCellFunProp = (value: any, index: number, record: any, ...others: any) => any;
|
16
16
|
declare type ITableCellRender = {
|
17
17
|
[key in IFieldRenderProps]?: ProFieldRenderProps[key] | ProTableCellFunProp;
|
18
18
|
} | ((...other: any) => React.ReactNode);
|
@@ -22,6 +22,7 @@ declare type TDataService = {
|
|
22
22
|
/** 表格数据 */
|
23
23
|
data?: any;
|
24
24
|
};
|
25
|
+
export declare type responsivePaginationType = 'mini' | 'small' | 'simple' | 'normal';
|
25
26
|
export declare type ProTableColumnProps = {
|
26
27
|
/**
|
27
28
|
* 会在 title 之后展示一个 icon,hover 之后提示一些信息
|
@@ -92,6 +93,8 @@ export declare type ProTableProps = {
|
|
92
93
|
paginationProps?: PaginationProps;
|
93
94
|
/** 是否显示翻页器 */
|
94
95
|
showPagination?: boolean;
|
96
|
+
/** 手动指定响应式翻页器的 type */
|
97
|
+
responsivePaginationType?: responsivePaginationType;
|
95
98
|
/** 是否使用内置的 rowSelection */
|
96
99
|
useRowSelection?: boolean;
|
97
100
|
/** 内置 rowSelection 变化时的回调 */
|
@@ -146,7 +149,7 @@ export declare type ProTableActionType = {
|
|
146
149
|
/** 全屏展示 */
|
147
150
|
fullScreen?: () => boolean;
|
148
151
|
/** 设置显示列 */
|
149
|
-
setColumn?: (newColumns: ProColumnProps[]) => void;
|
152
|
+
setColumn?: (newColumns: ProColumnProps[], update?: boolean) => void;
|
150
153
|
/** 设置表格大小 */
|
151
154
|
setSize?: (mode: 'small' | 'medium') => void;
|
152
155
|
/** 刷新表格 */
|
@@ -212,15 +215,12 @@ export declare type ProTableActionTypeState = {
|
|
212
215
|
[key: string]: any;
|
213
216
|
};
|
214
217
|
export declare type ProTableDataFilterProps = {
|
215
|
-
/** 展示形式 */
|
216
|
-
mode?: 'inline' | 'panel';
|
217
|
-
/** mode='panel' 时是否默认展开 */
|
218
|
-
expand?: boolean;
|
219
|
-
/** 搜索时是否传入值为undefined的参数,默认不传 */
|
220
218
|
searchUndefined?: boolean;
|
221
219
|
/** 搜索时是否传入值为空字符串的参数,默认不传 */
|
222
220
|
searchEmptyString?: boolean;
|
223
|
-
|
221
|
+
/** 自定义内容 */
|
222
|
+
content?: React.ReactNode;
|
223
|
+
} & QueryFilterProps;
|
224
224
|
export declare type dataFilterProps = ProTableDataFilterProps;
|
225
225
|
export declare type ProTableTopAreaProps = {
|
226
226
|
/** 标题区 */
|
@@ -204,7 +204,8 @@ var processRenderFunction = function processRenderFunction() {
|
|
204
204
|
var value = arguments.length > 1 ? arguments[1] : undefined;
|
205
205
|
var index = arguments.length > 2 ? arguments[2] : undefined;
|
206
206
|
var record = arguments.length > 3 ? arguments[3] : undefined;
|
207
|
-
|
207
|
+
// 当 ProField render 类型为 function 时。需要表格预先处理以塞入 record
|
208
|
+
var external = ['linkOnClick', 'link', 'value', 'renderEdit', 'descriptionRenderEdit', 'editPopConfirmProps', 'descriptionEditPopConfirmProps', 'editOnClick', 'descriptionEditOnClick'];
|
208
209
|
return Object.fromEntries(Object.entries(render).map(function (_ref3) {
|
209
210
|
var _ref4 = _slicedToArray(_ref3, 2),
|
210
211
|
k = _ref4[0],
|
@@ -1,4 +1,11 @@
|
|
1
1
|
/// <reference types="react" />
|
2
2
|
import { ProTableActionType } from '../typing';
|
3
|
+
export declare function initActionRef(): void;
|
4
|
+
/** table 组件内监听 不对外暴露 */
|
5
|
+
export declare function on(fun: any, key: string): void;
|
6
|
+
/** table 组件内销毁监听 不对外暴露 */
|
7
|
+
export declare function off(key: string): void;
|
8
|
+
/** table 组件内触发事件 不对外暴露 */
|
9
|
+
export declare function emit(key: string, ...args: any): void;
|
3
10
|
export declare function useActionType<T>(ref: React.MutableRefObject<ProTableActionType | undefined>, action: ProTableActionType): void;
|
4
11
|
export declare function cloneDeep<T>(obj: T): T;
|
package/es/table/utils/index.js
CHANGED
@@ -16,7 +16,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
16
16
|
|
17
17
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
18
18
|
|
19
|
-
import cloneDeepLodash from 'lodash.clonedeep'; // 组件内全局状态
|
19
|
+
import cloneDeepLodash from 'lodash.clonedeep'; // 组件内全局状态 每次初始化 ActionRef 会重新深拷贝对象
|
20
20
|
|
21
21
|
var state = {
|
22
22
|
fullScreenState: false,
|
@@ -24,12 +24,16 @@ var state = {
|
|
24
24
|
filterColumns: []
|
25
25
|
};
|
26
26
|
|
27
|
-
var _initState = cloneDeepLodash(state); //
|
27
|
+
var _initState = cloneDeepLodash(state); // state监听事件 每次初始化 ActionRef 会重新深拷贝对象
|
28
28
|
|
29
29
|
|
30
30
|
var callback = {
|
31
31
|
fullScreenState: {}
|
32
|
-
};
|
32
|
+
};
|
33
|
+
var initCallback = cloneDeepLodash(callback); // 所有 ProTable 组件公用一套组件内事件转发机制
|
34
|
+
|
35
|
+
var tableCallback = {}; // 组件内监听事件
|
36
|
+
// 组件内对全局状态的更改
|
33
37
|
|
34
38
|
var mutations = {
|
35
39
|
getState: function getState() {
|
@@ -129,8 +133,38 @@ var useOn = function useOn(state) {
|
|
129
133
|
}
|
130
134
|
});
|
131
135
|
}
|
132
|
-
};
|
136
|
+
}; // 初始化 actionRef
|
137
|
+
|
138
|
+
|
139
|
+
export function initActionRef() {
|
140
|
+
state = cloneDeepLodash(_initState);
|
141
|
+
callback = cloneDeepLodash(initCallback);
|
142
|
+
}
|
143
|
+
/** table 组件内监听 不对外暴露 */
|
144
|
+
|
145
|
+
export function on(fun, key) {
|
146
|
+
tableCallback[key] = fun;
|
147
|
+
}
|
148
|
+
/** table 组件内销毁监听 不对外暴露 */
|
133
149
|
|
150
|
+
export function off(key) {
|
151
|
+
if (tableCallback[key]) {
|
152
|
+
delete tableCallback[key];
|
153
|
+
}
|
154
|
+
}
|
155
|
+
/** table 组件内触发事件 不对外暴露 */
|
156
|
+
|
157
|
+
export function emit(key) {
|
158
|
+
var fun = tableCallback[key];
|
159
|
+
|
160
|
+
if (fun) {
|
161
|
+
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
162
|
+
args[_key2 - 1] = arguments[_key2];
|
163
|
+
}
|
164
|
+
|
165
|
+
fun.apply(void 0, args);
|
166
|
+
}
|
167
|
+
}
|
134
168
|
export function useActionType(ref, action) {
|
135
169
|
// 合并自定义事件
|
136
170
|
var userAction = _objectSpread(_objectSpread({}, action), mutations);
|
package/lib/actions/dialog.js
CHANGED
@@ -30,7 +30,7 @@ var _request = require("./request");
|
|
30
30
|
|
31
31
|
var _utils2 = require("./utils");
|
32
32
|
|
33
|
-
var _excluded = ["url", "method", "params", "data", "extendParams", "successMsg", "errorMsg", "formatParams", "formatResult", "onSuccess", "onError"],
|
33
|
+
var _excluded = ["trigger", "url", "method", "params", "data", "extendParams", "successMsg", "errorMsg", "formatParams", "formatResult", "onSuccess", "onError"],
|
34
34
|
_excluded2 = ["title", "content", "component", "schema", "onFinish", "dialogType", "dialogQuickShowType", "messageType", "popType", "beforeRequest", "onTrigger", "link", "beforeContent", "afterContent", "message", "footerDescription", "footerAlign", "className"];
|
35
35
|
|
36
36
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
@@ -107,7 +107,8 @@ function useDialogAction(action, actionContext) {
|
|
107
107
|
var onActionStart = function onActionStart(context, e) {
|
108
108
|
var _objectSpread2;
|
109
109
|
|
110
|
-
var
|
110
|
+
var trigger = action.trigger,
|
111
|
+
url = action.url,
|
111
112
|
method = action.method,
|
112
113
|
params = action.params,
|
113
114
|
data = action.data,
|
@@ -187,45 +188,34 @@ function useDialogAction(action, actionContext) {
|
|
187
188
|
while (1) {
|
188
189
|
switch (_context.prev = _context.next) {
|
189
190
|
case 0:
|
190
|
-
if (!link) {
|
191
|
-
_context.next = 5;
|
192
|
-
break;
|
193
|
-
}
|
194
|
-
|
195
|
-
(0, _utils.goToLink)(link, history);
|
196
|
-
onFinish && onFinish();
|
197
|
-
resolve(true);
|
198
|
-
return _context.abrupt("return");
|
199
|
-
|
200
|
-
case 5:
|
201
191
|
setLoading(true);
|
202
192
|
footerDescriptionValues = Object.assign({}, footerDescriptionRef === null || footerDescriptionRef === void 0 ? void 0 : (_footerDescriptionRef = footerDescriptionRef.current) === null || _footerDescriptionRef === void 0 ? void 0 : _footerDescriptionRef.values);
|
203
|
-
_context.prev =
|
193
|
+
_context.prev = 2;
|
204
194
|
requestContext = Object.assign({
|
205
195
|
footer: footerDescriptionValues
|
206
196
|
}, context);
|
207
|
-
_context.next =
|
197
|
+
_context.next = 6;
|
208
198
|
return (0, _request.doRequest)(action, requestContext, history, footerDescriptionValues);
|
209
199
|
|
210
|
-
case
|
200
|
+
case 6:
|
211
201
|
onFinish && onFinish();
|
212
202
|
resolve(true);
|
213
|
-
_context.next =
|
203
|
+
_context.next = 15;
|
214
204
|
break;
|
215
205
|
|
216
|
-
case
|
217
|
-
_context.prev =
|
218
|
-
_context.t0 = _context["catch"](
|
206
|
+
case 10:
|
207
|
+
_context.prev = 10;
|
208
|
+
_context.t0 = _context["catch"](2);
|
219
209
|
setLoading(false);
|
220
210
|
resolve(false);
|
221
211
|
return _context.abrupt("return");
|
222
212
|
|
223
|
-
case
|
213
|
+
case 15:
|
224
214
|
case "end":
|
225
215
|
return _context.stop();
|
226
216
|
}
|
227
217
|
}
|
228
|
-
}, _callee, null, [[
|
218
|
+
}, _callee, null, [[2, 10]]);
|
229
219
|
}));
|
230
220
|
|
231
221
|
return function (_x) {
|
package/lib/actions/index.d.ts
CHANGED
@@ -46,11 +46,21 @@ export interface ProActionMenuButtonProps extends MenuButtonProps {
|
|
46
46
|
export declare const ProActionMenuButton: (props: ProActionMenuButtonProps) => JSX.Element;
|
47
47
|
export declare type ProActionProps = ProActionButtonProps | ProActionMenuButtonProps;
|
48
48
|
export declare type ProActionGroupProps = {
|
49
|
+
/** 操作组类型:按钮、文字按钮 */
|
49
50
|
type?: 'button' | 'text';
|
51
|
+
/** 上下文 */
|
50
52
|
context?: any;
|
53
|
+
/** 操作项配置 */
|
51
54
|
actions: ProActionProps[];
|
55
|
+
/** 操作按钮最长数量,超出后折叠,默认为4 */
|
52
56
|
max?: number;
|
57
|
+
/**
|
58
|
+
* @deprecated 建议使用 more 代替
|
59
|
+
*/
|
53
60
|
moreText?: string;
|
61
|
+
/** 更多按钮的配置,只有在actions数量超过max时才有效 */
|
62
|
+
more?: string | ProActionButtonProps;
|
63
|
+
/** 是否有分割线,只有type="text"时生效,默认有分割线 */
|
54
64
|
divider?: boolean;
|
55
65
|
} & React.HTMLAttributes<HTMLElement>;
|
56
66
|
export declare function ProActionGroup(props: ProActionGroupProps): JSX.Element;
|
package/lib/actions/index.js
CHANGED
@@ -60,7 +60,7 @@ var _excluded = ["type"],
|
|
60
60
|
_excluded5 = ["context", "text"],
|
61
61
|
_excluded6 = ["key", "actions"],
|
62
62
|
_excluded7 = ["key", "config"],
|
63
|
-
_excluded8 = ["type", "divider", "max", "moreText", "context", "actions", "className"];
|
63
|
+
_excluded8 = ["type", "divider", "max", "moreText", "more", "context", "actions", "className"];
|
64
64
|
|
65
65
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
66
66
|
|
@@ -329,25 +329,19 @@ function renderCommonActionButton(button, context, isTypeText) {
|
|
329
329
|
return /*#__PURE__*/_react.default.createElement(ProActionMenuButton, _objectSpread({}, buttonProps));
|
330
330
|
}
|
331
331
|
|
332
|
-
function getDefaultMoreButton(type,
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
if (moreText) {
|
340
|
-
return {
|
341
|
-
label: moreText
|
342
|
-
};
|
343
|
-
}
|
344
|
-
|
345
|
-
return {
|
332
|
+
function getDefaultMoreButton(type, more) {
|
333
|
+
var moreConfig = typeof more === 'string' ? {
|
334
|
+
children: more
|
335
|
+
} : more;
|
336
|
+
var defaultConfig = type === 'button' ? {
|
337
|
+
children: (0, _utils.getMessage)('more')
|
338
|
+
} : {
|
346
339
|
icon: 'more-line',
|
347
340
|
// iconSize: 'small',
|
348
341
|
autoWidth: false,
|
349
342
|
className: 'teamix-pro-actions-text-menu-btn-no-arrow'
|
350
343
|
};
|
344
|
+
return Object.assign(defaultConfig, moreConfig);
|
351
345
|
}
|
352
346
|
|
353
347
|
var MAX_ACTTIONS = 4;
|
@@ -392,6 +386,7 @@ function ProActionGroup(props) {
|
|
392
386
|
_props$max = props.max,
|
393
387
|
max = _props$max === void 0 ? MAX_ACTTIONS : _props$max,
|
394
388
|
moreText = props.moreText,
|
389
|
+
more = props.more,
|
395
390
|
context = props.context,
|
396
391
|
_props$actions = props.actions,
|
397
392
|
actions = _props$actions === void 0 ? [] : _props$actions,
|
@@ -404,7 +399,7 @@ function ProActionGroup(props) {
|
|
404
399
|
}).filter(function (action) {
|
405
400
|
return action.visible !== false;
|
406
401
|
});
|
407
|
-
var formatedActions = formatGroupActions(filteredActions, max, getDefaultMoreButton(type, moreText));
|
402
|
+
var formatedActions = formatGroupActions(filteredActions, max, getDefaultMoreButton(type, more || moreText));
|
408
403
|
return /*#__PURE__*/_react.default.createElement("div", _objectSpread({
|
409
404
|
className: (0, _classnames.default)('teamix-pro-actions', "teamix-pro-actions-type-".concat(type), className, {
|
410
405
|
'teamix-pro-actions-divider': type === 'button' ? false : divider
|
@@ -6,7 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
exports.inputCategory = exports.componentMap = void 0;
|
7
7
|
var componentMap = {
|
8
8
|
Radio: 'Select',
|
9
|
-
Checkbox: 'Select'
|
9
|
+
Checkbox: 'Select',
|
10
|
+
CheckboxGroup: 'MultipleSelect'
|
10
11
|
};
|
11
12
|
exports.componentMap = componentMap;
|
12
13
|
var inputCategory = ['Input', 'Password', 'TextArea', 'NumberPicker', 'Percent', 'Money'];
|
@@ -47,18 +47,29 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
47
47
|
|
48
48
|
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; }
|
49
49
|
|
50
|
-
|
50
|
+
var formatComponent = function formatComponent(schema) {
|
51
|
+
var _schema$enum;
|
52
|
+
|
53
|
+
var component = schema['x-component'];
|
54
|
+
|
55
|
+
if (component === 'Checkbox' && ((_schema$enum = schema['enum']) === null || _schema$enum === void 0 ? void 0 : _schema$enum.length)) {
|
56
|
+
component = 'CheckboxGroup';
|
57
|
+
}
|
58
|
+
|
59
|
+
return _componentMap.componentMap[component] || component;
|
60
|
+
}; // 主激活区内容
|
61
|
+
|
62
|
+
|
51
63
|
var useMain = function useMain(active) {
|
52
64
|
var schema = (0, _react2.useFieldSchema)();
|
53
65
|
var main = [];
|
54
66
|
schema.mapProperties(function (schema, name) {
|
55
|
-
// console.log(schema.required); // 添加 *
|
56
67
|
if (schema.name === active) {
|
57
68
|
main.push({
|
58
69
|
name: name,
|
59
70
|
schema: _objectSpread(_objectSpread({}, schema), {}, {
|
60
71
|
title: '',
|
61
|
-
'x-component':
|
72
|
+
'x-component': formatComponent(schema)
|
62
73
|
})
|
63
74
|
});
|
64
75
|
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { TableProps, ColumnProps } from '@alifd/next/types/table';
|
3
|
+
import './index.scss';
|
4
|
+
declare type ISelectTableFilterOption = boolean | ((optipn: any, kewword: string) => boolean);
|
5
|
+
declare type ISelectTableFilterSort = (optionA: any, optionB: any) => number;
|
6
|
+
export interface ISelectTableColumnProps extends ColumnProps {
|
7
|
+
key: React.ReactText;
|
8
|
+
}
|
9
|
+
export interface ISelectTableProps extends TableProps {
|
10
|
+
mode?: 'multiple' | 'single';
|
11
|
+
dataSource?: any[];
|
12
|
+
optionAsValue?: boolean;
|
13
|
+
showSearch?: boolean;
|
14
|
+
filterOption?: ISelectTableFilterOption;
|
15
|
+
filterSort?: ISelectTableFilterSort;
|
16
|
+
onSearch?: (kekword: string) => void;
|
17
|
+
onChange?: (value: any) => void;
|
18
|
+
value?: any;
|
19
|
+
}
|
20
|
+
declare type ComposedSelectTable = React.FC<ISelectTableProps> & {
|
21
|
+
TableColumn?: React.FC<ISelectTableColumnProps>;
|
22
|
+
};
|
23
|
+
declare const SelectTable: ComposedSelectTable;
|
24
|
+
export default SelectTable;
|
@@ -0,0 +1,157 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
4
|
+
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports.default = void 0;
|
9
|
+
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
11
|
+
|
12
|
+
var _components = require("@alicloudfe/components");
|
13
|
+
|
14
|
+
var _react2 = require("@formily/react");
|
15
|
+
|
16
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
17
|
+
|
18
|
+
var _shared = require("@formily/shared");
|
19
|
+
|
20
|
+
var _utils = require("@teamix/utils");
|
21
|
+
|
22
|
+
require("./index.scss");
|
23
|
+
|
24
|
+
var _excluded = ["mode", "dataSource", "optionAsValue", "showSearch", "filterOption", "filterSort", "onSearch", "className", "value", "onChange", "rowSelection"];
|
25
|
+
|
26
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
27
|
+
|
28
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
29
|
+
|
30
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
31
|
+
|
32
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
33
|
+
|
34
|
+
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."); }
|
35
|
+
|
36
|
+
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); }
|
37
|
+
|
38
|
+
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; }
|
39
|
+
|
40
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
41
|
+
|
42
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
43
|
+
|
44
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
45
|
+
|
46
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
47
|
+
|
48
|
+
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; }
|
49
|
+
|
50
|
+
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; }
|
51
|
+
|
52
|
+
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; }
|
53
|
+
|
54
|
+
var useColumns = function useColumns() {
|
55
|
+
var schema = (0, _react2.useFieldSchema)();
|
56
|
+
var columns = [];
|
57
|
+
schema.mapProperties(function (schema, name) {
|
58
|
+
var _schema$xComponent;
|
59
|
+
|
60
|
+
if (((_schema$xComponent = schema['x-component']) === null || _schema$xComponent === void 0 ? void 0 : _schema$xComponent.indexOf('Column')) > -1) {
|
61
|
+
var props = schema === null || schema === void 0 ? void 0 : schema['x-component-props'];
|
62
|
+
columns.push({
|
63
|
+
name: name,
|
64
|
+
props: _objectSpread(_objectSpread({}, props), {}, {
|
65
|
+
title: (props === null || props === void 0 ? void 0 : props.title) || (schema === null || schema === void 0 ? void 0 : schema.title),
|
66
|
+
dataIndex: (props === null || props === void 0 ? void 0 : props.dataIndex) || name
|
67
|
+
}),
|
68
|
+
schema: schema
|
69
|
+
});
|
70
|
+
}
|
71
|
+
});
|
72
|
+
return columns;
|
73
|
+
};
|
74
|
+
|
75
|
+
var SelectTable = (0, _react2.observer)(function (props) {
|
76
|
+
var mode = props.mode,
|
77
|
+
dataSource = props.dataSource,
|
78
|
+
optionAsValue = props.optionAsValue,
|
79
|
+
showSearch = props.showSearch,
|
80
|
+
filterOption = props.filterOption,
|
81
|
+
filterSort = props.filterSort,
|
82
|
+
onSearch = props.onSearch,
|
83
|
+
className = props.className,
|
84
|
+
value = props.value,
|
85
|
+
onChange = props.onChange,
|
86
|
+
rowSelection = props.rowSelection,
|
87
|
+
otherTableProps = _objectWithoutProperties(props, _excluded);
|
88
|
+
|
89
|
+
var prefixCls = (0, _utils.usePrefixCls)('formily-selectTable', props);
|
90
|
+
|
91
|
+
var _useState = (0, _react.useState)(),
|
92
|
+
_useState2 = _slicedToArray(_useState, 2),
|
93
|
+
selected = _useState2[0],
|
94
|
+
setSelected = _useState2[1];
|
95
|
+
|
96
|
+
var tabs = useColumns();
|
97
|
+
|
98
|
+
var expandedRowRender = function expandedRowRender(record, index) {
|
99
|
+
var children = (0, _shared.isArr)(record.children) ? record.children : [];
|
100
|
+
return /*#__PURE__*/_react.default.createElement(_components.Table, {
|
101
|
+
dataSource: children,
|
102
|
+
key: index
|
103
|
+
}, tabs.map(function (_ref, key) {
|
104
|
+
var props = _ref.props;
|
105
|
+
return /*#__PURE__*/_react.default.createElement(_components.Table.Column, _objectSpread({
|
106
|
+
key: key
|
107
|
+
}, props));
|
108
|
+
}));
|
109
|
+
};
|
110
|
+
|
111
|
+
var onInnerChange = function onInnerChange(selectedRowKeys, records) {
|
112
|
+
var outputValue = optionAsValue ? records : selectedRowKeys;
|
113
|
+
outputValue = mode === 'single' ? outputValue[0] : outputValue;
|
114
|
+
onChange && onChange(outputValue);
|
115
|
+
};
|
116
|
+
|
117
|
+
(0, _react.useEffect)(function () {
|
118
|
+
var primaryKey = props.primaryKey;
|
119
|
+
var inputValue = mode === 'single' ? [value] : (0, _shared.isArr)(value) ? value : [];
|
120
|
+
inputValue = optionAsValue ? inputValue.map(function (v) {
|
121
|
+
return v === null || v === void 0 ? void 0 : v[primaryKey];
|
122
|
+
}) : inputValue;
|
123
|
+
setSelected(inputValue);
|
124
|
+
}, [value, mode]);
|
125
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
126
|
+
className: (0, _classnames.default)(prefixCls, props.className)
|
127
|
+
}, showSearch ? /*#__PURE__*/_react.default.createElement(_components.Search, {
|
128
|
+
className: "".concat(prefixCls, "-search"),
|
129
|
+
onSearch: console.log
|
130
|
+
}) : null, /*#__PURE__*/_react.default.createElement(_components.Table, _objectSpread({
|
131
|
+
className: "".concat(prefixCls, "-table"),
|
132
|
+
dataSource: dataSource,
|
133
|
+
rowSelection: _objectSpread(_objectSpread({}, rowSelection), {}, {
|
134
|
+
mode: mode,
|
135
|
+
onChange: onInnerChange,
|
136
|
+
selectedRowKeys: selected
|
137
|
+
})
|
138
|
+
}, otherTableProps), tabs.map(function (_ref2, key) {
|
139
|
+
var props = _ref2.props;
|
140
|
+
return /*#__PURE__*/_react.default.createElement(_components.Table.Column, _objectSpread({
|
141
|
+
key: key
|
142
|
+
}, props));
|
143
|
+
})));
|
144
|
+
});
|
145
|
+
|
146
|
+
var TableColumn = function TableColumn(_ref3) {
|
147
|
+
var children = _ref3.children;
|
148
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
|
149
|
+
};
|
150
|
+
|
151
|
+
SelectTable.TableColumn = TableColumn;
|
152
|
+
SelectTable.defaultProps = {
|
153
|
+
showSearch: false,
|
154
|
+
primaryKey: 'key'
|
155
|
+
};
|
156
|
+
var _default = SelectTable;
|
157
|
+
exports.default = _default;
|
@@ -0,0 +1,28 @@
|
|
1
|
+
@import '../../global.scss';
|
2
|
+
|
3
|
+
$selectTable: #{$css-prefix}formily-selectTable;
|
4
|
+
|
5
|
+
.#{$selectTable} {
|
6
|
+
.#{$selectTable}-search {
|
7
|
+
margin-bottom: 8px;
|
8
|
+
}
|
9
|
+
.#{$selectTable}-table {
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
.next-table-row-nochildren {
|
14
|
+
> .next-table-expanded {
|
15
|
+
> * {
|
16
|
+
visibility: hidden;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
}
|
20
|
+
.next-table-expanded-row {
|
21
|
+
.next-table-body {
|
22
|
+
> tr:last-child {
|
23
|
+
> td {
|
24
|
+
border-bottom: 0;
|
25
|
+
}
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|
@@ -0,0 +1,76 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
|
8
|
+
var _React = _interopRequireDefault(require("React"));
|
9
|
+
|
10
|
+
var _components = require("@alicloudfe/components");
|
11
|
+
|
12
|
+
require("./index.scss");
|
13
|
+
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
15
|
+
|
16
|
+
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; }
|
17
|
+
|
18
|
+
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; }
|
19
|
+
|
20
|
+
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; }
|
21
|
+
|
22
|
+
var Table = function Table(props) {
|
23
|
+
var onChange = function onChange(selectedRowKeys, records) {
|
24
|
+
console.log(selectedRowKeys);
|
25
|
+
};
|
26
|
+
|
27
|
+
var onSelect = function onSelect() {};
|
28
|
+
|
29
|
+
var onSelectAll = function onSelectAll() {};
|
30
|
+
|
31
|
+
var rowProps = function rowProps(record) {
|
32
|
+
var _record$children;
|
33
|
+
|
34
|
+
if (!(record === null || record === void 0 ? void 0 : (_record$children = record.children) === null || _record$children === void 0 ? void 0 : _record$children.length)) {
|
35
|
+
return {// className: 'next-table-row-nochildren',
|
36
|
+
};
|
37
|
+
}
|
38
|
+
|
39
|
+
return {};
|
40
|
+
};
|
41
|
+
|
42
|
+
var expandedRowRender = function expandedRowRender(record, index) {
|
43
|
+
var children = record.children;
|
44
|
+
|
45
|
+
if (children === null || children === void 0 ? void 0 : children.length) {
|
46
|
+
return _React.default.createElement(Table, _objectSpread(_objectSpread({}, props), {}, {
|
47
|
+
key: index,
|
48
|
+
dataSource: children,
|
49
|
+
hasHeader: false,
|
50
|
+
hasBorder: false,
|
51
|
+
rowProps: rowProps,
|
52
|
+
rowSelection: {
|
53
|
+
onChange: onChange
|
54
|
+
},
|
55
|
+
expandedRowRender: expandedRowRender,
|
56
|
+
expandedRowIndent: [1, 0]
|
57
|
+
}));
|
58
|
+
}
|
59
|
+
|
60
|
+
return _React.default.createElement(_React.default.Fragment, null);
|
61
|
+
};
|
62
|
+
|
63
|
+
return _React.default.createElement(_components.Table, _objectSpread(_objectSpread({}, props), {}, {
|
64
|
+
rowProps: rowProps,
|
65
|
+
rowSelection: {
|
66
|
+
onChange: onChange,
|
67
|
+
onSelectAll: onSelectAll,
|
68
|
+
onSelect: onSelect
|
69
|
+
},
|
70
|
+
expandedRowRender: expandedRowRender,
|
71
|
+
expandedRowIndent: [1, 0]
|
72
|
+
}));
|
73
|
+
};
|
74
|
+
|
75
|
+
var _default = Table;
|
76
|
+
exports.default = _default;
|