Browse Source

部分BUG修复

zhuth 6 years ago
parent
commit
aad5bddc07

+ 2 - 0
src/components/common/listFilter/index.jsx

@@ -20,6 +20,8 @@ class ListFilter extends React.Component {
         const { filterItems, filterItem } = model;
 
         return <Select 
+            showArrow={filterItems.length > 1}
+            disabled={filterItems.length === 1}
             value={filterItem.name}
             style={{ width: 120 }}
             onChange={value => {

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

@@ -31,10 +31,10 @@ class DashboardList extends React.Component {
         }
     }
 
-    // componentDidMount() {
-    //     const { dispatch } = this.props;
-    //     dispatch({ type: 'dashboard/remoteMenuDashboardList' });
-    // }
+    componentDidMount() {
+        const { dispatch } = this.props;
+        dispatch({ type: 'dashboard/fetchList', mandatory: true });
+    }
 
     getShareList = () => {
         new Promise((resolve, reject) => {
@@ -240,7 +240,7 @@ class DashboardList extends React.Component {
                 )
             }
         }, {
-            title: '说明',
+            title: '备注',
             dataIndex: 'description',
             key: 'description',
             width: 200,

+ 5 - 1
src/components/dashboardDesigner/chooseChartBox.jsx

@@ -88,6 +88,10 @@ class ChooseChartBox extends React.Component {
         }).filter(a => a!==null);
     }
 
+    onSort = (list) => {
+        return list.sort((a, b) => new Date(b.createTime) - new Date(a.createTime));
+    }
+
     render() {
         const { visibleBox, hideBox, dashboardDesigner, chart } = this.props;
         const { selectedRecord, screenWidth, screenHeight, filterItem, filterLabel: stateFilterLabel } = this.state;
@@ -232,7 +236,7 @@ class ChooseChartBox extends React.Component {
                         ...c,
                         width: 100
                     }))}
-                    dataSource={this.onSearch(chart.list)}
+                    dataSource={this.onSort(this.onSearch(chart.list))}
                     size='small'
                     scroll={{ x: columns ? columns.length * 100 : tableBodyWidth, y: tableBodyHeight }}
                     pagination={{ defaultPageSize: Math.floor(tableBodyHeight/tableRowHeight) || 10 }}

+ 1 - 1
src/components/dashboardDesigner/configSider.jsx

