Просмотр исходного кода

数据源详情页路由调整

zhuth 7 лет назад
Родитель
Сommit
1bd18b87de

+ 2 - 2
src/components/dataSource/list.jsx

@@ -266,7 +266,7 @@ class DataSource extends React.Component {
                     <div>
                         <span style={{ color: '#1890ff', cursor: 'pointer' }} onClick={() => {
                             dispatch({ type: 'dataSource/resetNewModel' });
-                            dispatch({type: 'main/redirect', path: {pathname: '/datasource/'+ record.type +'/' + record.code + '/base'}});
+                            dispatch({type: 'main/redirect', path: {pathname: '/workshop/datasource/'+ record.type +'/' + record.code + '/base'}});
                         }}>
                             { (filterItem.name === 'name' && filterLabel) ?
                                 ((text || '').split(new RegExp(`(${filterLabel})`, 'i')).map((fragment, i) => {
@@ -414,7 +414,7 @@ class DataSource extends React.Component {
                                             dispatch({ type: 'dataSource/resetNewModel' });
                                             dispatch({ type: 'dataConnect/resetSelected' });
                                             dispatch({ type: 'dataSource/setNewModelField', name: 'type', value: type });
-                                            dispatch({type: 'main/redirect', path: {pathname: '/datasource/'+ type +'/create/base'}});
+                                            dispatch({type: 'main/redirect', path: {pathname: '/workshop/datasource/'+ type +'/create/base'}});
                                         }}>
                                             { currentUser.role === 'admin' && <Menu.Item key='database'>来自数据库</Menu.Item>}
                                             <Menu.Item disabled key='file'>来自文件</Menu.Item>

+ 4 - 5
src/components/dataSourceDetail/content.jsx

@@ -30,7 +30,7 @@ class DataSourceDetailContent extends React.Component {
         this.setState({ current: current + 1 });
         // let step = ['base', 'column', 'access', 'other'][current + 1];
         let step = ['base', 'column', 'other'][current + 1];
-        this.props.dispatch({ type: 'main/redirect', path: '/datasource/' + type + '/create/' + step })
+        this.props.dispatch({ type: 'main/redirect', path: '/workshop/datasource/' + type + '/create/' + step })
     }
 
     prev() {
@@ -38,13 +38,12 @@ class DataSourceDetailContent extends React.Component {
         this.setState({ current: current - 1 });
         // let step = ['base', 'column', 'access', 'other'][current - 1];
         let step = ['base', 'column', 'other'][current - 1];
-        this.props.dispatch({ type: 'main/redirect', path: '/datasource/' + type + '/create/' + step })
+        this.props.dispatch({ type: 'main/redirect', path: '/workshop/datasource/' + type + '/create/' + step })
     }
 
     render() {
         const { dispatch, dataSourceDetail, dataConnect } = this.props;
-        const { type, code, tab } = dataSourceDetail;
-        const { mode, current } = this.state;
+        const { type, code, tab, mode, current } = this.state;
 
         const steps = [{
             tabName: 'base',
@@ -111,7 +110,7 @@ class DataSourceDetailContent extends React.Component {
                     </div>) : (
                         <Tabs activeKey={tab} type="card"
                             onChange={(key) => {
-                                dispatch({ type: 'main/redirect', path: '/datasource/' + type + '/' + code + '/' + key })
+                                dispatch({ type: 'main/redirect', path: '/workshop/datasource/' + type + '/' + code + '/' + key })
                                 this.setState({
                                     tab: key,
                                 })

+ 4 - 0
src/components/dataSourceDetail/header.jsx

@@ -1,6 +1,7 @@
 import React from 'react'
 import { Icon, Button } from 'antd'
 import { connect } from 'dva'
+import './header.less'
 
 class DataSourceDetailHeader extends React.Component {
 
@@ -10,6 +11,9 @@ class DataSourceDetailHeader extends React.Component {
 
         return (
             <div className='dataSourcedetail-header'>
+                <div>
+                    <span className='title-label'>{name}</span>
+                </div>
                 <div className='header-item toolbar-back'>
                     <Button onClick={(e) => {
                         dispatch({ type: 'main/redirect', path: '/workshop/datasource' });

+ 4 - 0
src/components/dataSourceDetail/header.less

@@ -0,0 +1,4 @@
+.dataSourcedetail-header {
+    display: flex;
+    justify-content: space-between;
+}

+ 2 - 0
src/components/workshop/index.jsx

@@ -8,6 +8,7 @@ import DataConnect from '../../components/dataConnect/list'
 import DataSource from '../../components/dataSource/list'
 import Dashboard from '../../components/dashboard/list'
 import Chart from '../../components/chart/list'
+import DataSourceDetail from '../../components/dataSourceDetail/layout'
 import './index.less'
 const { Sider, Content } = Layout
 
@@ -43,6 +44,7 @@ class Workshop extends React.Component {
             <Content className='main-content'>
                 <Switch>
                     <Route sensitive path='/workshop/dataconnect' component={DataConnect}/>
+                    <Route sensitive path='/workshop/datasource/:type/:code/:tab' component={DataSourceDetail}/>
                     <Route sensitive path='/workshop/datasource' component={DataSource}/>
                     <Route sensitive path='/workshop/chart' component={Chart} />
                     <Route sensitive path='/workshop/dashboard' component={Dashboard} />

+ 1 - 34
src/models/dataSourceDetail.js

@@ -27,25 +27,6 @@ export default {
             columns: [],
             demo: false
         },
-        code: null,
-        name: '未命名',
-        type: null,
-        connectCode: null,
-        dbType: null,
-        dbName: null,
-        address: null,
-        port: null,
-        target: null,
-        creatorCode: null,
-        creatorName: null,
-        createTime: null,
-        userName: null,
-        password: null,
-        description: '',
-        group: '-1',
-        notice: '',
-        columns: [],
-        demo: false
     },
     reducers: {
         setField(state, action) {
@@ -158,21 +139,7 @@ export default {
     },
     subscriptions: {
         setup({ dispatch, history }) {
-            return history.listen(({ pathname }) => {
-                if(pathname.startsWith('/datasource')) {
-                    const temp = pathname.split('/');
-                    if(temp.length === 5) {
-                        const type = temp[2];
-                        const code = temp[3];
-                        const tab = temp[4];
-                        dispatch({ type: 'setFields', fields: [
-                            { name: 'type', value: type },
-                            { name: 'code', value: code },
-                            { name: 'tab', value: tab },
-                        ] });
-                    }
-                }
-            })
+            dispatch({ type: 'reset' });
         }
     }
 };

+ 4 - 1
src/models/main.js

@@ -96,6 +96,7 @@ export default {
                 window.sessionStorage.setItem("account", user.account);
                 autoLogin ? window.localStorage.setItem("password", user.password) : window.localStorage.removeItem('password');
                 window.sessionStorage.setItem("username", user.name);
+                window.sessionStorage.setItem("phone", user.phone);
                 window.sessionStorage.setItem("userrole", user.role);
                 window.sessionStorage.setItem("department", user.department);
                 window.sessionStorage.setItem("job", user.job);
@@ -119,7 +120,8 @@ export default {
                     const user = resData.user;
                     const currentUser = {
                         code: user.id+'',
-                        account: user.userName,
+                        account: username,
+                        phone: user.phone,
                         password: user.passWord,
                         name: user.name,
                         role: user.role || 'default',
@@ -146,6 +148,7 @@ export default {
         },
         *logout( action, { put, call, select }) {
             try {
+                window.sessionStorage.removeItem("phone");
                 window.sessionStorage.removeItem("username");
                 window.sessionStorage.removeItem("userrole");
                 window.sessionStorage.removeItem("usercode");

+ 3 - 3
src/routes/mainLayout.jsx

@@ -10,7 +10,7 @@ import './mainLayout.less'
 import UserInfo from '../components/user/layout'
 const { Header, Content } = Layout
 
-const MainLayout = ({ isAuthenticated }) => {
+const MainLayout = () => {
     return(
         <Layout className='main-layout'>
             <Loading />
@@ -20,8 +20,8 @@ const MainLayout = ({ isAuthenticated }) => {
             <Content className='main-content'>
                 <Switch>
                     <Route sensitive path='/home' component={HomePage}/>
-                    <Route sensitive path='/workshop' component={Workshop}/>
-                    <Route sensitive path='/setting' component={Setting} />
+                    <Route sensitive exact={false} path='/workshop' component={Workshop}/>
+                    <Route sensitive exact={false} path='/setting' component={Setting} />
                     <Route sensitive path='/userinfo' component={UserInfo} />
                     <Route path='/' component={() => (<Redirect to={{ pathname: '/home' }} ></Redirect>)}/>
                 </Switch>

+ 0 - 2
src/routes/router.js

@@ -5,7 +5,6 @@ import PrivateRoute from './privateRoute'
 import Login from '../components/common/login/login'
 import Register from '../components/common/login/register'
 import MainLayout from './mainLayout'
-import DataSourceDetail from '../components/dataSourceDetail/layout'
 import ChartDesigner from '../components/chartDesigner/layout'
 import DashboardDesigner from '../components/dashboardDesigner/layout'
 import DashboardShareView from '../components/dashboard/shareView'
@@ -22,7 +21,6 @@ function RouterConfig({ history }) {
                     <Route sensitive path='/register' component={Register} />
                     <Route sensitive path='/dashboard/share/:code' component={DashboardShareView} />
                     <Route sensitive path='/dashboard/share_key/:code' component={DashboardShareKeyView} />
-                    <PrivateRoute sensitive path='/datasource/:type/:code/:tab' component={DataSourceDetail}/>
                     <PrivateRoute sensitive path='/chart/:code' component={ChartDesigner} />
                     <PrivateRoute sensitive path='/dashboard/:code/' component={DashboardDesigner} />
                     <PrivateRoute path='/' component={MainLayout} />