UNPKG

linkmore-design

Version:

🌈 🚀lm组件库。🚀

69 lines (68 loc) 2.75 kB
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator"; import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; import _regeneratorRuntime from "@babel/runtime/regenerator"; import React, { useState, useContext } from 'react'; import Context from "../context"; import Popover from "./Popover"; import ToggleFilter from "./ToggleFilter"; var BaseFilter = function BaseFilter() { var _useContext = useContext(Context), state = _useContext.state, dispatch = _useContext.dispatch, data = _useContext.data, getChange = _useContext.getChange; var _useState = useState(data), _useState2 = _slicedToArray(_useState, 2), useList = _useState2[0], setList = _useState2[1]; // 页面展示的搜索项 // 下拉框改变事件 var onChange = /*#__PURE__*/function () { var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) { var field, value, mapItem, checkValue, checked; return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: field = _ref.field, value = _ref.value, mapItem = _ref.mapItem; checkValue = _objectSpread(_objectSpread({}, state.checkValue), {}, _defineProperty({}, field, value)); // 关联筛选 if (mapItem.relation) { delete checkValue[mapItem.relation]; } checked = _objectSpread(_objectSpread({}, state.checked), {}, _defineProperty({}, field, mapItem)); dispatch({ type: 'changeCheckValue', checkValue: checkValue }); dispatch({ type: 'changeChecked', checked: checked }); getChange === null || getChange === void 0 ? void 0 : getChange(checkValue); case 7: case "end": return _context.stop(); } }, _callee); })); return function onChange(_x) { return _ref2.apply(this, arguments); }; }(); return /*#__PURE__*/React.createElement(React.Fragment, null, useList === null || useList === void 0 ? void 0 : useList.filter(function (v) { return !!v.fixed; }).map(function (item) { var obj = data.find(function (o) { return o.field === item.field; }); return /*#__PURE__*/React.createElement(Popover, { key: item.field, item: obj, getChange: onChange }); }), /*#__PURE__*/React.createElement(ToggleFilter, { useList: useList, setList: setList })); }; export default BaseFilter;