Browse Source

【bug】报表自定义字段设置命名逻辑

zhuth 6 years ago
parent
commit
9e595ea004

+ 1 - 0
src/components/chart/list.less

@@ -48,6 +48,7 @@
                 display: flex;
                 flex-wrap: wrap;
                 justify-content: center;
+                overflow: auto;
                 &>.chart-body {
                     .chart-card {
                         width: 207px;

+ 1 - 0
src/components/dashboard/list.less

@@ -35,6 +35,7 @@
         }
         &>.ant-card-body {
             flex: 1;
+            overflow: auto;
         }
     }
     .ant-card-body {

+ 29 - 2
src/components/dashboardDesigner/cusFilterBox.jsx

@@ -34,7 +34,7 @@ class CusFilterBox extends React.Component {
                 header={<Form.Item className='filtercolumn-name' label='名称' labelCol={{ span: 6 }} wrapperCol={{ span: 18 }}>
                     <Input size='small' value={r.name}
                     onChange={(e) => {
-                        dispatch({ type: 'dashboardDesigner/setRelationColumn', code: r.code, relationColumn: { ...r, name: e.target.value, cusName: true } });
+                        dispatch({ type: 'dashboardDesigner/setRelationColumn', code: r.code, relationColumn: { ...r, name: e.target.value } });
                     }} onFocus={() => {
                         this.setState({
                             editing: true,
@@ -129,6 +129,7 @@ class CusFilterBox extends React.Component {
         const { dashboardDesigner, dispatch } = this.props;
         const { selectedDataSource } = this.state;
         const { relationColumns } = dashboardDesigner;
+        let setFlag, cusName;
 
         this.setState({
             selectedColumn: {
@@ -140,6 +141,8 @@ class CusFilterBox extends React.Component {
             const { relations } = r;
             let idx = relations.findIndex(r => r.dataSource.code === selectedDataSource.code);
             if(idx === -1){
+                setFlag = relations.length === 0; // 当添加第一个数据源列时
+                cusName = c.label;
                 relations.push({
                     dataSource: {
                         code: selectedDataSource.code,
@@ -151,6 +154,26 @@ class CusFilterBox extends React.Component {
                         type: c.type
                     }
                 });
+            }else if(idx === 0) { // 如果是第一个则需要重新设置关联
+                let cr = relations[idx];
+                setFlag = true;
+                cusName = c.label;
+                
+                if(cr.column.name === selectedColumn.name) {
+                    relations.splice(0, relations.length); // 第一个取消勾选后全部清空
+                }else {
+                    relations[idx] = {
+                        dataSource: {
+                            code: selectedDataSource.code,
+                            name: selectedDataSource.name
+                        },
+                        column: {
+                            name: c.name,
+                            label: c.label,
+                            type: c.type
+                        }
+                    };
+                }
             }else {
                 let cr = relations[idx];
                 if(cr.column.name === selectedColumn.name) {
@@ -170,7 +193,11 @@ class CusFilterBox extends React.Component {
                 }
             }
             let index = relationColumns.findIndex(rc => rc.code === r.code);
-            relationColumns[index] = { ...r, name: relationColumns[index].cusName ? relationColumns[index].name : c.label, cusName: true, relations };
+            if(setFlag) {
+                relationColumns[index] = { ...r, name: cusName, relations };
+            }else {
+                relationColumns[index] = { ...r, relations }; 
+            }
             dispatch({ type: 'dashboardDesigner/setField', name: 'relationColumns', value: relationColumns });
         });
     }

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

@@ -294,7 +294,7 @@ class DataConnect extends React.Component {
                         dispatch({ type: 'dataConnect/remoteDelete', code: selected.code })
                     }} 
                 />}
-                <DataConnectBox />
+                {dataConnect.newOne.visibleBox && <DataConnectBox />}
             </Layout>
         )
     }

+ 1 - 0
src/components/dataConnect/list.less

@@ -18,6 +18,7 @@
             }
             &>.ant-card-body {
                 flex: 1;
+                overflow: auto;
                 padding: 16px;
                 display: flex;
                 flex-wrap: wrap;

+ 1 - 0
src/components/dataSource/list.less

@@ -44,6 +44,7 @@
         }
         &>.ant-card-body {
             flex: 1;
+            overflow: auto;
         }
     }
     .ant-card-body {

+ 1 - 3
src/components/setting/index.jsx

@@ -3,7 +3,6 @@ import { Link } from 'react-router-dom'
 import { Route, Switch, Redirect } from 'dva/router'
 import { Layout, Button } from 'antd'
 import { connect } from 'dva'
-import Loading from '../../components/common/loading/loading'
 import Admin from '../../components/admin/admin'
 import Logs from '../../components/logs/logs'
 import './index.less'
@@ -24,7 +23,6 @@ class Setting extends React.Component {
         let paths = currentPage.match(/\/(\w+)/g).map(p => p.replace('/', ''));
 
         return <Layout className='layout-setting'>
-            <Loading />
             <Sider
                 width={100}
                 collapsible
@@ -37,7 +35,7 @@ class Setting extends React.Component {
                 <Link to=''><Button disabled className='ant-btn-block' type={paths[1] === 'datasource' ? 'primary' : 'default'} >权限管理</Button></Link>
                 <Link to='/setting/logs'><Button className='ant-btn-block' type={paths[1] === 'logs' ? 'primary' : 'default'} >操作日志</Button></Link>
             </Sider>
-            <Content className='main-content'>
+            <Content className='content-setting'>
                 <Switch>
                     <Route sensitive path='/setting/admin' component={Admin}/>
                     <Route sensitive path='/setting/logs' component={Logs}/>

+ 1 - 3
src/components/workshop/index.jsx

@@ -3,7 +3,6 @@ import { Link } from 'react-router-dom'
 import { Route, Switch, Redirect } from 'dva/router'
 import { Layout, Button } from 'antd'
 import { connect } from 'dva'
-import Loading from '../../components/common/loading/loading'
 import DataConnect from '../../components/dataConnect/list'
 import DataSource from '../../components/dataSource/list'
 import Dashboard from '../../components/dashboard/layout'
@@ -27,7 +26,6 @@ class Workshop extends React.Component {
         let paths = currentPage.match(/\/(\w+)/g).map(p => p.replace('/', ''));
 
         return <Layout className='layout-workshop'>
-            <Loading />
             <Sider
                 width={100}
                 collapsible
@@ -41,7 +39,7 @@ class Workshop extends React.Component {
                 <Link to='/workshop/chart'><Button className='ant-btn-block' type={paths[1] === 'chart' ? 'primary' : 'default'} >图表</Button></Link>
                 <Link to='/workshop/dashboard'><Button className='ant-btn-block' type={paths[1] === 'dashboard' ? 'primary' : 'default'} >报表</Button></Link>
             </Sider>
-            <Content className='main-content'>
+            <Content className='content-workshop'>
                 <Switch>
                     <Route sensitive path='/workshop/dataconnect' component={DataConnect}/>
                     <Route sensitive path='/workshop/datasource/:type/:code/:tab' component={DataSourceDetail}/>