@flatbiz/antd
Version:
1,271 lines (1,257 loc) • 51.7 kB
JavaScript
/* eslint-disable */
import './../box-grid/index.css';
import './../fba-hooks/index.css';
import './../fba-utils/index.css';
import './../form-grid/index.css';
import './../pre-defined-class-name/index.css';
import './index.css';
/*! @flatjs/forge MIT @flatbiz/antd */
import { f as fbaUtils } from '../fba-utils-Dfbczn1S.js';
import { isArray } from '@dimjs/lang/is-array';
import { isObject } from '@dimjs/lang/is-object';
import { b as _objectSpread2, a as _slicedToArray, i as _defineProperty, c as _toConsumableArray, _ as _objectWithoutProperties } from '../_rollupPluginBabelHelpers-BYm17lo8.js';
import { sessionStorageCache, localStorageCache, noop, getUuid, isUndefinedOrNull, isMacEnv } from '@flatbiz/utils';
import { classNames } from '@dimjs/utils/class-names/class-names';
import { isUndefined } from '@dimjs/lang/is-undefined';
import { get } from '@dimjs/utils/get/get';
import { hooks } from '@wove/react/hooks';
import { isString } from '@dimjs/lang/is-string';
import { createContext, useState, Fragment, forwardRef, useMemo, useRef, useImperativeHandle, cloneElement, useContext, Children, useEffect } from 'react';
import { Checkbox, Popover, Form, message, Drawer, Table } from 'antd';
import { fbaHooks } from '../fba-hooks/index.js';
import { P as PaginationWrapper } from '../pagination-BNbiyV-n.js';
import { jsx, jsxs } from 'react/jsx-runtime';
import _DownOutlined from '@ant-design/icons/es/icons/DownOutlined.js';
import _UpOutlined from '@ant-design/icons/es/icons/UpOutlined.js';
import { isFragment } from 'react-is';
import { B as BlockLayout } from '../layout-OPf8eBBY.js';
import { B as ButtonWrapper } from '../button-wrapper-l9FUsrWl.js';
import { E as EasyForm } from '../form-wa_Ck4Vl.js';
import { FormGrid } from '../form-grid/index.js';
import { T as TableScrollbar } from '../table-scrollbar-CBqQ4pYQ.js';
import { F as FlexLayout } from '../flex-layout-BaDncU_Z.js';
import { I as IconWrapper } from '../icon-wrapper-HJ2r5GeZ.js';
import { S as SvgHttpView } from '../svg-DXIM5sfc.js';
import { T as TableTitleTooltip } from '../title-render-DGYUo6yV.js';
import { T as TipsWrapper } from '../tips-wrapper-Bf9nfZq3.js';
import '@dimjs/model';
import '../use-responsive-point-Bp3D3lZT.js';
import '@ant-design/icons/es/icons/LoadingOutlined.js';
import '@dimjs/lang/is-promise';
import '../config-provider-wrapper-DDa_64Ce.js';
import 'antd/es/locale/en_US.js';
import 'antd/es/locale/zh_CN.js';
import 'dayjs';
import 'dayjs/plugin/advancedFormat.js';
import 'dayjs/plugin/customParseFormat.js';
import 'dayjs/plugin/localeData.js';
import 'dayjs/plugin/utc.js';
import 'dayjs/plugin/weekday.js';
import 'dayjs/plugin/weekOfYear.js';
import 'dayjs/plugin/weekYear.js';
import '@dimjs/utils/extend/extend';
import 'dayjs/locale/en.js';
import 'dayjs/locale/zh-cn.js';
import '../box-grid/index.js';
import '@dimjs/lang/is-number';
import 'ahooks';
import '../form-wrapper-DSnBmyFu.js';
import '../pre-defined-class-name/index.js';
import '@ant-design/icons/es/icons/QuestionCircleOutlined.js';
var filterCache = {
set: function set(cacheKey, filterCondition) {
var value = filterCache.get(cacheKey);
var mergeParams = _objectSpread2(_objectSpread2({}, value), filterCondition);
sessionStorageCache.set("easy_tab_filter_".concat(cacheKey), mergeParams);
return mergeParams;
},
get: function get(cacheKey) {
var value = sessionStorageCache.get("easy_tab_filter_".concat(cacheKey));
return isObject(value) ? value : {};
},
remove: function remove(cacheKey) {
sessionStorageCache.remove("easy_tab_filter_".concat(cacheKey));
}
};
var firstQueryCache = {
set: function set(cacheKey, flag) {
sessionStorageCache.set("easy_tab_firstQuery_".concat(cacheKey), {
value: flag
});
},
get: function get(cacheKey) {
var _sessionStorageCache$;
var value = (_sessionStorageCache$ = sessionStorageCache.get("easy_tab_firstQuery_".concat(cacheKey))) === null || _sessionStorageCache$ === void 0 ? void 0 : _sessionStorageCache$.value;
return value === false ? false : true;
},
remove: function remove(cacheKey) {
sessionStorageCache.remove("easy_tab_firstQuery_".concat(cacheKey));
}
};
var columnFoldCache = {
set: function set(cacheKey, value) {
localStorageCache.set("easy_tab_columnFold_".concat(cacheKey), {
value: value
});
},
get: function get(cacheKey) {
var _localStorageCache$ge;
var value = (_localStorageCache$ge = localStorageCache.get("easy_tab_columnFold_".concat(cacheKey))) === null || _localStorageCache$ge === void 0 ? void 0 : _localStorageCache$ge.value;
return isArray(value) ? value : [];
},
remove: function remove(cacheKey) {
localStorageCache.remove("easy_tab_columnFold_".concat(cacheKey));
}
};
var EasyTableContext = /*#__PURE__*/createContext({
onRequest: noop,
tableList: [],
getEasyTableRef: function getEasyTableRef() {
//
}
});
var FoldOperateDropdown = function FoldOperateDropdown(props) {
var _useState = useState(props.initSelectedRowKeys || []),
_useState2 = _slicedToArray(_useState, 2),
selectedRowKeys = _useState2[0],
setSelectedRowKeys = _useState2[1];
var onChange = function onChange(keys) {
setSelectedRowKeys(keys);
props.onChange(keys);
if (props.cacheKey) {
columnFoldCache.set(props.cacheKey, keys);
}
};
var content = /*#__PURE__*/jsx(Fragment, {
children: /*#__PURE__*/jsx(Checkbox.Group, {
defaultValue: selectedRowKeys,
onChange: onChange,
value: selectedRowKeys,
style: {
display: 'flex',
flexDirection: 'column'
},
children: props.dataList.map(function (item) {
var label = item['_isFoldTitle'] || item.title;
return /*#__PURE__*/jsx(Checkbox, {
value: item.dataIndex,
style: {
padding: '0 0 5px 0'
},
children: label
}, item.dataIndex);
})
})
});
var onChangeAll = function onChangeAll(e) {
if (e.target.checked) {
onChange(props.dataList.map(function (item) {
return item.dataIndex;
}));
} else {
onChange([]);
}
};
return /*#__PURE__*/jsx(Popover, {
content: content,
title: /*#__PURE__*/jsx(Checkbox, {
checked: selectedRowKeys.length === props.dataList.length,
onChange: onChangeAll,
children: "\u5168\u9009\uFF08\u5B57\u6BB5\u5217\u8868\uFF09"
}),
placement: "bottomRight",
overlayClassName: "fold-operate-popiver",
children: props.children
});
};
var EasyTable$1 = /*#__PURE__*/forwardRef(function (props, ref) {
var _props$initialPaginat;
var screenType = fbaHooks.useResponsivePoint() || '';
var _useState = useState(),
_useState2 = _slicedToArray(_useState, 2),
dataSource = _useState2[0],
setDataSource = _useState2[1];
var _useState3 = useState(0),
_useState4 = _slicedToArray(_useState3, 2),
total = _useState4[0],
setTotal = _useState4[1];
var _useState5 = useState(false),
_useState6 = _slicedToArray(_useState5, 2),
loading = _useState6[0],
setLoading = _useState6[1];
var columnFoldConfig = props.columnFoldConfig;
var asyncColumnRequest = props.asyncColumnRequest;
var _useState7 = useState(false),
_useState8 = _slicedToArray(_useState7, 2),
columnFoldOpen = _useState8[0],
setColumnFoldOpen = _useState8[1];
var cacheKey = useMemo(function () {
if (props.cacheKey) {
try {
var iframe = window.frameElement;
var iframeId = (iframe === null || iframe === void 0 ? void 0 : iframe.id) || '';
return "".concat(props.cacheKey, "_").concat(iframeId);
} catch (_error) {
return props.cacheKey;
}
}
if (props.cacheSwitch === true) {
return location.pathname;
}
if (typeof props.cacheSwitch === 'string') {
return props.cacheSwitch;
}
return getUuid();
}, [props.cacheSwitch, props.cacheKey]);
var cacheParams = filterCache.get(cacheKey);
var _useState9 = useState(function () {
if (cacheKey) {
var columnFoldCacheValue = columnFoldCache.get(cacheKey);
var cacheKeyList = isArray(columnFoldCacheValue) ? columnFoldCacheValue.filter(function (item) {
return isString(item);
}) : [];
return cacheKeyList.length > 0 ? cacheKeyList : (columnFoldConfig === null || columnFoldConfig === void 0 ? void 0 : columnFoldConfig.initSelectedKeys) || [];
} else {
return (columnFoldConfig === null || columnFoldConfig === void 0 ? void 0 : columnFoldConfig.initSelectedKeys) || [];
}
}),
_useState10 = _slicedToArray(_useState9, 2),
showFoldKeyList = _useState10[0],
setShowFoldKeyList = _useState10[1];
var pageSize = props.pageSize || ((_props$initialPaginat = props.initialPaginationParams) === null || _props$initialPaginat === void 0 ? void 0 : _props$initialPaginat.pageSize) || 10;
var initRequest = props.initRequest === undefined ? true : props.initRequest;
var paginationStatusRef = useRef(false);
var respOriginalDataRef = useRef();
var baseColumnsRef = useRef([]);
var _useState11 = useState(),
_useState12 = _slicedToArray(_useState11, 2),
dynamicColumns = _useState12[0],
setDynamicColumns = _useState12[1];
var columnsRef = useRef([]);
var fieldNames = _objectSpread2({
list: 'list',
total: 'total',
pageNo: 'pageNo',
pageSize: 'pageSize'
}, props.fieldNames);
var _Form$useForm = Form.useForm(props.form),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var onInnerRequest = hooks.useCallbackRef(function (params) {
return new Promise(function ($return, $error) {
var _props$onDataSourceCh, paramsAll, _props$serviceConfig, requestParamsAdapter, onRequest, requestResultAdapter, dynamicColumsAdapter, paramsNew, respData, respDataNew, _dynamicColumns, respList;
var $Try_2_Post = function () {
try {
return $return();
} catch ($boundEx) {
return $error($boundEx);
}
};
var $Try_2_Catch = function (error) {
try {
setLoading(false);
if (props.onRequestErrorHandle) {
props.onRequestErrorHandle(error);
} else {
void message.error(error.message);
}
return $Try_2_Post();
} catch ($boundEx) {
return $error($boundEx);
}
};
try {
if (props.breforeRequest) {
var $Try_3_Post = function () {
try {
return $If_4.call(this);
} catch ($boundEx) {
return $Try_2_Catch($boundEx);
}
}.bind(this);
var $Try_3_Catch = function (_error) {
try {
return $return();
} catch ($boundEx) {
return $Try_2_Catch($boundEx);
}
};
try {
return Promise.resolve(props.breforeRequest(form)).then(function ($await_5) {
try {
return $Try_3_Post();
} catch ($boundEx) {
return $Try_3_Catch($boundEx);
}
}, $Try_3_Catch);
} catch (_error) {
$Try_3_Catch(_error);
}
}
function $If_4() {
firstQueryCache.set(cacheKey, false);
setLoading(true);
paramsAll = filterCache.set(cacheKey, params);
_props$serviceConfig = props.serviceConfig, requestParamsAdapter = _props$serviceConfig.requestParamsAdapter, onRequest = _props$serviceConfig.onRequest, requestResultAdapter = _props$serviceConfig.requestResultAdapter, dynamicColumsAdapter = _props$serviceConfig.dynamicColumsAdapter;
paramsNew = requestParamsAdapter ? requestParamsAdapter(paramsAll) : paramsAll;
return Promise.resolve(onRequest(fbaUtils.removeFormValuesInvalidField(paramsNew))).then(function ($await_6) {
try {
respData = $await_6 || {};
respOriginalDataRef.current = respData;
(_props$onDataSourceCh = props.onDataSourceChange) === null || _props$onDataSourceCh === void 0 || _props$onDataSourceCh.call(props, respData);
respDataNew = respData;
if (requestResultAdapter) {
respDataNew = requestResultAdapter(respData);
}
if (dynamicColumsAdapter) {
_dynamicColumns = dynamicColumsAdapter(respData, baseColumnsRef.current);
/** 不要添加默认值 */
setDynamicColumns(_dynamicColumns);
}
respList = get(respDataNew, fieldNames.list);
setDataSource(isArray(respList) ? respList : []);
setTotal(get(respDataNew, fieldNames.total));
setLoading(false);
return $Try_2_Post();
} catch ($boundEx) {
return $Try_2_Catch($boundEx);
}
}, $Try_2_Catch);
}
return $If_4.call(this);
} catch (error) {
$Try_2_Catch(error);
}
});
});
fbaHooks.useEffectCustom(function () {
var hasPagination = getPaginationStatus();
var firstQueryFlag = firstQueryCache.get(cacheKey);
form.setFieldsValue(_objectSpread2(_objectSpread2({}, props.initialValues), cacheParams));
if (initRequest || !firstQueryFlag) {
if (hasPagination) {
void onInnerRequest(_objectSpread2(_objectSpread2(_defineProperty(_defineProperty({}, fieldNames.pageNo, 1), fieldNames.pageSize, pageSize), props.initialValues), cacheParams));
} else {
void onInnerRequest(props.initialValues);
}
} else {
filterCache.set(cacheKey, props.initialValues || {});
}
}, []);
var clearQueryCondition = hooks.useCallbackRef(function (values) {
filterCache.remove(cacheKey);
form.resetFields();
if (values) {
filterCache.set(cacheKey, values);
form.setFieldsValue(values);
}
});
var updateQueryCondition = hooks.useCallbackRef(function (values) {
filterCache.set(cacheKey, values);
form.setFieldsValue(values);
});
var getPaginationData = function getPaginationData(pageNo, _pageSize) {
if (getPaginationStatus()) {
return _defineProperty(_defineProperty({}, fieldNames.pageNo, pageNo), fieldNames.pageSize, _pageSize || pageSize);
} else {
return _defineProperty(_defineProperty({}, fieldNames.pageNo, undefined), fieldNames.pageSize, undefined);
}
};
var onResetRequest = hooks.useCallbackRef(function (values) {
var params = _objectSpread2(_objectSpread2(_objectSpread2({}, getPaginationData(1, cacheParams[fieldNames.pageSize])), props.initialValues), values);
filterCache.remove(cacheKey);
form.resetFields();
if (values) {
form.setFieldsValue(values);
}
void onInnerRequest(params);
});
var getRequestParams = hooks.useCallbackRef(function () {
return _objectSpread2(_objectSpread2({}, cacheParams), form.getFieldsValue());
});
var onOpenColumnFoldModal = hooks.useCallbackRef(function () {
setColumnFoldOpen(true);
});
var onCloseColumnFoldModal = hooks.useCallbackRef(function () {
setColumnFoldOpen(false);
});
var getEasyTableRef = function getEasyTableRef() {
return {
/**
* 参数
* 1. 不用添加已存在的搜索条件
* 2. 此处可重新
*/
onRequest: onInnerRequest,
clearQueryCondition: clearQueryCondition,
updateQueryCondition: updateQueryCondition,
getRequestParams: getRequestParams,
onResetRequest: onResetRequest,
form: form,
dataSource: respOriginalDataRef.current,
getDataSource: function getDataSource() {
return respOriginalDataRef.current;
},
onFilterDataSource: function onFilterDataSource(filterDataSource) {
setDataSource(filterDataSource);
},
onClearDataSource: function onClearDataSource() {
setTotal(0);
setDataSource([]);
},
onUpdateDataSource: function onUpdateDataSource(dataList) {
var _props$onDataSourceCh2;
setDataSource(dataList);
respOriginalDataRef.current = _defineProperty({}, fieldNames.list, dataList);
(_props$onDataSourceCh2 = props.onDataSourceChange) === null || _props$onDataSourceCh2 === void 0 || _props$onDataSourceCh2.call(props, respOriginalDataRef.current);
},
columnFoldTriggerRender: function columnFoldTriggerRender(children, columns) {
var _props$columnFoldConf;
if (((_props$columnFoldConf = props.columnFoldConfig) === null || _props$columnFoldConf === void 0 ? void 0 : _props$columnFoldConf.triggerType) === 'drawer') {
return /*#__PURE__*/cloneElement(children, {
onClick: onOpenColumnFoldModal
});
}
var foldColumnList = columns.filter(function (item) {
return !item.hidden && item.isFold && item.dataIndex;
});
return /*#__PURE__*/jsx(FoldOperateDropdown, {
dataList: foldColumnList,
onChange: onChangeFoldColumnList,
cacheKey: cacheKey,
initSelectedRowKeys: showFoldKeyList,
children: children
});
},
onChangeTableColumns: function onChangeTableColumns(columns) {
setDynamicColumns(columns);
},
getTableColumns: function getTableColumns() {
return columnsRef.current;
},
loading: loading,
setEnabledInitRequest: function setEnabledInitRequest() {
firstQueryCache.set(cacheKey, false);
}
};
};
useImperativeHandle(ref, function () {
return getEasyTableRef();
});
var onSetPaginationStatus = function onSetPaginationStatus(status) {
paginationStatusRef.current = status;
};
var onSetBaseColumns = function onSetBaseColumns(base) {
baseColumnsRef.current = base;
};
var onSetColumns = function onSetColumns(columns) {
columnsRef.current = columns;
};
var onFormFinish = function onFormFinish() {
var values = form.getFieldsValue();
if (props.onFormFinish) {
props.onFormFinish(_objectSpread2(_objectSpread2({}, values), getPaginationData(1, cacheParams[fieldNames.pageSize])));
} else {
void onInnerRequest(_objectSpread2(_objectSpread2({}, values), getPaginationData(1, cacheParams[fieldNames.pageSize])));
}
};
var isFull = isUndefined(props.isFull) ? true : props.isFull;
var filterFixedFt = screenType === 'xs' ? false : props.filterFixed;
var className = classNames('fba-easy-table', {
'fba-easy-table-full': isFull,
'fba-easy-table-filter-fixed': filterFixedFt,
'fba-easy-table-pagination-fixed': props.paginationFixed
}, props.className);
var paginationData = fbaHooks.useMemoCustom(function () {
return _objectSpread2({
showSizeChanger: true,
current: cacheParams[fieldNames.pageNo] || 1,
pageSize: cacheParams[fieldNames.pageSize] || pageSize,
total: total,
showTotal: function showTotal(total) {
return "\u5171 ".concat(total, " \u6761\u8BB0\u5F55");
}
}, props.pagination);
}, [fieldNames.pageNo, cacheParams, fieldNames.pageSize, cacheKey, pageSize, props.pagination, total]);
var onChangeFoldColumnList = function onChangeFoldColumnList(keyList) {
var _columnFoldConfig$onC;
setShowFoldKeyList(keyList);
columnFoldConfig === null || columnFoldConfig === void 0 || (_columnFoldConfig$onC = columnFoldConfig.onChange) === null || _columnFoldConfig$onC === void 0 || _columnFoldConfig$onC.call(columnFoldConfig, keyList);
};
var onChange = hooks.useCallbackRef(function (page, pageSize) {
var _props$pagination, _props$pagination$onC;
var params = _defineProperty(_defineProperty({}, fieldNames.pageSize, pageSize), fieldNames.pageNo, page);
filterCache.set(cacheKey, params);
void onInnerRequest(params);
(_props$pagination = props.pagination) === null || _props$pagination === void 0 || (_props$pagination$onC = _props$pagination.onChange) === null || _props$pagination$onC === void 0 || _props$pagination$onC.call(_props$pagination, page, pageSize);
});
var getPaginationStatus = function getPaginationStatus() {
return props.paginationFixed || paginationStatusRef.current;
};
// 分页参数发生变更
hooks.useUpdateEffect(function () {
if (props.paginationFixed) {
void onInnerRequest(_defineProperty(_defineProperty({}, fieldNames.pageSize, cacheParams[fieldNames.pageSize] || pageSize), fieldNames.pageNo, 1));
} else {
void onInnerRequest(_defineProperty(_defineProperty({}, fieldNames.pageSize, undefined), fieldNames.pageNo, undefined));
}
}, [props.paginationFixed]);
var wrapperClassName = classNames('fba-easy-table-wrapper', {
'fba-easy-table-wrapper-inline': props.isInline
}, props.className);
var wrapperStyle = _objectSpread2({
overflowY: props.filterFixed || props.paginationFixed ? 'hidden' : 'auto'
}, props.style);
var children = typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;
return /*#__PURE__*/jsx(EasyTableContext.Provider, {
value: {
onSetBaseColumns: onSetBaseColumns,
onSetColumns: onSetColumns,
getEasyTableRef: getEasyTableRef,
cacheKey: cacheKey,
onRequest: onInnerRequest,
tableDataSource: dataSource,
tableTotal: total,
loading: loading,
fieldNames: fieldNames,
pageSize: pageSize,
onSetPaginationStatus: onSetPaginationStatus,
getPaginationStatus: getPaginationStatus,
onFormFinish: onFormFinish,
form: form,
paginationFixed: props.paginationFixed || false,
foldKeys: props.foldKeys || [],
columns: dynamicColumns,
initialValues: props.initialValues,
dynamicColumnsConfig: {
showFoldKeyList: showFoldKeyList,
onChangeShowFoldKeyList: onChangeFoldColumnList,
columnFoldConfig: columnFoldConfig,
onOpenColumnFoldModal: onOpenColumnFoldModal,
onCloseColumnFoldModal: onCloseColumnFoldModal,
columnFoldOpen: columnFoldOpen,
asyncColumnRequest: asyncColumnRequest
}
},
children: props.paginationFixed ? /*#__PURE__*/jsxs("div", {
className: wrapperClassName,
style: wrapperStyle,
children: [/*#__PURE__*/jsx("div", {
className: className,
children: children
}), total > 0 && /*#__PURE__*/jsx("div", {
className: "fba-easy-table-pagination",
children: /*#__PURE__*/jsx(PaginationWrapper, _objectSpread2(_objectSpread2({
size: "small"
}, paginationData), {}, {
onChange: onChange
}))
})]
}) : /*#__PURE__*/jsx("div", {
className: wrapperClassName,
style: props.style,
children: /*#__PURE__*/jsx("div", {
className: className,
children: children
})
})
});
});
/**
* 过滤条件
*```
* 1. 用法1
* -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }
* <EasyTableFilter>
* <FormItemWrapper name="field1" label="条件1">xxx</FormItemWrapper>
* </EasyTableFilter>
*
* -- 自定义网格布局 使用 FormGrid.Col 组件包装 FormItemWrapper
* <EasyTableFilter>
* <FormGrid.Col span={12}><FormItemWrapper name="field1" label="条件1">xxx</FormItemWrapper></FormGrid.Col>
* </EasyTableFilter>
*
* -- children 可为 function
* <EasyTableFilter>
* {(form) => {
* return <FormItemWrapper name="field1" label="条件1">xxx</FormItemWrapper>
* }}
* </EasyTableFilter>
*
* 2. 用户2(自定义布局)
* EasyTableFilter设置 isPure = true,FormItem无布局规则
* 3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例
* 4. 默认布局下,可通过设置 filterOperate 设置操作按钮
* 5. Filter 子节点包含 hidden = true 会被忽略
* 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden
* 7. 通过设置 defaultResetButtonTriggerRequest,默认重启按钮触发请求,默认值:true
* 8. EasyTableFilter 子节点可使用 FormItemWrapper,FormItemWrapper中可配置label宽度等
*```
*/
var EasyTableFilter = function EasyTableFilter(props) {
var screenType = fbaHooks.useResponsivePoint() || 'md';
var ctx = useContext(EasyTableContext);
var queryButtonProps = props.queryButtonProps,
resetButtonProps = props.resetButtonProps,
filterOperate = props.filterOperate,
_props$formClassName = props.formClassName,
formClassName = _props$formClassName === void 0 ? '' : _props$formClassName,
defaultResetButtonTriggerRequest = props.defaultResetButtonTriggerRequest,
filterWrapperStyle = props.filterWrapperStyle,
filterWrapperClassName = props.filterWrapperClassName,
rightOperateAreaAppendType = props.rightOperateAreaAppendType,
easyFormProps = props.easyFormProps;
var cacheKey = ctx.cacheKey,
foldKeys = ctx.foldKeys,
fieldNames = ctx.fieldNames,
onRequest = ctx.onRequest,
pageSize = ctx.pageSize,
getPaginationStatus = ctx.getPaginationStatus,
initialValues = ctx.initialValues,
form = ctx.form,
onFormFinish = ctx.onFormFinish;
var children = typeof props.children === 'function' ? props.children(form) : props.children;
var rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';
var childrens = useMemo(function () {
if (isFragment(children)) {
return Children.toArray(children.props.children);
} else {
return Children.toArray(children);
}
}, [children]);
var _useState = useState(false),
_useState2 = _slicedToArray(_useState, 2),
openFold = _useState2[0],
setOpenFold = _useState2[1];
var onReset = hooks.useCallbackRef(function () {
return new Promise(function ($return, $error) {
filterCache.remove(cacheKey);
form.resetFields();
form.setFieldsValue(initialValues);
if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {
return Promise.resolve(form.validateFields()).then(function ($await_2) {
try {
if (getPaginationStatus()) {
onRequest(_objectSpread2(_defineProperty(_defineProperty({}, fieldNames.pageNo, 1), fieldNames.pageSize, pageSize), initialValues));
} else {
onRequest(initialValues);
}
return $If_1.call(this);
} catch ($boundEx) {
return $error($boundEx);
}
}.bind(this), $error);
}
function $If_1() {
return $return();
}
return $If_1.call(this);
});
});
var formRowChildren = useMemo(function () {
var defaultRightList = [!(queryButtonProps !== null && queryButtonProps !== void 0 && queryButtonProps.hidden) ? /*#__PURE__*/jsx(ButtonWrapper, _objectSpread2(_objectSpread2({
type: "primary",
htmlType: "submit"
}, queryButtonProps), {}, {
children: (queryButtonProps === null || queryButtonProps === void 0 ? void 0 : queryButtonProps.text) || '查询'
}), "1") : null, !(resetButtonProps !== null && resetButtonProps !== void 0 && resetButtonProps.hidden) ? /*#__PURE__*/jsx(ButtonWrapper, _objectSpread2(_objectSpread2({
onClick: onReset
}, resetButtonProps), {}, {
children: (resetButtonProps === null || resetButtonProps === void 0 ? void 0 : resetButtonProps.text) || '重置'
}), "2") : null].filter(Boolean);
var customFormOperateCol = filterOperate === null || filterOperate === void 0 ? void 0 : filterOperate(form);
var customRightList = customFormOperateCol === null || customFormOperateCol === void 0 ? void 0 : customFormOperateCol.rightList;
var leftList = (customFormOperateCol === null || customFormOperateCol === void 0 ? void 0 : customFormOperateCol.leftList) || [];
var rightList = defaultRightList;
if (customRightList) {
if (rightOperateAreaAppendTypeFt === 'afterAppend') {
rightList = [].concat(_toConsumableArray(defaultRightList), _toConsumableArray(customRightList));
} else if (rightOperateAreaAppendTypeFt === 'beforeAppend') {
rightList = [].concat(_toConsumableArray(customRightList), _toConsumableArray(defaultRightList));
} else {
rightList = customRightList;
}
}
if (foldKeys.length > 0) {
var changeFolditem = /*#__PURE__*/jsx(ButtonWrapper, {
type: "link",
style: {
padding: '0'
},
onClick: function onClick() {
setOpenFold(!openFold);
},
children: openFold ? /*#__PURE__*/jsxs("span", {
children: ["\u6536\u8D77", /*#__PURE__*/jsx(_UpOutlined, {
style: {
marginLeft: 3,
fontSize: 12
}
})]
}) : /*#__PURE__*/jsxs("span", {
children: ["\u5C55\u5F00", /*#__PURE__*/jsx(_DownOutlined, {
style: {
marginLeft: 3,
fontSize: 12
}
})]
})
}, "fold-trigger");
if (rightList.length > 0 || leftList.length === 0) {
rightList.push(changeFolditem);
} else if ((leftList === null || leftList === void 0 ? void 0 : leftList.length) > 0) {
leftList.push(changeFolditem);
}
}
return childrens.map(function (item, index) {
if (!openFold && foldKeys.find(function (keyItem) {
return ".$".concat(keyItem) === item.key;
})) return null;
if (item.props['hidden']) return null;
if (item.type['domTypeName'] === 'FormCol') return item;
return /*#__PURE__*/jsx(FormGrid.Col, {
children: item
}, index);
}).filter(Boolean).concat(/*#__PURE__*/jsx(FormGrid.OperateCol, _objectSpread2(_objectSpread2({}, customFormOperateCol), {}, {
leftList: leftList,
rightList: rightList
}), 999));
}, [childrens, filterOperate, foldKeys, form, onReset, openFold, queryButtonProps, resetButtonProps, rightOperateAreaAppendTypeFt]);
var labelAlign = screenType === 'xs' ? 'left' : (easyFormProps === null || easyFormProps === void 0 ? void 0 : easyFormProps.labelAlign) || 'right';
return /*#__PURE__*/jsx(BlockLayout, {
className: classNames('easy-table-filter', filterWrapperClassName),
style: filterWrapperStyle,
children: /*#__PURE__*/jsx(EasyForm, _objectSpread2(_objectSpread2({
form: form,
autoComplete: "off",
onFinish: onFormFinish
// initialValues={initialValues}
,
className: formClassName,
style: props.formStyle,
isPure: true,
labelWidth: "80",
formItemGap: "15"
}, easyFormProps), {}, {
labelAlign: labelAlign,
children: props.isPure ? children : /*#__PURE__*/jsx(FormGrid.Row, {
gutter: [15, 0],
gridSize: props.formGridSize,
children: formRowChildren
})
}))
});
};
/**
* 在 EasyTable子组件内才可使用
* @returns
*/
var useEasyTable = function useEasyTable() {
var ctx = useContext(EasyTableContext);
return ctx.getEasyTableRef();
};
/**
* @deprecated 已过时 @4.5.0版本移除,请使用 useEasyTable
* @returns
*/
var useEasyTablRef = function useEasyTablRef() {
var ctx = useContext(EasyTableContext);
return {
current: ctx.getEasyTableRef()
};
};
var FoldOperate = function FoldOperate(props) {
var _useState = useState(props.initSelectedRowKeys || []),
_useState2 = _slicedToArray(_useState, 2),
selectedRowKeys = _useState2[0],
setSelectedRowKeys = _useState2[1];
var rowSelection = {
type: 'checkbox',
selectedRowKeys: selectedRowKeys,
onChange: function onChange(selectedRowKeys) {
setSelectedRowKeys(selectedRowKeys);
props.onChange(selectedRowKeys);
if (props.cacheKey) {
columnFoldCache.set(props.cacheKey, selectedRowKeys);
}
}
};
var columns = [{
title: '字段名称',
dataIndex: 'title',
render: function render(value, recrd) {
return recrd['_isFoldTitle'] || value;
}
}, {
title: '字段Key',
dataIndex: 'dataIndex'
}];
return /*#__PURE__*/jsx(Fragment, {
children: /*#__PURE__*/jsx(Drawer, {
title: "\u9009\u62E9\u5B57\u6BB5",
open: props.open,
onClose: props.onClose,
width: '35%',
styles: {
body: {
padding: 15
}
},
children: /*#__PURE__*/jsx(Table, {
bordered: true,
size: "small",
columns: columns,
rowSelection: rowSelection,
rowKey: "dataIndex",
pagination: false,
scroll: {
x: 'max-content'
},
dataSource: props.dataList
})
})
});
};
var _excluded$1 = ["tooltip", "tipsWrapperProps", "title"];
var useColumnsAppendTips = function useColumnsAppendTips(props) {
return useMemo(function () {
var tempList = props.columns.map(function (item) {
var tooltip = item.tooltip,
tipsWrapperProps = item.tipsWrapperProps,
title = item.title,
otherProps = _objectWithoutProperties(item, _excluded$1);
if (typeof title === 'string' && tipsWrapperProps) {
if (typeof tipsWrapperProps === 'string') {
return _objectSpread2(_objectSpread2({}, otherProps), {}, {
title: /*#__PURE__*/jsx(TipsWrapper, {
tipType: "popover",
popoverProps: {
content: tipsWrapperProps
},
children: title
})
});
}
return _objectSpread2(_objectSpread2({}, otherProps), {}, {
title: /*#__PURE__*/jsx(TipsWrapper, _objectSpread2(_objectSpread2({}, tipsWrapperProps), {}, {
children: title
}))
});
}
if (typeof title === 'string' && !!tooltip) {
return _objectSpread2(_objectSpread2({}, otherProps), {}, {
title: /*#__PURE__*/jsx(TableTitleTooltip, {
tooltip: tooltip,
title: title
})
});
}
return item;
}).filter(Boolean);
return _toConsumableArray(tempList);
}, [props.columns]);
};
var useColumnsAppendInnerColumn = function useColumnsAppendInnerColumn(props) {
var columnsNew = props.columns;
return fbaHooks.useMemoCustom(function () {
var _props$columnFoldConf;
if ((_props$columnFoldConf = props.columnFoldConfig) !== null && _props$columnFoldConf !== void 0 && _props$columnFoldConf.hidden) return columnsNew;
var finalItem = columnsNew[columnsNew.length - 1];
if (props.foldColumnList.length > 0 && columnsNew.length > 0) {
var foldColumnTarget = columnsNew.find(function (item) {
return item['_isFoldColumn'];
});
if (foldColumnTarget && finalItem.dataIndex !== foldColumnTarget.dataIndex) {
foldColumnTarget.title = foldColumnTarget['_isFoldTitle'];
foldColumnTarget['_isFoldColumn'] = false;
}
if (!finalItem['_isFoldColumn']) {
var _props$columnFoldConf2, _props$columnFoldConf3, _props$columnFoldConf4, _props$columnFoldConf5, _props$columnFoldConf6, _props$columnFoldConf7;
finalItem['_isFoldTitle'] = finalItem['_isFoldTitle'] || finalItem.title;
finalItem['_isFoldColumn'] = true;
var triggerType = (_props$columnFoldConf2 = props.columnFoldConfig) === null || _props$columnFoldConf2 === void 0 ? void 0 : _props$columnFoldConf2.triggerType;
finalItem.title = /*#__PURE__*/jsxs(FlexLayout, {
direction: "horizontal",
fullIndex: 0,
style: {
alignItems: 'center'
},
children: [/*#__PURE__*/jsx("span", {
children: finalItem.title
}), /*#__PURE__*/jsx("div", {
style: {
padding: '0 5px 0 20px',
display: 'flex'
},
children: triggerType === 'drawer' ? /*#__PURE__*/jsx(IconWrapper, {
onClick: props.onOpenColumnFoldModal,
text: (_props$columnFoldConf3 = props.columnFoldConfig) === null || _props$columnFoldConf3 === void 0 ? void 0 : _props$columnFoldConf3.text,
size: "small",
icon: ((_props$columnFoldConf4 = props.columnFoldConfig) === null || _props$columnFoldConf4 === void 0 ? void 0 : _props$columnFoldConf4.icon) || /*#__PURE__*/jsx(SvgHttpView, {
svgPath: "ionic/list-circle",
color: "#868686"
}),
hoverTips: ((_props$columnFoldConf5 = props.columnFoldConfig) === null || _props$columnFoldConf5 === void 0 ? void 0 : _props$columnFoldConf5.hoverTipText) || '字段列表',
style: {
padding: 0,
margin: 0
}
}) : /*#__PURE__*/jsx(FoldOperateDropdown, {
dataList: props.foldColumnList,
onChange: props.onChangeFoldColumnList,
cacheKey: props.cacheKey,
initSelectedRowKeys: props.showFoldKeyList,
children: /*#__PURE__*/jsx(IconWrapper, {
text: (_props$columnFoldConf6 = props.columnFoldConfig) === null || _props$columnFoldConf6 === void 0 ? void 0 : _props$columnFoldConf6.text,
style: {
padding: 0,
margin: 0
},
size: "small",
icon: ((_props$columnFoldConf7 = props.columnFoldConfig) === null || _props$columnFoldConf7 === void 0 ? void 0 : _props$columnFoldConf7.icon) || /*#__PURE__*/jsx(SvgHttpView, {
svgPath: "ionic/list-circle",
color: "#868686"
})
})
})
})]
});
}
}
return columnsNew;
}, [props.columns, props.columnFoldConfig]);
};
var useColumnsToHidden = function useColumnsToHidden(props) {
return useMemo(function () {
var tempList = props.columns.map(function (item) {
var hidden = item.hidden,
isFold = item.isFold;
if (hidden) return null;
if (isFold && !props.showFoldKeyList.includes(item.dataIndex)) return null;
return item;
}).filter(Boolean);
return _toConsumableArray(tempList);
}, [props.columns, props.showFoldKeyList]);
};
var useColumnByAsyncColumnRequest = function useColumnByAsyncColumnRequest(props) {
return useMemo(function () {
if (!Object.keys(props.asyncColumnRequestResult)) return props.columns;
return props.columns.map(function (item) {
var dataIndex = item.dataIndex;
var result = props.asyncColumnRequestResult[dataIndex];
if (dataIndex && result) {
if (result.loading) {
item.render = function (value) {
return /*#__PURE__*/jsx(ButtonWrapper, {
loading: true,
type: "text",
loadingPosition: "center",
removeGap: true,
children: value
});
};
} else if (item.asyncRender) {
item.render = function (value, record, index) {
var _item$asyncRender;
return (_item$asyncRender = item.asyncRender) === null || _item$asyncRender === void 0 ? void 0 : _item$asyncRender.call(item, value, record, index, result.respData);
};
}
}
return item;
});
}, [props.columns, props.asyncColumnRequestResult]);
};
var _excluded = ["children", "rowKey", "pagination", "isSync"];
/**
* 表格渲染
* @param props
* ```
* 1. 继承了 TableProps 可设置antd table功能
* 2. 分页功能已内置处理,不调用 onChange
* ```
*/
var EasyTableTable = function EasyTableTable(props) {
var ctx = useContext(EasyTableContext);
var children = props.children,
rowKey = props.rowKey,
pagination = props.pagination,
isSync = props.isSync,
otherProps = _objectWithoutProperties(props, _excluded);
var screenType = fbaHooks.useResponsivePoint() || '';
var asyncColumnRequestResultRef = useRef({});
var _useState = useState({}),
_useState2 = _slicedToArray(_useState, 2),
asyncColumnRequestResult = _useState2[0],
setAsyncColumnRequestResult = _useState2[1];
var _ctx$dynamicColumnsCo = ctx.dynamicColumnsConfig,
columnFoldConfig = _ctx$dynamicColumnsCo.columnFoldConfig,
onCloseColumnFoldModal = _ctx$dynamicColumnsCo.onCloseColumnFoldModal,
columnFoldOpen = _ctx$dynamicColumnsCo.columnFoldOpen,
onOpenColumnFoldModal = _ctx$dynamicColumnsCo.onOpenColumnFoldModal,
asyncColumnRequest = _ctx$dynamicColumnsCo.asyncColumnRequest,
showFoldKeyList = _ctx$dynamicColumnsCo.showFoldKeyList,
onChangeShowFoldKeyList = _ctx$dynamicColumnsCo.onChangeShowFoldKeyList;
var cacheKey = ctx.cacheKey,
fieldNames = ctx.fieldNames,
onRequest = ctx.onRequest,
tableDataSource = ctx.tableDataSource,
pageSize = ctx.pageSize,
tableTotal = ctx.tableTotal,
loading = ctx.loading,
paginationFixed = ctx.paginationFixed,
onSetPaginationStatus = ctx.onSetPaginationStatus;
var cacheParams = filterCache.get(cacheKey);
fbaHooks.useEffectCustom(function () {
/** 获取初始化 columns 数据 */
ctx.onSetBaseColumns(props.columns || []);
}, []);
useEffect(function () {
if (asyncColumnRequest !== null && asyncColumnRequest !== void 0 && asyncColumnRequest.length) {
var _loop = function _loop() {
var element = asyncColumnRequest[index];
asyncColumnRequestResultRef.current = _objectSpread2(_objectSpread2({}, asyncColumnRequestResultRef.current), {}, _defineProperty({}, element.dataIndex, {
loading: true
}));
setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);
element.onRequest().then(function (respData) {
asyncColumnRequestResultRef.current = _objectSpread2(_objectSpread2({}, asyncColumnRequestResultRef.current), {}, _defineProperty({}, element.dataIndex, {
loading: false,
respData: respData
}));
setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);
}).catch(function (error) {
console.error(error === null || error === void 0 ? void 0 : error.message);
asyncColumnRequestResultRef.current = _objectSpread2(_objectSpread2({}, asyncColumnRequestResultRef.current), {}, _defineProperty({}, element.dataIndex, {
loading: false
}));
setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);
});
};
for (var index = 0; index < asyncColumnRequest.length; index++) {
_loop();
}
}
}, [asyncColumnRequest]);
var columnsOriginal = fbaHooks.useMemoCustom(function () {
if (ctx.columns) {
ctx.onSetColumns(ctx.columns);
return ctx.columns;
} else {
ctx.onSetColumns(props.columns);
return props.columns;
}
}, [ctx.columns, props.columns]);
var columnsNew = useColumnsAppendTips({
columns: _toConsumableArray(columnsOriginal)
});
var foldColumnList = columnsOriginal.filter(function (item) {
return !item.hidden && item.isFold && item.dataIndex;
});
columnsNew = useColumnsAppendInnerColumn({
cacheKey: cacheKey,
columns: columnsNew,
foldColumnList: foldColumnList,
showFoldKeyList: showFoldKeyList,
columnFoldConfig: columnFoldConfig,
onOpenColumnFoldModal: onOpenColumnFoldModal,
onChangeFoldColumnList: onChangeShowFoldKeyList
});
columnsNew = useColumnsToHidden({
columns: columnsNew,
showFoldKeyList: showFoldKeyList
});
columnsNew = useColumnByAsyncColumnRequest({
columns: columnsNew,
asyncColumnRequestResult: asyncColumnRequestResult
});
fbaHooks.useEffectCustom(function () {
onSetPaginationStatus(pagination !== false);
}, [pagination]);
// 分页参数发生变更
hooks.useUpdateEffect(function () {
if (!paginationFixed) {
if (pagination !== false) {
onRequest(_defineProperty(_defineProperty({}, fieldNames.pageSize, cacheParams[fieldNames.pageSize] || pageSize), fieldNames.pageNo, 1));
} else {
onRequest(_defineProperty(_defineProperty({}, fieldNames.pageSize, undefined), fieldNames.pageNo, undefined));
}
}
}, [pagination]);
var tablePaginationData = useMemo(function () {
if (paginationFixed || pagination === false) return false;
return _objectSpread2({
showSizeChanger: true,
current: cacheParams[fieldNames.pageNo] || 1,
pageSize: cacheParams[fieldNames.pageSize] || pageSize,
total: tableTotal,
showTotal: function showTotal(total) {
return "\u5171 ".concat(total, " \u6761\u8BB0\u5F55");
}
}, props.pagination);
}, [cacheParams, fieldNames.pageNo, fieldNames.pageSize, pageSize, pagination, paginationFixed, props.pagination, tableTotal]);
var onChangePage = function onChangePage(pagination, filters, sorter, extra) {
if (extra.action === 'paginate' && tablePaginationData) {
onRequest(_defineProperty(_defineProperty({}, fieldNames.pageSize, pagination.pageSize), fieldNames.pageNo, pagination.current));
} else {
var _props$onChange;
(_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, pagination, filters, sorter, extra);
}
};
var dataSource = useMemo(function () {
if (!tableDataSource) return undefined;
if (tableDataSource.length === 0) {
return [];
}
if (typeof rowKey === 'string' && isUndefinedOrNull(tableDataSource[0][rowKey])) {
return tableDataSource.map(function (item) {
item[rowKey] = getUuid();
return item;
});
}
return tableDataSource;
}, [tableDataSource, rowKey]);
columnsNew = useMemo(function () {
return columnsNew.map(function (item) {
if (!!item.fixed && screenType === 'xs') {
item.fixed = undefined;
}
if (!!item.defaultValue && !item.render) {
item.render = function (value) {
return isUndefinedOrNull(value) || value == '' ? item.defaultValue : value;
};
}
return item;
});
}, [columnsNew, screenType]);
var tableRender = function tableRender() {
if (isSync && !dataSource) {
return /*#__PURE__*/jsxs(Fragment, {
children: [children, /*#__PURE__*/jsx(Table, {
size: "small",
scroll: {
x: 'max-content'
},
bordered: true,
rowKey: rowKey,
columns: columnsNew,
loading: loading
}, "1")]
});
}
if (isMacEnv()) {
return /*#__PURE__*/jsxs(Fragment, {
children: [children, /*#__PURE__*/jsx(Table, _objectSpread2(_objectSpread2({
size: "small",
scroll: {
x: 'max-content'
},
bordered: true
}, otherProps), {}, {
columns: columnsNew,
pagination: tablePaginationData,
rowKey: rowKey,
onChange: onChangePage,
loading: loading,
dataSource: dataSource
}), "2")]
});
}
return /*#__PURE__*/jsxs(Fragment, {
children: [children, /*#__PURE__*/jsx(TableScrollbar, {
children: /*#__PURE__*/jsx(Table, _objectSpread2(_objectSpread2({
size: "small",
scroll: {
x: 'max-content'
},
bordered: true
}, otherProps), {}, {
columns: columnsNew,
pagination: tablePaginationData,
rowKey: rowKey,
onChange: onChangePage,
loading: loading,
dataSource: dataSource
}), "3")
})]
});
};
return /*#__PURE__*/jsxs(BlockLayout, {
className: classNames('easy-table-table', {
'ett-empty-show-small': props.emptyShowSize === 'small'
}, props.tableWrapperClassName),
style: props.tableWrapperStyle,
children: [tableRender(), /*#__PURE__*/jsx(FoldOperate, {
dataList: foldColumnList,
onClose: onCloseColumnFoldModal,
open: columnFoldOpen,
onChange: onChangeShowFoldKeyList,
cacheKey: cacheKey,
initSelectedRowKeys: showFoldKeyList
})]
});
};
/**
* 对 查询条件+表格数据 进行深度封装,内置数据交互处理
* ```
* Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table
*
* 1. 废弃modelKey参数
* 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true;如果存在多个EasyTable缓存情况可设置cacheSwitch为自定义字符串
* 3. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作
* 4. 可通过属性 initRequest 设置初始化是否请求数据
* 5. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize
* 6. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)
* 7. filterFixed=true,设置查询条件固定,不随滚动条滚动
* 8. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动
* 9. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值
* 10. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提高windows下table左右滚动体验
* 11. 可实现部分字段折叠,手动选择显示,将EasyTable.Table columns中isFold属性设为true,可通过EasyTable columnFoldConfig配置属性,demo(https://fex.qa.tcshuke.com/docs/admin/main/crud/demo1)
* 12. 通过asyncColumnRequest、asyncRender配合使用可实现表格列数据接口渲染(demo:https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table)
* ```
*/
var EasyTable = fbaUtils.attachPropertiesToComponent(EasyTable$1, {
/**
* 过滤条件
*```
* 1. 用法1
* -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }
* <EasyTable.Filter>
* <FormItemWrapper name="field1" label="条件1">xxx</FormItemWrapper>
* </EasyTable.Filter>
*
* -- 自定义网格布局 使用 FormGrid.Col 组件包装 FormItemWrapper
* <EasyTable.Filter>
* <FormGrid.Col span={12}><FormItemWrapper name="field1" label="条件1">xxx</FormItemWrapper></FormGrid.Col>
* </EasyTable.Filter>
*
* -- children 可为 function
* <EasyTable.Filter>
* {(form) => {
* return <FormItemWrapper name="field1" label="条件1">xxx</FormItemWrapper>
* }}
* </EasyTable.Filter>
* 2. 用户2(自定义布局)
* EasyTable.Filter设置 isPure = true,FormItem无布局规则
* 3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例
* 4. 默认布局下,可通过设置 filterOperate 设置操作按钮
* 5. Filter 子节点包含 hidden = true 会被忽略
* 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden
* 7. EasyTableFilter 子节点可使用 FormItemWrapper,FormItemWrapper中可配置label宽度等
* 8. 通过easyFormProps属性可整体控制子节点FormItem布局
*```
*/
Filter: EasyTableFilter,
/**
* 表格渲染
* @param props
* ```
* 1. 继承了 TableProps 可设置antd table功能
* 2. 分页功能已内置处理,不调用 onChange
* ```
*/
Table: EasyTableTable,
/**
* @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable
*/
useEasyTablRef: useEasyTablRef,
/** 在 EasyTable子组件内才可使用 *