|
|
@@ -88,7 +88,7 @@ class DashboardMenu extends React.Component {
|
|
|
}
|
|
|
|
|
|
generateMenu(tree, regLabel) {
|
|
|
- const { dispatch, onlyMenu, searchMenu, editable, extraTools } = this.props;
|
|
|
+ const { dispatch, onlyMenu, searchMenu, editable, extraTools, onMenuModify } = this.props;
|
|
|
const { editingKey } = this.state;
|
|
|
let ftree = this.cloneTree(tree);
|
|
|
ftree = this.reduceTree(ftree, regLabel)
|
|
|
@@ -139,14 +139,22 @@ class DashboardMenu extends React.Component {
|
|
|
onBlur={(e) => {
|
|
|
let val = e.target.value;
|
|
|
if(!!(val+'').trim() && val !== t.name) {
|
|
|
- dispatch({ type: 'dashboard/remoteModifyMenu', menu: { ...t, name: val } });
|
|
|
+ dispatch({ type: 'dashboard/remoteModifyMenu', menu: { ...t, name: val } }).then((menu) => {
|
|
|
+ if(typeof onMenuModify === 'function') {
|
|
|
+ onMenuModify(menu);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
this.setState({ editingKey: false });
|
|
|
}}
|
|
|
onPressEnter={(e) => {
|
|
|
let val = e.target.value;
|
|
|
if(!!(val+'').trim() && val !== t.name) {
|
|
|
- dispatch({ type: 'dashboard/remoteModifyMenu', menu: { ...t, name: val } });
|
|
|
+ dispatch({ type: 'dashboard/remoteModifyMenu', menu: { ...t, name: val } }).then((menu) => {
|
|
|
+ if(typeof onMenuModify === 'function') {
|
|
|
+ onMenuModify(menu);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
this.setState({ editingKey: false });
|
|
|
}}
|
|
|
@@ -232,23 +240,24 @@ class DashboardMenu extends React.Component {
|
|
|
}
|
|
|
|
|
|
onAddClick = (pmenu) => {
|
|
|
- const { dashboard, dispatch, onExpand } = this.props;
|
|
|
- const { menuList, menuExpandedKeys } = dashboard;
|
|
|
+ const { dashboard, dispatch } = this.props;
|
|
|
+ const { menuExpandedKeys } = dashboard;
|
|
|
const menu = {
|
|
|
index: pmenu.childrenCount,
|
|
|
name: '新目录',
|
|
|
pcode: pmenu.code
|
|
|
}
|
|
|
- dispatch({ type: 'dashboard/remoteAddMenu', menu }).then(res => {
|
|
|
- if(res && typeof onExpand === 'function') {
|
|
|
- let expandedMenus = [];
|
|
|
- [{ code: '-1', name: '报表目录' }].concat(menuList).forEach(m => {
|
|
|
- if(menuExpandedKeys.indexOf(m.code) > -1) {
|
|
|
- expandedMenus.push(m);
|
|
|
- }
|
|
|
- });
|
|
|
- expandedMenus.push(pmenu);
|
|
|
- onExpand(expandedMenus);
|
|
|
+ dispatch({ type: 'dashboard/remoteAddMenu', menu }).then(menuCode => {
|
|
|
+ if(menuCode) {
|
|
|
+ dispatch({ type: 'dashboard/remoteMenuTree', mandatory: true }).then(menuData => {
|
|
|
+ this.onExpand(menuExpandedKeys.concat([menuCode]));
|
|
|
+ this.onSelect([menuCode]);
|
|
|
+ this.setState({
|
|
|
+ editingKey: menuCode
|
|
|
+ }, () => {
|
|
|
+ this['inputRef-' + menuCode].focus();
|
|
|
+ })
|
|
|
+ })
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
@@ -264,7 +273,7 @@ class DashboardMenu extends React.Component {
|
|
|
}
|
|
|
|
|
|
render() {
|
|
|
- const { dashboard, dispatch, hideHeader, editable, model, onSearch: propsOnSearch } = this.props;
|
|
|
+ const { dashboard, dispatch, hideHeader, editable, model, onSearch: propsOnSearch, onMenuDelete } = this.props;
|
|
|
const { visibleDeleteBox, selectedMenu } = this.state;
|
|
|
const { menuTree } = dashboard;
|
|
|
const { menuFilterLabel, menuExpandedKeys, menuSelectedKeys, menuAutoExpandParent } = model;
|
|
|
@@ -342,7 +351,11 @@ class DashboardMenu extends React.Component {
|
|
|
})
|
|
|
}}
|
|
|
okHandler={() => {
|
|
|
- dispatch({ type: 'dashboard/remoteDeleteMenu', menu: selectedMenu });
|
|
|
+ dispatch({ type: 'dashboard/remoteDeleteMenu', menu: selectedMenu }).then(() => {
|
|
|
+ if(typeof onMenuDelete === 'function') {
|
|
|
+ onMenuDelete(selectedMenu);
|
|
|
+ }
|
|
|
+ });
|
|
|
}}
|
|
|
/>}
|
|
|
</div>
|