浏览代码

报表目录默认选中第一个

zhuth 6 年之前
父节点
当前提交
ddc6cf8887

+ 9 - 0
src/components/dashboard/layout.jsx

@@ -20,6 +20,15 @@ class DashboardLayout extends React.Component {
                     searchMenu={true}
                     onlyMenu={true}
                     hideEmptyMenu={false}
+                    onMount={(menuList, menuTree) => {
+                        if(menuTree.length > 0) {
+                            dispatch({ type: 'dashboard/setFields', fields: [
+                                { name: 'currentMenu', value: menuTree[0] },
+                                { name: 'currentMenuParents', value: [menuTree[0], {code: '-1', name: '报表目录'}] },
+                            ] });
+                            dispatch({ type: 'dashboard/remoteMenuDashboardList', menuCode: menuTree[0].code });
+                        }
+                    }}
                     onExpand={menus => {
                         dispatch({ type: 'dashboard/setFields', fields: [
                             { name: 'menuExpandedKeys', value: menus.map(m => m.code) },

+ 13 - 8
src/components/dashboard/list.jsx

@@ -34,8 +34,14 @@ class DashboardList extends React.Component {
 
     componentDidMount() {
         const { dashboard, dispatch } = this.props;
+        const { currentMenu } = dashboard;
         this.setScrollTableHeight();
-        dispatch({ type: 'dashboard/fetchList', mandatory: true });
+        console.log(currentMenu);
+        if(currentMenu && currentMenu.code !== '-1') {
+            dispatch({ type: 'dashboard/remoteMenuDashboardList', menuCode: currentMenu.code });
+        }else {
+            // dispatch({ type: 'dashboard/fetchList' });
+        }
         document.getElementsByClassName('ant-table-body')[0].scrollTo(0, dashboard.listScrollTop);
     }
 
@@ -194,8 +200,7 @@ class DashboardList extends React.Component {
         const { visibleShareBox, shareUrl, visibleDistributeBox, visibleTransferBox, visibleDeleteBox,
             visibleCopyBox, selectedRecord, defaultSelectedGroups, defaultSelectedUsers } = this.state
         const { currentUser } = main;
-        const { menuTree, menuSelectedKeys, filterItem, currentMenuParents } = dashboard;
-        console.log(currentMenuParents);
+        const { menuTree, filterItem, currentMenu, currentMenuParents } = dashboard;
 
         const reg = new RegExp('([+ \\- & | ! ( ) { } \\[ \\] ^ \" ~ * ? : ( ) \/])', 'g'); // 需要转义的字符
         let filterLabel = dashboard.filterLabel ? (dashboard.filterLabel + '').replace(new RegExp('(\\\\)', 'g'), '\\$1').replace(reg, '\\$1') : ''; // 添加转义符号
@@ -354,17 +359,17 @@ class DashboardList extends React.Component {
                                 <Col >
                                     <Button style={{ marginRight: '8px' }} onClick={() => {
                                         dispatch({ type: 'dashboard/setFilterLabel', label: '' });
-                                        if(!menuSelectedKeys || menuSelectedKeys.length === 0 || menuSelectedKeys[0] === '-1') {
-                                            dispatch({ type: 'dashboard/fetchList', mandatory: true });
+                                        if(!currentMenu ||  currentMenu.code === '-1') {
+                                            // dispatch({ type: 'dashboard/fetchList', mandatory: true });
                                         }else {
-                                            dispatch({ type: 'dashboard/remoteMenuDashboardList', menuCode: menuSelectedKeys[0] });
+                                            dispatch({ type: 'dashboard/remoteMenuDashboardList', menuCode: currentMenu.code });
                                         }
                                     }}>
                                         <Icon type="sync" />
                                     </Button>
-                                    <Button disabled={menuSelectedKeys.length !== 1 || menuSelectedKeys[0] === '-1'} onClick={() => {
+                                    <Button disabled={!currentMenu || currentMenu.code === '-1'} onClick={() => {
                                         dispatch({ type: 'dashboardDesigner/reset' });
-                                        dispatch({ type: 'dashboard/remoteQucikAdd', menuCode: menuSelectedKeys[0] });
+                                        dispatch({ type: 'dashboard/remoteQucikAdd', menuCode: currentMenu.code });
                                     }}>
                                         <Icon type="layout" />创建报表
                                     </Button>

+ 6 - 2
src/components/dashboard/menu.jsx

@@ -26,8 +26,12 @@ class DashboardMenu extends React.Component {
     }
 
     componentDidMount() {
-        const { dispatch } = this.props;
-        dispatch({ type: 'dashboard/remoteMenuTree' });
+        const { dispatch, onMount } = this.props;
+        dispatch({ type: 'dashboard/remoteMenuTree' }).then((res) => {
+            if(res) {
+                typeof onMount === 'function' && onMount(res.menuList, res.menuTree);
+            }
+        });
     }
 
     cloneTree = (tree) => {

+ 2 - 1
src/components/dataConnect/list.jsx

@@ -252,7 +252,8 @@ class DataConnect extends React.Component {
                                         <Icon type="sync" />
                                     </Button>
                                     <Button onClick={() => {
-                                        dispatch({ type: 'dataConnect/setNewModel', model: { dbType: 'oracle' } });
+                                        // 设置新增默认值
+                                        dispatch({ type: 'dataConnect/setNewModel', model: { dbType: 'oracle', dbName: 'orcl' } });
                                         dispatch({ type: 'dataConnect/setNewModelFields', fields: [
                                             { name: 'visibleBox', value: true },
                                             { name: 'boxOperation', value: 'create' }

+ 3 - 0
src/models/dashboard.js

@@ -335,11 +335,14 @@ export default {
                         { name: 'menuList', value: menuList },
                         { name: 'menuTree', value: menuTree }
                     ] });
+                    return {menuList, menuTree};
                 }else {
                     message.error('获取报表目录失败: ' + (res.err || res.data.msg));
+                    return false;
                 }
             }catch(e) {
                 message.error('获取报表目录失败: ' + e.message);
+                return false;
             }
         },
         *remoteAddMenu(action, { put, call, select }) {