|
@@ -250,7 +250,7 @@ class DashboardMenu extends React.Component {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
render() {
|
|
render() {
|
|
|
- const { dashboard, dispatch, hideHeader, editable, model } = this.props;
|
|
|
|
|
|
|
+ const { dashboard, dispatch, hideHeader, editable, model, onSearch: propsOnSearch } = this.props;
|
|
|
const { visibleDeleteBox, selectedMenu } = this.state;
|
|
const { visibleDeleteBox, selectedMenu } = this.state;
|
|
|
const { menuTree } = dashboard;
|
|
const { menuTree } = dashboard;
|
|
|
const { menuFilterLabel, menuExpandedKeys, menuSelectedKeys, menuAutoExpandParent } = model;
|
|
const { menuFilterLabel, menuExpandedKeys, menuSelectedKeys, menuAutoExpandParent } = model;
|
|
@@ -261,12 +261,27 @@ class DashboardMenu extends React.Component {
|
|
|
|
|
|
|
|
{!hideHeader && <div className='menu-search'>
|
|
{!hideHeader && <div className='menu-search'>
|
|
|
<Search
|
|
<Search
|
|
|
- defaultValue={menuFilterLabel}
|
|
|
|
|
|
|
+ value={menuFilterLabel}
|
|
|
placeholder='搜索'
|
|
placeholder='搜索'
|
|
|
- onSearch={this.onSearch}
|
|
|
|
|
|
|
+ //onSearch={this.onSearch}
|
|
|
|
|
+ onChange={(e) => {
|
|
|
|
|
+ // 获得需要展开的目录(存在包含关键字的报表或目录)
|
|
|
|
|
+ const expandedMenus = this.findExpandedKeys(dashboard.menuTree, {code: '-1'}, e.target.value);
|
|
|
|
|
+ if(typeof propsOnSearch === 'function') {
|
|
|
|
|
+ propsOnSearch(e.target.value, expandedMenus);
|
|
|
|
|
+ }
|
|
|
|
|
+ dispatch({ type: 'dashboard/setFields', fields: [
|
|
|
|
|
+ { name: 'menuFilterLabel', value: e.target.value },
|
|
|
|
|
+ { name: 'menuAutoExpandParent', value: true },
|
|
|
|
|
+ ] });
|
|
|
|
|
+ }}
|
|
|
/>
|
|
/>
|
|
|
<Button onClick={() => {
|
|
<Button onClick={() => {
|
|
|
dispatch({ type: 'dashboard/remoteMenuTree', mandatory: true });
|
|
dispatch({ type: 'dashboard/remoteMenuTree', mandatory: true });
|
|
|
|
|
+ dispatch({ type: 'dashboard/setFields', fields: [
|
|
|
|
|
+ { name: 'menuFilterLabel', value: '' },
|
|
|
|
|
+ { name: 'menuAutoExpandParent', value: false },
|
|
|
|
|
+ ] });
|
|
|
}}><Icon type='sync' /></Button>
|
|
}}><Icon type='sync' /></Button>
|
|
|
</div>}
|
|
</div>}
|
|
|
<div className='menu-content'>
|
|
<div className='menu-content'>
|