@pointcloud/pcloud-components 0.0.1 → 0.1.1
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/README.md +47 -47
- package/dist/esm/AdvancedFilter/FormFilter.d.ts +1 -0
- package/dist/esm/AdvancedFilter/styles/index.less +2 -1
- package/dist/esm/DCascader/index.d.ts +28 -0
- package/dist/esm/DCascader/index.js +231 -0
- package/dist/esm/DCascader/index.less +20 -0
- package/dist/esm/DInput/index.d.ts +19 -0
- package/dist/esm/DInput/index.js +128 -0
- package/dist/esm/DSelect/index.d.ts +25 -0
- package/dist/esm/DSelect/index.js +187 -0
- package/dist/esm/DTable/index.d.ts +39 -0
- package/dist/esm/DTable/index.js +246 -0
- package/dist/esm/DTable/index.less +62 -0
- package/dist/esm/DTreeSelect/index.d.ts +26 -0
- package/dist/esm/DTreeSelect/index.js +209 -0
- package/dist/esm/DTreeSelect/index.less +9 -0
- package/dist/esm/ErrorBoundary/index.d.ts +1 -0
- package/dist/esm/ErrorBoundary/index.less +2 -1
- package/dist/esm/LabelValue/styles/index.less +2 -1
- package/dist/esm/Loading/index.d.ts +1 -1
- package/dist/esm/Loading/loading.d.ts +1 -0
- package/dist/esm/Loading/styles/index.less +2 -1
- package/dist/esm/NoData/index.d.ts +1 -0
- package/dist/esm/NoData/styles/index.less +2 -1
- package/dist/esm/commonStyle/index.less +1 -0
- package/dist/esm/index.d.ts +10 -0
- package/dist/esm/index.js +6 -1
- package/dist/umd/pcloud-components.min.css +1 -1
- package/dist/umd/pcloud-components.min.js +1 -114
- package/package.json +4 -4
- package/dist/cjs/AdvancedFilter/FormFilter.d.ts +0 -5
- package/dist/cjs/AdvancedFilter/FormFilter.js +0 -158
- package/dist/cjs/AdvancedFilter/demos/demo1.d.ts +0 -3
- package/dist/cjs/AdvancedFilter/demos/demo1.js +0 -56
- package/dist/cjs/AdvancedFilter/demos/demo2.d.ts +0 -3
- package/dist/cjs/AdvancedFilter/demos/demo2.js +0 -63
- package/dist/cjs/AdvancedFilter/demos/demo3.d.ts +0 -3
- package/dist/cjs/AdvancedFilter/demos/demo3.js +0 -113
- package/dist/cjs/AdvancedFilter/index.d.ts +0 -5
- package/dist/cjs/AdvancedFilter/index.js +0 -114
- package/dist/cjs/AdvancedFilter/interface.d.ts +0 -97
- package/dist/cjs/AdvancedFilter/interface.js +0 -17
- package/dist/cjs/AdvancedFilter/styles/index.less +0 -115
- package/dist/cjs/ErrorBoundary/index.d.ts +0 -6
- package/dist/cjs/ErrorBoundary/index.js +0 -45
- package/dist/cjs/ErrorBoundary/index.less +0 -42
- package/dist/cjs/LabelValue/demos/demo1.d.ts +0 -3
- package/dist/cjs/LabelValue/demos/demo1.js +0 -35
- package/dist/cjs/LabelValue/demos/demo2.d.ts +0 -3
- package/dist/cjs/LabelValue/demos/demo2.js +0 -36
- package/dist/cjs/LabelValue/demos/demo3.d.ts +0 -3
- package/dist/cjs/LabelValue/demos/demo3.js +0 -36
- package/dist/cjs/LabelValue/index.d.ts +0 -16
- package/dist/cjs/LabelValue/index.js +0 -50
- package/dist/cjs/LabelValue/interface.d.ts +0 -29
- package/dist/cjs/LabelValue/interface.js +0 -17
- package/dist/cjs/LabelValue/styles/index.less +0 -18
- package/dist/cjs/index.d.ts +0 -4
- package/dist/cjs/index.js +0 -38
- package/dist/esm/AdvancedFilter/demos/demo1.d.ts +0 -2
- package/dist/esm/AdvancedFilter/demos/demo1.js +0 -25
- package/dist/esm/AdvancedFilter/demos/demo2.d.ts +0 -2
- package/dist/esm/AdvancedFilter/demos/demo2.js +0 -39
- package/dist/esm/AdvancedFilter/demos/demo3.d.ts +0 -2
- package/dist/esm/AdvancedFilter/demos/demo3.js +0 -86
- package/dist/esm/LabelValue/demos/demo1.d.ts +0 -2
- package/dist/esm/LabelValue/demos/demo1.js +0 -9
- package/dist/esm/LabelValue/demos/demo2.d.ts +0 -2
- package/dist/esm/LabelValue/demos/demo2.js +0 -10
- package/dist/esm/LabelValue/demos/demo3.d.ts +0 -2
- package/dist/esm/LabelValue/demos/demo3.js +0 -10
- package/dist/esm/Loading/demos/demo1.d.ts +0 -2
- package/dist/esm/Loading/demos/demo1.js +0 -17
- package/dist/esm/Loading/demos/demo2.d.ts +0 -2
- package/dist/esm/Loading/demos/demo2.js +0 -18
- package/dist/esm/NoData/demos/demo1.d.ts +0 -2
- package/dist/esm/NoData/demos/demo1.js +0 -12
- package/dist/esm/NoData/demos/demo2.d.ts +0 -2
- package/dist/esm/NoData/demos/demo2.js +0 -14
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
var _excluded = ["className", "popupClassName", "fieldNames", "searchValue", "filterOption", "options", "onSearch", "loading", "debounce"];
|
|
2
|
+
|
|
3
|
+
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; }
|
|
4
|
+
|
|
5
|
+
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; }
|
|
6
|
+
|
|
7
|
+
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; }
|
|
8
|
+
|
|
9
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
10
|
+
|
|
11
|
+
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."); }
|
|
12
|
+
|
|
13
|
+
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); }
|
|
14
|
+
|
|
15
|
+
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; }
|
|
16
|
+
|
|
17
|
+
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; }
|
|
18
|
+
|
|
19
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
20
|
+
|
|
21
|
+
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; }
|
|
22
|
+
|
|
23
|
+
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; }
|
|
24
|
+
|
|
25
|
+
/*
|
|
26
|
+
* @Author : wangfeihu
|
|
27
|
+
* @Date : 2023-05-17 08:41:25
|
|
28
|
+
* @LastEditors : wangfeihu
|
|
29
|
+
* @LastEditTime : 2023-05-26 14:44:38
|
|
30
|
+
* @Description : 基于antd的Select组件
|
|
31
|
+
*/
|
|
32
|
+
import React, { forwardRef, useEffect, useRef, useState, useMemo, useContext } from 'react';
|
|
33
|
+
import { Select } from 'antd';
|
|
34
|
+
import { ConfigContext } from "../ConfigProvider";
|
|
35
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
36
|
+
|
|
37
|
+
function InternalSelect(props, ref) {
|
|
38
|
+
var _props$className = props.className,
|
|
39
|
+
className = _props$className === void 0 ? '' : _props$className,
|
|
40
|
+
_props$popupClassName = props.popupClassName,
|
|
41
|
+
popupClassName = _props$popupClassName === void 0 ? '' : _props$popupClassName,
|
|
42
|
+
fieldNames = props.fieldNames,
|
|
43
|
+
searchValue = props.searchValue,
|
|
44
|
+
filterOption = props.filterOption,
|
|
45
|
+
initOptions = props.options,
|
|
46
|
+
onSearch = props.onSearch,
|
|
47
|
+
initLoading = props.loading,
|
|
48
|
+
_props$debounce = props.debounce,
|
|
49
|
+
debounce = _props$debounce === void 0 ? false : _props$debounce,
|
|
50
|
+
otherProps = _objectWithoutProperties(props, _excluded);
|
|
51
|
+
|
|
52
|
+
var _useContext = useContext(ConfigContext),
|
|
53
|
+
getPrefixCls = _useContext.getPrefixCls;
|
|
54
|
+
|
|
55
|
+
var _useState = useState([]),
|
|
56
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
57
|
+
options = _useState2[0],
|
|
58
|
+
setOptions = _useState2[1];
|
|
59
|
+
|
|
60
|
+
var _useState3 = useState(typeof initLoading === 'boolean' ? initLoading : true),
|
|
61
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
62
|
+
loading = _useState4[0],
|
|
63
|
+
setLoading = _useState4[1];
|
|
64
|
+
|
|
65
|
+
var _className = "".concat(getPrefixCls('select'), " ").concat(className);
|
|
66
|
+
|
|
67
|
+
var _popupClassName = "".concat(getPrefixCls('select-dropdown'), " ").concat(popupClassName);
|
|
68
|
+
|
|
69
|
+
var debounceRef = useRef(null); // 防抖处理引用
|
|
70
|
+
|
|
71
|
+
var loadingRef = useRef({
|
|
72
|
+
timer: null,
|
|
73
|
+
status: 'done'
|
|
74
|
+
});
|
|
75
|
+
var loadingParamsRef = useRef(null); // 数据加载同步处理引用
|
|
76
|
+
|
|
77
|
+
var _fieldNames = _objectSpread({
|
|
78
|
+
label: 'label',
|
|
79
|
+
value: 'value',
|
|
80
|
+
children: 'children'
|
|
81
|
+
}, fieldNames);
|
|
82
|
+
|
|
83
|
+
var _showSearch = !!onSearch;
|
|
84
|
+
|
|
85
|
+
var _debounce = getDelayTime(debounce);
|
|
86
|
+
|
|
87
|
+
var _loadingState = getDelayTime(initLoading, 600);
|
|
88
|
+
|
|
89
|
+
var _loading = typeof initLoading === 'boolean' ? initLoading : loading;
|
|
90
|
+
|
|
91
|
+
var _filterOption = getFilterOption(!_showSearch, filterOption, _fieldNames);
|
|
92
|
+
|
|
93
|
+
var getOptions = useMemo(function () {
|
|
94
|
+
return typeof initOptions === 'function' ? initOptions : function (params) {
|
|
95
|
+
return Promise.resolve(initOptions || []);
|
|
96
|
+
};
|
|
97
|
+
}, [initOptions]);
|
|
98
|
+
|
|
99
|
+
var _onSearch = function _onSearch(value) {
|
|
100
|
+
if (onSearch) {
|
|
101
|
+
if (_debounce > 0) {
|
|
102
|
+
clearTimeout(debounceRef.current);
|
|
103
|
+
debounceRef.current = setTimeout(function () {
|
|
104
|
+
updateOptions(onSearch, value);
|
|
105
|
+
}, _debounce);
|
|
106
|
+
} else {
|
|
107
|
+
updateOptions(onSearch, value);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
var updateOptions = function updateOptions(fun, value) {
|
|
113
|
+
// 设置加载中状态
|
|
114
|
+
if (_loadingState > 0) {
|
|
115
|
+
loadingRef.current.status = 'loading';
|
|
116
|
+
clearTimeout(loadingRef.current.timer);
|
|
117
|
+
loadingRef.current.timer = setTimeout(function () {
|
|
118
|
+
loadingRef.current.status === 'loading' && setLoading(true);
|
|
119
|
+
}, _loadingState);
|
|
120
|
+
} // 记录请求参数,清空options
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
loadingParamsRef.current = value;
|
|
124
|
+
setOptions([]); // 发起请求
|
|
125
|
+
|
|
126
|
+
fun === null || fun === void 0 ? void 0 : fun(value).then(function (response) {
|
|
127
|
+
if (loadingParamsRef.current === value) {
|
|
128
|
+
setOptions(response);
|
|
129
|
+
setLoading(false);
|
|
130
|
+
loadingRef.current.status = 'done';
|
|
131
|
+
}
|
|
132
|
+
}).catch(function () {
|
|
133
|
+
if (loadingParamsRef.current === value) {
|
|
134
|
+
setLoading(false);
|
|
135
|
+
loadingRef.current.status = 'done';
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
}; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
useEffect(function () {
|
|
142
|
+
return updateOptions(getOptions, searchValue);
|
|
143
|
+
}, [getOptions, searchValue]);
|
|
144
|
+
return /*#__PURE__*/_jsx(Select, _objectSpread(_objectSpread({
|
|
145
|
+
allowClear: true,
|
|
146
|
+
filterOption: _filterOption,
|
|
147
|
+
showSearch: _showSearch,
|
|
148
|
+
searchValue: searchValue
|
|
149
|
+
}, otherProps), {}, {
|
|
150
|
+
ref: ref,
|
|
151
|
+
className: _className,
|
|
152
|
+
popupClassName: _popupClassName,
|
|
153
|
+
fieldNames: _fieldNames,
|
|
154
|
+
onSearch: _showSearch ? _onSearch : undefined,
|
|
155
|
+
loading: _loading,
|
|
156
|
+
options: options
|
|
157
|
+
}));
|
|
158
|
+
} // 获取延时时间,默认800ms,true代表默认时间,false代表0
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
function getDelayTime(value) {
|
|
162
|
+
var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 800;
|
|
163
|
+
|
|
164
|
+
if (value === true) {
|
|
165
|
+
return defaultValue;
|
|
166
|
+
} else if (value === false) {
|
|
167
|
+
return 0;
|
|
168
|
+
} else {
|
|
169
|
+
return typeof value === 'number' ? Number(value) || 0 : defaultValue;
|
|
170
|
+
}
|
|
171
|
+
} // 获取默认本地搜索方法
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
function getFilterOption(showSearch, filterOption, fieldNames) {
|
|
175
|
+
if (filterOption) {
|
|
176
|
+
return filterOption;
|
|
177
|
+
} else {
|
|
178
|
+
return showSearch && function (value, option) {
|
|
179
|
+
var _option$fieldNames$la;
|
|
180
|
+
|
|
181
|
+
return (_option$fieldNames$la = option[fieldNames.label]) === null || _option$fieldNames$la === void 0 ? void 0 : _option$fieldNames$la.includes(value);
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
var DSelect = /*#__PURE__*/forwardRef(InternalSelect);
|
|
187
|
+
export default DSelect;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TableProps } from 'antd';
|
|
3
|
+
import { ColumnType } from 'antd/lib/table';
|
|
4
|
+
import './index.less';
|
|
5
|
+
export declare type DTableSourceProps = {
|
|
6
|
+
records: TableProps<any>['dataSource'];
|
|
7
|
+
total: number;
|
|
8
|
+
loading?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare type TableParamsProps = {
|
|
11
|
+
current?: number;
|
|
12
|
+
size?: number;
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
};
|
|
15
|
+
export declare type DTableProps = TableProps<any> & {
|
|
16
|
+
/** 表格列的基础默认配置,默认所有列居中,表头文字超出显示省略号,详见 antd columns */
|
|
17
|
+
columnsProp?: ColumnType<any>;
|
|
18
|
+
/** 操作列配置,可以是一个普通列配置对象,也可以是一个columns的 render 函数 */
|
|
19
|
+
actionColumn?: ColumnType<any> | ColumnType<any>['render'];
|
|
20
|
+
/** 表格数据的加载函数,在表格创建、分页变化、额外参数变化时自动运行,如果设置该属性,则 dataSource 失效 */
|
|
21
|
+
loadMore?: (params?: TableParamsProps) => Promise<DTableSourceProps>;
|
|
22
|
+
/** 加载数据失败时是否显示错误信息(仅loadMore可用时生效) */
|
|
23
|
+
showErrorMsg?: boolean | ((err: any) => string);
|
|
24
|
+
/** 额外的请求参数,(仅loadMore可用时生效) */
|
|
25
|
+
extraParams?: TableParamsProps;
|
|
26
|
+
};
|
|
27
|
+
declare const DTable: React.ForwardRefExoticComponent<TableProps<any> & {
|
|
28
|
+
/** 表格列的基础默认配置,默认所有列居中,表头文字超出显示省略号,详见 antd columns */
|
|
29
|
+
columnsProp?: ColumnType<any> | undefined;
|
|
30
|
+
/** 操作列配置,可以是一个普通列配置对象,也可以是一个columns的 render 函数 */
|
|
31
|
+
actionColumn?: ColumnType<any> | ColumnType<any>['render'];
|
|
32
|
+
/** 表格数据的加载函数,在表格创建、分页变化、额外参数变化时自动运行,如果设置该属性,则 dataSource 失效 */
|
|
33
|
+
loadMore?: ((params?: TableParamsProps) => Promise<DTableSourceProps>) | undefined;
|
|
34
|
+
/** 加载数据失败时是否显示错误信息(仅loadMore可用时生效) */
|
|
35
|
+
showErrorMsg?: boolean | ((err: any) => string) | undefined;
|
|
36
|
+
/** 额外的请求参数,(仅loadMore可用时生效) */
|
|
37
|
+
extraParams?: TableParamsProps | undefined;
|
|
38
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
39
|
+
export default DTable;
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
var _excluded = ["loadMore", "columnsProp", "actionColumn", "showErrorMsg", "extraParams", "dataSource", "rowKey", "scroll", "className", "pagination", "columns", "loading"];
|
|
2
|
+
|
|
3
|
+
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; }
|
|
4
|
+
|
|
5
|
+
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; }
|
|
6
|
+
|
|
7
|
+
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; }
|
|
8
|
+
|
|
9
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
10
|
+
|
|
11
|
+
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."); }
|
|
12
|
+
|
|
13
|
+
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); }
|
|
14
|
+
|
|
15
|
+
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; }
|
|
16
|
+
|
|
17
|
+
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; }
|
|
18
|
+
|
|
19
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
20
|
+
|
|
21
|
+
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; }
|
|
22
|
+
|
|
23
|
+
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; }
|
|
24
|
+
|
|
25
|
+
/*
|
|
26
|
+
* @Author : wangfeihu
|
|
27
|
+
* @Date : 2023-05-09 15:04:48
|
|
28
|
+
* @LastEditors : wangfeihu
|
|
29
|
+
* @LastEditTime : 2023-05-29 14:31:34
|
|
30
|
+
* @Description : 基于antd的Table组件
|
|
31
|
+
*/
|
|
32
|
+
import React, { forwardRef, useEffect, useRef, useState, useContext } from 'react';
|
|
33
|
+
import { message, Table } from 'antd';
|
|
34
|
+
import { ConfigContext } from "../ConfigProvider";
|
|
35
|
+
import "./index.less";
|
|
36
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
37
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
38
|
+
// 分页器配置项
|
|
39
|
+
var defaultPagination = {
|
|
40
|
+
hideOnSinglePage: false,
|
|
41
|
+
size: 'small',
|
|
42
|
+
showSizeChanger: true,
|
|
43
|
+
showQuickJumper: true,
|
|
44
|
+
showTotal: function showTotal(total) {
|
|
45
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
46
|
+
className: "d-pagination-total",
|
|
47
|
+
children: ["\u5171", /*#__PURE__*/_jsxs("span", {
|
|
48
|
+
children: [" ", total, " "]
|
|
49
|
+
}), "\u6761"]
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
function InternalTable(props, ref) {
|
|
55
|
+
var loadMore = props.loadMore,
|
|
56
|
+
columnsProp = props.columnsProp,
|
|
57
|
+
actionColumn = props.actionColumn,
|
|
58
|
+
_props$showErrorMsg = props.showErrorMsg,
|
|
59
|
+
showErrorMsg = _props$showErrorMsg === void 0 ? true : _props$showErrorMsg,
|
|
60
|
+
extraParams = props.extraParams,
|
|
61
|
+
dataSource = props.dataSource,
|
|
62
|
+
_props$rowKey = props.rowKey,
|
|
63
|
+
rowKey = _props$rowKey === void 0 ? 'id' : _props$rowKey,
|
|
64
|
+
scroll = props.scroll,
|
|
65
|
+
className = props.className,
|
|
66
|
+
pagination = props.pagination,
|
|
67
|
+
columns = props.columns,
|
|
68
|
+
loading = props.loading,
|
|
69
|
+
otherProps = _objectWithoutProperties(props, _excluded);
|
|
70
|
+
|
|
71
|
+
var _useContext = useContext(ConfigContext),
|
|
72
|
+
getPrefixCls = _useContext.getPrefixCls;
|
|
73
|
+
|
|
74
|
+
var loadingParamsRef = useRef(null);
|
|
75
|
+
|
|
76
|
+
var _tableSource = loadMore ? [] : dataSource || [];
|
|
77
|
+
|
|
78
|
+
var _useState = useState({
|
|
79
|
+
total: _tableSource.length,
|
|
80
|
+
loading: false,
|
|
81
|
+
records: _tableSource
|
|
82
|
+
}),
|
|
83
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
84
|
+
tableSource = _useState2[0],
|
|
85
|
+
setTableSource = _useState2[1];
|
|
86
|
+
|
|
87
|
+
var _pagination = pagination === false || pagination === null ? false : _objectSpread(_objectSpread({}, defaultPagination), pagination);
|
|
88
|
+
|
|
89
|
+
var _useState3 = useState(_objectSpread(_objectSpread({}, extraParams), getTablePage(_pagination))),
|
|
90
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
91
|
+
tableParams = _useState4[0],
|
|
92
|
+
setTableParams = _useState4[1]; // 默认垂直滚动高度为 calc(100% - 56px),其中56px为表格header高度,如需修改,需要自行覆盖styles中的相关样式
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
var _scroll = scroll ? _objectSpread({
|
|
96
|
+
y: 'calc(100% - 56px)'
|
|
97
|
+
}, scroll) : {
|
|
98
|
+
y: 'calc(100% - 56px)'
|
|
99
|
+
}; // 修改列对齐方式为居中
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
var _columns = columns === null || columns === void 0 ? void 0 : columns.map(function (item) {
|
|
103
|
+
return _objectSpread(_objectSpread({
|
|
104
|
+
align: 'center',
|
|
105
|
+
ellipsis: true
|
|
106
|
+
}, columnsProp), item);
|
|
107
|
+
}); // 加入操作列
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
var _actionColumn = actionColumn ? getActionColumnProps(actionColumn, columnsProp) : undefined;
|
|
111
|
+
|
|
112
|
+
_actionColumn && ((_columns === null || _columns === void 0 ? void 0 : _columns.push(_actionColumn)) || []); // pcf-table 样式中已经包含对_scroll的支持
|
|
113
|
+
|
|
114
|
+
var _className = "".concat(getPrefixCls('table'), " ").concat(className || '', " ").concat(_pagination ? 'height-on-page' : ''); // loading 默认延迟 600ms
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
var _loading = typeof loading === 'boolean' ? {
|
|
118
|
+
spinning: loading,
|
|
119
|
+
delay: 600
|
|
120
|
+
} : _objectSpread({
|
|
121
|
+
delay: 600,
|
|
122
|
+
spinning: false
|
|
123
|
+
}, loading); // 监听分页大小变化,如果外部也监听了onChange,则不会触发loadMore,但如果外部onChange返回值为undefined则正常触loadMore
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
var onChange = function onChange(page, pageSize) {
|
|
127
|
+
if (_pagination && typeof (_pagination === null || _pagination === void 0 ? void 0 : _pagination.onChange) === 'function') {
|
|
128
|
+
var data = _pagination.onChange(page, pageSize);
|
|
129
|
+
|
|
130
|
+
if (data === undefined) loadData(_objectSpread(_objectSpread({}, tableParams), {}, {
|
|
131
|
+
current: page,
|
|
132
|
+
size: pageSize
|
|
133
|
+
}));
|
|
134
|
+
} else {
|
|
135
|
+
loadData(_objectSpread(_objectSpread({}, tableParams), {}, {
|
|
136
|
+
current: page,
|
|
137
|
+
size: pageSize
|
|
138
|
+
}));
|
|
139
|
+
}
|
|
140
|
+
}; // 加载数据
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
var loadData = function loadData(params) {
|
|
144
|
+
if (typeof loadMore === 'function') {
|
|
145
|
+
setTableSource(_objectSpread(_objectSpread({}, tableSource), {}, {
|
|
146
|
+
loading: true
|
|
147
|
+
}));
|
|
148
|
+
|
|
149
|
+
var _tableQuery = _objectSpread(_objectSpread({}, getTablePage(_pagination)), params);
|
|
150
|
+
|
|
151
|
+
var paramsString = JSON.stringify(_tableQuery);
|
|
152
|
+
loadingParamsRef.current = paramsString;
|
|
153
|
+
setTableParams(_tableQuery);
|
|
154
|
+
loadMore(_tableQuery).then(function (response) {
|
|
155
|
+
if (loadingParamsRef.current === paramsString) {
|
|
156
|
+
var _response$total = response.total,
|
|
157
|
+
total = _response$total === void 0 ? 0 : _response$total,
|
|
158
|
+
_response$records = response.records,
|
|
159
|
+
records = _response$records === void 0 ? [] : _response$records;
|
|
160
|
+
setTableSource({
|
|
161
|
+
total: total,
|
|
162
|
+
records: records,
|
|
163
|
+
loading: false
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
}).catch(function (err) {
|
|
167
|
+
setTableSource(_objectSpread(_objectSpread({}, tableSource), {}, {
|
|
168
|
+
loading: false
|
|
169
|
+
}));
|
|
170
|
+
|
|
171
|
+
if (showErrorMsg) {
|
|
172
|
+
var _err$response, _err$response$data;
|
|
173
|
+
|
|
174
|
+
var errMsg = (err === null || err === void 0 ? void 0 : (_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.msg) || (err === null || err === void 0 ? void 0 : err.msg) || (err === null || err === void 0 ? void 0 : err.message);
|
|
175
|
+
message.error(typeof showErrorMsg === 'function' ? showErrorMsg(err) : "\u6570\u636E\u52A0\u8F7D\u5F02\u5E38\uFF1A".concat(errMsg));
|
|
176
|
+
} else {
|
|
177
|
+
throw err;
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
} else if (dataSource) {
|
|
181
|
+
var total = _pagination && _pagination.total || dataSource.length;
|
|
182
|
+
setTableParams(_objectSpread(_objectSpread({}, getTablePage(_pagination)), params));
|
|
183
|
+
setTableSource({
|
|
184
|
+
total: total,
|
|
185
|
+
loading: false,
|
|
186
|
+
records: dataSource
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
}; // 数据初始加载
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
useEffect(function () {
|
|
193
|
+
return loadData(extraParams);
|
|
194
|
+
}, [dataSource, extraParams]);
|
|
195
|
+
return /*#__PURE__*/_jsx(Table, _objectSpread(_objectSpread({}, otherProps), {}, {
|
|
196
|
+
ref: ref,
|
|
197
|
+
rowKey: rowKey,
|
|
198
|
+
className: _className,
|
|
199
|
+
columns: _columns,
|
|
200
|
+
dataSource: tableSource.records,
|
|
201
|
+
pagination: _objectSpread(_objectSpread({}, _pagination), {}, {
|
|
202
|
+
total: tableSource.total,
|
|
203
|
+
current: tableParams.current,
|
|
204
|
+
pageSize: tableParams.size,
|
|
205
|
+
onChange: onChange
|
|
206
|
+
}),
|
|
207
|
+
scroll: _scroll,
|
|
208
|
+
loading: _objectSpread(_objectSpread({}, _loading), {}, {
|
|
209
|
+
spinning: tableSource.loading
|
|
210
|
+
})
|
|
211
|
+
}));
|
|
212
|
+
} // 操作列
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
function getActionColumnProps(props, columnsProp) {
|
|
216
|
+
var defaultProps = {
|
|
217
|
+
width: 140,
|
|
218
|
+
title: '操作',
|
|
219
|
+
dataIndex: 'action'
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
if (typeof props === 'function') {
|
|
223
|
+
return _objectSpread(_objectSpread(_objectSpread({}, columnsProp), defaultProps), {}, {
|
|
224
|
+
render: props
|
|
225
|
+
});
|
|
226
|
+
} else {
|
|
227
|
+
return _objectSpread(_objectSpread(_objectSpread({}, columnsProp), defaultProps), props);
|
|
228
|
+
}
|
|
229
|
+
} // 分页配置
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
function getTablePage(_pagination) {
|
|
233
|
+
var _ref = _pagination || {},
|
|
234
|
+
current = _ref.current,
|
|
235
|
+
defaultCurrent = _ref.defaultCurrent,
|
|
236
|
+
pageSize = _ref.pageSize,
|
|
237
|
+
defaultPageSize = _ref.defaultPageSize;
|
|
238
|
+
|
|
239
|
+
return {
|
|
240
|
+
current: current || defaultCurrent || 1,
|
|
241
|
+
size: pageSize || defaultPageSize || 10
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
var DTable = /*#__PURE__*/forwardRef(InternalTable);
|
|
246
|
+
export default DTable;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
@import '../commonStyle/index.less';
|
|
2
|
+
.@{prefix}-table {
|
|
3
|
+
.ant-spin-nested-loading,
|
|
4
|
+
.ant-spin-container,
|
|
5
|
+
.ant-table-container,
|
|
6
|
+
.ant-table {
|
|
7
|
+
width: 100%;
|
|
8
|
+
height: 100%;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// 隐藏表头最后一个滚动样式单元格
|
|
12
|
+
// .ant-table-thead .ant-table-cell-scrollbar {
|
|
13
|
+
// position: absolute;
|
|
14
|
+
// top: -1px;
|
|
15
|
+
// border: none;
|
|
16
|
+
// box-shadow: none;
|
|
17
|
+
// background-color: #2e404d;
|
|
18
|
+
// }
|
|
19
|
+
|
|
20
|
+
.ant-table-body {
|
|
21
|
+
position: absolute;
|
|
22
|
+
min-width: 100%;
|
|
23
|
+
max-width: 100%;
|
|
24
|
+
min-height: calc(100% - 56px);
|
|
25
|
+
max-height: calc(100% - 56px);
|
|
26
|
+
// 表头显示省略号,但表内单元格不省略
|
|
27
|
+
.ant-table-tbody > tr > td.ant-table-cell.ant-table-cell-ellipsis {
|
|
28
|
+
white-space: initial;
|
|
29
|
+
}
|
|
30
|
+
// x轨道的宽度和y轨道的高度
|
|
31
|
+
&::-webkit-scrollbar {
|
|
32
|
+
width: 4px;
|
|
33
|
+
height: 8px;
|
|
34
|
+
}
|
|
35
|
+
// 轨道拖动部分的背景颜色
|
|
36
|
+
&::-webkit-scrollbar-thumb {
|
|
37
|
+
background-color: #0084ff;
|
|
38
|
+
}
|
|
39
|
+
// 轨道背景颜色
|
|
40
|
+
&::-webkit-scrollbar-track {
|
|
41
|
+
background-color: #f1f1f1;
|
|
42
|
+
border-radius: 2px;
|
|
43
|
+
}
|
|
44
|
+
// x、y两条轨道的交叉处
|
|
45
|
+
&::-webkit-scrollbar-corner {
|
|
46
|
+
background-color: #f1f1f1;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
.ant-spin-nested-loading > div > .ant-spin {
|
|
50
|
+
max-height: initial;
|
|
51
|
+
}
|
|
52
|
+
.ant-pagination-total-text span {
|
|
53
|
+
color: #40a9ff;
|
|
54
|
+
font-weight: bold;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
&.height-on-page {
|
|
58
|
+
.ant-table {
|
|
59
|
+
height: calc(100% - 56px);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TreeSelectProps } from 'antd';
|
|
3
|
+
import { DefaultOptionType } from 'antd/lib/select';
|
|
4
|
+
import { BaseSelectRef } from 'rc-select/lib/BaseSelect';
|
|
5
|
+
import './index.less';
|
|
6
|
+
export declare type DTreeSelectProps = Omit<TreeSelectProps, 'treeData' | 'loadData' | 'loading'> & {
|
|
7
|
+
/** antd的treeData属性,可以是一个treeData数组,或一个返回等价treeData数组的promise */
|
|
8
|
+
treeData?: TreeSelectProps['treeData'] | ((node?: DefaultOptionType) => Promise<TreeSelectProps['treeData']>);
|
|
9
|
+
/** antd的loadData属性,动态加载子级列表数据,默认使用treeData所提供的方法,如果传入null,则表示不进行动态加载,该方法要求返回一个treeData数组或与其等价的Promise */
|
|
10
|
+
loadData?: ((node?: DefaultOptionType) => Promise<TreeSelectProps['treeData']>) | null;
|
|
11
|
+
/** 等同antd的loadData属性,用于监听loadData事件*/
|
|
12
|
+
onLoadData?: (node?: DefaultOptionType) => void;
|
|
13
|
+
/** antd的loading属性,是否显示加载中:传入数字表示延迟加载,单位毫秒,0等同于false */
|
|
14
|
+
loading?: boolean | number;
|
|
15
|
+
};
|
|
16
|
+
declare const DTreeSelect: React.ForwardRefExoticComponent<Omit<TreeSelectProps<any, import("rc-tree-select/lib/TreeSelect").DefaultOptionType>, "loading" | "treeData" | "loadData"> & {
|
|
17
|
+
/** antd的treeData属性,可以是一个treeData数组,或一个返回等价treeData数组的promise */
|
|
18
|
+
treeData?: import("rc-tree-select/lib/TreeSelect").DefaultOptionType[] | ((node?: DefaultOptionType) => Promise<TreeSelectProps['treeData']>) | undefined;
|
|
19
|
+
/** antd的loadData属性,动态加载子级列表数据,默认使用treeData所提供的方法,如果传入null,则表示不进行动态加载,该方法要求返回一个treeData数组或与其等价的Promise */
|
|
20
|
+
loadData?: ((node?: DefaultOptionType) => Promise<TreeSelectProps['treeData']>) | null | undefined;
|
|
21
|
+
/** 等同antd的loadData属性,用于监听loadData事件*/
|
|
22
|
+
onLoadData?: ((node?: DefaultOptionType) => void) | undefined;
|
|
23
|
+
/** antd的loading属性,是否显示加载中:传入数字表示延迟加载,单位毫秒,0等同于false */
|
|
24
|
+
loading?: number | boolean | undefined;
|
|
25
|
+
} & React.RefAttributes<BaseSelectRef>>;
|
|
26
|
+
export default DTreeSelect;
|