Bläddra i källkod

报表移动后当前目录显示错误/报表移动到菜单构造SubMenu逻辑错误

zhuth 6 år sedan
förälder
incheckning
0be880ba88
3 ändrade filer med 17 tillägg och 6 borttagningar
  1. 1 1
      src/components/dashboard/list.jsx
  2. 15 4
      src/models/dashboard.js
  3. 1 1
      src/models/main.js

+ 1 - 1
src/components/dashboard/list.jsx

@@ -162,7 +162,7 @@ class DashboardList extends React.Component {
         const { dispatch } = this.props;
         const { selectedRecord } = this.state;
         return menuTree.filter(t => t.type === 'menu').map(t => {
-            if(t.children && t.children.length > 0) {
+            if(t.children && t.children.filter(c => c.type === 'menu').length > 0) {
                 return <Menu.SubMenu
                     key={t.code}
                     title={selectedRecord.menuCode === t.code ? <span className='current' style={{ fontWeight: 'bold' }}>{t.name}</span> : t.name}

+ 15 - 4
src/models/dashboard.js

@@ -414,20 +414,31 @@ export default {
             }
         },
         *remoteSetMenu(action, { put, call, select }) {
-            const { dashboard, menu } = action;
+            const { dashboard: currentDashboard, menu } = action;
             try {
+                const dashboard = yield select(state => state.present.dashboard);
+                const getParens = (menu) => {
+                    const { menuList } = dashboard;
+                    let pmenus = [menu];
+                    let fmenu = [{ code: '-1', name: '报表目录' }].concat(menuList).find(l => l.code === menu.pcode);
+                    if(fmenu) {
+                        pmenus = pmenus.concat(getParens(fmenu));
+                    }
+                    return pmenus;
+                }
+
                 const res = yield call(service.fetch, {
                     url: URLS.DASHBOARD_SET_MENU,
                     body: {
-                        dashBoardId: dashboard.code,
+                        dashBoardId: currentDashboard.code,
                         menuId: menu.code
                     },
                 })
                 if(!res.err && res.data.code > 0) {
                     yield put({ type: 'remoteMenuDashboardList', menuCode: menu.code });
                     yield put({ type: 'setFields', fields: [
-                        { name: 'menuSelectedKeys', value: [menu.code] },
-                        { name: 'menuExpandedKeys', value: [menu.code] },
+                        { name: 'currentMenu', value: menu },
+                        { name: 'currentMenuParents', value: getParens(menu) },
                     ] })
                 }else {
                     message.error('移动到目录失败: ' + (res.err || res.data.msg));

+ 1 - 1
src/models/main.js

@@ -94,7 +94,7 @@ export default {
                 window.sessionStorage.setItem("expireTime", expireTime);
             
                 window.sessionStorage.setItem("usercode", user.code);
-                autoLogin ? window.localStorage.setItem("autoLogin", 'true') : window.localStorage.setItem("autoLogin", 'false');
+                window.localStorage.setItem("autoLogin", autoLogin ? 'true' : 'false');
                 window.localStorage.setItem("account", user.account)
                 window.sessionStorage.setItem("account", user.account);
                 autoLogin ? window.localStorage.setItem("password", user.password) : window.localStorage.removeItem('password');