UNPKG

@jannie-shao/components-antd4

Version:
132 lines (131 loc) 6.15 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = void 0; require("antd/es/card/style"); var _card = _interopRequireDefault(require("antd/es/card")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _classnames2 = _interopRequireDefault(require("classnames")); var _lodash = require("lodash"); var _form = _interopRequireDefault(require("../form")); var _config = require("../style/config"); var _utils = require("../utils"); var _excluded = ["className", "isLoading", "model", "defaultFilter", "layout", "btnGroup", "onFilterChange", "onSearch", "autoSearch", "resetAutoSearch"]; 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 prefix = _config.rootPrefix + "-search-bar"; var SearchBar = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) { var _classnames; var _ref$className = _ref.className, className = _ref$className === void 0 ? '' : _ref$className, isLoading = _ref.isLoading, model = _ref.model, defaultFilter = _ref.defaultFilter, layout = _ref.layout, btnGroup = _ref.btnGroup, onFilterChange = _ref.onFilterChange, onSearch = _ref.onSearch, autoSearch = _ref.autoSearch, resetAutoSearch = _ref.resetAutoSearch, formProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded); var compSearchForm = (0, _react.useRef)(); var _useState = (0, _react.useState)([]), modelNow = _useState[0], setModelNow = _useState[1]; var _useState2 = (0, _react.useState)([]), dateRange = _useState2[0], setDateRange = _useState2[1]; var initFilter = function initFilter(formData) { var filter = (0, _extends2["default"])({}, formData); if (dateRange.length > 0) { dateRange.forEach(function (d) { if (formData[d.name]) { formData[d.name][0] && (filter[d.keys[0]] = (0, _utils.timestamp)(formData[d.name][0], 'startOfDay')); formData[d.name][1] && (filter[d.keys[1]] = (0, _utils.timestamp)(formData[d.name][1], 'endOfDay')); delete filter[d.name]; } }); } return filter; }; var handleFilterChange = function handleFilterChange(changedKeys, all) { var filterAll = initFilter(all); onFilterChange(changedKeys, filterAll); }; var handleSearch = function handleSearch(formData) { if (formData === void 0) { formData = {}; } onSearch(initFilter(formData), 1); }; (0, _react.useEffect)(function () { var tempDateRange = []; setModelNow(model.map(function (m) { if (m.type === 'dateRange') { if (m.keys) { tempDateRange.push({ name: m.name, keys: m.keys }); } var mNew = { formProps: { className: _config.rootPrefix + "-search-bar-fix" } }; return (0, _lodash.merge)(mNew, m); } return m; })); setDateRange(tempDateRange); }, [model]); (0, _react.useEffect)(function () { autoSearch && compSearchForm.current && compSearchForm.current.handleSubmit(); }, [autoSearch]); (0, _react.useImperativeHandle)(ref, function () { return (0, _extends2["default"])({}, compSearchForm.current || {}); }); return /*#__PURE__*/_react["default"].createElement(_card["default"], { className: (0, _classnames2["default"])(prefix, className, (_classnames = {}, _classnames[prefix + "-flex"] = layout === 'flex', _classnames)) }, /*#__PURE__*/_react["default"].createElement("div", { className: prefix + "-content" }, /*#__PURE__*/_react["default"].createElement(_form["default"], (0, _extends2["default"])({}, formProps, { ref: compSearchForm, className: prefix + "-form", isLoading: isLoading, layout: ['horizontal', 'vertical'].includes(layout) ? layout : 'inline', onChange: handleFilterChange, onSubmit: handleSearch, model: modelNow, btnGroup: btnGroup || [{ opType: 'submit', btnText: 'Search' }, autoSearch || resetAutoSearch ? 'resetSubmit' : 'reset'], initialValues: defaultFilter })))); }); SearchBar.propTypes = { isLoading: _propTypes["default"].bool, model: _propTypes["default"].array, defaultFilter: _propTypes["default"].object, layout: _propTypes["default"].string, onFilterChange: _propTypes["default"].func, onSearch: _propTypes["default"].func, autoSearch: _propTypes["default"].bool, resetAutoSearch: _propTypes["default"].bool }; SearchBar.defaultProps = { isLoading: false, model: [], defaultFilter: {}, layout: 'auto', onFilterChange: function onFilterChange() {}, onSearch: function onSearch() {}, autoSearch: false, resetAutoSearch: false }; var _default = SearchBar; exports["default"] = _default;