linkmore-design
Version:
🌈 🚀lm组件库。🚀
63 lines (61 loc) • 1.8 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireWildcard(require("react"));
var _context = _interopRequireDefault(require("../context"));
var _Popover = _interopRequireDefault(require("./Popover"));
var _ToggleFilter = _interopRequireDefault(require("./ToggleFilter"));
const BaseFilter = () => {
const {
state,
dispatch,
data,
getChange
} = (0, _react.useContext)(_context.default);
const [useList, setList] = (0, _react.useState)(data); // 页面展示的搜索项
// 下拉框改变事件
const onChange = async ({
field,
value,
mapItem
}) => {
const checkValue = {
...state.checkValue,
[field]: value
};
// 关联筛选
if (mapItem.relation) {
delete checkValue[mapItem.relation];
}
const checked = {
...state.checked,
[field]: mapItem
};
dispatch({
type: 'changeCheckValue',
checkValue
});
dispatch({
type: 'changeChecked',
checked
});
getChange?.(checkValue);
};
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, useList?.filter(v => !!v.fixed).map(item => {
const obj = data.find(o => o.field === item.field);
return /*#__PURE__*/_react.default.createElement(_Popover.default, {
key: item.field,
item: obj,
getChange: onChange
});
}), /*#__PURE__*/_react.default.createElement(_ToggleFilter.default, {
useList: useList,
setList: setList
}));
};
var _default = BaseFilter;
exports.default = _default;