@@ -79,7 +79,7 @@ class ConfigSider extends React.Component {
             </Button>
             {visibleCusFilterBox && <CusFilterBox visibleBox={visibleCusFilterBox} hideBox={this.hideCusFilterBox} />}
             <Divider>其他设置</Divider>
-            <FormItem label='说明'>
+            <FormItem label='备注'>
                 <Input.TextArea
                     autosize={{ minRows: 2, maxRows: 6 }}
                     value={dashboardDesigner.description}

+ 0 - 1
src/components/dashboardDesigner/content.jsx

@@ -86,7 +86,6 @@ class DashboardDesignerContent extends React.Component {
         dispatch({ type: 'dashboardDesigner/changeFilters', filters }).then(() => {
             afterRefresh && typeof afterRefresh === 'function' && afterRefresh()
         });
-        this.hideFilterBox()
     }
 
     /**

+ 5 - 5
src/models/dashboard.js

@@ -2,9 +2,9 @@ import { message } from 'antd'
 import * as service from '../services/index'
 import URLS from '../constants/url'
 
-const generateShareCode = () => {
-    return Math.random().toString(36).substr(2).toUpperCase();
-}
+// const generateShareCode = () => {
+//     return Math.random().toString(36).substr(2).toUpperCase();
+// }
 
 export default {
     namespace: 'dashboard',
@@ -18,7 +18,7 @@ export default {
             menuList: [],
             menuTree: [],
             menuExpandedKeys: ['-1'],
-            menuSelectedKeys: [],
+            menuSelectedKeys: ['-1'],
             menuFilterLabel: '',
             menuAutoExpandParent: true,
             filterLabel: '',
@@ -219,7 +219,7 @@ export default {
                     bdConfiguration: JSON.stringify(items),
                     relationColumns: JSON.stringify(relationColumns),
                     filters: JSON.stringify(filters) || "",
-                    bdCode: generateShareCode(),
+                    // bdCode: generateShareCode(),
                     thumbnail: '',
                     chartIds: '',
                     menuId: menuCode,

+ 24 - 21
src/models/dashboardDesigner.js

@@ -23,7 +23,7 @@ function getTrueFilters(item, filters) {
         )) {
             if(f.operator === 'betweent' ? ( !!f.value1 && (f.value1.length ? f.value1.length > 0 : true) && !!f.value2 && (f.value2.length ? f.value2.length > 0 : true)) : (!!f.value1 && (f.value1.length ? f.value1.length > 0 : true))) {
                 if(f.combined) {
-                    f.dataSource.forEach(d => {
+                    f.dataSource && f.dataSource.forEach(d => {
                         trueFilters.push({
                             dataSourceCode: d.dataSource.code,
                             name: d.column.name,
@@ -117,8 +117,7 @@ export default {
             const { name, value } = action;
             let obj = {};
             obj[name] = value;
-            let newState = Object.assign({}, state, obj);
-            return newState;
+            return Object.assign({}, state, obj);
         },
         setField(state, action) {
             const { name, value } = action;
@@ -381,14 +380,18 @@ export default {
          * 同时更改多个filter
          */
         *changeFilters(action, { put, call, select }) {
-            const { filters } = action;
-            const dashboardDesigner = yield select(state => state.present.dashboardDesigner);
-            const { items } = dashboardDesigner;
-
-            yield put({ type: 'silentSetField', name: 'filters', value: filters });
-            
-            for(let i = 0; i < items.length; i++) {
-                yield put({ type:'fetchChartData', item: items[i], mandatory: true });
+            try {
+                const { filters } = action;
+                const dashboardDesigner = yield select(state => state.present.dashboardDesigner);
+                const { items } = dashboardDesigner;
+    
+                yield put({ type: 'silentSetField', name: 'filters', value: filters });
+                
+                for(let i = 0; i < items.length; i++) {
+                    yield put({ type:'fetchChartData', item: items[i], mandatory: true });
+                }
+            }catch(e) {
+                message.error('更改过滤条件失败: ' + e.message);
             }
         },
         /**
@@ -428,21 +431,22 @@ export default {
             const dashboardDesigner = yield select(state => state.present.dashboardDesigner);
             const { creatorCode, filters } = dashboardDesigner;
             const { chartCode } = item;
-            const body = {
-                dashboardCreatorId: creatorCode,
-                chartId: chartCode,
-                filters: getBodyFilters(getTrueFilters(item, filters)),
-                testPage: {
-                    pageNum: page|| 1,
-                    pageSize: pageSize || 25, 
-                }
-            };
+            
             if(!mandatory && !!item.chartOption) {
                 return;
             }
 
             try {
                 yield put({ type: 'setItemFetching', code: chartCode, fetching: true });
+                const body = {
+                    dashboardCreatorId: creatorCode,
+                    chartId: chartCode,
+                    filters: getBodyFilters(getTrueFilters(item, filters)),
+                    testPage: {
+                        pageNum: page|| 1,
+                        pageSize: pageSize || 25, 
+                    }
+                };
                 const res = yield call(service.fetch, {
                     url: URLS.CHART_OPTION,
                     allow: true,
@@ -475,7 +479,6 @@ export default {
                     message.error('请求图表展示数据失败: ' + (res.err || res.data.msg));
                 }
             }catch(e) {
-                console.error(body, e);
                 yield put({ type: 'setItemFields', code: chartCode, fields: [
                     { name: 'chartType', value: '' },
                     { name: 'chartOption', value: {} }

+ 2 - 2
src/models/dataConnect.js

@@ -11,9 +11,9 @@ export default {
             filterLabel: '',
             validInfo: {},
             filterItems: [ // 可选过滤字段
-                { name: 'name', label: '名', type: 'string' },
+                { name: 'name', label: '数据链接名', type: 'string' },
             ],
-            filterItem: { name: 'name', label: '名', type: 'string' }, // 已选过滤字段
+            filterItem: { name: 'name', label: '数据链接名', type: 'string' }, // 已选过滤字段
         },
     },
     reducers: {

+ 1 - 0
src/themes/default/base.less

@@ -34,6 +34,7 @@
 // ListFilter
 .list-filter .ant-select:first-child .ant-select-selection.ant-select-selection--single {
     background: #F5FBFE;
+    cursor: default;
 }
 
 // Dropdown Menu