UNPKG

linkmore-design

Version:

🌈 🚀lm组件库。🚀

89 lines (87 loc) 3.14 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _ahooks = require("ahooks"); var _omit = _interopRequireDefault(require("lodash/omit")); var _pick = _interopRequireDefault(require("lodash/pick")); var _react = _interopRequireWildcard(require("react")); var _button = _interopRequireDefault(require("../../button")); var _cascader = _interopRequireDefault(require("../../cascader")); var _DelayInput = _interopRequireDefault(require("./DelayInput")); // 重置级联弹框 const DropdownRender = props => { const { dom, setSearchValue, onCancel, locale, multiple, onOk } = props; const inputRef = (0, _react.useRef)(null); (0, _ahooks.useDebounceEffect)(() => { inputRef.current?.focus?.({ cursor: 'all' }); }, [], { wait: 200 }); return /*#__PURE__*/_react.default.createElement("div", { className: "filter_dropdown" }, /*#__PURE__*/_react.default.createElement("div", { className: "filter_header" }, /*#__PURE__*/_react.default.createElement(_DelayInput.default, { ref: inputRef, onSearch: setSearchValue, onChange: setSearchValue })), dom, !!multiple && /*#__PURE__*/_react.default.createElement("div", { className: "filter_footer" }, /*#__PURE__*/_react.default.createElement("div", { className: "footer_clear", onClick: onCancel }, locale.cancel), /*#__PURE__*/_react.default.createElement(_button.default, { type: "primary", size: "small", onClick: onOk }, locale.ok))); }; const CascaderFilter = props => { const { value = [], onChange, onCancel } = props; const [checkedValues, setCheckedValues] = (0, _react.useState)(value); const [searchValue, setSearchValue] = (0, _react.useState)(''); const handleChange = item => { setCheckedValues(item); if (!props.multiple) { onChange?.(item); } }; // 确定 const onOk = () => { const resetValue = checkedValues?.length ? checkedValues : undefined; onChange?.(resetValue); onCancel?.(false); }; const dropdownRender = (0, _ahooks.useMemoizedFn)(dom => /*#__PURE__*/_react.default.createElement(DropdownRender, (0, _extends2.default)({ dom: dom, onOk: onOk, setSearchValue: setSearchValue }, (0, _pick.default)(props, ['onCancel', 'locale', 'multiple'])))); return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_cascader.default, (0, _extends2.default)({}, (0, _omit.default)(props, ['value', 'onChange', 'onCancel', 'children']), { onChange: handleChange, defaultValue: value, showSearch: true, searchValue: searchValue, dropdownRender: dropdownRender }), /*#__PURE__*/_react.default.createElement("div", null))); }; var _default = CascaderFilter; exports.default = _default;