UNPKG

@antdp/basic-layouts

Version:

入口框架公共界面

113 lines (111 loc) 4 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _icons = require("@ant-design/icons"); var _antd = require("antd"); var _react = _interopRequireDefault(require("react")); var _max = require("@umijs/max"); var _jsxRuntime = require("react/jsx-runtime"); // @ts-ignore var _setHideInMenu = function setHideInMenu() { var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; data.forEach(function (item) { item.hideInMenu = true; if (item.routes && item.routes.length > 0) { _setHideInMenu(item.routes); } }); }; var _getRoutesList = function getRoutesList() { var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var list = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; data.forEach(function (item) { if (item.hideInMenu) { // 如果父级需要隐藏,则将所有子级 hideInMenu 属性设为 true _setHideInMenu(item.routes); } else if (item.routes && item.routes.length > 0) { _getRoutesList(item.routes, list); } else { list.push(item); } }); return list; }; var SearchMenus = function SearchMenus() { var location = (0, _max.useLocation)(); var _useAppData = (0, _max.useAppData)(), clientRoutes = _useAppData.clientRoutes; var _React$useState = _react["default"].useState(false), _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2), collapsed = _React$useState2[0], setCollapsed = _React$useState2[1]; var parentPath = location.pathname; var routes = _react["default"].useMemo(function () { var routes = clientRoutes.find(function (item) { return item.path === '/'; }); return (routes === null || routes === void 0 ? void 0 : routes.routes) || []; }, [clientRoutes]); var listRouters = _react["default"].useMemo(function () { return _getRoutesList(routes); }, [routes]); var listMenus = _react["default"].useMemo(function () { return listRouters.filter(function (item) { return item && 'name' in item && !item.hideInMenu && item.path !== '*'; }).map(function (item) { return { label: item.name, value: item.path }; }); }, [listRouters]); var currentValue = _react["default"].useMemo(function () { return listMenus.find(function (item) { return item.value === parentPath; }) || undefined; }, [parentPath]); return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { style: { display: 'flex', alignItems: 'center' }, children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.SearchOutlined, { onClick: function onClick() { return setCollapsed(!collapsed); }, style: { fontSize: 20, marginRight: collapsed ? 10 : 0 } }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { style: { display: collapsed ? 'block' : 'none' }, children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Select, { value: currentValue, placeholder: "\u8BF7\u641C\u7D22", labelInValue: true, showSearch: true, optionFilterProp: "children", filterOption: function filterOption(input, option) { var _option$label; return ((_option$label = option === null || option === void 0 ? void 0 : option.label) !== null && _option$label !== void 0 ? _option$label : '').toLowerCase().includes(input.toLowerCase()); }, options: listMenus, onSelect: function onSelect(_ref) { var value = _ref.value; return _max.history.push(value); }, style: { width: 150 } }) })] }); }; var _default = exports["default"] = SearchMenus; module.exports = exports.default;