UNPKG

@jannie-shao/components-antd4

Version:
177 lines (176 loc) 7.34 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _utils = require("../utils"); var _searchBar = _interopRequireDefault(require("../search-bar")); var _searchRet = _interopRequireDefault(require("../search-ret")); 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); } 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; } var defaultStore = { filter: {}, page: { current: 1, pageSize: 20 }, total: 0, list: [] }; var List = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) { var className = _ref.className, model = _ref.model, defaultFilter = _ref.defaultFilter, columns = _ref.columns, useSearchBar = _ref.useSearchBar, searchBarProps = _ref.searchBarProps, searchRetProps = _ref.searchRetProps, onFilterChange = _ref.onFilterChange, onSearch = _ref.onSearch, autoSearch = _ref.autoSearch, resetAutoSearch = _ref.resetAutoSearch; var _searchRetProps$usePa = searchRetProps.usePagination, usePagination = _searchRetProps$usePa === void 0 ? true : _searchRetProps$usePa; var compSearchBar = (0, _react.useRef)(); var _useState = (0, _react.useState)(false), loading = _useState[0], setLoading = _useState[1]; var _useState2 = (0, _react.useState)(defaultStore), store = _useState2[0], setStore = _useState2[1]; var doSearch = function doSearch(searchFilter) { setLoading(true); (0, _utils.callFun)(function () { return onSearch(searchFilter); }, function (res) { setLoading(false); var _ref2 = res || {}, _ref2$total = _ref2.total, total = _ref2$total === void 0 ? 0 : _ref2$total, _ref2$list = _ref2.list, list = _ref2$list === void 0 ? [] : _ref2$list; setStore((0, _extends2["default"])({}, store, { filter: (0, _extends2["default"])({}, searchFilter.filter), page: (0, _extends2["default"])({}, searchFilter.page), total: total || list.length, list: list })); }); }; var handleSearch = function handleSearch(f, pageNow) { var _store$page; if (f === void 0) { f = {}; } if (pageNow === void 0) { pageNow = 1; } var searchFilter = { filter: (0, _extends2["default"])({}, f), page: { current: pageNow, pageSize: (store === null || store === void 0 ? void 0 : (_store$page = store.page) === null || _store$page === void 0 ? void 0 : _store$page.pageSize) || defaultStore.page.pageSize } }; doSearch(searchFilter); }; var handlePageChange = function handlePageChange(cp) { var _store$page2; var searchFilter = { filter: (0, _extends2["default"])({}, store.filter || {}), page: { current: ((_store$page2 = store.page) === null || _store$page2 === void 0 ? void 0 : _store$page2.pageSize) === cp.pageSize ? cp.current : 1, pageSize: cp.pageSize } }; doSearch(searchFilter); }; (0, _react.useImperativeHandle)(ref, function () { return { setFilter: function setFilter(f) { return compSearchBar.current && compSearchBar.current.setFieldsValue(f); }, getFilter: function getFilter(f) { return compSearchBar.current && compSearchBar.current.getFieldsValue(f); }, getStore: function getStore() { return store; }, autoSearch: function autoSearch(f) { return handleSearch((0, _extends2["default"])({}, defaultFilter, f)); }, handleSearch: function handleSearch() { return compSearchBar.current && compSearchBar.current.handleSubmit(); }, reload: function reload() { return handleSearch(store === null || store === void 0 ? void 0 : store.filter, store === null || store === void 0 ? void 0 : store.page.current); }, reset: function reset() { return compSearchBar.current && compSearchBar.current.handleReset(); }, resetSubmit: function resetSubmit() { return compSearchBar.current && compSearchBar.current.handleResetSubmit(); } }; }); return /*#__PURE__*/_react["default"].createElement("div", { className: className }, useSearchBar && /*#__PURE__*/_react["default"].createElement(_searchBar["default"], (0, _extends2["default"])({}, searchBarProps, { ref: compSearchBar, isLoading: searchBarProps.useLoading ? loading : false, model: model, defaultFilter: defaultFilter, onFilterChange: onFilterChange, onSearch: handleSearch, autoSearch: autoSearch, resetAutoSearch: resetAutoSearch })), /*#__PURE__*/_react["default"].createElement(_searchRet["default"], (0, _extends2["default"])({}, searchRetProps, { isLoading: searchRetProps.useLoading ? loading : false, dataList: store.list, columns: columns, pagination: usePagination ? (0, _extends2["default"])({}, store.page, { total: store.total }) : false, onPageChange: handlePageChange }))); }); List.propTypes = { className: _propTypes["default"].string, model: _propTypes["default"].array, columns: _propTypes["default"].array, store: _propTypes["default"].object, defaultFilter: _propTypes["default"].object, // searchBar & searchRet useSearchBar: _propTypes["default"].bool, searchBarProps: _propTypes["default"].object, searchRetProps: _propTypes["default"].object, // functions & flag onSearch: _propTypes["default"].func, autoSearch: _propTypes["default"].bool, resetAutoSearch: _propTypes["default"].bool }; List.defaultProps = { className: '', model: [], columns: [], store: {}, defaultFilter: {}, // searchBar & searchRet useSearchBar: true, searchBarProps: {}, searchRetProps: {}, // functions & flag onSearch: function onSearch() {}, autoSearch: true, resetAutoSearch: false }; List.Result = function (props) { if (props === void 0) { props = {}; } return /*#__PURE__*/_react["default"].createElement(_searchRet["default"], props); }; var _default = List; exports["default"] = _default;